Definisi dan Jenis - jenis Searching

1.    Definisi Searching

 

Pencarian (Searching) merupakan suatu proses yang penting dalam pengelolaan data atau nilai. Proses pencarian adalah menemukan suatu data atau nilai tertentu dalam kumpulan data  yang memiliki tipe yang sama baik tipe dasar atau tipe bentuk. Data atau nilai yang dimaksud disini adalah data yang disimpan secara temporer dalam memori utama atau disimpan secara permanen didalam memori sekunder contohnya tape atau disk. Didalam memori utama, struktur penyimpanan data yang umum adalah berupa larik atau tabel (array), sedangkan didalam memori sekunder berupa file atau arsip.

 

2.    Jenis – jenis Searching

-         Algoritma Sequential Search

Suatu teknik pencarian data dalam array (1 dimensi) yang akan menelusuri semua elemen array dari awal hingga yang paling akhir, dimana data-data tidak perlu diurutkan terlebih dahulu.

·        Kelebihan Sequential Search

ü Proses pencarian menggunakan Sequential Search cenderung lebih cepat dan efisien untuk jumlah data yang terbatas atau tidak terlalu banyak.

ü Algoritma yang digunakan juga lebih sederhana atau tidak terlalu rumit.

·        Kekurangan sequential search

ü Kekurangan yang paling mendasar Sequential Search adalah kurang efisien dan kurang cepat untuk mencari suatu data dalam jumlah yang besar.

Contoh kodingan sequential search

package semester2;
public class SequentialSearch {
   
private int [] angkaKu = new int[]{3, 6, 9, 7, 10, 4};

    private void
show(){
       
for (int index : angkaKu) {
            System.
out.print(index + " ");
       
}
        System.
out.println();
   
}

   
private void search(int angka){
       
int x = 0;
        boolean
hayoloh = false;
        for
(int i = x; i < angkaKu.length; i++) {
           
if(angka == angkaKu[i]){
                hayoloh =
true;
               
x = i;
           
}
        }
       
if(hayoloh){
            System.
out.println("Data berada pada urutan ke - "+(x+1));
       
} else {
            System.
out.println("Data Tidak Ditemukan");
       
}
    }

   
public static void main(String[] args) {
        SequentialSearch data =
new SequentialSearch();

//        Untuk menampilkan data pada Array
       
data.show();

//        Melakukan pencarian data
       
data.search(7);
   
}
}

-         Algoritma Binary Search

Algoritma binary search atau pencarian biner merupakan metode pencarian pada data terurut yang paling efesien. Metode pencarian biner digunakan untuk kebutuhan pencarian dengan waktu yang cepat. 

 

Prinsip kerja pencarian dengan membagi data atas dua bagian mendasari dalam metode ini. Data yang tersimpan di dalam larik harus sudah terurut (dari yang kecil ke yang besar). 

·        Kelebihan Binary Search

ü  Efisien dan lebih cepat jika mencari suatu nilai dalam jumlah data yang besar. Karena data-data tersebut sudah diurutkan terlebih dahulu.

·        Kekurangan Binary Search

ü  Kekurangan Binary Search yang pertama adalah data harus diurutkan terlebih dahulu agar proses pencarian bisa berjalan dengan baik.

ü  Kekurangan kedua adalah algoritma Binary Search lebih rumit daripada Sequential Search.


Contoh kodingan Binary Search

package semester2;
public class BinarySearch {
   
private final int [] dataAngka = {5, 9, 12, 15, 17, 23, 27, 8, 73, 55, 13, 44, 69};

    private void
showOff(){
       
for (int i : dataAngka) {
            System.
out.print(i+" ");
       
}
        System.
out.println();
   
}

   
public String pencarianBinary(int key) {
       
int akhir = 0;
        int
awal = dataAngka.length - 1;

        while
(awal >= akhir) {
           
int tengah = (akhir + awal) / 2;
            if
(key < dataAngka[tengah]){
                awal = tengah -
1;
           
} else if (key == dataAngka[tengah]){
               
return "Nomor "+key+" Berada Pada Urutan Ke - "+(tengah+1);
           
}else{
                akhir = tengah +
1;
           
}
        }
       
return "Data Tidak Ditemukan";
   
}

   
public static void main(String args []){
        BinarySearch obj =
new BinarySearch();
       
obj.showOff();
       
System.out.println(obj.pencarianBinary(27));
   
}

}

  

Komentar