Sebelumnya kita sudah belajar tentang struktur data tuple pada python, Sekarang kita akan belajar tentang Set.
Apa sih itu set?...
Set merupakan salah satu tipe data yang tidak berurut(unordered). Set memiliki unique value(tidak ada duplikasi). Misalkan di dalam set memiliki dua data yang sama maka otomatis akan dihilangkan salah satunya.
Yuk kita lihat...
Kali ini kita akan membahas:
- Membuat Set
- Menambah Anggota Set
- Menghapus Anggota Set
- Operasi Pada Set
- Fungsi Pada Set
1. Membuat Set
Set biasanya dibuat dengan memasukkan semua anggotanya ke dalam tanda kurung kurawal {}
dan setiap anggotanya dipisahkan dengan tanda koma,
. Harus menggunakan tanda kurung kurawal {}
ya???
Enggak kok...
Set juga bisa dibuat dengan memasukkan list ke dalam fungsi set()
. Set dapat berisi data campuran seperti boolean, string, integer dan sebagainya, tetapi set tidak dapat berisi dictionary, set, dan list.
Contoh:
# Membuat set dengan kurung kurawal
nomor = {1,2,3}
print nomor
# Membuat set dengan fungsi set()
angka = set([1,2.0,"tiga"])
print angka
# Anggota set yang memiliki nilai sama akan dihilangkan
bilangan = {1,2,2,3,3,3}
print bilangan
Outputnya adalah:
set([1,2,3])
set([1,2.0,'tiga'])
set([1,2,3])
Apabila kita mengisi anggota set dengan list seperti berikut:
nomor = {1,2,[3,4,5]}
Maka akan memberikan pesan TypeError: unhashable type: 'list'
hal ini karena set tidak dapat berisikan list.
Bagaimana cara kita membuat set kosong???
Jika ingin membuat set kosong kita tidak dapat menggunakan kurung kurawal {}
. Lah kenapa???
Karena jika kita menggunakan kurung kurawal maka akan dianggap sebagai tipe data dictionary oleh python.
Jadi gimana dong???
Kita dapat membuat set kosong menggunakan fungsi set()
.
Yuk kita lihat...
# Membuat variabel nomor dengan {}
nomor = {} # <- dianggap sebagai dictionary
print type(nomor) # <- outputnya <type 'dict'>
# Membuat set kosong dengan set()
nomor = set() # <- dianggap set
print type(nomor) # <- outputnya <type 'set'>
2. Menambah Anggota Set
Set bersifat mutable, tetapi karena set merupakan tipe data yang tidak berurut maka untuk mengaksesnya tidak bisa menggunakan indeks
dan tidak mendukung slicing (pemotongan) seperti pada list dan tuple.
Lah terus gimana dong caranya menambah anggota set kalau tidak bisa menggunakan indeks???
Nah.. Untuk menambahkan satu anggota set python menyediakan fungsi add()
pada set, dan untuk menambahkan beberapa anggota set sekaligus bisa menggunakan fungsi update()
, dengan menggunakan fungsi update()
.
Yuk kita lihat contohnya...
Contoh:
nomor = {1,2,3,4}
# Menambahkan angka 5 menggunakan add()
nomor.add(5)
print nomor
# Menambahkan anggota set dengan update()
nomor.update([1,3,5,7,9])
print nomor
Output dari program di atas adalah:
set([1, 2, 3, 4, 5])
set([1, 2, 3, 4, 5, 7, 9])
3. Menghapus Anggota Set
Sekali lagi mengingatkan ya hehe.. Kalau Set tidak memiliki indeks, jadi untuk menghapus anggota set python juga menyediakan fungsi bawaan yaitu discard()
dan remove()
.
Bedanya apa dong???
Nah perbedaaan dari kedua fungsi tersebut (discart()
dan remove
) ada pada output atau response yang diberikan, fungsi remove()
akan memunculkan error apabila anggota yang ingin dihapus tidak ada di dalam set, sedangkan discard()
tidak akan memunculkan error apabila anggota yang ingin dihapus tidak ada di dalam set.
Yuk kita lihat contohnya:
nomor = {1,2,3,4,5,6}
# Menghapus anggota set dengan discard()
# Data ada di dalam set
nomor.discard(3)
print nomor
# Data tidak ada di dalam set
nomor.discard(7)
print nomor
# Menghapus anggota set dengan remove()
# Data ada di dalam set
nomor.remove(4)
print nomor
# Data tidak ada di dalam set
nomor.remove(8)
print nomor
Outputnya seperti berikut:
set([1,2,4,5,6]) #<- fungsi discard() data ada
set([1,2,3,4,5]) #<- fungsi discard() data tidak ada
set([1,2,5,6]) #<- fungsi remove() data ada
KeyError: 8 #<- error fungsi remove() karena tidak ada data
Bila kita mencoba menghapus anggota yang ada di dalam set menggunakan fungsi remove() maka akan menampilkan pesan error KeyError
.
Kita juga bisa menghapus anggota set dengan fungsi pop()
. Fungsi pop()
akan menghapus salah satu anggota set dari depan, dan untuk mengosongkan isi set kita dapat menggunakan fungsi clear()
maka seluruh anggota set akan di hapus.
nomor = {1,2,3,4}
# Menghapus anggota set dengan pop()
nomor.pop()
print nomor
# Menghapus semua anggota set
nomor.clear()
print nomor
Outputnya seperti berikut:
set([2, 3, 4])
set([])
4. Operasi Pada Set
Set biasanya digunakan dalam operasi himpunan seperti gabungan, selisih, komplemen dan irisan.
1. Operasi Gabungan (Union)
Operasi Gabungan (union) merupakan gabungan dari anggota set atau himpunan A
dengan anggota set atau himpunan B
. Gabungan dapat dibuat menggunakan operator palang (|
) atau menggunakan fungsi union()
.
A = {1, 3, 5, 7}
B = {2, 4, 6, 8}
# Gabugan menggunakan |
print A | B
# Gabungan menggunakan union()
print A.union(B) #<- sama dengan B.union(A)
Outputnya adalah:
set([1, 2, 3, 4, 5, 6, 7, 8])
set([1, 2, 3, 4, 5, 6, 7, 8])
2. Operasi Irisan (Intersection)
Operasi Irisan (Intersection) dari A
dan B
merupakan anggota set yang ada di dalam A
dan juga ada di dalam B
.
Irisan dapat dilakukan menggunakan operator jangkar dan (&
) atau juga bisa menggunakan fungsi intersection()
.
A = {1, 2, 3, 4}
B = {3, 4, 5 ,6}
# Irisan menggunakan &
print A & B
# Irisan menggunakan intersection()
print A.intersection(B)
Outputnya seperti berikut ya:
set([3,4])
set([3,4])
3. Operasi Selisih (Difference)
Selisih (difference) dari A
dan B
adalah anggota set yang hanya ada di dalam A
dan tidak ada di dalam B
.
Selisih dapat dilakukan menggunakan operator kurang (-
) atau menggunakan fungsi difference()
.
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Selisih menggunakan -
print A - B
print B - A
# selisih menggunakan difference()
print A.difference(B)
print B.difference(A)
Outputnya seperti dibawah:
set([1, 2, 3]) #<- A selisih B
set([8, 6, 7]) #<- B selisih A
set([1, 2, 3]) #<- A selisih B
set([8, 6, 7]) #<- B selisih A
Perlu diingat bahwa A
selisih B
tidak sama dengan B
selisih A
.
4. Operasi Komplemen (Symmetric Difference)
Operasi komplemen (symmetric difference) dari A
dan B
adalah anggota set yang ada di dalam A
dan B
tetapi tidak ada di dalam keduanya.
Komplemen dapat dibuat menggunakan operator ^
atau menggunakan fungsi symmetric_difference()
.
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Komplemen menggunakan ^
print A ^ B
# Komplemen menggunakan symmetric_difference()
print A.symmetric_difference(B)
Outputnya adalah:
set([1, 2, 3, 6, 7, 8])
5. Fungsi Pada Set
Python menyediakan beberapa fungsi yang dapat kita gunakan pada set, berikut fungsi-fungsinya:
Fungsi | Deskripsi |
---|---|
add() | Menambahkan satu anggota ke dalam set |
clear() | Menghapus semua anggota set |
copy() | Menggembalikan shallow copy dari set |
difference() | Mengembalikan set baru berisi selisih dua atau lebih set |
difference_update() | Mengupdate set dengan selisih set bersangkitan dan set lainnya |
discard() | Menghapus satu anggota di dalam set |
intersection() | Mengembalikan set baru berisi irisian dari 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 yang bersangkutan |
issuperset() | Mengembalikan True jika set yang bersangkutan berisi set lain |
pop() | Menghapus anggota acak dati sebuah set |
remove() | Menghapus satu anggota set |
symmetric_difference() | Mengembalikan set baru berisi komplemen dari dua atau lebih set |
symmetric_difference_update() | Mengupdate set dengan komplemen dari set yang bersangkutan dan set lainnya |
union() | Mengembalikan set baru berisi gabungan dari dua atau lebih set |
update() | Mengupdate set dengan gabungan set yang bersangkutan dan set lainnya |
Kesimpulan
Kita sudah selesai belajar tentang set. Set merupakan tipe data yang tidak berurutan dan memiliki unique value. Silakan dipelajari lagi ya jika masih kurang paham silakan tanyakan di kolom komentar...
Selanjutnya kita akan belajar mengenai tipe data dictionary pada python.