-- ============================================================ -- WebGIS - Sistem Informasi Geografis Pengentasan Kemiskinan -- Database Schema -- ============================================================ CREATE DATABASE IF NOT EXISTS webgis CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE webgis; -- Tabel Points (SPBU / Titik Umum) DROP TABLE IF EXISTS points; CREATE TABLE points ( id INT AUTO_INCREMENT PRIMARY KEY, nama VARCHAR(150) NOT NULL, no_wa VARCHAR(30) NOT NULL, buka_24_jam ENUM('Ya','Tidak') NOT NULL DEFAULT 'Tidak', latitude DECIMAL(18,15) NOT NULL, longitude DECIMAL(18,15) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- Tabel Jalan DROP TABLE IF EXISTS jalan; CREATE TABLE jalan ( id INT AUTO_INCREMENT PRIMARY KEY, nama_jalan VARCHAR(200) NOT NULL, status_jalan ENUM('Jalan Nasional','Jalan Provinsi','Jalan Kabupaten') NOT NULL, panjang_meter DECIMAL(14,2) NOT NULL DEFAULT 0, koordinat LONGTEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- Tabel Polygon DROP TABLE IF EXISTS polygon; CREATE TABLE polygon ( id INT AUTO_INCREMENT PRIMARY KEY, nama_parsil VARCHAR(200) NOT NULL, status_kepemilikan ENUM('SHM','HGB','HGU','HP') NOT NULL, luas_tanah DECIMAL(18,4) NOT NULL DEFAULT 0, koordinat LONGTEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- Tabel Rumah Ibadah DROP TABLE IF EXISTS rumah_ibadah; CREATE TABLE rumah_ibadah ( id INT AUTO_INCREMENT PRIMARY KEY, nama VARCHAR(200) NOT NULL, jenis ENUM('Masjid','Gereja','Pura','Vihara','Klenteng','Lainnya') NOT NULL DEFAULT 'Masjid', alamat TEXT, latitude DECIMAL(18,15) NOT NULL, longitude DECIMAL(18,15) NOT NULL, radius INT NOT NULL DEFAULT 300, kontak VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB; -- Tabel Penduduk Miskin DROP TABLE IF EXISTS penduduk_miskin; CREATE TABLE penduduk_miskin ( id INT AUTO_INCREMENT PRIMARY KEY, nama VARCHAR(200) NOT NULL, nik VARCHAR(20), keterangan TEXT, latitude DECIMAL(18,15) NOT NULL, longitude DECIMAL(18,15) NOT NULL, status_jangkauan ENUM('Dalam Jangkauan','Luar Jangkauan') NOT NULL DEFAULT 'Luar Jangkauan', rumah_ibadah_id INT DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (rumah_ibadah_id) REFERENCES rumah_ibadah(id) ON DELETE SET NULL ) ENGINE=InnoDB; -- Sample data untuk testing INSERT INTO rumah_ibadah (nama, jenis, alamat, latitude, longitude, radius) VALUES ('Masjid Raya Pontianak', 'Masjid', 'Jl. Tanjungpura, Pontianak', -0.0263, 109.3425, 500), ('Gereja Katedral Pontianak', 'Gereja', 'Jl. Pattimura, Pontianak', -0.0571, 109.3283, 400); INSERT INTO penduduk_miskin (nama, nik, keterangan, latitude, longitude, status_jangkauan, rumah_ibadah_id) VALUES ('Ahmad Fauzi', '6171010101010001', 'Buruh harian lepas', -0.0280, 109.3430, 'Dalam Jangkauan', 1), ('Sari Dewi', '6171010101010002', 'Ibu rumah tangga tidak bekerja', -0.0900, 109.3900, 'Luar Jangkauan', NULL), ('Budi Santoso', '6171010101010003', 'Pekerja informal', -0.0600, 109.3280, 'Dalam Jangkauan', 2);