Cara menggunakan FROZENSET pada Python

Frozen set is just an immutable version of a Python set object. While elements of a set can be modified at any time, elements of the frozen set remain the same after creation.

Due to this, frozen sets can be used as keys in Dictionary or as elements of another set. But like sets, it is not ordered (the elements can be set at any index).

The syntax of frozenset() function is:

frozenset([iterable])

frozenset() Parameters

The frozenset() function takes a single parameter:

  • iterable (Optional) - the iterable which contains elements to initialize the frozenset with.
    Iterable can be set, dictionary, tuple, etc.

Return value from frozenset()

The frozenset() function returns an immutable frozenset initialized with elements from the given iterable.

If no parameters are passed, it returns an empty frozenset.


Example 1: Working of Python frozenset()

# tuple of vowels
vowels = ('a', 'e', 'i', 'o', 'u')

fSet = frozenset(vowels)
print('The frozen set is:', fSet)
print('The empty frozen set is:', frozenset())

# frozensets are immutable
fSet.add('v')

Output

The frozen set is: frozenset({'a', 'o', 'u', 'i', 'e'})
The empty frozen set is: frozenset()
Traceback (most recent call last):
  File "<string>, line 8, in <module>
    fSet.add('v')
AttributeError: 'frozenset' object has no attribute 'add'

Example 2: frozenset() for Dictionary

When you use a dictionary as an iterable for a frozen set, it only takes keys of the dictionary to create the set.

# random dictionary
person = {"name": "John", "age": 23, "sex": "male"}

fSet = frozenset(person)
print('The frozen set is:', fSet)

Output

The frozen set is: frozenset({'name', 'sex', 'age'})

Frozenset operations

Like normal sets, frozenset can also perform different operations like copy, difference, intersection, symmetric_difference, and union.

# Frozensets
# initialize A and B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

# copying a frozenset
C = A.copy()  # Output: frozenset({1, 2, 3, 4})
print(C)

# union
print(A.union(B))  # Output: frozenset({1, 2, 3, 4, 5, 6})

# intersection
print(A.intersection(B))  # Output: frozenset({3, 4})

# difference
print(A.difference(B))  # Output: frozenset({1, 2})

# symmetric_difference
print(A.symmetric_difference(B))  # Output: frozenset({1, 2, 5, 6})

Output

frozenset({1, 2, 3, 4})
frozenset({1, 2, 3, 4, 5, 6})
frozenset({3, 4})
frozenset({1, 2})
frozenset({1, 2, 5, 6})

Similarly, other set methods like isdisjoint, issubset, and issuperset are also available.

# Frozensets
# initialize A, B and C
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])
C = frozenset([5, 6])

# isdisjoint() method
print(A.isdisjoint(C))  # Output: True

# issubset() method
print(C.issubset(B))  # Output: True

# issuperset() method
print(B.issuperset(C))  # Output: True

Output

True
True
True

Dalam seri tipe data sebelumnya kita membahas tipe tuple di mana pada tipe ini kita bisa membuat nilai/elemen yang bersifat konstan artinya bahwa setelah tipe tuple di definisikan tidak dapat dilakukan operasi untuk mengubah nilai yang ada. Kali ini sesuai judul nya kita akan belajar tipe data Set di python.

Pada versi python sebelum 2.4 tipe ini belum tersedia, Dan pada versi saat ini (3.8) kita sudah bisa menggunakan tipe ini. Set atau dalam bahasa indonesia adalah himpunan merupakan kumpulan data/objek yang di kelompokan menjadi satu kesatuan.

Baca juga : Tipe Dictionary Python

Di dalam python kita bisa membuat himpunan dengan dua cara yaitu dengan menggunakan metode set() dan frozenset() kedua metode tersebut pada dasarnya sama yang membedakannya adalah pada sifat himpunan yang dibuat. Jika kita menggunakan metode set() elemen/anggota himpunan bersifat mutable yang artinya elemen dalam himpunan dapat diubah, sementara jika menggunakan frozenset() bersifat immutable yang artinya elemen di dalam himpunan tidak dapat diubah.

Bentuk Umum Tipe Set di Python

nama_set = set([nilai1,nilai2,nilai3, ...])

Contoh:

nilai = set([3,6,9,2,5,7])
print (nilai)

Hasil Program:

{2, 3, 5, 6, 7, 9}

Berbeda dengan tipe list atau tuple yang cara mengakses nilai menggunakn index. pada tipe set tidak menggunakan index sehingga posisi elemen dalam set bisa berubah.

Perlu diperhatikan juga bahwa nilai anggota dalam satu himpunan harus bersifat unik, tidak boleh nilai yang sama. Jika terdapat nilai yang sama dalam satu anggota himpunan maka nilai tersebut akan dihitung/muncul satu kali. Coba perhatikan kode berikut:

nilai = set([3,6,9,2,5,7,6])
mahasiswa = set(["Dimas","Ayu","Citra","Ayu"])
print (nilai)
print (mahasiswa)

Hasil Program

{2, 3, 5, 6, 7, 9}
{'Citra', 'Dimas', 'Ayu'}

Perhatikan pada himpunan nilai terdapat dua nilai yang sama yaitu 6 dan untuk himpunan mahasiswa terdapat nilai yang sama yaitu “Ayu” ketika dijalankan programnya python hanya akan menghitung/mencetak nilai yang sama 1 kali saja. Sehingga nilai 6 dan “Ayu” hanya akan muncul satu kali.

Menambah Elemen Himpunan (Set)

Untuk menambah elemen baru pada suatu himpunan kita menggunakan fungsi add().

nilai = set([3,6,9,2,5,7])

print("\nSebelum ditambah")
print (nilai)
#Menambah elemen baru dengan nilai 4 kedalam himpunan
nilai.add(4)
print("\nSetelah ditambah")
print (nilai)

Cara menggunakan FROZENSET pada Python

Dapat di lihat sebelum elemen himpunan berjumlah 6 setelah di tambahkan elemen baru (4) jumlah elemen menjadi 7 dalam himpunan tersebut.

Untuk menambah elemen baru pada himpunan kita juga bisa menggunakan fungsi update() caranya sama dengan fungsi add().

Menghapus Elemen Himpunan (Set)

Untuk menghapus elemen dari himpunan kita menggunakan metode remove(). Berikut contohnya:

nilai = set([3,6,9,2,5,7])

print("\nSebelum dihapus")
print (nilai)
#Menghapus 5 dari himpunan
nilai.remove(5)
print("\nSetelah dihapus")
print (nilai)

Hasil Program:

Cara menggunakan FROZENSET pada Python

Dapat di lihat pada contoh di atas, saya menghapus 5 dari himpunan yang sebelumnya berjumlah 6 menjadi 5 anggota.

Jika kita ingin menghapus sema anggota/elemen himpunan bisa menggunakan fungsi clear().

Contoh:

nilai = set([3,6,9,2,5,7])

print("\nSebelum dihapus")
print (nilai)
#Menghapus semua anggota himpunan
nilai.clear()
print("\nSetelah dihapus")
print (nilai)

Hasil Program

Cara menggunakan FROZENSET pada Python

Perhatikan pada contoh program di atas untuk menghapus semua elemen menggunakan perintah nilai.clear() sehingga himpunan nilai menjadi kosong.

Contoh Penggunan Metode Frozenset()

Seperti yang sudah saya sebut di awal pembahasan, kita juga bisa membuat himpunan menggunakan metode frozenset() dengan sifat immutable (tidak dapat berubah elemen himpunan).

Contoh:

nilai = frozenset([3,6,9,2,5,7])

#menambah elemen
nilai.add(4)
#menghapus elemen
nilai.remove(3)

print(nilai)

Cara menggunakan FROZENSET pada Python

Dapat di lihat pada program dan hasil output di atas dikatakan bahwa frozenset tidak menundukung atribut add maupun remove.

Kesimpulan

Sekian dulu pembasan mengenai pengenalan tipe data set pada python ini, di mana kita sudah belajar penggunaan tipe data set untuk membuat himpunan yang ditambah maupun dihapus elemen dari himpunan.

Kita juga sudah belajar membuat himpunan dengan metode frozenset() yang bersifat immutable di mana himpunan elemen yang sudah didefinisikan tidak dapat ditambah atau dihapus.

Selanjutnya akan kita bahas operasi-operasi himpunan tipe data set pada python yang mencakup operasi gabungan (union), irisan (Intersection), selisih (Difference) dan komplemen (Symmetric Difference).

Apa itu Frozenset pada python?

Fungsi frozenset() berfungsi untuk mengubah iterable menjadi objek set yang tidak bisa diubah (immutable). Frozenset adalah versi immutable dari set. Fungsi frozenset() memiliki satu buah parameter yaitu: iterable (opsional) – iterable (string, tuple, list, dan sebagainya) yang akan diubah menjadi frozenset.

Apa fungsi dari set?

Fungsi set() menerima satu buah parameter, yaitu: iterable – sequence (string, tuple, list), maupun collection(set, dictionary, dan sebagainya) atau juga iterator yang akan diubah menjadi set.