12 KiB
Penjelasan WebGIS — Bahan SRS & Manual Book
WebGIS Pontianak — Pengentasan Kemiskinan Berbasis Rumah Ibadah
(Poverty Mapping — WebGIS Kota Pontianak)
1. Gambaran Umum Sistem
Nama & Tujuan
Sistem informasi geografis (WebGIS) untuk pemetaan keluarga miskin di Kota Pontianak dengan pendekatan berbasis rumah ibadah sebagai unit pembina sosial. Rumah ibadah (masjid, gereja, pura, vihara, klenteng, dll.) memiliki radius cakupan wilayah; keluarga miskin di dalam radius tersebut otomatis ditugaskan sebagai KK binaan rumah ibadah terdekat.
Masalah yang Diselesaikan
- Data kemiskinan tersebar dan sulit divisualisasikan secara spasial
- Koordinasi bantuan sosial (PKH, BPNT, bansos, dll.) perlu dilacak per keluarga
- Masyarakat perlu saluran laporan tanpa harus login
- Pemkot (walikota) butuh dashboard agregat untuk pengambilan keputusan
- Pengurus rumah ibadah butuh akses terbatas hanya untuk KK binaannya
Cakupan Geografis
6 kecamatan di Kota Pontianak:
- Pontianak Utara, Selatan, Timur, Barat, Tenggara, Kota
2. Arsitektur Teknis
Stack Teknologi
| Komponen | Teknologi |
|---|---|
| Frontend | HTML5, CSS3, JavaScript (vanilla), Leaflet 1.9.4 |
| Backend | PHP dengan PDO |
| Database | MySQL (webgis_rumah_ibadah) |
| Peta | CARTO Voyager tiles + OpenStreetMap Nominatim (reverse geocoding) |
| Ekspor | SheetJS (Excel), jsPDF + autoTable (PDF) |
| Autentikasi | PHP Session |
| Server dev | Laragon (Apache + MySQL) |
Struktur File Utama
index.html— seluruh antarmuka & logika frontendindex.php— redirect keindex.htmlconfig.php— koneksi DB, utilitas (Haversine, auto-assign, rate limit, upload)api_auth.php— autentikasiapi_rumah_ibadah.php— CRUD rumah ibadahapi_keluarga_miskin.php— CRUD keluarga miskinapi_laporan.php— laporan masyarakatapi_histori_bantuan.php— histori bantuanapi_dashboard.php— dashboard walikotadatabase.sql— skema & data contohuploads/— foto laporan masyarakat
Alur Arsitektur
Browser (index.html)
↓ fetch JSON
PHP API (api_*.php)
↓ PDO
MySQL (webgis_rumah_ibadah)
Peta juga memanggil Nominatim OpenStreetMap untuk reverse geocoding (alamat otomatis dari koordinat).
3. Aktor / Pengguna Sistem
| Role | Deskripsi | Login |
|---|---|---|
| Masyarakat (publik) | Melihat peta & data (read-only), mengirim laporan warga miskin | Tidak perlu login |
| Admin | Kelola penuh: rumah ibadah, KK, laporan, bantuan, reset password pengurus | admin / admin123 |
| Pengurus Rumah Ibadah | Kelola KK binaan & histori bantuan di wilayahnya | Kode RI-XXX-9999 / password pengurus |
| Walikota | Dashboard agregat, lihat data, ekspor; tidak bisa menambah/mengubah/hapus | walikota / admin123 |
Format login pengurus: RI-[JENIS 3 HURUF]-[4 DIGIT]
Contoh: RI-MSJ-4821 (Masjid), RI-GRJ-7153 (Gereja)
4. Modul Fungsional (untuk SRS)
4.1 Modul Peta Interaktif (WebGIS)
- Peta interaktif berpusat di Pontianak (lat: -0.0263, lng: 109.3425, zoom 14)
- Layer marker:
- Rumah ibadah — warna per jenis (Masjid hijau, Gereja biru, dll.)
- Keluarga miskin — warna per tingkat (Sangat Miskin merah, Miskin oranye, Hampir Miskin kuning)
- Radius cakupan rumah ibadah (lingkaran saat zoom ke RI)
- Pick lokasi di peta — klik peta untuk set koordinat + auto-fill alamat via Nominatim
- Popup detail saat klik marker
- Legenda dinamis per tab aktif
4.2 Modul Rumah Ibadah
Data: nama, jenis, alamat, koordinat, radius (0.5–5 km), kecamatan, kode pengurus, password pengurus
| Aksi | Admin | Pengurus | Walikota | Publik |
|---|---|---|---|---|
| Lihat daftar & peta | ✓ | ✓ (hanya RI sendiri) | ✓ | ✓ |
| Tambah | ✓ | ✗ | ✗ | ✗ |
| Edit | ✓ | ✓ (RI sendiri) | ✗ | ✗ |
| Hapus | ✓ | ✗ | ✗ | ✗ |
| Reset password pengurus | ✓ | ✗ | ✗ | ✗ |
Fitur khusus:
- Saat tambah RI, sistem generate kode pengurus & password acak (8 karakter)
- Perubahan/hapus RI memicu re-assign otomatis semua KK ke RI terdekat
4.3 Modul Keluarga Miskin
Data: NIK, nama KK, tanggal lahir, pendidikan, jumlah anggota, alamat, kecamatan, koordinat, tingkat kemiskinan, status DTKS, riwayat penyakit (JSON), rumah ibadah binaan, jarak ke RI
Tingkat kemiskinan: Sangat Miskin, Miskin, Hampir Miskin
Status DTKS: Terdaftar DTKS, Belum DTKS, Sedang Diusulkan
Riwayat penyakit: Stunting, TBC, Hipertensi, Diabetes, Jantung, ODGJ, DBD, Gizi Buruk, Lainnya
Auto-assign: Algoritma Haversine — KK ditugaskan ke RI terdekat yang radiusnya mencakup lokasi KK.
Filter: kecamatan, tingkat kemiskinan, status DTKS
Flag bisnis: KK dengan status Belum DTKS ditandai Eligible Bansos Tunai Pemkot
| Aksi | Admin | Pengurus | Walikota |
|---|---|---|---|
| Lihat | ✓ | ✓ (KK binaan) | ✓ |
| Tambah/Edit | ✓ | ✓ (KK binaan) | ✗ |
| Hapus | ✓ | ✗ | ✗ |
| Ekspor Excel/PDF | ✓ | ✗ | ✓ |
4.4 Modul Laporan Masyarakat
- Tanpa login — tombol floating "Laporkan Warga Miskin"
- Input: identitas warga (opsional), NIK (opsional, 16 digit), lokasi, alamat, deskripsi, foto (maks 5MB: JPG/PNG/GIF/WebP), identitas pelapor (boleh anonim)
- Rate limit: maks 5 laporan per jam per IP
- Status: Baru → Diverifikasi / Ditolak
- Admin dapat: kelola status, isi alasan tolak, konversi ke data KK, buat KK baru dari laporan
| Aksi | Admin | Walikota | Publik |
|---|---|---|---|
| Kirim laporan | ✓ | ✓ | ✓ |
| Lihat daftar | ✓ | ✓ | ✗ |
| Kelola/verifikasi | ✓ | ✗ | ✗ |
4.5 Modul Histori Bantuan
Jenis bantuan: PKH, BPNT/Sembako, Beras Bansos, KIS-PBI, Bansos Tunai Pemkot, Rutilahu, PMT Stunting, CSR Swasta, Lainnya
Sumber dana: APBN, APBD, CSR, Lainnya
- Pencatatan per KK: jenis, nominal (Rp), keterangan, tanggal penyaluran, sumber dana, penanggung jawab
- Peringatan duplikasi jika KK sudah punya PKH/BPNT/Beras Bansos
- Total bantuan per KK dihitung otomatis
4.6 Modul Dashboard Walikota
Tampil di sidebar saat walikota login (tab Rumah Ibadah & Keluarga Miskin). Menampilkan:
- Total KK, KK sudah/belum dapat bantuan (tahun berjalan)
- Distribusi per kecamatan, penyakit, DTKS, tingkat kemiskinan
- Bantuan per jenis & sumber dana + total nominal
- Jumlah laporan belum ditangani
- Drill-down klikabel → detail tabel + ekspor Excel
Admin juga dapat mengakses API dashboard yang sama.
4.7 Modul Autentikasi
- Login via username/password (JSON POST)
- Session PHP (
$_SESSION['user']) - Endpoint:
check,login,logout - Pengurus login via kode RI, bukan tabel
users
5. Model Data
Tabel Database (6 tabel)
- rumah_ibadah — titik lokasi + radius + kredensial pengurus
- users — admin & walikota
- keluarga_miskin — data KK + auto-assign
- laporan_masyarakat — laporan warga
- histori_bantuan — riwayat penyaluran
- rate_limit — pembatasan IP laporan
Relasi Utama
rumah_ibadah→keluarga_miskin(satu RI membina banyak KK)keluarga_miskin→histori_bantuan(satu KK punya banyak bantuan)users→histori_bantuan(penanggung jawab)laporan_masyarakat→keluarga_miskin(konversi laporan ke KK)
6. Alur Bisnis Utama (untuk Manual Book)
Alur A — Pendaftaran Rumah Ibadah (Admin)
- Login sebagai admin
- Tab Rumah Ibadah → Tambah
- Isi form / klik peta untuk koordinat
- Atur radius cakupan (slider 0.5–5 km)
- Simpan → sistem tampilkan kode pengurus & password (diserahkan ke pengurus RI)
- Semua KK di wilayah otomatis di-assign ulang
Alur B — Pengurus Mencatat KK Binaan
- Login dengan kode
RI-XXX-9999 - Tab Keluarga Miskin → Tambah
- Isi NIK, data keluarga, pilih penyakit, tentukan lokasi di peta
- Simpan → KK terhubung ke RI pengurus
- Klik Bantuan pada kartu KK → catat penyaluran bantuan
Alur C — Laporan Masyarakat
- Tanpa login, klik Laporkan Warga Miskin
- Isi lokasi & deskripsi (identitas opsional)
- Kirim → status Baru
- Admin buka tab Laporan → Kelola
- Verifikasi (bisa buat KK dari laporan) atau tolak dengan alasan
Alur D — Monitoring Walikota
- Login
walikota - Lihat dashboard di sidebar (statistik & grafik bar)
- Klik kartu untuk drill-down detail
- Tab Keluarga Miskin → filter & Ekspor Excel/PDF
- Tab Laporan → pantau laporan masuk (read-only untuk kelola)
7. Antarmuka Pengguna
| Area | Fungsi |
|---|---|
| Topbar | Brand, navigasi tab (RI / KK / Laporan), info user, login/logout |
| Peta (kiri) | Visualisasi spasial, pick lokasi, zoom ke entitas |
| Sidebar (kanan) | Daftar data, filter, legenda, statistik, tombol tambah/ekspor |
| Modal | Form CRUD, login, laporan, bantuan, konfirmasi hapus, dashboard drill-down |
| FAB | Tombol mengambang laporan masyarakat |
| Toast | Notifikasi sukses/error |
Responsif: Di layar ≤768px, sidebar menjadi panel bawah setengah layar.
8. Kebutuhan Non-Fungsional (untuk SRS)
| Aspek | Spesifikasi |
|---|---|
| Keamanan | Password bcrypt, session-based auth, role-based access control, sanitasi input, prepared statements PDO |
| Ketersediaan data | UTF-8 (utf8mb4), format JSON standar {success, data, message} |
| Performa | Single-page, data dimuat via AJAX paralel |
| Batasan upload | Foto laporan maks 5MB |
| Rate limiting | 5 laporan/jam/IP |
| Kompatibilitas | Browser modern dengan JavaScript; butuh koneksi internet (CDN peta & library) |
| Deployment | PHP 7.4+, MySQL 5.7+, web server Apache/Nginx |
9. Kerangka Dokumen SRS
- Pendahuluan — latar belakang, tujuan, ruang lingkup, definisi (DTKS, KK, RI, WebGIS)
- Deskripsi Umum — perspektif produk, fungsi produk, karakteristik pengguna
- Kebutuhan Fungsional — per modul (FR-01 s/d FR-XX)
- Kebutuhan Data — entitas & atribut dari database
- Kebutuhan Antarmuka — layar peta, sidebar, modal, dashboard
- Kebutuhan Non-Fungsional — keamanan, performa, reliabilitas
- Aturan Bisnis — auto-assign Haversine, eligible bansos tunai, duplikasi bantuan, rate limit
- Matriks Hak Akses — tabel role
- Integrasi Eksternal — OpenStreetMap, Nominatim, CDN library
- Lampiran — ERD, diagram alur, mockup UI
10. Kerangka Manual Book
Bab 1 — Pengenalan
Tentang sistem, siapa penggunanya, persyaratan (browser, Laragon/URL)
Bab 2 — Akses & Login
Login admin, walikota, pengurus (contoh kredensial demo)
Bab 3 — Panduan Masyarakat
Cara melihat peta, mengirim laporan, batas 5 laporan/jam
Bab 4 — Panduan Admin
Kelola rumah ibadah, KK, laporan, verifikasi & konversi ke KK
Bab 5 — Panduan Pengurus Rumah Ibadah
Login kode RI, input KK binaan, pencatatan bantuan
Bab 6 — Panduan Walikota
Dashboard, drill-down, ekspor data, tab laporan
Bab 7 — Fitur Peta
Navigasi, legenda, zoom, pick lokasi
Bab 8 — Ekspor Laporan
Excel & PDF (kolom yang diekspor)
Bab 9 — Troubleshooting
Gagal login, rate limit, KK di luar radius, koneksi database
11. Data Demo (untuk Testing)
| Akun | Username | Password |
|---|---|---|
| Admin | admin |
admin123 |
| Walikota | walikota |
admin123 |
| Pengurus Masjid Raya | RI-MSJ-4821 |
pengurus123 |
| Pengurus Gereja | RI-GRJ-7153 |
pengurus123 |
Database seed berisi: 2 rumah ibadah, 5 keluarga miskin, 1 laporan, 2 histori bantuan.
12. Ringkasan Nilai Sistem
Sistem ini menggabungkan GIS, manajemen data sosial, partisipasi masyarakat, dan dashboard kebijakan dalam satu aplikasi web. Konsep intinya: rumah ibadah sebagai node pembina dengan cakupan geografis terukur, sehingga program pengentasan kemiskinan dapat dipantau secara spasial dan berbasis data bantuan per keluarga.
Dokumen ini dibuat sebagai bahan penyusunan SRS (Software Requirements Specification) dan Manual Book untuk WebGIS Pontianak.