My first Magazine pemrograman-kompetitif-dasar | Page 38
3 Pencarian dan Pengurutan
• Jika ternyata X kurang dari h[tengah], artinya X tidak mungkin berada pada rentang [tengah,
kanan].
• Dengan demikian, rentang pencarian kita yang baru adalah [kiri, tengah-1].
• Hal yang serupa juga terjadi ketika X lebih dari h[tengah], rentang pencarian kita menjadi
[tengah+1, kanan].
• Tentu saja jika X sama dengan h[tengah], catat posisinya dan pencarian berakhir.
• Untuk kasus X tidak ditemukan, pencarian akan terus dilakukan sampai kiri > kanan, yang
artinya rentang pencarian sudah habis.
Ilustrasi Eksekusi Binary Search
Sebagai contoh, misalkan Anda ingin mencari angka 3 dari suatu array [1, 1, 3, 5, 5, 6, 7].
Gambar 3.1 sampai Gambar 3.6 mengilustrasikan proses binary search dari awal sampai akhir.
1 1 3 5 5 6 7
kanan
kiri
Gambar 3.1: Tahap 1: Mulai dengan menginisiasi variabel kiri dan kanan pada kedua ujung array .
1 1 3 5 5 6 7
kanan
kiri
Gambar 3.2: Tahap 2: Temukan indeks tengah yaitu nilai tengah dari kiri dan kanan. Kemudian
lakukan perbandingan nilai tengah dengan nilai yang ingin dicari.
1 1 3 5 5 6 7
kiri
kanan
Gambar 3.3: Tahap 3: Karena 5 > 3, maka geser kanan menjadi tengah − 1.
1 1 3 5 5 6 7
kiri
kanan
Gambar 3.4: Tahap 4: Temukan lagi indeks tengah yaitu nilai tengah dari kiri dan kanan dan
bandingkan nilainya dengan nilai yang dicari.
1 1 3 5 5 6 7
kanan
kiri
Gambar 3.5: Tahap 5: Karena 1 < 3, maka geser kiri menjadi tengah + 1.
28