Learn
← Previous Next →

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