Pengenalan • Set pada Python memiliki operasi yang sama pada himpunan di matematika. • Elemen di dalam set tidak berurutan. • Elemen di dalam set bersifat unik (tidak bisa duplikasi) namun dapat memiliki tipe data yang berbeda. • Set dapat dimodifikasi namun elemen di dalamnya adalah immutable. • Ada 2 jenis set yang dapat digunakan pada Python yaitu Set dan Frozen set. Keunggulan Set • Keunggulan utama dari set dari struktur koleksi data yang lainnya adalah proses membership testing dan eliminasi duplikasi elemen yang lebih cepat. Membuat Set • Ada 2 cara untuk membuat set di dalam Python : 1. Fungsi set() digunakan untuk membuat set 2. Menggunakan symbol kurung kurawal { .. } Mengakses Elemen Set • Kita tidak dapat memanggil elemen set layaknya memanggil elemen di dalam list / tuples. • Untuk mengakses elemen set kita harus menggunakan perulangan FOR dan operator IN. Metode Set Manipulasi Set • Karena set bersifat mutable, maka manipulasi set dapat dilakukan dengan memanfaatkan beberapa metode sebagai berikut: • add() untuk menambahkan elemen ke dalam set. • discard(), remove() untuk menghapus element pada set. • clear() untuk menghapus semua elemen set. Apa perbedaan dari remove dan discard??? Metode union() • Metode ini digunakan untuk menyatukan set • Perlu diingat bahwa nilai yang sama antar dua set hanya ditampilkan 1x Contoh implementasi union() Metode intersection() • Metode set ini digunakan untuk mencari nilai yang sama antara dua set. Contoh implementasi intersection() Metode difference()
• Metode ini digunakan untuk
mendapatkan elemen yang ada dalam satu set tetapi tidak yang lain. Contoh implementasi difference() Metode symmetric_difference() • Mendapatkan seluruh nilai antar set dengan pengecualian terhadap nilai yang sama. Implementasi symmetric_difference() Metode issuperset() • Metode ini digunakan untuk menguji apakah suatu set merupakan superset dari set pembanding. • Superset • Menghasilkan nilai boolean Set A dikatakan superset dari B jika sebagian nilai A terkandung dalam set B Metode issubset() • Metode ini merupakan kebalikan dari metode superset(). • Untuk menguji apakah suatu set merupakan subset dari set pembanding. Menghasilkan nilai boolean Set A dikatakan subset dari B jika seluruh nilai A terkandung dalam set B Metode isdisjoint() • Metode ini digunakan untuk menguji apakah antar set sama sekali tidak ada nilai yang sama. • Menghasilkan nilai boolean. Lebih dari 2 Set • Kita dapat menggunakan metode-metode set untuk membandingkan lebih dari 2 set. • Cara bacanya adalah dari kiri ke kanan.
Dari contoh skrip diatas, File_A akan dibandingkan terlebih
dahulu dengan File_B lalu kemudian dibandingkan dengan file_C Frozen Set • Frozen set merupakan versi immutable dari set. • Panjang elemen di dalam frozen set adalah tetap. • Setiap elemen di frozen set tidak disimpan secara berurutan. • Frozen set dapat menerapkan semua metode yang ada pada set biasa. Membuat Frozen set • Frozen set hanya dapat dibuat dengan menggunakan fungsi frozenset() Nested Set • Karena set hanya dapat mengandung objek non hashable, kita tidak dapat membuat set di dalam set. • Nested sets hanya dapat dilakukan dengan memanfaatkan frozen set. Set Comprehension • Layaknya list dan tuples, kita dapat meringkas penulisan kode set agar kode terlihat lebih ringkas dan clean.
Contoh penerapan membership testing pada set dengan set comprehensions: