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!

Python - Sets

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:

  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-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