diff --git a/README.md b/README.md new file mode 100644 index 0000000..c3647aa --- /dev/null +++ b/README.md @@ -0,0 +1,93 @@ +# WebGIS Sistem Informasi Geografis (SPBU & Analisis Kemiskinan) + +Sebuah aplikasi Sistem Informasi Geografis (WebGIS) interaktif berbasis web untuk pemetaan data spasial secara komprehensif. Aplikasi ini memiliki fitur utama untuk mengelola lokasi Stasiun Pengisian Bahan Bakar Umum (SPBU), Jaringan Jalan, Parsil Tanah, serta analisis radius Rumah Ibadah terhadap sebaran Penduduk Miskin. + +## 🌟 Fitur Utama + +### 1. πŸ—ΊοΈ Multi-Layer Spatial Data +Mendukung berbagai jenis tipe geometri data spasial: +- **Titik (Points)**: Lokasi SPBU, Rumah Ibadah, dan tempat tinggal Penduduk Miskin. +- **Garis (Polylines)**: Jaringan Jalan (Nasional, Provinsi, Kabupaten). +- **Poligon (Polygons)**: Parsil Tanah beserta status kepemilikannya (SHM, HGB, HGU). + +### 2. πŸ“Š Dashboard Administrator (CRUD Spasial) +Sistem backend aman dengan autentikasi ganda untuk admin. Memungkinkan pengelola data untuk: +- **Menggambar Langsung (Digitasi):** Menambahkan titik lokasi, menggambar rute jalan, dan memetakan poligon area langsung di atas peta (menggunakan `Leaflet-Geoman`). +- **Pencarian Universal:** Pencarian cerdas (*autocomplete*) lintas data dengan *auto-zoom* (terbang/fokus) ke lokasi geometri (titik, jalan, atau lahan) yang dipilih. +- **Routing & Radius:** Mencari SPBU terdekat dari posisi pengguna dan melakukan pencarian fasilitas menggunakan slider radius. +- **Manajemen Data Realtime:** Menghapus atau memperbarui informasi properti langsung dari tabel atau *popup* peta. + +### 3. β›½ Portal Publik (Peta SPBU) +Halaman interaktif publik (`spbu.html`) bagi pengguna umum untuk melihat sebaran SPBU: +- Filter SPBU 24 Jam atau tidak. +- Pencarian SPBU (Nama / Nomor). +- Fitur mendapatkan rute terdekat ke SPBU dari lokasi pengguna. + +### 4. 🏘️ Peta Analisis Kemiskinan +Sistem analitik terproteksi (`poverty.html`) untuk melihat persebaran kesejahteraan penduduk: +- Visualisasi cerdas radius menggunakan algoritma `Turf.js`. +- Pengguna dapat mengatur radius jangkauan dari setiap titik Rumah Ibadah secara mandiri (misal: 500m). +- Indikator warna otomatis: Penduduk miskin di dalam area radius akan berwarna merah, sedangkan di luar berwarna hitam. + +## πŸ› οΈ Teknologi yang Digunakan + +**Frontend:** +- HTML5, CSS3 (Vanilla Native Styling untuk performa & kontrol penuh). +- JavaScript (ES6+). +- **Leaflet.js** - *Library* pemetaan utama. +- **Leaflet-Geoman** - Alat untuk digitasi (menggambar, memodifikasi geometri di peta). +- **Turf.js** - Analisis spasial *client-side* (perhitungan jarak & radius batas). + +**Backend & Database:** +- **PHP 8+** - Pemrosesan API RESTful. +- **MySQL / MariaDB** - Database relasional dengan penyimpanan JSON untuk struktur GeoJSON. + +## πŸš€ Cara Instalasi & Penggunaan + +### Prasyarat +Pastikan Anda telah menginstal web server lokal (seperti **XAMPP**, MAMP, atau WAMP) yang mendukung PHP dan MySQL. + +### Langkah-langkah +1. Clone atau salin repositori ini ke dalam folder `htdocs` (jika menggunakan XAMPP). + ```bash + cd C:/xampp/htdocs/ + # Letakkan folder proyek di sini (contoh: /webgis-sig) + ``` +2. Nyalakan module **Apache** dan **MySQL** dari XAMPP Control Panel. +3. Buka browser dan jalankan script inisialisasi database: + ```text + http://localhost/webgis-sig/backend/create_users_table.php + ``` + *(Script ini akan secara otomatis membuat tabel yang dibutuhkan dan menginjeksi akun Admin default).* +4. Akses halaman utama aplikasi di browser Anda: + ```text + http://localhost/webgis-sig/ + ``` + +### Akun Default Admin +Secara bawaan setelah script di atas dijalankan, kredensial untuk Administrator adalah: +- **Username:** `admin` +- **Password:** `admin123` + +## πŸ“‚ Struktur Direktori + +```text +πŸ“ webgis-sig/ +β”œβ”€β”€ πŸ“„ index.html # Halaman Portal Landing +β”œβ”€β”€ πŸ“„ login.html # Sistem Autentikasi +β”œβ”€β”€ πŸ“„ admin.html # Dashboard Administrator +β”œβ”€β”€ πŸ“„ spbu.html # Portal Publik SPBU +β”œβ”€β”€ πŸ“„ poverty.html # Portal Analisis Kemiskinan +β”œβ”€β”€ πŸ“ js/ +β”‚ └── πŸ“„ app.js # Logika sistem pemetaan dan manajemen data +└── πŸ“ backend/ # Kumpulan skrip PHP (REST API Endpoint) + β”œβ”€β”€ πŸ“„ koneksi.php # Konfigurasi Database + β”œβ”€β”€ πŸ“„ login.php / register.php / check_auth.php + └── πŸ“„ read_*.php / create_*.php / update_*.php / delete_*.php +``` + +## πŸ” Keamanan Tambahan +Aplikasi ini sudah dilengkapi dengan sistem validasi *role-based*. Halaman `admin.html` didesain eksklusif hanya untuk Administrator dan akan memblokir pengguna biasa yang mencoba memaksa akses. Pengguna biasa hanya diizinkan untuk mengakses halaman *Peta Kemiskinan*. + +--- +Dibuat dengan ❀️ untuk kebutuhan Sistem Informasi Geografis Terpadu.