Upload files to "Tugas2"
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
// koneksi.php
|
||||
define('DB_HOST', 'localhost');
|
||||
define('DB_USER', 'root');
|
||||
define('DB_PASS', ''); // XAMPP default kosong
|
||||
define('DB_NAME', 'webgis_sigma');
|
||||
|
||||
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||
$conn->set_charset('utf8mb4');
|
||||
|
||||
if ($conn->connect_error) {
|
||||
http_response_code(500);
|
||||
die(json_encode(['status'=>'error','message'=>'Koneksi gagal: '.$conn->connect_error]));
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
<?php
|
||||
// proses.php — CRUD handler untuk Jalan, Parsil, Point
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
include 'koneksi.php';
|
||||
|
||||
function bersih($s) { return htmlspecialchars(strip_tags(trim($s))); }
|
||||
|
||||
$aksi = $_POST['aksi'] ?? $_GET['aksi'] ?? '';
|
||||
|
||||
// ══════════════════════════════════════════════
|
||||
// READ — ambil semua data per layer
|
||||
// ══════════════════════════════════════════════
|
||||
if ($aksi === 'baca') {
|
||||
$layer = $_GET['layer'] ?? 'jalan';
|
||||
$tabel = ['jalan'=>'data_jalan','parsil'=>'data_parsil','point'=>'data_point'];
|
||||
if (!isset($tabel[$layer])) { echo json_encode(['status'=>'error','message'=>'Layer tidak valid']); exit; }
|
||||
|
||||
$res = $conn->query("SELECT * FROM {$tabel[$layer]} ORDER BY created_at DESC");
|
||||
$data = [];
|
||||
while ($row = $res->fetch_assoc()) $data[] = $row;
|
||||
echo json_encode(['status'=>'ok','data'=>$data]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// ══════════════════════════════════════════════
|
||||
// READ SINGLE
|
||||
// ══════════════════════════════════════════════
|
||||
if ($aksi === 'detail') {
|
||||
$layer = $_GET['layer'] ?? '';
|
||||
$id = intval($_GET['id'] ?? 0);
|
||||
$tabel = ['jalan'=>'data_jalan','parsil'=>'data_parsil','point'=>'data_point'];
|
||||
if (!isset($tabel[$layer])) { echo json_encode(['status'=>'error','message'=>'Layer tidak valid']); exit; }
|
||||
|
||||
$stmt = $conn->prepare("SELECT * FROM {$tabel[$layer]} WHERE id=?");
|
||||
$stmt->bind_param('i', $id);
|
||||
$stmt->execute();
|
||||
$row = $stmt->get_result()->fetch_assoc();
|
||||
echo $row ? json_encode(['status'=>'ok','data'=>$row]) : json_encode(['status'=>'error','message'=>'Tidak ditemukan']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// ══════════════════════════════════════════════
|
||||
// CREATE — simpan data baru
|
||||
// ══════════════════════════════════════════════
|
||||
if ($aksi === 'simpan') {
|
||||
$layer = $_POST['layer'] ?? '';
|
||||
$geojson = $_POST['geojson'] ?? '';
|
||||
|
||||
// Validasi GeoJSON
|
||||
if (!$geojson || json_decode($geojson) === null) {
|
||||
echo json_encode(['status'=>'error','message'=>'GeoJSON tidak valid']); exit;
|
||||
}
|
||||
|
||||
if ($layer === 'jalan') {
|
||||
$nama = bersih($_POST['nama'] ?? '');
|
||||
$status = bersih($_POST['status'] ?? '');
|
||||
$panjang = floatval($_POST['panjang'] ?? 0);
|
||||
$valid = ['Jalan Nasional','Jalan Provinsi','Jalan Kabupaten'];
|
||||
if (!$nama || !in_array($status, $valid)) { echo json_encode(['status'=>'error','message'=>'Data tidak lengkap']); exit; }
|
||||
|
||||
$stmt = $conn->prepare("INSERT INTO data_jalan (nama_jalan,status_jalan,panjang_meter,geojson) VALUES (?,?,?,?)");
|
||||
$stmt->bind_param('ssds', $nama, $status, $panjang, $geojson);
|
||||
|
||||
} elseif ($layer === 'parsil') {
|
||||
$nama = bersih($_POST['nama'] ?? '');
|
||||
$status = bersih($_POST['status'] ?? '');
|
||||
$luas = floatval($_POST['luas'] ?? 0);
|
||||
$valid = ['SHM','HGB','HGU','HP'];
|
||||
if (!$nama || !in_array($status, $valid)) { echo json_encode(['status'=>'error','message'=>'Data tidak lengkap']); exit; }
|
||||
|
||||
$stmt = $conn->prepare("INSERT INTO data_parsil (nama_parsil,status_sertifikat,luas_m2,geojson) VALUES (?,?,?,?)");
|
||||
$stmt->bind_param('ssds', $nama, $status, $luas, $geojson);
|
||||
|
||||
} elseif ($layer === 'point') {
|
||||
$nama = bersih($_POST['nama'] ?? '');
|
||||
$wa = bersih($_POST['wa'] ?? '');
|
||||
$jam = ($_POST['jam'] ?? 'Tidak') === 'Ya' ? 'Ya' : 'Tidak';
|
||||
if (!$nama) { echo json_encode(['status'=>'error','message'=>'Nama wajib diisi']); exit; }
|
||||
|
||||
$stmt = $conn->prepare("INSERT INTO data_point (nama_objek,no_wa,buka_24jam,geojson) VALUES (?,?,?,?)");
|
||||
$stmt->bind_param('ssss', $nama, $wa, $jam, $geojson);
|
||||
|
||||
} else {
|
||||
echo json_encode(['status'=>'error','message'=>'Layer tidak dikenali']); exit;
|
||||
}
|
||||
|
||||
if ($stmt->execute()) {
|
||||
echo json_encode(['status'=>'ok','id'=>$stmt->insert_id,'message'=>'Data berhasil disimpan!']);
|
||||
} else {
|
||||
echo json_encode(['status'=>'error','message'=>'Gagal: '.$stmt->error]);
|
||||
}
|
||||
$stmt->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
// ══════════════════════════════════════════════
|
||||
// UPDATE — perbarui atribut & koordinat
|
||||
// ══════════════════════════════════════════════
|
||||
if ($aksi === 'update') {
|
||||
$layer = $_POST['layer'] ?? '';
|
||||
$id = intval($_POST['id'] ?? 0);
|
||||
$geojson = $_POST['geojson'] ?? null;
|
||||
|
||||
if (!$id) { echo json_encode(['status'=>'error','message'=>'ID tidak valid']); exit; }
|
||||
|
||||
if ($layer === 'jalan') {
|
||||
$nama = bersih($_POST['nama'] ?? '');
|
||||
$status = bersih($_POST['status'] ?? '');
|
||||
$panjang = floatval($_POST['panjang'] ?? 0);
|
||||
$valid = ['Jalan Nasional','Jalan Provinsi','Jalan Kabupaten'];
|
||||
if (!$nama || !in_array($status, $valid)) { echo json_encode(['status'=>'error','message'=>'Data tidak lengkap']); exit; }
|
||||
|
||||
if ($geojson && json_decode($geojson)) {
|
||||
$stmt = $conn->prepare("UPDATE data_jalan SET nama_jalan=?,status_jalan=?,panjang_meter=?,geojson=? WHERE id=?");
|
||||
$stmt->bind_param('ssdsi', $nama, $status, $panjang, $geojson, $id);
|
||||
} else {
|
||||
$stmt = $conn->prepare("UPDATE data_jalan SET nama_jalan=?,status_jalan=?,panjang_meter=? WHERE id=?");
|
||||
$stmt->bind_param('ssdi', $nama, $status, $panjang, $id);
|
||||
}
|
||||
|
||||
} elseif ($layer === 'parsil') {
|
||||
$nama = bersih($_POST['nama'] ?? '');
|
||||
$status = bersih($_POST['status'] ?? '');
|
||||
$luas = floatval($_POST['luas'] ?? 0);
|
||||
$valid = ['SHM','HGB','HGU','HP'];
|
||||
if (!$nama || !in_array($status, $valid)) { echo json_encode(['status'=>'error','message'=>'Data tidak lengkap']); exit; }
|
||||
|
||||
if ($geojson && json_decode($geojson)) {
|
||||
$stmt = $conn->prepare("UPDATE data_parsil SET nama_parsil=?,status_sertifikat=?,luas_m2=?,geojson=? WHERE id=?");
|
||||
$stmt->bind_param('ssdsi', $nama, $status, $luas, $geojson, $id);
|
||||
} else {
|
||||
$stmt = $conn->prepare("UPDATE data_parsil SET nama_parsil=?,status_sertifikat=?,luas_m2=? WHERE id=?");
|
||||
$stmt->bind_param('ssdi', $nama, $status, $luas, $id);
|
||||
}
|
||||
|
||||
} elseif ($layer === 'point') {
|
||||
$nama = bersih($_POST['nama'] ?? '');
|
||||
$wa = bersih($_POST['wa'] ?? '');
|
||||
$jam = ($_POST['jam'] ?? 'Tidak') === 'Ya' ? 'Ya' : 'Tidak';
|
||||
if (!$nama) { echo json_encode(['status'=>'error','message'=>'Nama wajib diisi']); exit; }
|
||||
|
||||
if ($geojson && json_decode($geojson)) {
|
||||
$stmt = $conn->prepare("UPDATE data_point SET nama_objek=?,no_wa=?,buka_24jam=?,geojson=? WHERE id=?");
|
||||
$stmt->bind_param('ssssi', $nama, $wa, $jam, $geojson, $id);
|
||||
} else {
|
||||
$stmt = $conn->prepare("UPDATE data_point SET nama_objek=?,no_wa=?,buka_24jam=? WHERE id=?");
|
||||
$stmt->bind_param('sssi', $nama, $wa, $jam, $id);
|
||||
}
|
||||
|
||||
} else {
|
||||
echo json_encode(['status'=>'error','message'=>'Layer tidak dikenali']); exit;
|
||||
}
|
||||
|
||||
if ($stmt->execute()) {
|
||||
echo json_encode(['status'=>'ok','message'=>'Data berhasil diperbarui!']);
|
||||
} else {
|
||||
echo json_encode(['status'=>'error','message'=>'Gagal: '.$stmt->error]);
|
||||
}
|
||||
$stmt->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
// ══════════════════════════════════════════════
|
||||
// DELETE
|
||||
// ══════════════════════════════════════════════
|
||||
if ($aksi === 'hapus') {
|
||||
$layer = $_POST['layer'] ?? $_GET['layer'] ?? '';
|
||||
$id = intval($_POST['id'] ?? $_GET['id'] ?? 0);
|
||||
$tabel = ['jalan'=>'data_jalan','parsil'=>'data_parsil','point'=>'data_point'];
|
||||
|
||||
if (!$id || !isset($tabel[$layer])) { echo json_encode(['status'=>'error','message'=>'Parameter tidak valid']); exit; }
|
||||
|
||||
$stmt = $conn->prepare("DELETE FROM {$tabel[$layer]} WHERE id=?");
|
||||
$stmt->bind_param('i', $id);
|
||||
echo $stmt->execute()
|
||||
? json_encode(['status'=>'ok','message'=>'Data berhasil dihapus!'])
|
||||
: json_encode(['status'=>'error','message'=>'Gagal: '.$stmt->error]);
|
||||
$stmt->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
echo json_encode(['status'=>'error','message'=>"Aksi '$aksi' tidak dikenali."]);
|
||||
Reference in New Issue
Block a user