Python - Set
Halo, para pemrogram Python yang beraspirasi! Hari ini, kita akan menyelam ke dalam dunia yang menakjubkan tentang Set Python. Sebagai guru ilmu komputer yang ramah di lingkungan Anda, saya sangat senang untuk membimbing Anda melalui perjalanan ini. Jadi, ambil minuman kesukaan Anda, bersantailah, dan mari kita eksplorasi set bersama-sama!
Set di Python
Bayangkan Anda memiliki sebuah tas yang berisi kelereng-kelereng berwarna. Setiap kelereng adalah unik, dan Anda tidak peduli dengan urutan mereka - Anda hanya ingin tahu warna apa yang Anda miliki. Itulah yang sebenarnya adalah set di Python!
Set adalah koleksi yang tidak berurutan dari elemen-elemen yang unik. Mirip seperti himpunan matematis: tidak boleh ada duplikat, dan urutan tidak penting. Set sangat berguna saat Anda perlu untuk menyimpan item yang unik atau melakukan operasi set seperti gabungan, irisan, 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-elemen yang 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 bisa Anda lihat, Python secara otomatis menghapus duplikat untuk kita. Bukan itu keren?
Menambahkan 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 eksplorasi 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 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 himpunan matematis. Mari kita lihat beberapa diantaranya:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# Gabungan
print(set1 | set2) # atau set1.union(set2)
# Irsan
print(set1 & set2) # atau set1.intersection(set2)
# Perbedaan
print(set1 - set2) # atau set1.difference(set2)
# Selisih Simetris
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
Sama seperti komprehensi daftar, Python juga mendukung komprehensi set. Mereka menyediakan cara yang ringkas untuk membuat set berdasarkan objek iterabel yang ada.
# Membuat set dari kuadrat angka dari 0 sampai 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 komprehensi set untuk memfilter elemen:
# Membuat set dari kuadrat genap dari 0 sampai 9
kuadrat_genap = {x**2 for x in range(10) if x % 2 == 0}
print(kuadrat_genap)
Output:
{0, 4, 16, 36, 64}
Komprehensi Set Bersarang
Meskipun kurang umum, komprehensi set bersarang juga dimungkinkan:
# Membuat set dari tupel (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-elemen set dapat diubah sewaktu-waktu, elemen-elemen set beku tetap sama setelah penciptaan.
set_normal = {1, 2, 3}
set_beku = frozenset([1, 2, 3])
set_normal.add(4) # Ini berhasil
# set_beku.add(4) # Ini akan menghasilkan AttributeError
Set beku sangat berguna saat Anda perlu himpunan yang tidak dapat diubah, seperti menggunakan itu sebagai kunci dictionary.
Dan itu adalah semua, teman-teman! Kita telah membahas tentang hal-hal penting tentang set Python. Ingat, praktek membuat perfect, jadi jangan segan untuk eksperimen dengan konsep ini. Selamat coding!
Berikut adalah tabel yang ringkasan metode set utama yang telah kita diskusikan:
Metode | Deskripsi |
---|---|
add() | Menambahkan elemen ke set |
update() | Menambahkan beberapa elemen ke set |
remove() | Menghapus elemen spesifik dari set (menghasilkan kesalahan jika tidak ditemukan) |
discard() | Menghapus elemen spesifik 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 irisan set |
difference() | Mengembalikan set yang berisi perbedaan set |
symmetric_difference() | Mengembalikan set dengan elemen di salah satu set, tetapi tidak di kedua |
Credits: Image by storyset