Pada pertemuan yang lalu kita telah membahas berbagai macam tipe data pada python. Mulai dari tipe data yang bersifat asli seperti string, integer, boolean, dan float. Maupun tipe data terusan seperti list, tuple, dan dictionary.
Nah, setelah kita membahas tipe data dictionary pada seri ke #8, sekarang kita akan membahas tentang tipe data set pada python.
Apa itu tipe data set?
Set dalam bahasa pemrograman python adalah tipe data koleektif yang digunakan untuk menyimpan banyak nilai ke dalam satu variabel dengan ketentuan:
- nilai anggota yang disimpan harus unik (tidak duplikat)
- nilai anggota yang sudah dimasukan tidak bisa diubah lagi
- set bersifat unordered alias tidak berurut yang artinya tidak bisa diakses dengan index
untuk lebih memahami 3 poin diatas, kita akan langsung melakukan praktek.
Cara Membuat Set
Secara umum kita bisa membuat set dengan 2 cara:
- dengan kurung kurawal {}, atau
- dengan sebuah list yang kita passing ke dalam fungsi set()
Perhatikan kode program berikut:
# menggunakan kurung kurawal himpunan_siswa = {'Munir', 'Novia', 'Nazeea', 'Khawarizmi'} print(himpunan_siswa) # mengkonversi list ke dalam set himpunan_buah = set(['nanas', 'pisang']) print(himpunan_buah) # set dengan tipe data yang berbeda-beda set_campuran = {'manusia', 'hewan', 5, True, ('Nazeea', 'Khawarizmi')} print(set_campuran)
Jika kita jalankan kode di atas, maka akan mendapatkan output sebagai berikut:
Set Bersifat Unordered
Tipe data set bersifat unordered alias tidak berurut. Itu artinya, kita tidak bisa menggunakan index untuk mengakses nilai pada set, kalaupun kita memaksa, kita hanya akan mendapatkan error.
set_ku = {'a'} print(set_ku[0])
Maka akan menghasilkan error seperti berikut:
Kita juga bisa perhatika kode program yang telah kita buat sebelumnya:himpunan_siswa = {'Munir', 'Novia', 'Nazeea', 'Khawarizmi'} print(himpunan_siswa)
Di mana kita mendefinisikan 4 anggota set dengan urutan: Munir, Novia, Nazeea, Khawarizmi
Akan tetapi setelah kita print, kita malah mendapatkan urutan yang berbeda:
{'Novia', 'Khawarizmi', 'Munir', 'Nazeea'}
Set Bersifat Unchangable
Set bersifat unchangable, yang berarti bahwa nilai yang sudah kita masukan ke dalam set, tidak bisa kita ubah lagi.
Akan tetapi, kita tetap bisa menambah dan menghapus angota pada set.
Dan karena set bersifat unchangable, set juga hanya bisa menerima anggota dari tipe data yang juga bersifat immutable.
Perhatikan contoh berikut:
# anggota set harus dari tipe data immutable set_buah = {'mangga', 'lemon', 'alpukat', True, 1, 2, 3} # kita bisa menjadikan tuplesebagai anggota # karena ia bersifat immutable papan_ketik = { (1, 2, 3), (4, 5, 6), (7, 8, 9), (0) }
Tapi tidak bisa memasuka list sebagai anggota karena list bersifat mutable, perhatikan contoh berikut:
x = {35, 100, ['a', 'b']}
Pesan error:
Tidak Bisa Menerima Nilai Duplikat
Selain itu set pada python juga tidak bisa menerima nilai duplikat. Jika kita memasukan nilai yang sudah ada pada suatu set, maka nilai tersebut hanya akan muncul atau dimasukan 1 kali saja.
Perhatikan contoj berikut:
list_kata = [
'pagi', 'ini', 'adalah', 'pagi', 'yang', 'sangat', 'cerah'
]
print(list_kata)
Outputnya adalah:
Sedangkan jika kita masukkan string 'pagi' sebanyak 2 kali ke dalam set seperti ini:list_kata = { 'pagi', 'ini', 'adalah', 'pagi', 'yang', 'sangat', 'cerah' } # atau bisa langsung konversi list_kata menjadi set # supaya lebih ringkas: # kata_unik = set(list_kata) print(kata_unik)
Maka kata 'pagi' akan dimasukan 1 kali saja:
Menambah Anggota Baru
Seperti yang kita singgung di atas bahwa meskipun nilai set tidak bisa diubah, tetapi bisa ditambah dan di hapus.
Kita bisa menambah anggota baru ke dalam set dengan fungsi add() dan fungsi update().
himpunan_abjad= {'a', 'b', 'c'} print(himpunan_abjad) # menambah satu-satu himpunan_abjad.add('d') himpunan_abjad.add('e') # menambah satu anggota sekaligus himpunan_abjad.update({'f', 'g'}) # atau bisa juga dengan list himpunan_abjad.update(['h', 'i']) print(himpunan_abjad)
Jika kita jalankan, kita akan mendapatkan output sebagai berikut:
Menghapus Anggota
Untuk menghapus anggota pada set, terdapat 4 fungsi yang dapat kita guanakan:
- remove(nilai), Untuk menghapus nilai yang dicari, Jika nilai yang dicari tidak ada, maka akan error.
- discard(nilai), untuk menghapus nilai yang dicari, juka nilai yang dicari tidak ada, tidak akan error.
- pop(), mengambil dan menghapus nilai di sebelah kiri.
- clear(), menghapus semua anggota
Mari kita coba satu persatu.
himpunan = {'maya', 'budi', 100, ('a', 'b'), False, True} print(himpunan) # akan error jika nilai 100 tidak ada dalam set himpunan.remove(100) print(himpunan) # tidak akan error jika 'a' dan 'b' tidak ada dalam set himpunan.discard(('a', 'b')) print(himpunan) # remove nilai di sebelah kiri nilaiYangDihapus = himpunan.pop() print('nilai yang dihapus', nilaiYangDihapus) print(himpunan) # hapus semua nilai himpunan.clear() print(himpunan)
Jika dijalankan, berikut keseluruhan output yang dijalankan:
Fungsi Keanggotaan Pada Set
Diantara keunggulan tipe data set adalah, keunikan anggotanya. Sehingga dengan keunikan tersebut, python menyediakan kepada kita berbagai fungsi keanggotaan yang berguna untuk pengolahan data. Diantaranya:
- fungsi union (gabungan)
- fungsi interaksion (irisan)
- fungsi difference (selisih)
- fungsi symmetric difference (komplement)
- dan lain sebagainya
Agar lebih jelasnya, mari kita coba beberapa diantaranya.
Anggap saja kita memiliki dua grup WA, yaitu grup WA SMA, dan grup WA SMP. Dan kita memiliki teman bernama Ratna dan Andi yang merupakan teman SMP dan juga teman SMA sekaligus.
untuk mempersentasikan hal tersebut, kita akan buat dua buah set seperti berikut:
grup_smp = { 'andi', 'budi', 'ratna', 'sari' } grup_sma = { 'putri', 'ratna', 'andi', 'agus' }
Union (Gabungan)
Kita bisa melakukan operasi union, alias menggabungkan kedua angoota dari grup SMP dan SMA.
Ilustrasi operasi union:
Dalam python, kita bisa melakukan operasi union dengan simbol pipe (|) atau bisa memanggil fungsi set.union() seperti berikut:
# cara 1
print(grup_smp | grup_sma)
# cara 2
print(grup_smp.union(grup_sma)
Perhatikan input diatas, meskipun ratna dan andi adalah anggota dari kedua grup tersebut, tapi nama mereka hanya muncul satu kali.
Intersection (Irisan)
Berikutnya adalah intersection atau irisan: yaitu kita akan mengambil siapa saja siswa yang menjadi anggota grup sma yang juga anggota grup smp.
Ilustrasi operasi intersection:
Kita bisa melakukannya dengan dua cara: yakni menggunakan simbol &, atau menggunakan fungsi set.intersection() seperti berikut:
print(grup_smp & grup_sma) #cara 1 print(grup_smp.intersection(grup_sma)) #cara 2
Jika dijalankan, kita akan mendapatkan output:
Difference (Selisih)
Difference atau selisih adalah proses mengekstrak anggota grup pertama, yang bukan anggota grup kedua.
Perhatikan anggota berikut:
Untuk melakukannya, kita bisa menggunakan simbol - atau dengan memanggil fungsi set.difference() seperti ini:
#differnce
print('\n anggota grup smp yang bukan anggota grup sma')
print(grup_smp - grup_sma)
print(grup_smp.difference(grup_sma))
print('\n dibalik, anggota grup sma yang bukan anggota smp')
print(grup_sma - grup_smp)
print(grup_sma.difference(grup_smp))
Outputnya akan kita lihat setelah kita coba fungsi keanggotaan symmetric_difference.
Symmetric Difference (yang hanya menjadi anggota dalam satu grup)
Bedanya dengan difference, symmetric difference akan menghasilkan anggota-anggota dari kedua grup, yang mana tiap anggota tersebut hanya menjadi anggota dari satu grup.
Lalu tambahkan kode program berikut pada syntak difference:
#symmetric difference print('\n anggota yang hanya ikut satu grup saja:') print(grup_sma.symmetric_difference(grup_smp))
Jika kita jalankan, gabungan kode program dari fungsi difference dan juga symmetric_difference akan menghasilkan output sebagai berikut:
Menampilkan Anggota Set Dengan Perulangan
Berikutnya kita juga bisa menampilkan tiap anggota dari sebuah set denan melakukan perulangan for.
Perhatikan contoh berikut:
himpunan_buah = { 'pepaya', 'apel, 'rambutan', 'jagung' } for buah in himpunan_buah: print (buah)
Output:
Fungsi-fungsi bawaan set
Terakhir tapi bukan yang paling akhir, berikut ini adalah kesimpulan fungsi-fungsi bawaan tipe data set yang bisa kita gunakan
Agar lebih memahami semua fungsi diatas, teman-teman bisa mencobanya satu persastu.
Oke deh, sekian dulu pembahasan tentang tipe data set.
Saya ucapkan terima kasih karna teman-temann sudah membaca sampai sejauh ini, dan buat yang belum membaca dari awal kamu bisa buka halaman-halaman sebelumnya agar bisa lebih mudah memahami dasar-dasar belajar pemrograman python.
Selanjutnya pada seri ke #10 kita akan mulai belajar tentang operator pada pemrograman python yang pastinya bakalan lebih seru. hehe...
Sekian, dan ingat! jangan lupa praktek!
0 Komentar