Contoh Dictionary Python: Memahami Struktur Data Kunci-Nilai

Nama: Budi Usia: 30 Kota: Jakarta { ... }

Dictionary dalam Python adalah salah satu struktur data bawaan yang sangat penting. Berbeda dengan List atau Tuple yang menyimpan data berdasarkan urutan indeks numerik, Dictionary menyimpan data dalam pasangan kunci (key) dan nilai (value), sering disebut juga sebagai struktur data asosiatif atau hash map.

Kunci dalam dictionary harus unik dan tidak dapat diubah (immutable), seperti string, angka, atau tuple. Nilai (value) bisa berupa tipe data apa pun, termasuk list, dictionary lain, atau objek. Kemampuan ini membuat dictionary menjadi alat yang sangat efisien untuk mencari, mengakses, dan mengelola data yang terstruktur secara logis.

Membuat dan Mengakses Dictionary

Anda dapat membuat dictionary dengan menggunakan kurung kurawal {} dan memisahkan setiap pasangan kunci-nilai dengan titik dua :, serta memisahkan setiap pasangan dengan koma ,.

Contoh Pembuatan Dictionary

# Dictionary yang menyimpan data diri
data_karyawan = {
    "ID": "K001",
    "Nama": "Andi Wijaya",
    "Jabatan": "Developer Senior",
    "Gaji": 12000000,
    "Aktif": True
}

print(data_karyawan)
        

Mengakses Nilai Melalui Kunci

Untuk mengambil nilai dari dictionary, Anda cukup menggunakan kunci di dalam kurung siku [].

nama = data_karyawan["Nama"]
gaji = data_karyawan["Gaji"]

print(f"Nama Karyawan: {nama}")
print(f"Gaji Pokok: Rp {gaji}")
        

Jika Anda mencoba mengakses kunci yang tidak ada, Python akan menghasilkan error KeyError. Untuk menghindari ini, disarankan menggunakan metode .get():

# Menggunakan .get()
departemen = data_karyawan.get("Departemen", "Tidak Ada Data")
print(f"Departemen: {departemen}")
        

Memodifikasi Dictionary

Salah satu kekuatan dictionary adalah kemudahannya untuk dimodifikasi setelah dibuat. Anda dapat menambah, mengubah, atau menghapus pasangan kunci-nilai.

Menambah atau Mengubah Elemen

Jika kunci sudah ada, nilainya akan diperbarui. Jika kunci belum ada, pasangan kunci-nilai baru akan ditambahkan.

# Mengubah nilai yang sudah ada
data_karyawan["Gaji"] = 13500000

# Menambahkan elemen baru
data_karyawan["Tanggal_Masuk"] = "2020-01-15"

print(data_karyawan)
        

Menghapus Elemen

Anda bisa menggunakan perintah del atau metode .pop().

# Menghapus berdasarkan kunci menggunakan del
del data_karyawan["Aktif"]

# Menghapus dan mengembalikan nilainya menggunakan pop
jabatan_lama = data_karyawan.pop("Jabatan")

print(f"Jabatan yang dihapus: {jabatan_lama}")
print(data_karyawan)
        

Iterasi Melalui Dictionary

Ada beberapa cara standar untuk melakukan iterasi (perulangan) pada dictionary, tergantung pada apa yang ingin Anda akses: kunci saja, nilai saja, atau keduanya.

1. Iterasi Kunci (Default)

for kunci in data_karyawan:
    print(f"Kunci: {kunci}")
        

2. Iterasi Nilai Saja

for nilai in data_karyawan.values():
    print(f"Nilai: {nilai}")
        

3. Iterasi Kunci dan Nilai (Paling Umum)

Metode .items() mengembalikan tuple dari pasangan (kunci, nilai) di setiap iterasi.

print("\nDetail Data:")
for kunci, nilai in data_karyawan.items():
    print(f"- {kunci}: {nilai}")
        

Dictionary Bersarang (Nested Dictionary)

Dictionary dapat berisi dictionary lain sebagai nilainya. Ini sangat berguna untuk merepresentasikan data yang kompleks dan hierarkis, seperti konfigurasi atau data JSON.

siswa = {
    "NIS001": {
        "Nama": "Rina",
        "Kelas": "X-A",
        "Nilai": [85, 90, 78]
    },
    "NIS002": {
        "Nama": "Tono",
        "Kelas": "X-B",
        "Nilai": [70, 88, 92]
    }
}

# Mengakses kelas siswa NIS001
kelas_rina = siswa["NIS001"]["Kelas"]
print(f"Rina berada di kelas: {kelas_rina}")

# Mengakses nilai kedua siswa Tono
nilai_tono_kedua = siswa["NIS002"]["Nilai"][1]
print(f"Nilai kedua Tono: {nilai_tono_kedua}")
        

Dictionary adalah fondasi dalam pemrograman Python, terutama ketika berhadapan dengan API, file konfigurasi, atau data yang perlu diakses secara cepat berdasarkan label spesifik (kunci). Penguasaan struktur data ini akan sangat meningkatkan efisiensi dan keterbacaan kode Anda.