Saat mengolah data di Python, mungkin saja kamu mengeluhkan proses pencarian data yang terasa lambat, berulang, dan tidak efisien—apalagi untuk jumlah data skala besar.
Kondisi ini tentunya sangat menyita waktu dan tenaga sehingga kamu perlu mengandalkan solusi lain yang lebih cepat, salah satunya adalah binary search.
Teknik ini dirancang untuk memangkas proses pencarian dengan pembagian data secara cerdas.
Sebelum mengetahui bagaimana cara menggunakan binary search di Python ini, mari pelajari dahulu apa saja syarat penggunaannya yang perlu kamu ikuti.
Syarat Menggunakan Binary Search
Untuk menggunakan binary search, kamu harus mengurutkan data terlebih dahulu, mengubahnya dalam bentuk list atau array, melakukan pencarian berdasarkan nilai pasti, memastikan data tidak berubah saat proses ini berlangsung, menggunakan tipe data konsisten, dan menggunakan ukuran data yang besar.
1. Data Harus Sudah Terurut
Binary search hanya bisa bekerja jika kamu sudah mengurutkan data, baik ascending maupun descending.
Jika data acak, fitur ini tidak bisa memberikan hasil pencarian yang keliru karena tidak mewakili logika nilai yang lebih kecil atau lebih besar.
2. Data Berbentuk List atau Array
Fitur binary search umumnya diterapkan dalam struktur data berbentuk list atau array karena memungkinkan program untuk mengakses elemen tengah berdasarkan nomor indeksnya.
3. Pencarian Berdasarkan Nilai Pasti
Fitur binary search digunakan untuk mencari nilai yang spesifik dan pasti, bukan kisaran atau pola. Maka dari itu, kamu perlu menentukan target yang lebih jelas berbentuk angka atau kode tertentu.
4. Data Tidak Berubah Saat Proses Pencarian
Data tidak boleh mengalami perubahan urutan selama proses pencarian binary berjalan. Posisi indeks akan bergeser dan menyebabkan kesalahan perhitungan batas antara kiri dan kanan jika ada penambahan atau penghapusan elemen di tengah proses.
5. Tipe Data Konsisten
Susunlah list dengan tipe data yang sama karena percampuran tipe bisa menyebabkan error atau perilaku yang tidak terduga pada proses perbandingan.
6. Ukuran Data Cukup Besar
Terakhir, gunakan data dalam jumlah besar agar fitur binary search bisa memberikan manfaat optimal. Pada jumlah datanya sedikit, performanya tidak terlalu berbeda dengan linear search.
Cara Menggunakan Binary Search di Python
Sekarang mari masuk ke praktik cara menggunakan binary search di Python secara runtut. Mari ikuti langkah-langkah berikut ini:
1. Siapkan Data Terurut dan Nilai Target
Pertama, siapkan dataset yang sudah terurut agar bisa bekerja dengan benar dan nilai yang ingin kamu cari. Di contoh ini, kita akan mencari angka 40.

2. Buat Fungsi Binary Search dengan Parameter Data dan Target
Selanjutnya, buat fungsi bernama binary_search yang menerima dua parameter: array dan target serta memuat seluruh logika pencarian.
Fungsi ini berfungsi agar kamu bisa menggunakan kode ulang untuk data lainnya.

3. Tentukan Batas Kiri dan Kanan Area Pencarian
Tetapkan batas awal pencarian dalam fungsi, yaitu indeks kiri (low) dan kanan (high). Isilah batas kanan dengan panjang data dikurangi satu karena indeks Python dimulai dari nol.

4. Buat Perulangan Selama Area Pencarian Masih Ada
Gunakan teknik looping while agar proses binary search ini terus berjalan selama batas kiri belum melewati batas kanan. Jika kondisi sudah tidak terpenuhi, tandanya Python gagal menemukan target.

5. Hitung Posisi Tengah dan Bandingkan dengan Target
Hitung indeks tengah menggunakan pembagian bulat agar hasilnya valid sebagai indeks. Setelah itu, bandingkan nilai tengah dengan target.
Programmu akan menentukan apakah ia telah menemukan hasil atau harus bergerak ke kiri atau ke kanan.

6. Kembalikan Nilai Jika Target Tidak Ditemukan
Jika Python tidak bisa menemukan nilai target, fungsi akan mengembalikan -1 sebagai tanda bahwa ia tidak berhasil menemukan data dalam list.

7. Panggil Fungsi dan Tampilkan Hasilnya
Terakhir, panggil fungsi dengan dataset dan target yang sudah disiapkan. Simpan hasilnya ke variabel lalu tampilkan untuk melihat indeks posisi data yang dicari.

Secara keseluruhan, berikut adalah hasil nyata kode di atas jika dites menggunakan compiler digital:

Kesalahan Umum Saat Menggunakan Binary Search
Ada beberapa kesalahan yang tidak sengaja diterapkan pemula saat ingin menggunakan binary search, misalnya data yang belum diurutkan, salah menentukan batas pencarian, dan salah logika pembagian tengah.
1. Data Belum Diurutkan
Dengan menjalankan binary search pada data acak, Python tidak bisa memberikan hasil yang valid. Maka dari itu, kamu perlu menggunakan sorted() sebelum memulai pencarian saat diperlukan.
2. Salah Menentukan Batas Pencarian
Python mengalami error karena nilai low dan high tidak diatur dengan benar. Jika high diisi panjang list tanpa dikurangi satu, indeks bisa keluar batas dan memicu error index out of range. Sebagai solusinya, gunakanlah len(arr) – 1 untuk batas kanan awal.
3. Salah Logika Pembagian Tengah
Sebagian pemula salah menghitung nilai tengah, misalnya tidak menggunakan pembagian bulat. Jika tidak memakai //, hasilnya bisa berupa float dan tidak valid sebagai indeks.
Selain itu, kamu juga perlu menghitung ulang rumus tengah pada setiap iterasi untuk menyelesaikan loop.
Kuasai Binary Search dan Naikkan Skill Pythonmu!
Itulah panduan tentang cara menggunakan binary search di Python yang bisa kamu terapkan. Dengan fitur ini, kamu bisa melakukan pencarian cepat dan menyusun logika dengan runtut untuk melatih skill programmer sebagai seorang problem solver.
Nah, jika kamu ingin belajar pemrograman dari nol khususnya Python hingga penerapan praktis seperti ini, kamu bisa mengikuti kursus Python dari Coding Studio!
Dalam kelas ini, kamu akan mempelajari konsep dasar sintaks, logika pemrograman, hingga teknik pemecahan masalah berbasis kode.
Berkat pendekatan praktis dan berbasis proyek nyata, kamu bisa mengerjakan project nyata untuk mendapatkan sertifikasi resmi dari Coding Studio.
Yuk, jadilah ahli Python untuk buka peluang karier yang lebih luas di masa depan!