Struktur Data Python : Set

Tutorial 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 set
  • difference : mengembalikan elemen-elemen yang eksis pada set pertama namun tidak ada pada set kedua
  • symmetric_difference : mengembalikan elemen-elemen hanya eksis pada salah satu set (union antara a dffirence b dengan b difference a)
  • issubset : mengecek apakah set pertama adalah subset dari set kedua
  • issuperset : 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

Selanjutnya : Dictionary

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

Daftar Isi