Lompat ke konten Lompat ke sidebar Lompat ke footer

Set dalam Python: Pengertian, Cara Membuat, dan Operasi Himpunan

Set merupakan salah satu struktur data yang tersedia dalam bahasa pemrograman Python. Struktur data ini digunakan untuk menyimpan sekumpulan nilai yang bersifat unik. Artinya, sebuah set tidak menyimpan nilai yang sama lebih dari satu kali.

Sebelum lebih lanjut mempelajari materi tentang Set dalam Python, terlebih dahulu pelajari materi tentang: List Python Untuk Menyimpan Banyak Data dalam Satu Variabel, Tuple dalam Python: Pengertian, Cara Membuat, Mengakses, dan Menggunakannya, dan String dalam Python: Pengertian, Cara Menggunakan, dan Contoh Program.

Konsep set sebenarnya sangat dekat dengan konsep himpunan dalam matematika. Dalam sebuah himpunan, suatu anggota hanya dianggap satu kali meskipun data yang sama dimasukkan berulang kali. Python menerapkan konsep tersebut melalui tipe data `set`.

Sebagai contoh, terdapat sekumpulan nomor peserta:
nomor_peserta = {101, 102, 103, 104}

Setiap nomor tersebut hanya muncul satu kali. Apabila nilai yang sama dimasukkan kembali, Python akan mengabaikan pengulangan tersebut.

Karakteristik ini membuat set sangat berguna untuk menghilangkan data yang sama, memeriksa keanggotaan suatu nilai, membandingkan dua kelompok data, dan melakukan operasi himpunan seperti gabungan, irisan, selisih, serta perbedaan simetris.

Pengertian Set dalam Python

Set adalah struktur data yang digunakan untuk menyimpan kumpulan elemen unik. Set ditulis menggunakan kurung kurawal `{}` dengan setiap elemen dipisahkan oleh tanda koma.

Contoh:
angka = {10, 20, 30, 40}
print(angka)


Hasilnya dapat berupa:
{40, 10, 20, 30}

Urutan tampilan tidak harus sama dengan urutan ketika data ditulis. Hal ini karena set tidak menggunakan urutan elemen seperti list atau tuple.

Misalnya:
data = {"apel", "mangga", "jeruk"}
print(data)


Hasil yang muncul dapat memiliki urutan berbeda. Karena itu, set tidak sebaiknya digunakan ketika posisi atau urutan setiap elemen merupakan bagian penting dari data.

Karakteristik Set

Set mempunyai beberapa karakteristik yang membedakannya dari struktur data lain.
  • Pertama, setiap elemen dalam set bersifat unik.
  • Kedua, set tidak memiliki urutan indeks seperti list.
  • Ketiga, set dapat diubah setelah dibuat. Elemen baru dapat ditambahkan dan elemen yang sudah ada dapat dihapus.
  • Keempat, set dapat digunakan untuk melakukan berbagai operasi matematika yang berkaitan dengan himpunan.
  • Kelima, sebuah set dapat berisi beberapa jenis data tertentu selama data tersebut dapat digunakan sebagai elemen set.

Karakteristik tersebut membuat set memiliki kegunaan yang berbeda dibandingkan list dan tuple.

Cara Membuat Set

Cara paling sederhana untuk membuat set adalah menggunakan kurung kurawal.

Contoh:
buah = {"apel", "mangga", "jeruk"}
print(buah)


Set tersebut mempunyai tiga elemen.

Set juga dapat berisi bilangan:
angka = {5, 10, 15, 20}

Selain itu, set dapat berisi teks:
bahasa = {"Python", "Java", "C++", "JavaScript"}

Python juga memungkinkan penggunaan beberapa tipe data dalam satu set.
data = {"Python", 100, 3.14, True}

Walaupun demikian, tidak semua jenis objek dapat digunakan sebagai elemen set. Objek yang dapat berubah seperti list dan dictionary tidak dapat langsung ditempatkan sebagai anggota set.

Set yang Mengandung Data Ganda

Salah satu keunggulan set adalah kemampuannya menghilangkan data yang sama secara otomatis. Perhatikan contoh berikut:
angka = {10, 20, 20, 30, 30, 30}
print(angka)


Hasilnya hanya akan berisi:
{10, 20, 30}

Walaupun angka `20` dan `30` ditulis beberapa kali, setiap nilai hanya disimpan satu kali. Fitur tersebut sangat berguna ketika terdapat kumpulan data yang mempunyai kemungkinan duplikasi.

Misalnya:
nilai = {80, 75, 80, 90, 75, 85}
print(nilai)


Hasil:
{80, 90, 75, 85}

Set secara otomatis mempertahankan nilai yang unik.

Membuat Set Kosong

Ada hal penting yang perlu diperhatikan ketika membuat set kosong.

Penulisan:
data = {}

Tidak menghasilkan set kosong. Python akan mengenalinya sebagai dictionary kosong. Untuk membuat set yang benar-benar kosong, gunakan fungsi `set()`.
data = set()
print(data)
print(type(data))


Hasil:
set()
<class 'set'>


Sedangkan:
data = {}
print(type(data))


akan menghasilkan:
<class 'dict'>

Jadi, `{}` digunakan untuk dictionary kosong, sedangkan `set()` digunakan untuk membuat set kosong.

Mengubah List Menjadi Set

Fungsi `set()` juga dapat digunakan untuk mengubah struktur data tertentu menjadi set. Contohnya, sebuah list dapat diubah menjadi set:
buah = ["apel", "mangga", "apel", "jeruk", "mangga"]
hasil = set(buah)
print(hasil)


Hasilnya hanya akan menyimpan nilai yang berbeda.
{'apel', 'mangga', 'jeruk'}

Cara ini sering digunakan untuk menghilangkan data ganda dari sebuah list.

Contoh lain:
angka = [1, 2, 3, 3, 4, 4, 5]
unik = set(angka)
print(unik)


Hasil:
{1, 2, 3, 4, 5}

Set Tidak Memiliki Indeks

Berbeda dengan list dan tuple, set tidak menyediakan indeks untuk setiap elemennya.

Misalnya:
buah = {"apel", "mangga", "jeruk"}

Kode berikut tidak dapat digunakan:
print(buah[0])

Python akan menghasilkan kesalahan karena set tidak mendukung pengaksesan berdasarkan indeks. Hal yang sama berlaku untuk slicing.
print(buah[0:2])

Cara tersebut juga tidak dapat digunakan pada set. Jika data perlu diambil berdasarkan posisi tertentu, struktur data seperti list lebih sesuai digunakan.

Menambahkan Elemen dengan add()

Set dapat diubah setelah dibuat. Untuk memasukkan satu elemen baru, dapat digunakan metode `add()`.

Contoh:
angka = {10, 20, 30}
angka.add(40)
print(angka)


Hasilnya akan mengandung angka `40`.
{10, 20, 30, 40}

Jika nilai yang ingin ditambahkan ternyata sudah ada, set tidak akan membuat salinan nilai tersebut.
angka = {10, 20, 30}
angka.add(20)
print(angka)


Hasil tetap:
{10, 20, 30}

Sifat tersebut sesuai dengan karakteristik set yang hanya menyimpan data unik.

Menambahkan Banyak Elemen dengan update()

Apabila beberapa nilai ingin ditambahkan sekaligus, metode `update()` dapat digunakan.

Contoh:
angka = {10, 20, 30}
angka.update([40, 50, 60])
print(angka)


Hasil:
{10, 20, 30, 40, 50, 60}

Sumber data untuk `update()` dapat berupa list, tuple, set, atau struktur data lain yang dapat diproses sebagai kumpulan elemen.

Contoh:
buah = {"apel", "mangga"}
tambahan = ("jeruk", "pisang", "melon")
buah.update(tambahan)
print(buah)


Nilai dari tuple tersebut akan ditambahkan ke set. Jika terdapat nilai yang sama, set tetap hanya menyimpannya satu kali.

Menghapus Elemen dengan remove()

Metode `remove()` dapat digunakan untuk menghapus elemen tertentu.

Contoh:
bahasa = {"Python", "Java", "C++"}
bahasa.remove("Java")
print(bahasa)


Hasil:
{'Python', 'C++'}

Namun, terdapat hal yang perlu diperhatikan. Jika elemen yang ingin dihapus tidak terdapat dalam set, `remove()` akan menghasilkan kesalahan.

Contoh:
bahasa = {"Python", "Java", "C++"}
bahasa.remove("PHP")


Jika belum yakin apakah sebuah nilai terdapat dalam set, metode `discard()` dapat menjadi pilihan yang lebih aman.

Menghapus Elemen dengan discard()

Metode `discard()` juga digunakan untuk menghapus elemen.
bahasa = {"Python", "Java", "C++"}
bahasa.discard("Java")
print(bahasa)


Hasil:
{'Python', 'C++'}

Perbedaan penting antara `remove()` dan `discard()` terlihat ketika data yang ingin dihapus tidak tersedia.
bahasa.discard("PHP")

Perintah tersebut tidak menghasilkan kesalahan meskipun `"PHP"` tidak terdapat dalam set. Karena itu, `discard()` dapat digunakan ketika keberadaan elemen belum diketahui.

Menghapus Seluruh Isi Set

Jika seluruh elemen ingin dihapus tetapi variabel set tetap dipertahankan, gunakan `clear()`.

Contoh:
angka = {10, 20, 30, 40}
angka.clear()
print(angka)


Hasil:
set()

Variabel `angka` masih ada, tetapi isinya sudah kosong.

Menghapus Variabel Set

Jika seluruh variabel juga ingin dihapus, dapat digunakan perintah `del`.
angka = {10, 20, 30}
del angka


Setelah perintah tersebut dijalankan, variabel `angka` tidak lagi tersedia. Perbedaan antara `clear()` dan `del` adalah `clear()` mengosongkan set, sedangkan `del` menghapus variabelnya.

Menghitung Jumlah Elemen Set

Fungsi `len()` dapat digunakan untuk mengetahui jumlah elemen yang tersimpan dalam set.

Contoh:
angka = {10, 20, 30, 40, 50}
print(len(angka))


Hasil:
5

Jika terdapat data yang sama, nilai tersebut tetap hanya dihitung satu kali.
angka = {10, 10, 20, 20, 30}
print(len(angka))


Hasil:
3

Hal ini terjadi karena set hanya menyimpan nilai unik.

Memeriksa Keberadaan Data

Operator `in` dapat digunakan untuk memeriksa apakah suatu nilai terdapat dalam set.

Contoh:
buah = {"apel", "mangga", "jeruk"}
print("mangga" in buah)


Hasil:
True

Jika data tidak ditemukan:
print("pisang" in buah)

Hasil:
False

Operator `not in` juga dapat digunakan:
print("pisang" not in buah)

Hasil:
True

Pemeriksaan seperti ini merupakan salah satu penggunaan set yang cukup umum.

Melakukan Perulangan pada Set

Set dapat diproses menggunakan perulangan `for`.

Contoh:
buah = {"apel", "mangga", "jeruk"}
for item in buah:
print(item)


Setiap elemen akan ditampilkan satu per satu. Namun, urutan tampilannya tidak dapat dijadikan patokan karena set tidak dirancang untuk mempertahankan urutan seperti list.

Jika program hanya membutuhkan seluruh elemen tanpa memperhatikan posisi, perulangan pada set dapat digunakan.

Operasi Himpunan pada Python

Salah satu alasan set sangat menarik untuk dipelajari adalah adanya operasi himpunan. Python menyediakan operasi seperti:
  • gabungan atau union
  • irisan atau intersection
  • selisih atau difference
  • perbedaan simetris atau symmetric difference

Operasi tersebut sangat berguna ketika dua kelompok data perlu dibandingkan. Misalnya terdapat dua kelompok:
kelompok_a = {1, 2, 3, 4}
kelompok_b = {3, 4, 5, 6}


Dari kedua set tersebut dapat diketahui data yang sama, data yang berbeda, maupun gabungan seluruh data.

Union atau Gabungan Set

Union digunakan untuk menggabungkan seluruh elemen dari dua set.

Contoh:
A = {1, 2, 3}
B = {3, 4, 5}
hasil = A | B
print(hasil)


Hasil:
{1, 2, 3, 4, 5}

Angka `3` hanya muncul satu kali meskipun terdapat pada kedua set. Selain menggunakan operator `|`, union juga dapat dilakukan menggunakan metode `union()`.
hasil = A.union(B)
print(hasil)


Hasilnya sama.

Union dapat dibayangkan sebagai proses menggabungkan dua kelompok kemudian menghilangkan anggota yang sama.

Intersection atau Irisan

Intersection digunakan untuk mencari elemen yang terdapat pada kedua set.

Misalnya:
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
hasil = A & B
print(hasil)


Hasil:
{3, 4}

Hanya angka `3` dan `4` yang terdapat pada kedua kelompok. Cara lain menggunakan metode `intersection()`:
hasil = A.intersection(B)
print(hasil)


Hasilnya sama.

Operasi ini sangat berguna untuk menemukan data yang sama antara dua sumber.

Difference atau Selisih Set

Difference digunakan untuk menemukan elemen yang terdapat pada set pertama tetapi tidak terdapat pada set kedua.

Contoh:
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
hasil = A - B
print(hasil)


Hasil:
{1, 2}

Angka `1` dan `2` terdapat di `A`, tetapi tidak terdapat di `B`. Metode yang setara adalah:
hasil = A.difference(B)
print(hasil)


Perlu diperhatikan bahwa arah operasi memengaruhi hasil.
print(A - B)
print(B - A)


Hasil keduanya tidak sama.

Symmetric Difference

Symmetric difference digunakan untuk mendapatkan elemen yang hanya terdapat pada salah satu set dan menghilangkan elemen yang dimiliki keduanya.

Contoh:
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
hasil = A ^ B
print(hasil)


Hasil:
{1, 2, 5, 6}

Angka `3` dan `4` tidak dimasukkan karena keduanya terdapat pada kedua set.

Cara lainnya:
hasil = A.symmetric_difference(B)
print(hasil)


Hasilnya tetap sama.

Membandingkan Dua Set

Dua set dapat dibandingkan menggunakan operator `==`.

Contoh:
A = {1, 2, 3}
B = {3, 2, 1}
print(A == B)


Hasil:
True

Walaupun urutan penulisan berbeda, kedua set dianggap sama karena memiliki anggota yang sama.

Contoh lain:
A = {1, 2, 3}
B = {1, 2, 4}
print(A == B)


Hasil:
False

Set dibandingkan berdasarkan anggota yang dimiliki, bukan berdasarkan urutan penulisan.

Fungsi Bawaan yang Dapat Digunakan pada Set

Selain metode khusus set, beberapa fungsi bawaan Python juga dapat digunakan.
  • `len()` digunakan untuk mengetahui jumlah elemen.
  • `max()` digunakan untuk mencari nilai terbesar.
  • `min()` digunakan untuk mendapatkan nilai terkecil.
  • `sum()` digunakan untuk menjumlahkan nilai numerik.
  • `sorted()` digunakan untuk menghasilkan list baru yang berisi elemen set dalam urutan tertentu.

Contoh:
angka = {5, 2, 9, 1, 7}
print("Jumlah:", len(angka))
print("Terbesar:", max(angka))
print("Terkecil:", min(angka))
print("Jumlah nilai:", sum(angka))
print("Urutan:", sorted(angka))


Hasil:
Jumlah: 5
Terbesar: 9
Terkecil: 1
Jumlah nilai: 24
Urutan: [1, 2, 5, 7, 9]


Perlu diperhatikan bahwa `sorted()` menghasilkan list baru. Fungsi tersebut tidak mengubah set menjadi set yang memiliki urutan tetap.

Menyalin Set

Set dapat disalin menggunakan metode `copy()`.

Contoh:
data_asli = {10, 20, 30}
data_salinan = data_asli.copy()
print(data_salinan)


Hasil:
{10, 20, 30}

Dengan membuat salinan, data dapat diproses secara terpisah tanpa langsung mengacu pada set yang sama.

Baca Juga:

Menggabungkan Data dari Beberapa Sumber

Set dapat digunakan untuk menggabungkan data dari berbagai sumber.

Contoh:
kelas_a = {"Andi", "Budi", "Citra"}
kelas_b = {"Citra", "Deni", "Eka"}
semua_siswa = kelas_a | kelas_b
print(semua_siswa)


Hasil akan berisi semua nama tanpa pengulangan. Cara tersebut sangat berguna ketika terdapat beberapa kelompok data yang mempunyai kemungkinan anggota yang sama.

Mencari Data yang Sama

Misalnya terdapat daftar peserta dari dua kegiatan:
kegiatan_a = {"Andi", "Budi", "Citra", "Deni"}
kegiatan_b = {"Citra", "Deni", "Eka", "Fani"}


Untuk mengetahui peserta yang mengikuti kedua kegiatan:
peserta_bersama = kegiatan_a & kegiatan_b
print(peserta_bersama)


Hasil:
{'Citra', 'Deni'}

Operasi intersection membuat proses tersebut jauh lebih sederhana dibandingkan melakukan pemeriksaan terhadap setiap data secara manual.

Menghilangkan Data Ganda dari List

Set sangat berguna ketika sebuah list mengandung data yang sama berulang kali.

Misalnya:
nama = [
"Andi",
"Budi",
"Andi",
"Citra",
"Budi",
"Deni"
]
nama_unik = set(nama)
print(nama_unik)


Hasilnya hanya berisi nama yang berbeda. Jika hasil akhirnya tetap dibutuhkan dalam bentuk list, dapat dilakukan konversi kembali:
nama_unik = list(set(nama))
print(nama_unik)


Dengan cara tersebut, data ganda dapat dihilangkan secara praktis.

Set untuk Data yang Tidak Membutuhkan Urutan

Set cocok digunakan ketika urutan data tidak menjadi bagian penting dari kebutuhan program. Misalnya ingin menyimpan jenis bahasa pemrograman yang digunakan:
bahasa = {"Python", "Java", "C++", "JavaScript"}

Jika kebutuhan utama hanya mengetahui bahasa apa saja yang tersedia, set dapat digunakan. Namun, jika urutan harus dipertahankan, list atau struktur data lain dapat menjadi pilihan yang lebih sesuai.

Perbedaan Set dengan List

Set dan list sama-sama dapat menyimpan banyak data, tetapi memiliki karakteristik yang berbeda.

List:
angka = [1, 2, 2, 3]

Data ganda tetap disimpan.

Set:
angka = {1, 2, 2, 3}

Hasilnya hanya menyimpan:
{1, 2, 3}

List juga memiliki indeks:
angka = [10, 20, 30]
print(angka[0])


Sedangkan set tidak mendukung indeks.
angka = {10, 20, 30}
# Tidak dapat menggunakan angka[0]


Dengan demikian, list lebih sesuai untuk data yang membutuhkan urutan dan posisi, sedangkan set sesuai untuk data unik yang tidak membutuhkan indeks.

Metode-Metode Penting pada Set

Python menyediakan berbagai metode untuk mengelola set. Beberapa metode yang penting dipahami antara lain:
  • `add()` digunakan untuk menambahkan satu elemen.
  • `update()` digunakan untuk menambahkan beberapa elemen.
  • `remove()` digunakan untuk menghapus elemen tertentu dan menghasilkan kesalahan jika elemen tidak ditemukan.
  • `discard()` menghapus elemen jika tersedia tanpa menghasilkan kesalahan ketika elemen tidak ditemukan.
  • `clear()` menghapus seluruh isi set.
  • `copy()` membuat salinan set.
  • `union()` menghasilkan gabungan beberapa set.
  • `intersection()` menghasilkan elemen yang sama dari beberapa set.
  • `difference()` menghasilkan selisih set.
  • `symmetric_difference()` menghasilkan elemen yang hanya terdapat pada salah satu set.

Selain metode tersebut, tersedia pula metode seperti `issubset()`, `issuperset()`, dan `isdisjoint()` untuk melakukan pemeriksaan hubungan antarset.

Contoh Program Menggunakan Set

Berikut contoh sederhana yang menggabungkan beberapa konsep set:
peserta_a = {"Andi", "Budi", "Citra", "Deni"}
peserta_b = {"Citra", "Deni", "Eka", "Fani"}

print("Semua peserta:")
print(peserta_a | peserta_b)

print("Peserta yang mengikuti kedua kegiatan:")
print(peserta_a & peserta_b)

print("Peserta yang hanya terdapat pada kegiatan A:")
print(peserta_a - peserta_b)

print("Peserta yang hanya mengikuti salah satu kegiatan:")
print(peserta_a ^ peserta_b)


Program tersebut menunjukkan bagaimana set dapat digunakan untuk membandingkan dua kelompok data.

Contoh Program Menghapus Data Ganda

Berikut contoh yang lebih sederhana:
nilai = [80, 90, 75, 80, 90, 85, 75, 95]
print("Data awal:")
print(nilai)
nilai_unik = set(nilai)
print("Setelah data ganda dihilangkan:")
print(nilai_unik)


Hasilnya hanya berisi nilai yang berbeda. Jika diperlukan hasil berupa list:
nilai_unik = list(set(nilai))
print(nilai_unik)


Cara tersebut sering digunakan dalam pengolahan data sederhana.

Waktu Penggunaan Set

Set dapat dipilih ketika program mempunyai kebutuhan seperti:
  • menghilangkan data yang sama
  • memeriksa apakah suatu nilai sudah tersedia
  • menyimpan sekumpulan nilai unik
  • mencari data yang sama dari dua kelompok
  • mencari data yang hanya terdapat pada kelompok tertentu
  • menggabungkan beberapa kelompok tanpa menyimpan duplikasi
  • melakukan operasi matematika pada himpunan

Sebaliknya, set kurang sesuai jika program harus mengambil data berdasarkan indeks atau membutuhkan urutan elemen tertentu.

Kesimpulan

Set merupakan struktur data Python yang dirancang untuk menyimpan elemen unik. Set menggunakan kurung kurawal dan setiap elemen dipisahkan menggunakan koma. Salah satu karakteristik utamanya adalah tidak adanya data duplikat.

Set berbeda dari list dan tuple karena tidak memiliki indeks. Oleh sebab itu, elemen set tidak dapat diakses menggunakan posisi seperti `data[0]`. Meskipun demikian, set dapat diubah dengan menambahkan atau menghapus elemen.

Penambahan satu elemen dapat dilakukan menggunakan `add()`, sedangkan beberapa elemen dapat dimasukkan menggunakan `update()`. Untuk menghapus data tersedia `remove()` dan `discard()`, sementara `clear()` dapat digunakan untuk mengosongkan seluruh set.

Keunggulan lain dari set terletak pada kemampuannya melakukan operasi himpunan. Operator `|` dapat digunakan untuk union, `&` untuk intersection, `-` untuk difference, dan `^` untuk symmetric difference. Python juga menyediakan metode dengan fungsi yang sama seperti `union()`, `intersection()`, `difference()`, dan `symmetric_difference()`.

Set juga dapat diproses menggunakan perulangan `for`, diperiksa menggunakan operator `in`, serta dihitung jumlah elemennya menggunakan `len()`. Fungsi bawaan seperti `max()`, `min()`, `sum()`, dan `sorted()` juga dapat digunakan sesuai kebutuhan.

Dengan memahami set, pembelajaran struktur data Python menjadi lebih lengkap. Set sangat berguna terutama ketika program berhadapan dengan data yang tidak boleh memiliki pengulangan dan ketika diperlukan proses perbandingan antara beberapa kelompok data.

Referensi Tambahan:

Artikel ini akan dibaca oleh: Arfando Wardana, Arlita Febriana Rahmatyasari, Arni Saputri, Arza Ryan Syah Allya Gani, dan Asri Alfaya Sayidah.

5 komentar untuk "Set dalam Python: Pengertian, Cara Membuat, dan Operasi Himpunan"

  1. Cara melakukan pengembalian buku ke perpus SMAN 8 Semarang.

    BalasHapus
    Balasan
    1. Bawa buku yang telah dipinjam ke perpus SMAN 8 Semarang.

      Hapus
    2. Temui petugas perpus yang sedang jaga, dan minta bantuan dari petugas tersebut untuk melakukan pengembalian buku.

      Hapus
    3. Petugas perpus kemudian akan memeriksa data buku dan melakukan pendataan buku yang telah dikembalikan tersebut.

      Hapus
    4. Setelah selesai, maka proses pengembalian buku ke perpustakaan SMAN 8 Semarang telah selesai dilakukan.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -