Tuple
Tuple juga merupakan tipe data urutan (sequence data type) yang secara fungsi sama dengan List. Namun Tuple berbeda sifatnya, yaitu Tuple bersifat immutable, jadi data di dalamnya tidak bisa diubah. Namun kita tetap bisa menghapus (seluruh elemen) Tuple dengan menggunakan perintah del namaTuple. Selain itu, kita juga bisa mendefinisikan ulang Tuple yang telah ada (berarti mengganti seluruh elemen dengan elemen baru). Sebuah Tuple terdiri dari beberapa nilai yang dipisahkan oleh tanda koma ,. Tidak seperti List, tipe data Tuple ditandai dengan tanda kurung ().
>>> type(('abc', 4567, 8.45))
<type 'tuple'>
>>> tuple1 = ( 'asdasd', 789 , 1.15, 'Zoro', 80.9 )
>>> tuple2 = (678, 'Onigiri')
>>> print ( tuple1 ) # Menampilkan semua data pada tuple
('asdasd', 789, 1.15, 'Zoro', 80.9)
>>> print ( tuple1[0] ) # Menampilkan elemen pertama pada tuple
asdasd
>>> print ( tuple1[1:3] ) # Menampilkan data dari elemen kedua sampai ketiga
(789, 1.15)
>>> print ( tuple1[2:] ) # Menampilkan data dimulai dari elemen ketiga
(1.15, 'Zoro', 80.9)
>>> print ( tuple2 * 2 ) # Menampilkan data tupe dua kali
(678, 'Onigiri', 678, 'Onigiri')
>>> print ( tuple1 + tuple2 ) # Menggabungkan tuple1 sama dengan tuple2
('asdasd', 789, 1.15, 'Zoro', 80.9, 678, 'Onigiri')
Anda dapat mengisi sebuah Tuple tanpa menggunakan tanda kurung, namun hal ini tidak dianjurkan jika Tuple tersebut berisi data yang besar. Contoh di bawah ini akan menunjukkan jika kita ingin membuat Tuple bersarang, ada Tuple di dalam Tuple.
>>> NamaKota = "Surabaya", "Jakarta"
>>> NamaKota
('Surabaya', 'Jakarta')
>>> KotaBesar = NamaKota, ("Bandung", "Yogyakarta", "Medan")
>>> KotaBesar
(('Surabaya', 'Jakarta'), ('Bandung', 'Yogyakarta', 'Medan'))
Untuk mengatasi masalah ke-immutable-an (immutability) pada Tuple, kita dapat membuat Tuple baru yang merupakan gabungan dari Tuple yang sudah ada. Berikut contohnya,
>>> Tuple1 = ("a", 1, 2, 3)
>>> Tuple1
('a', 1, 2, 3)
>>> Tuple2 = ("b", 4, 5, 6)
>>> Tuple2
('b', 4, 5, 6)
>>> TupleGab = Tuple1 + Tuple2
>>> TupleGab
('a', 1, 2, 3, 'b', 4, 5, 6)
Pada contoh di atas, dua buah Tuple dibuat secara terpisah, Tuple1 dan Tuple2. Dua Tuple ini dioperasikan pada Tuple lainnya, TupleGab, dengan menggunakan operator +. Perlu dicatat bahwa TupleGab berisi nilai-nilai dari Tuple1 dan Tuple2. Metode seperti ini dapat juga digunakan untuk menambahkan beberapa elemen data lain pada sebuah Tuple.
>>> IniTuple = ("p", "q", "r")
>>> IniTuple = IniTuple + ("s", "t")
>>> IniTuple
('p', 'q', 'r', 's', 't')
Kita juga dapat membuat Tuple dengan obyek-obyek yang mutable, sepeti List. Sedemikian sehingga, kita dapat mengubah nilai yang ada dalam List tersebut. Berikut contohnya,
>>> TupleData = (222, "ayam", [555, "telur", "sapi"])
>>> TupleData
(222, 'ayam', [555, 'telur', 'sapi'])
>>> TupleData[2][1] = 777
>>> TupleData
(222, 'ayam', [555, 777, 'sapi']) Pada contoh di atas, pertama kita buat dulu sebuah Tuple yang berisi sebuah List. Kemudian, kita ubah sebuah nilai yang terdapat dalam List tersebut. Dapat kita simpulkan bahwa obyek mutable dalam Tuple dapat kita ubah, meskipun Tuple sendiri bersifat immutable.
Jika kita ingin membuat sebuah sebuah variable dengan Tuple kosong, kita cukup memberikan tanda kurung pada variabel tersebut. Panjang Tuple kosong tersebut adalah 0. Berikut contohnya,
>>> TupleKosong = ()
>>> TupleKosong
()
>>> len(TupleKosong)
0
Jika kita membuat sebuah Tuple yang berisi satu data, maka harus kita tambahkan sebuah tanda koma. Jika tanpa tanda koma, tipe data tersebut akan dianggap sebagai tipe variabel dari sebuah Tuple. Berikut contohnya,
>>> SatuData = ("Kymco")
>>> len(SatuData)
5
Dari contoh di atas, karena kita hanya memberikan satu data pada variabel SatuData, seharusnya panjang Tuple SatuData adalah 1. Mengapa terjadi seperti ini? Karena tanda koma tidak kita berikan pada Tuple SatuData tersebut, sehingga variable SatuData dianggap bertipe String. Berikut contoh jika kita memberikan tanda koma,
>>> TupleSatu = ("Kymco",)
>>> TupleSatu
('Kymco',)
>>> len(TupleSatu)
1