6.6 KiB
6.6 KiB
WebGIS Pengentasan Kemiskinan v3.0
Kota Pontianak — Berbasis Komunitas & Rumah Ibadah
Sistem WebGIS berbasis PHP + MySQL + Leaflet.js untuk pemetaan, pendataan, dan distribusi bantuan sosial kepada penduduk miskin di Kota Pontianak.
📁 Struktur Folder
webgis_v3/
├── index.php ← Halaman utama (SPA: login + semua fitur)
├── config.php ← Konfigurasi database & helper functions
├── database.sql ← Skema database + data demo
├── .htaccess ← Konfigurasi Apache (keamanan + routing)
├── uploads/ ← Foto laporan masyarakat
└── api/
├── auth.php ← Login / logout / cek sesi
├── penduduk.php ← CRUD data penduduk + validasi pendidikan
├── keluarga.php ← CRUD data keluarga (KK)
├── rumah_ibadah.php ← CRUD rumah ibadah
├── bantuan.php ← Master bantuan + histori + prioritas otomatis
├── laporan.php ← Laporan masyarakat + upload foto
├── chat.php ← Chat antar pengurus
├── stats.php ← Dashboard KPI + GeoJSON untuk peta
├── pelatihan.php ← Manajemen pelatihan keterampilan
├── user.php ← Manajemen user & role (superadmin)
└── log.php ← Log aktivitas sistem
🚀 Cara Menjalankan di XAMPP
Langkah 1 — Ekstrak & Taruh di htdocs
Ekstrak ZIP → salin folder webgis_v3 ke:
C:\xampp\htdocs\webgis_v3\
Langkah 2 — Start XAMPP
Buka XAMPP Control Panel → Start Apache dan MySQL
Langkah 3 — Import Database
- Buka browser →
http://localhost/phpmyadmin - Klik tab SQL di bagian atas
- Salin seluruh isi file
database.sql - Tempel ke kotak SQL → klik Go
Database webgis_kemiskinan akan terbuat otomatis dengan semua tabel dan data demo.
Langkah 4 — Cek config.php (jika perlu)
define('DB_HOST', 'localhost');
define('DB_USER', 'root'); // default XAMPP
define('DB_PASS', ''); // default XAMPP = kosong
define('DB_NAME', 'webgis_kemiskinan');
Langkah 5 — Buka Aplikasi
http://localhost/webgis_v3
👥 Akun Demo
| Role | Username | Password | Akses |
|---|---|---|---|
| 👑 Super Admin | superadmin |
password |
Semua fitur + manajemen user |
| 🏛️ Pimpinan | pimpinan1 |
password |
Dashboard monitoring (read-only) |
| 🕌 Pengurus RI | pengurus1 |
password |
Input data + distribusi bantuan |
| 🕌 Pengurus RI | pengurus2 |
password |
Input data + distribusi bantuan |
| 🚑 Relawan | relawan1 |
password |
Survey lapangan + laporan |
| 👤 Masyarakat | masyarakat1 |
password |
Lihat peta + buat laporan |
Laporan masyarakat bisa dikirim tanpa login (klik chip "Lapor Tanpa Login" di halaman login).
🗄️ Struktur Database (13 Tabel)
| Tabel | Deskripsi |
|---|---|
role |
5 role sistem |
user |
Akun pengguna + relasi ke role & rumah ibadah |
rumah_ibadah |
Data masjid, gereja, vihara, klenteng, pura |
keluarga |
Data Kartu Keluarga (KK) |
penduduk |
Data penduduk lengkap (NIK, umur otomatis, profil umur) |
pelatihan |
Program pelatihan keterampilan |
riwayat_pelatihan |
Peserta per pelatihan |
bantuan |
Master program bantuan (PKH, BPNT, BLT, dll) |
histori_bantuan |
Riwayat penyaluran bantuan per penduduk |
laporan |
Laporan kondisi warga dari masyarakat |
chat |
Pesan koordinasi antar pengurus |
log_aktivitas |
Audit trail semua aktivitas sistem |
⚡ Fitur Utama
🗺️ WebGIS Interaktif
- Peta gelap (dark mode) berbasis OpenStreetMap + CartoDB
- 3 warna marker: 🔴 Miskin | 🟡 Rentan | 🟢 Mampu
- Marker laporan masyarakat dengan kode urgensi
- Layer toggle per kategori
- Radius distribusi adjustable (100–1000m)
- Popup detail klik marker
👥 Manajemen Data Penduduk
- NIK 16 digit sebagai primary key
- Umur dihitung otomatis dari tanggal lahir (MySQL Generated Column)
- Profil umur otomatis: Balita / Anak / Remaja / Dewasa / Lansia
- Validasi pendidikan vs umur:
- Usia 7–15 → peringatan jika tidak sekolah
- Usia 16–18 → peringatan jika tidak sekolah
- Relasi ke Kartu Keluarga
🏠 Manajemen Keluarga
- Data KK lengkap (No KK, RT/RW, kelurahan, kecamatan)
- Relasi ke rumah ibadah terdekat
- Daftar anggota keluarga dengan detail kondisi
🎁 Sistem Bantuan
- Prioritas otomatis: miskin + sakit = SANGAT TINGGI; lansia sendiri = SANGAT TINGGI
- Deteksi warga yang belum pernah menerima bantuan
- Histori penyaluran bantuan per individu yang transparan
- Catat distribusi langsung dari halaman bantuan
📢 Laporan Masyarakat
- Bisa dikirim tanpa login
- Upload foto dokumentasi (JPG/PNG, maks 5MB)
- 4 tingkat urgensi: Rendah / Sedang / Tinggi / 🆘 Darurat
- Alur status: Pending → Diverifikasi → Diproses → Selesai
- Koordinat laporan via klik peta atau GPS
💬 Chat Koordinasi
- Chat realtime antar pengurus rumah ibadah
- Polling otomatis setiap 8 detik
- Notifikasi dot merah jika ada pesan baru
- Pesan broadcast ke semua pengurus
📊 Dashboard & Statistik
- KPI card: total penduduk, KK, miskin, rentan, laporan aktif
- Progress bar distribusi per rumah ibadah
- Analisis singkat di sidebar
🔒 Keamanan
- Input sanitasi (anti XSS) di semua endpoint
- Prepared statements PDO (anti SQL Injection)
- Session-based auth dengan cookie HttpOnly
- Role-based access control (RBAC) di backend
- Block akses langsung ke
config.phpdandatabase.sqlvia.htaccess - Block eksekusi PHP di folder
uploads/
🛠️ Teknologi
| Komponen | Teknologi |
|---|---|
| Backend | PHP 7.4+ (PDO, Sessions) |
| Database | MySQL 5.7+ / MariaDB 10.3+ |
| Peta | Leaflet.js v1.9.4 |
| Tile Map | CartoDB Dark Matter (OpenStreetMap) |
| Geocoding | Nominatim API (OSM) |
| Frontend | Vanilla JS ES6+, CSS3 Variables |
| Font | Plus Jakarta Sans + DM Mono |
📝 Catatan Pengembangan Lanjutan
- Backend database: Tambah
localStorageatau backend sinkronisasi untuk multi-device - Export laporan: Tambah ekspor PDF/Excel menggunakan mPDF atau PhpSpreadsheet
- Notifikasi push: Integrasikan Firebase Cloud Messaging untuk notifikasi laporan darurat
- PWA offline: Service Worker untuk penggunaan lapangan tanpa internet
- Integrasi DTKS: Sinkronisasi dengan Data Terpadu Kesejahteraan Sosial Kemensos RI
Dikembangkan sebagai tugas Rekayasa Perangkat Lunak — Program Studi Informatika WebGIS Pengentasan Kemiskinan Berbasis Komunitas dan Rumah Ibadah — Kota Pontianak