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 (union
antaraa dffirence b
denganb 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 : False
Dasar-Dasar Pemrograman dengan Python
Selanjutnya : Dictionary