Hari 10: Dictionary — Penyimpan Data Key-Value
65 min
Last updated 26 Mar 2026
Apa itu Dictionary?
Dictionary menyimpan data dalam pasangan key: value. Key harus unik dan immutable (string, int, tuple). Value bisa apa saja.
mahasiswa = {
"nama": "Budi Santoso",
"nim" : "A12345",
"ipk" : 3.75,
"aktif": True,
"mata_kuliah": ["Algoritma", "Basis Data", "AI"]
}
kosong = {}
kosong2 = dict()
Akses Data
# Akses langsung (KeyError jika tidak ada)
print(mahasiswa["nama"])
# .get() — aman, kembalikan None atau default jika tidak ada
print(mahasiswa.get("jurusan")) # None
print(mahasiswa.get("jurusan", "Tidak ada")) # Tidak ada
# Cek keberadaan key
print("ipk" in mahasiswa) # True
print("alamat" in mahasiswa) # False
Modifikasi Dictionary
profil = {"nama": "Ana", "umur": 22}
# Tambah/ubah
profil["kota"] = "Jakarta" # tambah key baru
profil["umur"] = 23 # ubah value
profil.update({"hobi": "Coding", "umur": 24}) # update banyak sekaligus
# Hapus
del profil["hobi"] # hapus key tertentu
nilai = profil.pop("kota") # hapus & ambil nilainya
profil.pop("tidak_ada", None) # aman jika key tidak ada
profil.clear() # kosongkan semua
Iterasi Dictionary
produk = {"beras": 12000, "minyak": 18000, "gula": 15000}
# Iterasi key saja
for k in produk:
print(k)
# Iterasi value saja
for v in produk.values():
print(v)
# Iterasi key + value
for k, v in produk.items():
print(f"{k}: Rp {v:,}")
Dictionary Methods Lengkap
d = {"a": 1, "b": 2, "c": 3}
print(d.keys()) # dict_keys(['a', 'b', 'c'])
print(d.values()) # dict_values([1, 2, 3])
print(d.items()) # dict_items([('a',1),('b',2),('c',3)])
print(len(d)) # 3
# Gabung dua dict (Python 3.9+)
d1 = {"a": 1, "b": 2}
d2 = {"b": 99, "c": 3}
gabung = d1 | d2 # {"a":1, "b":99, "c":3} — d2 menang
Dictionary Comprehension
# Kuadrat angka 1-5
kuadrat = {n: n**2 for n in range(1, 6)}
print(kuadrat) # {1:1, 2:4, 3:9, 4:16, 5:25}
# Filter harga mahal
harga = {"baju":150000, "tas":300000, "topi":75000, "sepatu":250000}
mahal = {k: v for k, v in harga.items() if v >= 150000}
print(mahal)
# Balik key-value
asli = {"a": 1, "b": 2, "c": 3}
terbalik = {v: k for k, v in asli.items()}
print(terbalik) # {1:'a', 2:'b', 3:'c'}Assignment
Buat program inventory toko. Simpan stok produk di dictionary. Implementasikan: tambah produk, jual produk (kurangi stok dengan validasi), dan tampilkan laporan stok.
Expected output:
--- LAPORAN STOK ---
Beras 5kg : 50 unit
Minyak 1L : 30 unit
Gula 1kg : 40 unit
Tepung 1kg : 25 unit
Total produk: 4
Terjual 5 Beras 5kg. Sisa: 45
Stok Minyak 1L tidak cukup! Tersisa: 30
--- LAPORAN STOK ---
Beras 5kg : 45 unit
Minyak 1L : 30 unit
Gula 1kg : 40 unit
Tepung 1kg : 25 unit
Telur 1kg : 60 unit
Total produk: 5
PY
main.py
Solution
Output