Representasi visual dari operasi Set
Set dalam Python adalah salah satu tipe data koleksi bawaan yang unik. Berbeda dengan List atau Tuple, Set tidak mengizinkan adanya elemen duplikat, dan yang paling penting, elemen-elemen di dalamnya tidak terurut (unordered). Ini menjadikannya alat yang sangat efisien untuk melakukan operasi matematika himpunan seperti gabungan (union), irisan (intersection), dan selisih (difference).
Set didefinisikan menggunakan kurung kurawal {} atau fungsi set(). Karena sifatnya yang unik, Set sangat berguna ketika Anda perlu memastikan bahwa setiap item dalam koleksi adalah berbeda. Jika Anda mencoba memasukkan nilai yang sudah ada ke dalam Set, Python akan mengabaikannya tanpa menimbulkan error.
Ada dua cara utama untuk membuat Set. Perhatikan bagaimana duplikasi otomatis dihilangkan:
# Membuat Set menggunakan kurung kurawal
warna_favorit = {"merah", "biru", "hijau", "merah", "kuning"}
print(warna_favorit)
# Output: {'hijau', 'biru', 'kuning', 'merah'} (Urutan bisa berbeda)
# Membuat Set dari List yang memiliki duplikat
angka_list = [1, 2, 2, 3, 4, 4, 4, 5]
angka_set = set(angka_list)
print(angka_set)
# Output: {1, 2, 3, 4, 5}
# Membuat Set kosong (PENTING: {} akan membuat Dictionary kosong)
set_kosong = set()
print(type(set_kosong))
# Output:
Kekuatan utama Set terletak pada kemampuannya untuk meniru operasi teori himpunan.
Union menggabungkan semua elemen dari dua Set atau lebih menjadi satu Set baru, tanpa duplikasi.
set_a = {1, 2, 3, 4}
set_b = {3, 4, 5, 6}
# Menggunakan operator |
gabungan_operator = set_a | set_b
print(f"Union (Operator |): {gabungan_operator}")
# Output: {1, 2, 3, 4, 5, 6}
# Menggunakan metode .union()
gabungan_method = set_a.union(set_b)
print(f"Union (Method): {gabungan_method}")
Intersection mengembalikan elemen yang hanya ada di kedua Set.
set_a = {1, 2, 3, 4}
set_b = {3, 4, 5, 6}
# Menggunakan operator &
irisan_operator = set_a & set_b
print(f"Intersection (&): {irisan_operator}")
# Output: {3, 4}
Difference mengembalikan elemen yang ada di Set pertama tetapi tidak ada di Set kedua.
set_a = {1, 2, 3, 4}
set_b = {3, 4, 5, 6}
# Selisih A - B
selisih_a_kurang_b = set_a - set_b
print(f"Selisih A - B: {selisih_a_kurang_b}")
# Output: {1, 2}
# Selisih B - A
selisih_b_kurang_a = set_b.difference(set_a)
print(f"Selisih B - A: {selisih_b_kurang_a}")
# Output: {5, 6}
Set sangat direkomendasikan dalam skenario berikut:
in) pada Set jauh lebih cepat (rata-rata O(1)) dibandingkan List atau Tuple.Meskipun efisien untuk operasi matematika himpunan, perlu diingat bahwa Anda tidak bisa mengakses elemen Set berdasarkan indeks (karena sifatnya yang tidak terurut), dan elemen di dalamnya harus berupa tipe data yang hashable (imutable), seperti string, angka, atau tuple, namun tidak bisa berupa List atau Dictionary.