tampilkan data fix database

This commit is contained in:
naukyy
2026-06-13 00:58:44 +07:00
parent 1c96173d55
commit ed184225a5
17 changed files with 71 additions and 48 deletions
+2 -2
View File
@@ -1,10 +1,10 @@
<?php <?php
/** /**
* jalan.php * jalan.php
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Jalan (LineString). * Tanggung Jawab: Menangani operasi CRUD untuk entitas Jalan (LineString).
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
+3 -2
View File
@@ -1,10 +1,10 @@
<?php <?php
/** /**
* kavling.php * kavling.php
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Kavling (Polygon). * Tanggung Jawab: Menangani operasi CRUD untuk entitas Kavling (Polygon).
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
@@ -21,6 +21,7 @@ switch ($method) {
'geometry' => json_decode($row['geojson']), 'geometry' => json_decode($row['geojson']),
'properties' => [ 'properties' => [
'id' => $row['id'], 'id' => $row['id'],
'nama' => $row['nama_pemilik'],
'nama_pemilik' => $row['nama_pemilik'], 'nama_pemilik' => $row['nama_pemilik'],
'luas' => $row['luas'], 'luas' => $row['luas'],
'created_at' => $row['created_at'] 'created_at' => $row['created_at']
+2 -2
View File
@@ -1,5 +1,5 @@
<?php <?php
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
+2 -2
View File
@@ -1,10 +1,10 @@
<?php <?php
/** /**
* jalan.php * jalan.php
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Jalan (LineString). * Tanggung Jawab: Menangani operasi CRUD untuk entitas Jalan (LineString).
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
+3 -2
View File
@@ -1,10 +1,10 @@
<?php <?php
/** /**
* kavling.php * kavling.php
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Kavling (Polygon). * Tanggung Jawab: Menangani operasi CRUD untuk entitas Kavling (Polygon).
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
@@ -21,6 +21,7 @@ switch ($method) {
'geometry' => json_decode($row['geojson']), 'geometry' => json_decode($row['geojson']),
'properties' => [ 'properties' => [
'id' => $row['id'], 'id' => $row['id'],
'nama' => $row['nama_pemilik'],
'nama_pemilik' => $row['nama_pemilik'], 'nama_pemilik' => $row['nama_pemilik'],
'luas' => $row['luas'], 'luas' => $row['luas'],
'created_at' => $row['created_at'] 'created_at' => $row['created_at']
+19 -3
View File
@@ -1,10 +1,10 @@
<?php <?php
/** /**
* rumah_ibadah.php * rumah_ibadah.php
* Tanggung Jawab: Operasi CRUD Rumah Ibadah + Endpoint analisis jangkauan Haversine. * Tanggung Jawab: Operasi CRUD Rumah Ibadah + Endpoint analisis jangkauan Haversine.
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
require_once '../utils/geo_helper.php'; require_once '../utils/geo_helper.php';
@@ -31,7 +31,23 @@ switch ($method) {
// Panggil geo_helper untuk mendapatkan warga miskin // Panggil geo_helper untuk mendapatkan warga miskin
$warga = GeoHelper::getWargaDalamRadius($pdo, $pusatLat, $pusatLon, $radius); $warga = GeoHelper::getWargaDalamRadius($pdo, $pusatLat, $pusatLon, $radius);
sendSuccess($warga, 'Data jangkauan berhasil dihitung');
// Format ke GeoJSON FeatureCollection sesuai kebutuhan frontend
$features = [];
foreach ($warga as $w) {
$features[] = [
'type' => 'Feature',
'geometry' => $w['geometry'],
'properties' => [
'id' => $w['id'],
'nama' => $w['nama_kk'],
'penghasilan' => $w['penghasilan'],
'jumlah_tanggungan' => $w['jumlah_tanggungan'],
'jarak_km' => $w['jarak_km']
]
];
}
sendSuccess(['type' => 'FeatureCollection', 'features' => $features], 'Data jangkauan berhasil dihitung');
} else { } else {
// GET Semua Rumah Ibadah (GeoJSON) // GET Semua Rumah Ibadah (GeoJSON)
+2 -2
View File
@@ -1,5 +1,5 @@
<?php <?php
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
+2 -2
View File
@@ -1,10 +1,10 @@
<?php <?php
/** /**
* warga_miskin.php * warga_miskin.php
* Tanggung Jawab: Operasi CRUD untuk Warga Miskin. * Tanggung Jawab: Operasi CRUD untuk Warga Miskin.
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
+1 -1
View File
@@ -42,7 +42,7 @@ export const rumahIbadahService = createService('02/backend/api/rumah_ibadah.php
export const wargaMiskinService = createService('02/backend/api/warga_miskin.php'); export const wargaMiskinService = createService('02/backend/api/warga_miskin.php');
export const haversineService = { export const haversineService = {
getDalamRadius: async (id, radius) => { getDalamRadius: async (id, radius) => {
const res = await fetch(`${BASE_URL}/02/backend/api/haversine.php?rumah_ibadah_id=${id}&radius_km=${radius}`); const res = await fetch(`${BASE_URL}/02/backend/api/rumah_ibadah.php?action=jangkauan&id=${id}&radius=${radius}`);
const json = await res.json(); const json = await res.json();
return json.data; return json.data;
} }
+2 -2
View File
@@ -1,10 +1,10 @@
<?php <?php
/** /**
* jalan.php * jalan.php
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Jalan (LineString). * Tanggung Jawab: Menangani operasi CRUD untuk entitas Jalan (LineString).
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
+3 -2
View File
@@ -1,10 +1,10 @@
<?php <?php
/** /**
* kavling.php * kavling.php
* Tanggung Jawab: Menangani operasi CRUD untuk entitas Kavling (Polygon). * Tanggung Jawab: Menangani operasi CRUD untuk entitas Kavling (Polygon).
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
@@ -21,6 +21,7 @@ switch ($method) {
'geometry' => json_decode($row['geojson']), 'geometry' => json_decode($row['geojson']),
'properties' => [ 'properties' => [
'id' => $row['id'], 'id' => $row['id'],
'nama' => $row['nama_pemilik'],
'nama_pemilik' => $row['nama_pemilik'], 'nama_pemilik' => $row['nama_pemilik'],
'luas' => $row['luas'], 'luas' => $row['luas'],
'created_at' => $row['created_at'] 'created_at' => $row['created_at']
+19 -3
View File
@@ -1,10 +1,10 @@
<?php <?php
/** /**
* rumah_ibadah.php * rumah_ibadah.php
* Tanggung Jawab: Operasi CRUD Rumah Ibadah + Endpoint analisis jangkauan Haversine. * Tanggung Jawab: Operasi CRUD Rumah Ibadah + Endpoint analisis jangkauan Haversine.
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
require_once '../utils/geo_helper.php'; require_once '../utils/geo_helper.php';
@@ -31,7 +31,23 @@ switch ($method) {
// Panggil geo_helper untuk mendapatkan warga miskin // Panggil geo_helper untuk mendapatkan warga miskin
$warga = GeoHelper::getWargaDalamRadius($pdo, $pusatLat, $pusatLon, $radius); $warga = GeoHelper::getWargaDalamRadius($pdo, $pusatLat, $pusatLon, $radius);
sendSuccess($warga, 'Data jangkauan berhasil dihitung');
// Format ke GeoJSON FeatureCollection sesuai kebutuhan frontend
$features = [];
foreach ($warga as $w) {
$features[] = [
'type' => 'Feature',
'geometry' => $w['geometry'],
'properties' => [
'id' => $w['id'],
'nama' => $w['nama_kk'],
'penghasilan' => $w['penghasilan'],
'jumlah_tanggungan' => $w['jumlah_tanggungan'],
'jarak_km' => $w['jarak_km']
]
];
}
sendSuccess(['type' => 'FeatureCollection', 'features' => $features], 'Data jangkauan berhasil dihitung');
} else { } else {
// GET Semua Rumah Ibadah (GeoJSON) // GET Semua Rumah Ibadah (GeoJSON)
+2 -2
View File
@@ -1,5 +1,5 @@
<?php <?php
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
+5 -17
View File
@@ -1,11 +1,11 @@
<?php <?php
/** /**
* statistik.php * statistik.php
* Tanggung Jawab: Menyediakan data analisis spasial menggunakan Point in Polygon (ST_Contains). * Tanggung Jawab: Menyediakan data analisis spasial menggunakan Point in Polygon (ST_Contains).
* Menghitung kepadatan warga miskin dalam setiap kavling. * Menghitung kepadatan warga miskin dalam setiap kavling.
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
@@ -31,37 +31,25 @@ if ($method === 'GET') {
$stmt = $pdo->query($sql); $stmt = $pdo->query($sql);
$features = []; $features = [];
$total_warga = 0;
while ($row = $stmt->fetch()) { while ($row = $stmt->fetch()) {
$jumlah = (int) $row['jumlah_warga']; $jumlah = (int) $row['jumlah_warga'];
$total_warga += $jumlah;
$features[] = [ $features[] = [
'type' => 'Feature', 'type' => 'Feature',
'geometry' => json_decode($row['geojson']), 'geometry' => json_decode($row['geojson']),
'properties' => [ 'properties' => [
'id' => $row['id'], 'id' => $row['id'],
'nama' => $row['nama_pemilik'],
'nama_pemilik' => $row['nama_pemilik'], 'nama_pemilik' => $row['nama_pemilik'],
'luas' => $row['luas'], 'luas' => $row['luas'],
'jumlah_warga_miskin' => $jumlah,
'jumlah_warga' => $jumlah, 'jumlah_warga' => $jumlah,
'total_tanggungan' => (int) $row['total_tanggungan'] 'total_tanggungan' => (int) $row['total_tanggungan']
] ]
]; ];
} }
$response = [ sendSuccess(['type' => 'FeatureCollection', 'features' => $features], 'Data statistik spasial berhasil dihitung');
'statistik' => [
'total_kavling' => count($features),
'total_warga_terpetakan' => $total_warga
],
'geojson' => [
'type' => 'FeatureCollection',
'features' => $features
]
];
sendSuccess($response, 'Data statistik spasial berhasil dihitung');
} catch (PDOException $e) { } catch (PDOException $e) {
sendError('Gagal menghitung statistik spasial: ' . $e->getMessage(), 500); sendError('Gagal menghitung statistik spasial: ' . $e->getMessage(), 500);
} }
+2 -2
View File
@@ -1,10 +1,10 @@
<?php <?php
/** /**
* warga_miskin.php * warga_miskin.php
* Tanggung Jawab: Operasi CRUD untuk Warga Miskin. * Tanggung Jawab: Operasi CRUD untuk Warga Miskin.
*/ */
require_once '../core_config/database.php'; require_once __DIR__ . '/../../../webgis_app/core_config/database.php';
require_once '../utils/response_helper.php'; require_once '../utils/response_helper.php';
$pdo = Database::getConnection(); $pdo = Database::getConnection();
+1 -1
View File
@@ -42,7 +42,7 @@ export const rumahIbadahService = createService('02/backend/api/rumah_ibadah.php
export const wargaMiskinService = createService('02/backend/api/warga_miskin.php'); export const wargaMiskinService = createService('02/backend/api/warga_miskin.php');
export const haversineService = { export const haversineService = {
getDalamRadius: async (id, radius) => { getDalamRadius: async (id, radius) => {
const res = await fetch(`${BASE_URL}/02/backend/api/haversine.php?rumah_ibadah_id=${id}&radius_km=${radius}`); const res = await fetch(`${BASE_URL}/02/backend/api/rumah_ibadah.php?action=jangkauan&id=${id}&radius=${radius}`);
const json = await res.json(); const json = await res.json();
return json.data; return json.data;
} }
+1 -1
View File
@@ -1,4 +1,4 @@
<?php <?php
/** /**
* Singleton PDO connection. * Singleton PDO connection.
* *