Senin, 26 November 2012

Struktur data CompareTo()

// tugas ketiga
/*
Nama    : Ati Tasmiati Dewi
NIM        : 11520244043
*/
import java.util.Scanner;
/////////////////////////////////////////////////////////////////
class mahasiswa { // mahasiswa mempunyai 3 data, nim, nama, dan ipk
    private String nimMhs;
    private String namaMhs;
    private double ipkMhs;
//--------------------------------------------------------------
    // constructor
    // berguna juga untuk "memasukkan" data mahasiswa
    public mahasiswa(String nim, String nama, double ipk) {
        nimMhs = nim;
        namaMhs = nama;
        ipkMhs = ipk;
    }
//--------------------------------------------------------------
    // method untuk menampilkan data mahasiswa
    public void lihatData() {
        System.out.println(nimMhs + " --> " + namaMhs + " --> " + ipkMhs);
    }
//--------------------------------------------------------------
    // method memperoleh (mengambil) data nama
    public String getNama(){
        return namaMhs;
    }
    public String getNIM(){
        return nimMhs;
    }
    public double getIpk(){
        return ipkMhs;
    }
} // end class mahasiswa
/////////////////////////////////////////////////////////////////
class arai {
    private mahasiswa[] dt; // array
    private int jml_data;
    private int i;
//--------------------------------------------------------------
    public arai(int max) { // constructor
        dt = new mahasiswa[max];
        jml_data = 0; // jumlah data mula-mula nol
    }
//--------------------------------------------------------------
// method input untuk memasukkan data ke dalam array
    public void input(String nim, String nama, double ipk) {
        dt[jml_data] = new mahasiswa(nim,nama,ipk);
        jml_data++; // jika ada data masuk maka jumlah datanya bertambah
    }
//--------------------------------------------------------------
// method dataArai untuk menampilkan data yang ada dalam array
// method tidak mengembalikan nilai (menggunakan void) --> PROCEDURE
    public void dataArai() { // menampilkan isi dari array
        System.out.println("");
        System.out.println("----------------------------");
        System.out.println("NIM       Nama        IPK");
        System.out.println("----------------------------");
        for(i=0; i<jml_data; i++)
            dt[i].lihatData();
        System.out.println("----------------------------");
        System.out.println("");
    }
//--------------------------------------------------------------
// method cari untuk mencari data yang ada dalam array
// method mengembalikan nilai (tidak menggunakan void) --> FUNCTION
// pencarian data berdasarkan nama mahasiswa
    public boolean cari(String cr) {
        for(i=0; i<jml_data; i++) // mencari data pada setiap elemen array
            if( dt[i].getNama().equals(cr) ) // membandingkan data pada array dengan yang dicari
                break; // jika sama maka pencarian dihentikan
        if(i == jml_data) // apakah pencarian yang dilakukan sebanyak jumlah elemen array?
            return false; // jika true data TIDAK ditemukan (false)
        else
            return true; // jika false data ditemukan (true)
    }
   
    public boolean cari2(String nim){
        for(i=0; i<jml_data; i++) // mencari data pada setiap elemen array
            if( dt[i].getNIM().equals(nim) ) // membandingkan data pada array dengan yang dicari
                break; // jika sama maka pencarian dihentikan
        if(i == jml_data) // apakah pencarian yang dilakukan sebanyak jumlah elemen array?
            return false; // jika true data TIDAK ditemukan (false)
        else
            return true; // jika false data ditemukan (true)
    }
   
    public void ketemu(String cr){
        for(i=0; i<jml_data; i++) // mencari data pada setiap elemen array
            if( dt[i].getNama().equals(cr) ) // membandingkan data pada array dengan yang dicari
                System.out.println("NIM  : "+dt[i].getNIM()+"\nNama : "+dt[i].getNama()+"\nIPK  : "+dt[i].getIpk());
                   System.out.println("");
                //menampilkan data nama NIM sama IPK
    }
   
//--------------------------------------------------------------
// method hapus untuk menghapus data yang ada dalam array
// method mengembalikan nilai (tidak menggunakan void) --> FUNCTION
    public boolean hapus(String hps) {
        boolean cri = cari(hps); // memanggil method cari
        if (cri==true) { // bila data ditemukan maka dihapus
            for(int j=i; j<jml_data-1; j++)
                dt[j] = dt[j+1];
            jml_data--; // jangan lupa jumlah data dikurangi satu!!!
            return true;
        }
        else // bila data tidak ditemukan
            return false;
    }
} // end class metod
/////////////////////////////////////////////////////////////////////////
class Prak03_11520244043 {
    public static void main(String[] args) {
        int i=1, jml_arai=100;
        Scanner sken = new Scanner(System.in);
        arai md = new arai(jml_arai); // memanggil class metod dengan variabel md
        String nim, nama, cariData;
        double ipk;
       
//----------------------------------------------------------------------

        int menu;
        do {
            System.out.println("");
            System.out.println("Pilih Menu di bawah ini");
            System.out.println("1. Memasukkan data");
            System.out.println("2. Pencarian data");
            System.out.println("3. Penghapusan data");
            System.out.println("4. Penampilan data");
            System.out.println("5. Keluar");
            System.out.print("Anda memilih : ");
              menu = sken.nextInt();
                           
              if (menu==1){
                do{
                  System.out.println("Masukkan data mahasiswa ke-" + i);
                  System.out.print("NIM  : ");
                  nim = sken.next();
                System.out.print("Nama : ");
                nama = sken.next();
                System.out.print("IPK  : ");
                ipk = sken.nextDouble();
                boolean cri=md.cari2(nim);
                if(cri==true){
                    System.out.println("Sudah ada mahasiswa dengan nim "+nim);
                    System.out.println("");
                }else{
                    md.input(nim,nama,ipk); // memanggil method input pada class metod
                    i++;
                    break;
                }
                }while(true);
            }
           
            if (menu==2) {
                  System.out.print("Nama mahasiswa yang anda cari = ");
                  cariData = sken.next();
                   boolean hasil = md.cari(cariData); // memanggil method cari pada class metod
                   if (hasil==true){
                       System.out.println("");
                       System.out.println("========================");
                       System.out.println("Nama Mahasiswa ditemukan");
                       System.out.println("========================");
                    md.ketemu(cariData);
                   }else{
                       System.out.println("Nama " + cariData + " tidak ditemukan ");
                   }
                System.out.println("");
                              
            } else if (menu==3) {
                System.out.print("Data yang anda hapus = ");
                   cariData = sken.next();
                   boolean sts = md.hapus(cariData); // memanggil method hapus pada class metod
                   if (sts==true)
                       System.out.println("Data " + cariData + " berhasil dihapus");
                   else
                       System.out.println("Data " + cariData + " TIDAK ditemukan");
               
                System.out.println("");
   
            } else if (menu==4) {
                md.dataArai();
                System.out.println("");
            }
        } while (menu >= 1 && menu < 5);
    } // end main()
} // end class tgsPertama

Tidak ada komentar:

Posting Komentar