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; } ?> Manajemen Parsil Tanah / Kavling (Polygon)

Manajemen Parsil Tanah / Kavling

Tambah, lihat, dan simpan data polygon bidang tanah dengan perhitungan luas otomatis menggunakan Leaflet & PHP PDO.

Data tanah berhasil disimpan.

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

Form Tambah Data Parsil

Daftar Parsil Tertinggi & Detail

Belum ada data parsil. Tambahkan bidang tanah melalui peta dan form di atas.
·
Luas:
Disimpan: