Dictionary — Python

Dictionary di Python Dictionary menyimpan data dalam pasangan key-value. Keys harus unik dan immutable. Membuat Dictionary profil = { "nama": "Budi", "umur"…

Dictionary (tipe dict) menyimpan pasangan key dan value: kamu mencari sebuah nilai lewat namanya, bukan lewat nomor urutnya. Bayangin daftar harga di dinding Warung Kopi Pak Darto: "kopi susu 15.000, teh manis 5.000, roti bakar 12.000". Pelanggan tanya "teh manis berapa?", dan Pak Darto mencari tulisan teh manis, bukan "baris nomor 2". Tiap nama cuma ditulis sekali. Kalau harganya naik, angka di sebelah nama itu yang diganti.

🧪 Tebakan cepat: menu = {"kopi susu": 15000, "teh manis": 5000}, lalu print(menu["es jeruk"]). Hasilnya None, 0, atau error? Tebak dulu, jawabannya ada di bagian "Key yang gak ada".

Membuat dictionary

menu = {"kopi susu": 15000, "teh manis": 5000, "roti bakar": 12000}

print(menu)                  # {'kopi susu': 15000, 'teh manis': 5000, 'roti bakar': 12000}
print(menu["teh manis"])     # 5000
print(len(menu))             # 3
print("teh manis" in menu)   # True
print(15000 in menu)         # False

Menambah, mengubah, menghapus

menu = {"kopi susu": 15000, "teh manis": 5000, "roti bakar": 12000}
menu["es jeruk"] = 8000     # key baru: ditambahkan
menu["teh manis"] = 6000    # key lama: value-nya diganti
del menu["roti bakar"]      # hapus key beserta value-nya
print(menu)                 # {'kopi susu': 15000, 'teh manis': 6000, 'es jeruk': 8000}
Baris Isi menu sesudahnya
menu["es jeruk"] = 8000 {'kopi susu': 15000, 'teh manis': 5000, 'roti bakar': 12000, 'es jeruk': 8000}
menu["teh manis"] = 6000 {'kopi susu': 15000, 'teh manis': 6000, 'roti bakar': 12000, 'es jeruk': 8000}
del menu["roti bakar"] {'kopi susu': 15000, 'teh manis': 6000, 'es jeruk': 8000}

Key yang gak ada

Traceback (most recent call last):
  File "/home/darto/warung.py", line 2, in <module>
    print(menu["es jeruk"])
          ~~~~^^^^^^^^^^^^
KeyError: 'es jeruk'

Minta key yang gak ada dengan kurung siku langsung jadi error: KeyError, diikuti key yang dicari. Bukan None, bukan 0. Itu jawaban tebakannya.

Kalau key-nya memang mungkin gak ada, pakai .get():

menu = {"kopi susu": 15000, "teh manis": 5000, "roti bakar": 12000}
print(menu.get("es jeruk"))        # None
print(menu.get("es jeruk", 0))     # 0
print(menu.get("teh manis", 0))    # 5000

Menelusuri dictionary dengan for

menu = {"kopi susu": 15000, "teh manis": 5000, "roti bakar": 12000}
for nama, harga in menu.items():
    print(f"{nama}: Rp{harga}")
kopi susu: Rp15000
teh manis: Rp5000
roti bakar: Rp12000

Menghitung dengan dictionary

Pak Darto mau tahu berapa kali tiap menu dipesan hari ini. Dictionary cocok untuk itu: key-nya nama menu, value-nya hitungannya.

pesanan = ["kopi susu", "teh manis", "kopi susu", "roti bakar", "kopi susu"]
jumlah = {}
for item in pesanan:
    jumlah[item] = jumlah.get(item, 0) + 1
print(jumlah)   # {'kopi susu': 3, 'teh manis': 1, 'roti bakar': 1}
item jumlah.get(item, 0) jumlah sesudahnya
kopi susu 0 {'kopi susu': 1}
teh manis 0 {'kopi susu': 1, 'teh manis': 1}
kopi susu 1 {'kopi susu': 2, 'teh manis': 1}
roti bakar 0 {'kopi susu': 2, 'teh manis': 1, 'roti bakar': 1}
kopi susu 2 {'kopi susu': 3, 'teh manis': 1, 'roti bakar': 1}

⚠️ Jebakan yang sering ketemu

TL;DR: Dictionary menyimpan pasangan key: value di dalam { }, dan menu["teh manis"] membaca value lewat key-nya. menu[key] = value menambah key baru di ujung atau mengganti value key lama tanpa memindahkan posisinya, dan del menu[key] menghapusnya. Key yang gak ada dengan kurung siku jadi KeyError, sedangkan .get(key, default) mengembalikan default-nya: data.get("email", "tidak ada") menghasilkan tidak ada. for nama, harga in menu.items(): menelusuri pasangannya sesuai urutan masuk. Untuk menghitung, pakai jumlah[item] = jumlah.get(item, 0) + 1.

Yang akan kamu pelajari