Binary search adalah sebuah algoritma pencarian suatu data dalam kondisi terurut dengan membagi data menjadi dua bagian. Fungsi dari algoritma ini adalah untuk membuat proses lebih efisien sehingga dapat memaksimalkan fungsi pencarian suatu data. Untuk memahami tentang binary search lebih mendalam, mari simak penjelasan berikut ini.
Mengenal Apa Itu Binary Search
Seperti yang telah dijelaskan di atas, binary search (pencarian biner) merupakan sebuah metode pencarian data dengan membaginya menjadi dua bagian. Namun, data harus diurutkan terlebih dahulu berdasarkan abjad atau digit sebelum melakukan proses pencarian.
Perlu Anda ketahui, ada algoritma pencarian lain yang disebut dengan Linear Search. Linear search (pencarian linear) merupakan sebuah metode pencarian tanpa melakukan perlakuan khusus pada data yang ingin di cari. Berbeda dengan binary search yang harus mengurutkan terlebih dahulu dan membaginya menjadi 2 bagian.
Kenapa harus menggunakan Binary Search?
Pada linear search, data akan dicek satu persatu sampai data berhasil ditemukan. Hal ini tidak akan menjadi masalah jika jumlah data kecil. Tetapi jika Anda akan mencari data dalam jumlah besar yang memiliki ribuan bahkan jutaan data, tentunya tidak akan efektif jika Anda menggunakan metode Linear Search.
Untuk menjawab persoalan tersebut, menggunakan algoritma binary search adalah jawaban yang paling tepat.
Penasaran? Mari kita perdalam apa itu Binary Search!
Konsep Dasar Binary Search
Misalkan teman Anda memberi pertanyaan 4 + 2 = … dan Anda diberi kunci jawaban berupa angka 1 sampai 10. Mungkin di sini Anda sudah tahu kalau jawabannya adalah 6. Ibaratkan saja Anda tidak tahu jawabannya dan anda mulai menebak-nebak jawabannya.
Jika menggunakan algoritma Linear Search, Anda akan menebak jawabannya dari mulai angka 1, 2, 3 dan seterusnya sampai Anda menemukan jawabannya. Dengan menggunakan algoritma ini, Anda menemukan jawabannya dengan 6 kali pengecekan jawaban.
Mari kita coba dengan algoritma binary search!
Di sini Anda tahu bahwa data yang akan dicek telah terurut. Karena syarat dari pencarian biner adalah data yang sudah di urutkan.
Setelah itu, Anda membagi data menjadi dua bagian (1 2 3 4 5) dan (6 7 8 9 10). Dari sini atau tahu kalau jawaban dari 4 + 2 terdapat pada bagian data ke-2. Dengan begitu, Anda tidak perlu menebak jawabannya dari angka 1. Namun, Anda mulai menebak jawabannya dari angka 6 dari data ke-2. Sehingga, dengan algoritma binary search, Anda menemukan jawabannya dalam 1 kali pengecekan jawaban.
Jadi begitulah konsep dasar algoritma binary search. Mungkin algoritma ini tidak akan berasa jika data yang dicari dalam jumlah yang kecil. Namun, dalam pencarian data dalam jumlah yang besar, peran dari binary search akan sangat terasa.
Implementasi Sederhana Algoritma Binary Search
Di materi implementasi ini kami telah menyiapkan sebuah studi kasus untuk menerapkan algoritma binary search. Selengkapnya, mari kita simak materinya.
Pada kasus ini, kita akan mencari angka 6 dalam daftar angka:
10 5 3 2 6 8 7 9 1 4
Hal pertama yang harus kita lakukan adalah mengurutkan daftar angka tersebut. Hasilnya akan jadi seperti ini:
1 2 3 4 5 6 7 8 9 10
Setelah itu, kita harus menentukan titik tengah pada daftar angka. Disini kita mendapatkan angka 5 sebagai titik tengah yang membagi data menjadi 2 bagian. (Titik tengah didapatkan dari total data dibagi dengan angka 2).
1 2 3 4 5 6 7 8 9 10
Setelah itu, kita akan melakukan pengecekan apakah titik tengah tersebut sama dengan apa yang kita cari. Jika tidak sama, kita harus melakukan pengecekan ulang dengan membuang setengah data yang dirasa bukan merupakan hasil pencarian yang kita inginkan.
Dari data tersebut, kita tahu bahwa 6 (data yang kita cari) lebih dari 5 (titik tengah). Sehingga kita akan mengambil data yang berada di sebelah kanan titik tengah. Sehingga akan didapatkan daftar angka baru.
6 7 8 9 10
Lalu kita menentukan titik tengah lagi.
6 7 8 9 10
Karena nilai tengah tidak sama dengan data yang kita cari, kita lanjutkan pencarian dengan mengambil data sebelah kiri dari nilai tengah.
6 7
Sama seperti dilangkah sebelumnya, kita cari nilai tengah dari data tersebut.
6 7
Dari sini, kita sudah menemukan data yang ingin kita cari. Sehingga kita berhenti melakukan proses pencariannya.
Kesimpulan
Apakah anda masih bingung dengan pemaparan materi di atas?
Memang algoritma binary search lebih rumit dibandingkan dengan algoritma linear search. Namun, dibalik kerumitannya, algoritma ini dapat meningkatkan efisiensi pencarian data. Apalagi jumlah data yang dikelola sudah lebih dari ribuan data.