Python – Tipe Data Set

Sama seperti List dan Dictionary, Set adalah sebuah tipe data kontainer di Python yang dapat menyimpan lebih dari satu value. Set menyimpan data tidak secara berurutan (unordered), dideklarasikan menggunakan kurung kurawal ‘{}’, dan mempunyai elemen yang unique (tidak ada nilai rangkap). Set bisa dibilang, Dictionary tapi tanpa indeks.

>>> mySet = {'a', 1, 'b'}
>>> mySet

Potongan kode di atas kalau dijalankan akan menghasilkan: {1, ‘a’, ‘b’}. Ingat, Set tidak peduli dengan urutan.

>>> mySet[0]
Traceback (most recent call last):
File "", line 1, in
TypeError: 'set' object is not subscriptable

Pada contoh di atas menunjukan bahwa Set tidak punya indeks, akan muncul error pada saat kita memaksa mengakses indeksnya. Namun, sama seperti Dictionary, elemennya bisa ditambah atau dikurangi.

>>> mySet.add(2)
>>> mySet
{1, 2, 'a', 'b'}

Sekarang mari kita hapus salah satu elemennya.

>>> mySet.remove(2)
>>> mySet
{1, 'a', 'b'}

Coba kita hapus sekali lagi.

>>> mySet.remove(2)
>>> mySet
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 2

Kenapa bisa muncul keyError? karena kita berusaha menghapus sebuah Key yang tidak ada di dalam Set. Ya, value di dalam Set adalah sama seperti yang disebut Key pada Dictionary. Sekarang coba kita hapus menggunakan cara lain.

>>> mySet.discard(2)
>>> mySet
{1, 'a', 'b'}

Sama seperti remove(), method discard() akan menghapus satu elemen dari Set yang ditentukan, namun discard() tidak akan menimbulkan error jika elemen yang dicari tidak ditemukan.

Masih banyak method-method lain yang ada pada Set, antara lain:

  • pop(), menghapus satu elemen di dalam Set secara acak, akan mengembalikan error jika Set kosong.
    • mySet.pop()
  • clear(), menghapus semua elemen yang ada di dalam Set, membuat sebuah Set menjadi kosong.
    • mySet.clear()
  • del, ini adalah sebuah keyword, bukan method. Keyword Ini akan menghapus object Set dalam memory.
    • del mySet

Salah satu contoh use case yang tepat untuk menggunakan Set adalah untuk menghapus nilai rangkap yang ada di dalam sebuah List.

>>> myList = ['a', 1, 'b', 1]
>>> myList = list(set(myList))
>>> myList
[1, 'a', 'b']

Singkatnya, gunakan Set ketika butuh sekumpulan nilai yang tidak berurutan, nilainya dapat diubah-ubah, dan tidak ada nilai rangkap, atau dengan kata lain: unordered, mutable, unique.

Comments

Leave a Reply

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