Skip to content
INOVATIF, PROFESIONAL, DAN BERKEPRIBADIAN
facebook
youtube
instagram
Pusat Pengelolaan Digitalisasi Penjaminan Mutu Universitas Medan Area
Call Support 0823-6994-9970
Email Support [email protected]
Location Jl. Kolam No. 1 Medan Estate
  • BERANDA
  • TENTANG
    • PROFIL
    • VISI DAN MISI
    • STRUKTUR ORGANISASI
  • BERITA KEGIATAN
  • KERJASAMA
  • LAYANAN & INFORMASI
    • APLIKASI
      • PERPUSTAKAAN UMA
      • ACADEMIC ONLINE CAMPUS (AOC)
      • REPOSITORI UMA
      • TRACER STUDY (ALUMNI)
      • JURNAL
      • E-LEARNING UMA
      • DIREKTORI MAHASISWA
    • ARSIP
      • PERUBAHAN DATA MAHASISWA DI PDDIKTI
      • Buku Pedoman Universitas Medan Area
      • KURIKULUM
        • Kurikulum Teknik
        • Kurikulum Pertanian
        • Kurikulum Ekonomi dan Bisnis
        • Kurikulum Hukum
        • Kurikulum Isipol
        • Kurikulum Psikologi
        • Kurikulum Saintek
        • Kurikulum Agama Islam
      • Kalender Akademik Universitas Medan Area
      • Artikel
    • Helpdesk P2DPM
  • id
    • en
    • id

Mengenal Algoritma Binary Search

Home > Artikel > Mengenal Algoritma Binary Search

Mengenal Algoritma Binary Search

Posted on 19 Mei 202519 Mei 2025 by Anisa Rahma Nasution
0

Algoritma Binary Search (Pencarian Biner) adalah metode pencarian yang efisien untuk menemukan posisi suatu elemen dalam daftar yang sudah terurut (biasanya dalam urutan menaik atau menurun). Binary Search bekerja dengan prinsip membagi dua ruang pencarian setiap kali langkah pencarian dilakukan.

Cara Kerja Binary Search

Berikut adalah penjelasan detail cara kerja algoritma Binary Search, langkah demi langkah:

1. Persiapan

  • Pastikan daftar data dalam urutan terurut (misalnya dari kecil ke besar).

  • Siapkan tiga indeks:

    • low: indeks awal (biasanya 0)

    • high: indeks akhir (panjang array – 1)

    • mid: indeks tengah yang dihitung setiap langkah

2. Langkah-langkah Binary Search

Misalnya kita ingin mencari elemen x dalam array A yang sudah terurut:

Langkah 1: Hitung indeks tengah

mid = (low + high) // 2

Langkah 2: Bandingkan elemen tengah dengan target (x)

  • Jika A[mid] == x: berarti elemen ditemukan, pencarian selesai.

  • Jika x < A[mid]: elemen ada di sebelah kiri → ubah high = mid - 1

  • Jika x > A[mid]: elemen ada di sebelah kanan → ubah low = mid + 1

Langkah 3: Ulangi

  • Ulangi proses dari langkah 1 dengan batas low dan high yang baru sampai:

    • Elemen ditemukan, atau

    • low > high → elemen tidak ditemukan

Contoh Langkah Demi Langkah

Array:

A = [2, 4, 6, 8, 10, 12, 14]
x = 10

  • Langkah 1:
    low = 0, high = 6
    mid = (0+6)//2 = 3 → A[3] = 8
    Karena 10 > 8, pencarian pindah ke kanan → low = 4

  • Langkah 2:
    low = 4, high = 6
    mid = (4+6)//2 = 5 → A[5] = 12
    Karena 10 < 12, pencarian pindah ke kiri → high = 4

  • Langkah 3:
    low = 4, high = 4
    mid = (4+4)//2 = 4 → A[4] = 10
    Ketemu! Elemen ditemukan di indeks ke-4.

Kompleksitas Waktu

  • Best case: O(1) → langsung ketemu di tengah

  • Average/Worst case: O(log n) → karena tiap langkah membagi dua ruang pencarian

Berikut adalah pseudocode dan contoh implementasi Binary Search dalam Python:

function BinarySearch(A, x):
low ← 0
high ← length(A) – 1

while low ≤ high:
mid ← (low + high) // 2
if A[mid] == x:
return mid // elemen ditemukan
else if x < A[mid]:
high ← mid – 1
else:
low ← mid + 1

return -1 // elemen tidak ditemukan

Implementasi Python (Versi Iteratif)

def binary_search(arr, x):
low = 0
high = len(arr) – 1

while low <= high:
mid = (low + high) // 2

if arr[mid] == x:
return mid # posisi ditemukan
elif x < arr[mid]:
high = mid – 1
else:
low = mid + 1

return -1 # tidak ditemukan

# Contoh penggunaan
data = [2, 4, 6, 8, 10, 12, 14]
target = 10

hasil = binary_search(data, target)
if hasil != -1:
print(f”Elemen {target} ditemukan di indeks {hasil}”)
else:
print(“Elemen tidak ditemukan”)

Implementasi Python (Versi Rekursif)

def binary_search_recursive(arr, x, low, high):
if low > high:
return -1 # elemen tidak ditemukan

mid = (low + high) // 2

if arr[mid] == x:
return mid
elif x < arr[mid]:
return binary_search_recursive(arr, x, low, mid – 1)
else:
return binary_search_recursive(arr, x, mid + 1, high)

# Contoh penggunaan
data = [2, 4, 6, 8, 10, 12, 14]
target = 10

hasil = binary_search_recursive(data, target, 0, len(data) – 1)
if hasil != -1:
print(f”Elemen {target} ditemukan di indeks {hasil}”)
else:
print(“Elemen tidak ditemukan”)

Syarat Binary Search

Berikut adalah syarat-syarat Binary Search secara detail, agar algoritma ini bisa bekerja dengan benar dan efisien:

1. Data Harus Sudah Terurut

Penjelasan:

  • Ini adalah syarat utama. Binary Search hanya bisa dilakukan jika data berada dalam urutan menaik (ascending) atau menurun (descending).

  • Jika data tidak terurut, hasil pencarian bisa tidak valid atau salah.

Contoh:

# Bisa (urutan menaik)
[2, 4, 6, 8, 10, 12]

# Tidak bisa
[6, 2, 12, 4, 8, 10] ← ini harus diurutkan dulu

2. Akses ke Data Secara Acak (Random Access)

Penjelasan:

  • Binary Search bekerja optimal jika elemen bisa diakses langsung dengan indeks, seperti pada array atau list.

  • Pada struktur data seperti linked list, binary search tidak efisien, karena kita tidak bisa langsung lompat ke elemen tengah tanpa menelusuri satu per satu.

3. Tahu Posisi Awal dan Akhir (Indeks)

Penjelasan:

  • Binary Search memerlukan batas low (awal) dan high (akhir) untuk menentukan ruang pencarian.

  • Tanpa batas ini, algoritma tidak bisa menghitung titik tengah (mid).

4. Tidak Ada Duplikasi yang Mengganggu (Opsional)

Penjelasan:

  • Binary Search tetap bisa bekerja dengan data duplikat, tapi:

    • Jika kita mencari semua posisi dari elemen yang sama (misal ada dua angka 10), maka versi dasar dari Binary Search tidak cukup.

    • Kita perlu memodifikasi algoritma untuk menemukan kemunculan pertama/terakhir elemen tersebut (disebut modified binary search).

5. Komparasi (Perbandingan) Harus Didefinisikan dengan Jelas

Penjelasan:

  • Binary Search membandingkan elemen tengah dengan target.

  • Artinya, tipe data harus bisa dibandingkan (pakai operator <, >, ==).

  • Untuk tipe data khusus (misalnya objek), kita harus menentukan cara membandingkannya.

6. Tidak Cocok untuk Data yang Terus Berubah

Penjelasan:

  • Jika data sering berubah (bertambah, dihapus, atau diacak), urutan bisa rusak.

  • Setelah perubahan, kita perlu mengurutkan ulang data sebelum pakai binary search lagi.

Kesimpulan:

Syarat Wajib? Penjelasan Singkat
Data terurut ✔️ Harus ascending/descending
Akses acak ✔️ Array/list, bukan linked list
Indeks awal & akhir ✔️ Untuk hitung midpoint
Duplikasi tertangani ⚠️ Perlu modifikasi jika ingin semua hasil
Bisa dibandingkan ✔️ Data harus bisa dibandingkan
Data stabil (tidak berubah-ubah) ⚠️ Jika sering berubah, perlu sortir ulang

Penutup

Algoritma Binary Search adalah metode pencarian yang sangat efisien untuk menemukan elemen dalam daftar yang terurut, dengan kompleksitas waktu O(log n). Keunggulannya terletak pada kecepatan, karena ia membagi ruang pencarian menjadi dua setiap langkahnya. Namun, kelemahannya adalah data harus sudah terurut sebelumnya.

Dengan memahami konsep, cara kerja, serta implementasinya, kamu bisa menggunakan Binary Search dalam berbagai aplikasi seperti pencarian data, pemrograman kompetitif, dan algoritma berbasis pencarian lainnya.

Post Views: 3,108

p2dpm_uma

Jalan Kolam Nomor 1 Medan Estate

Get @reshare_app • @umabestari #UTBKSNBT Semoga Su Get @reshare_app • @umabestari #UTBKSNBT
Semoga Sukses Peserta Seleksi UTBK - SNBT Ujian Masuk Perguruan Tinggi Negeri USU & Unimed Tahun Seleksi 2026 di Kampus I & II Universitas Medan Area.
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #PTSterbaik #UMAkampusJuara #KampusUnggul
#UMAFAIR2026 Wakil Rektor Bidang Kemahasiswaan, In #UMAFAIR2026 Wakil Rektor Bidang Kemahasiswaan, Inovasi dan Alumni Resmi Membuka Acara UMA FAIR 2026 . 

Informasi dan Pendaftaran Mahasiswa Baru : 

➖➖➖➖➖➖➖ 
https://pmb.uma.ac.id 
➖➖➖➖➖➖➖ 

Call Center UMA : 
☎️0811 6013 888 

#ptssehat #PTSterbaik #UMAkampusJuara #KampusUnggul
🌼 Selamat memperingati Hari Kartini 🌼 Jangan perna 🌼 Selamat memperingati Hari Kartini 🌼
Jangan pernah ragu untuk bersuara, menunjukkan kemampuan, dan memperjuangkan apa yg kamu yakini benar.
Get @reshare_app • @umabestari #PRESTASIUMA Alhamd Get @reshare_app • @umabestari #PRESTASIUMA
Alhamdulillan, Selamat dan Sukses Kepada Univeristas Medan Area Meraih Prestasi 9 Penghargaan Pada Anugerah Kementerian Pendidikan Tinggi, Sains dan Teknologi Lembaga Layanan Pendidikan Tinggi Wilayah I Tahun 2025.
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #ptsterbaik #UMAkampusJuara #KampusUnggul
#PMBUMA2026 Bingung Kuliah Dimana? Kuliah di UMA #PMBUMA2026 
Bingung Kuliah Dimana? Kuliah di UMA aja ! Banyak Fasilitas Beasiswanya loh! . 

Informasi dan Pendaftaran Mahasiswa Baru : 

➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖ 

Call Center UMA : 
☎️0811 6013 888 

#ptsfavorite #PTSterbaik #UMAkampusJuara #KampusUnggul
Get @reshare_app • @umabestari #PRESTASIMAHASISWA Get @reshare_app • @umabestari #PRESTASIMAHASISWA
Selamat & Sukses Kepada 
Juara 1 : Allisha Az Zahro 
Juara 2 : Rizky Abdillah
Juara 3: Desy Angelina
Pada Pemilihan Mahasiswa Berprestasi (PILMAPRES) Tingkat Universitas Medan Area Tahun 2025.
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #ptsterbaik #UMAkampusJuara #KampusUnggul
Get @reshare_app • @umabestari #KERJASAMA Universi Get @reshare_app • @umabestari #KERJASAMA
Universitas Medan Area melaksanakan Penanda Tanganan Kerjasama Dengan Pemerintah Kabupaten Deli Serdang 
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #ptsterbaik #UMAkampusJuara #KampusUnggul
Pengumuman Libur Hari Raya Idul Fitri 1447 H Pengumuman Libur Hari Raya Idul Fitri 1447 H
Follow on Instagram

Lokasi P2DPM

url url url url url url url url url url url url

Kategori

  • Berita Terbaru
  • Pengumuman
  • Berita Kegiatan
  • Artikel

POSTINGAN TERPOPULER

  • Memahami Perbedaan Waktu: AM/PM, Zona Waktu, dan Sistem Jam
  • Cara Melihat IP Address di Semua Jenis Perangkat dan Jenis-Jenisnya
  • Dasar-Dasar Desain Grafis: Prinsip yang Harus Diketahui Pemula
  • Manfaat Pengelolaan Sumber Daya Alam Berkelanjutan Untuk Kehidupan
  • Pengertian Gelombang Longitudinal dan Contohnya dalam Kehidupan Sehari-Hari
KAMPUS 1
Jalan Kolam Nomor 1 Medan Estate / Jalan Gedung PBSI, Medan 20223
(061) 7360168, Call Canter : 0811-6013-888
[email protected]
KAMPUS 2
Jalan Sei Serayu Nomor 70 A / Jalan Setia Budi Nomor 79 B, Medan 20122
(061) 42402994, HP : 0811 607 259
[email protected]
© 2026 P2A2I - Universitas Medan Area