6215b4367a
Sistem WebGIS analisis sebaran penduduk miskin dan jangkauan rumah ibadah. Fitur: peta interaktif Leaflet.js, CRUD rumah ibadah & penduduk miskin, auto-kategorisasi haversine, heatmap, export PDF/CSV, dashboard analitik, manajemen pengguna (superadmin/admin), login sistem. Teknologi: PHP, MySQL, Leaflet.js, OpenStreetMap, Nominatim Geocoding, mPDF. Catatan: jalankan `composer install` di folder uas/ untuk install dependencies. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
41 lines
1.1 KiB
PHP
41 lines
1.1 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
include '../koneksi.php';
|
|
include '../auth.php';
|
|
requireLogin();
|
|
|
|
// Rumah Ibadah
|
|
$ibadah = mysqli_fetch_all(
|
|
mysqli_query($conn, "SELECT * FROM rumah_ibadah ORDER BY nama"),
|
|
MYSQLI_ASSOC
|
|
);
|
|
|
|
// Penduduk miskin with anggota count
|
|
$penduduk_raw = mysqli_fetch_all(
|
|
mysqli_query($conn,
|
|
"SELECT p.*, COUNT(a.id) as jumlah_anggota_db
|
|
FROM penduduk_miskin p
|
|
LEFT JOIN anggota_keluarga a ON a.penduduk_id = p.id
|
|
GROUP BY p.id
|
|
ORDER BY p.kk_nama"),
|
|
MYSQLI_ASSOC
|
|
);
|
|
|
|
// Attach anggota keluarga to each penduduk
|
|
$penduduk = [];
|
|
foreach ($penduduk_raw as $p) {
|
|
$pid = (int)$p['id'];
|
|
$anggota = mysqli_fetch_all(
|
|
mysqli_query($conn, "SELECT * FROM anggota_keluarga WHERE penduduk_id = $pid ORDER BY id"),
|
|
MYSQLI_ASSOC
|
|
);
|
|
// Use jumlah_anggota from table if set, else count from anggota table
|
|
if (empty($p['jumlah_anggota'])) {
|
|
$p['jumlah_anggota'] = count($anggota) ?: 1;
|
|
}
|
|
$p['anggota'] = $anggota;
|
|
$penduduk[] = $p;
|
|
}
|
|
|
|
echo json_encode(['ibadah' => $ibadah, 'penduduk' => $penduduk]);
|