Struktur Data Python : Set


[tutorial ini dibuat menggunakan python versi 3.11]
Set merupakan struktur data koleksi pada python yang digunakan untuk menyimpan sekumpulan elemen yang unik dan tidak memiliki urutan. Karakteristik struktur data set ini mirip dengan terminologi dalam matematika untuk himpunan. Walaupun saat membuat set elemen-elemen di dalamnya memiliki urutan, namun urutan tersebut tidak dipertahankan, sehingga akses elemen pada set tidak dapat menggunakan indeks seperti pada list atau tuple.
Di dalam bahasa python, set diwakili dengan tanda kurung kurawal {}. Untuk membuat objek set dapat menggunakan kurung kurawal dimana setiap elemen di dalamnya dipisahkan dengan tanda koma. Set juga dapat diinisiasi menggunakan fungsi set(...).
Karakteristik dari set adalah setiap elemennya harus unik, artinya tidak ada duplikasi elemendi dalamnya. Jika terdapat elemen yang sama saat pembuatan set, maka akan otomatis akan menghapus duplikasinya.
Membuat Set
Kode
# membuat set dengan {}
set_prime = {2, 3, 5, 7, 11}
print("Prime :", set_prime)
# membuat set dari list
set_error = set([401, 402, 403])
print("Error :", set_error)
# membuat set dengan elemen duplikat
set_nilai = set([90, 80, 80, 60, 80, 70]) # elemen duplikat akan dihapus
print("Nilai :",set_nilai)
# membuat set dari string
set_string = set("SAINSDATA") # setiap karakter akan menjadi 1 elemen
print("Set String :", set_string)# OUTPUT
Prime : {2, 3, 5, 7, 11}
Error : {401, 402, 403}
Nilai : {80, 90, 60, 70}
Set String : {'T', 'I', 'A', 'S', 'N', 'D'}Objek set yang dibuat pada contoh di atas menunjukkan karakteristik elemen yang unik dan tidak memiliki urutan. Dapat dilihat pada objek set_nilai, saat inisiasi terdapat elemen duplikat yaitu 80 sebanyak 3 elemen. Namun objek yang dihasilkan secara otomatis mengeliminasi duplikasi tersebut dan menyisakan 4 elemen saja. Selain itu, urutan penyimpanan objek set tersebut juga berbeda dengan urutan saat inisiasi.
Mengakses Elemen Set
Set tidak memiliki urutan dan tidak memiliki indeks seperti list dan tuple, maka untuk mengakses elemen di dalam set harus dilakukan melalui iterasi. Seperti terlihat pada kode di bawah ini, saat pembuatan, urutan elemen adalah 60, 70, 80, 90 namun ketika tersimpan di dalam memori, urutan elemen tidak mengikuti urutan yang sama.
Kode
set_nilai = {60, 70, 80, 80, 80, 90}
# mengakses elemen set dengan iterasi
for nilai in set_nilai:
print(f"Nilai = {nilai}")# OUTPUT Nilai = 80 Nilai = 90 Nilai = 60 Nilai = 70
Operasi Elemen Set
Set bersifat mutable sehingga kita dapat menambah atau menghapus elemen pada set seperti halnya pada list. Penambahan elemen ke dalam set dapat menggunakan metode add. Sedangkan untuk menghapusnya dapat menggunakan metode remove. Jika elemen yang ditambahkan sudah eksis di dalam set, maka penambahan akan diabaikan.
Kode
set_nilai = {60, 70, 80, 80, 80, 90}
print(f"Daftar set : {set_nilai}\n")
# menambah elemen
set_nilai.add(40)
print("menambah elemen : 40")
print(f"Daftar set : {set_nilai}\n")
# menambah elemen yang sudah ada
set_nilai.add(70)
print("menambah elemen : 70")
print(f"Daftar set : {set_nilai}\n")
# menghapus elemen
set_nilai.remove(80)
print("menghapus elemen : 80")
print(f"Daftar set : {set_nilai}")# OUTPUT
Daftar set : {80, 90, 60, 70}
menambah elemen : 40
Daftar set : {70, 40, 80, 90, 60}
menambah elemen : 70
Daftar set : {70, 40, 80, 90, 60}
menghapus elemen : 80
Daftar set : {70, 40, 90, 60}Operasi Antara Dua Set
Jika terdapat dua buah set, maka kita dapat melakukan operasi antara keduanya seperti pada operasi himpunan. Operasi yang dapat dilakukan antara dua objek set adalah sebagai berikut:
union: menggabungkan dua set (jika ada elemen yang sama, maka akan muncul satu kali saja)intersection: mengembalikan elemen-elemen yang eksis pada kedua setdifference: mengembalikan elemen-elemen yang eksis pada set pertama namun tidak ada pada set keduasymmetric_difference: mengembalikan elemen-elemen hanya eksis pada salah satu set (unionantaraa dffirence bdenganb difference a)issubset: mengecek apakah set pertama adalah subset dari set keduaissuperset: mengecek apakah set pertama adalah superset dari set kedua
Kode
set_a = {10, 20, 30, 40}
set_b = {30, 40, 50, 60}
# union a dan b
set_a_u_b = set_a.union(set_b)
print(f"A union B : {set_a_u_b}")
# intersection a dan b
set_a_n_b = set_a.intersection(set_b)
print(f"A int.sec B : {set_a_n_b}")
# difference a thd b
set_a_dif_b = set_a.difference(set_b)
print(f"A dif B : {set_a_dif_b}")
# difference b thd a
set_b_dif_a = set_b.difference(set_a)
print(f"B dif A : {set_b_dif_a}")
# sim_difference a dan b
set_a_simdif_b = set_a.symmetric_difference(set_b)
print(f"A sim.dif B : {set_a_simdif_b}\n")
set_c = {20, 30}
set_d = {10, 20, 30, 40, 50}
set_e = {50, 60}
# apakah c subset dari d : True
print("C subset D ;", set_c.issubset(set_d))
# apakah e subset dari d : False
print("E subset D :", set_e.issubset(set_d))
# apakah d superset dari c : True
print("D superset C :", set_d.issuperset(set_c))
# apakah d superset dari e : False
print("D superset E :", set_d.issuperset(set_e))# OUTPUT
A union B : {40, 10, 50, 20, 60, 30}
A int.sec B : {40, 30}
A dif B : {10, 20}
B dif A : {50, 60}
A sim.dif B : {10, 50, 20, 60}
C subset D ; True
E subset D : False
D superset C : True
D superset E : FalseDasar-Dasar Pemrograman dengan Python
Selanjutnya : Dictionary





