Binary Search adalah algoritma pencarian yang digunakan untuk menemukan posisi suatu nilai (key) dalam kumpulan data yang sudah terurut (ascending atau descending). Algoritma ini bekerja dengan cara membagi ruang pencarian menjadi dua bagian secara berulang (divide and conquer) sehingga proses pencarian jauh lebih cepat dibandingkan pencarian linear.
Cara Kerja Binary Search:
-
Tentukan nilai tengah dari array.
-
Bandingkan nilai yang dicari (key) dengan elemen tengah:
-
Jika sama → pencarian selesai (key ditemukan).
-
Jika key lebih kecil dari elemen tengah → pencarian dilanjutkan pada bagian kiri array.
-
Jika key lebih besar dari elemen tengah → pencarian dilanjutkan pada bagian kanan array.
-
-
Ulangi proses ini hingga nilai ditemukan atau ruang pencarian kosong.
Contoh Sederhana:
Misalkan kita punya array terurut:[2, 4, 6, 8, 10, 12, 14]
Cari angka 10 dengan binary search:
-
Tengah = elemen ke-4 = 8 → 10 > 8 → cari di kanan.
-
Bagian kanan =
[10, 12, 14]→ tengah = 12 → 10 < 12 → cari di kiri. -
Bagian kiri =
[10]→ ketemu.
Kompleksitas Waktu:
-
Worst case & Average case:
O(log n) -
Best case:
O(1)(jika ketemu di tengah pertama kali).
Manfaat Binary Search
-
Lebih cepat dibanding Linear Search
-
Karena menggunakan prinsip divide and conquer, jumlah perbandingan yang dilakukan lebih sedikit.
-
Dari
O(n)pada linear search menjadiO(log n)pada binary search.
-
-
Efisien untuk data besar
-
Sangat cocok digunakan pada dataset yang ukurannya besar (misalnya ribuan atau jutaan data) selama data sudah terurut.
-
-
Memudahkan implementasi algoritma lain
-
Binary Search sering dijadikan dasar untuk algoritma lain, misalnya:
-
Binary Search Tree (BST)
-
Interpolation Search
-
Algoritma dalam machine learning atau database indexing.
-
-
-
Digunakan dalam pemrograman nyata (real-world applications)
-
Database indexing → pencarian data lebih cepat.
-
Sistem operasi → mencari file di struktur yang sudah diurutkan.
-
Kompresi & enkripsi → untuk pencocokan cepat di tabel kode.
-
Game / aplikasi → mencari item dalam daftar panjang.
-
-
Hemat sumber daya
-
Karena jumlah perbandingan sedikit, algoritma ini lebih hemat waktu dan kadang juga memori, terutama pada data yang sangat besar.
-
berikut kelemahan atau keterbatasan Binary Search:
Kelemahan Binary Search
-
Data harus terurut
-
Algoritma ini hanya bisa digunakan jika data sudah dalam kondisi ascending atau descending.
-
Kalau data masih acak, harus diurutkan dulu (sorting), yang bisa memakan waktu
O(n log n).
-
-
Tidak cocok untuk data kecil
-
Untuk dataset yang sedikit (misalnya < 10 elemen), keuntungan Binary Search hampir tidak terasa dibanding Linear Search.
-
Linear Search bahkan bisa lebih cepat karena tidak perlu perhitungan indeks tengah.
-
-
Kurang fleksibel pada data dinamis
-
Jika data sering bertambah atau berkurang, kita perlu mengurutkan ulang agar Binary Search tetap bisa dipakai.
-
-
Lebih sulit diimplementasikan
-
Dibanding Linear Search, Binary Search sedikit lebih rumit karena harus memperhatikan indeks awal, akhir, dan tengah.
-
Kalau tidak hati-hati, bisa terjadi infinite loop atau salah posisi indeks.
-
-
Kurang cocok untuk struktur data non-sekuensial
-
Misalnya linked list, karena akses langsung ke elemen tengah tidak bisa dilakukan tanpa traversing, sehingga Binary Search tidak efisien.
-
Jadi, Binary Search sangat bermanfaat untuk dataset besar yang sudah terurut, tapi tidak praktis jika datanya kecil, sering berubah, atau belum diurutkan.
Inti Penting
-
Binary Search sangat cepat untuk dataset besar.
-
Syarat utama: data harus terurut.
-
Penerapan nyata: database indexing, pencarian kamus digital, sistem file, AI/ML, dan game development.

Penutup
Algoritma Binary Search merupakan metode pencarian yang efisien karena mampu memangkas ruang pencarian secara bertahap dengan prinsip divide and conquer. Algoritma ini memiliki banyak manfaat, terutama dalam menangani data besar yang sudah terurut, karena dapat mempercepat proses pencarian hingga kompleksitas waktu O(log n).
Meskipun demikian, Binary Search juga memiliki keterbatasan, seperti syarat data harus terurut dan kurang fleksibel untuk data yang sering berubah. Oleh karena itu, pemilihan algoritma pencarian sebaiknya disesuaikan dengan kondisi dan kebutuhan data. Dengan memahami kelebihan dan kelemahannya, kita dapat lebih tepat dalam menggunakan Binary Search maupun algoritma pencarian lainnya.
