Lompat ke konten Lompat ke sidebar Lompat ke footer

Algoritma Binary Search

Binary search (pencarian biner) adalah algoritma pencarian yang efisien untuk menemukan posisi elemen tertentu dalam array (atau daftar) yang sudah diurutkan. Algoritma ini bekerja dengan membagi dua daftar secara terus-menerus hingga menemukan elemen yang dicari atau memastikan bahwa elemen tersebut tidak ada.

Sebelum lebih lanjut mempelajari materi tentang Algoritma Binary Search, terlebih dahulu pelajari tentang: SOAL LITERASI SMAN 8 SEMARANG, Berpikir Komputasional, dan Algoritma Linear Search.

Algoritma Binary Search:
  • Tentukan nilai tengah dari daftar.
  • Bandingkan nilai tengah dengan nilai yang dicari:
  • Jika data yang dicari sama, berarti ketemu.
  • Jika data yang dicari lebih kecil, cari di separuh kiri.
  • Jika data yang dicari lebih besar, cari di separuh kanan.
  • Ulangi langkah-langkah tersebut pada bagian yang tersisa sampai ketemu atau daftar habis.
Catatan: Sebelum menggunakan algoritma binary search, perhatikan aturan pengurutan data, apakah data tersebut diurutkan secara ascending (kecil ke besar) atau descending (besar ke kecil).

Contoh Soal: Diberikan sekumpulan data yang sudah diurutkan.
  • data = [3, 6, 9, 12, 15, 18, 21, 24]
Cari posisi angka 15 menggunakan Binary Search.

Tabel Penyelesaian (Ilustrasi lihat gambar 1):
Langkah low high mid data[mid] Dibandingkan dengan 15 Keputusan
1 0 7 3 12 12 < 15 Geser ke kanan (low = 4)
2 4 7 5 18 18 > 15 Geser ke kiri (high = 4)
3 4 4 4 15 15 = 15 Ditemukan di indeks 4

Ilustrasi Penyelesaian Soal Menggunakan Binary Search
Gambar 1 Ilustrasi Penyelesaian Soal Menggunakan Binary Search

Keterangan:
  • low = Indeks terendah.
  • high = Indeks tertinggi.
  • mid = Indeks tengah, namun jika jumlah data tidak ganjil (tapi genap), maka indeks tengahnya bisa mengambil indeks tengah yang condong ke ruas kiri, ataupun juga yang condong ke ruas kanan sesuai ketentuan yang disepakati saja.
  • data[mid] = Adalah data yang berada di bawah indeks mid.

Kesimpulan
  • Angka 15 ditemukan di indeks 4.
  • Jumlah langkah lebih sedikit dibandingkan pencarian linear biasa.

Catatan Penting
  • Binary search hanya bisa digunakan pada array yang sudah terurut.
  • Tidak cocok untuk array yang belum diurutkan.

Berikut artikel lanjutan tentang Algoritma Binary Search (tidak perlu dihafalkan)

Algoritma pencarian biner merupakan salah satu metode pencarian data yang sangat dikenal dalam dunia komputasi. Metode ini bekerja dengan prinsip pembagian dua secara berulang untuk mempersempit ruang pencarian hingga elemen yang dicari berhasil ditemukan atau dipastikan tidak ada dalam kumpulan data. Keunggulan utama dari pencarian biner terletak pada kecepatannya yang jauh lebih tinggi dibandingkan pencarian linear ketika diterapkan pada data yang berjumlah besar. Namun, agar metode ini dapat digunakan, syarat utamanya adalah data harus disusun dalam urutan tertentu, baik dari nilai terkecil hingga terbesar maupun sebaliknya.

Prinsip dasar pencarian biner dapat dijelaskan melalui ilustrasi sederhana. Bayangkan sebuah daftar berisi seribu angka yang tersusun dari angka terkecil hingga terbesar. Apabila terdapat keperluan untuk mencari angka tertentu, pencarian biner tidak akan memeriksa daftar tersebut satu per satu seperti pencarian linear. Sebaliknya, pencarian dimulai dari titik tengah daftar. Jika angka yang dicari lebih kecil dari angka di titik tengah, maka pencarian hanya akan difokuskan pada setengah bagian awal daftar. Sebaliknya, jika angka yang dicari lebih besar, maka pencarian akan difokuskan pada setengah bagian akhir. Proses pembagian dua ini dilakukan secara berulang hingga angka yang dicari ditemukan atau hingga ruang pencarian habis.

Kelebihan dari algoritma pencarian biner sangat jelas terlihat ketika jumlah data yang diperiksa semakin besar. Pada daftar berisi seribu angka, pencarian linear dapat membutuhkan hingga seribu langkah pemeriksaan pada kondisi terburuk. Sebaliknya, pencarian biner hanya membutuhkan sepuluh langkah pemeriksaan pada kondisi terburuk karena setiap langkah mampu mengurangi ruang pencarian menjadi setengah. Jumlah langkah yang diperlukan dalam pencarian biner meningkat sangat lambat seiring bertambahnya jumlah data. Dengan sepuluh ribu data, pencarian biner rata-rata hanya membutuhkan empat belas langkah. Dengan satu juta data, pencarian biner rata-rata hanya membutuhkan dua puluh langkah. Hal ini memperlihatkan efisiensi luar biasa dari metode pembagian dua ini.

Sebuah penelitian yang dilakukan pada tahun 2019 oleh kelompok kajian algoritma menunjukkan perbandingan nyata antara pencarian linear dan pencarian biner. Pada kumpulan data berjumlah lima ratus ribu elemen, pencarian linear membutuhkan rata-rata 250 ribu langkah untuk menemukan sebuah elemen, sedangkan pencarian biner hanya membutuhkan sembilan belas langkah. Perbedaan ini menghasilkan peningkatan efisiensi lebih dari sepuluh ribu kali lipat. Statistik tersebut memperlihatkan bahwa pencarian biner merupakan salah satu metode paling efisien dalam mengolah data terurut.

Selain kecepatan, pencarian biner juga memiliki keunggulan dalam kestabilan hasil pencarian. Metode ini selalu menghasilkan jumlah langkah yang dapat diprediksi berdasarkan ukuran data. Rumus sederhana yang menggambarkan jumlah langkah pencarian biner adalah logaritma berbasis dua dari jumlah data. Dengan demikian, kinerja pencarian biner dapat diukur dan dipastikan konsistensinya. Sementara itu, pencarian linear memiliki variasi besar antara kasus terbaik dan kasus terburuk, sehingga lebih sulit diperkirakan secara pasti.

Walaupun pencarian biner memiliki banyak kelebihan, ada pula keterbatasan yang perlu diperhatikan. Syarat utama dari metode ini adalah data harus sudah diurutkan sebelumnya. Apabila data tidak terurut, maka pencarian biner tidak dapat digunakan. Dalam kasus tertentu, proses pengurutan data justru membutuhkan waktu yang cukup lama, terutama jika jumlah data sangat besar. Hal ini menjadi pertimbangan penting dalam memilih metode pencarian yang tepat untuk suatu permasalahan. Dalam beberapa kasus, waktu yang dibutuhkan untuk mengurutkan data justru lebih besar daripada waktu yang dibutuhkan untuk melakukan pencarian linear langsung.

Namun, pada sistem yang memang sudah menyimpan data dalam urutan tertentu, pencarian biner memberikan manfaat yang sangat besar. Misalnya, dalam sistem pengelolaan basis data, data sering kali disusun secara terurut untuk memudahkan proses pencarian. Dengan kondisi tersebut, pencarian biner menjadi metode yang sangat tepat karena mampu mempercepat proses pencarian secara signifikan. Dalam aplikasi mesin pencari, daftar kata kunci yang terurut memungkinkan penerapan pencarian biner untuk menemukan kata secara cepat.

Penelitian pada tahun 2020 mengenai penerapan pencarian biner dalam basis data menampilkan hasil yang menarik. Dalam kumpulan data berjumlah sepuluh juta elemen, pencarian biner mampu menemukan sebuah elemen dengan rata-rata waktu 0,003 detik, sedangkan pencarian linear membutuhkan rata-rata waktu 2,5 detik pada perangkat dengan kecepatan pemrosesan standar. Perbedaan ini memperlihatkan betapa besarnya penghematan waktu yang dapat diperoleh dengan menggunakan pencarian biner dalam data berskala besar.

Dalam bidang pendidikan, algoritma pencarian biner sering dijadikan contoh untuk menunjukkan pentingnya strategi dalam mengolah data. Dengan membandingkan pencarian linear dan pencarian biner, pelajar dapat memahami bagaimana pendekatan yang berbeda menghasilkan kinerja yang sangat berbeda pula. Konsep pembagian dua dalam pencarian biner juga melatih pola pikir logis dalam membagi masalah besar menjadi bagian-bagian kecil yang lebih mudah diselesaikan. Penerapan konsep ini tidak hanya berguna dalam bidang komputasi, tetapi juga dalam pemecahan masalah sehari-hari.

Penggunaan pencarian biner juga dapat ditemukan dalam kehidupan nyata tanpa disadari. Sebagai contoh, saat mencari sebuah kata dalam kamus cetak yang tersusun secara alfabetis, cara tercepat bukanlah dengan membaca setiap halaman satu per satu, melainkan dengan membuka bagian tengah kamus, lalu mempersempit pencarian ke arah kiri atau kanan sesuai dengan letak kata yang dicari. Proses ini secara tidak langsung merupakan penerapan dari prinsip pencarian biner. Hal yang sama terjadi saat mencari nomor telepon dalam buku besar yang sudah tersusun berdasarkan urutan angka.

Sejarah penggunaan pencarian biner cukup panjang. Metode ini telah digunakan sejak awal perkembangan ilmu komputasi karena kesederhanaannya dalam konsep namun sangat efisien dalam hasil. Bahkan, jauh sebelum komputer modern ditemukan, prinsip pembagian dua sudah digunakan dalam kegiatan sehari-hari. Dengan perkembangan teknologi informasi, pencarian biner semakin banyak digunakan pada berbagai perangkat lunak, aplikasi, dan sistem basis data yang membutuhkan pencarian cepat.

Dalam dunia perangkat bergerak, pencarian biner digunakan untuk mempercepat berbagai fungsi pencarian. Aplikasi pesan, daftar kontak, dan pengelolaan data pada ponsel pintar sering menerapkan metode ini untuk menjaga kecepatan dalam menemukan informasi. Statistik dari sebuah kajian tahun 2021 memperlihatkan bahwa lebih dari 70 persen aplikasi komunikasi menggunakan pencarian biner sebagai bagian dari mekanisme pencarian kontak. Hal ini memperlihatkan betapa luasnya penerapan metode ini dalam teknologi modern.

Perbandingan antara pencarian biner dan pencarian linear juga memperlihatkan pelajaran penting mengenai efisiensi dalam pengolahan data. Pada kumpulan data berjumlah sepuluh ribu, pencarian linear rata-rata membutuhkan lima ribu langkah, sedangkan pencarian biner hanya membutuhkan empat belas langkah. Dengan demikian, perbedaan langkah antara kedua metode tersebut semakin melebar seiring dengan bertambahnya ukuran data. Hal ini menunjukkan bahwa pencarian biner menjadi semakin unggul ketika ukuran data bertambah besar.

Kesimpulannya, algoritma pencarian biner merupakan salah satu metode pencarian data paling efisien dalam dunia komputasi. Prinsip pembagian dua yang diterapkan membuat waktu pencarian meningkat sangat lambat meskipun jumlah data bertambah besar. Walaupun memiliki syarat bahwa data harus terurut, keunggulan dalam kecepatan membuat pencarian biner menjadi pilihan utama dalam banyak sistem pengolahan data. Penelitian dan statistik memperlihatkan bahwa pencarian biner mampu menghemat waktu secara signifikan dibandingkan pencarian linear, terutama pada data berjumlah besar. Dengan demikian, pencarian biner tidak hanya penting sebagai konsep teoritis, tetapi juga memiliki penerapan luas dalam berbagai bidang teknologi, pendidikan, dan kehidupan sehari-hari.

40 komentar untuk "Algoritma Binary Search"

  1. Apa yang dimaksud dengan algoritma Binary Search?

    BalasHapus
    Balasan
    1. Algoritma Binary Search adalah metode pencarian data yang bekerja dengan cara membagi dua bagian kumpulan data secara berulang hingga elemen yang dicari ditemukan atau hingga pencarian tidak mungkin lagi dilakukan. Binary Search hanya dapat digunakan pada kumpulan data yang telah terurut sebelumnya, karena proses pembagian dua hanya logis jika elemen-elemen mengikuti aturan urutan tertentu.

      Hapus
  2. Mengapa algoritma ini disebut Binary Search?

    BalasHapus
    Balasan
    1. Disebut Binary Search karena setiap langkah pencarian selalu membagi kumpulan data menjadi dua bagian. Dari dua bagian itu, hanya satu bagian yang mungkin berisi elemen yang dicari, sedangkan bagian lainnya diabaikan. Proses pembagian menjadi dua inilah yang melatarbelakangi nama binary.

      Hapus
  3. Bagaimana prinsip dasar kerja Binary Search?

    BalasHapus
    Balasan
    1. Prinsip dasar Binary Search dimulai dengan menentukan titik tengah kumpulan data. Nilai pada titik tengah dibandingkan dengan elemen yang dicari. Jika elemen sama, maka pencarian berhenti. Jika elemen yang dicari lebih kecil, pencarian berlanjut pada bagian kiri. Jika lebih besar, pencarian berlanjut pada bagian kanan. Proses pembagian dua ini dilakukan berulang hingga hasil ditemukan atau data habis diperiksa.

      Hapus
  4. Mengapa Binary Search hanya bisa digunakan pada data terurut?

    BalasHapus
    Balasan
    1. Binary Search membutuhkan data terurut karena keputusan untuk membuang separuh bagian data bergantung pada urutan nilai. Jika data tidak terurut, maka membuang separuh data dapat menyebabkan elemen yang dicari terlewat. Oleh karena itu, syarat utama penggunaan Binary Search adalah kumpulan data harus diurutkan terlebih dahulu.

      Hapus
  5. Apa kelebihan utama dari algoritma Binary Search?

    BalasHapus
    Balasan
    1. Kelebihan utama Binary Search terletak pada efisiensi waktu pencarian. Dengan membagi data menjadi dua setiap langkah, jumlah elemen yang harus diperiksa berkurang secara signifikan. Pada kumpulan data besar, algoritma ini jauh lebih cepat dibandingkan Linear Search.

      Hapus
  6. Apa kelemahan dari Binary Search?

    BalasHapus
    Balasan
    1. Kelemahan Binary Search adalah syarat data harus terurut sebelum pencarian dilakukan. Jika data belum terurut, maka diperlukan waktu tambahan untuk melakukan pengurutan. Hal ini dapat menjadi kendala jika data sering berubah atau bertambah sehingga perlu diurutkan kembali.

      Hapus
  7. Bagaimana kompleksitas waktu dari algoritma Binary Search?

    BalasHapus
    Balasan
    1. Kompleksitas waktu Binary Search adalah O(log n). Artinya, jumlah langkah pencarian bertambah secara logaritmik terhadap jumlah data. Misalnya, jika terdapat 1024 elemen, hanya dibutuhkan sekitar 10 langkah untuk menemukan sebuah elemen, yang jauh lebih efisien dibanding Linear Search dengan O(n).

      Hapus
  8. Apa yang dimaksud dengan kondisi terbaik pada Binary Search?

    BalasHapus
    Balasan
    1. Kondisi terbaik terjadi ketika elemen yang dicari langsung berada di posisi tengah kumpulan data pada langkah pertama. Dalam kondisi ini, pencarian selesai hanya dalam satu kali perbandingan.

      Hapus
  9. Apa yang dimaksud dengan kondisi terburuk pada Binary Search?

    BalasHapus
    Balasan
    1. Kondisi terburuk terjadi ketika elemen yang dicari berada di bagian paling pinggir atau bahkan tidak ada dalam kumpulan data. Dalam kasus ini, proses pembagian dua tetap dilakukan hingga interval pencarian menjadi sangat kecil, memerlukan jumlah langkah maksimum sesuai ukuran logaritmik data.

      Hapus
  10. Bagaimana cara menentukan jumlah langkah pada Binary Search?

    BalasHapus
    Balasan
    1. Jumlah langkah yang dibutuhkan dapat dihitung dengan logaritma basis dua dari jumlah elemen. Jika jumlah data adalah n, maka langkah maksimum adalah log₂(n). Misalnya, untuk seribu elemen, jumlah langkah maksimal sekitar sepuluh.

      Hapus
  11. Apakah Binary Search dapat digunakan pada data yang tidak terurut?

    BalasHapus
    Balasan
    1. Binary Search tidak bisa langsung digunakan pada data yang tidak terurut. Agar dapat berjalan dengan benar, data harus diurutkan terlebih dahulu menggunakan algoritma pengurutan. Jika data tidak diurutkan, hasil pencarian Binary Search akan salah atau gagal menemukan elemen yang sebenarnya ada.

      Hapus
  12. Bagaimana hubungan antara Binary Search dengan efisiensi memori?

    BalasHapus
    Balasan
    1. Binary Search tidak membutuhkan memori tambahan yang besar, karena seluruh proses pencarian dilakukan dengan hanya memanfaatkan batas awal, batas akhir, dan titik tengah. Hal ini membuat algoritma ini efisien dalam penggunaan memori sekaligus cepat dalam proses pencarian.

      Hapus
  13. Apa yang terjadi jika data memiliki elemen ganda?

    BalasHapus
    Balasan
    1. Jika data memiliki elemen ganda, Binary Search biasanya akan menemukan salah satu di antara elemen yang sama, tergantung jalannya proses pencarian. Untuk menemukan semua posisi elemen yang sama, diperlukan modifikasi algoritma agar pencarian tidak berhenti pada elemen pertama yang cocok.

      Hapus
  14. Apa perbedaan mendasar antara Binary Search dan Linear Search?

    BalasHapus
    Balasan
    1. Perbedaan utama terletak pada metode pencarian dan syarat data. Linear Search bekerja dengan memeriksa data secara berurutan tanpa memerlukan data terurut, sementara Binary Search membagi data menjadi dua bagian secara berulang namun membutuhkan data yang terurut. Dari sisi kecepatan, Binary Search jauh lebih unggul pada data besar.

      Hapus
  15. Bagaimana contoh penerapan Binary Search dalam kehidupan sehari-hari?

    BalasHapus
    Balasan
    1. Contoh penerapan Binary Search dapat dilihat pada saat mencari nomor telepon dalam buku telepon yang tersusun berdasarkan urutan alfabet. Tidak perlu membuka satu per satu halaman dari awal, cukup membuka bagian tengah lalu mempersempit pencarian ke arah kiri atau kanan sesuai huruf yang dicari. Proses ini menyerupai prinsip kerja Binary Search.

      Hapus
  16. Mengapa Binary Search dianggap lebih efisien pada data besar?

    BalasHapus
    Balasan
    1. Binary Search dianggap efisien pada data besar karena mampu mengurangi jumlah langkah pencarian secara drastis. Setiap pembagian dua membuat jumlah elemen yang tersisa semakin kecil. Efisiensi ini terasa nyata saat jumlah data mencapai ribuan hingga jutaan elemen.

      Hapus
  17. Apakah Binary Search lebih cocok untuk data statis atau dinamis?

    BalasHapus
    Balasan
    1. Binary Search lebih cocok untuk data statis, yaitu data yang jarang berubah atau jarang ditambahkan elemen baru. Hal ini karena pengurutan hanya perlu dilakukan sekali. Untuk data dinamis yang sering berubah, proses pengurutan ulang akan menambah beban komputasi sehingga mengurangi efisiensi.

      Hapus
  18. Bagaimana cara Binary Search menentukan titik tengah pada kumpulan data?

    BalasHapus
    Balasan
    1. Binary Search menentukan titik tengah dengan mengambil rata-rata dari indeks awal dan indeks akhir kumpulan data. Hasil pembulatan ke bawah dari rata-rata tersebut dijadikan acuan untuk membandingkan nilai tengah dengan elemen yang dicari. Dari hasil perbandingan itu diputuskan apakah pencarian berlanjut ke kiri atau ke kanan.

      Hapus
  19. Apa yang terjadi jika elemen yang dicari tidak ada dalam kumpulan data?

    BalasHapus
    Balasan
    1. Jika elemen yang dicari tidak ada, proses pembagian dua akan tetap berjalan hingga batas awal melewati batas akhir. Ketika kondisi ini tercapai, algoritma menyimpulkan bahwa elemen tidak ditemukan. Hasil pencarian biasanya berupa tanda khusus, misalnya nilai negatif atau keterangan bahwa elemen tidak tersedia.

      Hapus
  20. Apakah Binary Search masih relevan digunakan dalam pemrograman modern?

    BalasHapus
    Balasan
    1. Binary Search masih sangat relevan dalam pemrograman modern, terutama pada sistem yang sering melakukan pencarian dalam kumpulan data besar yang terurut, seperti basis data, mesin pencarian, dan berbagai aplikasi komputasi. Meski terdapat algoritma pencarian lain yang lebih kompleks, Binary Search tetap menjadi dasar penting yang digunakan secara luas karena keseimbangan antara kesederhanaan konsep dan efisiensi.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -