00:00Oke, di pembahasan kali ini kita bakal kupas tuntas salah suatu tipe data inti di Python yang kelihatannya simple, tapi
00:05detail-detailnya itu yang bikin dia jadi sangat kuat, set.
00:08Jadi, kita bakal mulai dari fondasinya dulu, apa itu set, terus kita lanjut ke cara membangun dan mengelolanya, baru deh
00:15kita bongkar kekuatan sesungguhnya lewat operasi-operasi canggih.
00:18Dan terakhir, kita lihat gimana set bisa dipakai buat perbandingan logika yang elegan banget.
00:23Oke, biar kita benar-benar paham kapan dan kenapa harus pakai set, kita mesti ngerti dulu tiga properti inti yang
00:28bikin dia jadi, ya, spesial.
00:31Jadi, apa sih yang sebenarnya ngebedain set dari koleksi lain, kayak list atau tuple gitu?
00:36Poin kuncinya tuh gini, set itu cuma peduli sama dua hal, keanggotaan dan keunikan.
00:41Udah, itu aja. Dia nggak peduli sama urutan, dan yang pasti, duplikasi itu dilarang keras.
00:45Nah, detail inilah yang jadi sumber kekuatannya.
00:47Nah, bedanya sama list tuh kelihatan banget di sini.
00:49Kalau list kan rapih, dia jaga urutan dan ngebolehin duplikat.
00:53Sementara set, dia maksa semuanya harus unik dan sama sekali nggak peduli sama urutan.
00:57Ini dua filosofi yang beda banget.
00:58Coba deh, lihat gimana ini bekerja di praktiknya.
01:01Iron Man 3 yang kedua itu langsung dihilangin secara otomatis.
01:04Dan perhatiin deh, urutan outputnya.
01:06Kita nggak bisa nebakkan.
01:08Nah, inilah sifat dasar set yang lagi beraksi.
01:10Oke, sekarang kita udah tahu apa itu set.
01:13Yuk kita lihat gimana cara kerja bareng dia.
01:15Ini ibaratnya toolkit dasar yang perlu banget kamu kuasain.
01:18Gini, kita bisa bayangin ngelola set itu kayak sebuah siklus hidup.
01:21Kita mulai dengan bikin koleksinya.
01:23Terus kita tambahin item baru pake .add.
01:25Kita lihat gimana dia dengan pinter nolak duplitat waktu kita pake .update.
01:29Terus kita bisa hapus item pake metode spesifik kayak .remove atau .discard.
01:33Nah, ini nih detail yang penting banget pas kita mau hapus item.
01:36Milih antara .remove dan .discard itu krusial.
01:39Gampangnya, pake .remove kalau kamu yakin item itu pasti ada.
01:42Dan kamu pengen tahu kalau ternyata nggak ada.
01:44Tapi, pake .discard buat cara yang lebih aman yang nggak bakal error meskipun itemnya nggak ada.
01:49Dan tentunya operasi dasarnya juga efisien banget.
01:52Kamu bisa dengan gampang ngelakuin iterasi, ngecek angkotaan pake in yang super cepet itu,
01:57dan dapetin jumlah item unik di dalamnya tanpa pusing mikirin duplikat.
02:01Nah, disinilah set itu berubah dari yang tadinya cuma kayak wadah biasa,
02:05jadi alat super canggih buat analisis data.
02:08Kita sekarang ngomongin soal operasi teori himpunan klasik.
02:11Pertama, kita punya union.
02:13Sederhananya, ini ngegabungin dua set jadi satu koleksi baru.
02:16Isinya semua elemen unik dari keduanya.
02:18Diagram fan ini ngegambarin konsepnya dengan sempurna.
02:21Semuanya digabung jadi satu.
02:22Pas kita nyari perbedaan, ada detail penting yang mesti kamu perhatiin nih.
02:26.difference itu bakal ngasih kamu set baru, jadi yang asli nggak diubah.
02:30Sementara .difference update sesuai namanya bakal langsung ngubah set aslinya.
02:34Jadi ini bedanya antara dapet salinan sama modifikasi langsung.
02:37Jadi hasilnya jelas ya, yang kita dapet itu cuma elemen-elemen yang eksklusif ada di set pertama.
02:43Bagian yang tumpang tindi sama elemen dari set kedua, itu diabaikan.
02:46Kalau symmetric difference, ini tuh pada dasarnya kebalikan dari irisan.
02:49Kamu bakal dapet semua elemen, kecuali yang dimiliki bersama oleh kedua set.
02:53Dan sama kayak sebelumnya, kamu punya pilihan.
02:55Pakai .symmetric underscore difference buat dapet set baru,
02:58atau .symmetric underscore difference underscore update buat ngubah yang asli.
03:01Jadi, operasi ini tuh ibaratnya membuang bagian tengahnya, atau irisannya,
03:06dan cuma nyisain elemen-elemen unik di masing-masing sisi.
03:09Ini berguna banget kalau kamu mau nyari elemen yang nggak tumpang tindih.
03:13Nah, kalau irisan, ini semua tentang nyari kesamaan.
03:16Operasi ini cocok banget buat nemuin elemen-elemen yang tumpang tindih di antara dua kelompok data,
03:21jadi kita cuma ngambil apa yang mereka punya bersama.
03:23Dan hasilnya ya itu, inti dari kesamaannya.
03:26Cuma elemen yang ada pas di tengah-tengah diagram, yang jadi milik kedua set.
03:30Oke, selain buat gabungin data, set itu juga keren banget buat ngecek hubungan logis antara set.
03:35Nah, operasi-operasi ini nggak ngasihin set baru, tapi cuma jawaban simpel, bener atau salah?
03:40Pertama, kita bisa nanya, eh, apa bener semua elemen di set ini ada juga di dalam set yang satunya?
03:46Nah, metode .isubset ini bakal langsung ngasih jawabannya.
03:50Simpel.
03:50Superset?
03:51Ya, ini tinggal dibalik aja.
03:53Sekarang kita nanya, apakah set yang lebih besar ini beneran mencakup semua elemen dari set yang lebih kecil?
03:58Ini cara ngecek inklusi, tapi dari sudut pandang yang berlawanan.
04:01Dan yang terakhir, .isdisjoined.
04:03Ini cara paling cepat buat mastiin nggak ada tumpang tindis sama sekali.
04:06Jadi ini buat jawab pertanyaan, apakah kedua set ini bener-bener terpisah?
04:10Nggak punya satupun elemen yang sama?
04:11Jadi, kesimpulannya, ingat aja tiga detail fundamental ini.
04:15Tidak terurut, tidak terindeks, dan unik.
04:17Semua kekuatan yang udah kita bahas barusan,
04:19dari otomatis ngehapus duplikat,
04:21sampai operasi teori himpunan yang canggih,
04:23semuanya itu berakar dari tiga properti inti ini.
04:25Nah, ini ngebawa kita ke pertanyaan yang paling penting.
04:29Coba deh, pikirin kode kamu sendiri.
04:31Ada nggak bagian di mana kamu bisa ganti loop yang ribet,
04:33atau perbandingan list yang lambat,
04:35dengan satu operasi set yang simple dan elegan?
04:37Detail kecil kayak gini bisa bikin perbedaan besar lho,
04:40buat kejelasan dan efisiensi kode kamu.
04:42Terima kasih telah menonton!
Komentar