Langsung ke konten

Dictionary di Python: Menyimpan Data Berpasangan Key dan Value

Dictionary menyimpan data berpasangan key dan value di Python. Artikel ini membahas cara membuat dictionary, mengakses value, mengubah item, dan menelusurinya.

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas Set di Python. Sekarang kita simpan data yang punya label, bukan sekadar urutan.

Bayangkan data siswa. Kamu ingin mencari nomor telepon berdasarkan namanya, bukan berdasarkan posisinya. Struktur yang cocok untuk kebutuhan ini adalah dictionary.

Apa itu Dictionary?

Dictionary menyimpan data dalam pasangan key dan value. Setiap key unik dan dipakai untuk mengakses value-nya. Dictionary ditulis dengan {}, dengan format key: value:

harga = {
    "apel": 15000,
    "jeruk": 12000,
    "mangga": 20000,
}

Di sini "apel" adalah key, dan 15000 adalah value. Dictionary juga bisa dibuat dari beberapa baris agar rapi dibaca.

Dictionary kosong ditulis {}:

data = {}
print(type(data))   # <class 'dict'>

Mengakses Value

Value diakses dengan menuliskan key-nya di dalam kurung siku:

harga = {"apel": 15000, "jeruk": 12000}

print(harga["apel"])    # 15000
print(harga["jeruk"])   # 12000

Kalau key-nya tidak ada, Python memberi KeyError:

print(harga["durian"])   # KeyError: 'durian'

Supaya aman, gunakan get(). Method ini mengembalikan None atau nilai default kalau key-nya tidak ada:

print(harga.get("durian"))          # None
print(harga.get("durian", 0))       # 0

Menambah dan Mengubah Item

Menambah atau mengubah item dilakukan dengan cara yang sama, yaitu menugaskan nilai ke key:

harga = {"apel": 15000}

harga["jeruk"] = 12000       # menambah key baru
print(harga)                 # {'apel': 15000, 'jeruk': 12000}

harga["apel"] = 16000        # mengubah value key yang ada
print(harga)                 # {'apel': 16000, 'jeruk': 12000}

Untuk menambah beberapa item sekaligus, gunakan update():

harga = {"apel": 15000}
harga.update({"jeruk": 12000, "mangga": 20000})

print(harga)   # {'apel': 15000, 'jeruk': 12000, 'mangga': 20000}

Menghapus Item

Ada beberapa cara menghapus item:

harga = {"apel": 15000, "jeruk": 12000, "mangga": 20000}

del harga["apel"]           # hapus berdasarkan key
print(harga)                # {'jeruk': 12000, 'mangga': 20000}

jeruk = harga.pop("jeruk")  # hapus dan kembalikan value-nya
print(jeruk)                # 12000
print(harga)                # {'mangga': 20000}

pop() mengembalikan value yang dihapus, sedangkan del tidak. Untuk mengosongkan seluruh dictionary, gunakan clear().

Menelusuri Dictionary

Saat ditelusuri dengan for, dictionary memberi key-nya:

harga = {"apel": 15000, "jeruk": 12000}

for nama in harga:
    print(nama)

Output:

apel
jeruk

Untuk mengambil key dan value sekaligus, gunakan items():

for nama, nilai in harga.items():
    print(f"{nama}: {nilai}")

Kalau hanya butuh value-nya, gunakan values():

for nilai in harga.values():
    print(nilai)

Method Dictionary Umum

MethodKegunaan
get(k)Mengambil value, aman kalau key tidak ada
keys()Mengembalikan semua key
values()Mengembalikan semua value
items()Mengembalikan pasangan key dan value
update(d)Menambahkan atau mengubah banyak item
pop(k)Menghapus key dan mengembalikan value-nya
clear()Mengosongkan dictionary

Mengecek Keberadaan Key

Gunakan in untuk mengecek apakah sebuah key ada:

harga = {"apel": 15000, "jeruk": 12000}

print("apel" in harga)     # True
print("durian" in harga)   # False

Pola ini sering dipakai sebelum mengakses data yang belum tentu ada.

Nested Dictionary

Value dictionary bisa berupa dictionary lain. Struktur ini disebut nested dictionary, berguna untuk data bertingkat:

siswa = {
    "budi": {"umur": 20, "jurusan": "Informatika"},
    "sari": {"umur": 21, "jurusan": "Sistem Informasi"},
}

print(siswa["budi"]["jurusan"])   # Informatika

siswa["sari"]["umur"] = 22
print(siswa["sari"])              # {'umur': 22, 'jurusan': 'Sistem Informasi'}

Untuk mengakses nilai di dalamnya, tuliskan key-nya berurutan.

Contoh Program: Menghitung Frekuensi Kata

Mari hitung berapa kali setiap kata muncul dalam sebuah kalimat:

# frekuensi_kata.py

kalimat = "apel jeruk apel mangga jeruk apel"
frekuensi = {}

for kata in kalimat.split():
    frekuensi[kata] = frekuensi.get(kata, 0) + 1

for kata, jumlah in frekuensi.items():
    print(f"{kata}: {jumlah}")

Output:

apel: 3
jeruk: 2
mangga: 1

Pola frekuensi.get(kata, 0) + 1 adalah cara ringkas menambah hitungan tanpa cek manual. split() memecah kalimat menjadi list kata, yang akan dibahas di artikel tentang string.

Kesalahan Umum Pemula

  • Mengakses key yang tidak ada — memicu KeyError, gunakan get().
  • Memakai list sebagai key — key harus hashable, list tidak bisa.
  • Mengira key boleh duplikat — key terakhir yang menang, nilai lama tertimpa.
  • Lupa items() saat butuh value — for x in dict memberi key.
  • Mengubah dictionary saat ditelusuri — bisa memicu RuntimeError; telusuri salinannya bila perlu.

Ringkasan

  • Dictionary menyimpan pasangan key dan value
  • Key bersifat unik dan dipakai untuk mengakses value
  • get() aman untuk key yang mungkin tidak ada, [] memicu KeyError
  • Method umum: keys(), values(), items(), update(), pop()
  • Nested dictionary menyimpan data bertingkat
  • Dictionary cocok untuk mencari data berdasarkan label

Langkah Selanjutnya

Sekarang kamu punya empat struktur data: list, tuple, set, dan dictionary. Membuat list baru dari list lama sering butuh perulangan dan append(), yang sebenarnya bisa dipersingkat.

Artikel selanjutnya membahas List Comprehension di Python, cara membuat list dengan satu baris ringkas.