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!

Python - Sets

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:

  1. Menggunakan kurung kurawal {}
  2. 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