Inspiration

Tsunami Palu 2018 tiba sekitar 2 menit setelah gempa. Di Padang, 13 gedung evakuasi hanya menampung ±30.550 orang dari ≥400.000 calon korban (±7,6%). Ada 5.744 desa rawan tsunami di Indonesia, tetapi baru 29 komunitas yang diakui Tsunami Ready oleh UNESCO-IOC.

Kami sadar masalahnya bukan hanya sirene. Sekalipun peringatan berbunyi tepat waktu, warga yang terlalu jauh dari tempat aman tetap tidak sempat:

$$ t_{\text{respons}} + t_{\text{tempuh}} > t_{\text{tiba}} \;\Rightarrow\; \text{tidak sempat} $$

Pertanyaan itulah yang menjadi nama produk kami: siapa yang tidak sempat, dan apa yang bisa dilakukan?

What it does

SEMPAT adalah PWA dengan tiga peran yang memakai satu mesin hitung:

  • Perencana BPBD: peta waktu evakuasi per rumah (grid 30 m, pita 3 menit), daftar warga yang tidak sempat, perbandingan usulan gedung atau shelter baru, dan Paket Bukti Tsunami Ready (12 indikator UNESCO-IOC, bisa dicetak ke PDF).
  • Petugas: dasbor isi tiap shelter secara langsung dan daftar warga yang belum tiba.
  • Warga: peringatan (SSE + Web Push), satu arah jelas ke shelter yang masih muat, dan lantai aman yang harus dicapai. Tabel rute tersimpan di ponsel sehingga tetap jalan tanpa internet.

How we built it

  • Backend: Python + FastAPI. Data jalan dan gedung dari OpenStreetMap (Overpass), elevasi dari AWS Terrain Tiles / Copernicus DEM, gempa dari BMKG.
  • Waktu tempuh: graf jalan dengan kecepatan berjalan fungsi Tobler, $$v = 6\,e^{-3.5\,\lvert S + 0.05 \rvert}\ \text{km/jam}$$ diskalakan untuk kelompok rentan (±0,5 m/s) dan tangga (0,21 m/s). Kami memakai Dijkstra multi-sumber terbalik: pencarian dimulai dari semua tempat aman sekaligus, sehingga seluruh rumah terhitung dalam satu putaran.
  • Shelter vertikal: lantai aman = lantai di atas genangan + 1 lantai cadangan (pedoman Jepang 2005). Kapasitas mengikuti FEMA P-646: $$C = \left\lfloor \frac{0.5 \cdot A_{\text{lantai}}}{0.93\ \text{m}^2} \right\rfloor$$ Hanya gedung terverifikasi yang dijadikan tujuan rute.
  • Alokasi berkapasitas: program linear leksikografis (HiGHS lewat SciPy). Urutan prioritasnya: (1) sesedikit mungkin orang tanpa tujuan, (2) sesedikit mungkin yang terlambat, (3) total waktu tempuh terkecil. Kapasitas adalah batas keras. Hasil dibulatkan tanpa melanggar kapasitas, lalu divalidasi ulang secara independen.
  • Frontend: HTML/CSS/JS tanpa build step, MapLibre GL JS, service worker untuk mode offline.

Challenges we ran into

  • Peringatan vs. optimasi: di versi awal, peringatan tertahan menunggu perhitungan (±16,4 detik). Sekarang peringatan dikirim dulu (±0,003 detik), baru alokasi dihitung.
  • Shelter kelebihan muatan: rute "terdekat" bisa mengirim hingga 160× kapasitas ke satu titik. Alokasi LP menurunkan pelanggaran menjadi 0.
  • Gedung tinggi ≠ shelter: data OSM sering tidak punya jumlah lantai. Kami memutuskan hanya gedung terverifikasi yang dijadikan tujuan, dan margin elevasi dibuat konservatif (0/3/5 m).
  • Ukuran data di HP: paket offline warga turun dari 1,66 MB menjadi 53 KB (gzip).

Accomplishments that we're proud of

Pada skenario uji sintetis (19,6 ribu simpul, 150 shelter, 20 ribu orang):

  • warga terlambat turun 58% (13.622 → 5.747) dan total waktu tempuh turun 37%;
  • alokasi selesai dalam ±6,2 detik;
  • hasilnya sama persis dengan solusi MILP optimal di 1.500 kasus acak.

Kode diuji dengan 226 uji Python, 54 uji end-to-end, dan 50 cek tampilan peta.

What we learned

  • Dalam evakuasi, yang menentukan bukan jarak di peta, melainkan waktu lewat jalan nyata dengan kecepatan orang yang paling lambat.
  • Setiap asumsi keselamatan harus konservatif dan terlihat oleh pengguna. Angka hasil model diberi label, bukan disembunyikan.
  • Sistem darurat harus tetap berguna saat komponennya gagal: tanpa internet, tanpa solver, tanpa data lengkap.

What's next for SEMPAT

  • Pilot 12 bulan di Tambakrejo, Kab. Malang (Tsunami Ready 2022): bandingkan waktu tempuh model dengan latihan evakuasi nyata.
  • Uji dengan data populasi HRSL asli dan di ponsel Android nyata.
  • Model B2G: langganan per desa untuk BPBD, dengan target 150 desa di pesisir selatan Jawa pada 2029. Aplikasi warga tetap gratis.

Built With

Share this project:

Updates