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.

Siapkan Data Terurut dan Nilai Target

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.

Buat Fungsi Binary Search dengan Parameter Data dan Target

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.

Tentukan Batas Kiri dan Kanan Area Pencarian

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.

Buat Perulangan Selama Area Pencarian Masih Ada

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.

Hitung Posisi Tengah dan Bandingkan dengan Target

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.

Kembalikan Nilai Jika Target Tidak Ditemukan

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.

Panggil Fungsi dan Tampilkan Hasilnya

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

Hasil Kode untuk Praktek Menggunakan Binary Search di Python

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!