query($sql)) { return ['label' => $label, 'status' => 'OK', 'msg' => '']; } else { return ['label' => $label, 'status' => 'ERROR', 'msg' => $conn->error]; } } // ── 1. Tabel data_jalan ─────────────────────────────────────── $results[] = runSQL($conn, 'CREATE TABLE data_jalan', " CREATE TABLE IF NOT EXISTS data_jalan ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nama_jalan VARCHAR(150) NOT NULL, status_jalan ENUM('Jalan Nasional','Jalan Provinsi','Jalan Kabupaten') NOT NULL, panjang_m DECIMAL(12,2) DEFAULT 0.00, geojson LONGTEXT NOT NULL, keterangan TEXT DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci "); // ── 2. Tabel data_parsil ────────────────────────────────────── $results[] = runSQL($conn, 'CREATE TABLE data_parsil', " CREATE TABLE IF NOT EXISTS data_parsil ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nama_parsil VARCHAR(150) NOT NULL, status_hak ENUM('Sertifikat Hak Milik','Sertifikat Hak Guna Bangunan','Sertifikat Hak Guna Usaha','Sertifikat Hak Pakai') NOT NULL, luas_m2 DECIMAL(15,2) DEFAULT 0.00, geojson LONGTEXT NOT NULL, pemilik VARCHAR(150) DEFAULT NULL, keterangan TEXT DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci "); // ── 3. Tabel data_spbu ──────────────────────────────────────── $results[] = runSQL($conn, 'CREATE TABLE data_spbu', " CREATE TABLE IF NOT EXISTS data_spbu ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nama_spbu VARCHAR(150) NOT NULL, telepon VARCHAR(20) DEFAULT NULL, buka_24jam TINYINT(1) NOT NULL DEFAULT 0, lat DECIMAL(10,7) NOT NULL, lng DECIMAL(10,7) NOT NULL, geojson LONGTEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci "); // ── 4. Data contoh: Jalan ───────────────────────────────────── $results[] = runSQL($conn, 'INSERT data_jalan (sample)', " INSERT IGNORE INTO data_jalan (id, nama_jalan, status_jalan, panjang_m, geojson, keterangan) VALUES (1, 'Jl. Ahmad Yani', 'Jalan Nasional', 2100.00, '{\"type\":\"LineString\",\"coordinates\":[[109.3300,-0.0200],[109.3350,-0.0210],[109.3400,-0.0220]]}', 'Jalan utama Kota Pontianak'), (2, 'Jl. Gajah Mada', 'Jalan Provinsi', 1450.50, '{\"type\":\"LineString\",\"coordinates\":[[109.3200,-0.0350],[109.3250,-0.0360],[109.3300,-0.0370]]}', 'Penghubung pusat kota'), (3, 'Jl. Tanjungpura', 'Jalan Kabupaten', 870.25, '{\"type\":\"LineString\",\"coordinates\":[[109.3450,-0.0100],[109.3470,-0.0110],[109.3490,-0.0120]]}', 'Jalan lingkungan') "); // ── 5. Data contoh: Parsil ──────────────────────────────────── $results[] = runSQL($conn, 'INSERT data_parsil (sample)', " INSERT IGNORE INTO data_parsil (id, nama_parsil, status_hak, luas_m2, geojson, pemilik, keterangan) VALUES (1, 'Parsil A-001', 'Sertifikat Hak Milik', 1200.00, '{\"type\":\"Polygon\",\"coordinates\":[[[109.3200,-0.0200],[109.3210,-0.0200],[109.3210,-0.0210],[109.3200,-0.0210],[109.3200,-0.0200]]]}', 'Budi Santoso', 'Tanah kavling perumahan'), (2, 'Parsil B-002', 'Sertifikat Hak Guna Bangunan', 850.50, '{\"type\":\"Polygon\",\"coordinates\":[[[109.3220,-0.0220],[109.3230,-0.0220],[109.3230,-0.0230],[109.3220,-0.0230],[109.3220,-0.0220]]]}', 'PT. Maju Bersama', 'Kavling komersial') "); // ── 6. Data contoh: SPBU ───────────────────────────────────── $results[] = runSQL($conn, 'INSERT data_spbu (sample)', " INSERT IGNORE INTO data_spbu (id, nama_spbu, telepon, buka_24jam, lat, lng, geojson) VALUES (1, 'SPBU Jl. Ahmad Yani', '0561-123456', 1, -0.0200, 109.3300, '{\"type\":\"Point\",\"coordinates\":[109.3300,-0.0200]}'), (2, 'SPBU Jl. Gajah Mada', '0561-654321', 0, -0.0350, 109.3200, '{\"type\":\"Point\",\"coordinates\":[109.3200,-0.0350]}'), (3, 'SPBU Jl. Tanjungpura', '0561-789012', 1, -0.0100, 109.3450, '{\"type\":\"Point\",\"coordinates\":[109.3450,-0.0100]}') "); $conn->close(); // ── Tampilkan hasil ─────────────────────────────────────────── $allOk = !in_array('ERROR', array_column($results, 'status')); ?>
Membuat tabel dan data contoh di database default
Semua tabel berhasil dibuat. Aplikasi WebGIS siap digunakan.
Buka Aplikasi →Beberapa langkah gagal. Periksa pesan error di atas.
migrate.php setelah migrasi berhasil untuk keamanan!