(BINARY SEARCH)
PENGERTIAN BINARY SEARCH
Algoritma ini sangat cocok untuk digunakan pada list yang memiliki
index yang banyak dibandingkan dengan list yang memiliki index
sedikit.
PENJELASAN BINARY SEARCH
anggap saja kita memiliki array dengan index dan value seperti
dibawah,
array[0] = 2;
array[1] = 3;
array[2] = 1;
array[3] = 5;
array[4] = 4;
array[5] = 6;
Langkah pertama yang akan kita lakukan adalah menyusun value dari
array tersebut agar tersusun secara ascending, pada kasus ini saya
menggunakan algoritma bubble sort untuk menyusunnya, sehingga
didapatlah susunan array seperti ini
array[0] = 1;
array[1] = 2;
array[2] = 3;
array[3] = 4;
array[4] = 5;
array[5] = 6;
selanjutnya, kita baru akan memulai algoritma binary search, langkah
pertama kita perlu menentukan 4 hal yaitu left,right,mid,key.
• Left digunakan sebagai batas bawah pencarian. Pada langkah ini nilai left adalah index ke
0.
• Right digunakan sebagai batas atas pencarian. Pada langkah ini nilai right adalah index ke
5.
• Mid ditentukan otomatis dari panjang array yang kita punya, pada contoh ini ada 6 index
array yang berarti nilai mid adalah 3 dan mengacu pada index ke 2 dari array yang kita
punya.
Sedangkan KEY adalah nilai yang akan kita cari, anggap saja kita akan mencari angka 4 dari
value array tsb.
Langkah selanjutnya kita akan menentukan apakah value array index ke mid (3) sama dengan
key (4)? ternyata tidak.
lanjut, apakah array index ke mid (3) lebih kecil dari key (4)? jika iya maka kita akan
mengubah parameter left menjadi mid +1. Namun jika tidak kita akan mengubah right
menjadi mid -1.
pada kasus ini value array ke mid lebih kecil dibanding key jadi kita akan mengubah left
menjadi mid+1 yaitu 2+1 = 3.
Jadi saat ini array kita tinggal tersisa
array[3] = 4;
array[4] = 5;
array[5] = 6;
kita akan mengulang lagi algoritmanya, kali ini nilai tengahnya adalah array index ke 4.
apakah array index ke 4 (5) sama dengan key (4)? ternyata tidak.
Lanjut,apakah array index ke 4 (5) lebih kecil daripada key (4)? ternyata tidak, jadi kita
akan mengubah nilai right menjadi mid-1 yaitu 3. sehingga sisa List kita hanya tersisa 1
yaitu array index ke 3 dengan value 4.
array[3] = 4;
saat ini right dan left berada di satu tempat, sehingga nilai left,right dan mid berada pada
satu posisi.
sampai di tahap ini kita akan kembali mengecek, apakah array index ke mid (4) sama
dengan key (4). jika iya maka algoritma selesai dijalankan dan hasil pencarian bernilai
true.
namun jika ternyata sampai di sini key masih belum ketemu, maka posisi left atau right
akan kembali berubah, dan pastinya left menjadi lebih besar daripada right maka
algoritma akan berhenti dan hasil pencarian dianggap false (tidak ketemu).
CONTOH PROGRAM BINARY SORT PADA C++
PROGRAM
PENJELASAN CONTOH PROGRAM BINARY
SEARCH DI ATAS
OUTPUT
KELEBIHAN DAN KELEMAHAN BINARY SEARCH