Pola Hujan
Atlas tiga pola curah hujan Indonesia, dihitung dari data satelit mentah sehingga siapa pun bisa memeriksanya

- lokasi diklasifikasi dari curah hujan satelit
- 86
- kecocokan dengan data BMKG di 52 kota
- 71%
- perbedaan terverifikasi yang dilaporkan, tidak disembunyikan
- 4
- panggilan jaringan saat runtime
- 0
Di halaman ini
Masalahnya
Di sekolah kita belajar bahwa Indonesia punya dua musim, hujan dan kemarau. Itu benar untuk Jawa, tapi keliru untuk banyak daerah lain. Musim hujan di Ambon jatuh pada bulan-bulan kemarau di Jawa, dan sebagian wilayah di sekitar khatulistiwa mengalami dua puncak hujan dalam setahun. BMKG sudah tahu hal ini. BMKG memetakan 699 zona musim dalam tiga kelompok: Monsunal, Ekuatorial, dan Lokal. Tapi pengetahuan itu tersimpan di buletin PDF dan penilaian para ahli, bukan di sesuatu yang bisa dibuka dan dijelajahi orang awam.
Saya membuat Pola Hujan untuk pembaca umum di Indonesia yang ingin tahu kenapa "musim hujan" berarti hal berbeda di tempat berbeda. Situs ini menjelaskan iklim jangka panjang. Ini bukan prakiraan cuaca atau kalender tanam, dan situsnya menyebutkan hal itu sejak layar pertama.
Yang saya bangun
Petanya saya hitung dari data mentah
Jalan pintasnya adalah mendigitalkan peta zona BMKG lalu mewarnainya. Saya memilih menghitung klasifikasi sendiri dari data curah hujan satelit. Siklus hujan dua belas bulan di setiap tempat diperlakukan sebagai gelombang dan dipecah menjadi komponen tahunan dan komponen dua kali setahun, dengan matematika yang sama untuk menjelaskan pasang surut. Komponen mana yang lebih kuat, dan kapan puncaknya, menentukan kelompoknya. Siapa pun bisa memeriksa hasilnya.
Perbedaan dengan BMKG tetap ditampilkan
Ambang batasnya ada di satu berkas, masing-masing mengutip Aldrian dan Susanto (2003), makalah yang menjadi dasar sistem tiga kelompok ini. Saya menetapkan aturan untuk tidak mengutak-atik ambang itu sampai petanya cocok dengan BMKG. Empat tempat yang hasilnya berbeda, Medan, Palu, Tobelo, dan Labuha, tetap tampil di peta sebagai temuan yang dilaporkan, bukan diam-diam diselesaikan. Satu lapisan peta khusus menandai setiap tempat yang berbeda dari peta resmi, lengkap dengan sumbernya, dan tingkat kecocokannya bergerak seiring saya menambah perbandingan bersumber, bukan karena mengubah ambang batas.
Klasifikasinya diuji dengan data buatan dulu
Sebuah generator membuat siklus hujan dari parameter gelombang yang sudah diketahui, dan pengklasifikasi harus bisa menemukan kembali parameter itu dengan tepat. Satu uji tetap mencakup siklus yang puncaknya enam bulan setelah Jawa, yang harus masuk ke kelompok terbalik. Baru setelah semua uji lolos, saya menjalankannya pada data satelit.
Situs statis tanpa pustaka berat
Pipeline-nya mengunduh arsip satelit CHIRPS dan membaca berkas rasternya dengan decoder yang saya tulis sendiri. Tidak ada pustaka peta, grafik, statistik, atau machine learning. Semuanya dijalankan sekali saat build, jadi situsnya statis, tidak memanggil jaringan, dan tidak butuh biaya hosting. Biaya unduh didominasi oleh jumlah raster bulanan yang tetap, bukan oleh berapa banyak tempat yang diambil sampelnya. Cakupannya tumbuh dari 15 kota awal menjadi 34, lalu menjadi 86, hampir tanpa biaya tambahan setiap kali.
Saya menolak build yang paling gampang
Pilihan gampangnya adalah peta angin beranimasi: sebuah medan grid, penunjuk bulan, partikel yang melayang di atasnya. Itu akan jadi proyek animated-field ketiga yang nyaris identik. Saya memilih atlas kategorikal sebagai gantinya, small multiples dan deret waktu, bukan medan vektor kontinu, karena tugas peta ini adalah menunjukkan kelompok mana yang cocok untuk suatu tempat, bukan tampil mengesankan saat bergerak.
Hasilnya
Pola Hujan sudah live dalam bahasa Indonesia. Sebuah halaman beranda bergaya cerita memperkenalkan tiga kelompoknya, lalu atlas, halaman per kota, perbandingan dua tempat, dan satu halaman metode-sekaligus-penjelasan yang menyatu membawa detailnya. Situs ini mencakup 86 lokasi. Saya membandingkan 52 di antaranya dengan data resmi BMKG, dan peta saya cocok pada 71%. Dari 52 perbandingan itu, 32 terverifikasi langsung dari buletin resmi BMKG, naik dari nol; sisanya, 20, ditandai sebagai perkiraan. Saya membangun versi pertamanya dalam tiga hari pada pertengahan Agustus 2026, lalu terus kembali selama beberapa minggu berikutnya untuk mendesain ulang palet dan sistem tipografinya, menggabungkan halaman metodenya menjadi satu, dan melipatgandakan jumlah kotanya lebih dari dua kali.
Di balik layarDetail teknis untuk engineer
- Fitting harmonik memecah klimatologi bulanan setiap lokasi menjadi komponen tahunan dan setengah tahunan. Rasio amplitudo dan fase puncak menentukan Monsunal, Ekuatorial, atau Lokal.
- Ambang batas ada di satu berkas konfigurasi yang dikutip. Tingkat kecocokan dengan BMKG dihitung oleh pipeline, tidak ditulis tangan.
- Generator sintetis membuat siklus dari parameter yang diketahui, dengan kasus regresi tetap untuk kelompok yang fasenya terbalik.
- Decoder buatan sendiri (
lib/geo/bil.ts,lib/geo/tar.ts) langsung membaca raster BIL dan arsip tar CHIRPS, jadi tidak perlu dependensi GDAL. - Proses build mengunduh 120 raster bulanan CHIRPS, mengambil sampel dari 86 koordinat kota ditambah grid mosaik 0,25° berisi 2.414 sel daratan di seluruh Indonesia, lalu menjalankan fitting harmonik pada setiap titiknya. Sebuah pengecekan determinisme memastikan versi sumber dan ambang batas yang sama menghasilkan bundel yang identik per byte; nilai 34 kota awal tetap identik per byte setelah metode pengambilan sampel berubah untuk kota-kota baru.
- Aturan radius sudut milik sistem desain bersama sengaja dilonggarkan di sini: 2px pada penanda data, 10px dan 22px pada panel dan sheet, dicatat sebagai penyimpangan bernama khusus aplikasi ini, bukan ketidakkonsistenan.
- Pengambilan data, fitting, dan klasifikasi berjalan saat build. Hasilnya berupa static export di GitHub Pages, di-deploy oleh GitHub Actions setiap kali push ke
main. - 169 tes di 17 berkas menjaga CI. Sekitar 6.369 baris TypeScript, 98 commit antara 17 Agustus dan 29 September 2026: tiga hari pertama membangun pipeline dan situs aslinya, lalu beberapa minggu berikutnya mendesain ulang palet dan sistem tipografi, menggabungkan
/metodedan/harmonikmenjadi satu halaman/cara-kerja, dan memperluas cakupan dari 34 kota menjadi 86.
Tangkapan layar
Sedang merekrut, atau membangun hal serupa?
Saya terbuka untuk posisi full-time dan proyek freelance tertentu.