Set
Set yaitu 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 mampu digunakan untuk melakukan operasi himpunan matematika ibarat 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 mampu membuat set dari list dengan memasukkan list ke dalam fungsi set()
Set mampu berisi data campuran, baik integer, float, string, dan lain sebagainya. Akan tetapi set tidak mampu 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 adonan
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 mampu berisi anggota list
# acuan berikut akan muncul error TypeError
my_set = {1,2,[3,4,5]}
Untuk membuat set kosong, kita tidak mampu menggunakan { }, alasannya ialah yaitu 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, alasannya ialah yaitu set yaitu tipe data tidak berurut (unordered), maka kita tidak mampu menggunakan indeks. Set tidak mendukung indeks ataupun slicing.
Untuk menambah satu anggota ke dalam set, kita mampu menggunakan fungsi add()
, dan untuk menambahkan beberapa anggota sekaligus kita mampu menggunakan fungsi update()
. List, tuple, maupun string mampu 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 mampu 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 mampu 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 mampu 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 mampu digunakan untuk melakukan operasi himpunan matematika ibarat gabungan, irisan, selisih, dan komplemen.
Mari kita ambil dua acuan set berikut:
>>> A = {1, 2, 3, 4, 5}
>>> B = {4, 5, 6, 7, 8}
Operasi Gabungan (Union)
Gabungan (union) dari A
dan B
yaitu himpunan atau set anggota yang ada di A dan B.
Gabungan mampu dibuat dengan menggunakan operator palang (|). Selain itu juga mampu 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
yaitu himpunan atau set anggota yang sama di A dan B.
Irisan dilakukan dengan menggunakan operator jangkar (&). Irisan juga mampu 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
yaitu 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 suplemen (symmetric difference) dari A
dan B
yaitu 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 yaitu 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 jikalau dua set tidak memiliki irisan |
issubset() | Mengembalikan True jikalau set lain berisi set ini |
issuperset() | Mengembalikan True jikalau 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 suplemen dari dua set |
symmetric_difference_update() | Mengupdate set dengan suplemen 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 |