Set

Set adalah salah satu tipe data di Python yang tidak berurut (unordered). Set memiliki anggota yang unik (tidak ada duplikasi). Jadi misalnya kalau kita meletakkan dua anggota yang sama di dalam set, maka otomatis set akan menghilangkan yang salah satunya.

Set bisa digunakan untuk melakukan operasi himpunan matematika seperti gabungan, irisan, selisih, dan lain – lain.

Membuat Set

Set dibuat dengan meletakkan anggota – anggotanya di dalam tanda kurung kurawal { }, dipisahkan menggunakan tanda koma. Kita juga bisa membuat set dari list dengan memasukkan list ke dalam fungsi set()

Set bisa berisi data campuran, baik integer, float, string, dan lain sebagainya. Akan tetapi set tidak bisa berisi list, set, dan dictionary.

# set integer my_set = {1,2,3} print(my_set) # set dengan menggunakan fungsi set() my_set = set([1,2,3]) print(my_set) # set data campuran my_set = {1, 2.0, "Python", (3,4,5)} print(my_set) # bila kita mengisi duplikasi, set akan menghilangkan salah satu # output: {1,2,3} my_set = {1,2,2,3,3,3} print(my_set) # set tidak bisa berisi anggota list # contoh berikut akan muncul error TypeError my_set = {1,2,[3,4,5]}

Untuk membuat set kosong, kita tidak bisa menggunakan { }, karena itu akan dianggap sebagai dictionary. Kita harus menggunakan fungsi set() tanpa argumen untuk membuat set kosong.

>>> # membuat variabel a dengan {}
>>> a = {}
>>> print(type(a))
<class 'dict'>

>>> # harus menggunakan fungsi set()
>>> a = set()
>>> print(type(a))
<class 'set'>

Mengubah Anggota Set

Set bersifat mutable. Tapi, karena set adalah tipe data tidak berurut (unordered), maka kita tidak bisa menggunakan indeks. Set tidak mendukung indeks ataupun slicing.

Untuk menambah satu anggota ke dalam set, kita bisa menggunakan fungsi add(), dan untuk menambahkan beberapa anggota sekaligus kita bisa menggunakan fungsi update(). List, tuple, maupun string bisa digunakan sebagai masukan dari fungsi update().

# membuat set baru my_set = {1,2,3} print(my_set) # bila kita hilangkan tanda # dari baris 9 akan muncul error TypeError #my_set[0] # menambah satu anggota # output: {1,2,3,4} my_set.add(4) print(my_set) # menambah beberapa anggota # set akan menghilangkan duplikasi # output: {1,2,3,4,5,6} my_set.update([3,4,5,6]) print(my_set)

Menghapus Anggota Set

Kita bisa menghapus anggota set dengan menggunakan fungsi discard() dan remove(). Perbedaannya, fungsi discard() tidak akan memunculkan error bila anggota yang ingin dihapus ternyata tidak ada di dalam set, sedangkan remove() sebaliknya.

# membuat set baru my_set = {1, 2, 3, 4, 5} print(my_set) # menghapus 4 dengan discard # output: {1, 2, 3, 5} my_set.discard(4) print(my_set) # menghapus 5 dengan remove # output : {1, 2, 3} my_set.remove(5) print(my_set) # anggota yang mau dihapus tidak ada dalam set # discard tidak akan memunculkan error # output: {1, 2, 3} my_set.discard(6)

Selain discard() dan remove(), kita bisa menghapus anggota set dengan menggunakan fungsi pop(). Dengan menggunakan fungsi pop(), kita menghapus salah satu anggota secara acak (random).

Untuk mengosongkan atau menghapus seluruh anggota set, kita bisa menggunakan fungsi clear().

# membuat set baru # output: set berisi anggota yang unik my_set = set("HelloPython") print(my_set) # pop anggota # output: anggota acak print(my_set.pop()) # pop anggota lainnya # output: anggota acak print(my_set.pop()) # mengosongkan set # output: set() my_set.clear() print(my_set)  

Operasi Set di Python

Set dapat digunakan untuk melakukan operasi himpunan matematika seperti gabungan, irisan, selisih, dan komplemen.

Mari kita ambil dua contoh set berikut:

>>> A = {1, 2, 3, 4, 5}
>>> B = {4, 5, 6, 7, 8}

Operasi Gabungan (Union)

Gabungan (union) dari A dan B adalah himpunan atau set anggota yang ada di  A dan B.

Gabungan dapat dibuat dengan menggunakan operator palang (|). Selain itu juga bisa dilakukan dengan menggunakan fungsi union().

  # Membuat set A and B A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8} # Gabungan menggunakan operator | # output: {1, 2, 3, 4, 5, 6, 7, 8} print(A | B) # Menggunakan fungsi union() # output: {1, 2, 3, 4, 5, 6, 7, 8} A.union(B) # output: {1, 2, 3, 4, 5, 6, 7, 8} B.union(A)  

Operasi Irisan (Intersection)

Irisan (intersection) dari A dan B adalah himpunan atau set anggota yang sama di A dan B.

Irisan dilakukan dengan menggunakan operator jangkar (&). Irisan juga bisa dilakukan dengan menggunakan fungsi intersection().

  # Membuat set A and B A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8} # Irisan menggunakan operator & # output: {4,5} print(A & B) # Menggunakan fungsi intersection() # output: {4,5} A.intersection(B) # output: {4,5} B.intersection(A)  

Operasi Selisih (Difference)

Selisih (intersection) dari A dan B adalah himpunan atau set anggota yang hanya ada di A dan tidak ada di B. Begitu juga sebaliknya, ada di B tapi tidak ada di A.

Selisih dilakukan dengan menggunakan operator kurang (-). Bisa juga dengan menggunakan fungsi difference().

# membuat A and B A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8} # Menggunakan operator - pada A # Output: {1, 2, 3} print(A - B) # Output: {1, 2, 3} A.difference(B) # Menggunakan operator - pada B # Output: {8, 6, 7} print(B - A) # Output: {8, 6, 7} B.difference(A)

Operasi Komplemen (Symmetric Difference)

Operasi komplemen (symmetric difference) dari A dan B adalah himpunan atau set anggota yang ada di A dan di B, tapi tidak di keduanya.

Komplemen dilakukan dengan menggunakan operator ^. Bisa juga dengan menggunakan fungsi symmetric_difference().

# membuat A and B A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8} # Menggunakan operator ^ pada A # Output: {1, 2, 3, 6, 7, 8} print(A ^ B) # Output: {1, 2, 3, 6, 7, 8} A.symmetric_difference(B) # Menggunakan operator ^ pada B # Output: {1, 2, 3, 6, 7, 8} print(B ^ A) # Output: {1, 2, 3, 6, 7, 8} B.symmetric_difference(A)

Metode (Fungsi) Set

Set memiliki banyak metode atau fungsi. Beberapa di antaranya adalah yang sudah kita gunakan di atas. Tabel berikut berisi daftar metode atau fungsi set yang disediakan oleh python.

Metode Deskripsi
add() Menambahkan satu anggota ke set
clear() Menghapus semua anggota set
copy() Mengembalikan shallow copy dari set
difference() Mengembalikan set baru berisi selisih dua atau lebih set
difference_update() Menghapus semua anggota set lain yang ada di set ini
discard() Menghapus satu anggota dari set
intersection() Mengembalikan set baru berisi irisan antara dua atau lebih set
intersection_update() Mengupdate set dengan irisan set bersangkutan dan set lainnya
isdisjoint() Mengembalikan True jika dua set tidak memiliki irisan
issubset() Mengembalikan True jika set lain berisi set ini
issuperset() Mengembalikan True jika set ini berisi set lain
pop() Menghapus dan mengembalikan anggota acak dari sebuah set
remove() Menghapus satu anggota dari set
symmetric_difference() Mengembalikan set baru berisi komplemen dari dua set
symmetric_difference_update() Mengupdate set dengan komplemen dari set ini dan set lainnya
union() Mengembalikan set baru berisi gabungan dua atau lebih set
update() Mengupdate set dengan gabungan set ini dan set lainnya

 

Bagikan:

Tinggalkan Balasan