F1 · Python dari Nol
Dari belum pernah menulis kode sampai membuat alat baris perintah sendiri, lengkap dengan tes.
- 16 modul
- 128 latihan
- 90 istilah
Daftar modul
- 01Program pertamamu8 latihan
- 02Angka, variabel, dan tipe data8 latihan
- 03Teks8 latihan
- 04Membuat keputusan8 latihan
- 05Perulangan8 latihan
- 06Fungsi8 latihan
- 07List dan tuple8 latihan
- 08Dictionary dan set8 latihan
- 09Galat dan debugging8 latihan
- 10Berkas: teks, CSV, dan JSON8 latihan
- 11Modul dan pustaka standar8 latihan
- 12Kelas dan dataclass8 latihan
- 13Python di komputermu8 latihan
- 14Pengujian dengan pytest8 latihan
- 15Otomasi sehari-hari8 latihan
- 16Proyek akhir: kasku8 latihan
Ada contoh atau latihan bertanda “Kerjakan di laptop”? Paket dan data F1 untuk menjalankannya di komputermu ada di panduan menjalankan kode di komputermu.
Tentang course ini
Dari belum pernah menulis kode sampai membuat alat baris perintah sendiri, lengkap dengan tes.
Course fondasi gratis Coding Studio dan langkah pertama di semua jalur. Latihan di dalamnya dijalankan dan diperiksa otomatis langsung di peramban.
Untuk siapa
- Pelajar SMA/SMK (13 tahun ke atas), mahasiswa tahun awal, dan pekerja yang belum pernah memprogram. Tidak perlu matematika di atas aritmetika SMP.
- Yang pernah mencoba belajar Python lalu berhenti di tengah jalan.
- Calon peserta F2 SQL, F5 Rilis, K1 Struktur Data dan Algoritma, dan course jalur Data & AI serta agentic engineering (C1, C2, C9, C3, C4, C10, C5): F1 adalah prasyaratnya.
Yang kamu butuhkan: peramban modern dan internet. Modul 1–12 seluruhnya di peramban (Python berjalan di halaman lewat Pyodide). Mulai Modul 13 kamu memakai terminal sungguhan, di laptopmu sendiri atau di GitHub Codespaces (gratis, juga lewat peramban, termasuk dari Chromebook).
Setelah F1 kamu bisa
- Membaca dan menulis program Python 100–300 baris yang tertata dalam fungsi dan modul.
- Mengolah teks, angka, list, dictionary, berkas CSV, dan JSON.
- Membaca pesan galat (error) dan traceback, lalu menemukan sumber masalahnya sendiri.
- Menjalankan skrip di terminal, membuat virtual environment, dan memasang
paket dengan
pipsecara aman. - Menulis tes dengan
pytestsebelum dan sesudah mengubah kode. - Mengotomasi pekerjaan kecil sehari-hari (merapikan berkas, menggabung laporan).
- Memakai asisten AI untuk belajar (minta penjelasan dan petunjuk, lalu memeriksa jawabannya dengan menjalankan kode dan tes), bukan untuk menyalin jawaban.
Proyek akhirnya kasku: alat baris perintah pencatat uang masuk dan keluar, dibangun sedikit demi sedikit di setiap modul (Kontrak kasku). Proyek akhirnya bisa mendapat lencana Tayang ringan: repositori publik, README portofolio, GitHub Actions hijau, dan cara orang lain mencoba.
Cara belajar di course ini
- Sedikit teori, banyak mengetik. Setiap konsep langsung diikuti contoh yang bisa dijalankan dan keluaran yang sudah dicek mesin. Ubah contohnya, tebak dulu hasilnya, baru jalankan.
- Latihan diperiksa otomatis. Setiap latihan punya kode awal, tes, petunjuk bertingkat, dan solusi. Kerjakan sampai semua tes hijau; buka petunjuk satu per satu bila buntu; buka solusi paling akhir dan bandingkan.
- Galat itu teman. Setiap modul punya bagian Kesalahan umum berisi pesan galat sungguhan dan cara membacanya.
- AI sebagai tutor, bukan joki. Metode umumnya ada di bagian Belajar bersama AI di bawah; setiap modul menambahkan satu contoh jawaban AI yang terdengar benar tetapi salah, plus tugas tanpa AI dan dengan AI. Latihan dinilai untuk dirimu sendiri; menyalin jawaban hanya menipu dirimu.
- Intinya dulu, pendalaman belakangan. Setiap modul dibuka dengan kotak Intinya. Bagian Di balik layar (opsional) boleh dilewati; latihan yang memakainya ditandai Opsional, dan kuis tidak mengujinya.
- Konteks Indonesia. Contoh memakai rupiah, warung, ongkos kirim, nilai rapor, jadwal angkot, data publik Indonesia. Semua nama orang dan data transaksi fiktif.
Waktu: ±3–5 jam per modul (Modul 13–16 lebih lama karena ada Lab luar peramban), total ±60 jam. Ritme yang disarankan: 3–4 modul per minggu.
Silabus (16 modul)
| # | Modul | Hasil utama | Langkah proyek kasku |
|---|---|---|---|
| 01 | Program pertamamu | Menjalankan kode, print, komentar, membaca galat pertama | Mencetak judul kasku |
| 02 | Angka, variabel, dan tipe data | int/float/str/bool, operator, konversi, f-string, format rupiah | Format angka rupiah |
| 03 | Teks | Indeks, slicing, metode string, membersihkan masukan | Mengurai perintah teks keluar 25000 makan |
| 04 | Membuat keputusan | if/elif/else, perbandingan, and/or/not, truthiness | Memvalidasi jenis dan jumlah |
| 05 | Perulangan | while, for, range, break/continue, pola akumulator | Menjumlahkan daftar transaksi |
| 06 | Fungsi | def, parameter, return vs print, nilai bawaan, cakupan, docstring, petunjuk tipe dasar | format_rupiah, hitung_saldo |
| 07 | List dan tuple | Operasi list, pengurutan, comprehension dasar, enumerate, zip, unpacking | Daftar transaksi terurut |
| 08 | Dictionary dan set | dict, pola menghitung, data bersarang (list of dict), set | Ringkasan per kategori |
| 09 | Galat dan debugging | Traceback, try/except/else/finally, raise, validasi, cara men-debug | Validasi dengan ValueError yang jelas |
| 10 | Berkas: teks, CSV, dan JSON | with open, encoding UTF-8, csv, json, pathlib dasar | Simpan/muat kas.json, ekspor CSV |
| 11 | Modul dan pustaka standar | import, modul sendiri, if __name__ == "__main__", datetime, collections, statistics, membaca dokumentasi | Memecah kasku menjadi modul |
| 12 | Kelas dan dataclass | Kelas, objek, metode, @dataclass, kapan memakai kelas | Transaksi sebagai dataclass |
| 13 | Python di komputermu | Terminal, menjalankan skrip, sys.argv, argparse, venv, pip, requirements.txt, keamanan paket | kasku sebagai perintah terminal sungguhan |
| 14 | Pengujian dengan pytest | Fungsi murni, kasus tepi, pytest, tmp_path, menulis tes dulu | Tes untuk kasku |
| 15 | Otomasi sehari-hari | Folder dan berkas massal, menggabung CSV, laporan otomatis, menjadwalkan skrip | Impor mutasi CSV dan laporan bulanan |
| 16 | Proyek akhir: kasku | Menyatukan semuanya, README, merilis ke GitHub, Tayang ringan, langkah berikutnya | kasku utuh + tes + README + GitHub Actions |
Modul 01–12: lab sepenuhnya di peramban. Modul 13–16: latihan inti tetap
diperiksa di peramban (kasku dijalankan dengan argv simulasi), ditambah
Lab luar peramban di terminal dengan daftar "Selesai bila:" dan jalur
Codespaces.
Yang sengaja tidak dibahas di F1 (agar fokus): pewarisan kelas yang dalam,
dekorator buatan sendiri, generator lanjutan, async, pemrograman jaringan,
pustaka pihak ketiga selain pytest. Git, GitHub Actions, dan menayangkan
aplikasi ada di F5 Rilis; F1 hanya memakai seperlunya di Modul 16.
Belajar bersama AI
Metode yang sama berlaku di semua modul:
- Bertanya dengan baik. Sebut levelmu, apa yang sudah kamu coba, dan minta
penjelasan atau petunjuk, bukan jawaban jadi. Contoh: "Aku dapat galat
ValueError: invalid literal for int(). Apa artinya? Beri petunjuk, jangan tulis ulang kodenya." Saat bertanya tentang terminal, sebut sistem operasi, shell, dan versi Python. - Memeriksa jawaban. AI bisa salah dengan nada sangat yakin. Jalankan setiap kode dan klaimnya dengan contoh kecil, termasuk kasus tepi (kosong, nol, negatif, nilai di batas), dan cocokkan dengan dokumentasi resmi (docs.python.org). Kalau hasilnya beda, yang benar adalah Python.
- Kerjakan sendiri dulu. Latihan, membaca pesan galat, dan menebak keluaran dikerjakan sendiri; buka petunjuk sebelum bertanya ke AI. Jangan menempelkan data pribadi (mutasi rekening, nomor HP) ke layanan AI.
- Tugas tanpa AI, tugas dengan AI, lalu bandingkan. Di setiap modul kamu mengerjakan satu tugas dengan tangan, lalu tugas sejenis bersama AI, dan mencatat apa yang dipercepat AI, kesalahan apa yang dibuatnya, dan pemahaman klasik mana yang menangkap kesalahan itu.
Kerangka setiap modul
# Modul NN · Judul
> **Hasil belajar:** setelah modul ini kamu bisa …; …; ….
> **Prasyarat:** Modul NN (atau "tidak ada").
> **Waktu:** ±3–5 jam.
> **Proyek:** langkah kasku di modul ini.
## Intinya (3–5 butir pendek: yang harus diingat dari modul ini)
## 1. Kenapa ini penting
## 2. Konsep
### 2.1 … (penjelasan → contoh yang bisa dijalankan + keluaran → "Coba ubah")
### 2.N Di balik layar (opsional): … (pendalaman, boleh dilewati)
## 3. Latihan (≥ 8 latihan terperiksa: 3 dasar, 3 menengah, 2 tantangan)
## 4. Kesalahan umum (≥ 4 pesan galat sungguhan: arti dan perbaikannya)
## 5. Belajar bersama AI
### Tugas tanpa AI (cara klasik)
### Tugas dengan AI (cara modern)
### Bandingkan
## 6. Proyek: … (langkah kasku; "Selesai bila:")
## 7. Di dunia kerja
## 8. Kuis (8 pilihan ganda, kunci + alasan)
## Ringkasan
## Sumber (dokumentasi resmi + minimal satu rujukan klasik; "dicek 17 Oktober 2026")
Setiap modul memadukan cara klasik (memahami mekanismenya dan mengerjakan sendiri dengan tangan) dan cara modern (bekerja bersama AI lalu memverifikasi hasilnya).
Isi tiap bagian:
- Intinya — 3–5 butir pendek sebelum isi modul.
- 1. Kenapa ini penting — satu masalah kecil yang nyata dan akrab (menghitung kembalian, merekap nilai, membersihkan daftar belanja) yang tidak bisa diselesaikan dengan nyaman tanpa konsep modul ini.
- 2. Konsep — bertahap, satu ide per subbagian. Setiap ide punya contoh
python+text keluaranyang diperiksa mesin, dan ajakan "Coba ubah … lalu tebak keluarannya". Istilah baru ditebalkan saat pertama muncul dan dijelaskan dengan bahasa sehari-hari. Beri satu analogi bila membantu, jangan lebih. Subbagian "Di balik layar (opsional)" menjelaskan apa yang sebenarnya terjadi di bawahnya, dengan contoh yang diperiksa mesin. Isinya tidak boleh menjadi syarat latihan inti atau kuis; latihan yang memakainya diberi catatan Opsional. Topik yang dimiliki course lain (rekursi, tabel hash, pencarian biner: K1; Git dan CI: F5) cukup dikenalkan lalu ditautkan. - 3. Latihan — format latihan standar Coding Studio, minimal 8. Baris
pertama setelah judul latihan adalah
**Tingkat:** dasar,menengah, atautantangan(minimal 3 dasar, 3 menengah, 2 tantangan). Latihan pertama bisa diselesaikan langsung dari contoh di §2; latihan tantangan menuntut menggabungkan beberapa konsep atau memikirkan kasus tepi. - 4. Kesalahan umum — blok
python galat+text galatyang diperiksa mesin, lalu: artinya apa, cara membaca traceback-nya, perbaikannya. Termasuk kesalahan logika yang tidak memunculkan galat (hasil salah diam-diam). - 5. Belajar bersama AI — metode umumnya ada di bagian Belajar bersama AI README ini; modul hanya menambahkan satu tips pemeriksaan khas topiknya, satu contoh jawaban AI yang terdengar benar tetapi salah dan cara membuktikannya, lalu Tugas tanpa AI, Tugas dengan AI, dan Bandingkan.
- 6. Proyek — langkah kasku sesuai Kontrak kasku; dibuat sebagai latihan terperiksa bila memungkinkan, diakhiri "Selesai bila:".
- 7. Di dunia kerja — bagaimana konsep ini dipakai developer, analis data, atau admin kantor, dalam skenario generik yang realistis (toko daring, kantor, sekolah, aplikasi ojek). Jangan menunjuk berkas, jalur, keputusan, commit, atau insiden dari repositori perusahaan mana pun.
- 8. Kuis — 8 soal pilihan ganda (A–D) yang menguji pemahaman, bukan hafalan; minimal 3 soal "apa keluaran kode ini?" dan 1 soal analisis kesalahan ("baris mana yang salah dan kenapa?"). Kunci di bawahnya dengan satu kalimat alasan per soal. Keluaran yang dijadikan kunci dicek dengan menjalankannya.
- Ringkasan — 5–8 butir.
- Sumber — dokumentasi resmi Python (docs.python.org/3), tutorial resmi, PEP yang relevan, dan minimal satu rujukan klasik (buku teks atau makalah yang benar-benar ada, misalnya Think Python karya Allen B. Downey); tulis "dicek 17 Oktober 2026".
Pedoman bahasa
- Sapaan "kamu", kalimat pendek, nada ramah dan langsung. Tidak menggurui, tidak bercanda berlebihan.
- Istilah baku F1/F2:
| Inggris | Dipakai | Catatan |
|---|---|---|
| variable | variabel | |
| function / argument / parameter | fungsi / argumen / parameter | |
| return value | nilai kembalian | |
| loop | perulangan | for, while tetap ditulis sebagai kode |
| string | string | "teks" boleh sebagai penjelas |
| list, tuple, dictionary, set | list, tuple, dictionary (dict), set | tidak diterjemahkan |
| error / exception | galat (error) | sebut "(error)" saat pertama muncul di tiap modul; nama galat Python (ValueError) tetap |
| bug, debugging | bug, debugging | |
| file / folder | berkas / folder | |
| package / module | paket / modul | |
| test | tes | |
| virtual environment | virtual environment (venv) | |
| terminal / command line | terminal / baris perintah |
- Nama variabel dan fungsi di contoh boleh bahasa Indonesia (
harga,hitung_total) dan mengikuti PEP 8 (snake_case). Konsisten dalam satu contoh.
Aturan mutu (untuk penulis dan reviewer)
- Semua kode diperiksa mesin di Python 3.11–3.13: kode awal latihan gagal, solusi lulus, dan keluaran contoh sama persis. Keluaran tidak pernah diketik dari ingatan.
- Python 3.11–3.13 dan Pyodide. Tanpa pustaka pihak ketiga di Modul
01–12;
pytestmulai Modul 14 (di luar peramban). - Satu modul, satu langkah. Latihan dan contoh hanya memakai konsep dari modul itu dan sebelumnya.
- Tanpa data pribadi. Nama orang fiktif; tanpa nomor HP, NIK, alamat, atau
email sungguhan (pakai
@example.com). - Fakta dicek. Klaim tentang Python, pip, PyPI, atau Codespaces dicek ke dokumentasi resmi pada tanggal penulisan; kuota gratis ditulis dengan tanggalnya.
- Aman. Tidak ada perintah yang merusak (
rm -rf, menghapus folder tanpa konfirmasi) di contoh otomasi; skrip yang mengubah berkas selalu punya mode "coba dulu" (dry run).