Penerapan List, Dictionary, Tuple, dan Set pada Python

Juni 12, 2019


Pada artikel kali ini kopiding.in akan berbagi sedikit informasi tentang penerapan List, Dictionary, Tuple, dan Set pada bahasa pemrograman python. Dalam artikel ini saya menggunakan versi python 3.6. Oke kalau begitu sepertinya kita sudah harus memulainya.


Pengenalan List, Dictionary, Tuple, dan Set

List, dictionary, tuple merupakan sebuah struktur data. Struktur data sendiri merupakan kumpulan data atau suatu kelompok data dengan tata letak yang berisi kolom-kolom data. Dengan adanya mereka kita dapat menyimpan sekumpulan data hanya dengan satu variabel di waktu yang sama. Baik list, dictionary, dan tuple setiap anggotanya dipisahkan dengan tanda koma (,). Sedangkan set digunakan untuk mengolah suatu himpunan dan anggota set bisa didapat dari variabel bertipe list, dictionary, maupun tuple.



List

Kasus: Bagaimana membuat data berkelompok dengan nilai setiap elemennya dapat diubah?

List merupakan salah satu tipe data yang ada pada python, terkadang sebagian programmer menyebutnya ‘array-nya’ python. Yah walaupun array pada python sebenarnya ada sendiri. List dibentuk dengan menggunakan tanda bracket atau kurung siku [...]. Dengan list kita bisa menentukan dan mengubah nilai setiap elemennya dengan sesuka hati kita.


[1, 2, 3, 4, 5, 6, 7, 8, 9]

Pada contoh program di atas kita punya variabel angka bertipe list yang memiliki 9 anggota [1-9] atau panjang elemen sebesar 9. Masing-masing anggota angka tersebut bertipe data integer (int). Lantas, bagaimana cara kita mengetahui indeks masing-masing anggota dalam variabel angka dan mengganti salah satu atau dua nilai elemen sekaligus?


Karena dalam python indeks suatu data berkelompok dimulai dari 0 maka kita bisa rumuskan sebagai berikut indeks=[data_ke_i – 1]. Misal ingin mencari indeks dari angka 5, maka 5-1=4. Jadi dalam penerapannya kita cukup eksekusi nama_variabel[indeks].


1 5 9

Setelah kita tahu indeks masing-masing elemen sekarang kita mencoba untuk mengganti nilai elemen tersebut. Caranya sangat mudah kita coba mengganti nilai elemen indeks ke-0 yang bernilai 1 dan indeks ke-8 yang bernilai 9.


[10, 2, 3, 4, 5, 6, 7, 8, 90]

Tapi bagaimana kalau datanya besar? Bagaimana cara kita tahu indeks setiap anggota bila datanya banyak? Solusinya kita dapat menggunakan perulangan for seperti berikut, misal kita punya data sampai angka 100.


Nah bisa dilihat di atas kita membuat sebuah perulangan for dengan acuan iterasinya yaitu variabel angka, dalam perulangan tersebut variabel angka kita jadikan parameter pada fungsi enumerate(). Apa kegunaan fungsi enumerate()?


Fungsi enumerate() digunakan untuk mengembalikan objek iterasi yang tiap anggotanya berpasangan dengan indeksnya. Fungsi enumerate() ini memiliki 2 parameter, parameter pertama yaitu data iterasi atau data yang dapat diulang seperti list, dictionary, tuple, dan lain-lain. Parameter ke dua adalah nilai awal dari indeks, nilai defaultnya adalah 0. Jadi jika program di atas dijalankan maka akan seperti ini.


(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
(6, 7)
(7, 8)
(8, 9)
(9, 10)
(10, 15)
(11, 20)
(12, 25)
(13, 30)
(14, 35)
(15, 40)
(16, 45)
(17, 50)
(18, 55)
(19, 60)
(20, 65)
(21, 70)
(22, 75)
(23, 80)
(24, 85)
(25, 90)
(26, 95)
(27, 100)

Angka sebelah kiri merupakan indeksnya sedangkan sebelah kanan adalah data elemen list (indeks, data). Atau saya modifikasi dulu kodingannya menjadi seperti ini.


indeks:  0 | isinya angka:  1
indeks:  1 | isinya angka:  2
indeks:  2 | isinya angka:  3
indeks:  3 | isinya angka:  4
indeks:  4 | isinya angka:  5
indeks:  5 | isinya angka:  6
indeks:  6 | isinya angka:  7
indeks:  7 | isinya angka:  8
indeks:  8 | isinya angka:  9
indeks:  9 | isinya angka:  10
indeks:  10 | isinya angka:  15
indeks:  11 | isinya angka:  20
indeks:  12 | isinya angka:  25
indeks:  13 | isinya angka:  30
indeks:  14 | isinya angka:  35
indeks:  15 | isinya angka:  40
indeks:  16 | isinya angka:  45
indeks:  17 | isinya angka:  50
indeks:  18 | isinya angka:  55
indeks:  19 | isinya angka:  60
indeks:  20 | isinya angka:  65
indeks:  21 | isinya angka:  70
indeks:  22 | isinya angka:  75
indeks:  23 | isinya angka:  80
indeks:  24 | isinya angka:  85
indeks:  25 | isinya angka:  90
indeks:  26 | isinya angka:  95
indeks:  27 | isinya angka:  100

Pada kode di atas tepatnya pada perulangan for saya tambahkan variabel tampungan indeks untuk nantinya menampung indeks data. Apa bisa diakses menggunakan perulangan selain for? while gitu misalnya? Bisa kok.


indeks:  0 | isinya angka:  1
indeks:  1 | isinya angka:  2
indeks:  2 | isinya angka:  3
indeks:  3 | isinya angka:  4
indeks:  4 | isinya angka:  5
indeks:  5 | isinya angka:  6
indeks:  6 | isinya angka:  7
indeks:  7 | isinya angka:  8
indeks:  8 | isinya angka:  9
indeks:  9 | isinya angka:  10
indeks:  10 | isinya angka:  15
indeks:  11 | isinya angka:  20
indeks:  12 | isinya angka:  25
indeks:  13 | isinya angka:  30
indeks:  14 | isinya angka:  35
indeks:  15 | isinya angka:  40
indeks:  16 | isinya angka:  45
indeks:  17 | isinya angka:  50
indeks:  18 | isinya angka:  55
indeks:  19 | isinya angka:  60
indeks:  20 | isinya angka:  65
indeks:  21 | isinya angka:  70
indeks:  22 | isinya angka:  75
indeks:  23 | isinya angka:  80
indeks:  24 | isinya angka:  85
indeks:  25 | isinya angka:  90
indeks:  26 | isinya angka:  95
indeks:  27 | isinya angka:  100

Jika menggunakan while, mula-mula saya membuat variabel indeks untuk menampung nilai indeks awal. Kemudian pada baris while untuk mendapatkan acuan iterasi saya mengambil berdasarkan jumlah anggota di variabel angka dengan fungsi len().


Selama nilai variabel indeks masih belum melebihi rule atau syarat jumlah anggota variabel angka: while indeks<len(angka), maka iterasi akan terus dilakukan: indeks += 1. Namun bila melebihi syarat yang ditentukan maka iterasi akan berhenti.”


Elemen list tidak harus bernilai bilangan bulat bisa juga menggunakan nilai seperti desimal maupun string.


indeks:  0 | isinya angka:  0
indeks:  1 | isinya angka:  0.5
indeks:  2 | isinya angka:  1.0
indeks:  3 | isinya angka:  1.5
indeks:  4 | isinya angka:  2.0
indeks:  5 | isinya angka:  2.5
indeks:  6 | isinya angka:  3.0
aku suka kopiding.in maka dari itu aku akan subscribe

Kode end = " " digunakan untuk menghilangkan enter atau new line setiap kali program menampilkan elemen secara berulang dengan perulangan for.


Dictionary

Kasus: Bagaimana membuat data berkelompok dengan nilai setiap elemennya dapat diubah dan 'indeks' dari tiap elemen tersebut kita yang tentukan?

Untuk mengatasi kasus di atas kita akan menggunakan dictionary. Dictionary dibentuk dengan menggunakan tanda kurung kurawal {...}. Beda halnya dengan list yang hanya mampu membuat data berkelompok dengan nilai yang dapat dirubah, dalam dictionary kita dapat juga menentukan ‘indeks’ dari setiap elemen itu sendiri. Sebenarnya dictionary sendiri tidak memiliki indeks, ‘indeks’ yang dimaksud dalam dictionary disebut kunci atau key. Key bersifat unique yang artinya tidak diperbolehkan ada 2 atau lebih key yang sama.


Setiap elemen dalam dictionary merupakan pasangan yang disebut key-value. Key dan value ini dipisah dengan simbol titik dua atau colon {key : value}. Jika menengok sebentar pada bahasa pemrograman PHP dictionary ini persis dengan array assosiatif. Sedangkan pada bahasa pemrograman Ruby mirip dengan hash.


{1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60, 7: 70, 8: 80, 9: 90}

Cara mengakses elemen di dalam dictionary sama seperti cara mengakses elemen list yaitu dengan tanda kurung siku (bracket). Nah berhubung key di dictionary bisa juga berperan sebagai indeks maka kita bisa mengakses value dari suatu elemen melalui key-nya.


10 50 90

Nah sekarang coba kita edit bagaimana jika dalam dictionary memiliki key yang sama.


{1: 10, 2: 20, 3: 30, 4: 40, 5: 55, 6: 60, 7: 77, 8: 80, 9: 90}

Dapat disimpulkan jika kita memasukkan elemen dictionary dengan key yang sama maka key yang terakhir lah yang diambil.


Jika kita mengakses suatu elemen dictionary dengan key yang belum didaftarkan, maka akan muncul error seperti berikut. Contoh kita akses elemen pada key ke-0 (angka[0]) atau elemen pada key ke-10 (angka[10]).


Traceback (most recent call last):
  File "belajar-dictionary.py", line 3, in 
    print(angka[0])
KeyError: 0
Traceback (most recent call last):
  File "belajar-dictionary.py", line 3, in 
    print(angka[10])
KeyError: 10

Selain dengan kurung siku (bracket) kita juga dapat menggunakan fungsi get().


10 50 90

Key tidak harus bertipe data integer (int) atau bilangan bulat, key juga dapat dibuat dari tipe data string. Begitu juga value-nya.


{'satu': 'apel', 'dua': 'jeruk', 'tiga': 'durian', 'empat': 'pisang', 'lima': 'mangga'}
apel durian mangga

Jika ingin menampilkan daftar key suatu dictionary bisa memanggil fungsi keys() dari kelas dict. Sedangkan untuk menampilkan daftar value menggunakan values().


dict_keys(['satu', 'dua', 'tiga', 'empat', 'lima'])

dict_values(['apel', 'jeruk', 'durian', 'pisang', 'mangga']) 

Tuple

Kasus: Bagaimana cara membuat data berkelompok yang nilai setiap elemennya konstan (tidak dapat dirubah) dan jumlah elemennya pun juga konstan (tidak dapat ditambah maupun dikurangi)?

Solusi dari masalah di atas dapat diatasi dengan penggunaan tuple. Tuple merupakan struktur data yang nilai setiap elemennya bernilai konstan atau tidak dapat dirubah. Tuple dibuat dengan menggunakan tanda kurung (...).


(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100)

Namun, tuple juga dapat dibuat tanpa menggunakan tanda kurung


(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100)

Cara mengaksesnya sama seperti list dan dictionary.


1 6 25 70

Jika kita mencoba mengubah nilai elemen pada tuple maka kita akan ‘ditegur’ oleh python.


Traceback (most recent call last):
  File "belajar-tuple.py", line 7, in 
    angka[0] = 1000
TypeError: 'tuple' object does not support item assignment

Untuk mengetahui indeks dari elemen tertentu di dalam tuple dapat menggunakan fungsi index(). Parameter dalam fungsi index() merupakan nilai elemen yang ingin dicari indeksnya.


0 10 18 27

Set

Kasus: Bagaimana cara membuat data berkelompok tanpa adanya nilai elemen yang sama atau duplikasi?

Jika ingin membuat sekelompok data yang mana setiap elemennya unik tanpa ada data yang sama nilainya, maka kita perlu menggunakan fungsi set(). Data dari set sendiri bisa berasal dari list, dictionary, tuple, dan lain-lain.


Data List:  {40, 10, 50, 20, 30}
Data Tuple:  {40, 10, 50, 20, 30}
Data Dictionary:  {1, 2, 3, 4, 5}

set() tidak memiliki indeks, sehingga urutan anggota pada set menjadi tak beraturan. Sedangkan untuk tipe dictionary nilai default yang dikembalikan merupakan nilai key-nya. Jika ingin menampilkan values nya bisa menggunakan fungsi values().


Data Dictionary:  {40, 10, 50, 20, 30}

Nah sekarang coba kita buktikan apabila kita tambahkan nilai yang sama pada salah satu variabel tadi. Contoh saya akan menggandakan nilai elemen 2 menjadi 2 kali dan nilai dari elemen 3 menjadi 3 kali, lantas apa yang akan terjadi?


Data List:  {40, 10, 50, 20, 30}

Yaps, ternyata nilai-nilai yang sama tadi menjadi hanya satu nilai otomatis ‘kembarannya’ tadi dihapus. Dengan demikian semua anggota dalam variabel angka_list merupakan anggota yang unik atau dengan kata lain setiap elemen satu dengan elemen lainnya tidak ada yang sama.


Kesimpulan

Baik List, dictionary, tuple, dan set sejatinya digunakan untuk mengolah suatu data berkelompok. Masing-masing memiliki perbedaan dan fungsinya tersendiri. Bila hanya ingin membuat data berkelompok yang anggotanya dapat diubah kita cukup butuh list, namun jika perlu mengubah indeksnya bisa menggunakan dictionary. Sedangkan jika data berkelompok yang kita miliki tidak ingin dirubah maka kita pakai tuple. Untuk mencegah duplikasi data dalam data berkelompok gunakan saja set. Anggota list, dictionary, tuple, dan set bisa berasal dari tipe data seperti integer, float, string, dan lain-lain. Bahkan khusus untuk set keanggotaan di dalamnya bisa berasal dari himpunan list, dictionary, maupun tuple.


Referensi


Kata Kunci

  • Tutorial List, Dictionary, Tuple, dan Set pada Python
  • Perbedaan List, Dictionary, Tuple, dan Set pada Python
  • Fungsi List, Dictionary, Tuple, dan Set pada Python

Kategori