Soal 1Dari pilihan berikut, mana yang mendeklarasikan sebuah tuple dengan benar?
Cara Pakai Tuple di Python
Pelajari tuple Python dari dasar. Cakup deklarasi, imutabilitas, unpacking, dan alasan tuple bisa menjadi key dict.
Apa itu tuple — versi « tidak bisa diubah » dari list
Tuple (tuple) membuat kamu bisa menggabungkan banyak nilai ke dalam satu variabel. Sangat mirip dengan list yang kamu pelajari di artikel sebelumnya, tapi bedanya adalah setelah dibuat, isinya tidak bisa diubah lagi.
Kalau list itu kotak yang mau kamu isi-ulang terus (seperti daftar belanja), tuple adalah kotak yang dikunci sekali lalu dibiarkan — bayangkan koordinat (x, y) atau warna RGB (255, 0, 0).
Yang berbeda hanya jenis tanda kurung dan apakah bisa diubah atau tidak; perannya — menggabungkan banyak nilai — sama saja.
Kalau mau diubah-ubah pakai list, kalau tetap pakai tuple adalah panduan sederhana.
Untuk mendeklarasikannya, cukup letakkan nilai-nilai di dalam ( dan ), dipisah koma. Kalau list pakai [ ], tuple pakai ( ).
Akses elemen (index dan slicing) sama persis dengan list: [0] ambil elemen pertama, [-1] ambil elemen terakhir, [1:3] ambil potongan.
# Deklarasi tuple
fruits = ("apple", "banana", "lemon")
print(fruits) # ('apple', 'banana', 'lemon')
print(type(fruits)) # <class 'tuple'>
print(fruits[0]) # apple
print(fruits[-1]) # lemon
print(fruits[1:]) # ('banana', 'lemon') ← hasil slice juga tuple
# Campur beberapa tipe juga tidak masalah
profile = ("Budi", 28, 165.5)
Tuple satu elemen butuh koma di akhir
Kalau kamu tulis fruits = ("apple"), itu sebuah string, bukan tuple. ( ) juga dipakai sebagai tanda kurung matematika, jadi Python tidak bisa membedakan kalau hanya ada satu nilai di dalamnya.
Untuk membuat tuple satu elemen, tambahkan koma di akhir seperti ("apple",).
Python juga membolehkan kamu menghilangkan tanda kurung dan menulis seperti 1, 2, 3 sebagai tuple, tapi supaya mudah dibaca sebaiknya tetap pakai ( ).
Immutable — « ubah elemen » dan « tukar seluruh kotak » adalah dua hal berbeda
Tuple adalah tipe immutable (tidak bisa diubah). Setelah dibuat, kamu tidak bisa menimpa, menambah, atau menghapus elemen.
Yang sering bikin bingung adalah membedakan antara «mengubah elemen» dan «memasukkan tuple baru ke variabel». Yang pertama tidak bisa; yang kedua oke.
t[0] = 9 mencoba menyunting isinya langsung, jadi error.
t = (4, 5, 6) hanya mengarahkan variabel ke tuple baru, jadi tidak masalah.
Penggabungan dan method (count / index)
Kamu bisa membuat tuple baru dengan menggabungkan dua tuple. Pakai + untuk menggabungkan akan menghasilkan tuple yang sepenuhnya baru.
Method-nya tidak banyak — dua yang benar-benar kamu pakai adalah count dan index. Rasanya sama persis dengan list.
| Yang ingin dilakukan | Cara menulis | Catatan |
|---|---|---|
| Gabung | t1 + t2 | Kembalikan tuple baru; yang asli tidak berubah |
| Tambah satu elemen | t + (x,) | Jangan lupa koma di akhir |
| Hitung nilai | t.count(x) | Berapa kali x muncul |
| Cari posisi | t.index(x) | Posisi pertama x muncul |
fruits = ("apple", "banana", "lemon")
# Gabung (kembalikan tuple baru)
more = fruits + ("grape",)
print(more) # ('apple', 'banana', 'lemon', 'grape')
print(fruits) # ('apple', 'banana', 'lemon') ← yang asli tidak berubah
# count dan index
nums = (1, 2, 2, 3, 2, 4)
print(nums.count(2)) # 3 (ada tiga angka 2)
print(nums.index(3)) # 3 (3 ada di posisi ke-4 = index 3)
# Konversi antara list dan tuple
list_fruits = list(fruits) # ['apple', 'banana', 'lemon']
tuple_fruits = tuple(list_fruits) # ('apple', 'banana', 'lemon')
Kalau perlu banyak perubahan, ganti ke list
Tuple itu untuk «nilai yang hampir tidak disentuh», jadi tidak cocok kalau kamu harus sering menambah/menghapus elemen. Pola standar: konversi ke list pakai list(t) → sunting → kalau perlu kembalikan ke tuple pakai tuple(...).
Unpacking dan key dict — hal yang hanya bisa dilakukan tuple
Ada dua hal yang bisa dilakukan tuple tapi tidak bisa dilakukan list: unpacking dan dipakai sebagai key dict.
Letakkan nama-nama variabel dipisah koma di sisi kiri, dan setiap elemen tuple akan langsung masuk ke masing-masing variabel.
Urutan cocok berdasarkan posisi, dan jumlah variabel harus sama dengan jumlah elemen.
# Unpacking
coord = (135.0, 35.0)
longitude, latitude = coord
print(longitude) # 135.0
print(latitude) # 35.0
# Bisa juga unpack dari literal
r, g, b = (255, 128, 0)
print(r, g, b) # 255 128 0
# Trik yang sering dipakai: tukar dua nilai dalam satu baris
a, b = 1, 2
a, b = b, a
print(a, b) # 2 1
Nilai kembalian fungsi juga tuple (sneak peek)
Fungsi di Python bisa mengembalikan beberapa nilai dengan return a, b, dan nilai-nilai itu akan otomatis dibungkus menjadi tuple. Pemanggil menulis x, y = func() untuk meng-unpack menjadi dua variabel. Bab fungsi akan dibahas nanti, jadi di sini tidak mendalam — tapi ingat bahwa «multiple return dan unpacking berjalan bersama» akan bantu kamu paham bab itu lebih cepat.
Kelebihan lainnya adalah tuple bisa dipakai sebagai key dict. list tidak bisa jadi key dict, tapi tuple bisa. Sangat berguna kalau kamu ingin memakai kombinasi beberapa nilai sebagai satu key unik — misalnya, memetakan koordinat ke nama negara.
# dict dengan key tuple
country = {
(135.0, 35.0): "Japan",
(-77.0, 38.9): "USA",
}
print(country[(135.0, 35.0)]) # Japan
print(country.get((0.0, 0.0), "Tidak diketahui")) # Tidak diketahui
# list tidak bisa jadi key
# bad = {[135.0, 35.0]: "Japan"} # TypeError: unhashable type: 'list'
Di artikel ini, berpusat pada perbedaan dengan list, kamu sudah belajar cara mendeklarasikan tuple, arti immutable, penggabungan dan count / index, serta unpacking dan key dict.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Dengan t = (1, 2, 3), pilihan mana yang tidak menyebabkan error?
Soal 3Dengan coord = (135.0, 35.0), cara paling sederhana untuk memecah dua nilai ke variabel lng dan lat adalah?