Python - Set
Helo, para pemrogram Python yang aspiratif! Hari ini, kita akan menyelam ke dunia yang menakjubkan tentang Set Python. Sebagai guru sains komputer yang ramah di lingkungan kita, saya sangat gembira untuk memandu anda melalui perjalanan ini. Jadi, ambil minuman kesukaan anda, dapatkan diri anda yang selesa, dan mari kita eksplor set bersama-sama!
Set di Python
Bayangkan anda memiliki sebuah rak rakus warna-warni. Setiap rakus adalah unik, dan anda tidak peduli tentang urutan mereka - anda hanya ingin tahu warna apa yang anda miliki. Itu hampir seperti apa yang dimaksudkan dengan set di Python!
Set adalah sebuah koleksi yang tidak berurutan dari elemen-elemen unik. Itu seperti sebuah set matematika: tidak boleh ada duplikat, dan urutannya tidak penting. Set sangat berguna ketika anda perlu untuk menyimpan item unik atau melakukan operasi set seperti gabungan, persimpangan, dan perbedaan.
Membuat Set di Python
Mari kita mulai dengan membuat set pertama kita. Ada dua cara utama untuk membuat set di Python:
- Menggunakan kurung kurawal {}
- Menggunakan konstruktor set()
Berikut adalah contoh dari kedua metode:
# Metode 1: Menggunakan kurung kurawal
buah = {'apel', 'pisang', 'ceri'}
# Metode 2: Menggunakan konstruktor set()
warna = set(['merah', 'hijau', 'biru'])
print(buah)
print(warna)
Output:
{'ceri', 'apel', 'pisang'}
{'biru', 'merah', 'hijau'}
Perhatikan bahwa urutan elemen di output mungkin berbeda dari yang kita definisikan. Itu karena set adalah tidak berurutan!
Elemen Duplikat di Set
Ingat ketika saya mengatakan set hanya berisi elemen unik? Mari lihat apa yang terjadi ketika kita mencoba untuk menambahkan duplikat:
angka = {1, 2, 3, 2, 4, 3, 5}
print(angka)
Output:
{1, 2, 3, 4, 5}
Seperti yang dapat dilihat, Python secara otomatis menghapus duplikat untuk kita. Bukan itu keren?
Menambah Elemen di Set
Untuk menambahkan satu elemen ke set, kita menggunakan metode add()
. Jika kita ingin menambahkan beberapa elemen sekaligus, kita menggunakan metode update()
.
# Menambahkan satu elemen
buah.add('jeruk')
print(buah)
# Menambahkan beberapa elemen
buah.update(['anggur', 'mango'])
print(buah)
Output:
{'ceri', 'apel', 'pisang', 'jeruk'}
{'ceri', 'mango', 'apel', 'pisang', 'jeruk', 'anggur'}
Menghapus Elemen dari Set
Ada beberapa cara untuk menghapus elemen dari set. Mari kita eksplor mereka:
# Menggunakan remove() - menghasilkan kesalahan jika elemen tidak ada
buah.remove('pisang')
# Menggunakan discard() - tidak menghasilkan kesalahan jika elemen tidak ada
buah.discard('kiwi')
# Menggunakan pop() - menghapus dan mengembalikan elemen acak
popped = buah.pop()
print(f"Elemen yang dihapus: {popped}")
# Menggunakan clear() - menghapus semua elemen
buah.clear()
print(buah)
Output:
Elemen yang dihapus: ceri
set()
Pengujian Keanggotaan di Set
Salah satu hal yang bagus tentang set adalah bahwa mereka memungkinkan untuk pengujian keanggotaan yang sangat cepat. Kita dapat menggunakan kata kunci in
untuk memeriksa jika sebuah elemen ada di set:
angka = {1, 2, 3, 4, 5}
print(3 in angka) # True
print(6 in angka) # False
Operasi ini jauh lebih cepat dengan set daripada dengan daftar, terutama untuk koleksi yang besar!
Operasi Set
Set di Python mendukung berbagai operasi set matematika. Mari kita lihat beberapa dari mereka:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# Gabungan
print(set1 | set2) # atau set1.union(set2)
# Persimpangan
print(set1 & set2) # atau set1.intersection(set2)
# Perbedaan
print(set1 - set2) # atau set1.difference(set2)
# Perbedaan Simetrik
print(set1 ^ set2) # atau set1.symmetric_difference(set2)
Output:
{1, 2, 3, 4, 5, 6, 7, 8}
{4, 5}
{1, 2, 3}
{1, 2, 3, 6, 7, 8}
Set Komprehensi Python
Seperti komprehensi daftar, Python juga mendukung set komprehensi. Mereka menyediakan cara yang ringkas untuk membuat set berdasarkan objek iterable yang ada.
# Membuat set dari kuadrat angka dari 0 hingga 9
kuadrat = {x**2 for x in range(10)}
print(kuadrat)
Output:
{0, 1, 4, 9, 16, 25, 36, 49, 64, 81}
Mengfilter Elemen Menggunakan Set Komprehensi
Kita juga dapat menggunakan set komprehensi untuk mengfilter elemen:
# Membuat set kuadrat genap dari 0 hingga 9
kuadrat_genap = {x**2 for x in range(10) if x % 2 == 0}
print(kuadrat_genap)
Output:
{0, 4, 16, 36, 64}
Set Komprehensi Berlapis
Meskipun kurang umum, set komprehensi berlapis juga dimungkinkan:
# Membuat set dari pasangan (x, y) di mana x dan y adalah digit
pasangan_digit = {(x, y) for x in range(3) for y in range(3)}
print(pasangan_digit)
Output:
{(0, 1), (1, 2), (0, 0), (2, 0), (1, 1), (2, 2), (0, 2), (2, 1), (1, 0)}
Set Beku
Terakhir tapi tidak terkecil, mari kita berbicara tentang set beku. Set beku adalah versi yang tidak dapat diubah dari objek set Python. Sementara elemen set dapat diubah sewaktu-waktu, elemen set beku tetap sama setelah pembuatan.
set_normal = {1, 2, 3}
set_beku = frozenset([1, 2, 3])
set_normal.add(4) # Ini bekerja
# set_beku.add(4) # Ini akan menghasilkan kesalahan AttributeError
Set beku sangat berguna ketika anda perlu sebuah set yang tidak dapat diubah, seperti menggunakannya sebagai kunci kamus.
Dan itu adalah semua, teman-teman! Kita telah membahas tentang ins dan outs set Python. Ingat, praktek membuat perfect, jadi jangan segan untuk bereksperimen dengan konsep ini. Happy coding!
Berikut adalah tabel yang ringkasan metode set utama yang kita diskusikan:
Metode | Deskripsi |
---|---|
add() | Menambahkan elemen ke set |
update() | Menambahkan beberapa elemen ke set |
remove() | Menghapus elemen khusus dari set (menghasilkan kesalahan jika tidak ditemukan) |
discard() | Menghapus elemen khusus dari set (tidak menghasilkan kesalahan jika tidak ditemukan) |
pop() | Menghapus dan mengembalikan elemen acak dari set |
clear() | Menghapus semua elemen dari set |
union() | Mengembalikan set yang berisi gabungan set |
intersection() | Mengembalikan set yang berisi persimpangan set |
difference() | Mengembalikan set yang berisi perbedaan set |
symmetric_difference() | Mengembalikan set dengan elemen di salah satu set, tetapi tidak keduanya |
Credits: Image by storyset