Sebelum menyentuh Flask, kalian perlu menguasai Python tingkat menengah, dasar HTTP & JSON, serta virtual environment. Di episode ini kalian juga menyiapkan Python 3.12/3.13, menginstall Flask 3.1.x, dan memverifikasi seluruh perangkat siap dipakai sepanjang series.

Selamat datang di series Belajar Flask! Series ini akan membawa kalian menguasai Flask — micro-framework web Python yang minimalis, berbasis WSGI di atas Werkzeug dan Jinja2 — untuk membangun web app, REST API, dan internal tooling dengan fleksibilitas penuh. Total ada 27 episode yang tersusun dalam enam fase, dari fondasi konsep sampai production readiness.
Sebelum menjalankan flask --app app run, ada skill dasar dan perangkat yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena Flask sengaja tidak opinionated: ia hanya menyediakan inti routing dan templating, lalu menyerahkan pilihan database, autentikasi, dan ORM kepada kalian. Artinya, kalian harus nyaman dengan Python dan HTTP untuk mengambil keputusan itu sendiri — itulah harga dari fleksibilitas.
Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan Python dan virtual environment, menginstall Flask 3.1.x, lalu memverifikasi environment untuk pertama kali. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.
Flask adalah framework Python murni, dan sintaks yang paling sering kalian lihat adalah decorator — dari @app.route() sampai @login_required dan @app.errorhandler(). Kalian wajib memahami bahwa decorator adalah fungsi yang membungkus fungsi lain:
def route(path: str) -> callable:
def wrapper(func: callable) -> callable:
func.route_path = path
return func
return wrapper
@route("/")
def home() -> str:
return "Halo Flask"@route("/") di atas sama artinya dengan home = route("/")(home). Flask memakai pola ini untuk mendaftarkan handler ke URL tertentu — kita bedah penuh di episode 4.
Selain decorator, kenali context manager (with ... as ...) karena banyak operasi Flask — database session, file upload, sampai request context — memakai pola ini. Dan biasakan type hints sejak sekarang; akan sangat membantu saat membaca kode framework dan saat debugging.
Flask membuat web app dan API, jadi kalian wajib paham HTTP methods (GET, POST, PUT, DELETE), status codes (200, 201, 404, 401, 500), serta struktur request dan response. Satu hal yang membedakan Flask dari framework monolitik: HTTP semantics dikendalikan lewat fungsi Python, bukan lewat konfigurasi string.
Seluruh API di series ini berbasis JSON. Kalian wajib paham struktur JSON — object, array, string, number, boolean, null — karena kalian akan memakai request.get_json() dan jsonify() sejak episode 4.
Flask diinstall sebagai package Python biasa. Kalian wajib nyaman dengan virtual environment dan setidaknya salah satu dari pip, venv, atau uv — karena setiap proyek Flask butuh isolasi dependensi agar tidak saling rusak.
Note
Untuk episode-episode awal (0-9) Python + Flask + SQLite sudah cukup. PostgreSQL baru benar-benar dibutuhkan saat kita masuk ke SQLAlchemy production di episode 10. Kalian bisa menyiapkannya bertahap.
Flask 3.1.x membutuhkan Python 3.9 ke atas, dan di 2026 rekomendasi adalah 3.12 atau 3.13. Periksa versi kalian:
python3 --versionJika masih di bawah 3.9, install versi terbaru lewat package manager atau uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.13Selalu isolasi dependensi proyek. Dua opsi: venv bawaan Python, atau uv — manajer paket modern yang jauh lebih cepat:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pipKunci pemisahannya: virtual environment menjaga dependensi tiap proyek tetap terpisah, sehingga upgrade package di satu proyek tidak merusak proyek lain. Sepanjang series ini kita bekerja di dalam environment aktif.
Install Flask — versi 3.1.3 adalah rilis stabil terbaru (19 Februari 2026):
pip install "flask>=3.1,<3.2"Flask akan membawa serta Werkzeug (WSGI toolkit), Jinja2 (templating), itsdangerous (signing), dan click (CLI) sebagai dependensi otomatis. Kalian tidak perlu menginstallnya manual — cukup Flask, sisanya ikut.
Flask sangat diuntungkan editor dengan IntelliSense Python. VS Code dengan ekstensi Python atau PyCharm keduanya bagus. Aktifkan juga linter dan type checker sejak awal untuk menjaga kualitas kode:
pip install ruff mypyUntuk episode 10 ke atas, siapkan SQLite (tanpa server, cocok untuk lab) atau PostgreSQL untuk produksi. Kalian belum perlu menginstall sekarang — episode 10 akan menuntun langkah demi langkah.
Agar contoh di series ini langsung bisa dijalankan, susun proyek dengan struktur sederhana:
flask-lab/
.venv/
app.py
requirements.txtCatat versi dependensi ke requirements.txt supaya reproducible:
pip freeze > requirements.txtSebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:
python --version
pip show flask | head -2
python -c "import flask; print(flask.__version__)"
python -c "import jinja2, werkzeug; print(jinja2.__version__, werkzeug.__version__)"python --version harus menampilkan 3.9+ (idealnya 3.12/3.13), flask.__version__ harus menampilkan 3.1.x, dan Werkzeug 3.1+. Jika ada yang gagal, periksa kembali virtual environment aktif dan instalasi paket.
Warning
Pastikan kalian berada di dalam virtual environment (prompt shell menampilkan (.venv)) sebelum menginstall atau menjalankan apa pun. Install ke environment global Python adalah sumber utama "works on my machine" yang sebaiknya dihindari sejak awal.
Rangkuman yang sudah kalian siapkan di episode 0:
flask-lab/ dengan app.py dan requirements.txt.flask.__version__ menampilkan 3.1.x tanpa error.Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Perjalanan 26 episode ke depan akan jauh lebih lancar dengan pijakan yang kuat ini.
Inti yang harus dibawa pulang:
flask>=3.1,<3.2 — Werkzeug dan Jinja2 ikut terinstall otomatis.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa kalian membutuhkan Flask — dari lahirnya sebagai lelucon April Fools "Pocoo" karya Armin Ronacher pada 2010, filosofi micro-framework di atas Werkzeug + Jinja2, hingga posisinya di 2026 sebagai pilihan stabil untuk API dan small apps. Pastikan environment kalian sudah siap, karena perjalanan Belajar Flask baru saja dimulai!