Initial commit
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
-- ============================================================
|
||||
-- SINERGI — Entity Relationship Diagram (ERD) Documentation
|
||||
-- ============================================================
|
||||
--
|
||||
-- DIAGRAM RELASI TABEL:
|
||||
--
|
||||
-- roles ─────────────────────────────┐
|
||||
-- id, nama, slug, deskripsi │ 1
|
||||
-- │
|
||||
-- users ────────────────────────────-┤ N (setiap user punya 1 role)
|
||||
-- id, id_role(FK→roles), id_kelurahan(FK→kelurahan)
|
||||
-- nama, username, email, password, no_hp, foto, is_active
|
||||
-- last_login, created_at
|
||||
--
|
||||
-- kecamatan ─────────────────────────┐
|
||||
-- id, nama, kode, lat, lng │ 1
|
||||
-- │
|
||||
-- kelurahan ─────────────────────────┤ N (banyak kelurahan per kecamatan)
|
||||
-- id, id_kecamatan(FK→kecamatan) │ 1
|
||||
-- nama, kode, lat, lng │
|
||||
-- │ N
|
||||
-- rumah_ibadah ──────────────────────┤ (banyak RI per kelurahan)
|
||||
-- id, id_user(FK→users) │
|
||||
-- id_kelurahan(FK→kelurahan) │
|
||||
-- id_jenis(FK→jenis_rumah_ibadah) │
|
||||
-- nama, alamat, lat, lng │
|
||||
-- radius_meter, nama_ketua, foto │ 1
|
||||
-- │
|
||||
-- warga_miskin ──────────────────────┘ N (banyak warga per RI)
|
||||
-- id, id_laporan(FK→laporan_masyarakat)
|
||||
-- id_kelurahan(FK→kelurahan)
|
||||
-- id_rumah_ibadah(FK→rumah_ibadah)
|
||||
-- id_verifikator(FK→users)
|
||||
-- nik, nama, tgl_lahir, jk, agama
|
||||
-- alamat, lat, lng, foto
|
||||
-- pendidikan_terakhir, pekerjaan
|
||||
-- penghasilan_bulanan, jumlah_tanggungan
|
||||
-- kondisi_rumah, riwayat_penyakit
|
||||
-- is_lansia, is_disabilitas
|
||||
-- status_kemiskinan, skor_prioritas
|
||||
-- level_prioritas, is_blind_spot
|
||||
-- status, tanggal_verifikasi
|
||||
--
|
||||
-- laporan_masyarakat ────────────────┐
|
||||
-- id, kode_laporan │ 1
|
||||
-- nama_pelapor, no_hp_pelapor │
|
||||
-- nama_warga, alamat_warga │
|
||||
-- id_kelurahan(FK→kelurahan) │
|
||||
-- lat, lng, deskripsi, foto │
|
||||
-- status, catatan_verifikator │
|
||||
-- id_verifikator(FK→users) │
|
||||
-- tanggal_verifikasi │
|
||||
-- │ (1 laporan → 1 warga)
|
||||
-- histori_bantuan ─────────────────────────────────
|
||||
-- id, id_warga(FK→warga_miskin)
|
||||
-- id_rumah_ibadah(FK→rumah_ibadah)
|
||||
-- id_kategori_bantuan(FK→kategori_bantuan)
|
||||
-- id_user_pengurus(FK→users)
|
||||
-- kode_bantuan, tanggal_penyaluran
|
||||
-- jumlah, satuan, deskripsi, foto_bukti
|
||||
-- status
|
||||
--
|
||||
-- kategori_bantuan ──────────────────
|
||||
-- id, nama, deskripsi, satuan, is_active
|
||||
--
|
||||
-- jenis_rumah_ibadah ────────────────
|
||||
-- id, nama, ikon
|
||||
--
|
||||
-- aktivitas_sistem ──────────────────
|
||||
-- id, id_user(FK→users), nama_user
|
||||
-- role, aksi, modul, deskripsi
|
||||
-- ip_address, user_agent, created_at
|
||||
--
|
||||
-- sessions ──────────────────────────
|
||||
-- id, id_user(FK→users)
|
||||
-- ip_address, user_agent
|
||||
-- payload, last_activity
|
||||
--
|
||||
-- ============================================================
|
||||
-- RELASI KARDINALITAS:
|
||||
-- ============================================================
|
||||
--
|
||||
-- roles 1 ──── N users
|
||||
-- kecamatan 1 ──── N kelurahan
|
||||
-- kelurahan 1 ──── N rumah_ibadah
|
||||
-- kelurahan 1 ──── N users (verifikator)
|
||||
-- kelurahan 1 ──── N warga_miskin
|
||||
-- kelurahan 1 ──── N laporan_masyarakat
|
||||
-- rumah_ibadah 1 ──── N warga_miskin (binaan)
|
||||
-- rumah_ibadah 1 ──── N histori_bantuan
|
||||
-- warga_miskin 1 ──── N histori_bantuan
|
||||
-- laporan 1 ──── 1 warga_miskin (opsional)
|
||||
-- kategori 1 ──── N histori_bantuan
|
||||
-- users 1 ──── 1 rumah_ibadah (pengurus)
|
||||
-- users 1 ──── N aktivitas_sistem
|
||||
-- users 1 ──── N laporan (verifikator)
|
||||
-- users 1 ──── N warga_miskin (verifikator)
|
||||
-- jenis_ri 1 ──── N rumah_ibadah
|
||||
--
|
||||
-- ============================================================
|
||||
-- PROSES BISNIS UTAMA:
|
||||
-- ============================================================
|
||||
--
|
||||
-- [1] PELAPORAN:
|
||||
-- Masyarakat → POST /lapor → laporan_masyarakat (status=menunggu)
|
||||
--
|
||||
-- [2] VERIFIKASI:
|
||||
-- Verifikator → verifikasi laporan →
|
||||
-- UPDATE laporan status=terverifikasi +
|
||||
-- INSERT warga_miskin
|
||||
--
|
||||
-- [3] ASSIGNMENT RI (Haversine):
|
||||
-- Saat INSERT warga_miskin:
|
||||
-- - Loop semua rumah_ibadah aktif
|
||||
-- - Hitung jarak Haversine(warga.lat,warga.lng, ri.lat,ri.lng)
|
||||
-- - Jika jarak <= radius_meter → assign id_rumah_ibadah
|
||||
-- - Jika tidak ada → is_blind_spot = 1
|
||||
--
|
||||
-- [4] SKOR PRIORITAS (0-100):
|
||||
-- penghasilan(30) + tanggungan(20) + kondisi_rumah(15) +
|
||||
-- pendidikan(10) + penyakit(10) + lansia(8) + disabilitas(7)
|
||||
-- → level: Tinggi(≥70), Sedang(≥40), Rendah(<40)
|
||||
--
|
||||
-- [5] PENYALURAN BANTUAN:
|
||||
-- Pengurus RI → INSERT histori_bantuan
|
||||
--
|
||||
-- [6] MONITORING:
|
||||
-- Dinsos/Wali Kota → READ ONLY semua data
|
||||
-- GIS Heatmap dari koordinat warga_miskin
|
||||
-- ============================================================
|
||||
@@ -0,0 +1,298 @@
|
||||
# PANDUAN INSTALASI SINERGI
|
||||
## Sistem Informasi Geografis Penanganan Kemiskinan — Kota Pontianak
|
||||
|
||||
---
|
||||
|
||||
## PRASYARAT SISTEM
|
||||
|
||||
Pastikan software berikut sudah terinstal:
|
||||
|
||||
| Software | Versi | Keterangan |
|
||||
|----------|-------|------------|
|
||||
| Laragon | 6.0+ | Full / Lite |
|
||||
| PHP | 8.1+ | Sudah termasuk dalam Laragon |
|
||||
| MySQL | 8.0+ | Sudah termasuk dalam Laragon |
|
||||
| Apache | 2.4+ | Sudah termasuk dalam Laragon |
|
||||
|
||||
---
|
||||
|
||||
## LANGKAH INSTALASI
|
||||
|
||||
### Step 1: Copy Folder Proyek
|
||||
|
||||
```
|
||||
Salin folder `sinergi/` ke:
|
||||
C:\laragon\www\sinergi\
|
||||
```
|
||||
|
||||
Pastikan struktur folder seperti ini:
|
||||
```
|
||||
C:\laragon\www\sinergi\
|
||||
├── app\
|
||||
│ ├── controllers\
|
||||
│ ├── models\
|
||||
│ └── views\
|
||||
├── config\
|
||||
├── core\
|
||||
├── public\
|
||||
├── database\
|
||||
├── index.php
|
||||
└── .htaccess
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Step 2: Aktifkan mod_rewrite Apache
|
||||
|
||||
1. Buka **Laragon** → klik kanan tray icon
|
||||
2. Pilih **Apache** → **httpd.conf**
|
||||
3. Cari baris: `#LoadModule rewrite_module modules/mod_rewrite.so`
|
||||
4. Hapus tanda `#` di depannya
|
||||
5. Simpan file
|
||||
6. Restart Laragon
|
||||
|
||||
---
|
||||
|
||||
### Step 3: Import Database
|
||||
|
||||
#### Cara A — Melalui phpMyAdmin (Disarankan)
|
||||
1. Buka browser: `http://localhost/phpmyadmin`
|
||||
2. Klik **"Import"** di menu atas
|
||||
3. Pilih file `database/sinergi.sql` → klik **Go**
|
||||
4. Setelah selesai, pilih file `database/dummy_data.sql` → klik **Go**
|
||||
|
||||
#### Cara B — Melalui Command Line
|
||||
```bash
|
||||
# Buka Command Prompt di folder sinergi
|
||||
cd C:\laragon\www\sinergi
|
||||
|
||||
# Import schema
|
||||
mysql -u root -p < database\sinergi.sql
|
||||
|
||||
# Import dummy data
|
||||
mysql -u root -p sinergi_db < database\dummy_data.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Step 4: Konfigurasi Aplikasi
|
||||
|
||||
Edit file `config/database.php`:
|
||||
```php
|
||||
define('DB_HOST', 'localhost');
|
||||
define('DB_NAME', 'sinergi_db');
|
||||
define('DB_USER', 'root');
|
||||
define('DB_PASS', ''); // Sesuaikan password MySQL Anda
|
||||
define('DB_CHARSET', 'utf8mb4');
|
||||
```
|
||||
|
||||
Edit file `config/app.php` jika nama folder berbeda:
|
||||
```php
|
||||
define('APP_URL', 'http://localhost/sinergi'); // Sesuaikan
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Step 5: Buat Folder Upload
|
||||
|
||||
```bash
|
||||
# Pastikan folder ini ada dan bisa ditulis
|
||||
C:\laragon\www\sinergi\public\images\uploads\
|
||||
C:\laragon\www\sinergi\public\images\laporan\
|
||||
C:\laragon\www\sinergi\public\images\warga\
|
||||
C:\laragon\www\sinergi\public\images\bantuan\
|
||||
C:\laragon\www\sinergi\public\images\rumah_ibadah\
|
||||
```
|
||||
|
||||
Atau jalankan script ini di Command Prompt:
|
||||
```batch
|
||||
mkdir C:\laragon\www\sinergi\public\images\uploads
|
||||
mkdir C:\laragon\www\sinergi\public\images\laporan
|
||||
mkdir C:\laragon\www\sinergi\public\images\warga
|
||||
mkdir C:\laragon\www\sinergi\public\images\bantuan
|
||||
mkdir C:\laragon\www\sinergi\public\images\rumah_ibadah
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Step 6: Jalankan Aplikasi
|
||||
|
||||
1. **Start Laragon** (klik tombol Start All)
|
||||
2. Buka browser: `http://localhost/sinergi`
|
||||
3. Halaman beranda publik akan tampil
|
||||
|
||||
---
|
||||
|
||||
## AKUN LOGIN DEMO
|
||||
|
||||
Semua akun menggunakan password: **Admin@123**
|
||||
|
||||
| Role | Username | Password | Akses |
|
||||
|------|----------|----------|-------|
|
||||
| Super Admin | `superadmin` | Admin@123 | Semua fitur admin |
|
||||
| Verifikator (Kel. Darat Sekip) | `verif_darat` | Admin@123 | Verifikasi laporan |
|
||||
| Verifikator (Kel. Sungai Jawi) | `verif_jawi` | Admin@123 | Verifikasi laporan |
|
||||
| Pengurus Masjid Darussalam | `ri_masjid_darussalam` | Admin@123 | Penyaluran bantuan |
|
||||
| Pengurus Gereja Bethel | `ri_gereja_bethel` | Admin@123 | Penyaluran bantuan |
|
||||
| Pengurus Masjid Al-Falah | `ri_masjid_alfalah` | Admin@123 | Penyaluran bantuan |
|
||||
| Dinas Sosial | `dinsos_ahmad` | Admin@123 | Monitoring |
|
||||
| Wali Kota | `walikota` | Admin@123 | Dashboard Eksekutif |
|
||||
|
||||
---
|
||||
|
||||
## URL AKSES
|
||||
|
||||
| Halaman | URL |
|
||||
|---------|-----|
|
||||
| Beranda Publik | `http://localhost/sinergi/` |
|
||||
| Form Laporan | `http://localhost/sinergi/lapor` |
|
||||
| Cek Laporan | `http://localhost/sinergi/cek-laporan` |
|
||||
| Login | `http://localhost/sinergi/login` |
|
||||
| Dashboard Admin | `http://localhost/sinergi/admin/dashboard` |
|
||||
| Dashboard Verifikator | `http://localhost/sinergi/verifikator/dashboard` |
|
||||
| Dashboard Rumah Ibadah | `http://localhost/sinergi/rumah-ibadah/dashboard` |
|
||||
| Dashboard Dinsos | `http://localhost/sinergi/dinsos/dashboard` |
|
||||
| Dashboard Wali Kota | `http://localhost/sinergi/walikota/dashboard` |
|
||||
|
||||
---
|
||||
|
||||
## TROUBLESHOOTING
|
||||
|
||||
### Error 404 (Halaman tidak ditemukan)
|
||||
- Pastikan `mod_rewrite` sudah aktif di Apache
|
||||
- Cek file `.htaccess` ada di root folder `sinergi/`
|
||||
- Pastikan `AllowOverride All` aktif di `httpd.conf`:
|
||||
```
|
||||
<Directory "C:/laragon/www">
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
```
|
||||
|
||||
### Error database connection
|
||||
- Pastikan MySQL running di Laragon
|
||||
- Cek konfigurasi di `config/database.php`
|
||||
- Pastikan database `sinergi_db` sudah diimport
|
||||
|
||||
### Peta Leaflet tidak muncul
|
||||
- Pastikan koneksi internet aktif (Leaflet CDN)
|
||||
- Cek console browser (F12) untuk error JavaScript
|
||||
|
||||
### Upload foto gagal
|
||||
- Pastikan folder `public/images/uploads/` ada dan writable
|
||||
- Cek konfigurasi `upload_max_filesize` di `php.ini` (minimal 5M)
|
||||
|
||||
### Halaman putih kosong
|
||||
- Aktifkan error reporting: tambah di awal `index.php`:
|
||||
```php
|
||||
ini_set('display_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## STRUKTUR FOLDER LENGKAP
|
||||
|
||||
```
|
||||
sinergi/
|
||||
├── .htaccess # URL Rewriting
|
||||
├── index.php # Entry point & Router
|
||||
│
|
||||
├── config/
|
||||
│ ├── app.php # Konfigurasi aplikasi
|
||||
│ └── database.php # Konfigurasi database
|
||||
│
|
||||
├── core/
|
||||
│ ├── Auth.php # Autentikasi & session
|
||||
│ ├── Controller.php # Base controller
|
||||
│ ├── Database.php # Koneksi database (PDO)
|
||||
│ ├── Router.php # URL Router
|
||||
│ └── helpers.php # Helper functions (Haversine, skor, dll)
|
||||
│
|
||||
├── app/
|
||||
│ ├── controllers/
|
||||
│ │ ├── AdminController.php
|
||||
│ │ ├── AuthController.php
|
||||
│ │ ├── DinsosController.php
|
||||
│ │ ├── PublicController.php
|
||||
│ │ ├── RumahIbadahController.php
|
||||
│ │ ├── VerifikatorController.php
|
||||
│ │ └── WalikotaController.php
|
||||
│ │
|
||||
│ └── views/
|
||||
│ ├── layouts/
|
||||
│ │ ├── admin.php
|
||||
│ │ ├── dinsos.php
|
||||
│ │ ├── public.php
|
||||
│ │ ├── rumah_ibadah.php
|
||||
│ │ ├── verifikator.php
|
||||
│ │ └── walikota.php
|
||||
│ ├── admin/ # View Super Admin
|
||||
│ ├── auth/ # Login
|
||||
│ ├── dinsos/ # View Dinsos
|
||||
│ ├── public/ # View Publik
|
||||
│ ├── rumah_ibadah/ # View Pengurus RI
|
||||
│ ├── verifikator/ # View Verifikator
|
||||
│ └── walikota/ # View Wali Kota
|
||||
│
|
||||
├── public/
|
||||
│ ├── css/app.css # Stylesheet utama
|
||||
│ ├── js/app.js # JavaScript utama (GIS, Charts)
|
||||
│ └── images/ # Gambar & upload
|
||||
│
|
||||
└── database/
|
||||
├── sinergi.sql # Schema + data roles/kecamatan
|
||||
└── dummy_data.sql # Data dummy untuk testing
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## TEKNOLOGI YANG DIGUNAKAN
|
||||
|
||||
| Komponen | Teknologi | Versi |
|
||||
|----------|-----------|-------|
|
||||
| Frontend | HTML5, CSS3 Native, JavaScript | — |
|
||||
| Peta GIS | Leaflet.js | 1.9.4 |
|
||||
| Heatmap | Leaflet.heat | 0.2.0 |
|
||||
| Grafik | Chart.js | 4.4.0 |
|
||||
| Font | Inter (Google Fonts) | — |
|
||||
| Backend | PHP Native (tanpa framework) | 8.1+ |
|
||||
| Database | MySQL | 8.0+ |
|
||||
| Arsitektur | MVC Sederhana + RBAC | — |
|
||||
| Environment | Laragon | 6.0+ |
|
||||
|
||||
---
|
||||
|
||||
## FITUR UTAMA
|
||||
|
||||
### 🗺 Sistem GIS
|
||||
- Peta interaktif Leaflet.js
|
||||
- Marker warga miskin (merah=ekstrem, oranye=miskin, kuning=rentan)
|
||||
- Marker & radius rumah ibadah (hijau)
|
||||
- Heatmap persebaran kemiskinan
|
||||
- Layer control (beralih antara tampilan)
|
||||
- Popup informasi detail
|
||||
|
||||
### 📊 Algoritma Prioritas Bantuan
|
||||
Skor 0-100 berdasarkan 7 faktor:
|
||||
1. **Penghasilan** (30 poin) — semakin rendah = skor lebih tinggi
|
||||
2. **Jumlah tanggungan** (20 poin)
|
||||
3. **Kondisi rumah** (15 poin)
|
||||
4. **Pendidikan** (10 poin)
|
||||
5. **Riwayat penyakit** (10 poin)
|
||||
6. **Status lansia** (8 poin)
|
||||
7. **Status disabilitas** (7 poin)
|
||||
|
||||
### 🔍 Deteksi Blind Spot
|
||||
- Menggunakan **Haversine Formula** untuk menghitung jarak
|
||||
- Jika warga tidak berada dalam radius rumah ibadah manapun → **Blind Spot**
|
||||
- Blind spot otomatis muncul di dashboard Dinsos & Admin
|
||||
|
||||
### ⛪ Assignment Rumah Ibadah
|
||||
- Otomatis dihitung saat verifikasi warga
|
||||
- Menggunakan Haversine Formula mencari rumah ibadah dalam radius terdekat
|
||||
- 1 warga = 1 rumah ibadah penanggung jawab
|
||||
|
||||
---
|
||||
|
||||
*SINERGI v1.0.0 — Sistem Informasi Geografis Penanganan Kemiskinan*
|
||||
*Kota Pontianak — © 2024 Dinas Sosial Kota Pontianak*
|
||||
Reference in New Issue
Block a user