Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Algoritma & Pemecahan Masalah

Pelajaran 9 dari 16

Mencari dan mengurutkan

Pencarian berurut dan pencarian biner

Setelah pelajaran ini kamu bisa membedakan kedua cara pencarian, menghitung langkahnya, dan menyebut syarat yang harus dipenuhi pencarian biner.

±13 menitDiperiksa 23 Sep 2026

Materi

Pencarian berurut memeriksa data satu per satu dari awal sampai yang dicari ditemukan atau datanya habis. Cara ini berjalan pada data dalam urutan apa pun, dan pada daftar berisi seribu data bisa memerlukan seribu pemeriksaan. Pencarian biner memeriksa data di tengah, lalu membuang separuh wilayah yang pasti tidak memuat targetnya, dan mengulanginya. Pada seribu data, sepuluh pemeriksaan sudah cukup.

Harga dari kecepatan itu adalah satu syarat keras: datanya harus sudah urut. Modul bisect menyediakan bisect_left yang mengembalikan titik sisip, yaitu posisi tempat sebuah nilai dapat ditaruh tanpa merusak urutan. Titik sisip itu dipakai untuk dua hal: menyisipkan data baru, dan memeriksa apakah sebuah nilai sudah ada dengan membandingkan isi pada posisi tersebut.

from bisect import bisect_left

suhu = [21, 24, 27, 30]
print(bisect_left(suhu, 27))   # 2, posisi 27 sekarang
print(bisect_left(suhu, 26))   # 2, tempat 26 akan disisipkan

Cara yang sama dipakai basis data. Dokumentasi perencana kueri SQLite menjelaskan bahwa kueri yang dapat memakai indeks dijawab dengan pencarian biner pada indeks itu, bukan dengan membaca seluruh tabel. Indeks pada basis data adalah salinan kolom yang disimpan dalam keadaan urut, persis syarat yang sama.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Daftar kode barang belum diurutkan, lalu pencarian biner dipakai padanya. Apa yang terjadi?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi