Memahami Set dalam Python: Struktur Data Unik

Ilustrasi Set Python: Tiga elemen unik di dalam kurung kurawal A B C { ... }

Dalam ekosistem pemrograman Python, terdapat beberapa tipe data koleksi fundamental seperti List, Tuple, dan Dictionary. Namun, salah satu struktur data yang sangat penting namun sering kali kurang dipahami adalah Set.

Apa Itu Set dalam Python?

Set adalah koleksi item yang tidak terurut dan tidak mengizinkan duplikat. Set diimplementasikan menggunakan tabel hash, yang menjadikannya sangat efisien untuk operasi keanggotaan (pengecekan apakah suatu elemen ada atau tidak) dan untuk menghilangkan duplikat secara cepat.

Dua karakteristik utama yang mendefinisikan Set adalah:

  1. Unordered (Tidak Terurut): Urutan penambahan elemen tidak dipertahankan, dan elemen tidak dapat diakses melalui indeks (seperti pada List atau Tuple).
  2. Unique Elements (Elemen Unik): Setiap elemen dalam sebuah Set harus unik. Jika Anda mencoba menambahkan elemen yang sudah ada, Set akan mengabaikannya.

Cara Membuat Set

Anda dapat membuat Set menggunakan kurung kurawal {} atau fungsi bawaan set().

1. Menggunakan Kurung Kurawal

Ini adalah cara paling umum, mirip dengan membuat dictionary, tetapi hanya berisi nilai, bukan pasangan kunci-nilai.

buah = {"apel", "pisang", "ceri"}
print(buah)
# Output: {'ceri', 'apel', 'pisang'} (Urutan bisa berbeda)
            

2. Menghilangkan Duplikat dari List

Set sangat berguna ketika Anda memiliki List yang berisi banyak data duplikat dan Anda hanya ingin mendapatkan nilai uniknya.

data_list = [1, 2, 2, 3, 4, 4, 4, 5]
data_set = set(data_list)
print(data_set)
# Output: {1, 2, 3, 4, 5}
            

3. Membuat Set Kosong

Penting untuk dicatat: Untuk membuat Set kosong, Anda harus menggunakan set(), bukan {}. Menggunakan {} akan menghasilkan Dictionary kosong.

set_kosong = set()
dictionary_kosong = {}
print(type(set_kosong))      # 
print(type(dictionary_kosong)) # 
            

Operasi Dasar pada Set

Karena Set dirancang untuk operasi keanggotaan dan perbandingan himpunan matematis, operasi seperti menambahkan, menghapus, dan menggabungkan sangat efisien.

Menambah dan Menghapus Elemen

warna = {"merah", "hijau"}
warna.add("biru")
print(warna) # Menambah satu elemen

warna.remove("merah") # Menghapus elemen. Akan memunculkan KeyError jika elemen tidak ada.
# warna.discard("kuning") # Lebih aman, tidak error jika elemen tidak ada.
print(warna)
            

Set Operations (Operasi Himpunan)

Inilah kekuatan utama dari Set Python. Mereka mendukung operasi dasar dari teori himpunan:

Gabungan (Union)

Menggabungkan semua elemen dari dua Set (hasilnya adalah Set baru yang berisi semua elemen unik dari kedua Set).

A = {1, 2, 3}
B = {3, 4, 5}
Gabungan = A.union(B) # atau menggunakan operator |
print(Gabungan) # Output: {1, 2, 3, 4, 5}
            

Irisan (Intersection)

Mendapatkan elemen yang sama-sama ada di kedua Set.

Irisan = A.intersection(B) # atau menggunakan operator &
print(Irisan) # Output: {3}
            

Selisih (Difference)

Mendapatkan elemen yang ada di Set pertama tetapi tidak ada di Set kedua.

Selisih_AB = A.difference(B) # atau menggunakan operator -
print(Selisih_AB) # Output: {1, 2}
            

Kapan Sebaiknya Menggunakan Set?

Anda harus memilih Set sebagai struktur data jika:

Meskipun Set sangat cepat untuk pencarian, ingatlah bahwa mereka tidak mendukung pengindeksan dan tidak mempertahankan urutan, yang berarti Set tidak cocok untuk data yang harus selalu berada dalam urutan tertentu saat diakses.