Saat kita pertama kali belajar tentang list dan tuple di Python, banyak dari kita yang masih bingung apa sih perbedaan list dan tuple. List dan tuple merupakan tipe data yang dapat menampung banyak objek. Keduanya juga sama-sama dapat berisi berbagai macam tipe data seperti string, integer, float, boolean, maupun list dan tuple itu sendiri.
List dan tuple juga sama-sama dapat diakses dengan menggunakan indeks. Namun, list dan tuple tetaplah merupakan dua tipe data yang berbeda. Nah, apa perbedaannya? Berikut ini perbedaan list dan tuple.
1. Perbedaan syntax
[]
, sedangkan tuple ditulis di dalam sepasang tanda kurung biasa ()
. Perhatikan contoh berikut. Ini merupakan contoh penulisan list.
listBilangan = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Dan ini merupakan contoh penulisan tuple.
tupleBilangan = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Jika kita print, hasilnya akan seperti ini.
print(listBilangan)
print(tupleBilangan)
Output:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Seperti yang dapat kita lihat di atas, variabel listBilangan
dan tupleBilangan
sama-sama berisi nilai dari 1 sampai 10, namun penulisannya berbeda. listBilangan
didefinisikan menggunakan []
, sementara tupleBilangan
didefinisikan menggunakan ()
.
Baca juga: Konsep Regresi Linear: Simple Linear Regression
Kita juga dapat mengecek tipe data dari dua variabel tersebut menggunakan fungsi type()
untuk membuktikan bahwa listBilangan
dan tupleBilangan
memiliki tipe data yang berbeda.
print(type(listBilangan))
print(type(tupleBilangan))
Output:
<class 'list'> <class 'tuple'>
2. List bersifat mutable dan tuple bersifat immutable
Perbedaan list dan tuple yang kedua yaitu list bersifat mutable yang berarti dapat diubah elemennya, sedangkan tuple bersifat immutable yang berarti tidak dapat diubah elemennya. Misalnya kita akan coba mengubah elemen di indeks 4 pada listBilangan
dan tupleBilangan
.
Pertama kita akan mengubah elemen di indeks 4 pada listBilangan
dengan nilai baru yaitu 100.
listBilangan[4] = 100
listBilangan
Output:
[1, 2, 3, 4, 100, 6, 7, 8, 9, 100]
listBilangan
. Sekarang kita akan mencoba dengan cara yang sama pada tupleBilangan
. tupleBilangan[4] = 100
tupleBilangan
Output:
TypeError Traceback (most recent call last)
<ipython-input-7-6791e40d8fba> in <module>
----> 1 tupleBilangan[4] = 100
2 tupleBilanngan
TypeError: 'tuple' object does not support item assignment
Dapat dilihat bahwa, saat kita melakukan cara yang sama pada tupleBilangan
, pesan error muncul sebagai tanda bahwa kita tidak bisa mengubah isi dari sebuah tuple.
Jadi, jika kita ingin menyimpan data yang sifatnya permanen dan tidak boleh diubah-ubah, tuple adalah pilihan yang lebih baik dibandingkan list. Sebaliknya, jika menginginkan yang lebih fleksibel yang dapat diubah kapanpun, gunakanlah list.
3. Penggunaan memori untuk tuple lebih sedikit dibandingkan dengan list
Dilihat dari segi konsumsi memorinya, tuple menghabiskan lebih sedikit memori dibandingkan list. Kita dapat mengeceknya menggunakan __sizeof__()
.
listBilangan = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
tupleBilangan = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print('Size of listBilangan: ', listBilangan.__sizeof__())
print('Size of tupleBilangan: ', tupleBilangan.__sizeof__())
Output:
Size of listBilangan: 120
Size of tupleBilangan: 104
listBilangan
dan tupleBilangan
sama-sama terdiri dari bilangan yang sama yaitu 1 sampai 10, namun ukuran memori listBilangan
lebih besar dibandingkan dengan tupleBilangan
.
Baca juga: Apa itu Regresi, Klasifikasi, dan Clustering (Klasterisasi)?
4. Tuple bisa digunakan sebagai key pada dictionary, sedangkan list tidak bisa
Karena sifatnya yang immutable atau tidak dapat diubah, tuple dapat digunakan sebagai key pada dictionary. Key pada dictionary harus bersifat hashable, artinya objek yang menjadi key harus memiliki nilai hash yang tidak pernah berubah. Hash sendiri adalah suatu kode berupa huruf maupun angka acak yang didapat dari hasil enkripsi.
dic = {('a', 10): 100,
('b', 20): 200}
dic
Output:
{('a', 10): 100, ('b', 20): 200}
Sekarang mari kita coba menggunakan list sebagai key.
dic = {['a', 10]: 100,
['b', 20]: 200}
dic
Output:
TypeError Traceback (most recent call last)
<ipython-input-10-34988ab833a2> in <module>
1 dic = {['a', 10]: 100,
----> 2 ['b', 20]: 200}
3 dic
TypeError: unhashable type: 'list'
Seperti yang kita lihat di atas, saat list digunakan sebagai key, akan terjadi error yang mengeluarkan pesan error berupa TypeError: unhashable type: ‘list’.
5. List memiliki lebih banyak built-in function dibandingkan dengan tuple
Perbedaan list dan tuple yang terakhir adalah built-in function yang dimiliki list lebih banyak daripada tuple, artinya lebih banyak operasi yang dapat kita lakukan dengan list dibandingkan dengan tuple. Untuk mengeceknya kita dapat menggunakan fungsi dir()
.
Mengecek built-in function list
dir(listBilangan)
Output:
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__delitem__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__gt__',
'__hash__',
'__iadd__',
'__imul__',
'__init__',
'__init_subclass__',
'__iter__',
'__le__',
'__len__',
'__lt__',
'__mul__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__reversed__',
'__rmul__',
'__setattr__',
'__setitem__',
'__sizeof__',
'__str__',
'__subclasshook__',
'append',
'clear',
'copy',
'count',
'extend',
'index',
'insert',
'pop',
'remove',
'reverse',
'sort']
Mengecek built-in function tuple
dir(tupleBilangan)
Output:
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__getnewargs__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__iter__',
'__le__',
'__len__',
'__lt__',
'__mul__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__rmul__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'count',
'index']
Semoga bermanfaat!
Jika Anda yang sedang belajar data science atau mengolah data dengan bahasa pemrograman Python namun masih suka bingung menulis kode Python-nya, kami telah menyusun Paket E-modul Data Science dengan Python yang didesain khusus untuk pemula dengan penjelasan bahasa Indonesia yang lengkap untuk setiap blok kode-nya. Dapatkan sekarang juga dengan klik di sini!