-- ═══════════════════════════════════════════════════════════════════ -- setup_database.sql -- Jalankan query ini di phpMyAdmin (Laragon) atau MySQL CLI -- untuk membuat database dan tabel yang diperlukan. -- ═══════════════════════════════════════════════════════════════════ -- 1. Buat dan gunakan database CREATE DATABASE IF NOT EXISTS `02_spbudb` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE `02_spbudb`; -- ───────────────────────────────────────────────────────────────────── -- 2. Tabel SPBU (marker titik lokasi) -- ───────────────────────────────────────────────────────────────────── CREATE TABLE IF NOT EXISTS `spbu` ( `id` INT NOT NULL AUTO_INCREMENT, `nama_spbu` VARCHAR(100) NOT NULL, `status_ramai` ENUM('ramai','tidak_ramai') NOT NULL DEFAULT 'tidak_ramai', `buka_24_jam` ENUM('ya','tidak') NOT NULL DEFAULT 'tidak', `status_operasional` ENUM('buka','tutup') NOT NULL DEFAULT 'buka', `nomor_hp` VARCHAR(20) NOT NULL DEFAULT '', `latitude` DOUBLE NOT NULL, `longitude` DOUBLE NOT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- ───────────────────────────────────────────────────────────────────── -- 3. Tabel Polyline (garis) -- Kolom koordinat menyimpan JSON array of [lat, lng] -- Contoh: [[-0.055, 109.348], [-0.056, 109.349]] -- ───────────────────────────────────────────────────────────────────── CREATE TABLE IF NOT EXISTS `polyline` ( `id` INT NOT NULL AUTO_INCREMENT, `nama_line` VARCHAR(100) NOT NULL, `keterangan` TEXT, `warna` VARCHAR(20) NOT NULL DEFAULT '#3b82f6', `koordinat` LONGTEXT NOT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- ───────────────────────────────────────────────────────────────────── -- 4. Tabel Polygon (area) -- Kolom koordinat menyimpan JSON array of [lat, lng] -- Contoh: [[-0.055, 109.348], [-0.056, 109.349], [-0.055, 109.350]] -- ───────────────────────────────────────────────────────────────────── CREATE TABLE IF NOT EXISTS `polygon` ( `id` INT NOT NULL AUTO_INCREMENT, `nama_polygon` VARCHAR(100) NOT NULL, `keterangan` TEXT, `warna` VARCHAR(20) NOT NULL DEFAULT '#22c55e', `koordinat` LONGTEXT NOT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- ───────────────────────────────────────────────────────────────────── -- 5. (Opsional) Data contoh untuk testing awal -- ───────────────────────────────────────────────────────────────────── INSERT INTO `spbu` (nama_spbu, status_ramai, buka_24_jam, status_operasional, nomor_hp, latitude, longitude) VALUES ('SPBU Contoh A', 'ramai', 'ya', 'buka', '08123456789', -0.05566, 109.34854), ('SPBU Contoh B', 'tidak_ramai', 'tidak', 'buka', '08129876543', -0.05700, 109.34900), ('SPBU Contoh C', 'ramai', 'tidak', 'tutup', '', -0.05400, 109.34800);