Python 02: Array pada Python (List, Tuple, Dictionary, dan Set)
Memperkenalkan beberapa jenis tipe data di Python yang merepresentasikan data struktur array
Python memiliki berbagai jenis tipe data bawaan (built in data type). Sebelumnya, kita telah mempelajari terkait basic tipe data, seperti integer, float, boolean, dan string. Selanjutnya, kita juga akan belajar terkait tipe data di Python yang merepresentasikan struktur data array.

Di dalam dunia pemrograman, kita mengenal berbagai jenis struktur data, seperti array, hash table, tree, graph, maps, dll. Berbagai jenis struktur data tersebut memiliki kelebihan dan kekurangannya masing-masing. Kami akan fokus membahas tentang data struktur array yang direpresentasikan menjadi sebuah jenis tipe data tertentu di Python.
Array merupakan jenis struktur data yang digunakan untuk menyimpan berbagai data dengan tipe yang sama dalam memori dan dapat diakses menggunakan indeks tertentu. Singkatnya, array merupakan kumpulan nilai (collections). Di Python, array diperlakukan sedikit berbeda dibandingkan bahasa pemrograman lain (diatur pada modul khusus array
). Akan tetapi, Python memiliki jenis tipe data yang dapat direpresentasikan mirip seperti array, tetapi memiliki karakteristik dan keunikannya tersendiri. Tipe data tersebut, antara lain list, tuple, dictionary, dan set.
Daftar isi:
1. List
2. Tuple
3. Dictionary
4. Set
1. List
Jenis tipe data pertama yang akan kita pelajari adalah list. Di Python, list merupakan tipe data yang paling berguna dan banyak digunakan. List merupakan kumpulan nilai dengan urutan tertentu yang didalamnya dapat berupa tipe apa saja [2]. Setiap nilai yang ada di dalam list dinamakan item atau elemen.
Membuat sebuah list
Ada berbagai macam cara untuk membuat tipe data list di Python, seperti menggunakan tanda kurung siku ([value1, value2, ...]
) dan menggunakan fungsi list()
. List dapat dibuat dari 0 item atau lebih yang dipisahkan dengan tanda koma.
Pertama, kita akan mencoba membuat list menggunakan kurung siku. Untuk membuatnya, kalian juga harus menyiapkan variabel yang digunakan untuk menampung list tersebut.

List dapat berisi berbagai jenis tipe data mulai dari integer, float, string, hingga boolean. Setiap nilai-nilai yang ada di dalam kurung siku dipisahkan menggunakan koma.
Kedua, kita juga bisa membuat list menggunakan fungsi internal/bawaan di Python, yaitu list()
.

Hasil akhir akan sama saja (sama-sama menjadi tipe data list), ketika kalian membuat list menggunakan kurung siku atau menggunakan fungsi list. Untuk memeriksa apakah tipe data tersebut termasuk list atau bukan, kalian dapat menggunakan fungsi type()
.

Kita juga bisa membuat list di dalam list yang dinamakan nested list.

Terakhir, salah satu kelebihan dari list adalah duplikasi item. Kita dapat memasukan item yang sama dalam list.
tahun = [2000, 2000, 2002, 2002]
lulus = [True, False, True, False]
List indexing and slicing
Sama seperti array pada umumnya, list juga memiliki index yang digunakan untuk mengakses setiap item dalam list. Indeks positif pada list dimulai dari angka 0 sampai dengan jumlah itemnya.
Untuk melakukan indexing dan slicing, Kalian harus menentukan offsetnya di dalam tanda kurung siku setelah nama list atau nama variabel yang berisi list.

Indeks positif (dari kiri) dimulai dari 0, sedangkan indeks negatif (dari kanan) dimulai dari -1. Kita dapat mengakses item dalam list menggunakan angka indeks atau langsung nama item spesifik terkait.

Perlu diperhatikan disini, ketika kalian menentukan offset yang lebih panjang dari panjang list, itu akan mengembalikan error.

Maka dari itu, penting untuk mengetahui panjang dari suatu list dan untuk memeriksanya dapat menggunakan fungsi len()
.

Fungsi len()
akan mengembalikan jumlah total item yang ada pada list bukan angka maksimum yang ada pada indeks. Jika diketahui total item pada list adalah sebesar 4, maka maksimal indeksnya adalah 3 karena indeks dimulai dari 0.
Sama seperti saat melakukan pengindeksan, untuk melakukan pengirisan (slicing) juga harus menggunakan kurung siku. Saat kalian mengiris sebuah item pada list, dalam tanda kurung siku, kalian dapat menentukan offset awal , offset akhir , dan jumlah langkah di antara keduanya (opsional).

Sekali lagi, nilai untuk pengindeksan dan pengirisan harus berupa bilangan bulat (integer). Jika kalian menggunakan float, itu akan mengembalikan error.

Karena list bersifat mutable (dapat diubah), kalian dapat mengubah item pada list menggunakan metode indexing dan slicing [2].
Untuk mengubah item pada list menggunakan cara pengindeksan, kalian harus menentukan offsetnya, kemudian dilanjut dengan menggunakan assigment operator (=
).

Hampir sama seperti cara pengindeksan, kalian juga dapat mengganti item pada list mengguakan cara pengirisan (slicing).

List operations
Kita dapat menggunakan beberapa operator artimatika pada list. Akan tetapi, hanya operator penambahan dan perkalian yang dapat bekerja pada list.
Operator penambahan (+
) digunakan untuk menggabungkan sebuah list [1].

Sedangkan, operator perkalian (*
) digunakan untuk mengulangi list beberapa kali [1].

Selain operator penambahan dan perkalian, operator lain tidak bisa kita terapkan pada list. Jika kita tetap menerapkannya, maka akan mengembalikan error.

List comparisons
Kita juga dapat membandingkan sebuah list menggunakan operator perbandingan, seperti ==
, <
, !=
, dll. Operator perbandingan akan membandingkan item-item dengan offset yang sama pada kedua list atau lebih [2].

Pada contoh tersebut, list a lebih panjang daripada list b. Oleh karena itu, jika kita menerapkan operasi ==
, akan mengembalikan False
walaupun terdapat nilai yang sama.
List methods
Semua yang ada di Python adalah objek. List juga merupakan sebuah objek. Maka dari itu, Python menyediakan beberapa method yang dapat dioperasikan pada list.

Setiap method pada list memiliki fungsi dan kegunaannya masing-masing. Berikut adalah beberapa methods yang sering digunakan pada list.
Untuk menambahkan item pada list, kalian dapat menggunakan method .append()
dan .extend()
.

Method .append()
menambahkan elemen baru ke akhir pada list, sedangkan method .extend()
akan mengambil list (atau iterable) sebagai argumen dan menambahkan semua elemennya pada list [1].
Kemudian, untuk menghapus item spesifik pada list, kalian dapat menggunakan method .pop()
dan .remove()
.

Sama-sama digunakan untuk menghapus item, tetapi method .pop()
membutuhkan angka indeks (posisi) sebagai argumen. Sedangkan, method .remove()
membutuhkan nilai spesifik sebagai argumen.

Method .sort()
memiliki parameter reverse
yang dapat bernilai True
atau False
(secara default False
). Ketika kita ingin mengurutkan item pada list dimulai dari yang terbesar hingga terkecil, maka kita dapat mengatur parameter reverse=True
dan kebalikannya.
2. Tuple
Tuple merupakan list yang immutable (tidak dapat diubah). Secara keseluruhan, tipe data tuple memiliki kesamaan seperti tipe data list kecuali bahwa objek-objek dalam tuple bersifat immutable yang berarti kita tidak dapat mengubah elemen-elemen dari sebuah tuple setelah ditetapkan.
Membuat tuple
Terdapat beberapa cara untuk membuat tuple di Python, yaitu menggunakan tanda kurung lengkung ((value1, value2, ...)
) dan menggunakan fungsi tuple()
. Sama seperti list, setiap item yang ada di tuple dipisahkan dengan tanda koma.

Terdapat sedikit ketidakkonsistenan dalam pembuatan tuple. Tanpa tanda kurung lengkung, sebenarnya kita bisa membuat tuple dan hanya memerlukan tanda koma.

Nilai yang dihapit oleh tanda kurung lengkung belum tentu bertipe data tuple, tetapi nilai-nilai yang di pisahkan dengan koma dan berada dalam satu variabel merupakan tipe data tuple.

Singkatnya, tanda koma lah yang paling menentukan dalam pembuatan tuple yang menggunakan tanda kurung lengkung maupun tidak. Sama seperti list, tuple juga dapat berisi berbagai macam tipe data.
Selain menggunakan tanda kurung lengkung, kita juga bisa membuat tuple menggunakan fungsi tuple()
.

Jika argumen adalah sequence (string, list, dll.), hasilnya adalah tuple dengan elemen-elemen dari sequence tersebut [2]. Seperti yang terlihat pada contoh, ketika string “brawijaya”
diubah menjadi tuple maka akan menjadi (‘b’, ‘r’, ‘a’, ‘w’, ‘i’, ‘j’, ‘a’, ‘y’, ‘a’)
.
Tuple juga memperbolehkan duplikasi item sama seperti list.
tahun = (2000, 2000, 2002, 2002)
lulus = (True, False, True, False)
Tuple indexing and slicing
Sama seperti list, tiap-tiap item dalam tuple juga memiliki angka indeks yang dimulai dari 0 sampai sejumlah itemnnya. Tidak ada perbedaan yang signifikan dalam melakukan indexing dan slicing seperti yang dilakukan pada list.
Seperti biasa, kalian harus membuat tuple terlebih dahulu dan kemudian menentukan offsetnya dalah tanda kurung siku setelah nama variabel yang berisi tuple.

Sama seperti saat melakukan pengindeksan, untuk melakukan pengirisan (slicing) juga harus menggunakan kurung siku. Saat kalian mengiris sebuah item pada tuple, dalam tanda kurung siku, kalian dapat menentukan offset awal , offset akhir , dan jumlah langkah di antara keduanya (opsional).

Karena tuple merupakan immutable (tidak dapat diubah), kita tidak dapat menggubah item menggunakan metode indexing dan slicing seperti yang dapat kita lakukan pada list. Jika kita melakukannya pada tuple akan mengembalikan error.

Tuple comparisons
Membandingkan sebuah tuple bekerja sama seperti kita membandingkan sebuah list. Kita juga dapat menggunakan operator perbandingan.

Cara kerja perbandingan pada tuple sama seperti list. Python akan membandingkan setiap item yang ada pada tuple sampai dengan item terakhir. Kita ambil contoh pada operator persammaan (==
). Pada contoh tersebut, Python akan membandingkan setiap item pada tuple a dan b. Jika keseluruhan item a == b
, maka Python akan mengembalikan True
. Akan tetapi, jika ada salah satu item saja pada tuple a dan b yang tidak sama, maka Python akan mengembalikan False
.
Tuple Operations
Sama seperti list, operasi artimatika yang bisa kita terapkan pada tuple adalah operasi penambahan (+
) dan perkalian (*
).

Operasi penambahan digunakan untuk menggabungkan sebuah tuple. Sedangkan, operasi perkalian digunakan untuk mengulangi tuple beberapa kali.
Selain operasi artimatika penambahan dan perkalian, akan mengembalikan error
jika kita terapkan pada tuple.

Tuple methods
Sama seperti list, tuple juga merupakan sebuah objek. Hal ini berarti juga terdapat beberapa method yang dapat dioperasikan pada tuple. Akan tetapi, hanya ada 2 method yang bisa dioperasikan pada tuple.

Method .count()
berfungsi untuk menghitung jumlah item spesifik yang ada pada tuple. Method ini memiliki satu parameter yaitu value
. Value berupa item yang akan dicari.

Kemudian, method .index()
digunakan untuk mencari nomor indeks suatu item pada tuple. Sama seperti .count()
, method ini juga memerlukan parameter berupa value
.

Method .index()
akan mencari setiap item yang ada di tuple dan mengembalikan nilai indeks dari item tersebut. Ketika terdapat 2 item atau lebih pada suatu tuple, maka nilai indeks dari item pada urutan pertama lah yang akan digunakan. Akan tetapi, jika tidak ditemukan nilai indeksnya, akan mengembalikan error.
Satu hal yang perlu diperhatikan, kita tidak bisa menerapkan method yang dioperasikan pada list ke tuple. Jika kita melakukan itu, maka akan mengembalikan error.

3. Dictionary
Dictionary merupakaan salah satu fitur terbaik yang ada di Python karena merupakan blok bangungan atau dasar dari banyak algoritma yang efisien dan elegan [1]. Di bahasa pemrograman lain, dictionary mungkin lebih dikenal sebagai associative array, hashes, atau hashmaps [2].
Sama seperti list, dictionary merupakan sebuah tipe data yang digunakan untuk menyimpan data dalam bentuk key dan value. Setiap key dalam dictionary akan berasosiasi dengan sebuah nilai dapat kita sebut sebagai key-value pair atau item. Dictionary membentuk koleksi data yang tidak berurutan, dapat diubah, dan diindeks. Akan tetapi, key dalam dictionary harus selalu unik artinya tidak boleh terdapat duplikasi.
Membuat dictionary
Terdapat dua cara untuk membuat dictionary di Python, yaitu menggunakan kurung kurawal ({key1: value, key2: value, ...}
) dan menggunakan fungsi dict()
. Setiap item atau setiap key-value pair yang ada di dictionary juga dipisahkan oleh tanda koma.
Untuk membuat dictionary, kalian juga harus membuat pasangan key dan value-nya. Key dapat kita ibaratkan seperti sebuah indeks yang ada pada list ataupun array. Sedangkan, value merupakan nilai-nilai yang mengisi dictionary sama seperti list dan tuple.

Untuk membuat dictionary sebenarnya kalian tidak harus menggunakan indetasi saat menuliskan key dan value seperti yang di contohkan. hal ini dilakukan untuk keterbacaan kode (readability) [2].
Kalian juga dapat menuliskan seperti ini:

Selain menggunakan tanda kurung kurawal, untuk membuat dictionary juga bisa menggunakan fungsi dict()
.

Dengan fungsi dict()
, kalian juga dapat mengubah sebuah list dan tuple yang memiliki dua nilai saling berpasangan.

Untuk mengubah tipe data lain menjadi dictionary, hal terpenting adalah nilai tersebut juga dapat diubah menjadi key-value pair.
Berbeda dengan list dan tuple, key dalam dictionary tidak boleh ada duplikasi. Akan tetapi, untuk value dalam dictionary masih diperbolehkan ada duplikasi. Jika dalam key terdapat duplikasi, maka hanya key terakhirlah yang akan digunakan.

Untuk value masih diperbolehkan ada duplikasi.

Menambahkan dan mengakses item pada dictionary
Berbeda dengan tuple, nilai-nilai yang ada di dictionary masih bisa diubah ketika pertama kali didefinisikan. Perlu di ingat, key dalam dictionary tidak bisa diubah ketika sudah didefinisikan. Akan tetapi, kita masih bisa menambahkan sebuah item dengan merujuk key-nya dan menerapkan sebuah value-nya.

Untuk menambahakan sebuah item baru, jangan lupa harus membuat pasangan key dan valuenya. Sedangkan, untuk mengubah sebuah item pada dictionary, kita harus merujuk key-nya setelah itu tinggal menetapkan sebuah value yang baru.
Kemudian, terdapat beberapa cara untuk mengakses sebuah item dalam dictionary. Untuk mengkases sebuah value, kalian dapat dengan merujuk pada key-nya atau dengan menggunakan method .get()
.

Selain itu juga, kita juga dapat mengakses key-nya saja atau hanya value-nya saja, bahkan kita juga dapat mengakses key dan value-nya. Hal ini bisa kita lakukan menggunakan method yang dapat dioperasikan pada dictionary.

Ketika hanya mengakses key saja, kita bisa menggunakan method .keys()
. Sedangkan, untuk mengkases value-nya saja dapat menggunakan method .values()
. Kemudian, untuk mengakses key-value
kita bisa menggunakan method .items()
.
Dictionary comparisons
Sama seperti list dan tuple, kita juga dapat membandingkan sebuah dictionary dengan operator perbadingan. Akan tetapi, hanya operator ==
dan !=
yang dapat dioperasikan pada dictionary.

Selain dari operator di atas, operator perbandingan yang lain tidak akan bekerja jika dioperasikan pada dictionary. Jika kita tetap memaksakannya, Python akan mengembalikan error.

Dictionary methods
Sama seperti tipe data lainnya, juga terdapat beberapa method yang bisa dioperasikan pada dictionary. Beberapa method tersebut seperti yang terlihat pada tabel dibawah ini:

Semua method-method tersebut memiliki fungsi dan kegunaannya masing-masing. Pada uraian di atas sudah dibahas beberapa method, antara lain .get()
, .keys()
, .values()
, dan .items()
.
Satu lagi method yang sering digunakan, yaitu .update()
dan .pop()
. Method .update()
digunakan untuk menggabungkan atau menambahkan sebuah dictionary baru.

Kemudian, method .pop()
digunakan untuk menghapus sebuah item pada dictionary. Ini membutuhkan parameter yang wajib diisi, yaitu keyname.

4. Set
Tipe data terakhir yang akan kita bahas adalah set. Set mirip seperti dictionary yang dihilangkan value-nya dan hanya terdapat key-nya saja. Karena hanya ada key, maka setiap nilai yang pada set haruslah unik (tidak boleh ada duplikasi). Teori dibalik tipe data set ini berasal dari matematika, yaitu himpunan. Jadi, set bekerja seperti himpunan matematika.
Selain tidak terdapat duplikasi, kita juga tidak bisa melakukan idexing dan slicing pada set. Jadi kita tidak bisa mengakses nilai pada set sama seperti yang kita lakukan pada list dan tuple. Selain itu, setelah kita mendefinisikan nilai-nilai pada set, kita tidak bisa mengubahnya dan hanya bisa menambahkan nilai baru pada set.
Membuat set
Terdapat dua cara untuk membuat set, yaitu menggunakan kurung kurawal ({key1, key2, ...}
) dan menggunakan fungsi set()
. Sama seperti tipe data lainnya, setiap item dalam set juga dipisahkan dengan tanda koma.
Sama-sama menggunakan kurung kurawal seperti dictionary, bedanya setiap item pada set tidak memiliki key-value pair
.

Perlu diperhatikan disini, kita tidak bisa membuat set kosong menggunakan kurung kurawal. Ketika kita mencoba membuatnya, Python akan membaca hal tersebut sebagai dictionary. Untuk itu, kita bisa menggunakan fungsi set()
.

Selain itu juga, fungsi set()
juga dapat digunakan untuk mengkonversi jenis tipe data lain menjadi set.

Ketika kita mengubah string menjadi set, Python akan memecah string tersebut menjadi substring dan tidak memperbolehkan ada duplikasi. Contohnya pada string “brawijaya”
menjadi {‘j’, ‘a’, ‘i’, ‘w’, ‘b’, ‘y’, ‘r’}
ketika diubah menjadi set. Kemudian untuk list dan tuple tidak ada perubahan yang signifikan saat dikonversi menjadi set (hanya sajatetap tidak ada duplikasi data).
Akan tetapi, ketika dictionary diubah menjadi set, maka akan menyisakan key-nya saja. Contohnya seperti dictionary {“A”: 100, “B”: 85, “C”: 70, “D”: 60}
yang awalnya terdiri dari key-value pair, tersisa {‘A’, ‘D’, ‘B’, ‘C’}
saat diubah menjadi set.
Set operations
Operator aritmatika tidak dapat dioperasikan pada set. Ketika mecoba di operasikan, maka akan mengembalikan error.

Akan tetapi, terdapat operasi yang bisa dilakukan pada set. Operasi tersebut seperti union (gabungan), intersection (irisan), difference, dan symmetric difference. Cara kerja dari masing-masing operasi ini sama seperti yang ada pada matematika.

Set methods
Set juga merupakan objek. Jadi, terdapat juga beberapa method yang bisa dioperasikan pada set.

Kami akan membahas 3 method yang sering digunakan. Untuk menambahkan item baru pada set, kita bisa melakukannya dengan method .add()
.

Kemudian, untuk melakukan operasi union dan intersection, kita dapat menggunakan method yang ada pada tuple. Untuk melakukan operasi union dapat menggunakan .union()
dan untuk melakukan operasi intersection dapat menggunakan .intersection()
.




Daftar Pustaka:
[1] Downey, A. B. (2015). Think Python: How to Think Like a Computer Scientist. O’Reilly Media.
[2] Lubanovic, B. (2019). Introducing Python: Modern Computing in Simple Packages. O’Reilly Media.