Initial commit untuk UAS SIG

This commit is contained in:
z0rayy
2026-06-08 21:16:23 +07:00
commit c90ce9aedc
39 changed files with 7105 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
<?php
session_start();
header('Content-Type: application/json');
if (isset($_SESSION['user_id'])) {
echo json_encode(['status' => 'success', 'username' => $_SESSION['username']]);
} else {
http_response_code(401);
echo json_encode(['status' => 'error', 'message' => 'Unauthorized']);
}
+96
View File
@@ -0,0 +1,96 @@
<?php
// ============================================
// create.php — INSERT data SPBU
// ============================================
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');
// Handle pre-flight request
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
http_response_code(200);
exit;
}
// Hanya terima metode POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['success' => false, 'message' => 'Metode tidak diizinkan.']);
exit;
}
require_once __DIR__ . '/koneksi.php';
// Ambil body JSON dari request
$body = file_get_contents('php://input');
$data = json_decode($body, true);
if (!$data) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Body request tidak valid (bukan JSON).']);
exit;
}
// ---- Validasi field wajib ----
$required = ['nama', 'no_spbu', 'status', 'latitude', 'longitude'];
foreach ($required as $field) {
if (!isset($data[$field]) || trim((string)$data[$field]) === '') {
http_response_code(422);
echo json_encode(['success' => false, 'message' => "Field '$field' tidak boleh kosong."]);
exit;
}
}
$nama = trim($data['nama']);
$no_spbu = trim($data['no_spbu']);
$status = $data['status'];
$latitude = (float) $data['latitude'];
$longitude = (float) $data['longitude'];
// Validasi nilai enum status
if (!in_array($status, ['24jam', 'tidak'], true)) {
http_response_code(422);
echo json_encode(['success' => false, 'message' => "Nilai status tidak valid. Gunakan '24jam' atau 'tidak'."]);
exit;
}
// ---- Simpan ke database dengan prepared statement ----
$conn = getConnection();
$sql = "INSERT INTO spbu (nama, no_spbu, status, latitude, longitude) VALUES (?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Gagal menyiapkan query: ' . $conn->error]);
$conn->close();
exit;
}
// s = string, d = double/float
$stmt->bind_param('sssdd', $nama, $no_spbu, $status, $latitude, $longitude);
if ($stmt->execute()) {
$newId = $stmt->insert_id;
http_response_code(201);
echo json_encode([
'success' => true,
'message' => 'Data SPBU berhasil disimpan.',
'data' => [
'id' => $newId,
'nama' => $nama,
'no_spbu' => $no_spbu,
'status' => $status,
'latitude' => $latitude,
'longitude' => $longitude,
],
]);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Gagal menyimpan data: ' . $stmt->error]);
}
$stmt->close();
$conn->close();
+49
View File
@@ -0,0 +1,49 @@
<?php
// backend/create_ibadah.php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit; }
if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(405); echo json_encode(['success' => false, 'message' => 'Metode tidak diizinkan.']); exit; }
require_once __DIR__ . '/koneksi.php';
$body = file_get_contents('php://input');
$data = json_decode($body, true);
if (!$data) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'Body request tidak valid.']); exit; }
$required = ['nama', 'alamat', 'latitude', 'longitude'];
foreach ($required as $field) {
if (!isset($data[$field]) || trim((string)$data[$field]) === '') {
http_response_code(422);
echo json_encode(['success' => false, 'message' => "Field '$field' wajib diisi."]);
exit;
}
}
$nama = trim($data['nama']);
$alamat = trim($data['alamat']);
$latitude = (float) $data['latitude'];
$longitude = (float) $data['longitude'];
$conn = getConnection();
$sql = "INSERT INTO rumah_ibadah (nama, alamat, latitude, longitude) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) { http_response_code(500); echo json_encode(['success' => false, 'message' => 'Query error: ' . $conn->error]); $conn->close(); exit; }
$stmt->bind_param('ssdd', $nama, $alamat, $latitude, $longitude);
if ($stmt->execute()) {
http_response_code(201);
echo json_encode([
'success' => true,
'message' => 'Data Rumah Ibadah disimpan.',
'data' => [ 'id' => $stmt->insert_id, 'nama' => $nama, 'alamat' => $alamat, 'latitude' => $latitude, 'longitude' => $longitude ]
]);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Gagal menyimpan: ' . $stmt->error]);
}
$stmt->close();
$conn->close();
+91
View File
@@ -0,0 +1,91 @@
<?php
// ============================================
// create_jalan.php — INSERT data Jalan (Garis)
// ============================================
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
http_response_code(200);
exit;
}
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['success' => false, 'message' => 'Metode tidak diizinkan.']);
exit;
}
require_once __DIR__ . '/koneksi.php';
$body = file_get_contents('php://input');
$data = json_decode($body, true);
if (!$data) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Body request tidak valid.']);
exit;
}
$required = ['nama_jalan', 'status', 'panjang', 'geom'];
foreach ($required as $field) {
if (!isset($data[$field])) {
http_response_code(422);
echo json_encode(['success' => false, 'message' => "Field '$field' wajib diisi."]);
exit;
}
if (!is_array($data[$field]) && trim((string)$data[$field]) === '') {
http_response_code(422);
echo json_encode(['success' => false, 'message' => "Field '$field' tidak boleh kosong."]);
exit;
}
}
$nama_jalan = trim($data['nama_jalan']);
$status = $data['status'];
$panjang = (float) $data['panjang'];
$geom = is_array($data['geom']) ? json_encode($data['geom']) : $data['geom'];
if (!in_array($status, ['Nasional', 'Provinsi', 'Kabupaten'], true)) {
http_response_code(422);
echo json_encode(['success' => false, 'message' => "Status jalan tidak valid."]);
exit;
}
$conn = getConnection();
$sql = "INSERT INTO jalan (nama_jalan, status, panjang, geom) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Gagal menyiapkan query: ' . $conn->error]);
$conn->close();
exit;
}
$stmt->bind_param('ssds', $nama_jalan, $status, $panjang, $geom);
if ($stmt->execute()) {
$newId = $stmt->insert_id;
http_response_code(201);
echo json_encode([
'success' => true,
'message' => 'Data Jalan berhasil disimpan.',
'data' => [
'id' => $newId,
'nama_jalan' => $nama_jalan,
'status' => $status,
'panjang' => $panjang,
'geom' => json_decode($geom, true),
],
]);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Gagal menyimpan data: ' . $stmt->error]);
}
$stmt->close();
$conn->close();
+49
View File
@@ -0,0 +1,49 @@
<?php
// backend/create_miskin.php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit; }
if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(405); echo json_encode(['success' => false, 'message' => 'Metode tidak diizinkan.']); exit; }
require_once __DIR__ . '/koneksi.php';
$body = file_get_contents('php://input');
$data = json_decode($body, true);
if (!$data) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'Body request tidak valid.']); exit; }
$required = ['nama_kk', 'latitude', 'longitude'];
foreach ($required as $field) {
if (!isset($data[$field]) || trim((string)$data[$field]) === '') {
http_response_code(422);
echo json_encode(['success' => false, 'message' => "Field '$field' wajib diisi."]);
exit;
}
}
$nama_kk = trim($data['nama_kk']);
$keterangan= isset($data['keterangan']) ? trim($data['keterangan']) : '';
$latitude = (float) $data['latitude'];
$longitude = (float) $data['longitude'];
$conn = getConnection();
$sql = "INSERT INTO penduduk_miskin (nama_kk, keterangan, latitude, longitude) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) { http_response_code(500); echo json_encode(['success' => false, 'message' => 'Query error: ' . $conn->error]); $conn->close(); exit; }
$stmt->bind_param('ssdd', $nama_kk, $keterangan, $latitude, $longitude);
if ($stmt->execute()) {
http_response_code(201);
echo json_encode([
'success' => true,
'message' => 'Data Penduduk Miskin disimpan.',
'data' => [ 'id' => $stmt->insert_id, 'nama_kk' => $nama_kk, 'keterangan' => $keterangan, 'latitude' => $latitude, 'longitude' => $longitude ]
]);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Gagal menyimpan: ' . $stmt->error]);
}
$stmt->close();
$conn->close();
+91
View File
@@ -0,0 +1,91 @@
<?php
// ============================================
// create_parsil.php — INSERT data Parsil (Polygon)
// ============================================
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
http_response_code(200);
exit;
}
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['success' => false, 'message' => 'Metode tidak diizinkan.']);
exit;
}
require_once __DIR__ . '/koneksi.php';
$body = file_get_contents('php://input');
$data = json_decode($body, true);
if (!$data) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Body request tidak valid.']);
exit;
}
$required = ['nama_pemilik', 'status', 'luas', 'geom'];
foreach ($required as $field) {
if (!isset($data[$field])) {
http_response_code(422);
echo json_encode(['success' => false, 'message' => "Field '$field' wajib diisi."]);
exit;
}
if (!is_array($data[$field]) && trim((string)$data[$field]) === '') {
http_response_code(422);
echo json_encode(['success' => false, 'message' => "Field '$field' tidak boleh kosong."]);
exit;
}
}
$nama_pemilik = trim($data['nama_pemilik']);
$status = $data['status'];
$luas = (float) $data['luas'];
$geom = is_array($data['geom']) ? json_encode($data['geom']) : $data['geom'];
if (!in_array($status, ['SHM', 'HGB', 'HGU', 'HP'], true)) {
http_response_code(422);
echo json_encode(['success' => false, 'message' => "Status parsil tidak valid."]);
exit;
}
$conn = getConnection();
$sql = "INSERT INTO parsil (nama_pemilik, status, luas, geom) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Gagal menyiapkan query: ' . $conn->error]);
$conn->close();
exit;
}
$stmt->bind_param('ssds', $nama_pemilik, $status, $luas, $geom);
if ($stmt->execute()) {
$newId = $stmt->insert_id;
http_response_code(201);
echo json_encode([
'success' => true,
'message' => 'Data Parsil berhasil disimpan.',
'data' => [
'id' => $newId,
'nama_pemilik' => $nama_pemilik,
'status' => $status,
'luas' => $luas,
'geom' => json_decode($geom, true),
],
]);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Gagal menyimpan data: ' . $stmt->error]);
}
$stmt->close();
$conn->close();
+18
View File
@@ -0,0 +1,18 @@
<?php
require 'koneksi.php';
$c = getConnection();
$sql = "CREATE TABLE IF NOT EXISTS users (
id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;";
$c->query($sql);
$passwordHash = password_hash('admin123', PASSWORD_DEFAULT);
$insert = "INSERT IGNORE INTO users (username, password) VALUES ('admin', '$passwordHash')";
$c->query($insert);
echo 'Users table created and admin user inserted.';
+37
View File
@@ -0,0 +1,37 @@
<?php
// ============================================
// delete.php — Delete SPBU Data
// ============================================
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$conn = getConnection();
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'ID is required']);
exit;
}
$id = intval($data['id']);
$stmt = $conn->prepare('DELETE FROM spbu WHERE id = ?');
$stmt->bind_param('i', $id);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'SPBU deleted successfully']);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Failed to delete SPBU: ' . $conn->error]);
}
$stmt->close();
$conn->close();
?>
+37
View File
@@ -0,0 +1,37 @@
<?php
// ============================================
// delete_ibadah.php — Delete Rumah Ibadah Data
// ============================================
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$conn = getConnection();
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'ID is required']);
exit;
}
$id = intval($data['id']);
$stmt = $conn->prepare('DELETE FROM rumah_ibadah WHERE id = ?');
$stmt->bind_param('i', $id);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'Rumah Ibadah deleted successfully']);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Failed to delete Rumah Ibadah: ' . $conn->error]);
}
$stmt->close();
$conn->close();
?>
+37
View File
@@ -0,0 +1,37 @@
<?php
// ============================================
// delete_jalan.php — Delete Jalan Data
// ============================================
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$conn = getConnection();
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'ID is required']);
exit;
}
$id = intval($data['id']);
$stmt = $conn->prepare('DELETE FROM jalan WHERE id = ?');
$stmt->bind_param('i', $id);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'Jalan deleted successfully']);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Failed to delete Jalan: ' . $conn->error]);
}
$stmt->close();
$conn->close();
?>
+37
View File
@@ -0,0 +1,37 @@
<?php
// ============================================
// delete_miskin.php — Delete Penduduk Miskin Data
// ============================================
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$conn = getConnection();
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'ID is required']);
exit;
}
$id = intval($data['id']);
$stmt = $conn->prepare('DELETE FROM penduduk_miskin WHERE id = ?');
$stmt->bind_param('i', $id);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'Penduduk Miskin deleted successfully']);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Failed to delete Penduduk Miskin: ' . $conn->error]);
}
$stmt->close();
$conn->close();
?>
+37
View File
@@ -0,0 +1,37 @@
<?php
// ============================================
// delete_parsil.php — Delete Parsil Data
// ============================================
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$conn = getConnection();
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'ID is required']);
exit;
}
$id = intval($data['id']);
$stmt = $conn->prepare('DELETE FROM parsil WHERE id = ?');
$stmt->bind_param('i', $id);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'Parsil deleted successfully']);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Failed to delete Parsil: ' . $conn->error]);
}
$stmt->close();
$conn->close();
?>
+22
View File
@@ -0,0 +1,22 @@
<?php
// ============================================
// koneksi.php — Konfigurasi Database
// ============================================
define('DB_HOST', 'localhost');
define('DB_USER', 'root'); // Sesuaikan dengan user MySQL Anda
define('DB_PASS', ''); // Sesuaikan dengan password MySQL Anda
define('DB_NAME', 'webgis_spbu');
function getConnection(): mysqli {
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($conn->connect_error) {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Koneksi database gagal: ' . $conn->connect_error]);
exit;
}
$conn->set_charset('utf8mb4');
return $conn;
}
+41
View File
@@ -0,0 +1,41 @@
<?php
session_start();
header('Content-Type: application/json');
require 'koneksi.php';
$c = getConnection();
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['status' => 'error', 'message' => 'Invalid request method']);
exit;
}
$input = json_decode(file_get_contents('php://input'), true);
if (!$input && isset($_POST['username'])) {
$input = $_POST;
}
$username = $input['username'] ?? '';
$password = $input['password'] ?? '';
if (empty($username) || empty($password)) {
echo json_encode(['status' => 'error', 'message' => 'Username and password required']);
exit;
}
$stmt = $c->prepare("SELECT id, username, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($row = $result->fetch_assoc()) {
if (password_verify($password, $row['password'])) {
// Success
$_SESSION['user_id'] = $row['id'];
$_SESSION['username'] = $row['username'];
echo json_encode(['status' => 'success', 'message' => 'Login successful']);
exit;
}
}
echo json_encode(['status' => 'error', 'message' => 'Invalid username or password']);
+5
View File
@@ -0,0 +1,5 @@
<?php
session_start();
session_destroy();
header('Content-Type: application/json');
echo json_encode(['status' => 'success', 'message' => 'Logged out']);
+50
View File
@@ -0,0 +1,50 @@
<?php
// ============================================
// read.php — SELECT semua data SPBU
// ============================================
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
// Hanya terima metode GET
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
http_response_code(405);
echo json_encode(['success' => false, 'message' => 'Metode tidak diizinkan.']);
exit;
}
require_once __DIR__ . '/koneksi.php';
$conn = getConnection();
$sql = "SELECT id, nama, no_spbu, status, latitude, longitude FROM spbu ORDER BY created_at DESC";
$result = $conn->query($sql);
if (!$result) {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Query gagal: ' . $conn->error]);
$conn->close();
exit;
}
$spbuList = [];
while ($row = $result->fetch_assoc()) {
$spbuList[] = [
'id' => (int) $row['id'],
'nama' => $row['nama'],
'no_spbu' => $row['no_spbu'],
'status' => $row['status'],
'latitude' => (float) $row['latitude'],
'longitude' => (float) $row['longitude'],
];
}
echo json_encode([
'success' => true,
'count' => count($spbuList),
'data' => $spbuList,
]);
$result->free();
$conn->close();
+21
View File
@@ -0,0 +1,21 @@
<?php
// backend/read_ibadah.php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
require_once __DIR__ . '/koneksi.php';
$conn = getConnection();
$result = $conn->query("SELECT id, nama, alamat, latitude, longitude FROM rumah_ibadah ORDER BY id DESC");
$data = [];
if ($result && $result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$row['latitude'] = (float) $row['latitude'];
$row['longitude'] = (float) $row['longitude'];
$data[] = $row;
}
}
echo json_encode(['success' => true, 'count' => count($data), 'data' => $data]);
$conn->close();
+47
View File
@@ -0,0 +1,47 @@
<?php
// ============================================
// read_jalan.php — SELECT semua data Jalan
// ============================================
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
http_response_code(405);
echo json_encode(['success' => false, 'message' => 'Metode tidak diizinkan.']);
exit;
}
require_once __DIR__ . '/koneksi.php';
$conn = getConnection();
$sql = "SELECT id, nama_jalan, status, panjang, geom FROM jalan ORDER BY created_at DESC";
$result = $conn->query($sql);
if (!$result) {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Query gagal: ' . $conn->error]);
$conn->close();
exit;
}
$jalanList = [];
while ($row = $result->fetch_assoc()) {
$jalanList[] = [
'id' => (int) $row['id'],
'nama_jalan' => $row['nama_jalan'],
'status' => $row['status'],
'panjang' => (float) $row['panjang'],
'geom' => json_decode($row['geom'], true),
];
}
echo json_encode([
'success' => true,
'count' => count($jalanList),
'data' => $jalanList,
]);
$result->free();
$conn->close();
+21
View File
@@ -0,0 +1,21 @@
<?php
// backend/read_miskin.php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
require_once __DIR__ . '/koneksi.php';
$conn = getConnection();
$result = $conn->query("SELECT id, nama_kk, keterangan, latitude, longitude FROM penduduk_miskin ORDER BY id DESC");
$data = [];
if ($result && $result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$row['latitude'] = (float) $row['latitude'];
$row['longitude'] = (float) $row['longitude'];
$data[] = $row;
}
}
echo json_encode(['success' => true, 'count' => count($data), 'data' => $data]);
$conn->close();
+47
View File
@@ -0,0 +1,47 @@
<?php
// ============================================
// read_parsil.php — SELECT semua data Parsil
// ============================================
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
http_response_code(405);
echo json_encode(['success' => false, 'message' => 'Metode tidak diizinkan.']);
exit;
}
require_once __DIR__ . '/koneksi.php';
$conn = getConnection();
$sql = "SELECT id, nama_pemilik, status, luas, geom FROM parsil ORDER BY created_at DESC";
$result = $conn->query($sql);
if (!$result) {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Query gagal: ' . $conn->error]);
$conn->close();
exit;
}
$parsilList = [];
while ($row = $result->fetch_assoc()) {
$parsilList[] = [
'id' => (int) $row['id'],
'nama_pemilik' => $row['nama_pemilik'],
'status' => $row['status'],
'luas' => (float) $row['luas'],
'geom' => json_decode($row['geom'], true),
];
}
echo json_encode([
'success' => true,
'count' => count($parsilList),
'data' => $parsilList,
]);
$result->free();
$conn->close();
+44
View File
@@ -0,0 +1,44 @@
<?php
header('Content-Type: application/json');
require 'koneksi.php';
$c = getConnection();
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['status' => 'error', 'message' => 'Invalid request method']);
exit;
}
$input = json_decode(file_get_contents('php://input'), true);
if (!$input && isset($_POST['username'])) {
$input = $_POST;
}
$username = $input['username'] ?? '';
$password = $input['password'] ?? '';
if (empty($username) || empty($password)) {
echo json_encode(['status' => 'error', 'message' => 'Username and password required']);
exit;
}
// Check if username already exists
$stmt = $c->prepare("SELECT id FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($result->fetch_assoc()) {
echo json_encode(['status' => 'error', 'message' => 'Username sudah digunakan']);
exit;
}
$passwordHash = password_hash($password, PASSWORD_DEFAULT);
$stmt = $c->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->bind_param("ss", $username, $passwordHash);
if ($stmt->execute()) {
echo json_encode(['status' => 'success', 'message' => 'Registrasi berhasil, silakan login']);
} else {
echo json_encode(['status' => 'error', 'message' => 'Gagal mendaftar akun']);
}
+56
View File
@@ -0,0 +1,56 @@
<?php
// ============================================
// update.php — Update SPBU Data
// ============================================
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$conn = getConnection();
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'ID is required']);
exit;
}
$id = intval($data['id']);
$nama = $data['nama'] ?? null;
$no_spbu = $data['no_spbu'] ?? null;
$status = $data['status'] ?? null;
$latitude = $data['latitude'] ?? null;
$longitude = $data['longitude'] ?? null;
$errors = [];
if (empty($nama)) $errors[] = 'Nama is required';
if (empty($no_spbu)) $errors[] = 'No SPBU is required';
if (empty($status)) $errors[] = 'Status is required';
if ($latitude === null) $errors[] = 'Latitude is required';
if ($longitude === null) $errors[] = 'Longitude is required';
if (!empty($errors)) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => implode(', ', $errors)]);
exit;
}
$stmt = $conn->prepare('UPDATE spbu SET nama = ?, no_spbu = ?, status = ?, latitude = ?, longitude = ? WHERE id = ?');
$stmt->bind_param('sssddi', $nama, $no_spbu, $status, $latitude, $longitude, $id);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'SPBU updated successfully', 'data' => ['id' => $id]]);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Failed to update SPBU: ' . $conn->error]);
}
$stmt->close();
$conn->close();
?>
+54
View File
@@ -0,0 +1,54 @@
<?php
// ============================================
// update_ibadah.php — Update Rumah Ibadah Data
// ============================================
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$conn = getConnection();
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'ID is required']);
exit;
}
$id = intval($data['id']);
$nama = $data['nama'] ?? null;
$alamat = $data['alamat'] ?? null;
$latitude = $data['latitude'] ?? null;
$longitude = $data['longitude'] ?? null;
$errors = [];
if (empty($nama)) $errors[] = 'Nama is required';
if (empty($alamat)) $errors[] = 'Alamat is required';
if ($latitude === null) $errors[] = 'Latitude is required';
if ($longitude === null) $errors[] = 'Longitude is required';
if (!empty($errors)) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => implode(', ', $errors)]);
exit;
}
$stmt = $conn->prepare('UPDATE rumah_ibadah SET nama = ?, alamat = ?, latitude = ?, longitude = ? WHERE id = ?');
$stmt->bind_param('ssddi', $nama, $alamat, $latitude, $longitude, $id);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'Rumah Ibadah updated successfully', 'data' => ['id' => $id]]);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Failed to update Rumah Ibadah: ' . $conn->error]);
}
$stmt->close();
$conn->close();
?>
+54
View File
@@ -0,0 +1,54 @@
<?php
// ============================================
// update_jalan.php — Update Jalan Data
// ============================================
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$conn = getConnection();
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'ID is required']);
exit;
}
$id = intval($data['id']);
$nama_jalan = $data['nama_jalan'] ?? null;
$status = $data['status'] ?? null;
$panjang = $data['panjang'] ?? null;
$geom = $data['geom'] ?? null;
$errors = [];
if (empty($nama_jalan)) $errors[] = 'Nama Jalan is required';
if (empty($status)) $errors[] = 'Status is required';
if ($panjang === null) $errors[] = 'Panjang is required';
if (empty($geom)) $errors[] = 'Geometry is required';
if (!empty($errors)) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => implode(', ', $errors)]);
exit;
}
$stmt = $conn->prepare('UPDATE jalan SET nama_jalan = ?, status = ?, panjang = ?, geom = ? WHERE id = ?');
$stmt->bind_param('ssdsi', $nama_jalan, $status, $panjang, $geom, $id);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'Jalan updated successfully', 'data' => ['id' => $id]]);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Failed to update Jalan: ' . $conn->error]);
}
$stmt->close();
$conn->close();
?>
+53
View File
@@ -0,0 +1,53 @@
<?php
// ============================================
// update_miskin.php — Update Penduduk Miskin Data
// ============================================
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$conn = getConnection();
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'ID is required']);
exit;
}
$id = intval($data['id']);
$nama_kk = $data['nama_kk'] ?? null;
$keterangan = $data['keterangan'] ?? null;
$latitude = $data['latitude'] ?? null;
$longitude = $data['longitude'] ?? null;
$errors = [];
if (empty($nama_kk)) $errors[] = 'Nama KK is required';
if ($latitude === null) $errors[] = 'Latitude is required';
if ($longitude === null) $errors[] = 'Longitude is required';
if (!empty($errors)) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => implode(', ', $errors)]);
exit;
}
$stmt = $conn->prepare('UPDATE penduduk_miskin SET nama_kk = ?, keterangan = ?, latitude = ?, longitude = ? WHERE id = ?');
$stmt->bind_param('ssddi', $nama_kk, $keterangan, $latitude, $longitude, $id);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'Penduduk Miskin updated successfully', 'data' => ['id' => $id]]);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Failed to update Penduduk Miskin: ' . $conn->error]);
}
$stmt->close();
$conn->close();
?>
+54
View File
@@ -0,0 +1,54 @@
<?php
// ============================================
// update_parsil.php — Update Parsil Data
// ============================================
require_once 'koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$conn = getConnection();
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'ID is required']);
exit;
}
$id = intval($data['id']);
$nama_pemilik = $data['nama_pemilik'] ?? null;
$status = $data['status'] ?? null;
$luas = $data['luas'] ?? null;
$geom = $data['geom'] ?? null;
$errors = [];
if (empty($nama_pemilik)) $errors[] = 'Nama Pemilik is required';
if (empty($status)) $errors[] = 'Status is required';
if ($luas === null) $errors[] = 'Luas is required';
if (empty($geom)) $errors[] = 'Geometry is required';
if (!empty($errors)) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => implode(', ', $errors)]);
exit;
}
$stmt = $conn->prepare('UPDATE parsil SET nama_pemilik = ?, status = ?, luas = ?, geom = ? WHERE id = ?');
$stmt->bind_param('ssdsi', $nama_pemilik, $status, $luas, $geom, $id);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'Parsil updated successfully', 'data' => ['id' => $id]]);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Failed to update Parsil: ' . $conn->error]);
}
$stmt->close();
$conn->close();
?>