Modul Minggu 2 — Python Fundamentals + Mini Project SQL & Python (untuk Software Developer)
Pendamping
minggu_2.md(jadwal & outline). File ini konten pengajaran lengkap: penjelasan konsep, analogi kode, contoh, latihan, kunci jawaban. Lihat jugamateri/minggu_1/— minggu ini menyambung langsung dari SQL yang sudah dipelajari di sana.
Untuk Siapa & Kenapa Bobot Materinya Timpang
Peserta sudah bisa programming, jadi Python dasar (Hari 1–2) akan terasa cepat — bukan konsep baru, cuma sintaks baru. Jangan habiskan waktu banyak di sana. Bobot terberat ada di Pandas (Hari 3–4) dan data cleaning (Hari 5) — ini yang benar-benar skill baru untuk data engineer, dan tidak otomatis dikuasai walau sudah jago programming umum. Instruktur: alokasikan energi mengajar sesuai ini, jangan merata.
Filosofi Mengajar Minggu Ini: Sambungkan ke Minggu 1, Bukan Mulai dari Nol
Trik utama minggu ini: Pandas paling cepat dipahami developer lewat pemetaan langsung ke SQL yang sudah mereka kuasai minggu lalu, bukan diajarkan sebagai hal baru dari nol.
| SQL (Minggu 1) | Pandas (Minggu 2) |
|---|---|
SELECT col1, col2 FROM table | df[['col1', 'col2']] |
WHERE condition | df[boolean_condition] |
ORDER BY col | df.sort_values('col') |
LIMIT n | df.head(n) |
GROUP BY col + agregasi | df.groupby('col').agg(...) |
JOIN ... ON | df.merge(...) |
HAVING | .groupby(...).filter(...) atau filter setelah agregasi |
Tabel ini akan diulang & diperluas di hari_3_pandas_dasar.md dan hari_4_pandas_lanjutan.md. Tekankan ke peserta di awal minggu: kamu sudah tahu logikanya dari SQL, minggu ini cuma belajar notasi baru untuk logika yang sama — dan kadang malah bisa cross-check jawaban Pandas dengan query SQL minggu lalu untuk validasi (dan memang beberapa contoh di modul ini sengaja meniru ulang query dari materi/minggu_1/ dengan Pandas, hasilnya harus identik).
Setup Environment
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install pandas matplotlib seaborn jupyter sqlalchemy psycopg2-binary
- Jupyter Notebook/Lab direkomendasikan untuk eksplorasi data (
jupyter lab) — beda dari workflow developer biasa yang lebih sering nulis script/file.pylinear, notebook mendukung eksplorasi iteratif per-cell yang cocok untuk data analysis. sqlalchemy+psycopg2-binarydipakai untuk konek ke PostgreSQL yang sudah di-setup Minggu 1 (pg-belajar) langsung dari Python — dipakai mulaihari_4dan terutama di mini project akhir minggu.
Dataset yang Dipakai Minggu Ini
Hari 1–4: Dataset Toko Elektronik & Furnitur Mini (lanjutan Minggu 1)
File CSV di folder data/ — hasil export dari dataset SQL Minggu 1 (skema & isi identik dengan materi/minggu_1/00_overview.md):
data/
├── customers.csv (7 baris)
├── products.csv (7 baris)
├── orders.csv (12 baris)
├── order_items.csv (19 baris)
└── sales_raw_dirty.csv (20 baris, dipakai khusus Hari 5)
Dipakai terus sampai Hari 4 supaya peserta bisa membandingkan langsung hasil Pandas dengan hasil query SQL yang sudah mereka verifikasi minggu lalu.
Hari 5 & Akhir Pekan: Data yang Lebih “Kotor” dan Data Publik Sungguhan
- Hari 5 pakai
data/sales_raw_dirty.csv— versi sengaja dikotori dari dataset yang sama (missing value, duplikat baris, harga dalam format campuran$8.00/3,50, negara dengan whitespace/casing tidak konsisten, format tanggal campuran). Setiap masalah di file ini sengaja dan bisa diverifikasi — instruktur tahu nilai “bersih” yang seharusnya karena berasal dari dataset yang sama didata/order_items.csv. - Sabtu pakai dataset publik pilihan bebas dari Kaggle (lihat
latihan_eda_dan_mini_project.md). - Minggu mulai pakai Online Retail II — dataset yang akan dipakai terus sampai Minggu 8 sebagai portfolio project (
ecommerce-etl-pipeline/ecommerce-sales-analysis).
Struktur Modul
| File | Sesuai Jadwal minggu_2.md | Topik |
|---|---|---|
hari_1_python_dasar.md | Senin, 2 jam | Variabel, tipe data, control flow, function |
hari_2_struktur_data.md | Selasa, 2 jam | list, dict, set, tuple + comprehension |
hari_3_pandas_dasar.md | Rabu, 2 jam | DataFrame, read_csv, filtering, selection |
hari_4_pandas_lanjutan.md | Kamis, 2 jam | groupby, merge/join, pivot table |
hari_5_data_cleaning.md | Jumat, 2 jam | Missing values, duplicate, dtype, string manipulation |
latihan_eda_dan_mini_project.md | Sabtu (4 jam) + Minggu (4 jam) | EDA end-to-end + Mini Project SQL+Python (Online Retail II) |
Struktur tiap file hari_X sama dengan Minggu 1: Tujuan Belajar → Untuk Instruktur → Konsep & Sintaks → Contoh Kode → Kesalahan Umum → Latihan → Kunci Jawaban.
Catatan Cara Mengajar
- Live coding di notebook, bukan slide — sama seperti Minggu 1, tapi sekarang di Jupyter, bukan SQL client.
- Jangan re-teach konsep pemrograman dasar (apa itu variabel, apa itu function) — peserta sudah tahu ini dari bahasa lain. Fokus ke: apa yang beda di Python (indentation, dynamic typing, truthiness, list/dict comprehension) dan apa yang baru sama sekali (Pandas).
- Setiap kali ngajarin method Pandas baru, tanya balik: “ini setara SQL apa yang kita pelajari minggu lalu?” — kalau peserta bisa jawab sendiri, itu tanda tersambung baik.
- Total waktu: 5 hari × 2 jam + Sabtu 4 jam + Minggu 4 jam = 18 jam, sesuai
minggu_2.md.