Dictionary¶
Sekarang kita akan membahas struktur data terakhir yang perlu kita pahami dalam Python, yaitu dictionary. Dictionary adalah objek pemetaan (mapping) yang memetakan objek-objek yang memiliki nilai hash (hashable) ke sebarang objek. Semua objek pemetaan memiliki karakteristik mutable, yaitu bisa diubah. Artinya, kita bisa mengubah elemen-elemen di dalam dictionary. [Fou21d]
Karena dictionary memetakan suatu nilai ke nilai yang lain, maka suatu elemen dalam dictionary terdiri dari 2 jenis: key dan value.
key, adalah tipe data yang hashable, yang berarti antara angka, string, atau tuple, yang berfungsi sebagai indeks.
value, adalah objek sebarang tipe data yang melekat pada satu key tertentu.
List vs Dictionary¶
Untuk list, kita bisa mengakses suatu elemen dengan menggunakan indeks yang dimulai dari 0
sampai dengan n-1
atau negatif indeks yang dimulai dari -n
sampai -1
. Dictionary juga mengizinkan kita untuk mengakses elemen, umumnya value, dengan menggunakan suatu indeks. Hanya saja, pada dictionary, kita menggunakan key untuk mengakses suatu value.
Sebagai contoh, misalkan kita ingin mencatat data tinggi badan beberapa orang sebagai berikut: 166
, 169
, 172
. Kita bisa saja membuat sebuah list yang berisi 3 data tersebut yang kemudian bisa kita akses dengan indeks. Akan tetapi, kita juga ingin memasangkan data tinggi badan tersebut dengan nama orang yang bersangkutan. Dengan menggunakan dictionary, kita bisa masangkan nama orang dan tinggi badan orang tersebut dengan pemetaan berikut:
john
→166
stuart
→169
kevin
->171
Kemudian, jika kita ingin mengakses data pertama, alih-alih kita menuliskan height[0]
untuk list, kita bisa dengan jelas memasukkan nama orang yang sudah berfungsi sebagai key dan menggunakannya sebagai indeks semacam height["john"]
.
Mendefinisikan Dictionary dengan {}
¶
Perhatikan bahwa sintaks yang digunakan untuk mendefinisikan dictionary sama dengan yang digunakan untuk set. Hanya saja, penulisan elemennya yang berbeda.
Karena elemen suatu dictionary terdiri dari pasangan key dan value, kita harus menuliskan keduanya dalam satu elemen. Sintaks yang akan digunakan berbentuk: key: value
dan setiap elemen atau pasangan key: value
dipisahkan dengan ,
.
Untuk kasus yang sama pada data tinggi badan di atas, maka kita bisa mendefinisikannya sebagai dictionary seperti di bawah ini.
height = {"john": 166, "stuart": 169, "kevin": 171}
Mari kita coba implementasi kode di atas pada cell di bawah ini.
height = {"john": 166, "stuart": 169, "kevin": 171}
print(height, type(height))
{'john': 166, 'stuart': 169, 'kevin': 171} <class 'dict'>
Jika kita ingin cari tahu berapa tinggi badan Stuart, dengan notasi indexing yang sama dengan list (var[indeks]
), kita bisa langsung tulis saja
print(height["stuart"])
print(height["john"])
print(height["stuart"])
print(height["kevin"])
166
169
171
Bagaimana jika kita mendefinisikan dictionary dengan duplikat key?
height = {"john": 166, "stuart": 169, "kevin": 171, "john": 190, "Kevin": 170}
print(height)
{'john': 190, 'stuart': 169, 'kevin': 171, 'Kevin': 170}
Note
Saat kita mendefinisikan dictionary dengan memasukkan key yang sama lebih dari satu kali, maka pasangan terakhir yang akan disimpan.
Karena dictionary merupakan mutable object, kita bisa mengubah elemen pada dictionary. Untuk mengubah value pada key tertentu, kita bisa langsung menugaskan value yang baru pada key tersebut seperti di bawah ini.
height["Kevin"] = 167
# ubah value kevin dan Kevin
height["kevin"] = 180
height["Kevin"] = 167
print(height)
{'john': 190, 'stuart': 169, 'kevin': 180, 'Kevin': 167}
Mendefinisikan Dictionary dengan dict()
¶
Python menyediakan fungsi bawaan dict()
untuk mendefinisikan dictionary baru dengan cara:
dict()
untuk dictionary kosongdict(john=166, stuart=169, kevin=171)
untuk mendefinisikan dictionary yang sama pada kasus sebelumnyadict()
untuk menginisiasi dictionary kosong, kemudian mengisi pasangan key-value satu per satu, baris per baris
# dictionary kosong
empty_dict = dict()
# cara 1
functional_dict = dict(john=166, stuart=169, kevin=171)
# cara 2
sequential_dict = dict()
sequential_dict["john"] = 166
sequential_dict["stuart"] = 169
sequential_dict["kevin"] = 171
Eksplorasi
Buatlah dictionary dengan nama population
yang berisikan data berikut ini.
keys |
value |
---|---|
Jakarta |
20.8 |
Surabaya |
18.2 |
Bandung |
15.1 |
Semarang |
12.3 |
# KETIK DI SINI
Fungsi dan Metode Bawaan Dictionary¶
Note
Kita hanya mencoba fungsi dan metode bawaan dictionary yang paling sering dipakai karena jumlahnya yang banyak. Untuk detail fungsi dan metode apa saja serta apa kegunaannya, silakan dilihat di halaman dokumentasi.
Beberapa fungsi dan metode bawaan yang sering dipakai disajikan pada tabel di bawah ini.
name |
function/method |
usage |
example |
---|---|---|---|
keys |
method |
return a sequence of dictionary’s keys |
|
values |
method |
return a sequence of dictionary’s values |
|
items |
method |
return a sequence of tuple of key and value pair for first and second index, respectively |
|
get |
method |
return a value of the key passed into |
|
len |
function |
return the length or number of element in dictionary |
|
update |
method |
update the corresponding dictionary with new key-value pair, if the key is already exist, update the value instead |
|
print(height.keys())
dict_keys(['john', 'stuart', 'kevin', 'Kevin'])
print(height.values())
dict_values([190, 169, 180, 167])
print(height.items())
dict_items([('john', 190), ('stuart', 169), ('kevin', 180), ('Kevin', 167)])
print(height.get("Kevin"))
print(height.get("michael"))
print(height.get("michael", "Oops. Key not found!"))
167
None
Oops. Key not found!
height.update({"michael": 177, "kevin": 190})
print(height)
{'john': 190, 'stuart': 169, 'kevin': 190, 'Kevin': 167, 'michael': 177}