71 lines
4.9 KiB
SQL
71 lines
4.9 KiB
SQL
-- ═══════════════════════════════════════════════════════════════════
|
|
-- 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);
|