← Semua pembelajaran / Python Dasar
Fase 4 · Struktur Data

Tuple dan Set

Lebih jarang dipakai daripada list dan dictionary, tapi masing-masing menyelesaikan satu masalah dengan sangat rapi.

Sumber asli docs.python.org Resmi Rangkuman ~4 menit baca

Intisari

  • Tuple (1, 2, 3) — seperti list, tapi isinya tidak bisa diubah setelah dibuat.
  • Tuple muncul sendiri saat kamu menulis a, b = 1, 2 atau saat fungsi mengembalikan beberapa nilai.
  • Set {1, 2, 3} — kumpulan tanpa kembar dan tanpa urutan.
  • Cara tercepat membuang data kembar: list(set(data)).
  • Set kosong ditulis set(). {} yang kosong berarti dictionary, bukan set.

Tuple — list yang dikunci

koordinat = (10, 20)
warna = ("merah", "hijau", "biru")

print(koordinat[0])       # 10   dibaca sama seperti list
print(len(warna))         # 3

koordinat[0] = 99
# TypeError: 'tuple' object does not support item assignment

Kalau isinya tidak bisa diubah, apa gunanya? Tiga alasan:

Kamu sudah memakai tuple tanpa sadar

a, b = 1, 2               # sisi kanan sebenarnya tuple (1, 2)
a, b = b, a               # tukar isi dua variabel dalam satu baris

for i, nilai in enumerate(data):    # enumerate menyerahkan tuple tiap putaran
    ...

Membongkar tuple ke beberapa variabel sekaligus disebut unpacking, dan ini idiom Python yang sangat khas:

titik = (3, 7)
x, y = titik
print(f"x={x}, y={y}")        # x=3, y=7

Tuple berisi satu item butuh koma: (5) hanyalah angka 5 di dalam kurung biasa. Yang benar adalah (5,). Aneh, tapi begitulah aturannya.

Set — tanpa kembar

angka = {1, 2, 3, 3, 3}
print(angka)              # {1, 2, 3}   ← kembarannya hilang sendiri

angka.add(4)
angka.discard(1)          # buang, tidak error kalau tidak ada
print(3 in angka)         # True

Kegunaan paling sering — membersihkan data kembar:

tamu = ["Ani", "Budi", "Ani", "Cici", "Budi"]

unik = list(set(tamu))
print(unik)               # ['Budi', 'Ani', 'Cici']  ← urutannya acak
print(len(set(tamu)))     # 3  → berapa orang yang berbeda

Set tidak menyimpan urutan. Kalau urutannya penting, urutkan setelahnya: sorted(set(tamu)).

Operasi himpunan

kelas_a = {"Ani", "Budi", "Cici"}
kelas_b = {"Budi", "Doni"}

kelas_a & kelas_b        # {'Budi'}                       ikut keduanya
kelas_a | kelas_b        # {'Ani','Budi','Cici','Doni'}   gabungan
kelas_a - kelas_b        # {'Ani', 'Cici'}                hanya di kelas A

Menjawab pertanyaan “siapa yang ada di dua-duanya” dalam satu karakter, tanpa perulangan bersarang.

Memilih yang mana

ButuhPakaiDitulis
Deretan data yang bisa berubahlist[1, 2, 3]
Data berpasangan nama–nilaidict{"a": 1}
Data tetap yang tidak boleh berubahtuple(1, 2)
Kumpulan unik / cek keanggotaan cepatset{1, 2, 3}

Kalau ragu di antara semuanya, pilih list atau dictionary. Dua itu menutupi mayoritas kebutuhan; tuple dan set dipakai saat masalahnya memang persis cocok.

Latihan: dari sebuah kalimat, hitung berapa kata unik yang dipakai (petunjuk: kalimat.split() lalu set), dan tampilkan daftar kata uniknya secara terurut.

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.