Sabtu, 20 Oktober 2012

SI 2011 : Sukses Garap Praktikum ketujuh ALPRO 1

Mahasiswa dari jurusan Sistem Informasi ITS 2011 (kelas B) hari ini, Kamis (08/12/2011) telah sukses praktikum ketujuh dari matakuliah ALPRO1. Mahasiswa SI ITS 2011 tersebut  menilai bahwa praktikum kali ini memang sedikit sulit dibanding praktikum sebelumnya, namun karena persiapannya yang begitu matang, mereka dapat menyelesaikannya dengan mulus. Hal ini dibuktikan dengan ungkapan salah satu mahasiswa tersebut.

"Praktikum ALPRO minggu ini memang sedikit sulit, namun kami dapat menyelesaikannya dengan rapi dan baik. Hal ini karena dibatalkannya praktikum minggu lalu, sehinnga persiapan kami untuk mengerjakan praktikum ini lebih matang", ujar  Leonika Sari dalam ruangan LPSI ITS Surabaya, Kamis (8/12/2011).

Kali ini mereka praktikum tentang sorting data. Dimana mereka membuat sebuah project java di Netbeans dan program tersebut mampu membaca suatu data di dalam komputer kita yang berbentuk .txt. Selanjutnya program tersebut akan mengurutkan data yang ada dalam file .txt tersebut. Pengurutan program diawali dengan pilihan (1. Urutkan dari depan, 2. Urutkan dari Belakang). Sehingga semisal kita membuat data nama atau yang lainnya dalam keadaan tidak urut, dengan bantuan ini kita dapat membuat data tersebut menjadi urut sesuai pilihan kita.

Saya berhasil mendapatkan sebuah source code program tersebut dari salah seorang mahasiswa SI ITS 2011 yang praktikum hari ini.

"Ini adalah souce code program yang saya buat dalam praktikum kali ini, dimana program ini memiliki dua kelas, yang pertama yaitu "Main_Shorting.java" sebagai pemanggil dari class yang kedua yaitu "Submain_Shorting.java", ujar Rachmat Arif dalam ruangan LPSI ITS Surabaya, Kamis (8/12/2011).

Bagi kalian yang ingin mencoba hasil praktikum ketujuh ALPRO1 SI ITS 2011 , dapat copy-paste source-code programnya dibawah ini.

Main_Shorting.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package shorting;

/**
 *
 * @author Rachmat Arif
 */

import java.io.*;
import java.io.IOException;
import java.util.Scanner;

public class Main_Shorting {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        BufferedReader buffered = new BufferedReader(new InputStreamReader(System.in));
        Anak_Shorting baca = new Anak_Shorting();
        System.out.println("Masukan alamat file yang ingin dibaca ?");
         //kita inputkan tempat file yang kita simpan beserta nama file tersebut
        //contoh D:\Praktikum7 Alpro1\DataNama.txt (bila file terdapat di D:)
       
        try {
            String namaFile = buffered.readLine();
            baca.setnamaFile(namaFile);
        } catch (IOException exp) {
            System.out.println("E R R O R !");
        }
        System.out.println("\nPilihan pengurutan nama :");
        System.out.println("1. Urutan dati kalimat pertama");
        System.out.println("2. Urutan dari kalimat terakhir");
        System.out.println("3. Keluar");
        Scanner scan = new Scanner(System.in);
        int pilihan = scan.nextInt();




        while (true) {
            if (pilihan == 1) {
                baca.readFileDepan();
                String[] files = {"DataNama.txt"};
                for (int x = 0; x < files.length; x++) {


                    String[] sortTest = baca.mergesort(baca.getarrayFile());
                    for (int d = 0; d < sortTest.length; d++) {
                        if (d == sortTest.length - 1) {
                            System.out.println(sortTest[d] + ".");
                        } else {
                            System.out.println(sortTest[d] + ";");
                        }
                    }
                    System.out.print("\n");
                }
                System.exit(0);

            } else if (pilihan == 2) {
                baca.readFileBelakang();
                String[] files = {"DataNama.txt"};
                for (int x = 0; x < files.length; x++) {


                    String[] sortTest = baca.mergesort(baca.getarrayFile());
                    for (int d = 0; d < sortTest.length; d++) {
                        if (d == sortTest.length - 1) {
                            System.out.println(sortTest[d] + ".");
                        } else {
                            System.out.println(sortTest[d] + ";");
                        }
                    }
                    System.out.print("\n");
                }
                System.exit(0);
            } else if (pilihan == 3) {
                System.exit(0);
            } else {
                System.out.println("Pilihan Salah!");
            }
        }
    }

}

Submain_Shorting.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package shorting;

/**
 *
 * @author Rachmat Arif
 */

import java.io.*;

import java.util.Scanner;

public class Submain_Shorting {

    private String isiFile = "", namaFile = "";
    private int penghitung = 0;
    private String[] arrayFile = new String[220];

    public String getisiFile() {
        return isiFile;
    }

    public String getnamaFile() {
        return isiFile;
    }

    public int getPenghitung() {
        return penghitung;
    }

    public String[] getarrayFile() {
        return arrayFile;
    }

    public void setnamaFile(String x) {
        namaFile = x;
    }

    public void printarrayFile() {
        for (int i = 0; i < arrayFile.length; i++) {
            System.out.print(arrayFile[i] + ";");
        }
    }

    public void readFileDepan() {
        try {
            String isiFileini = "";
            FileReader bacaNamaFileIni = new FileReader(namaFile);
            BufferedReader bacaFileIni = new BufferedReader(bacaNamaFileIni);
            isiFile = "";
            System.out.println("Isi file " + namaFile + " adalah :");
            System.out.println("------------------------------");
            while ((isiFileini = bacaFileIni.readLine()) != null) {
                isiFile += isiFileini + ";";
                arrayFile[penghitung] = isiFileini;
                penghitung++;
            }
            bacaNamaFileIni.close();
            bacaFileIni.close();
        } catch (FileNotFoundException exp) {
            System.out.println("File tidak ada !");
            System.exit(1);
        } catch (IOException exp) {
            System.out.println("Coba Lagi");
            System.exit(1);
        }
    }

    public void readFileBelakang() {
        try {

            String isiFileini = "";
            FileReader bacaNamaFileIni = new FileReader(namaFile);
            BufferedReader bacaFileIni = new BufferedReader(bacaNamaFileIni);
            isiFile = "";
            System.out.println("Isi file " + namaFile + " adalah :");
            System.out.println("------------------------------");
            while ((isiFileini = bacaFileIni.readLine()) != null) {
                isiFile += isiFileini + ";";
                Scanner scanner1 = new Scanner(isiFileini);
                String isiFile1 = scanner1.next();
                String isiFile2 = "";
                if (scanner1.hasNext()) {
                    isiFile2 = scanner1.nextLine();
                } else {
                    isiFile2 = " " + isiFile1;
                }
                arrayFile[penghitung] = (isiFile2 + "," + isiFile1);
                penghitung++;
            }
            bacaNamaFileIni.close();
            bacaFileIni.close();
        } catch (FileNotFoundException exp) {
            System.out.println("File tidak ditemukan !");
            System.exit(1);
        } catch (IOException exp) {
            System.out.println("Coba Lagi");
            System.exit(1);
        }
    }

    public String[] mergesort(String[] list) {
        String[] sorted = new String[list.length];
        if (list.length == 1) {
            sorted = list;
        } else {
            int mid = list.length / 2;
            String[] left = null;
            String[] right = null;
            if ((list.length % 2) == 0) {
                left = new String[list.length / 2];
                right = new String[list.length / 2];
            } else {  //
                left = new String[list.length / 2];
                right = new String[(list.length / 2) + 1];
            }
            int x = 0;
            int y = 0;
            for (; x < mid; x++) {
                left[x] = list[x];
            }
            for (; x < list.length; x++) {
                right[y++] = list[x];
            }
            left = mergesort(left);
            right = mergesort(right);
            //sorted = merge(left,right);
            sorted = mergeArray(left, right);
        }

        return sorted;
    }


    private String[] mergeArray(String[] left, String[] right) {
        String[] merged = new String[left.length + right.length];
        int leftIndex = 0;
        int rightIndex = 0;
        int midIndex = 0;
        int comp = 0;
        while (leftIndex < left.length || rightIndex < right.length) {
            if (leftIndex == left.length) {
                merged[midIndex++] = right[rightIndex++];
            } else if (rightIndex == right.length) {
                merged[midIndex++] = left[leftIndex++];
            } else {  
                comp = left[leftIndex].compareTo(right[rightIndex]);
                if (comp > 0) {
                    merged[midIndex++] = right[rightIndex++];
                } else if (comp < 0) {
                    merged[midIndex++] = left[leftIndex++];
                } else {
                    merged[midIndex++] = left[leftIndex++];
                }
            }

        }
        return merged;
    }
}

0 komentar: