From 61b18793773e9fdb618b5a67da31d733c3703e52 Mon Sep 17 00:00:00 2001 From: Johanes Satria Christio Date: Sun, 14 Jun 2026 20:36:28 +0700 Subject: [PATCH] Fix: remove MySQL dependency, use API fetch for all pages --- Projek Jalan/index.php | 103 +----------------------- Projek Tanah/manajemen_parsil/index.php | 90 ++------------------- 2 files changed, 8 insertions(+), 185 deletions(-) diff --git a/Projek Jalan/index.php b/Projek Jalan/index.php index 6d2bf9e..ded3f44 100644 --- a/Projek Jalan/index.php +++ b/Projek Jalan/index.php @@ -1,102 +1,5 @@ PDO::ERRMODE_EXCEPTION, - PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, - PDO::ATTR_EMULATE_PREPARES => false, -]; - -$errors = []; -$success = ''; -$input = [ - 'nama_jalan' => '', - 'status_jalan' => '', - 'panjang_meter' => '', - 'koordinat_json' => '', -]; - -try { - $pdo = new PDO($dsn, $dbUser, $dbPass, $options); - - // Pastikan tabel t_jalan ada. - $pdo->exec("CREATE TABLE IF NOT EXISTS t_jalan ( - id INT AUTO_INCREMENT PRIMARY KEY, - nama_jalan VARCHAR(255) NOT NULL, - status_jalan ENUM('nasional','provinsi','kabupaten') NOT NULL, - panjang_meter DECIMAL(10,2) NOT NULL, - koordinat_json LONGTEXT NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP - ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); - - if ($_SERVER['REQUEST_METHOD'] === 'POST') { - $input['nama_jalan'] = trim($_POST['nama_jalan'] ?? ''); - $input['status_jalan'] = $_POST['status_jalan'] ?? ''; - $input['panjang_meter'] = $_POST['panjang_meter'] ?? ''; - $input['koordinat_json'] = $_POST['koordinat_json'] ?? ''; - - if ($input['nama_jalan'] === '') { - $errors[] = 'Nama Jalan harus diisi.'; - } - if (!in_array($input['status_jalan'], ['nasional', 'provinsi', 'kabupaten'], true)) { - $errors[] = 'Status Jalan tidak valid.'; - } - if ($input['panjang_meter'] === '' || !is_numeric($input['panjang_meter']) || (float)$input['panjang_meter'] <= 0) { - $errors[] = 'Panjang Jalan harus dihitung otomatis dari peta dan tidak boleh kosong.'; - } - $coords = json_decode($input['koordinat_json'], true); - if (!is_array($coords) || count($coords) < 2) { - $errors[] = 'Koordinat JSON tidak valid: minimal 2 titik diperlukan.'; - } - - if (empty($errors)) { - $stmt = $pdo->prepare('INSERT INTO t_jalan (nama_jalan, status_jalan, panjang_meter, koordinat_json) VALUES (:nama, :status, :panjang, :koordinat)'); - $stmt->execute([ - ':nama' => $input['nama_jalan'], - ':status' => $input['status_jalan'], - ':panjang' => (float)$input['panjang_meter'], - ':koordinat' => json_encode($coords, JSON_UNESCAPED_UNICODE), - ]); - $success = 'Data jalan berhasil disimpan ke database.'; - $input = ['nama_jalan' => '', 'status_jalan' => '', 'panjang_meter' => '', 'koordinat_json' => '']; - } - } - - $stmt = $pdo->query('SELECT id, nama_jalan, status_jalan, panjang_meter, koordinat_json FROM t_jalan ORDER BY id DESC'); - $jalanList = $stmt->fetchAll(); -} catch (PDOException $e) { - $errors[] = 'Koneksi database gagal: ' . htmlspecialchars($e->getMessage()); - $jalanList = []; -} +// Data diambil dari API - tidak ada koneksi MySQL di frontend ini ?> @@ -244,8 +147,8 @@ try {
-

WebGIS Manajemen Data Jalan

-

Tambah, simpan, dan tampilkan polyline jalan dengan LeafletJS dan MySQL.

+

🛣️ WebGIS Manajemen Data Jalan

+

Tambah, simpan, dan tampilkan polyline jalan dengan LeafletJS (API Mode)

diff --git a/Projek Tanah/manajemen_parsil/index.php b/Projek Tanah/manajemen_parsil/index.php index 986cd59..c6876f1 100644 --- a/Projek Tanah/manajemen_parsil/index.php +++ b/Projek Tanah/manajemen_parsil/index.php @@ -1,71 +1,5 @@ PDO::ERRMODE_EXCEPTION, - PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, - PDO::ATTR_EMULATE_PREPARES => false, -]; - -try { - $pdo = new PDO($dsn, $user, $pass, $options); -} catch (PDOException $e) { - die('Koneksi gagal: ' . htmlspecialchars($e->getMessage())); -} - -// Buat tabel jika belum ada -$createTableSql = "CREATE TABLE IF NOT EXISTS t_tanah ( - id INT AUTO_INCREMENT PRIMARY KEY, - nama_pemilik VARCHAR(255) NOT NULL, - status_kepemilikan ENUM('SHM', 'HGB', 'HGU', 'HP') NOT NULL, - luas_sqm DECIMAL(10,2) NOT NULL, - koordinat_json LONGTEXT NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"; -$pdo->exec($createTableSql); - -// Simpan data jika form disubmit -$successMessage = ''; -$errorMessage = ''; -if ($_SERVER['REQUEST_METHOD'] === 'POST') { - $namaPemilik = trim($_POST['nama_pemilik'] ?? ''); - $statusKepemilikan = $_POST['status_kepemilikan'] ?? ''; - $luasSqm = $_POST['luas_sqm'] ?? ''; - $koordinatJson = $_POST['koordinat_json'] ?? ''; - - if ($namaPemilik === '' || $statusKepemilikan === '' || $luasSqm === '' || $koordinatJson === '') { - $errorMessage = 'Semua field harus diisi dan polygon harus dibuat sebelum submit.'; - } else { - try { - $stmt = $pdo->prepare('INSERT INTO t_tanah (nama_pemilik, status_kepemilikan, luas_sqm, koordinat_json) VALUES (:nama, :status, :luas, :koordinat)'); - $stmt->execute([ - ':nama' => $namaPemilik, - ':status' => $statusKepemilikan, - ':luas' => $luasSqm, - ':koordinat' => $koordinatJson, - ]); - $successMessage = 'Data tanah berhasil disimpan.'; - header('Location: ' . $_SERVER['PHP_SELF'] . '?saved=1'); - exit; - } catch (PDOException $e) { - $errorMessage = 'Gagal menyimpan data: ' . htmlspecialchars($e->getMessage()); - } - } -} - -// Ambil semua data polygon -$tanahData = []; -$stmt = $pdo->query('SELECT id, nama_pemilik, status_kepemilikan, luas_sqm, koordinat_json, created_at FROM t_tanah ORDER BY created_at DESC'); -while ($row = $stmt->fetch()) { - $row['coords'] = json_decode($row['koordinat_json'], true); - $tanahData[] = $row; -} +// Data diambil dari API - tidak ada koneksi MySQL di frontend ini ?> @@ -119,10 +53,7 @@ while ($row = $stmt->fetch()) {
-
Data tanah berhasil disimpan.
- - -
+
Data tanah berhasil disimpan dari API.

Klik beberapa titik pada peta untuk membuat polygon. Tutup polygon dengan klik titik awal lagi untuk menghitung luas otomatis.

@@ -164,19 +95,8 @@ while ($row = $stmt->fetch()) {

Daftar Parsil Tertinggi & Detail

-
- -
Belum ada data parsil. Tambahkan bidang tanah melalui peta dan form di atas.
- - -
- · -
Luas:
-
Disimpan:
-
-
- - +
+
Memuat data dari API...
@@ -201,7 +121,7 @@ while ($row = $stmt->fetch()) { HP: '#1d4ed8' }; - const existingData = ; + const existingData = []; // Data diambil dari API existingData.forEach(item => { if (!Array.isArray(item.coords)) return; const coords = item.coords.map(c => [c.lat, c.lng]);