Langsung ke konten

Tuple di Python: Struktur Data yang Tidak Bisa Diubah

Tuple adalah struktur data berurutan yang isinya tidak bisa diubah setelah dibuat. Artikel ini membahas cara membuat tuple, unpacking, dan kegunaannya.

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

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

AspekListTuple
Tanda[]()
Bisa diubahYaTidak
Method ubah dataBanyakTidak ada
KecepatanLebih lambatLebih cepat
Bisa jadi key dictionaryTidakYa

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) adalah int, (5,) baru tuple.
  • Mencoba mengubah isi tuple — memicu TypeError.
  • Memakai method list pada tuple — tuple tidak punya append() atau remove().
  • 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.