Belajar Python 3
Mengenal Apa Itu Tuple

oleh: Suryo Adhy Chandra, ST

Ilustrasi tuple Python

Tuple adalah tempat menyimpan banyak data seperti list, tetapi isi tuple tidak bisa diubah setelah dibuat. Tuple cocok untuk data yang sifatnya tetap.

Tuple ditulis memakai tanda kurung biasa ( ). Data di dalam tuple dipisahkan dengan koma.

Ada data yang memang tidak boleh berubah. Nama hari dalam seminggu tidak akan tiba-tiba bertambah menjadi delapan, dan arah mata angin selalu utara, timur, selatan, dan barat. Kalau data seperti ini disimpan di dalam list, selalu ada risiko tak sengaja tertimpa oleh baris kode lain. Tuple hadir sebagai pengaman: sekali dibuat, isinya terkunci. Ibarat tulisan yang dipahat di prasasti, kamu boleh membacanya sesering apa pun, tetapi tidak bisa menghapus atau menggantinya.

Selain lebih aman, tuple juga sedikit lebih hemat memori dan lebih cepat diproses dibanding list, walaupun perbedaannya baru terasa pada data yang sangat besar. Di bab ini kamu akan mengenal cara membuat tuple, jebakan tuple berisi satu data, membongkar isi tuple ke beberapa variabel, mengubah tuple dari dan ke list, serta pesan kesalahan yang muncul ketika kita mencoba mengubah tuple.

1. Membuat tuple

hari_sekolah = ("senin", "selasa", "rabu", "kamis", "jumat") arah = ("utara", "timur", "selatan", "barat") print(hari_sekolah[0]) print(arah[1])

2. Kenapa memakai tuple?

Tuple dipakai saat kita ingin menyimpan data yang tidak seharusnya berubah. Contohnya nama hari, arah mata angin, atau koordinat tempat.

3. Perbedaan list dan tuple

ListTuple
Ditulis dengan [ ]Ditulis dengan ( )
Isinya bisa diubahIsinya tidak bisa diubah
Cocok untuk data yang sering berubahCocok untuk data tetap
Contoh: daftar belanjaContoh: nama hari
buah = ["apel", "jeruk"] buah[0] = "mangga" # boleh hari = ("senin", "selasa") # hari[0] = "minggu" # tidak boleh

4. Membaca data tuple

Cara membaca isi tuple persis sama dengan list. Index dimulai dari 0, index negatif menghitung dari belakang, dan slicing tetap bisa dipakai. Tuple juga mengenal fungsi len(), serta dua method yang tidak mengubah isi: count() untuk menghitung berapa kali suatu data muncul dan index() untuk mencari posisinya.

hari = ("senin", "selasa", "rabu", "kamis", "jumat") print(len(hari), hari[-1], hari[1:3]) print(hari.count("rabu"), hari.index("kamis"))
5 jumat ('selasa', 'rabu') 1 3

Baris pertama mencetak jumlah data (5), data terakhir (jumat), dan potongan index 1 sampai 2 (selasa dan rabu). Baris kedua menunjukkan rabu muncul satu kali, dan kamis berada di index 3.

5. Tuple berisi satu data

Ini jebakan yang sering menipu pemula. Tanda kurung saja tidak cukup untuk membuat tuple. Yang sebenarnya membuat tuple adalah tanda koma. Jadi tuple berisi satu data harus ditulis dengan koma di belakangnya.

satu = ("apel",) bukan = ("apel") print(type(satu), type(bukan))
<class 'tuple'> <class 'str'>

Variabel satu adalah tuple, sedangkan bukan hanyalah teks biasa yang kebetulan dibungkus kurung, seperti kurung pada perhitungan matematika.

6. Membongkar tuple ke beberapa variabel

Salah satu kegunaan favorit tuple adalah unpacking, yaitu membagikan isi tuple ke beberapa variabel dalam satu baris. Koordinat tempat adalah contoh yang pas, karena selalu terdiri dari sepasang angka: lintang dan bujur.

koordinat = (-6.2, 106.8) lintang, bujur = koordinat print(lintang) print(bujur) a, b = 1, 2 a, b = b, a print(a, b)
-6.2 106.8 2 1

Pada bagian pertama, nilai pertama masuk ke lintang dan nilai kedua masuk ke bujur. Pada bagian kedua, baris a, b = b, a adalah cara khas Python untuk menukar isi dua variabel tanpa variabel bantu. Fungsi juga sering mengembalikan beberapa nilai sekaligus dalam bentuk tuple, misalnya return min(data), max(data).

7. Mengubah tuple lewat list

Tuple memang tidak bisa diubah, tetapi kita bisa membuat tuple baru. Caranya ubah dulu menjadi list dengan list(), lakukan perubahan, lalu ubah kembali dengan tuple().

hari = ("senin", "selasa", "rabu", "kamis", "jumat") daftar = list(hari) daftar.append("sabtu") hari_baru = tuple(daftar) print(hari_baru)
('senin', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu')

Perlu dipahami bahwa tuple hari yang asli tidak berubah sama sekali. Yang terjadi adalah kita menyalin isinya ke list, mengubah salinan itu, lalu membungkusnya lagi menjadi tuple yang baru.

8. Kesalahan yang sering terjadi

Mengganti isi tuple. Menulis hari[0] = "minggu" menghasilkan TypeError: 'tuple' object does not support item assignment.
Memakai method list. Memanggil hari.append("sabtu") menghasilkan AttributeError: 'tuple' object has no attribute 'append', karena tuple memang tidak punya method penambah.
Menghapus isi tuple. Menulis del hari[0] menghasilkan TypeError: 'tuple' object doesn't support item deletion.
Jumlah variabel tidak cocok saat unpacking. Menulis a, b = (1, 2, 3) menghasilkan ValueError: too many values to unpack (expected 2), sedangkan a, b, c = (1, 2) menghasilkan ValueError: not enough values to unpack (expected 3, got 2).

9. Ringkasan

10. Latihan

  1. Buat tuple warna berisi "merah", "kuning", "hijau", lalu cetak jumlah datanya.
    Lihat jawaban
    warna = ("merah", "kuning", "hijau") print(len(warna))
    Keluarannya 3.
  2. Buat tuple berisi satu data, yaitu angka 7. Cetak tipenya untuk membuktikan bahwa itu tuple.
    Lihat jawaban
    angka = (7,) print(type(angka))
    Keluarannya <class 'tuple'>. Tanpa koma, hasilnya malah int.
  3. Dari tuple titik = (3, 8), bongkar ke variabel x dan y, lalu cetak x + y.
    Lihat jawaban
    titik = (3, 8) x, y = titik print(x + y)
    Keluarannya 11.
  4. Tambahkan "minggu" ke tuple ("sabtu",) sehingga menjadi tuple baru berisi dua hari.
    Lihat jawaban
    akhir_pekan = ("sabtu",) akhir_pekan = akhir_pekan + ("minggu",) print(akhir_pekan)
    Keluarannya ('sabtu', 'minggu'). Penjumlahan dua tuple menghasilkan tuple baru.
← Kembali Ke Daftar Pelajaran Python #1