Dictionary

Dictionary adalah tipe data yang anggotanya terdiri dari pasangan kunci:nilai (key:value). Dictionary bersifat tidak berurut (unordered) sehingga anggotanya tidak memiliki indeks.

Membuat Dictionary

Dictionary dibuat dengan menempatkan anggotanya di dalam tanda kurung kurawal { }, dipisahkan oleh tanda koma.

Anggota dictionary terdiri dari pasangan kunci:nilai. Kunci harus bersifat unik, tidak boleh ada dua kunci yang sama dalam dictionary.

# Membuat dictionary kosong
my_dict = {}

# dictionary dengan kunci integer
my_dict = {1: 'sepatu', 2: 'tas'}

# dictionary dengan kunci campuran
my_dict = {'warna': 'merah', 1: [2,3,5]}

# membuat dictionary menggunakan fungsi dict()
my_dict = dict([(1:'sepatu'), (2:'bola')])

Mengakses Anggota Dictionary

Dictionary tidak menggunakan indeks. Anggota dictionary diakses dengan menggunakan kuncinya. Selain itu, bisa juga diakses dengan menggunakan fungsi get().

Dengan menggunakan fungsi get(), bila kunci tidak ada di dalam dictionary, maka akan dikembalikan None. Bila tidak menggunakan fungsi get(), maka akan terjadi error KeyError bila kunci yang hendak diakses tidak ada di dalam dictionary.

  my_dict = {'nama':'Budi', 'usia':27} # output: Budi print(my_dict['nama']) # output 27 print(my_dict.get('usia')) # Mengakses kunci yang tidak tersedia menyebabkan KeyError my_dict['alamat']

Mengubah Anggota Dictionary

Dictionary bersifat mutable. Kita bisa menambahkan atau mengubah nilai dari anggotanya menggunakan operator penugasan. Bila kunci sudah ada, maka nilainya yang akan diupdate. Bila kunci belum ada, maka akan ditambahkan sebagai kunci baru.

  my_dict = {'nama':'Gani', 'usia':35} # mengupdate nilai my_dict['usia'] = 36 # Output: {'nama': 'Gani', 'usia':36} print(my_dict) # menambah anggota my_dict['alamat'] = 'Medan' # output: {'alamat': 'Medan', 'nama':'Gani', 'usia':36} print(my_dict)  

Menghapus Anggota Dictionary

Kita bisa menghapus anggota tertentu pada dictionary dengan menggunakan fungsi pop(). Fungsi ini menghapus anggota dengan mengembalikan kunci dari anggota tersebut.

Fungsi lain, popitem() digunakan untuk menghapus anggota acak dari dictionary. Untuk menghapus semua anggota dictionary, bisa menggunakan fungsi clear().

Selain itu kita juga bisa menggunakan kata kunci del untuk menghapus anggota tertentu atau menghapus dictionary itu sendiri.

  # membuat dictionary baru pangkat = {1:1, 2:4, 3:9, 4:16, 5:25} # menghapus anggota tertentu # output: 9 print(pangkat.pop(3)) # menghapus anggota secara acak # output: (1,1) print(pangkat.popitem()) # yang tersisa adalah {2:4, 4:16, 5:25} print(pangkat) # delete 5 del pangkat[5] # output: {2:4, 4:16} print(pangkat) # menghapus semua anggota pangkat.clear() # menghapus dictionary pangkat del pangkat # Error karena pangkat sudah dihapus print(pangkat)

Metode (Fungsi) Dictionary

Dictionary memiliki beberapa metode/fungsi untuk melakukan berbagai operasi. Beberapa di antaranya sudah digunakan di atas. Selengkapnya bisa dilihat pada tabel berikut:

Metode Deskripsi
clear() Menghapus semua anggota dictionary
copy() Mengembalikan shallow copy dari dictionary
fromkeys(seq[, v]) Mengembalikan dictionary baru dengan kunci-kuncinya dari seq, dan nilainya sama dengan v (defaultnya None)
get(key[,d]) Mengembalikan nilai dari key. Bila key tidak tersedia, kembalikan d (defaultnya None)
items() Mengembalikan view baru (berisi semua pasangan key,value dari dictionary
keys() Mengembalikan view baru (berisi semua kunci pada dictionary)
pop(key[,d]) Menghapus anggota yang memiliki kunci key dan mengembalikan nilai d jika kunci tidak ada dalam dictionary. Bila d tidak dibuat, dan key tidak ditemukan, akan menghasilkan KeyError
popitem() Menghapus anggota secara acak. Menghasilkan KeyError jika dictionary kosong
setdefault(key[,d]) Bila key ada dalam dictionary, kembalikan nilainya. Bila tidak, sisipkan key dengan nilai d dan kembalikan d (defaulnya None)
update([other]) Mengupdate dictionary dengan menambahkan anggota dari dictionary lain other, timpa (overwrite) bila ada kunci yang sama
values() Mengembalikan view baru (berisi semua value pada dictionary)