Menguasai Tuple Python: Pembuatan, Akses, dan Operasi Lanjutan
Tuple Python
Temukan kekuatan tuple di Python—sekuens imutable yang menawarkan kecepatan, keamanan, dan keberagunaan untuk data heterogen. Panduan ini mencakup semuanya dari sintaks dasar hingga operasi lanjutan, memastikan Anda memahami kapan memilih tuple alih-alih list.
Membuat Tuple
Tuple didefinisikan dengan menempatkan nilai yang dipisahkan koma di dalam kurung (). Meskipun kurung opsional, mereka meningkatkan keterbacaan.
Tuple dapat berisi sejumlah item apa pun dan mencampur tipe data—bilangan bulat, float, string, list, tuple lain, dll.
# Different types of tuples
# Empty tuple
my_tuple = ()
print(my_tuple)
# Tuple with integers
my_tuple = (1, 2, 3)
print(my_tuple)
# Mixed data types
my_tuple = (1, "Hello", 3.4)
print(my_tuple)
# Nested tuple
my_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
print(my_tuple)
Output
() (1, 2, 3) (1, 'Hello', 3.4) ('mouse', [8, 4, 6], (1, 2, 3))
Tuple juga dapat dibuat tanpa kurung—teknik yang dikenal sebagai tuple packing.
my_tuple = 3, 4.6, "dog"
print(my_tuple)
# Tuple unpacking
a, b, c = my_tuple
print(a)
print(b)
print(c)
Output
(3, 4.6, 'dog') 3 4.6 dog
Saat tuple berisi satu elemen, koma di akhir diperlukan untuk membedakannya dari nilai biasa.
my_tuple = ("hello")
print(type(my_tuple)) # <class 'str'>
# Single-element tuple
my_tuple = ("hello",)
print(type(my_tuple)) # <class 'tuple'>
# Parentheses optional
my_tuple = "hello",
print(type(my_tuple)) # <class 'tuple'>
Output
<class 'str'> <class 'tuple'> <class 'tuple'>
Mengakses Elemen Tuple
Tuple mendukung beberapa metode untuk mengakses elemen:
1. Pengindeksan
Gunakan operator indeks [] dengan indeks yang dimulai dari nol. Akses di luar jangkauan menghasilkan IndexError; indeks non-bilangan bulat menghasilkan TypeError.
# Indexing example
my_tuple = ('p','e','r','m','i','t')
print(my_tuple[0]) # 'p'
print(my_tuple[5]) # 't'
# Nested indexing
n_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
print(n_tuple[0][3]) # 's'
print(n_tuple[1][1]) # 4
Output
p t s 4
2. Indeks Negatif
Indeks negatif dihitung dari akhir: -1 adalah elemen terakhir.
# Negative indexing
my_tuple = ('p', 'e', 'r', 'm', 'i', 't')
print(my_tuple[-1]) # 't'
print(my_tuple[-6]) # 'p'
Output
t p
3. Slicing
Gunakan sintaks start:stop untuk mengekstrak sub-tuple.
# Slicing example
my_tuple = ('p','r','o','g','r','a','m','i','z')
print(my_tuple[1:4]) # ('r', 'o', 'g')
print(my_tuple[:-7]) # ('p', 'r')
print(my_tuple[7:]) # ('i', 'z')
print(my_tuple[:]) # full tuple
Output
('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
Memodifikasi Tuple
Tuple bersifat imutable. Assignment langsung ke elemen menghasilkan TypeError:
# Attempting modification
my_tuple = (4, 2, 3, [6, 5])
# my_tuple[1] = 9 # TypeError
Namun, jika elemen itu sendiri bersifat mutable (misalnya, list), kondisi internalnya dapat berubah:
my_tuple[3][0] = 9
print(my_tuple) # (4, 2, 3, [9, 5])
Tuple dapat ditetapkan ulang ke nilai baru sepenuhnya:
my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple)
Gunakan + untuk penggabungan dan * untuk pengulangan; keduanya mengembalikan tuple baru.
print((1, 2, 3) + (4, 5, 6)) # (1, 2, 3, 4, 5, 6)
print(("Repeat",) * 3) # ('Repeat', 'Repeat', 'Repeat')
Output
(1, 2, 3, 4, 5, 6) ('Repeat', 'Repeat', 'Repeat')
Menghapus Tuple
Item individual tidak dapat dihapus. Seluruh tuple dapat dihapus dengan del:
my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
# del my_tuple[3] # TypeError
del my_tuple
# print(my_tuple) # NameError
Output
Traceback (most recent call last): File "<string>", line 12, in <module> NameError: name 'my_tuple' is not defined
Metode Tuple
Tuple hanya mengekspos dua metode bawaan: count() dan index().
my_tuple = ('a', 'p', 'p', 'l', 'e')
print(my_tuple.count('p')) # 2
print(my_tuple.index('l')) # 3
Output
2 3
Operasi Tuple Tambahan
1. Pengujian Keanggotaan
Periksa keberadaan dengan kata kunci in.
my_tuple = ('a', 'p', 'p', 'l', 'e')
print('a' in my_tuple)
print('b' in my_tuple)
print('g' not in my_tuple)
Output
True False True
2. Iterasi
Loop melalui tuple dengan for:
for name in ('John', 'Kate'):
print("Hello", name)
Output
Hello John Hello Kate
3. Kelebihan Dibanding List
- Ideal untuk data heterogen; list biasanya homogen.
- Immutability memberikan keunggulan kinerja dalam iterasi.
- Tuple yang hanya berisi elemen imutable dapat berfungsi sebagai kunci kamus.
- Data yang dilindungi tulis dijamin, mencegah modifikasi tidak sengaja.