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
| Method | Kegunaan |
|---|---|
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, gunakanget(). - 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 dictmemberi 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,[]memicuKeyError- 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.
