Tutorial Python: Operasi-operasi SET

Tutorial Python: Operasi-operasi SET

October 10, 2014 Programming Python 0

Sebagai lanjutan dari pembahasan tentang SET dalam postingan sebelumnya, kali ini kita akan mempelajari operasi-operasi yang dapat diterapkan pada SET. Sedikit review dari pelajaran sebelumnya, SET adalah salah satu tipe data majemuk dalam Python. Dalam sebuah SET, urutan anggota tidak penting. Selanjutnya, setiap anggota dalam SET harus unik, artinya tidak ada duplikasi anggota dalam SET. Terakhir, SET adalah tipe data yang mutable, dimana isinya bisa diubah-ubah setelah SET tersebut dibuat. Jika pada pelajaran sebelumnya kita sempat mempelajari beberapa operasi dan method yang dapat diterapkan pada SET, yakni:

  • uji kesamaan SET dengan operator “==”,
  • menambahkan anggota SET dengan method add(),
  • menghapus anggota SET dengan method pop(), remove(), discard() dan clear()

pada pelajaran kali ini, mari kita pelajari lebih banyak lagi operasi SET.

Test Keanggotaan

Dalam banyak situasi, kita perlu menguji apakah sebuah SET memiliki anggota tertentu, katakanlah x. Seperti pada tipe data majemuk lainnya, untuk keperluan ini kita dapat menggunakan operator in. Lihat contoh berikut:

[sourcecode language=”Python”] >>> aSet = {1,2,3,4,5}
>>> 2 in aSet
True
>>> 8 in aSet
False
[/sourcecode]

Seperti pada contoh di atas, pengujian dengan operator in akan menghasilkan nilai Boolean True jika nilai yang diuji adalah anggota SET dan False jika tidak. Tentu saja kita dapat menguji kondisi kebalikannya dengan menggunakan operator not. Contoh:

[sourcecode language=”Python”] >>> aSet = {1,2,3,4,5}
>>> 8 not in aSet
True
[/sourcecode]

Nah, jika pada kedua contoh di atas kita hanya menguji satu nilai saja, bagaimana jika kita memiliki beberapa nilai? Untuk keperluan ini kita dapat menggunakan method issubset() dan issuperset(), keduanya menerima argumen SET. Untuk memahami kedua method ini, perhatikan ilustrasi berikut:

Perhatikan juga bagaimana kita mengimplementasikannya dalam perintah-perintah Python:

[sourcecode language=”Python”] >>> aSet1 = {1,2,3,4}
>>> aSet2 = {1,2,3,4,5,6}
>>> aSet3 = {5,6,7,8}
>>> aSet1.issubset(aSet2)
True
>>> aSet2.issuperset(aSet1)
True
>>> aSet3.issubset(aSet2)
False
>>> aSet3.issuperset(aSet2)
False
[/sourcecode]

Jadi, kedua method test keanggotaan di atas bisa dipahami seperti berikut: jika X dan Y adalah SET maka,

  • X.issubset(Y) => Apakah semua anggota X ada di Y?
  • X.issuperset(Y) => Apakah semua anggota Y ada di X?

Selain kedua method di atas, anda juga dapat menggunakan method isdisjoint() untuk mengecek apakah tidak ada satupun anggota bersama, yakni anggota yang ada di X dan juga di Y. Contoh:

[sourcecode language=”Python”] >>> aSet1 = {1,2}
>>> aSet2 = {2,3}
>>> aSet3 = {3,4}
>>> aSet1.isdisjoint(aSet2)
False
>>> aSet2.isdisjoint(aSet3)
True
[/sourcecode]

 Operasi Set

Dari mata pelajaran matematika di bangku SD dulu, pasti anda tahu bahwa ada macam-macam operasi matematika yang dapat diterapkan pada dua himpunan (set) atau lebih, misalnya: gabungan (union), irisan (intersection) dan lain-lain. Dalam Python, anda dapat menggunakan operasi-operasi set seperti itu dengan menggunakan method-method berikut ini:

  1. A.union(B): mendapatkan gabungan dari set A dan B. Dapat dituliskan juga dengan cara: A | B
  2. A.intersection(B): mendapatkan irisan dari set A dan B. Dapat dituliskan juga dengan cara: A & B
  3. A.difference(B): mendapatkan semua anggota di A yang bukan anggota di B. Dapat juga dituliskan dengan cara: A – B
  4. A.symmetric_difference(B): mendapatkan semua anggota yang bukan anggota bersama dari set A dan B. Dapat juga dituliskan dengan cara: A ^ B

Ilustrasi berikut ini mungkin dapat menjelaskan fungsi method-method di atas:

Mari kita coba menggunakannya dalam shell interaktif Python:

[sourcecode language=”Python”] >>> aSet1 = {1,2,3,4}
>>> aSet2 = {3,4,5,6}
>>> aSet1.union(aSet2)
{1, 2, 3, 4, 5, 6}
>>> aSet1 | aSet2
{1, 2, 3, 4, 5, 6}
>>> aSet1.intersection(aSet2)
{3, 4}
>>> aSet1 & aSet2
{3, 4}
>>> aSet1.difference(aSet2)
{1, 2}
>>> aSet1 – aSet2
{1, 2}
>>> aSet2.difference(aSet1)
{5, 6}
>>> aSet2 – aSet1
{5, 6}
>>> aSet1.symmetric_difference(aSet2)
{1, 2, 5, 6}
>>> aSet2.symmetric_difference(aSet1)
{1, 2, 5, 6}
[/sourcecode]

 


Sampai di sini dulu pembahasan mengenai SET, selamat belajar.

 

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *