From 17800461cd18800ac901b006f17d5494cfc57a2d Mon Sep 17 00:00:00 2001 From: TaniaYuniar Date: Thu, 11 Jun 2026 12:24:44 +0000 Subject: [PATCH] Upload files to "/" --- Dockerfile | 9 + database.sql | 47 +++ index.html | 804 +++---------------------------------------- install_database.php | 47 +++ koneksi.php | 34 +- 5 files changed, 166 insertions(+), 775 deletions(-) create mode 100644 Dockerfile create mode 100644 database.sql create mode 100644 install_database.php diff --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 @@ - - - - - WebGIS Kota Pontianak - Pemetaan SPBU, Jalan, dan Tanah - - - - - -
- -
- - -
- -
-

πŸ“Š POPULASI PER KECAMATAN

-

Memuat data...

-
- -
- Legenda
- β›½ SPBU Buka 24 Jam
- β›½ SPBU Tutup Malam
- Jalan Nasional
- Jalan Provinsi
- Jalan Kota
- Bidang Tanah
- Batas Kecamatan -
-
- πŸ’‘ Petunjuk: Untuk menggambar, klik titik-titik di peta. Selesai = DOUBLE CLICK atau klik tombol βœ… -
- - - - - - - - - \ No newline at end of file + + + + + + Landing Page Tugas SIG - Pertemuan 1-4 + + + +
+
+
Mata Kuliah SIG β€’ Pertemuan 1-4
+

Kumpulan Tugas WebGIS

+

Landing page ini menampilkan seluruh tugas WebGIS yang dikerjakan pada pertemuan kelas. Klik salah satu kartu untuk membuka project sesuai topik.

+
+
+
+
+
β›½

Tugas 1

WebGIS pemetaan lokasi SPBU di Kota Pontianak menggunakan marker Leaflet.

Buka Tugas 1
+
πŸ›£οΈ

Tugas 2

WebGIS manajemen data jalan berbentuk polyline dan data tanah berbentuk polygon.

Buka Tugas 2
+
πŸ—‚οΈ

Tugas 3

Layer Groups dan Layers Control untuk menampilkan kategori SPBU buka 24 jam dan tidak 24 jam.

Buka Tugas 3
+
πŸ™οΈ

Tugas 4

WebGIS GeoJSON kecamatan Kota Pontianak yang menampilkan nama kecamatan dan jumlah populasi.

Buka Tugas 4
+
+
Catatan: Deploy cukup satu resource aplikasi di Coolify. Tugas dapat diakses melalui subfolder /Tugas1/, /Tugas2/, /Tugas3/, dan /Tugas4/.
+
+ + diff --git a/install_database.php b/install_database.php new file mode 100644 index 0000000..5033182 --- /dev/null +++ b/install_database.php @@ -0,0 +1,47 @@ +Install Database Pertemuan 1-2-3-4"; +echo "

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.

"; + } +} else { + echo "

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'); +?>