Programming
Kursus/Jasa Flask | Bootcamp Python dan Flask: Buat Situs Web menggunakan Flask!

Berikut adalah contoh silabus untuk Bootcamp 40 Sesi: Python dan Flask – Buat Situs Web Menggunakan Flask. Silabus ini dirancang untuk peserta dengan pemahaman dasar pemrograman, dan akan membawa peserta dari dasar Python hingga mampu membangun dan menerapkan situs web dinamis menggunakan Flask. Setiap sesi berdurasi 1,5 jam, dengan kombinasi teori, latihan coding, dan proyek kecil.
Sesi 1–5: Pengenalan Python & Dasar-dasar Pemrograman
- Sesi 1: Pengenalan Bootcamp & Lingkungan Pengembangan
- Perkenalan kursus dan target akhir.
- Instalasi Python, IDE (misalnya VS Code, PyCharm) dan setup virtual environment.
- Pengenalan Git dan GitHub untuk version control.
- Sesi 2: Dasar-dasar Python – Tipe Data & Variabel
- Variabel, tipe data (integer, float, string, boolean).
- Operasi dasar dan input/output.
- Latihan: Program kalkulator sederhana.
- Sesi 3: Struktur Kontrol: Kondisional & Perulangan
- Pernyataan if-else, elif.
- Looping: for dan while.
- Latihan: Membangun program sederhana menggunakan perulangan dan percabangan.
- Sesi 4: Fungsi & Modul di Python
- Definisi fungsi, parameter, dan nilai kembali (return).
- Pengenalan modul dan cara mengimpornya.
- Latihan: Membuat modul utilitas sendiri.
- Sesi 5: Struktur Data: List, Tuple, Dictionary, dan Set
- Penggunaan dan manipulasi list, tuple, dictionary, dan set.
- Contoh kasus penggunaan di dunia nyata.
- Latihan: Proyek mini yang mengolah data koleksi.
Sesi 6–10: Pemrograman Lanjut di Python & Pengenalan Web
- Sesi 6: Pemrograman Berorientasi Objek (OOP) – Dasar
- Konsep kelas dan objek.
- Atribut dan method.
- Latihan: Membangun kelas sederhana.
- Sesi 7: OOP – Pewarisan & Polimorfisme
- Konsep inheritance, overriding, dan polymorphism.
- Studi kasus OOP di dunia nyata.
- Latihan: Membuat hierarki kelas.
- Sesi 8: Exception Handling & File I/O
- Menangani error dengan try/except.
- Membaca dan menulis file.
- Latihan: Program log file sederhana.
- Sesi 9: Pengenalan Web Development & HTTP
- Sejarah singkat web development.
- Konsep HTTP, request & response.
- Pengenalan client-server architecture.
- Sesi 10: Pengenalan HTML & CSS
- Dasar-dasar HTML (tag, atribut, struktur halaman).
- Pengenalan CSS untuk styling.
- Latihan: Membuat halaman statis sederhana.
Sesi 11–15: Pengenalan Flask & Membangun Aplikasi Pertama
- Sesi 11: Pengenalan Flask
- Sejarah dan keunggulan Flask.
- Instalasi Flask dan setup proyek pertama.
- Struktur dasar aplikasi Flask.
- Sesi 12: Routing & Request Handling
- Definisi route, URL, dan view functions.
- Menggunakan variable rules dalam route.
- Latihan: Aplikasi “Hello World” dengan Flask.
- Sesi 13: Template Rendering dengan Jinja2
- Pengenalan templating engine Jinja2.
- Menggunakan variabel dan control structures di template.
- Latihan: Membuat halaman dinamis dengan template.
- Sesi 14: Static Files & Flask Configurations
- Menangani file statis (CSS, JavaScript, gambar).
- Konfigurasi aplikasi (environment variables, debug mode).
- Latihan: Integrasi file CSS dalam aplikasi.
- Sesi 15: Forms & Input Data di Flask
- Pengenalan form HTML dan metode POST.
- Menangani data input dari user.
- Latihan: Membuat form kontak sederhana.
Sesi 16–20: Database & CRUD dengan Flask
- Sesi 16: Pengenalan Database & SQL
- Konsep database relasional.
- Dasar-dasar SQL (SELECT, INSERT, UPDATE, DELETE).
- Instalasi dan setup SQLite (atau database pilihan).
- Sesi 17: Integrasi Database dengan Flask
- Menghubungkan Flask dengan database menggunakan Flask-SQLAlchemy.
- Konfigurasi koneksi dan pembuatan model.
- Latihan: Membuat model sederhana (misalnya, model User).
- Sesi 18: Operasi CRUD (Create, Read, Update, Delete) – Bagian 1
- Membuat route dan view untuk membuat dan membaca data.
- Latihan: Membuat form pendaftaran user.
- Sesi 19: Operasi CRUD – Bagian 2
- Update dan Delete data melalui aplikasi.
- Validasi form dan error handling.
- Latihan: Implementasi operasi CRUD lengkap untuk data user.
- Sesi 20: Pengelolaan Migrasi Database
- Pengenalan migrasi database dengan Flask-Migrate.
- Menambahkan, mengubah, dan mengelola skema database.
- Latihan: Meng-update model dan menerapkan migrasi.
Sesi 21–25: Fitur Lanjutan Flask & User Authentication
- Sesi 21: Struktur Proyek dan Best Practices Flask
- Refactoring kode, blueprint, dan modularisasi aplikasi.
- Manajemen konfigurasi untuk berbagai environment.
- Latihan: Memecah aplikasi menjadi modul-modul.
- Sesi 22: User Authentication – Pengenalan
- Konsep autentikasi dan otorisasi.
- Pengenalan Flask-Login.
- Latihan: Setup login dasar.
- Sesi 23: Registrasi Pengguna & Manajemen Session
- Membuat form registrasi, validasi, dan penyimpanan data user.
- Penggunaan session untuk melacak login.
- Latihan: Membuat sistem registrasi dan login.
- Sesi 24: Proteksi Route dan Access Control
- Mengamankan route dengan dekorator login_required.
- Role-based access control.
- Latihan: Menambahkan proteksi ke halaman tertentu.
- Sesi 25: Reset Password & Manajemen User Lanjutan
- Konsep reset password, token, dan email verification.
- Implementasi fitur reset password (tanpa pengiriman email secara langsung, bisa simulasi).
- Latihan: Menambahkan fitur reset password ke aplikasi.
Sesi 26–30: Peningkatan Front-End & API
- Sesi 26: Integrasi Front-End Framework (Bootstrap)
- Pengenalan Bootstrap dan layout responsif.
- Integrasi Bootstrap dengan template Flask.
- Latihan: Menerapkan desain responsif pada aplikasi.
- Sesi 27: AJAX & Penggunaan JavaScript Dasar
- Pengenalan AJAX untuk interaksi tanpa reload.
- Menggunakan JavaScript/jQuery untuk meningkatkan interaksi.
- Latihan: Mengimplementasikan AJAX pada form.
- Sesi 28: Pengenalan RESTful API
- Konsep REST dan penerapannya di web.
- Perbedaan antara web page dan API endpoint.
- Latihan: Membuat endpoint API sederhana dengan Flask.
- Sesi 29: JSON, Serialization & API Testing
- Serialisasi data ke format JSON.
- Tools untuk testing API (Postman, curl).
- Latihan: Menambahkan endpoint API untuk data user.
- Sesi 30: Dokumentasi API & Versioning
- Pengenalan dokumentasi API (Swagger, Flask-RESTful).
- Best practices untuk versioning API.
- Latihan: Menambahkan dokumentasi API pada endpoint yang dibuat.
Sesi 31–35: Integrasi Fitur Tambahan & Optimasi Aplikasi
- Sesi 31: Upload File & Pengelolaan Media
- Implementasi fitur upload file di Flask.
- Validasi file dan penyimpanan file di server.
- Latihan: Menambahkan fitur upload profil pengguna.
- Sesi 32: Caching dan Optimasi Performa
- Konsep caching dan penerapan di Flask (Flask-Caching).
- Strategi optimasi query database dan caching halaman.
- Latihan: Menambahkan caching pada halaman statis.
- Sesi 33: Internationalization (i18n) & Localization (l10n)
- Pengenalan konsep i18n dan l10n.
- Implementasi dengan Flask-Babel.
- Latihan: Menambahkan dukungan bahasa ganda pada aplikasi.
- Sesi 34: Testing Aplikasi Flask
- Pengenalan unit testing di Python (unittest, pytest).
- Testing route dan fungsi aplikasi.
- Latihan: Menulis test case untuk endpoint utama.
- Sesi 35: Debugging & Logging
- Teknik debugging aplikasi Flask.
- Penerapan logging dan monitoring.
- Latihan: Mengintegrasikan modul logging dan menangani error.
Sesi 36–40: Proyek Akhir & Deployment
- Sesi 36: Perencanaan Proyek Akhir
- Brainstorming ide proyek akhir.
- Pembagian tim (jika dalam kelompok) dan penentuan scope.
- Penyusunan rencana kerja dan milestones.
- Sesi 37: Pengembangan Fitur Utama Proyek
- Penerapan modul-modul yang telah dipelajari (auth, CRUD, API, dsb).
- Sesi coding bersama (pair programming) untuk fitur utama.
- Sesi 38: Integrasi & Pengujian Proyek
- Integrasi seluruh fitur dan debugging.
- Pengujian end-to-end, unit testing, dan feedback session.
- Sesi 39: Persiapan Deployment
- Pengenalan deployment ke server (Heroku, AWS, atau DigitalOcean).
- Konfigurasi production server, environment variables, dan setup web server (Gunicorn, Nginx).
- Latihan: Mempersiapkan aplikasi untuk deployment.
- Sesi 40: Deployment Proyek & Presentasi
- Deployment aplikasi secara live.
- Presentasi proyek oleh masing-masing peserta/kelompok.
- Sesi evaluasi, feedback, dan diskusi best practices untuk maintenance aplikasi.