Compare commits

...

7 Commits

Author SHA1 Message Date
destra 5fdaa8f726 fix: add index redirects 2026-06-10 23:56:18 +07:00
destra b87cdbcdfc fix: create missing spbu tables 2026-06-10 23:03:53 +07:00
destra ebf0ae8bd1 debug: check users 2026-06-10 22:55:29 +07:00
destra e107eed06b fix: remove hardcoded webgis_kemiskinan database" 2026-06-10 20:50:03 +07:00
destra cd7684d8f9 chore: update composer.json 2026-06-10 18:18:15 +07:00
destra 4b0335953d chore: update readme geopoverty 2026-06-10 18:05:18 +07:00
destra b0d46d00ff feat: Add composer.json untuk server PHP 2026-06-10 18:04:48 +07:00
8 changed files with 85 additions and 10 deletions
+8
View File
@@ -0,0 +1,8 @@
{
"name": "destra/webgis-uas",
"description": "WebGIS terpadu untuk UAS",
"require": {
"php": "^8.2",
"ext-mysqli": "*"
}
}
+3
View File
@@ -0,0 +1,3 @@
<?php
header("Location: index.html");
exit;
+8 -8
View File
@@ -2,7 +2,7 @@
## 📌 Deskripsi Proyek
**GeoPoverty** adalah aplikasi **WebGIS interaktif berbasis LeafletJS, PHP, dan MySQL** yang dirancang khusus untuk memetakan keluarga prasejahtera (kemiskinan) dan rumah ibadah.
**GeoPoverty** adalah aplikasi **WebGIS interaktif berbasis LeafletJS, PHP, dan MySQL** yang dirancang khusus untuk memetakan keluarga prasejahtera (kemiskinan) dan rumah ibadah .
Tujuan utama dari sistem ini adalah untuk membantu identifikasi dan distribusi bantuan sosial agar lebih tepat sasaran. Aplikasi ini menggunakan konsep *buffer radius* (zona jangkauan) rumah ibadah untuk memantau rumah mana saja yang masuk ke dalam radius bantuan dan mana yang belum terjangkau.
@@ -15,10 +15,10 @@ Tujuan utama dari sistem ini adalah untuk membantu identifikasi dan distribusi b
* Menyimpan informasi detail seperti Nama Kepala Keluarga, Jumlah Anggota KK, dan Alamat.
* Tampil sebagai marker interaktif di atas peta.
### 2. 🕌 Manajemen Data Rumah Ibadah
* Pemetaan lokasi rumah ibadah beserta penanggung jawab (PIC).
* **Fitur Radius (Buffer):** Secara otomatis menggambar lingkaran dengan radius 500 meter di sekitar rumah ibadah.
* Memudahkan identifikasi keluarga prasejahtera yang berada di dalam maupun di luar zona jangkauan bantuan rumah ibadah tersebut.
### 2. 🕌 Manajemen Data Rumah Ibadah (Masjid)
* Pemetaan lokasi masjid beserta penanggung jawab (PIC).
* **Fitur Radius (Buffer):** Secara otomatis menggambar lingkaran dengan radius 500 meter di sekitar masjid.
* Memudahkan identifikasi keluarga prasejahtera yang berada di dalam maupun di luar zona jangkauan bantuan masjid tersebut.
### 3. 📢 Sistem Laporan Warga & Pesan
* Memungkinkan warga untuk melaporkan kondisi sosial atau keluarga yang membutuhkan bantuan di sekitarnya.
@@ -26,11 +26,11 @@ Tujuan utama dari sistem ini adalah untuk membantu identifikasi dan distribusi b
### 4. 🗺️ Simulasi Rute (Routing)
* Integrasi Leaflet Routing Machine.
* Mampu menyimulasikan dan menggambar rute jalan dari titik posko/rumah ibadah menuju rumah tujuan penerima bantuan.
* Mampu menyimulasikan dan menggambar rute jalan dari titik posko/masjid menuju rumah tujuan penerima bantuan.
### 5. 🖨️ Ekspor Data & Laporan
* **Cetak Peta (PDF):** Mengekspor tampilan peta saat ini ke dalam format PDF menggunakan tangkapan layar otomatis.
* **Unduh Data (CSV):** Mengunduh data atribut kemiskinan dan rumah ibadah ke format CSV untuk analisis lanjutan.
* **Unduh Data (CSV):** Mengunduh data atribut kemiskinan dan masjid ke format CSV untuk analisis lanjutan.
---
@@ -51,7 +51,7 @@ Tujuan utama dari sistem ini adalah untuk membantu identifikasi dan distribusi b
Sistem ini terhubung ke MySQL dan secara otomatis membuat tabel jika belum ada (*Auto Bootstrap*). Tabel utama meliputi:
1. **`kemiskinan`**: Menyimpan identitas, jumlah anggota, alamat, serta koordinat (Latitude & Longitude) keluarga.
2. **`masjid`**: Menyimpan data rumah ibadah, PIC, koordinat, serta besaran radius cakupan bantuan (default: 500m).
2. **`masjid`**: Menyimpan data masjid, PIC, koordinat, serta besaran radius cakupan bantuan (default: 500m).
3. **`laporan`**: Menyimpan data laporan dari warga beserta bukti foto dan titik koordinat temuan.
4. **`pesan`**: Menyimpan pesan/kontak masuk dari pengunjung.
+3
View File
@@ -0,0 +1,3 @@
<?php
header("Location: index.html");
exit;
+13
View File
@@ -0,0 +1,13 @@
<?php
require 'koneksi.php';
$result = mysqli_query($conn, "SELECT id, username, role FROM pengguna");
$data = [];
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
header('Content-Type: application/json');
echo json_encode($data, JSON_PRETTY_PRINT);
-1
View File
@@ -15,7 +15,6 @@ mysqli_set_charset($conn, "utf8mb4");
// Helper: tambah kolom hanya jika belum ada
function addColumnIfNotExists($conn, $table, $column, $definition)
{
$db = mysqli_select_db($conn, 'webgis_kemiskinan') ? 'webgis_kemiskinan' : '';
$check = mysqli_query(
$conn,
"SELECT COUNT(*) as cnt FROM information_schema.COLUMNS
+3
View File
@@ -0,0 +1,3 @@
<?php
header("Location: index.html");
exit;
+47 -1
View File
@@ -13,6 +13,48 @@ if (!$conn) {
mysqli_set_charset($conn, "utf8mb4");
$bootstrapQueries = [
// SPBU
"CREATE TABLE IF NOT EXISTS spbu (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(255) NOT NULL,
no_spbu VARCHAR(100) NOT NULL,
status ENUM('24jam','tidak') NOT NULL,
latitude DOUBLE NOT NULL,
longitude DOUBLE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)",
// Jalan
"CREATE TABLE IF NOT EXISTS jalan (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(255) NOT NULL,
status ENUM(
'Jalan Nasional',
'Jalan Provinsi',
'Jalan Kabupaten'
) NOT NULL,
panjang DOUBLE NOT NULL,
geom LONGTEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)",
// Kavling
"CREATE TABLE IF NOT EXISTS kavling (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(255) NOT NULL,
status ENUM(
'SHM',
'HGB',
'HGU',
'HP'
) NOT NULL,
luas DOUBLE NOT NULL,
geom LONGTEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)",
// Kemiskinan
"CREATE TABLE IF NOT EXISTS kemiskinan (
id INT AUTO_INCREMENT PRIMARY KEY,
nama_kepala_keluarga VARCHAR(150) NOT NULL,
@@ -22,6 +64,8 @@ $bootstrapQueries = [
longitude DOUBLE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)",
// Masjid
"CREATE TABLE IF NOT EXISTS masjid (
id INT AUTO_INCREMENT PRIMARY KEY,
nama_masjid VARCHAR(150) NOT NULL,
@@ -35,6 +79,8 @@ $bootstrapQueries = [
];
foreach ($bootstrapQueries as $query) {
mysqli_query($conn, $query);
if (!mysqli_query($conn, $query)) {
die(mysqli_error($conn));
}
}
?>