Tuple & Set
Dua koleksi lain: tuple yang tetap dan set yang unik.
Tuple: urutan yang tidak bisa diubah
koordinat = (-6.2, 106.8)
warna = ("merah", "hijau", "biru")
satu = (5,) # tuple satu elemen WAJIB pakai koma
Tuple mirip list tetapi immutable: koordinat[0] = 0 → TypeError. Gunakan untuk data tetap yang secara logis satu kesatuan: koordinat, tanggal (tahun, bulan, hari), baris data.
Karena immutable, tuple boleh menjadi kunci dictionary dan lebih hemat memori daripada list.
Packing dan unpacking
titik = (3, 4)
x, y = titik # unpacking
print(x, y) # 3 4
a, b, *sisa = (1, 2, 3, 4, 5) # sisa = [3, 4, 5]
Function yang mengembalikan banyak nilai sebenarnya mengembalikan satu tuple.
Set: kumpulan nilai unik
angka = {1, 2, 3, 3, 2}
print(angka) # {1, 2, 3} (duplikat hilang)
kosong = set() # {} adalah dict kosong, bukan set!
unik = set([1, 2, 2, 3])
Set tidak punya urutan dan tidak bisa diakses dengan index.
Operasi set
a = {1, 2, 3}
b = {3, 4}
print(a | b) # gabungan {1, 2, 3, 4}
print(a & b) # irisan {3}
print(a - b) # selisih {1, 2}
print(a ^ b) # beda simetris {1, 2, 4}
print(3 in a) # True — pengecekan keanggotaan sangat cepat
Mengubah isi set
a.add(9)
a.discard(1) # tidak error jika tidak ada
a.remove(2) # KeyError jika tidak ada
Elemen set harus hashable (immutable): angka, string, tuple boleh; list tidak.
Kapan memakai apa?
| Kebutuhan | Pilih |
|---|---|
| Urutan penting, boleh diubah | list |
| Data tetap, sebagai kunci dict | tuple |
| Hilangkan duplikat, cek keanggotaan cepat | set |
| Pasangan kunci-nilai | dict |
Contoh: menghilangkan duplikat
data = [1, 2, 2, 3, 3, 3]
unik = list(set(data)) # urutan tidak terjamin
unik_urut = sorted(set(data)) # [1, 2, 3]
Untuk mempertahankan urutan asli: list(dict.fromkeys(data)).