stdsquare²
🎓 Kelas
stdsquare / materi / slides / pertemuan-08
Tema
Japan
Arcade
Dark Retro
Font
‹ Daftar slide Pertemuan 8: Set dan Dictionary
Program Studi Bisnis Digital • FEB

Algoritma dan Pemrograman

Pertemuan 8 — Set dan Dictionary

List sudah bisa menyimpan banyak data, tapi bagaimana kalau Anda butuh data yang pasti unik (tanpa duplikat) atau data yang dicari lewat nama, bukan nomor urut? Python punya jawabannya: set dan dictionary.

RPS MINGGU 9 • 2X50 MENIT

Tujuan Pembelajaran Hari Ini

Setelah pertemuan ini, Anda mampu menggunakan set dan dictionary untuk mengelola data bisnis secara efisien.

CAPAIAN 1 — KONSEP SET
DATA UNIK TANPA URUTAN
Memahami sintaks {}, sifat unik, dan operasi himpunan (union, intersection, difference) pada set.
CAPAIAN 2 — KONSEP DICTIONARY
DATA KUNCI-NILAI
Memahami pasangan key: value, cara akses, ubah, tambah, dan hapus data pada dictionary.
CAPAIAN 3 — METHOD & LOOPING
MANIPULASI DATA
Menerapkan method bawaan (add(), get(), items(), dsb.) dan perulangan pada set/dictionary.
CAPAIAN 4 — PEMILIHAN STRUKTUR
LIST VS SET VS DICT
Memilih struktur data yang tepat untuk kasus bisnis digital nyata, misalnya data pelanggan UMKM atau antrian toko.

Masalah: Daftar Pelanggan yang Menumpuk Duplikat

Admin sebuah toko UMKM mencatat nama pelanggan yang pernah menghubungi via WhatsApp memakai list. Setelah sebulan, satu nama bisa muncul belasan kali.

PAKAI LIST
AniBudiAniAniDedi
Ani tercatat 3 kali padahal orangnya sama. Laporan jumlah pelanggan unik jadi salah dan menyesatkan.
PAKAI SET
{'Ani','Budi','Dedi'}
Duplikat otomatis hilang. Python menjamin setiap elemen hanya muncul sekali di dalam set.
Masalah serupa muncul saat Anda ingin mencari data pelanggan lewat nama, bukan nomor urut list — di sinilah dictionary mengambil peran. Kedua struktur ini akan kita bedah tuntas hari ini.
Bagian 1 dari 3
Set: Koleksi Data Unik Tanpa Urutan
Struktur data yang menjamin setiap elemen hanya muncul sekali, cocok untuk data pelanggan, tag produk, dan operasi himpunan.

Apa Itu Set? Sintaks Dasar

Set adalah kumpulan data yang tidak berurutan (unordered) dan tidak memperbolehkan duplikat. Ditulis dengan kurung kurawal {}.

CARA MEMBUAT SET
pelanggan = {"Ani", "Budi", "Dedi"}
kosong = set()

Perhatikan: {} kosong berarti dictionary kosong, bukan set kosong. Set kosong harus pakai set().

3 SIFAT KUNCI SET
  • Unik: elemen duplikat otomatis dibuang.
  • Tidak berurutan: tidak ada index seperti list, tidak bisa pelanggan[0].
  • Mutable: boleh ditambah/dihapus setelah dibuat, tapi elemennya harus tipe data immutable (angka, string, tuple).

Operasi Himpunan: Union, Intersection, Difference

Set mendukung operasi matematika himpunan — sangat berguna membandingkan dua kelompok data pelanggan.

Tokopedia (A)Shopee (B)A & BA - BB - A
4 OPERATOR SET
  • A | Bunion, gabungan semua elemen tanpa duplikat.
  • A & Bintersection, elemen yang ada di kedua set.
  • A - Bdifference, elemen A yang tidak ada di B.
  • A ^ Bsymmetric difference, elemen yang hanya ada di salah satu.

HDN-1: Hitung Operasi Set Pelanggan

Toko UMKM "Kopi Nusantara" punya pelanggan di dua marketplace. Set A = 5 pelanggan Tokopedia, Set B = 4 pelanggan Shopee, dengan 2 nama yang sama di keduanya (Ani, Dedi).

PERHITUNGAN OPERASI SET
LangkahPerhitunganNilai
Deklarasi Set AA = {"Budi","Sari","Ani","Dedi","Rina"}len(A) = 5
Deklarasi Set BB = {"Ani","Dedi","Tono","Wati"}len(B) = 4
Union (A | B)5 + 4 - 2 (irisan dihitung sekali)7 pelanggan unik
Intersection (A & B)Nama yang muncul di A DAN B: Ani, Dedi2 pelanggan
Difference (A - B)Budi, Sari, Rina (di A, tak ada di B)3 pelanggan
Symmetric diff (A ^ B)7 (union) - 2 (intersection)5 pelanggan

Coba Sendiri: Operasi Himpunan lewat Diagram Venn

Isi anggota set A dan B sendiri, lalu klik union/intersection/difference/symmetric-difference dan lihat area Venn yang tersorot berubah.

Method Bawaan untuk Mengubah Set

Set bersifat mutable — Anda bisa menambah dan menghapus elemen setelah set dibuat.

METHOD SET PALING SERING DIPAKAI
MethodFungsiContoh
add(x)Menambah satu elemen barupelanggan.add("Tono")
remove(x)Hapus elemen, error jika tak adapelanggan.remove("Ani")
discard(x)Hapus elemen, aman jika tak adapelanggan.discard("Xyz")
pop()Hapus & kembalikan elemen acakx = pelanggan.pop()
clear()Kosongkan seluruh setpelanggan.clear()
Beda remove() dan discard(): remove() akan menghentikan program dengan error jika elemen tidak ditemukan, sedangkan discard() tetap aman berjalan meski elemennya tidak ada.

Latihan Mandiri: Set Kategori Produk

Kerjakan langsung di editor Python Anda (Thonny/Replit/VS Code), lalu diskusikan hasilnya dengan teman sebangku.

INSTRUKSI TUGAS
  • Buat toko_A = {"Kopi","Teh","Gula","Susu"} dan toko_B = {"Teh","Gula","Madu","Kecap"}.
  • Cetak hasil union, intersection, dan difference (A-B) dari kedua set kategori produk tersebut.
  • Tambahkan "Sirup" ke toko_A memakai add(), lalu hapus "Susu" memakai discard().
  • Cetak len(toko_A) sebelum dan sesudah perubahan untuk membuktikan jumlah elemen berubah.
Waktu pengerjaan: 8 menit. Dosen akan meminta 2 kelompok mempresentasikan hasil intersection mereka di depan kelas.
Bagian 2 dari 3
Dictionary: Pasangan Kunci dan Nilai
Struktur data yang menyimpan informasi lengkap dan bisa dicari langsung lewat nama (key), bukan nomor urut.

Apa Itu Dictionary? Sintaks Dasar

Dictionary menyimpan data sebagai pasangan key: value, mirip kamus bahasa: cari kata (key), dapatkan arti (value).

CARA MEMBUAT DICTIONARY
pelanggan = {
  "nama": "Sari",
  "kota": "Semarang",
  "total_belanja": 250000
}
"nama" (key)"Sari" (value)"total_belanja" (key)250000 (value)
Aturan penting: key harus unik dan bertipe data immutable (string, angka, tuple); value boleh apa saja, termasuk list atau dictionary lain.

Akses, Ubah, dan Tambah Data Dictionary

Ikuti dua langkah berikut untuk memahami bagaimana dictionary dibaca dan diubah.

LANGKAH 1 — AKSES & UBAH
pelanggan["nama"] → mengambil nilai "Sari".

pelanggan["kota"] = "Solo" → mengubah value dari key yang sudah ada.
LANGKAH 2 — TAMBAH KEY BARU
pelanggan["no_hp"] = "0812xxxx" → key belum ada, Python otomatis menambahkannya sebagai entri baru.
Beda dengan list: mengakses key yang tidak ada dengan pelanggan["email"] akan menimbulkan KeyError. Gunakan pelanggan.get("email") agar lebih aman — mengembalikan None jika tidak ditemukan.

HDN-2: Hitung Total Belanja dari Dictionary

UMKM "Warung Sembako Ibu Wati" mencatat keranjang belanja sebagai dictionary bersarang: setiap produk punya harga dan jumlah (qty).

PERHITUNGAN TOTAL BELANJA
LangkahPerhitunganNilai
Kopi Sachetkeranjang["Kopi Sachet"]: 2.500 x 10Rp 25.000
Gula 1kgkeranjang["Gula 1kg"]: 14.000 x 2Rp 28.000
Minyak Gorengkeranjang["Minyak Goreng"]: 18.000 x 3Rp 54.000
Total Belanja25.000 + 28.000 + 54.000Rp 107.000
total = sum(item["harga"] * item["qty"] for item in keranjang.values())

Method Bawaan untuk Menjelajah Dictionary

Empat method ini akan sangat sering Anda pakai saat mengolah data pelanggan atau produk.

METHOD DICTIONARY PALING SERING DIPAKAI
MethodFungsiContoh Hasil
keys()Mengambil semua keydict_keys(['nama','kota',...])
values()Mengambil semua valuedict_values(['Sari','Semarang',...])
items()Mengambil pasangan key-valuedict_items([('nama','Sari'),...])
update()Gabungkan/timpa data dari dict lainpelanggan.update({"vip": True})
Method pop("key") menghapus satu entri dan mengembalikan nilainya — mirip discard() di set, tapi wajib menyebut key mana yang dihapus.

Perulangan (Looping) pada Dictionary

Gunakan for bersama items() untuk mengakses key dan value sekaligus dalam satu perulangan.

CONTOH KODE LOOPING
harga_produk = {"Kopi": 2500, "Gula": 14000}
for nama, harga in harga_produk.items():
  print(nama, "=", harga)
OUTPUT DI LAYAR
Kopi = 2500
Gula = 14000
Loop for nama in harga_produk: (tanpa .items()) hanya akan mengiterasi key saja — kebiasaan default Python saat me-loop dictionary secara langsung.
Bagian 3 dari 3
Kapan Pakai List, Set, atau Dictionary?
Menyatukan tiga struktur data yang sudah Anda pelajari menjadi satu kerangka keputusan praktis.

Perbandingan: List, Set, dan Dictionary

KAPAN MEMILIH STRUKTUR DATA YANG MANA
StrukturUrutan?Duplikat?Kasus Bisnis Digital
List []Ya, terurutBolehRiwayat transaksi berurutan per waktu
Set {}TidakTidak bolehDaftar pelanggan unik, tag produk
Dictionary {k:v}Terurut sejak Python 3.7+Key tidak boleh, value bolehData pelanggan/produk dicari lewat nama
Aturan praktis: butuh urutan & index angka → List. Butuh keunikan & operasi himpunan → Set. Butuh pencarian cepat lewat nama → Dictionary.

Studi Kasus: Sistem Antrian Toko Online

Toko online kecil ingin sistem antrian chat customer service sederhana yang menggabungkan set dan dictionary.

PAKAI SET
nomor_antrian_aktif
Menyimpan nomor antrian yang sedang berjalan. Set menjamin tidak ada nomor antrian ganda diproses dua kali oleh CS berbeda.
PAKAI DICTIONARY
data_antrian
Menyimpan detail tiap nomor: {"A05": {"nama":"Rina","status":"menunggu"}}. Cari status pelanggan langsung lewat nomor antrian.
Kombinasi ini nyata dipakai di sistem customer service Tokopedia/Shopee: set untuk menjaga integritas nomor antrian, dictionary untuk menyimpan detail lengkap tiap pelanggan yang mengantre.

Latihan Praktik: Mini Sistem Antrian

Kerjakan berkelompok (2-3 orang) dalam 12 menit, lalu satu kelompok diminta demo di depan kelas.

INSTRUKSI TUGAS
  • Buat set bernama nomor_aktif berisi 3 nomor antrian awal, misal {"A01","A02","A03"}.
  • Buat dictionary bernama data_antrian berisi detail nama dan status untuk ketiga nomor tersebut.
  • Tambahkan nomor antrian baru "A04" ke set, dan tambahkan detailnya ke dictionary sekaligus.
  • Gunakan for ... in data_antrian.items() untuk mencetak semua nomor antrian beserta statusnya.
Tantangan tambahan (opsional): ubah status "A02" menjadi "selesai", lalu hapus nomornya dari nomor_aktif memakai discard().

Kesimpulan & Takeaways

4 POIN KUNCI
  • Set = kumpulan data unik tanpa urutan, cocok untuk operasi himpunan (union, intersection, difference).
  • Dictionary = pasangan key-value, cocok untuk data yang dicari lewat nama, bukan nomor urut.
  • Gunakan .get() pada dictionary dan discard() pada set untuk menghindari error saat data tidak ditemukan.
  • Pilih struktur data berdasarkan kebutuhan: urutan (List), keunikan (Set), atau pencarian cepat (Dictionary).
MINGGU DEPAN
Array & NumPy Dasar
Pertemuan 9 akan membahas array numerik memakai library NumPy — dasar untuk analisis data bisnis digital berskala besar.