Pada pratikum kali ini, kita akan menggunakan kasus yang serupa dengan praktikum sebelumnya. Terdapat dua class yang dibutuhkan, yaitu Mahasiswa dan PencarianMhs. Class PencarianMhs digunakan untuk mencari mahasiswa yang diinginkan. Perhatikan class diagram berikut ini,
Buatlah method tambah() didalam class PencarianMhs.
// method tambah()publicvoidtambah(Mahasiswa m) {if(idx<listMhs.length) { listMhs[idx] = m; idx++; } else {System.out.println("Data sudah penuh!"); }}
Tambahkan method tampil() pada class PencarianMhs.
// method tampil()publicvoidtampil() {// fungsi loop for berikut// akan melakukan looping// sejumlah objek didalam list// secara langsungfor (Mahasiswa m : listMhs) {m.tampil()System.out.println("----------------------"); }}
Buatlah method findSeqSearch() yang akan digunakan untuk mencari data menggunakan algoritma sequential searching.
publicintfindSeqSearch(int cari) {int posisi =-1;for(int j=0; j <listMhs.length; j++) {if(listMhs[j].nim==cari) { posisi = j; } }return posisi;}
Selanjutnya buatlah method tampilPosisi().
publicvoidtampilPosisi(int x,int pos) {if(pos!=-1) {System.out.println("data : "+ x +"ditemukan pada indeks "+ pos); } else {System.out.println("data : "+ x +"tidak ditemukan"); }}
Terakhir, buatlah sebuah main class untuk melakukan pengujian terhadap metode pencarian yang telah dibuat.
publicclassMahasiswaMain {publicstaticvoidmain(String[] args) {Scanner s =newScanner(System.in); // pastikan import package scannerScanner sl =newScanner(System.in);PencarianMhs data =newPencarianMhs();int jumMhs =5;System.out.println("-----------------------------------");System.out.println("Masukkan data mahasiswa secara urut dari Nim Tekecil");for(int i=0; i < jumMhs; i++) {System.out.println("----------------");System.out.print("Nim\t: ");int nim =s.nextInt();System.out.print("Nama\: ");String nama =sl.nextLine();System.out.print("Umur\t : ");int umur =s.nextInt();System.out.print("IPK\t : ");double ipk =s.nextDouble();Mahasiswa m =newMahasiswa(nim, nama, umur, ipk);data.tambah(m);System.out.println("-----------------------------------");System.out.println("Data keseluruhan Mahasiswa");data.tampil();// Proses pencarian dataSystem.out.println("___________________________________");System.out.println("Pencarian Data : ");System.out.println("Masukkan Nim Mahasiswa yang dicari: ");Sytem.out.print("NIM: ");int cari =s.nextInt();System.out.println("menggunakan sequential Search");int posisi =data.findSeqSearch(cari);// Tampilkan posisi datadata.tampilPosisi(cari, posisi);// Tampilkan data hasil pencariandata.tampilData(cari, posisi); } }}
Verifikasi proses input data hasil tampil keseluruhan data
Verifikasi Hasil Pencarian Data
Searching dengan Binary Search
Pada praktikum ini, kita perlu membuat method baru untuk melakukan pencarian dengan algoritma binary search.
Buatlah method baru, yaitu findBinarySearch() pada class PencarianMhs.
Tambahkan kode berikut pada main class untuk pengecekan method findBinarySearch().
System.out.println("====================================");System.out.println("menggunakan binary Search");int posisi =data.findBinarySearch(cari,0, jumMhs -1);// Tampilkan posisi datadata.tampilPosisi(cari, posisi);// Tampilkan data hasil pencariandata.tampilData(cari, posisi);