Tugas 1
WebGIS pemetaan lokasi SPBU di Kota Pontianak menggunakan marker Leaflet.
Buka Tugas 1diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..82a543e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM php:8.2-apache + +RUN docker-php-ext-install mysqli pdo pdo_mysql + +COPY . /var/www/html/ + +RUN chown -R www-data:www-data /var/www/html + +EXPOSE 80 diff --git a/database.sql b/database.sql new file mode 100644 index 0000000..115b1dd --- /dev/null +++ b/database.sql @@ -0,0 +1,47 @@ +CREATE TABLE IF NOT EXISTS spbu ( + id INT AUTO_INCREMENT PRIMARY KEY, + nama VARCHAR(150) NOT NULL, + hp VARCHAR(50) DEFAULT NULL, + buka TINYINT(1) NOT NULL DEFAULT 1, + lat DECIMAL(12,8) NOT NULL, + lng DECIMAL(12,8) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS jalan ( + id INT AUTO_INCREMENT PRIMARY KEY, + status VARCHAR(100) NOT NULL, + panjang DECIMAL(12,2) DEFAULT 0, + koordinat LONGTEXT NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS tanah ( + id INT AUTO_INCREMENT PRIMARY KEY, + status VARCHAR(100) NOT NULL, + luas DECIMAL(12,2) DEFAULT 0, + koordinat LONGTEXT NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS populasi_kecamatan ( + id INT AUTO_INCREMENT PRIMARY KEY, + kecamatan VARCHAR(100) NOT NULL UNIQUE, + populasi INT NOT NULL DEFAULT 0, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +INSERT INTO spbu (nama, hp, buka, lat, lng) VALUES +('SPBU Ahmad Yani', '081234567890', 1, -0.05586000, 109.34725000), +('SPBU Imam Bonjol', '081234567891', 0, -0.03372000, 109.34201000), +('SPBU Sungai Raya Dalam', '081234567892', 1, -0.07043000, 109.37850000) +ON DUPLICATE KEY UPDATE nama=VALUES(nama); + +INSERT INTO populasi_kecamatan (kecamatan, populasi) VALUES +('Pontianak Barat', 150000), +('Pontianak Kota', 130000), +('Pontianak Selatan', 95000), +('Pontianak Tenggara', 53000), +('Pontianak Timur', 104000), +('Pontianak Utara', 128000) +ON DUPLICATE KEY UPDATE populasi=VALUES(populasi); diff --git a/index.html b/index.html index 5323747..5bfcd08 100644 --- a/index.html +++ b/index.html @@ -1,760 +1,44 @@ - - -
- -Memuat data...
Landing page ini menampilkan seluruh tugas WebGIS yang dikerjakan pada pertemuan kelas. Klik salah satu kartu untuk membuka project sesuai topik.
+WebGIS pemetaan lokasi SPBU di Kota Pontianak menggunakan marker Leaflet.
Buka Tugas 1WebGIS manajemen data jalan berbentuk polyline dan data tanah berbentuk polygon.
Buka Tugas 2Layer Groups dan Layers Control untuk menampilkan kategori SPBU buka 24 jam dan tidak 24 jam.
Buka Tugas 3WebGIS GeoJSON kecamatan Kota Pontianak yang menampilkan nama kecamatan dan jumlah populasi.
Buka Tugas 4/Tugas1/, /Tugas2/, /Tugas3/, dan /Tugas4/.Target koneksi: " . htmlspecialchars($host) . ":" . htmlspecialchars((string)$port) . ", database: " . htmlspecialchars($db) . ", user: " . htmlspecialchars($user) . "
"; + +$conn = new mysqli($host, $user, $pass, $db, $port); + +if ($conn->connect_error) { + die("Koneksi gagal: " . htmlspecialchars($conn->connect_error) . "
"); +} + +$sqlFile = __DIR__ . '/database.sql'; +if (!file_exists($sqlFile)) { + die("File database.sql tidak ditemukan.
"); +} + +$sql = file_get_contents($sqlFile); +$sql = preg_replace('/CREATE\s+DATABASE\s+IF\s+NOT\s+EXISTS\s+`?[^`\s;]+`?.*?;/is', '', $sql); +$sql = preg_replace('/CREATE\s+DATABASE\s+`?[^`\s;]+`?.*?;/is', '', $sql); +$sql = preg_replace('/USE\s+`?[^`\s;]+`?\s*;/is', '', $sql); + +if ($conn->multi_query($sql)) { + do { + if ($result = $conn->store_result()) { + $result->free(); + } + } while ($conn->more_results() && $conn->next_result()); + + if ($conn->errno) { + echo "Ada error saat import: " . htmlspecialchars($conn->error) . "
"; + } else { + echo "Database berhasil diimport.
"; + echo "Setelah berhasil, hapus file install_database.php dari repo lalu redeploy.
Import gagal: " . htmlspecialchars($conn->error) . "
"; +} + +$conn->close(); +?> diff --git a/koneksi.php b/koneksi.php index 39a7f1f..26bd9ec 100644 --- a/koneksi.php +++ b/koneksi.php @@ -1,15 +1,19 @@ -connect_error) { - die(json_encode(['status' => 'error', 'msg' => 'Koneksi database gagal: ' . $conn->connect_error])); -} - -// Set charset ke UTF-8 -$conn->set_charset("utf8"); -?> \ No newline at end of file +connect_error) { + http_response_code(500); + die(json_encode([ + 'status' => 'error', + 'msg' => 'Koneksi database gagal: ' . $conn->connect_error + ])); +} + +$conn->set_charset('utf8mb4'); +?>