lumakoo-tipedata-dictionary

Pada seri ke #6 kita sudah mengenal struktur data list yang mampu menyimpan berbagai macam hal. List biasanya digunakan untuk menyimpan koleksi data.

Namun, list di sisi lain memiliki kekurangan. yaitu list tidak bisa menggunakan kata kunci untuk mengakses itemnya. Hanya bisa menggunakan indeks saja.

Tapi tenang, ada solusi lain untuk menanganinya yaitu menggunakan Dictionary.

Lalu apa saja, mari kita simak...

Apa itu Dictionary

Dictionary adalah struktur data yang bentuknya seperti kamus. Ada kata kunci kemudian ada nilainya. Kata kunci harus bersifat unik, sedangkan nilai boleh diisi apa saja.

Kita buat contoh programnya terlebih dahulu,

pertemuan_hari_ini = {
"judul": "Belajar Dictionary Pada Python 3",
"tanggal": "01 Februari 2021",
"kategori": [
"Python", "Python Dasar"
],
"page_views": 10,
"published": True,
"share_count": {
"facebook": 0,
"twitter": 2
}
}

Pasti sebagian besar kalian bisa memahami secara garis besar apa tugas dan isi dari variabel pertemuan_hari_ini. Jika belum, silahkan kunjungi seri belajar python untuk pemula sebelumnya.

Variabel tersebut menyimpan beebrapa informasi sekaligus seperti judul, tanggal, kategori (yang berupa list), page_views dan sebagainya.

Sifat Dictionary Items

Dictionary item memiliki 3 sifat, yaitu:

  1. Unordered, tidak berurutan
  2. Changeable, bisa diubah
  3. Unique, tidak bisa menerima keys yang sama

Unordered artinya ia tidak berurutan, sehingga key/atribut yang pertama kali didefinisikan, tidak berarti ia menjadi yang pertama dibandingkan dengan key yang lalinnnya. Juga unordered berarti tidak bisa diakses menggunakan indeks seperti list.

Sedangkan changeable artinya kita bisa mengubah value yang kita masukan ke dalam sebuah dictionary. Hal ini berbeda dengan tipe data set maupun tuple yang mana keduanya bersifat immutable alias tidak bisa diubah. 

Dan yang terakhir, dictionary tidak bisa memiliki lebih dari satu key yang sama karna ia bersifat unique. Sehingga jika ada 2 buah key yang sama, key yag didefinisikan paling terakhir akan menimpa nilaidari key yang didefinisikan sebelumnya.

Perhatikan contoh berikut:

var_buah = {
    "apel": "berwarna merah",
    "apel": "berbentuk bulat"
}

print(var_buah.get("apel"))
Maka hasi dari dictionary diatas adalah:

lumakoo-dictionary

Kita bisa perhatikan bahwa pada dictionary var_buah diatas, terdapat dua buah item dengan nama "apel", akan tetapi ketika kita cetak hasilnya hanya nilai yang terakhir kita masukan, dan keetika kita sorot pada blok pycharm pun memeberi informasi "Dictionary contains duplicate keys 'apel'".

Tipe Data pada Items Dictionary

Selain 3 sifat yang telah disebutkan, item pada dictionary juga bisa menerima berbagai macam tipe data, mulai dari tipe data asli maupun tipe data terusan seperti object.

Yang artinya, dictionary juga bisa memiliki value berupa dictionary juga.

Dan ini telah kita contohkan langsung pada variabel pertemuan_hari_ini di kode program diatas.

Cara Membuat Dictionary

Berikut adalah bagaimana cara membuat dictonary padas python.

Ada 2 cara, yaitu:

  1. Dengan menggunakan tanda kurung kurawal {}
  2. Dengan menggunakan fungsiatau konstruktor dict()

perhatikan contoh berikut:

# cara pertama
buku = {
  "judul": "Daun Yang Jatuh Tidak Pernah Membenci Angin",
  "penulis": "Tere Liye"
}

# cara kedua
buku = dict(
  judul="Daun Yang Jatuh Tidak Pernah Membenci Angin",
  penulis="Tere Liye"
)

Cara Mengakses Item Pada Dictionary 

Kita bisa mengakses item pada dictionary dengan dua cara:

  1. Menggunakan kurung siku []
  2. Menggunakan fungsi get()

Kita contohkan saja:

pertemuan_hari_ini = {
  "judul": "Belajar Dictionary Pada Python 3",
  "tanggal": "01 Februari 2021",
  "kategori": [
    "Python", "Python Dasar"
  ],
  "page_views": 10,
  "published": True,
  "share_count": {
    "facebook": 0,
    "twitter": 2
  }
}

Kita bisa mengaksesnya dengan:

print('Judul:', pertemuan_hari_ini.get('judul'))
# atau
print('Tanggal:', pertemuan_hari_ini['tanggal'])

# bisa menggunakan fungsi berantai untuk dictionary bertingkat
print('Facebook share:', pertemuan_hari_ini.get('share_count').get('facebook'))
# bisa juga dengan kurung siku dua-duanya
print('Twitter share:', pertemuan_hari_ini['share_count']['twitter'])

Maka hasilnya:

lumakoo-dictionary

Hanya saja diantara keunggulan menggunakan fungsi get() adalah:

Kita bisa mengatur nilai default jika key pada dictionary yang kita panggil tidak ditemukan. Hal itu akan mencegah sistem untuk menampilkan error.

Kita perhatikan contoh berikut:

share_count = pertemuan_hari_ini.get('share_count')

# ini error
print('Instagram share:', share_count['instagram'])

Dan ketika kita jalankan maka:

lumakoo-dictionary-error

Lalu coba perhatikan menggukan fungsi get():

share_count = pertemuan_hari_ini.get('share_count')

# sedangkan ini tidak error
print('Instagram share:', share_count.get('instagram', 0))

Dan hasilnya:

lumakoo-dictionary

Perulangan Dictionary

Kita juga bisa menampilkan semua isi dari dictionary dengan memanfaatkan perulangan.

Perhatikan contoh berikut:


buku = {
  'judul': 'Hafalan Sholat Delisa',
  'penulis': 'Tere Liye'
}

for key in buku:
  print(key, '->', buku[key])

Jika dijalankan, maka hasilnya:

lumakoo-for-dictionary

Atau kita juga bisa memanggil fungsi dictionary.items() untuk perulangan yang lebih simpel.

for nama_atribut, nilai in buku.items():
  print(nama_atribut, '->', nilai)

Kode diatas akan menghasilkan output yang sama.

Mengubah Nilai Item

Seperti yang telah kita singgung diatas bahwasannya item pada dictionary bersifat changeble alias bisa diubah.

Untuk mengubah nilai item pada suatu dictionary,, caranya simpel seperti mengubah variabel pada umumnya.

Contoh:

mahasiswa = {
  'nama': 'Lendis Fabri',
  'asal': 'Indonesia'
}

# mengubah data
print('Nama awal:', mahasiswa.get('nama'))
mahasiswa['nama'] = 'Andi Mukhlish'
print('Setelah diubah:', mahasiswa.get('nama'))

Output:

lumakoo-dictionary

Menambahkan Item

Untuk menambahkan item key dan item baru, caranya seperti mengedit item.

Jadi:

  • Kalau key yang kita definisikan ternyata sudah ada, sistem akan me-replace item yang lama dengan item baru, alias mengedit
  • Tapi, jika key yang kita definisikan belum ada, maka sistem akan meng-create sebagai item baru

Contoh:

mahasiswa = {
  'nama': 'Novia Anggraeni',
  'asal': 'Indonesia',
}

# output None
print('Hobi:', mahasiswa.get('hobi'))
# tambah data
mahasiswa['hobi'] = 'membaca'
# print ulang
print('Hobi dari {} adalah {}'.format(
  mahasiswa.get('nama'),
  mahasiswa.get('hobi')
))

Kita akan mendapatkan output:

lumakoo-dictionary

Menghapus Item

Untuk menghapus item,terdapat dua cara:

  1. Menggunakan statement del <dict[key]>
  2. Atau menggunakan fungsi dictionary.pop()

Perhatikan contoh berikut:

mahasiswa = {
  'nama': 'Novia Anggraeni',
  'usia': 18,
  'asal': 'Indonesia'
}

del mahasiswa['nama']
mahasiswa.pop('usia')
mahasiswa.pop('asal')

Apa bedanya cara pertama dan cara kedua?

Bedanya kalau fungsi pop(), kita bisa mendapatkan nilai kembalian dari data yang kita hapus.

Contoh:

pesan_singkat = {
  "isi": "ISI PESAN INI HANYA BISA DIBACA SEKALI SAJA!!"
}

isi_pesan = pesan_singkat.pop('isi')

# akses langsung dari dictionary
# ouput: None
print('isi pesan:', pesan_singkat.get('isi'))

# akses dari hasil kembalian yang telah disimpan
print('isi pesan:', isi_pesan)

Output:

lumakoo-dictionary-python

Operator Keanggotaan

Kita bisa memanfaatkan operator keanggotaan untuk tipe data dictionary pada python.

Perhatikan contoh berikut:

mahasiswa = {
  'nama': 'Novia Anggraeni'
}

print('Apakah variabel mahasiswa memiliki key nama?')
print('nama' in mahasiswa)
print('\nApakah variabel mahasiswa TIDAK memiliki key usia?')
print('usia' not in mahasiswa)

Output:

lumakoo-dictionary-python

Panjang atau Banyak Key pada Dictionary

Terakhir tapi bukan yang terakhir, kita bisa juga menghitung jumlah key yang terdapat pada sebuah dicioinary dengan fungsi len().

Contoh:

sekolah = {
  'nama': 'Sekolah Dasar Negeri Jakarta 1',
  'jenjang': 'Sekolah Dasar',
  'akreditasi': 'A'
}

print(
  "Jumlah atribut variabel sekolah adalah:",
  len(sekolah)
)

Output:

lumakoo-dictionary-python

Oke untuk seri dictionary ini saya akhiri sekian dulu.

Terimakasih sudah membaca, dan jangan lupa praktek!