Tutorial Python: Mengenal SET

Tutorial Python: Mengenal SET

October 10, 2014 Programming Python 0

Setelah membahas tentang LIST dan TUPLE pada beberapa postingan sebelumnya, masih ada satu lagi tipe data majemuk yang ingin saya bahas. Tipe data itu adalah: SET (himpunan). Jika anda masih ingat konsep himpunan seperti yang diajarkan oleh guru matematika di sekolah dasar, tepat seperti itulah tipe data SET yang disediakan Python. Jadi apa itu SET atau himpunan? Dalam matematika, himpunan adalah sekumpulan benda atau objek yang dianggap sebagai satu kesatuan. Contoh: B adalah himpunan buah-buahan yang anggotanya pepaya, pisang dan jambu. Dalam notasi matematika, kita tuliskan: B = {pepaya, pisang, jambu}. Nah, bagaimana konsep himpunan diimplementasikan dalam bahasa pemrograman Python?

Membuat SET

Untuk membuat sebuah set dalam bahasa pemrograman Python, kita dapat menggunakan salah satu dari dua cara berikut ini:

1) Dengan membuat objek dari kelas set: nama_var = set(anggota_set)
2) Menggunakan kurung kurawal atau curly brackets: {anggota_set}

Lihat contoh berikut ini:

[sourcecode language=”Python”] >>> aSet1 = set((1,2,3))
>>> aSet1
{1, 2, 3}
>>> type(aSet1)
<class ‘set’>
>>> aSet2 = set([‘a’,’b’,’c’])
>>> aSet2
{‘b’, ‘a’, ‘c’}
>>> type(aSet2)
<class ‘set’>
>>> aSet3 = {"pepaya","mangga","pisang","jambu"}
>>> aSet3
{‘jambu’, ‘pisang’, ‘mangga’, ‘pepaya’}
>>> type(aSet3)
<class ‘set’>
[/sourcecode]

Pada contoh di atas, kita membuat tiga variabel SET, yakni: aSet1, aSet2 dan aSet3, dengan cara yang berbeda-beda. Variabel aSet1 dan aSet2 dibuat dengan cara menciptakan objek berdasarkan kelas built-in set. Untuk menyatakan anggota-anggota set, anda dapat menuliskannya sebagai: a) LIST, yakni dengan tanda kurung lengkung “(…)” seperti pada baris 1; atau sebagai b) TUPLE, yakni dengan tanda kurung siku “[…]” seperti pada baris 6. Selain itu, cara yang lebih mudah adalah dengan langsung menggunakan kurung kurawal “{…}” seperti untuk membuat variabel aSet3 pada baris 11.

Seperti biasa, dengan mengetikkan nama variabel lalu menekan tombol enter, shell interaktif Python akan menampilkan isi dari variabel tersebut. Pada contoh di atas, anggota-anggota set selalu ditampilkan di antara tanda kurung kurawal (baris 3, 8 dan 13). Untuk memastikan tipe data dari variabel-variabel tersebut, kita dapat mengeceknya dengan fungsi type(), seperti pada baris 4, 9 dan 14. Dari keluaran fungsi type() terlihat bahwa ketiga variabel di atas bertipe SET.

Dalam SET, urutan anggota tidak penting

Jika anda perhatikan dalam contoh di atas, pada saat menampilkan anggota-anggota set, urutan anggota tidak selalu sama dengan urutan pada saat dibuat. Kenapa demikian? Ini karena SET adalah tipe data yang unordered, alias tidak mengenal urutan anggota. Dengan kata lain, dalam SET, urutan anggota tidak penting. Inilah salah satu yang membedakannya dengan tipe data majemuk lain seperti LIST dan TUPLE dimana urutan atau posisi dari anggota-anggotanya adalah penting dan ditandai dengan index posisi. Mari kita buktikan dalam contoh di bawah ini:

[sourcecode language=”Python”] >>> aSet1 = set([5,6,7])
>>> aSet2 = {7,5,6}
>>> aSet1 == aSet2
True
>>> aList1 = (1,2,3)
>>> aList2 = (2,1,3)
>>> aList1 == aList2
False
>>> aTuple1 = [4,5,6] >>> aTuple2 = [6,5,4] >>> aTuple1 == aTuple2
False
[/sourcecode]

Dalam contoh di atas, kita membuat tiga pasang variabel SET, LIST dan TUPLE, di mana tiap pasangan memiliki anggota yang sama namun berbeda urutan. Setelah itu, kita menguji kesamaan tiap pasangan (baris 3, 7 dan 11) dengan operator equal “==”. Perhatikanlah keluarannya! Untuk perbandingan dua variabel SET (aSet1 dan aSet2), keluaran adalah True. Ini artinya kedua variabel tersebut adalah sama, kendati urutan anggotanya berbeda. Sedangkan pada perbandingan variabel LIST (aList1 dan aList2) dan TUPLE (aTuple1 dan aTuple2), keluaran yang dihasilkan adalah False, yang artinya kedua variabel tidak sama.

Dalam SET, tiap anggota harus unik

Keanggotaan sebuah SET harus unik, dengan kata lain, tidak ada anggota ganda. Apa maksudnya? Mungkin akan lebih mudah jika kita bandingkan dengan tipe data majemuk lain, misalnya LIST. Dalam LIST, kita dapat menyatakan anggota ganda seperti berikut:

[sourcecode language=”Python”] >>> aList = (1,2,2,3)
>>> aList
(1,2,2,3)
[/sourcecode]

Bagaimana dengan SET? Mari kita coba:

[sourcecode language=”Python”] >>> aSet = {1,2,2,3}
>>> aSet
{1,2,3}
[/sourcecode]

Apa yang terjadi? Seperti yang anda lihat, set “melarang” terjadinya duplikasi anggota. Jadi, meskipun pada saat pembuatan terjadi duplikasi, set yang dibuat hanya akan terdiri dari anggota-anggota unik saja. Dengan demikian, anda misalnya dapat menggunakan SET untuk melihat huruf-huruf apa saja yang ada pada sebuah string, seperti pada contoh berikut:

[sourcecode language=”Python”] >>> aSet = set("Hello World")
>>> aSet
{‘e’, ‘ ‘, ‘r’, ‘l’, ‘W’, ‘H’, ‘d’, ‘o’}
[/sourcecode]

Pada contoh di atas, terjadi duplikasi untuk karakter ‘l’ dan ‘o’. Namun, seperti anda lihat pada baris 3, dalam SET duplikasi ini tidak terjadi (karakter ‘l’ dan ‘o’ hanya ditampilkan masing-masing sekali).

SET adalah tipe data MUTABLE

SET adalah salah satu tipe data yang MUTABLE, artinya isi sebuah variabel SET bisa diubah-ubah setelah SET tersebut dibuat. Contoh tipe data lain yang bersifat MUTABLE adalah LIST.

Menambahkan anggota SET

Untuk menambahkan anggota SET setelah SET tersebut dibuat, kita dapat menggunakan method add(). Lihat contoh:

[sourcecode language=”Python”] >>> aSet = {1,2,3}
>>> aSet
{1, 2, 3}
>>> aSet.add(4)
>>> aSet
{1, 2, 3, 4}
[/sourcecode]

Menghapus anggota SET

Ada beberapa cara untuk menghapus anggota SET, cara pertama adalah menggunakan method pop() yang berfungsi untuk menghapus salah satu anggota SET. Karena urutan tidak penting, tidak ditentukan anggota mana yang akan dihapus oleh method pop(). Lihat contoh:

[sourcecode language=”Python”] >>> aSet = {3,2,1,4,5,6}
>>> aSet.pop()
1
>>> aSet.pop()
2
>>> aSet
{3, 4, 5, 6}
[/sourcecode]

Untuk menghapus anggota tertentu dari SET, gunakan method remove(). Contoh:

[sourcecode language=”Python”] >>> aSet = {3,2,1,4,5,6}
>>> aSet.remove(1)
>>> aSet
{2, 3, 4, 5, 6}
>>> aSet.remove(7)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 7
[/sourcecode]

Seperti yang anda lihat pada bagian akhir contoh di atas, menggunakan remove() untuk anggota yang tidak ada dalam SET akan memberikan pesan kesalahan. Jika anda tidak menginginkan kondisi ini, anda bisa menggunakan method discard() yang sama fungsinya dengan remove(), hanya tidak akan menghasilkan kesalahan jika anggota yang akan dihapus tidak ditemukan dalam SET. Lihat contoh:

[sourcecode language=”Python”] >>> aSet = {3,2,1,4,5,6}
>>> aSet
{1, 2, 3, 4, 5, 6}
>>> aSet.discard(1)
>>> aSet
{2, 3, 4, 5, 6}
>>> aSet.discard(7)
>>> aSet
{2, 3, 4, 5, 6}
[/sourcecode]

Bagaimana jika kita ingin menghapus semua anggota SET? Untuk keperluan ini, gunakan method clear(). Contoh:

[sourcecode language=”Python”] >>> aSet = {3,2,1,4,5,6}
>>> aSet.clear()
>>> aSet
set()
[/sourcecode]

Pada contoh di atas, perhatikan bahwa seluruh anggota variabel aSet akan dihapus oleh method clear() sehingga menyisakan SET kosong.


 

 

Sebagai rangkuman, dalam artikel ini anda telah mempelajari:

  1. Cara membuat SET
  2. Sifat-sifat SET:
    1. Urutan anggota = tidak penting
    2. Keanggotaan unik
    3. Mutable

Dengan demikian, sampai pada artikel ini, saya telah mengulas tiga tipe data majemuk dalam Python: LIST, TUPLE dan SET. Pada postingan mendatang, kita akan membahas lebih jauh tentang SET, terutama menyangkut operasi-operasi yang melibatkan SET.

Ok, cukup sekian dulu pembahasan kali ini, sampai ketemu di postingan Tutorial Python selanjutnya. Selamat belajar.

 

Leave a Reply

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