Kembali ke jurnalCATATAN FAJAR
Data Structures2 menit baca

Pengenalan Hash Map

Hash map menyimpan pasangan key dan value untuk lookup, insertion, dan deletion.

Di artikel ini 3 bagian

Hash map muncul di mana-mana di soal algoritma karena dia menghubungkan key ke value dan menawarkan waktu lookup rata-rata O(1). Setelah menyelesaikan puluhan soal, saya mulai mengenali pola pemakaian hash map yang berulang.

Hash map sebagai penyimpanan key value

Hash map menyimpan pasangan key value. Key menentukan lokasi, jadi lookup nggak perlu men-scan setiap value yang tersimpan. Biaya rata-ratanya O(1), walaupun collision dan implementasi yang dipilih memengaruhi detailnya.

Saya pakai hash map untuk cek keanggotaan, menghitung frekuensi, dan menghubungkan satu value dengan value lain. Di tiap kasus, saya menentukan key dan value yang terkait dengannya. Dua contoh berikut bikin polanya jadi konkret.

Contoh dalam kode

Waktu saya perlu menghitung karakter di sebuah string, hash map menyimpan jumlah tiap karakter:

javascript
function countChars(str) {
    const counts = {};
    for (let char of str) {
        counts[char] = (counts[char] || 0) + 1;
    }
    return counts;
}

Untuk mendeteksi duplikat, saya pakai hash map untuk mengingat value mana aja yang udah muncul:

javascript
function hasDuplicate(nums) {
    const seen = {};
    for (let num of nums) {
        if (seen[num]) return true;
        seen[num] = true;
    }
    return false;
}

Kapan struktur lain lebih cocok

Saya menghindari hash map kalau butuh key yang terurut atau range query. Pemakaian memorinya juga bisa jadi batasan. Tree atau struktur terurut lainnya bisa menjawab query semacam itu dengan lebih langsung.

Kalau sebuah soal nanya "have I seen this?" atau "how many times?", saya cek apakah hash map bisa menyimpan state itu. Struktur data ini biasanya pakai space O(n) untuk n key yang tersimpan, jadi keuntungan lookup-nya punya biaya memori yang jelas.

Hash map ngasih lookup rata-rata yang cepat, bikin penghitungan frekuensi jadi gampang, dan mencatat hubungan tanpa pencarian bersarang. Pilihan yang tepat tergantung apakah soalnya butuh urutan, range query, atau pemakaian memori yang lebih rendah.

TOPIK

MAKASIH UDAH BACA

Gimana menurutmu?

Reaksi atau obrolan, dua-duanya selalu ditunggu.

Memuat reaksi…

Bagikan

Memuat komentar...

LANJUT JELAJAH

Satu pikiran bawa ke pikiran lain.

Semua tulisan
Kembali ke semua tulisanSatu catatan, pelan-pelan.