Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas List di Python. Sekarang kita pelajari kerabat dekatnya yang justru tidak bisa diubah.
List sangat fleksibel, tapi fleksibilitas itu kadang tidak diinginkan. Ada data yang seharusnya tetap sepanjang program berjalan. Untuk itu Python menyediakan tuple.
Apa itu Tuple?
Tuple adalah kumpulan nilai berurutan yang isinya tidak bisa diubah setelah dibuat. Tuple ditulis dengan tanda kurung biasa ():
titik = (3, 5)
warna = ("merah", "hijau", "biru")
campuran = ("Budi", 25, 170.5)
Sama seperti list, tuple bisa menampung berbagai tipe data. Bedanya, sekali dibuat, isinya terkunci.
Tuple kosong ditulis ():
kosong = ()
print(type(kosong)) # <class 'tuple'>
Membuat Tuple
Selain dengan tanda kurung, tuple juga bisa dibuat tanpa kurung, cukup dengan koma:
titik = 3, 5
print(titik) # (3, 5)
print(type(titik)) # <class 'tuple'>
Koma-lah yang membuatnya tuple, bukan tanda kurungnya.
Hati-hati saat membuat tuple berisi satu item. Kamu tetap perlu koma di belakangnya:
bukan_tuple = (5)
print(type(bukan_tuple)) # <class 'int'>
satu_item = (5,)
print(type(satu_item)) # <class 'tuple'>
Tanpa koma, (5) hanya angka biasa yang dibungkus tanda kurung.
Tuple Tidak Bisa Diubah
Inilah perbedaan utama tuple dari list. Setelah dibuat, itemnya tidak bisa diganti, ditambah, atau dihapus:
titik = (3, 5)
titik[0] = 10 # TypeError: 'tuple' object does not support item assignment
Tuple juga tidak punya method seperti append(), insert(), atau remove(). Yang tersedia hanya method untuk membaca, yaitu count() dan index():
angka = (1, 2, 3, 2, 2)
print(angka.count(2)) # 3
print(angka.index(3)) # 2
Mengakses Item Tuple
Cara mengakses tuple sama seperti list. Gunakan indeks, indeks negatif, atau slicing:
warna = ("merah", "hijau", "biru")
print(warna[0]) # merah
print(warna[-1]) # biru
print(warna[0:2]) # ('merah', 'hijau')
print(len(warna)) # 3
Perhatikan bahwa hasil slicing tuple juga berupa tuple, bukan list.
Tuple juga bisa ditelusuri dengan for:
for w in warna:
print(w)
Unpacking Tuple
Unpacking adalah membongkar isi tuple ke beberapa variabel sekaligus:
titik = (3, 5)
x, y = titik
print(x) # 3
print(y) # 5
Jumlah variabel di kiri harus sama dengan jumlah item tuple. Kalau tidak, Python memberi ValueError:
titik = (3, 5)
x, y, z = titik # ValueError: not enough values to unpack
Kalau hanya butuh sebagian nilai, gunakan tanda bintang * untuk menampung sisanya:
angka = (1, 2, 3, 4, 5)
pertama, *tengah, terakhir = angka
print(pertama) # 1
print(tengah) # [2, 3, 4]
print(terakhir) # 5
Perhatikan bahwa tengah menjadi list, bukan tuple.
Perbedaan Tuple dan List
| Aspek | List | Tuple |
|---|---|---|
| Tanda | [] | () |
| Bisa diubah | Ya | Tidak |
| Method ubah data | Banyak | Tidak ada |
| Kecepatan | Lebih lambat | Lebih cepat |
| Bisa jadi key dictionary | Tidak | Ya |
List dan tuple bisa saling dikonversi:
angka_list = list((1, 2, 3)) # [1, 2, 3]
angka_tuple = tuple([1, 2, 3]) # (1, 2, 3)
Kapan Menggunakan Tuple?
Tuple cocok dipakai saat:
- Data tidak boleh berubah, misalnya koordinat
(x, y)atau nilai konfigurasi. - Ingin mengembalikan banyak nilai dari sebuah function. Function yang mengembalikan beberapa nilai sebenarnya mengembalikan tuple.
- Butuh key dictionary yang berupa kumpulan nilai. Tuple bisa, list tidak karena list tidak hashable.
- Ingin sedikit lebih hemat memori dan waktu dibanding list.
# Function yang mengembalikan banyak nilai
def bagi(a, b):
return a // b, a % b
hasil_bagi, sisa = bagi(10, 3)
print(hasil_bagi, sisa) # 3 1
Contoh Program: Data Karyawan
Mari gunakan tuple untuk menyimpan data karyawan yang tidak berubah:
# data_karyawan.py
karyawan = (
("Budi", "Programmer", 8000000),
("Sari", "Desainer", 7000000),
("Anton", "Manajer", 12000000),
)
total = 0
for nama, jabatan, gaji in karyawan:
print(f"{nama} - {jabatan}: Rp{gaji}")
total += gaji
print(f"Total gaji: Rp{total}")
Output:
Budi - Programmer: Rp8000000
Sari - Desainer: Rp7000000
Anton - Manajer: Rp12000000
Total gaji: Rp26000000
Perhatikan for nama, jabatan, gaji in karyawan. Setiap item adalah tuple, dan unpacking langsung dilakukan di dalam loop.
Kesalahan Umum Pemula
- Lupa koma pada tuple satu item —
(5)adalahint,(5,)baru tuple. - Mencoba mengubah isi tuple — memicu
TypeError. - Memakai method list pada tuple — tuple tidak punya
append()atauremove(). - Salah jumlah variabel saat unpacking — memicu
ValueError. - Mengira hasil slicing tuple berupa list — hasilnya tetap tuple.
Ringkasan
- Tuple adalah kumpulan nilai berurutan yang tidak bisa diubah
- Tuple dibuat dengan
()atau cukup dengan koma - Tuple satu item butuh koma di belakangnya:
(5,) - Item tuple diakses dengan indeks dan slicing seperti list
- Unpacking membongkar tuple ke beberapa variabel sekaligus
- Pakai tuple untuk data yang tetap dan aman dari perubahan
Langkah Selanjutnya
List dan tuple sama-sama menjaga urutan. Tapi kadang urutan tidak penting, yang dibutuhkan justru kumpulan nilai unik tanpa duplikat.
Artikel selanjutnya membahas Set di Python, struktur data untuk menyimpan nilai unik dan melakukan operasi himpunan.
