Lewati ke konten utama
F5

F5 · Rilis: dari Notebook ke Aplikasi

Laporan Warung Makmur yang kamu tulis di F1 dan F2 menjadi aplikasi yang bisa dibuka orang lain lewat URL: proyek rapi, container, CI, tayang, dan rollback.

Mulai Modul 01

Daftar modul

  1. 01Proyek rapi dan dependensi terkunci7 latihan
  2. 02Docker dari nol6 latihan
  3. 03Git dan GitHub untuk proyek data6 latihan
  4. 04GitHub Actions: tes setiap push6 latihan
  5. 05Tayang pertama: aplikasi Streamlit di Streamlit Community Cloud6 latihan
  6. 06Tayang kedua: API FastAPI dalam container6 latihan
  7. 07Rahasia, konfigurasi, domain, pemantauan sederhana7 latihan
  8. 08CD saat merge dan rollback + daftar periksa "Tayang"6 latihan

Ada contoh atau latihan bertanda “Kerjakan di laptop”? Paket dan data F5 untuk menjalankannya di komputermu ada di panduan menjalankan kode di komputermu.

Tentang course ini

Laporan Warung Makmur yang kamu tulis di F1 dan F2 menjadi aplikasi yang bisa dibuka orang lain lewat URL: proyek rapi, container, CI, tayang, dan rollback.

Course fondasi gratis sesudah F1 Python dan F2 SQL. Satu proyek dari awal sampai akhir: aplikasi laporan untuk Bu Sri, pemilik Warung Makmur (fiktif).


Untuk siapa

  • Lulusan F1 (minimal Modul 01–14: fungsi, berkas, modul, venv, pytest) dan F2 (minimal Modul 01–05 dan 14: kueri, agregasi, JOIN, SQL dari Python).
  • Yang punya notebook atau skrip analisis yang "jalan di laptopku" dan ingin orang lain bisa memakainya.
  • Calon peserta jalur Data Scientist, Data Engineer, ML Engineer, AI Engineer, dan Agentic Engineer: semua capstone jalur memakai daftar periksa Tayang dari Modul 08.

Yang kamu butuhkan: peramban, akun GitHub gratis, dan salah satu dari: laptop dengan Docker Desktop/Docker Engine, atau GitHub Codespaces (Docker sudah ada di dalamnya). Akun layanan tayang (Streamlit Community Cloud, Render, Hugging Face) dibuat di modul yang membutuhkannya.

Prasyarat

DariYang dipakai
F1 Modul 06–11Fungsi, dict/list, galat, berkas JSON/CSV, modul dan if __name__ == "__main__"
F1 Modul 13–14Terminal, venv, pip, requirements.txt, pytest
F2 Modul 04–05, 14GROUP BY, JOIN, sqlite3 dengan parameter ?

Git cukup dari nol: Modul 03 mengajarkan yang dibutuhkan proyek ini.

Setelah F5 kamu bisa

  1. Mengubah notebook menjadi paket Python dengan fungsi yang bisa diuji dan dependensi yang terkunci.
  2. Membangun image Docker multi-stage yang kecil, tidak berjalan sebagai root, dan menjalankannya dengan port, variabel lingkungan, dan volume.
  3. Menyimpan proyek data di GitHub tanpa data besar, keluaran notebook, atau rahasia ikut ter-commit.
  4. Menjalankan tes otomatis di GitHub Actions setiap push dan PR.
  5. Menayangkan aplikasi Streamlit/Gradio dan API FastAPI dalam container di layanan gratis, dan tahu batas setiap layanan.
  6. Mengatur konfigurasi dan rahasia lewat variabel lingkungan, memasang domain sendiri, dan memantau /health.
  7. Menayangkan otomatis saat PR digabung, memeriksa versi yang tayang, dan kembali ke versi sebelumnya (rollback) dalam hitungan menit.

Hasil akhir

Repo publik warung-makmur-app berisi:

  • paket warung (laporan omzet harian dan produk terlaris dari dataset F2);
  • aplikasi web Streamlit (atau Gradio) yang tayang di URL publik;
  • API FastAPI dalam container dengan /health, /omzet/{tanggal}, dan /produk/terlaris;
  • CI hijau di setiap push, CD saat merge ke main, dan rollback yang sudah dicoba sekali;
  • README portofolio dengan URL, lencana CI, dan cara orang lain mencobanya.

Rinciannya di kontrak proyek: proyek-tayang.md.

Cara belajar di course ini

  • Kode dulu, penjelasan sesudahnya. Setiap modul dibuka dengan Intinya (3–5 butir), lalu contoh.
  • Dua jenis kerja. Latihan Python diperiksa otomatis di peramban (pustaka standar saja): memvalidasi konfigurasi, memeriksa Dockerfile dan workflow yang diberikan sebagai teks, mengunci dependensi, membaca respons healthcheck. Langkah yang butuh Docker atau akun layanan ditulis sebagai Lab luar peramban dengan daftar "Selesai bila:".
  • Syarat layanan gratis berubah. Setiap angka kuota, batas, dan harga diberi tanggal pengecekan. Bila halaman layanan berkata lain, halaman layanan yang benar.

Waktu: ±3–4 jam per modul, total ±30 jam.

Silabus (8 modul)

#ModulHasil utamaLangkah proyek
01Proyek rapi dan dependensi terkunciDari sel notebook ke fungsi murni, tata letak src/, pyproject.toml, penentu versi, lock file dan hashPaket warung + requirements.txt terkunci
02Docker dari nolImage, container, lapisan dan cache, port, variabel lingkungan, volume, .dockerignore, multi-stage, pengguna non-rootDockerfile multi-stage yang lolos lint
03Git dan GitHub untuk proyek dataApa yang di-commit dan yang tidak, .gitignore, notebook tanpa keluaran, berkas besar, cabang dan PR, tag versi, rahasia yang bocorRepo publik warung-makmur-app dengan PR pertama
04GitHub Actions: tes setiap pushWorkflow, pemicu, job dan step, matrix, cache pip, izin, batas waktu, jebakan YAML, membaca CI merahci.yml hijau + lencana di README
05Tayang pertama: aplikasi Streamlit di Streamlit Community CloudUI tipis di atas fungsi, cache, berkas metadata Space, syarat layanan terkini dan jalur gratisAplikasi laporan di URL publik
06Tayang kedua: API FastAPI dalam containerRute, validasi, /health, image untuk Docker Space, Render, Koyeb, Cloud Run beserta batasnyaAPI warung-api tayang
07Rahasia, konfigurasi, domain, pemantauan sederhanaKonfigurasi dari lingkungan, .env, penyimpan rahasia, kunci API, DNS dan TLS, log terstruktur, pemantau uptimeAPI terkonfigurasi, endpoint berkunci, pemantauan
08CD saat merge dan rollback + daftar periksa "Tayang"Image bertag commit di GHCR, deploy hook, uji asap versi, rollback, lingkungan dan persetujuancd.yml + rollback teruji + lencana Tayang

Yang sengaja tidak dibahas: Kubernetes (pengantarnya di C10 MLOps), Terraform, basis data terkelola, autoscaling, rilis canary (ada di C10 MLOps), serta autentikasi pengguna (C5 Agentic Engineering Modul 15 hanya memuat kasus otorisasi untuk review).

Lingkungan lab

BagianDi manaDiperiksa
Latihan Python (pustaka standar, termasuk sqlite3 dengan dataset Warung Makmur)PerambanOtomatis
Docker, Git, GitHub Actions, akun layananLaptop atau GitHub Codespaces"Selesai bila:"

Dataset data/warung.sql adalah salinan persis dataset F2 (September 2026, fiktif). Latihan bertanda data=warung membuat warung.db dari berkas itu.

Pedoman bahasa

Sapaan "kamu", kalimat pendek, istilah sama dengan F1/F2, ditambah:

InggrisDipakai
deploytayang (kata kerja: menayangkan); "deploy" untuk nama fitur layanan
image, container, volume, registryimage, container, volume, registry
buildbangun (image), build (nama langkah)
lock filelock file (berkas kunci dependensi)
workflow, job, step, runnerworkflow, job, step, runner
secretrahasia (secrets untuk nama fitur)
health checkhealthcheck / pemeriksaan kesehatan
rollbackrollback (kembali ke versi sebelumnya)

Aturan mutu (untuk penulis dan reviewer)

  1. Pemeriksa latihan Coding Studio harus 0 galat di Python 3.11, 3.12, dan 3.13.
  2. Latihan dan contoh yang dijalankan hanya memakai pustaka standar dan berjalan di Pyodide (tanpa jaringan, subprocess, atau thread). Kode Streamlit, Gradio, FastAPI, Docker, dan YAML ditulis sebagai bacaan (python statis, dockerfile, yaml, bash).
  3. Syarat layanan (kuota, harga, kartu kredit, tidur saat sepi) ditulis dengan tanggal pengecekan dan sumber resmi. Yang belum bisa dipastikan ditandai perlu dicek ulang.
  4. Tanpa data pribadi; contoh domain memakai example.com, token contoh jelas palsu.