Community & PKM Projects
Completed
July 2026
SimbabSidempuan
Web GIS mitigasi banjir Kota Padang Sidimpuan yang memadukan peta poligon interaktif dengan model Machine Learning Random Forest untuk memprediksi tingkat risiko wilayah secara real-time.
SimbabSidempuan.view
LIVE
Ringkasan Proyek
Latar belakang dan cakupan sistem
SIMBAP (Sistem Mitigasi Banjir Padang Sidimpuan) adalah platform sistem informasi geografis (GIS) dan pemantauan risiko kebencanaan yang saya kembangkan untuk memetakan kerawanan banjir di 6 kecamatan Kota Padang Sidimpuan.
Sistem ini menggabungkan analisis spasial poligon GeoJSON dengan model Machine Learning berbasis Random Forest. Melalui SIMBAP, masyarakat dan pihak terkait dapat memantau status risiko banjir (Rendah, Sedang, Tinggi) berdasarkan indikator cuaca harian (curah hujan, suhu, kelembapan) serta data topografi wilayah (elevasi dan skor kerawanan). Selain visualisasi kondisi terkini, sistem juga dilengkapi simulasi histori bulanan dan fitur proyeksi risiko otomatis untuk periode mendatang.
Sistem ini menggabungkan analisis spasial poligon GeoJSON dengan model Machine Learning berbasis Random Forest. Melalui SIMBAP, masyarakat dan pihak terkait dapat memantau status risiko banjir (Rendah, Sedang, Tinggi) berdasarkan indikator cuaca harian (curah hujan, suhu, kelembapan) serta data topografi wilayah (elevasi dan skor kerawanan). Selain visualisasi kondisi terkini, sistem juga dilengkapi simulasi histori bulanan dan fitur proyeksi risiko otomatis untuk periode mendatang.
Latar Belakang & Kebutuhan
Kendala operasional dan kebutuhan spesifikasi sistem
Kota Padang Sidimpuan memiliki kontur topografi berbukit dan aliran sungai yang rentan terhadap genangan luapan air saat curah hujan tinggi. Selama ini, tantangan utamanya adalah:
1. Penyajian Data yang Kering: Informasi cuaca dan kerawanan banjir umumnya berbentuk angka mentah atau laporan teks statis, sehingga sulit dicerna dengan cepat oleh publik maupun pengambil keputusan di lapangan.
2. Keterbatasan Infrastruktur Server: Menjalankan model Machine Learning (Python/scikit-learn) di server produksi biasanya membutuhkan VPS tersendiri dengan RAM cukup besar dan runtime Python yang aktif terus-menerus (background daemon/API service). Hal ini kurang ramah biaya dan sulit diterapkan pada shared hosting konvensional.
1. Penyajian Data yang Kering: Informasi cuaca dan kerawanan banjir umumnya berbentuk angka mentah atau laporan teks statis, sehingga sulit dicerna dengan cepat oleh publik maupun pengambil keputusan di lapangan.
2. Keterbatasan Infrastruktur Server: Menjalankan model Machine Learning (Python/scikit-learn) di server produksi biasanya membutuhkan VPS tersendiri dengan RAM cukup besar dan runtime Python yang aktif terus-menerus (background daemon/API service). Hal ini kurang ramah biaya dan sulit diterapkan pada shared hosting konvensional.
Solusi & Desain Sistem
Pendekatan arsitektur dan struktur logika sistem
Saya merancang arsitektur web yang ringan, mandiri, dan mudah diakses dari perangkat apa pun:
1. Peta Wilayah Interaktif: Memvisualisasikan batas 6 kecamatan Padang Sidimpuan secara presisi menggunakan poligon GeoJSON dan Leaflet.js dengan penandaan warna tingkat risiko yang kontras dan jelas.
2. Inference Machine Learning Native di PHP: Alih-alih membuat microservice Python terpisah, pohon keputusan (decision trees) dari model Random Forest diekspor ke format JSON terstruktur, lalu dieksekusi langsung oleh inference engine bawaan yang saya tulis dalam PHP Native.
3. Proyeksi Otomatis & Replay Histori: Jika petugas belum menginput data aktual bulan berjalan, sistem secara otomatis membangkitkan proyeksi risiko dari tren histori bulan-bulan sebelumnya lengkap dengan mekanisme rollback versi data.
1. Peta Wilayah Interaktif: Memvisualisasikan batas 6 kecamatan Padang Sidimpuan secara presisi menggunakan poligon GeoJSON dan Leaflet.js dengan penandaan warna tingkat risiko yang kontras dan jelas.
2. Inference Machine Learning Native di PHP: Alih-alih membuat microservice Python terpisah, pohon keputusan (decision trees) dari model Random Forest diekspor ke format JSON terstruktur, lalu dieksekusi langsung oleh inference engine bawaan yang saya tulis dalam PHP Native.
3. Proyeksi Otomatis & Replay Histori: Jika petugas belum menginput data aktual bulan berjalan, sistem secara otomatis membangkitkan proyeksi risiko dari tren histori bulan-bulan sebelumnya lengkap dengan mekanisme rollback versi data.
Pendekatan Teknis & Pemilihan Teknologi
Alasan pemilihan teknologi dan alur proses data
1. Machine Learning Pipeline & Tree-Traversal Engine: Model klasifikasi dilatih menggunakan Random Forest (200 estimators, 5-fold cross-validation). Untuk deployment, struktur node pohon keputusan diekspor menjadi payload JSON. Di sisi PHP, saya membuat kelas RandomForestPredictor yang menelusuri cabang pohon (tree walk) dan mengagregasi vektor probabilitas kelas secara native dalam hitungan milidetik.
2. Database Architecture & Data Integrity: Menggunakan MySQL dengan relasi tabel InnoDB, composite indexing pada (district_id, observed_at) untuk kueri cepat data terbaru, serta kolom JSON untuk menyimpan fitur masukan dan sebaran probabilitas model sebagai jejak audit data.
3. Arsitektur Backend: Ditulis menggunakan PHP Native modern berbasis OOP (PSR-4 autoloading, strict types, prepared statements PDO untuk proteksi SQL Injection, dan token CSRF untuk keamanan form panel admin).
4. Frontend Geospasial: Vanilla JavaScript dan Leaflet.js tanpa ketergantungan library berat, dilengkapi dynamic filter toolbar untuk berganti periode data historis secara instan.
2. Database Architecture & Data Integrity: Menggunakan MySQL dengan relasi tabel InnoDB, composite indexing pada (district_id, observed_at) untuk kueri cepat data terbaru, serta kolom JSON untuk menyimpan fitur masukan dan sebaran probabilitas model sebagai jejak audit data.
3. Arsitektur Backend: Ditulis menggunakan PHP Native modern berbasis OOP (PSR-4 autoloading, strict types, prepared statements PDO untuk proteksi SQL Injection, dan token CSRF untuk keamanan form panel admin).
4. Frontend Geospasial: Vanilla JavaScript dan Leaflet.js tanpa ketergantungan library berat, dilengkapi dynamic filter toolbar untuk berganti periode data historis secara instan.
Peran & Tanggung Jawab
Tanggung jawab langsung dalam pengembangan modul
1. Full-Cycle Development: Mengembangkan keseluruhan sistem dari hulu ke hilir—mulai dari perancangan arsitektur database, backend, dashboard admin, hingga antarmuka publik.
2. Spatial Data Preparation: Menyiapkan dan mengoptimasi dataset spasial poligon GeoJSON untuk seluruh kecamatan di Kota Padang Sidimpuan.
3. ML Model Engineering & Custom Ingestion: Melatih, mengevaluasi model Random Forest dengan scikit-learn, serta merancang arsitektur konversi model ke JSON agar bisa di-running langsung oleh runtime PHP tanpa dependensi eksternal.
4. Admin & Disaster Workflow: Membangun modul manajemen data cuaca, riwayat prediksi, serta fitur proyeksi otomatis berbasis rata-rata bergerak (moving average histori).
2. Spatial Data Preparation: Menyiapkan dan mengoptimasi dataset spasial poligon GeoJSON untuk seluruh kecamatan di Kota Padang Sidimpuan.
3. ML Model Engineering & Custom Ingestion: Melatih, mengevaluasi model Random Forest dengan scikit-learn, serta merancang arsitektur konversi model ke JSON agar bisa di-running langsung oleh runtime PHP tanpa dependensi eksternal.
4. Admin & Disaster Workflow: Membangun modul manajemen data cuaca, riwayat prediksi, serta fitur proyeksi otomatis berbasis rata-rata bergerak (moving average histori).
Hasil & Dampak Proyek
Pencapaian fungsional dan pengujian hasil implementasi
1. Akurasi Model Tinggi: Model Random Forest mencapai akurasi 94.52% (Cross-Validation mean 94.63%, ROC-AUC > 0.99) dalam memetakan tingkat risiko banjir.
2. Efisiensi Server Maksimal: Waktu komputasi prediksi (inference) berjalan di bawah 10 ms di runtime PHP tanpa perlu menyewa server Python terpisah, sehingga sistem sangat hemat resource dan stabil di shared hosting.
3. Transparansi Informasi: Berhasil menghadirkan peta risiko digital yang informatif dan ramah pengguna untuk 6 kecamatan di Kota Padang Sidimpuan.
2. Efisiensi Server Maksimal: Waktu komputasi prediksi (inference) berjalan di bawah 10 ms di runtime PHP tanpa perlu menyewa server Python terpisah, sehingga sistem sangat hemat resource dan stabil di shared hosting.
3. Transparansi Informasi: Berhasil menghadirkan peta risiko digital yang informatif dan ramah pengguna untuk 6 kecamatan di Kota Padang Sidimpuan.