Cover Python 3 - Inpows
Cover Python 3 - Inpows

Di Python, set adalah struktur data yang menyimpan sekumpulan elemen yang unik dan tidak terurut. Set sering digunakan ketika Anda ingin memastikan bahwa tidak ada duplikasi dalam koleksi data atau ketika Anda perlu melakukan operasi matematika seperti himpunan (union, intersection, difference) secara efisien. Pada artikel ini, kita akan membahas apa itu set di Python, bagaimana cara menggunakannya, serta kelebihannya.

Apa Itu Set?

Set adalah sebuah koleksi yang tidak terurut (unordered) dan tidak memiliki indeks. Set hanya menyimpan elemen-elemen yang unik, artinya setiap elemen hanya bisa muncul satu kali dalam sebuah set. Jika Anda mencoba menambahkan elemen yang sudah ada di dalam set, maka set tidak akan berubah. Ini membuat set sangat berguna dalam kasus-kasus yang memerlukan penghapusan duplikasi.

Ciri-ciri Set:

  • Tidak Terurut (Unordered): Elemen dalam set tidak memiliki urutan yang tetap dan tidak dapat diakses menggunakan indeks.
  • Tidak Ada Duplikasi: Set secara otomatis menghapus elemen duplikat saat Anda menambahkannya.
  • Mutable: Set dapat diubah, artinya Anda dapat menambah atau menghapus elemen setelah set dibuat.
  • Hanya Mendukung Elemen yang Hashable: Elemen dalam set harus bersifat hashable, yang berarti elemen tersebut harus berupa tipe data yang immutable (seperti angka, string, tuple) dan tidak dapat berupa tipe data yang mutable (seperti list atau dictionary).

Membuat Set di Python

Untuk membuat set di Python, Anda bisa menggunakan fungsi set() atau dengan menggunakan tanda kurung kurawal {}. Perlu dicatat bahwa set tidak mendukung elemen yang berjenis list atau dictionary karena elemen-elemen tersebut bersifat mutable.

# Membuat set menggunakan set()
my_set = set([1, 2, 3, 4, 5])
print(my_set)  # Output: {1, 2, 3, 4, 5}

# Membuat set menggunakan kurung kurawal
another_set = {10, 20, 30, 40, 50}
print(another_set)  # Output: {10, 20, 30, 40, 50}

Jika Anda membuat set dari list atau tuple yang memiliki elemen yang sama, Python akan menghapus duplikat secara otomatis.

duplicate_set = set([1, 2, 2, 3, 3, 4])
print(duplicate_set)  # Output: {1, 2, 3, 4}

Operasi Dasar pada Set

1. Menambahkan Elemen ke Set

Untuk menambahkan elemen ke dalam set, Anda dapat menggunakan metode add(). Metode ini akan menambahkan elemen jika elemen tersebut belum ada di dalam set.

my_set = {1, 2, 3}
my_set.add(4)  # Menambahkan 4 ke dalam set
print(my_set)  # Output: {1, 2, 3, 4}

# Menambahkan elemen yang sudah ada tidak akan mengubah set
my_set.add(4)
print(my_set)  # Output: {1, 2, 3, 4}

2. Menghapus Elemen dari Set

Untuk menghapus elemen dari set, Anda bisa menggunakan metode remove(), discard(), atau pop():

  • remove(): Menghapus elemen berdasarkan nilai. Jika elemen tidak ditemukan, akan terjadi error KeyError.
  • discard(): Menghapus elemen berdasarkan nilai. Jika elemen tidak ditemukan, tidak akan terjadi error.
  • pop(): Menghapus dan mengembalikan elemen yang diambil dari set (secara acak, karena set tidak terurut).
my_set = {1, 2, 3, 4, 5}

# Menghapus elemen menggunakan remove()
my_set.remove(3)
print(my_set)  # Output: {1, 2, 4, 5}

# Menghapus elemen menggunakan discard()
my_set.discard(4)  # Jika elemen ada, akan dihapus, jika tidak ada tidak ada error
print(my_set)  # Output: {1, 2, 5}

# Menghapus elemen secara acak menggunakan pop()
removed_item = my_set.pop()
print(removed_item)  # Output: salah satu elemen yang dihapus secara acak
print(my_set)  # Output: set yang tersisa

3. Mengecek Keberadaan Elemen

Untuk mengecek apakah sebuah elemen ada di dalam set, Anda bisa menggunakan operator in.

my_set = {1, 2, 3, 4}

print(3 in my_set)  # Output: True
print(5 in my_set)  # Output: False

4. Menyalin Set

Jika Anda ingin menyalin sebuah set, Anda bisa menggunakan metode copy().

original_set = {1, 2, 3}
copy_set = original_set.copy()
print(copy_set)  # Output: {1, 2, 3}

5. Set Union (Penggabungan Set)

Untuk menggabungkan dua set, Anda bisa menggunakan operator | atau metode union().

set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Menggunakan operator |
union_set = set1 | set2
print(union_set)  # Output: {1, 2, 3, 4, 5}

# Menggunakan metode union()
union_set = set1.union(set2)
print(union_set)  # Output: {1, 2, 3, 4, 5}

6. Set Intersection (Irisan Set)

Untuk menemukan elemen yang ada di kedua set, Anda bisa menggunakan operator & atau metode intersection().

set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Menggunakan operator &
intersection_set = set1 & set2
print(intersection_set)  # Output: {3}

# Menggunakan metode intersection()
intersection_set = set1.intersection(set2)
print(intersection_set)  # Output: {3}

7. Set Difference (Selisih Set)

Untuk menemukan elemen yang ada di satu set tapi tidak ada di set lainnya, Anda bisa menggunakan operator - atau metode difference().

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

# Menggunakan operator -
difference_set = set1 - set2
print(difference_set)  # Output: {1, 2}

# Menggunakan metode difference()
difference_set = set1.difference(set2)
print(difference_set)  # Output: {1, 2}

8. Set Symmetric Difference (Selisih Simetris Set)

Untuk menemukan elemen yang ada di salah satu set, tetapi tidak ada di keduanya, Anda bisa menggunakan operator ^ atau metode symmetric_difference().

set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Menggunakan operator ^
symmetric_difference_set = set1 ^ set2
print(symmetric_difference_set)  # Output: {1, 2, 4, 5}

# Menggunakan metode symmetric_difference()
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set)  # Output: {1, 2, 4, 5}

Keuntungan Menggunakan Set

  1. Unik dan Tanpa Duplikasi
    Set secara otomatis menghapus elemen duplikat, memastikan bahwa hanya elemen yang unik yang disimpan.
  2. Operasi Matematika Himpunan
    Set sangat efisien untuk melakukan operasi matematika seperti union, intersection, difference, dan symmetric difference.
  3. Kecepatan Akses dan Pencarian
    Pencarian elemen dalam set lebih cepat dibandingkan dengan list, karena set menggunakan struktur data hash yang memungkinkan pencarian elemen dengan waktu rata-rata O(1).
  4. Sederhana dan Efisien
    Set adalah pilihan yang baik jika Anda hanya peduli dengan keberadaan elemen dan tidak membutuhkan urutan atau indeks.

Kapan Harus Menggunakan Set?

Set sangat berguna jika:

  • Anda perlu memastikan bahwa elemen-elemen dalam koleksi data tidak duplikat.
  • Anda ingin melakukan operasi matematika himpunan (seperti union, intersection, difference).
  • Anda ingin pencarian elemen yang lebih cepat dibandingkan dengan list.
  • Anda tidak membutuhkan urutan elemen, hanya keberadaannya.

Namun, jika Anda membutuhkan urutan elemen atau akses berdasarkan indeks, list atau tuple mungkin lebih cocok.

Contoh Kasus Penggunaan Set

  • Menghapus Duplikasi dari List:
data = [1, 2, 3, 4, 4, 5, 5, 6]
unique_data = set(data)
print(unique_data)  # Output: {1, 2, 3, 4, 5, 6}
  • Operasi Himpunan:
set_a = {1, 2, 3, 4}
set_b = {3, 4, 5, 6}

# Union
print(set_a | set_b)  # Output: {1, 2, 3, 4, 5, 6}

# Intersection
print(set_a & set_b)  # Output: {3, 4}

# Difference
print(set_a - set_b)  # Output: {1, 2}

# Symmetric Difference
print(set_a ^ set_b)  # Output: {1, 2, 5, 6}

Kesimpulan

Set adalah struktur data yang sangat berguna di Python untuk menyimpan elemen-elemen unik dan melakukan operasi himpunan seperti union, intersection, dan difference dengan cara yang efisien. Set tidak terurut dan tidak memiliki indeks, sehingga lebih cepat dalam hal pencarian elemen dan penghapusan duplikasi. Jika Anda membutuhkan koleksi data yang tidak mengizinkan duplikasi atau ingin melakukan operasi matematika himpunan, set adalah pilihan yang sangat baik!

source: chatgpt