Lompat ke konten utama

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

←

Struktur Data & Algoritma

Pelajaran 10 dari 17

Pohon, tabel hash, dan heap

Tabel hash: cara kerja dict dan set

Setelah pelajaran ini kamu bisa memakai dict dan set untuk pencarian cepat, menjelaskan peran fungsi hash dan tabrakan, dan mengubah kunci tak-hashable menjadi tuple.

±14 menitDiperiksa 1 Okt 2026

Materi

Tabel hash menyimpan pasangan kunci dan nilai dalam larik berisi slot. Fungsi hash mengubah kunci menjadi bilangan bulat, dan bilangan itu menentukan slot tempat kunci disimpan. Mencari kunci tidak perlu membandingkannya dengan semua kunci lain: hitung hash-nya, lalu langsung buka slotnya. Karena itu biaya rata-rata mencari, menyisipkan, dan menghapus tidak bergantung pada banyaknya data. dict dan set di Python adalah tabel hash.

Dua kunci berbeda bisa jatuh ke slot yang sama. Kejadian ini disebut tabrakan, dan tabel hash punya cara menyelesaikannya, misalnya mencari slot lain atau menyimpan beberapa kunci di satu slot. Tabrakan yang sedikit tidak terasa; itu sebabnya biaya tetap tadi disebut rata-rata, bukan jaminan untuk setiap operasi. Tabel hash juga tidak menyimpan urutan berdasarkan nilai kunci, jadi untuk data yang perlu diurut tetap dibutuhkan pengurutan.

kode_aktif = {"BRG-01", "BRG-07", "BRG-12"}   # set
harga = {"BRG-01": 12500, "BRG-07": 8000}   # dict

print("BRG-07" in kode_aktif)   # True, tanpa memeriksa satu per satu
print(harga.get("BRG-99", 0))   # 0, kunci tidak ada

Kunci dict dan anggota set harus hashable: nilai hash-nya tidak boleh berubah selama objek hidup. Tipe bawaan yang tidak bisa diubah seperti str, int, dan tuple berisi nilai hashable memenuhi syarat itu. list dan dict tidak, karena isinya bisa berubah sesudah disimpan dan hash-nya akan menunjuk slot yang salah. Pencarian x in daftar pada list memeriksa data satu per satu; pada set cukup satu perhitungan hash.

Latihan

0/3 lulus

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

Latihan 3 dari 3

Program memeriksa kode in daftar_kode sebanyak 50.000 kali, dan daftar_kode adalah list berisi 100.000 kode. Perubahan mana yang memangkas waktunya paling banyak?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke