Aplikasi berbasis web untuk menganalisis pola dan karakteristik bencana alam di Indonesia menggunakan metode clustering. Menggunakan data historis dari BPS (Badan Pusat Statistik) dan teknik machine learning untuk mengidentifikasi kelompok provinsi dengan karakteristik kebencanaan yang serupa.
- Visualisasi data historis bencana alam
- Analisis clustering provinsi berdasarkan pola bencana
- Peta interaktif persebaran bencana
- Perbandingan karakteristik antar cluster
- Rekomendasi mitigasi berdasarkan karakteristik cluster
- Tampilan interaktif dengan Streamlit
- Python 3.12.6
- Streamlit
- Scikit-learn (KMeans Clustering)
- Pandas
- NumPy
- Plotly
- Folium
- Requests
- Latar Belakang: Indonesia sebagai negara rawan bencana
- Tujuan: Identifikasi pola dan karakteristik bencana
- Manfaat: Peningkatan kesiapsiagaan dan mitigasi bencana
- Sumber: API BPS
- Periode: 2018-2024
- Variabel: Jumlah kejadian per jenis bencana
- Metode: K-Means Clustering
- Karakteristik yang dianalisis:
- Frekuensi kejadian bencana
- Jenis bencana dominan
- Pola spasial
- Tren temporal
- Peta interaktif persebaran bencana
- Analisis cluster
- Tren temporal
- Insight detail per cluster
- Jumlah optimal cluster
- Karakteristik tiap cluster
- Distribusi provinsi
- Pola kebencanaan per cluster
- Tren temporal
- Korelasi antar jenis bencana
- Strategi mitigasi per cluster
- Manajemen risiko
- Peningkatan kesiapsiagaan
git clone https://github.com/ridwanmubarok/bps-e-analytic
cd bps-e-analyticpip install -r requirements.txtstreamlit run main.pyData yang digunakan mencakup:
- Jumlah kejadian per jenis bencana
- Karakteristik yang diekstrak:
- Frekuensi kejadian
- Jenis bencana dominan
- Pola spasial
- Tren temporal
- Algoritma pengelompokan unsupervised
- Mengelompokkan provinsi berdasarkan karakteristik bencana
- Optimasi dengan silhouette score
- Frekuensi kejadian: mengukur intensitas bencana
- Jenis bencana: mengidentifikasi karakteristik wilayah
- Pola spasial: menganalisis distribusi geografis
- Tren temporal: mengukur perubahan pola
- Peta interaktif
- Analisis cluster
- Tren temporal
- Detail insight
Aplikasi terdiri dari 6 tab utama:
- Business Understanding
- Latar belakang
- Tujuan
- Manfaat
- Data Understanding
- Sumber data
- Struktur data
- Statistik deskriptif
- Data Preparation
- Pembersihan data
- Transformasi
- Normalisasi
- Modeling
- Proses clustering
- Parameter optimal
- Hasil pengelompokan
- Evaluation
- Metrik evaluasi
- Analisis cluster
- Interpretasi hasil
- Deployment
- Visualisasi interaktif
- Insight detail
- Rekomendasi tindakan
streamlit>=1.28.0
pandas>=2.0.0
numpy>=1.24.0
scikit-learn>=1.2.0
requests>=2.31.0
plotly>=5.18.0
folium>=0.14.0
streamlit-folium>=0.15.0
Silakan berkontribusi dengan:
- Fork repository
- Buat branch baru (
git checkout -b fitur-baru) - Commit perubahan (
git commit -m 'Menambah fitur baru') - Push ke branch (
git push origin fitur-baru) - Buat Pull Request
Ridwan Mubarok (230401010053)
- Website: amubhya.com
- LinkedIn: Ridwan Mubarok
- GitHub: ridwanmubarok
- Instagram: @amubhya
- Badan Pusat Statistik (BPS) untuk penyediaan data
- Streamlit untuk framework visualisasi
- Scikit-learn untuk tools machine learning
Algoritma clustering yang mengelompokkan provinsi berdasarkan kesamaan karakteristik bencana.
1. Inisialisasi k centroid secara acak
2. Assign setiap provinsi ke centroid terdekat
3. Update posisi centroid
4. Ulangi langkah 2-3 hingga konvergen
s = (b - a) / max(a, b)
Dimana:
- a = rata-rata jarak ke point dalam cluster yang sama
- b = rata-rata jarak ke point di cluster terdekat
- Rentang nilai: -1 hingga 1
- Kohesi internal
- Separasi antar cluster
- Distribusi provinsi
- Mengukur intensitas
- Indikator kerawanan
- Basis mitigasi
- Karakteristik wilayah
- Pola kejadian
- Fokus penanganan
- Distribusi geografis
- Korelasi wilayah
- Zonasi risiko
- Fokus per cluster
- Alokasi sumber daya
- Prioritas penanganan
- Identifikasi risiko per cluster
- Strategi mitigasi
- Sistem peringatan dini
- Perencanaan evakuasi
- Penguatan infrastruktur
- Edukasi masyarakat