Pada seri belajar python dasar ini kita telah membahas berbagai macam tipe data pada python, termasuk tipe data kolektif seperti list, tuple, set, dan dictionary.
Agar lebih paham lagi tentang berbagai macam tipe data kolektif di atas, pada kesempatan kali ini kita akan membahas tentang perbedaan-perbedaan antar tipe data list
, set
, dan tuple
pada python.
Perbedaan Secara Pengertian
Kita mulai dulu dari segi pengertian.
Secara umum, semua tipe data di atas merupakan tipe data kolektif. Artinya: ia bisa menyimpan lebih dari satu nilai dalam satu variabel sekaligus.
Bedanya:
- List adalah tipe data kolektif yang bersifat mutable dan ordered, alias bisa diedit-edit dan bisa diakses via indeks.
- Tuple adalah tipe data kolektif yang bersifat immutable dan ordered. Dalam artian ia sama dengan list, hanya saja tuple tidak bisa diedit-edit.
- Sedangkan Set adalah tipe data kolektif yang bersifat unique, unordered, dan unchangeable di mana semua nilainya harus unik, dan ia tidak bisa diakses via indeks (karena tidak berurut), dan dia tidak bisa diedit-edit (akan tetapi bisa ditambah dan dihapus).
Perhatikan tabel berikut untuk lebih jelasnya:
Sifat | List | Tuple | Set |
---|---|---|---|
Ordered (Bisa diakses via indeks) | β | β | β |
Mutable (Bisa diubah via indeks) | β | β | β |
Changeable (Bisa ditambah anggota baru atau dihapus) | β | β | β |
Unique (Semua anggota harus unik) | β | β | β |
Perbedaan Sintaks Pembuatan
Masing-masing tipe data list
, tuple
, dan set
memiliki sintaks pembuatan tersendiri. Di mana list
menggunakan kurung siku ([])
, tuple
menggunakan kurung biasa (())
atau bisa juga tanpa kurung, dan set
menggunakan tanda kurung kurawal ({})
.
Perhatikan tabel berikut untuk lebih jelasnya:
Tipe Data | Simbol | Contoh |
---|---|---|
list | [] |
a = [1, 2, 3] |
tuple | () |
a = (1, 2, 3) atau a = 1, 2, 3 |
set | {} |
a = {1, 2, 3} |
Perbedaan Cara Mengakses Nilai
Tipe data yang memiliki sifat “ordered” alias terurut (list
dan tuple
), cara mengakses nilainya bisa menggunakan indeks. Sedangkan variabel yang bersifat “unordered” alias tidak terurut seperti set
, ia tidak bisa diakses secara eksplisit.
Contoh list dan tuple:
list_a = [1, 2, 3]
print(list_a[0])
print(list_a[1])
print(list_a[2])
tuple_a = 10, 20, 30
print(tuple_a[0])
print(tuple_a[1])
print(tuple_a[2])
Output:
1
2
3
10
20
30
Contoh set:
set_b = { 15, 16, 17 }
print(set_b[0])
print(set_b[1])
print(set_b[2])
Error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object is not subscriptable
Perbedaan Slicing Data
Untuk list
dan tuple
, tidak ada perbedaan dalam hal slicing data –karena keduanya bersifat ordered.
Ada pun set
, ia tidak mendukung fitur slicing data.
>>> list_a = [1, 2, 3, 4]
>>> tuple_a = tuple(list_a)
>>>
>>> list_a[2:4]
[3, 4]
>>> tuple_a[2:]
(3, 4)
>>>
Perbedaan Ubah Data
Untuk ubah data ada dua tipe:
- ubah data pada indeks tertentu (yang sudah dimasukkan sebelumnya)
- ubah data dalam artian menambahkan data baru atau menghapus data yang sudah ada
Dalam dua tipe di atas, hanya tipe data list
saja yang bisa melakukan semuanya.
Sedangkan set
hanya bisa mengedit data untuk tipe yang kedua.
Ada pun tuple
, maka ia tidak bisa melakukan edit data sama sekali, baik tipe yang pertama mau pun tipe yang kedua.
list_a = [1, 2, 3]
print(f'Sebelum: {list_a}')
# edit data yang paling tengah
list_a[1] = 99
print(f'Sesudah: {list_a}')
Output:
Sebelum: [1, 2, 3]
Sesudah: [1, 99, 3]
Perbedaan Tambah Data
Untuk mengedit data yang dalam artian “menambah data”, maka hanya ada dua tipe data yang bisa melakukannya; yaitu list
dan set
. Ada pun tuple
tidak bisa melakukannya.
Kita bisa menambahkan nilai baru kepada suatu list dengan memanggil fungsi list.append()
, dan kita bisa melakukan hal yang sama dengan set menggunakan fungsi set.add()
.
Perhatikan contoh berikut:
list_a = [1]
set_a = {1, 39}
print('[Sebelum]')
print(f' list\t: {list_a}')
print(f' set\t: {set_a}')
list_a.append(10)
list_a.append(50)
set_a.add(50)
set_a.add(100)
print('[Sesudah]')
print(f' list\t: {list_a}')
print(f' set\t: {set_a}')
Output:
[Sebelum]
list : [1]
set : {1, 39}
[Sesudah]
list : [1, 10, 50]
set : {1, 50, 100, 39}
Perbedaan Hapus Data
Sama seperti sebelumnya, hanya tipe data list
dan set
saja yang bisa melakukan hapus data.
Keduanya sama-sama menggunakan fungsi .remove()
.
Perhatikan contoh berikut:
list_a = [1, 2, 3, 4]
set_a = {1, 2, 3, 4}
print('[Sebelum]')
print(f' list\t: {list_a}')
print(f' set\t: {set_a}')
list_a.remove(2)
list_a.remove(4)
set_a.remove(2)
set_a.remove(4)
print('[Sesudah]')
print(f' list\t: {list_a}')
print(f' set\t: {set_a}')
Output:
[Sebelum]
list : [1, 2, 3, 4]
set : {1, 2, 3, 4}
[Sesudah]
list : [1, 3]
set : {1, 3}
Perbedaan Operator Keanggotaan
Berikutnya adalah penggunaan operator keanggotaan in
atau pun not in
.
Dua operator ini bisa kita gunakan baik pada list
, tuple
, dan set
.
Perhatikan contoh berikut:
>>> list_a = [1, 2, 3]
>>> tuple_a = 1, 2, 3
>>> set_a = {1, 2, 3}
>>>
>>> 1 in list_a
True
>>> 2 not in tuple_a
False
>>> 3 in set_a
True
>>>
Perbedaan Ketika Dilakukan Perulangan
Yang terakhir tapi bukan yang paling akhir, kita bisa melakukan perulangan for untuk ketiga tipe data tersebut.
Akan tetapi perlu diperhatikan bahwa tipe data set bertipe unordered, artinya bahwa data yang kita definisikan bisa jadi urutannya berbeda dengan data yang disimpan oleh sistem.
Perhatikan contoh berikut:
list_a = [3, 10, 1]
tuple_a = 3, 10, 1
set_a = {3, 10, 1}
print('[LIST]')
for item in list_a:
print(item)
print('\n[TUPLE]')
for item in tuple_a:
print(item)
print('\n[SET]')
for item in set_a:
print(item)
Output:
[LIST]
3
10
1
[TUPLE]
3
10
1
[SET]
1
10
3
Kesimpulan
Tiga (dari 4) tipe data kolektif pada python –yaitu list
, set
dan tuple
– memiliki berbagai macam kesamaan dan juga berbagai macam perbedaan.
Masing-masing sifat pada tiap tipe data tersebut memberikan kita keleluasaan untuk memilih mana tipe data yang pas untuk suatu kasus, dan mana tipe data yang cocok untuk suatu kasus yang lain.
Pertemuan Selanjutnya
Oke karena ini adalah pertemuan terakhir dari seri belajar python dasar untuk pemula, pada pada pertemuan selanjutnya kita akan memulai seri baru belajar python untuk tingkat menengah.
Jadi, pastikan kalian tetap semangat dan tetap stay tune, ya! π
Terima kasih banyak.