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
Ani
Budi
Ani
Ani
Dedi
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 {}.
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.
4 OPERATOR SET
A | B — union, gabungan semua elemen tanpa duplikat.
A & B — intersection, elemen yang ada di kedua set.
A - B — difference, elemen A yang tidak ada di B.
A ^ B — symmetric 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
Langkah
Perhitungan
Nilai
Deklarasi Set A
A = {"Budi","Sari","Ani","Dedi","Rina"}
len(A) = 5
Deklarasi Set B
B = {"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, Dedi
2 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
Method
Fungsi
Contoh
add(x)
Menambah satu elemen baru
pelanggan.add("Tono")
remove(x)
Hapus elemen, error jika tak ada
pelanggan.remove("Ani")
discard(x)
Hapus elemen, aman jika tak ada
pelanggan.discard("Xyz")
pop()
Hapus & kembalikan elemen acak
x = pelanggan.pop()
clear()
Kosongkan seluruh set
pelanggan.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).
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
Langkah
Perhitungan
Nilai
Kopi Sachet
keranjang["Kopi Sachet"]: 2.500 x 10
Rp 25.000
Gula 1kg
keranjang["Gula 1kg"]: 14.000 x 2
Rp 28.000
Minyak Goreng
keranjang["Minyak Goreng"]: 18.000 x 3
Rp 54.000
Total Belanja
25.000 + 28.000 + 54.000
Rp 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
Method
Fungsi
Contoh Hasil
keys()
Mengambil semua key
dict_keys(['nama','kota',...])
values()
Mengambil semua value
dict_values(['Sari','Semarang',...])
items()
Mengambil pasangan key-value
dict_items([('nama','Sari'),...])
update()
Gabungkan/timpa data dari dict lain
pelanggan.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
Struktur
Urutan?
Duplikat?
Kasus Bisnis Digital
List[]
Ya, terurut
Boleh
Riwayat transaksi berurutan per waktu
Set{}
Tidak
Tidak boleh
Daftar pelanggan unik, tag produk
Dictionary{k:v}
Terurut sejak Python 3.7+
Key tidak boleh, value boleh
Data 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.