Belajar Python 4
Mengenal Apa Itu Dict

oleh: Suryo Adhy Chandra, ST

Ilustrasi dictionary Python

Dict atau dictionary adalah tipe data Python untuk menyimpan data dalam bentuk pasangan key dan value. Bayangkan seperti kartu identitas: ada label "nama", lalu isinya "Sinta".

Key adalah nama atau label data. Value adalah isi dari data tersebut.

Coba bayangkan buku telepon atau kamus. Kalau ingin mencari nomor Budi, kamu tidak membuka halaman ke-17 lalu berharap nomornya ada di sana; kamu mencari nama "Budi", dan nomornya langsung ketemu. Cara mencari berdasarkan label seperti itulah yang dikerjakan dict. Pada list, kita mengambil data lewat nomor urut. Pada dict, kita mengambil data lewat nama yang bermakna, sehingga kode lebih mudah dibaca: siswa["kelas"] jelas lebih informatif daripada data[1].

Dict dipakai di mana-mana: data profil pengguna, isi keranjang belanja, hasil dari layanan internet (API), sampai pengaturan aplikasi. Di bab ini kamu akan belajar cara membaca data dengan aman, menghapus dan memperbarui isi, memeriksa keberadaan key, membuat dict di dalam list, serta mengenali pesan kesalahan khas dict seperti KeyError.

1. Membuat dict

siswa = { "nama": "Sinta", "kelas": "7A", "umur": 13 } print(siswa)

2. Mengambil value memakai key

siswa = { "nama": "Sinta", "kelas": "7A", "umur": 13 } print(siswa["nama"]) print(siswa["kelas"])

Pada contoh di atas, "nama" adalah key, sedangkan "Sinta" adalah value. Jika kita tahu key-nya, kita bisa mengambil value-nya.

3. Mengubah dan menambah data dict

siswa["umur"] = 14 siswa["sekolah"] = "Sekolah Masehi" print(siswa)

Dict cocok untuk data yang memiliki keterangan jelas, seperti data siswa, data buku, data produk, atau data nilai.

4. Membaca dengan aman memakai get()

Kalau kita memanggil key yang tidak ada dengan kurung siku, program langsung berhenti karena error. Method get() lebih ramah: bila key tidak ditemukan, ia mengembalikan None atau nilai cadangan yang kita tentukan sendiri sebagai argumen kedua.

siswa = {"nama": "Sinta", "kelas": "7A", "umur": 13} print(siswa.get("nama")) print(siswa.get("alamat")) print(siswa.get("alamat", "belum diisi")) print("kelas" in siswa) print(len(siswa))
Sinta None belum diisi True 3

Baris kedua tidak error walaupun key "alamat" tidak ada. Baris ketiga mengganti hasil kosong dengan teks cadangan. Operator in pada dict memeriksa key, bukan value, dan len() menghitung jumlah pasangan.

5. Menghapus dan memperbarui data

Untuk menghapus pasangan, gunakan del atau pop(). Method pop() sekaligus mengembalikan value yang dibuang. Untuk menambah atau mengganti banyak pasangan sekaligus, pakai update(). Jika key sudah ada, value lamanya ditimpa; jika belum ada, pasangan baru ditambahkan.

siswa = {"nama": "Sinta", "kelas": "7A", "umur": 13} del siswa["umur"] print(siswa) hapus = siswa.pop("kelas") print(hapus, siswa) siswa.update({"hobi": "membaca", "kelas": "8B"}) print(siswa)
{'nama': 'Sinta', 'kelas': '7A'} 7A {'nama': 'Sinta'} {'nama': 'Sinta', 'hobi': 'membaca', 'kelas': '8B'}

Setelah del, pasangan umur hilang. Lalu pop("kelas") mengeluarkan "7A" yang kita simpan ke variabel hapus. Terakhir, update() menambahkan hobi dan memasang kelas baru "8B". Pasangan tersusun menurut urutan pertama kali dimasukkan.

6. Dict di dalam list

Dalam program sungguhan, kita sering punya banyak data bertipe sama, misalnya banyak siswa. Susunan yang paling lazim adalah sebuah list yang setiap anggotanya adalah dict. Untuk membaca, sebut dulu index list-nya, lalu key dict-nya.

data = [ {"nama": "Budi", "nilai": 80}, {"nama": "Sinta", "nilai": 95} ] print(data[1]["nama"]) produk = {"nama": "Pensil", "harga": 2500, "stok": 40} print(produk["harga"] * 4)
Sinta 10000

data[1] mengambil dict kedua (milik Sinta), kemudian ["nama"] mengambil value-nya. Pada contoh produk, value harga adalah angka sehingga langsung bisa dihitung: empat pensil seharga 2500 menjadi 10000.

Key pada dict harus unik dan tidak boleh berupa data yang bisa berubah, seperti list. Jika kita menulis key yang sama dua kali, yang dipakai adalah value yang ditulis paling akhir.

7. Kesalahan yang sering terjadi

Key tidak ditemukan. Memanggil siswa["alamat"] ketika key itu belum ada menghasilkan KeyError: 'alamat'. Solusinya, periksa dengan in atau pakai get().
Memakai nomor urut seperti list. Menulis siswa[0] menghasilkan KeyError: 0, karena dict mencari key bernama 0, bukan elemen pertama.
Memakai list sebagai key. Menulis {["x"]: 1} menghasilkan TypeError: unhashable type: 'list'. Gunakan teks, angka, atau tuple sebagai key.
pop key yang tidak ada. siswa.pop("hobi") tanpa key tersebut juga menghasilkan KeyError: 'hobi', kecuali kita beri nilai cadangan, misalnya siswa.pop("hobi", None).

8. Ringkasan

9. Latihan

  1. Buat dict buku dengan key "judul" dan "tahun", lalu cetak tahunnya.
    Lihat jawaban
    buku = {"judul": "Belajar Python", "tahun": 2024} print(buku["tahun"])
    Keluarannya 2024.
  2. Dari dict tadi, cetak value key "penulis" yang belum ada, dan tampilkan "tidak diketahui" sebagai cadangan.
    Lihat jawaban
    print(buku.get("penulis", "tidak diketahui"))
    Keluarannya tidak diketahui.
  3. Tambahkan key "halaman" bernilai 150 lalu hapus key "tahun". Cetak dict-nya.
    Lihat jawaban
    buku["halaman"] = 150 del buku["tahun"] print(buku)
    Keluarannya {'judul': 'Belajar Python', 'halaman': 150}.
  4. Periksa apakah key "judul" ada di dict buku.
    Lihat jawaban
    print("judul" in buku)
    Keluarannya True.
← Kembali Ke Daftar Pelajaran Python #1