Files
WebGIS-Project/webgis-kemiskinan
2026-06-10 23:58:20 +07:00
..
2026-06-10 17:28:32 +07:00
2026-06-10 23:58:20 +07:00
2026-06-10 17:28:32 +07:00
2026-06-10 17:28:32 +07:00
2026-06-10 17:28:32 +07:00
2026-06-10 17:28:32 +07:00
2026-06-10 17:28:32 +07:00

WebGIS Pengentasan Kemiskinan v2.0

Berbasis Masyarakat & Rumah Ibadah

Pengembangan dari sistem webgis-spbu menjadi sistem manajemen sosial yang lengkap, real-time, dan berbasis relasi database.


🚀 Fitur Lengkap

Fitur Status
Peta Leaflet interaktif + MarkerCluster
Layer: penduduk, keluarga, rumah ibadah, laporan, jalan
Warna marker berdasar status ekonomi (merah/kuning/hijau)
CRUD penduduk lengkap (NIK, umur otomatis, kesehatan, dll)
Sistem keluarga (KK → anggota)
Validasi logika pendidikan vs umur
Laporan masyarakat (siapapun bisa lapor, tanpa login)
Manajemen bantuan + histori per penduduk
Deteksi otomatis warga belum pernah dibantu
Prioritas bantuan (KRITIS = miskin + sakit parah)
Multi-role: admin, pengurus, pimpinan, masyarakat
Chat/diskusi antar pengurus per rumah ibadah
Notifikasi real-time (polling)
Audit log semua aktivitas
Dashboard monitoring statistik
Data dummy siap pakai (Pontianak)

📁 Struktur Direktori

webgis-kemiskinan/
├── index.html               ← Peta WebGIS utama (publik)
├── admin/
│   ├── login.php            ← Halaman login
│   ├── logout.php
│   ├── init_admin.php       ← Inisialisasi user (jalankan sekali!)
│   ├── _layout.php          ← Layout admin (header + nav)
│   ├── index.php            ← Dashboard
│   ├── penduduk.php         ← CRUD penduduk
│   ├── bantuan.php          ← Catat penyaluran bantuan
│   ├── histori_bantuan.php  ← Riwayat bantuan
│   ├── belum_dibantu.php    ← Warga belum tersentuh bantuan
│   ├── laporan.php          ← Manajemen laporan masyarakat
│   └── log.php              ← Audit log (admin only)
├── php/
│   ├── koneksi.php          ← Config DB + helper functions
│   ├── middleware/
│   │   └── auth.php         ← Autentikasi & otorisasi
│   └── api/
│       ├── auth.php         ← Login/logout API
│       ├── penduduk.php     ← CRUD penduduk (RESTful)
│       ├── keluarga.php     ← CRUD keluarga
│       ├── bantuan.php      ← Bantuan + histori + stats
│       ├── laporan.php      ← Laporan masyarakat
│       ├── rumah_ibadah.php ← CRUD rumah ibadah
│       └── pesan.php        ← Chat + notifikasi
├── sql/
│   └── schema.sql           ← Schema + data dummy
└── uploads/
    ├── bukti/               ← Bukti penyaluran bantuan
    └── foto_laporan/        ← Foto dari laporan masyarakat

⚙️ Instalasi (XAMPP)

1. Salin Folder

C:\xampp\htdocs\webgis-kemiskinan\

2. Buat Database

  • Buka phpMyAdminhttp://localhost/phpmyadmin
  • Buat database baru: webgis_kemiskinan
  • Import: sql/schema.sql

3. Konfigurasi DB

Edit php/koneksi.php:

define('DB_NAME', 'webgis_kemiskinan');
define('DB_USER', 'root');
define('DB_PASS', '');   // sesuaikan password MySQL Anda

4. Inisialisasi User

Buka sekali di browser:

http://localhost/webgis-kemiskinan/admin/init_admin.php

Hapus file ini setelah dijalankan!

5. Akses Sistem

URL Keterangan
http://localhost/webgis-kemiskinan/ Peta WebGIS (publik)
http://localhost/webgis-kemiskinan/admin/login.php Panel Admin

👤 Akun Demo

Username Password Role
admin password Administrator
pengurus1 password Pengurus Masjid Al-Falah
pimpinan1 password Pimpinan Daerah
warga1 password Masyarakat

Hash yang digunakan adalah hash Laravel default untuk string "password".
Untuk produksi, ganti dengan: password_hash('PasswordBaru', PASSWORD_BCRYPT)


🗄️ Tabel Database

Tabel Fungsi
roles Definisi role sistem
users Akun pengguna
rumah_ibadah Data rumah ibadah + radius
keluarga Data KK
penduduk Data individu (NIK sebagai PK)
riwayat_pelatihan Pelatihan kerja per penduduk
jenis_bantuan Master jenis bantuan
histori_bantuan Riwayat penyaluran bantuan
laporan Laporan kondisi dari masyarakat
pesan Chat antar pengurus
notifikasi Notifikasi per user
log_aktivitas Audit trail semua perubahan data
jalan_lines Layer jalan (GeoJSON)
parsil_tanah Layer parsil tanah (GeoJSON)

🧠 Logika Khusus

Validasi Pendidikan vs Umur

  • Umur 712 tahun → wajib masih sekolah (SD)
  • Umur 1315 tahun → wajib masih sekolah (SMP)
  • Umur 1618 tahun → wajib masih sekolah (SMA/SMK)
  • Umur >18 tahun → bebas (bisa tidak sekolah / ikut pelatihan)

Prioritas Bantuan (otomatis)

Kondisi Prioritas
Miskin + Sakit Parah/Disabilitas 🔴 KRITIS
Miskin + Belum pernah dibantu 🟠 TINGGI
Miskin (umum) 🟡 SEDANG
Rentan + Sakit 🟡 SEDANG
Lainnya 🟢 RENDAH

Umur Otomatis

Kolom umur di tabel penduduk adalah GENERATED COLUMN — dihitung langsung dari tanggal_lahir setiap kali data dibaca. Tidak perlu update manual.


🔒 Keamanan

  • PDO dengan prepared statements (anti SQL injection)
  • password_hash() / password_verify() untuk password
  • Session dengan session_regenerate_id() saat login
  • Validasi input di sisi server untuk semua endpoint
  • Otorisasi per-role di setiap API endpoint
  • Upload file: validasi ekstensi + ukuran + nama acak

📱 Cara Buat Laporan (Masyarakat)

  1. Buka http://localhost/webgis-kemiskinan/
  2. Klik tombol "Buat Laporan" di pojok kanan atas
  3. Isi deskripsi kondisi (nama pelapor opsional)
  4. Klik peta untuk memilih lokasi otomatis
  5. Kirim → pengurus akan mendapat notifikasi otomatis

🔄 Pengembangan Lanjutan (Saran)

  • Integrasi SMS/WhatsApp notifikasi
  • Export PDF laporan distribusi bantuan
  • Login via Google / warga menggunakan NIK + tanggal lahir
  • Mobile app (React Native / Flutter)
  • Sinkronisasi data dengan Dukcapil