Sistem WebGIS analisis sebaran penduduk miskin dan jangkauan rumah ibadah. Fitur: peta interaktif Leaflet.js, CRUD rumah ibadah & penduduk miskin, auto-kategorisasi haversine, heatmap, export PDF/CSV, dashboard analitik, manajemen pengguna (superadmin/admin), login sistem. Teknologi: PHP, MySQL, Leaflet.js, OpenStreetMap, Nominatim Geocoding, mPDF. Catatan: jalankan `composer install` di folder uas/ untuk install dependencies. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
48 KiB
Spesifikasi Kebutuhan Perangkat Lunak
WebGIS Partisipasi Rumah Ibadah (Masjid) untuk Pengentasan Kemiskinan
Dosen Pengampu:
Dr. Ir. Yus Sholva, S.T., M.T., C.Pro.
197410192003121002
Disusun oleh:
| Nama | Athallah Ghathfan Aqila |
| NIM | D1041231060 |
| Mata Kuliah | Sistem Informasi Geografis B |
PROGRAM STUDI INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TANJUNGPURA
2025/2026
DAFTAR ISI
| PENDAHULUAN | 3 |
| 1.1 Tujuan Dokumen | 3 |
| 1.2 Ruang Lingkup | 3 |
| 1.3 Definisi, Akronim, dan Singkatan | 5 |
| 1.4 Referensi | 7 |
| DESKRIPSI SISTEM | 8 |
| 2.1 Perspektif Produk | 8 |
| 2.2 Fungsi Utama Sistem | 8 |
| 2.3 Kelas Pengguna dan Karakteristik | 10 |
| 2.4 Batasan dan Kendala Sistem | 11 |
| KEBUTUHAN FUNGSIONAL | 12 |
| 3.1 Daftar Use Case | 12 |
| 3.2 Detail Use Case | 13 |
| KEBUTUHAN NON-FUNGSIONAL | 28 |
| 4.1 Spesifikasi Performa | 28 |
| 4.2 Spesifikasi Keamanan | 29 |
| 4.3 Spesifikasi Kemudahan Penggunaan | 30 |
| 4.4 Spesifikasi Reliabilitas | 30 |
| 4.5 Spesifikasi Portabilitas | 31 |
| ANTARMUKA EKSTERNAL | 32 |
| 5.1 Antarmuka Pengguna | 32 |
| 5.2 Antarmuka Perangkat Keras | 33 |
| 5.3 Antarmuka Perangkat Lunak | 34 |
| 5.4 Antarmuka Komunikasi | 35 |
| DEFINISI FUNGSI DAN KEBUTUHAN PENGGUNA | 36 |
| 6.1 Kebutuhan Pengguna | 36 |
| 6.2 Detail Fungsionalitas Spesifik | 37 |
| 6.3 Analisis Alur Kerja Pengentasan Kemiskinan | 42 |
| KESIMPULAN | 43 |
| LAMPIRAN | 44 |
PENDAHULUAN
1.1 Tujuan Dokumen
Dokumen Spesifikasi Kebutuhan Perangkat Lunak (SKPL) ini mendefinisikan secara menyeluruh kebutuhan fungsional dan non-fungsional dalam pengembangan sistem "WebGIS Partisipasi Rumah Ibadah (Masjid) untuk Pengentasan Kemiskinan". Dokumen ini disusun oleh Athallah Ghathfan Aqila (D1041231060) sebagai panduan bagi pihak-pihak berikut:
- Tim Pengembang (Mahasiswa): Sebagai acuan teknis implementasi fitur analisis spasial multilayer (Point, Line, Polygon) menggunakan PHP Native, Leaflet.js, dan database MySQL.
- Pemerintah/Dinas Sosial: Sebagai instrumen verifikasi akurasi sistem dalam mengidentifikasi titik kemiskinan yang berada di luar jangkauan bantuan komunitas (blind spot) melalui visualisasi data.
- Pengelola Rumah Ibadah (Masjid): Sebagai panduan operasional untuk memetakan warga binaan dan menentukan radius jangkauan layanan sosial secara mandiri per masjid.
- Tim Penguji: Sebagai landasan pembuatan skenario pengujian teknis, khususnya pada akurasi perhitungan jarak menggunakan rumus geodesic dan perhitungan luas area tanah.
1.2 Ruang Lingkup
Sistem yang dikembangkan adalah platform WebGIS dinamis yang mengintegrasikan data infrastruktur perkotaan dengan data kependudukan miskin di Kota Pontianak. Sistem ini berfungsi sebagai mesin analisis spasial untuk menentukan distribusi bantuan sosial berbasis jarak.
Sistem ini mencakup:
- Visualisasi Multilayer Interaktif: Menampilkan peta dasar (Base Map) yang memuat berbagai jenis geometri:
- Point: Lokasi SPBU, lokasi Masjid, dan lokasi rumah penduduk miskin.
- Line: Jaringan jalan dengan fitur penghitung panjang otomatis (m).
- Polygon: Parsil atau kavling tanah dengan fitur penghitung luas otomatis (m²), serta Batas Wilayah Administratif (RT/RW/Kelurahan/Kecamatan).
- Manajemen Radius Dinamis per Masjid (Buffer): Fitur khusus pada setiap titik Masjid yang memungkinkan pengguna mengatur variabel "Radius Deteksi" (100m hingga 5000m) menggunakan slider secara real-time, disertai tombol toggle visibilitas radius per masjid secara individual.
- Analisis Spasial Real-Time (Intersect Analysis): Algoritma internal yang mengevaluasi jarak koordinat rumah penduduk miskin terhadap radius layanan Masjid menggunakan formula Haversine.
- Analisis Batas Wilayah: Algoritma point-in-polygon yang mengidentifikasi KK yang berada dalam setiap wilayah administratif, disertai statistik breakdown per wilayah.
- Indikator Visual Otomatis: Perubahan warna marker penduduk miskin secara otomatis:
- Warna Merah: Menandakan penduduk berada di dalam jangkauan masjid (Tercakup).
- Warna Abu-abu: Menandakan penduduk berada di luar jangkauan masjid (Blind Spot).
- Filter dan Pencarian Data KK: Fitur pencarian nama KK secara real-time dan filter berdasarkan jenis bantuan yang diterima (PKH, BPNT, BLT) yang mempengaruhi tampilan panel dan peta secara bersamaan.
- Panel Statistik Real-Time: Menampilkan ringkasan cakupan kemiskinan (total KK, jiwa, terjangkau, blind spot) beserta breakdown per masjid dan per wilayah administratif.
- Visualisasi Heatmap: Lapisan kepadatan titik kemiskinan menggunakan gradien warna (kuning–oranye–merah) untuk mengidentifikasi konsentrasi penduduk miskin.
- Ekspor Data: Menghasilkan laporan dalam format CSV (client-side via Blob API) dan PDF (server-side menggunakan mPDF).
Sistem ini TIDAK mencakup:
- Sistem manajemen transaksi keuangan atau penyaluran dana (E-Wallet/Payment Gateway).
- Pelacakan lokasi penduduk miskin secara real-time melalui pergerakan GPS (data koordinat bersifat statis berdasarkan lokasi rumah).
- Verifikasi dokumen legalitas tanah atau SPBU (sistem hanya mengelola representasi grafis spasial).
- Sistem autentikasi multi-pengguna; aplikasi dirancang untuk penggunaan lokal/intranet.
1.3 Definisi, Akronim, dan Singkatan
| Istilah | Definisi |
|---|---|
| SKPL / SRS | Spesifikasi Kebutuhan Perangkat Lunak — dokumen panduan teknis pengembangan sistem. |
| WebGIS | Sistem informasi berbasis web yang mengolah data bereferensi koordinat geografis. |
| Radius Dinamis | Jarak jangkauan variabel yang dapat disesuaikan oleh pengguna untuk memetakan wilayah pelayanan sosial tiap masjid secara individual. |
| Blind Spot | Area kemiskinan yang tidak tersentuh oleh radius layanan masjid manapun, sehingga memerlukan intervensi langsung pemerintah. |
| Marker | Simbol visual (ikon) pada peta yang mewakili objek Point di lapangan. |
| AJAX / Fetch API | Metode pertukaran data antara JavaScript dan PHP secara asinkron untuk pembaruan data tanpa refresh halaman. |
| GeometryUtil | Plugin tambahan Leaflet untuk melakukan perhitungan matematis spasial seperti luas area dan jarak geodesic. |
| Haversine | Formula matematika untuk menghitung jarak terpendek antara dua titik koordinat di permukaan bumi (jarak geodesic). |
| Point-in-Polygon | Algoritma ray casting untuk menentukan apakah sebuah titik koordinat berada di dalam area polygon. |
| GeoJSON | Format data berbasis JSON standar internasional untuk merepresentasikan objek geografis (titik, garis, poligon). |
| KK | Kepala Keluarga — unit data terkecil dalam pendataan kemiskinan. |
| PKH | Program Keluarga Harapan — program bantuan sosial bersyarat dari pemerintah. |
| BPNT | Bantuan Pangan Non-Tunai — program subsidi pangan dari pemerintah. |
| BLT | Bantuan Langsung Tunai — program bantuan uang tunai dari pemerintah. |
| RT / RW | Rukun Tetangga / Rukun Warga — unit administratif terkecil di Indonesia. |
| Toggle | Fitur tombol untuk mengaktifkan atau menonaktifkan suatu kondisi secara bergantian tanpa me-refresh halaman. |
| Heatmap | Visualisasi peta kepadatan menggunakan gradien warna yang menunjukkan intensitas distribusi data spasial. |
| Layer Control | Komponen antarmuka Leaflet untuk mengaktifkan/menonaktifkan lapisan data tertentu pada peta. |
| mPDF | Library PHP untuk menghasilkan dokumen PDF dari konten HTML di sisi server. |
| Material Design | Panduan desain antarmuka dari Google yang menekankan konsistensi visual, tipografi Roboto, dan ikon Material Symbols. |
1.4 Referensi
- Standar Dokumentasi (IEEE Std 830-1998): Mengikuti panduan IEEE Recommended Practice for Software Requirements Specifications guna memastikan struktur dokumen memenuhi standar profesional internasional dalam mendefinisikan kebutuhan perangkat lunak.
- Dokumentasi Resmi Leaflet.js (v1.9.4): Digunakan sebagai referensi utama dalam implementasi mesin pemetaan, manipulasi layer spasial, penanganan marker, dan integrasi tile layer dari OpenStreetMap secara asinkron.
- Dokumentasi Leaflet.GeometryUtil (v0.10.3): Menjadi rujukan teknis khusus untuk melakukan kalkulasi matematis tingkat lanjut pada peta, seperti perhitungan jarak geodesic (Haversine) antara titik masjid dan penduduk, serta penghitungan luas area (m²) pada fitur parsil tanah secara presisi.
- Dokumentasi Leaflet.heat (v0.2.0): Referensi implementasi lapisan heatmap kepadatan kemiskinan.
- Dokumentasi PHP Native & MySQL: Referensi teknis mengenai arsitektur server-side untuk pengolahan data relasional, manajemen koneksi basis data, dan pertukaran data dalam format JSON melalui Fetch API.
- Dokumentasi mPDF (v8.3): Referensi implementasi ekspor laporan kemiskinan dalam format PDF (server-side) dengan konten tabel terstruktur format A4 Landscape.
- Standar Geospasial Indonesia (BIG): Pedoman teknis pemetaan skala mikro dan aturan simbolisasi peta untuk lingkungan permukiman yang berlaku di Indonesia.
- Kebijakan Strategis Pengentasan Kemiskinan Kota Pontianak: Landasan operasional mengenai mekanisme partisipasi masyarakat dan peran rumah ibadah dalam penyaluran bantuan sosial bagi masyarakat berpenghasilan rendah di wilayah Pontianak.
DESKRIPSI SISTEM
2.1 Perspektif Produk
Sistem WebGIS Partisipasi Rumah Ibadah ini dikembangkan sebagai aplikasi standalone (mandiri) yang mengintegrasikan data infrastruktur perkotaan dengan data kependudukan sosial. Produk ini bekerja dengan menggabungkan basis data relasional MySQL sebagai tempat penyimpanan atribut geografis dan library Leaflet.js sebagai mesin visualisasi interaktif pada sisi klien (client-side).
Berbeda dengan sistem pemetaan statis, produk ini memiliki perspektif dinamis di mana analisis spasial (perhitungan jarak dan jangkauan) dilakukan secara asinkron di sisi klien tanpa memerlukan refresh halaman. Sistem memproses data koordinat Masjid dan Penduduk Miskin untuk menghasilkan indikator visual otomatis. Integrasi fitur manajemen Jalan (Line), Tanah (Polygon), dan Batas Wilayah Administratif (Polygon) dalam satu interface memberikan perspektif wilayah yang lebih luas bagi pengambil keputusan. Panel statistik real-time yang disertai fitur filter, pencarian, dan ekspor data menjadikan sistem ini sebagai alat analisis kemiskinan yang komprehensif.
2.2 Fungsi Utama Sistem
Sistem ini menyediakan fungsionalitas utama yang mencakup manajemen data spasial dan analisis jangkauan sebagai berikut:
| No | Fungsi Utama | Deskripsi Singkat |
|---|---|---|
| F01 | Manajemen Data Masjid | Mengelola titik lokasi masjid beserta informasi Nama Masjid, Penanggung Jawab (PIC), dan Alamat. |
| F02 | Pengaturan Radius Dinamis per Masjid | Fitur slider interaktif untuk menentukan/mengubah jangkauan pelayanan sosial tiap masjid (100m–5000m) secara real-time, disertai toggle visibilitas radius per masjid secara individual. |
| F03 | Manajemen Data Penduduk Miskin | Mengelola data penduduk miskin mencakup Nama KK, Jumlah Anggota Keluarga, Alamat, jenis bantuan yang diterima (PKH/BPNT/BLT), dan foto KK. |
| F04 | Manajemen Data SPBU | Mengelola titik lokasi SPBU beserta informasi nama, nomor, dan status operasional 24 jam. |
| F05 | Manajemen Infrastruktur Jalan & Tanah | Menambah dan mengelola jaringan jalan (Line) disertai hitung panjang otomatis (m), serta parsil tanah (Polygon) disertai hitung luas otomatis (m²). |
| F06 | Manajemen Batas Wilayah Administratif | Menggambar dan mengelola polygon batas wilayah (RT/RW/Kelurahan/Kecamatan) untuk analisis distribusi kemiskinan berbasis wilayah. |
| F07 | Visualisasi Multilayer | Menampilkan peta dasar (OpenStreetMap) dengan fitur Layer Control untuk memfilter tampilan berbagai kategori data, disertai warna ikon berbeda per layer. |
| F08 | Analisis Spasial Real-Time | Sistem secara otomatis menghitung jarak geodesic antara titik penduduk terhadap radius masjid aktif setiap kali data atau parameter berubah. |
| F09 | Indikator Visual Marker | Mengubah warna marker penduduk: Merah (jika tercakup radius masjid aktif) dan Abu-abu (jika berada di luar semua radius/blind spot). |
| F10 | Filter dan Pencarian KK | Fitur pencarian nama KK secara real-time dan filter berdasarkan jenis bantuan (PKH, BPNT, BLT) dengan hasil yang mempengaruhi panel dan peta secara bersamaan. |
| F11 | Panel Statistik Real-Time | Menampilkan ringkasan cakupan kemiskinan (total KK, jiwa, terjangkau, blind spot) beserta breakdown per masjid dan per wilayah administratif. |
| F12 | Heatmap Kemiskinan | Menampilkan lapisan kepadatan titik kemiskinan menggunakan gradien warna (kuning–oranye–merah) untuk mengidentifikasi konsentrasi kemiskinan secara visual. |
| F13 | Ekspor CSV | Menghasilkan file CSV data kemiskinan (mencerminkan filter aktif) secara client-side dengan encoding UTF-8 BOM untuk kompatibilitas Microsoft Excel. |
| F14 | Ekspor PDF | Menghasilkan laporan PDF A4 Landscape berisi statistik dan tabel KK lengkap menggunakan mPDF di sisi server. |
| F15 | Informasi Detail (Popup) | Menampilkan jendela informasi detail dan alat kontrol modifikasi data saat sebuah objek di peta diklik (Edit, Hapus, Update Radius, Toggle). |
2.3 Kelas Pengguna dan Karakteristik
| Kelas Pengguna | Karakteristik | Hak Akses |
|---|---|---|
| Admin / Operator (Dinsos/PIC) | Pengelola sistem yang memiliki otoritas terhadap validitas data sosial dan infrastruktur. | Melakukan operasi CRUD penuh pada semua layer, mengelola batas wilayah, menentukan/mengupdate radius masjid, mengekspor laporan. |
| Pengurus Masjid (PIC) | Pengurus masjid yang bertanggung jawab atas data warga binaan di sekitar masjid. | Mengelola data masjid dan radius per masjid, menambah data penduduk, melihat statistik jangkauan. |
| Pengunjung / Masyarakat | Pengguna umum atau stakeholder yang memerlukan informasi sebaran kemiskinan. | Melihat peta sebaran, memantau transparansi jangkauan bantuan, dan mengidentifikasi area blind spot secara visual. |
2.4 Batasan dan Kendala Sistem
Dalam pengembangan dan implementasinya, sistem ini memiliki batasan teknis dan operasional sebagai berikut:
- Teknologi Pengembangan: Wajib menggunakan stack teknologi PHP Native (tanpa framework) dan MySQL untuk backend, serta Vanilla JavaScript dengan library Leaflet.js untuk mesin pemetaan spasial.
- Konektivitas Global: Sistem memerlukan koneksi internet aktif untuk memuat ubin peta (tiles) dari server OpenStreetMap (OSM).
- Akurasi Data Spasial: Ketepatan analisis radius sepenuhnya bergantung pada akurasi input koordinat Latitude dan Longitude. Kesalahan input koordinat akan menyebabkan kesalahan klasifikasi warna marker.
- Geocoding Manual: Sistem tidak menyediakan fitur konversi otomatis dari alamat teks ke koordinat (Geocoding); koordinat harus ditentukan secara manual melalui plotting pada peta.
- Integritas Data Kemiskinan: Sistem hanya bertugas sebagai alat visualisasi dan analisis; validasi status ekonomi penduduk dilakukan oleh otoritas terkait sebelum diinput ke sistem.
- Lingkungan Operasional: Aplikasi dioptimasi untuk berjalan pada server lokal menggunakan XAMPP/Laragon atau shared hosting dengan dukungan PHP minimal versi 7.4 dan ekstensi MySQLi aktif.
- Keamanan Spasial: Perlindungan data koordinat terbatas pada level aplikasi; sistem dirancang untuk lingkungan intranet. Implementasi HTTPS dan autentikasi disarankan sebelum deployment ke jaringan publik.
- Kapasitas Data: Sistem diuji dan dioptimasi untuk mengelola hingga 500 KK dan 20 Masjid secara bersamaan tanpa penurunan performa yang signifikan.
KEBUTUHAN FUNGSIONAL
3.1 Daftar Use Case
| UC ID | Nama Use Case | Aktor | Prioritas |
|---|---|---|---|
| UC-01 | Mengelola Data Infrastruktur Spasial | Admin | Must Have |
| UC-02 | Mengelola Data SPBU | Admin | Must Have |
| UC-03 | Mengelola Data Masjid dan Radius | Admin / PIC Masjid | Must Have |
| UC-04 | Mengelola Data Penduduk Miskin | Admin / PIC Masjid | Must Have |
| UC-05 | Mengelola Batas Wilayah Administratif | Admin | Must Have |
| UC-06 | Visualisasi Peta Multilayer | Semua Pengguna | Must Have |
| UC-07 | Analisis Intersect & Warna Otomatis | Sistem | Must Have |
| UC-08 | Modifikasi Radius Dinamis per Masjid | Admin / PIC Masjid | Must Have |
| UC-09 | Filter dan Pencarian Data Kemiskinan | Admin / PIC Masjid | Should Have |
| UC-10 | Ekspor Data Laporan | Admin | Should Have |
3.2 Detail Use Case
UC-01 Mengelola Data Infrastruktur Spasial
| Deskripsi | Admin menambahkan data Line (Jalan) dan Polygon (Parsil Tanah) untuk memberikan konteks tata ruang pada peta kemiskinan. |
| Aktor | Admin |
| Precondition | Admin telah masuk ke sistem dan memilih mode (Jalan atau Tanah) di toolbar. |
| Main Flow | 1. Admin memilih mode "Jalan" atau "Tanah" dari toolbar. 2. Admin melakukan klik berkali-kali pada peta untuk membentuk jalur (Line) atau bidang (Polygon). 3. Sistem secara otomatis menghitung panjang jalan (m) atau luas tanah (m²) secara real-time. 4. Admin mengisi atribut terkait: Nama Jalan dan Status Jalan (Nasional/Provinsi/Kabupaten), atau Nomor Persil dan Status Milik (SHM/HGB/HGU/HP). 5. Admin menekan tombol "SIMPAN". 6. Sistem mengonversi koordinat ke format GeoJSON dan menyimpannya ke database. |
| Alternative Flow | 3a. Jika Polygon belum membentuk minimal 3 titik (segitiga), tombol simpan tidak dapat diklik. |
| Postcondition | Infrastruktur baru tergambar di peta dan data tersimpan di database (tabel jalan atau persil). |
| Prioritas | Must Have |
UC-02 Mengelola Data SPBU
| Deskripsi | Admin menambahkan dan mengelola titik lokasi SPBU beserta informasi operasional. |
| Aktor | Admin |
| Precondition | Admin telah memilih mode "SPBU" di toolbar. |
| Main Flow | 1. Admin memilih mode "SPBU" dari toolbar. 2. Admin melakukan klik (plotting) pada koordinat lokasi SPBU di peta. 3. Popup formulir input muncul. 4. Admin mengisi Nama SPBU, Nomor SPBU, dan Status 24 Jam (Ya/Tidak). 5. Admin menekan tombol "SIMPAN". 6. Sistem menyimpan data SPBU ke database. |
| Alternative Flow | — |
| Postcondition | Marker SPBU muncul di peta dengan ikon berbeda berdasarkan status 24 jam: biru (SPBU 24 jam) dan oranye (SPBU biasa). |
| Prioritas | Must Have |
UC-03 Mengelola Data Masjid dan Radius
| Deskripsi | Admin atau PIC menambahkan titik lokasi Masjid pada peta beserta informasi identitas dan radius layanan default. |
| Aktor | Admin / PIC Masjid |
| Precondition | Admin telah memilih mode "Masjid & Radius" di toolbar. |
| Main Flow | 1. Admin memilih menu "Masjid & Radius" dari toolbar. 2. Admin melakukan plotting satu titik (marker) pada peta. 3. Sistem menggambar lingkaran (circle) sementara dengan radius default 500m. 4. Admin mengisi Nama Masjid, PIC, dan Alamat Masjid. 5. Admin menggeser slider radius (100m–5000m) untuk menyesuaikan besaran lingkaran secara real-time. 6. Admin menekan tombol "SIMPAN MASJID". 7. Sistem menyimpan data titik koordinat dan nilai radius ke MySQL. |
| Alternative Flow | — |
| Postcondition | Titik Masjid muncul di peta lengkap dengan area lingkaran (buffer) hijau yang transparan dan tombol toggle radius. |
| Prioritas | Must Have |
UC-04 Mengelola Data Penduduk Miskin
| Deskripsi | Admin menambahkan data warga yang tergolong miskin ke dalam sistem untuk dianalisis posisinya terhadap jangkauan masjid. |
| Aktor | Admin / PIC Masjid |
| Precondition | Admin telah memilih mode "Kemiskinan" di toolbar. |
| Main Flow | 1. Admin memilih menu "Kemiskinan" dari toolbar. 2. Admin melakukan klik (plotting) pada koordinat rumah warga di peta. 3. Popup formulir input muncul. 4. Admin mengisi Nama Kepala Keluarga, Jumlah Anggota (Jiwa), dan Alamat Lengkap. 5. Admin mencentang jenis bantuan yang diterima (PKH, BPNT, BLT). 6. Opsional: Admin mengunggah foto KK (format JPG/PNG/WebP, maks. 5 MB). 7. Admin menekan tombol "SIMPAN". 8. Sistem menyimpan koordinat dan data demografi ke MySQL. |
| Alternative Flow | 6a. Jika foto tidak diunggah, data tetap tersimpan tanpa foto. 6b. Jika format atau ukuran foto tidak valid, sistem menampilkan pesan error dan menolak file. |
| Postcondition | Titik Penduduk muncul di peta. Warnanya bergantung pada hasil analisis radius (UC-07). |
| Prioritas | Must Have |
UC-05 Mengelola Batas Wilayah Administratif
| Deskripsi | Admin menggambar polygon batas wilayah administratif (RT/RW/Kelurahan/Kecamatan) untuk analisis distribusi kemiskinan per wilayah. |
| Aktor | Admin |
| Precondition | Admin telah memilih mode "Batas Wilayah" di toolbar. |
| Main Flow | 1. Admin memilih mode "Batas Wilayah" dari toolbar. 2. Admin melakukan klik berkali-kali pada peta untuk membentuk polygon batas wilayah. 3. Sistem secara otomatis menampilkan preview polygon yang sedang digambar. 4. Setelah selesai, Admin mengisi Nama Wilayah dan Tipe Wilayah (RT/RW/Kelurahan/Kecamatan). 5. Admin menekan tombol "SIMPAN WILAYAH". 6. Sistem mengonversi koordinat ke format GeoJSON dan menyimpan ke tabel wilayah di database. |
| Alternative Flow | 3a. Jika Polygon belum membentuk minimal 3 titik, formulir simpan tidak ditampilkan. |
| Postcondition | Polygon batas wilayah tergambar di peta dengan warna berbeda per tipe wilayah. Klik pada polygon menampilkan statistik KK di dalam wilayah tersebut di panel. |
| Prioritas | Must Have |
UC-06 Visualisasi Peta Multilayer
| Deskripsi | Pengguna melihat representasi visual dari seluruh data geografis dengan kontrol visibilitas (Layer Control). |
| Aktor | Semua Pengguna |
| Precondition | Halaman WebGIS dimuat dan browser memiliki koneksi internet untuk menarik tiles dari server OSM. |
| Main Flow | 1. Pengguna membuka halaman WebGIS. 2. Sistem memuat library Leaflet.js dan ubin peta dasar dari OpenStreetMap. 3. Sistem menggunakan Fetch API untuk memuat semua data dari PHP (get_all_data.php). 4. Sistem mengelompokkan data ke dalam L.layerGroup (SPBU 24 Jam, SPBU Biasa, Jalan, Persil, Kemiskinan, Masjid, Wilayah). 5. Sistem menjalankan analisis coverage otomatis dan merender semua marker dengan warna yang sesuai. 6. Pengguna menggunakan Layer Control di pojok kanan atas untuk mengaktifkan/menonaktifkan layer tertentu. |
| Alternative Flow | 3a. Jika database kosong, peta hanya menampilkan basis jalan (OSM) tanpa marker atau polygon. |
| Postcondition | Pengguna dapat menganalisis data spesifik (misal: hanya melihat Masjid dan Penduduk) dengan mudah melalui kontrol layer. |
| Prioritas | Must Have |
UC-07 Analisis Intersect & Warna Otomatis (Core Feature)
| Deskripsi | Sistem melakukan kalkulasi jarak secara otomatis di latar belakang untuk menentukan status jangkauan bantuan setiap KK. |
| Aktor | Sistem |
| Precondition | Data Masjid dan Data Penduduk Miskin berhasil dimuat dari database. |
| Main Flow | 1. Sistem melakukan iterasi pada seluruh titik Penduduk Miskin. 2. Untuk setiap penduduk, sistem menghitung jarak (distanceTo) ke seluruh titik Masjid yang status radius-nya aktif (toggle ON). 3. Jika jarak penduduk ke salah satu masjid aktif ≤ radius masjid tersebut, sistem mengklasifikasikan sebagai "Tercakup". 4. Sistem menerapkan ikon Merah untuk penduduk Tercakup dan ikon Abu-abu untuk penduduk Blind Spot. 5. Sistem memperbarui panel statistik (total KK terjangkau, total jiwa terjangkau, breakdown per masjid). 6. Sistem merender marker ke peta. |
| Alternative Flow | 2a. Jika radius masjid dimatikan (toggle off), masjid tersebut tidak ikut dalam perhitungan analisis. |
| Postcondition | Peta menampilkan dikotomi warna yang jelas antara penduduk yang sudah dijangkau masjid dan yang menjadi target bantuan pemerintah. Panel statistik diperbarui secara real-time. |
| Prioritas | Must Have |
UC-08 Modifikasi Radius Dinamis per Masjid
| Deskripsi | PIC Masjid mengubah radius jangkauan layanan atau menonaktifkan/mengaktifkan radius pada masjid tertentu secara individual. |
| Aktor | Admin / PIC Masjid |
| Precondition | Marker Masjid sudah dirender di peta. |
| Main Flow | Alur A — Ubah Radius: 1. Pengguna mengklik marker Masjid di peta. 2. Popup muncul menampilkan informasi masjid, slider radius, dan tombol toggle. 3. Pengguna menggeser slider; sistem secara instan mengubah ukuran lingkaran di peta. 4. Pengguna menekan tombol "UPDATE RADIUS". 5. Sistem mengirim ID Masjid dan nilai radius baru via Fetch API ke PHP. 6. Analisis coverage dijalankan ulang secara otomatis. Alur B — Toggle Radius: 1. Pengguna mengklik tombol "Aktif/Nonaktif" pada popup masjid. 2. Lingkaran radius masjid tersebut ditampilkan atau disembunyikan. 3. Analisis coverage dijalankan ulang tanpa menutup popup. |
| Alternative Flow | — |
| Postcondition | Radius masjid di database diperbarui (Alur A). Status cakupan warna penduduk di sekitarnya berubah mengikuti perubahan radius atau status toggle (Alur A & B). |
| Prioritas | Must Have |
UC-09 Filter dan Pencarian Data Kemiskinan
| Deskripsi | Pengguna melakukan pencarian nama KK atau memfilter data berdasarkan jenis bantuan yang diterima (PKH/BPNT/BLT) melalui panel statistik. |
| Aktor | Admin / PIC Masjid |
| Precondition | Data kemiskinan telah dimuat dan panel statistik ditampilkan. |
| Main Flow | 1. Pengguna mengetik nama KK pada kolom pencarian di panel. 2. Sistem secara real-time (per karakter yang diketik) memfilter daftar KK yang sesuai. 3. Marker KK yang tidak sesuai filter disembunyikan dari peta. 4. Panel menampilkan daftar hasil filter beserta status jangkauan masing-masing KK. 5. Opsional: Pengguna menekan chip filter bantuan (PKH/BPNT/BLT) untuk menyaring lebih lanjut. Filter bantuan dapat dikombinasikan dengan pencarian nama. 6. Pengguna menekan tombol "Hapus Filter" untuk kembali ke tampilan lengkap. |
| Alternative Flow | 2a. Jika tidak ada KK yang cocok dengan kata kunci, panel menampilkan pesan "Tidak ada data ditemukan". |
| Postcondition | Panel dan peta menampilkan hanya data KK yang sesuai filter yang diterapkan. |
| Prioritas | Should Have |
UC-10 Ekspor Data Laporan
| Deskripsi | Admin mengekspor data kemiskinan dan statistik coverage dalam format CSV atau PDF untuk keperluan pelaporan. |
| Aktor | Admin |
| Precondition | Data kemiskinan telah dimuat dan analisis coverage telah dijalankan. |
| Main Flow | Ekspor CSV: 1. Admin menekan tombol "Export CSV" di panel. 2. Sistem menghasilkan file CSV menggunakan Blob API di sisi klien. 3. File berisi kolom: No, Nama KK, Jumlah Jiwa, Alamat, PKH, BPNT, BLT, Status Jangkauan, Nama Masjid yang Menjangkau, Jarak Terdekat (m), Foto. 4. Browser mengunduh file secara otomatis dengan encoding UTF-8 BOM. Ekspor PDF: 1. Admin menekan tombol "Export PDF" di panel. 2. Sistem mengirim request ke server PHP (cetak.php). 3. Server menghasilkan PDF A4 Landscape menggunakan mPDF berisi: judul laporan, tanggal cetak, tabel ringkasan statistik, tabel breakdown per masjid, dan tabel daftar KK lengkap. 4. Browser mengunduh file PDF secara otomatis. |
| Alternative Flow | 1a. (CSV) Jika filter aktif, CSV hanya berisi data KK yang sesuai filter. |
| Postcondition | File laporan berhasil diunduh oleh pengguna. |
| Prioritas | Should Have |
KEBUTUHAN NON-FUNGSIONAL
4.1 Spesifikasi Performa (Performance)
Mengatur tingkat kecepatan dan efisiensi sistem dalam memproses data spasial serta interaksi pengguna secara dinamis.
| ID | Deskripsi Kebutuhan |
|---|---|
| P-01 | Kecepatan Muat: Seluruh komponen peta dasar dan aset data (SPBU, Jalan, Tanah, Masjid, Penduduk, Wilayah) harus muncul sepenuhnya dalam waktu kurang dari 3 detik pada koneksi LAN. |
| P-02 | Efisiensi Analisis: Kalkulasi perubahan warna marker penduduk (Merah/Abu-abu) saat slider radius digeser harus diproses secara asynchronous di sisi klien tanpa memerlukan refresh halaman, dengan respons < 500 ms. |
| P-03 | Optimalisasi Query: Pengambilan data koordinat melalui get_all_data.php menggunakan format JSON agar tidak membebani memori browser, meskipun jumlah titik penduduk mencapai ratusan. |
| P-04 | Responsivitas Filter: Fungsi pencarian dan filter KK harus memberikan respons visual < 200 ms per karakter yang diketik. |
| P-05 | Waktu Generate PDF: Server dapat menghasilkan PDF untuk ≤ 200 KK dalam waktu < 5 detik. |
| P-06 | Kapasitas Data: Sistem mampu mengelola ≥ 500 KK dan ≥ 20 Masjid secara bersamaan tanpa penurunan performa yang signifikan. |
4.2 Spesifikasi Keamanan (Security)
Melindungi integritas basis data sistem dan menjaga kerahasiaan informasi kependudukan warga.
| ID | Deskripsi Kebutuhan |
|---|---|
| S-01 | Pencegahan SQL Injection: Seluruh proses input data pada file PHP menggunakan fungsi mysqli_real_escape_string() dan validasi tipe data sebelum masuk query SQL, guna mencegah manipulasi database. |
| S-02 | Privasi Data: Sistem tidak menampilkan data sensitif seperti NIK pada peta publik; hanya Nama KK dan status cakupan bantuan yang ditampilkan di popup peta. |
| S-03 | Validasi Spasial: Sistem menolak data input jika format Latitude dan Longitude tidak sesuai standar koordinat geografis (angka desimal) untuk menjaga validitas visual peta. |
| S-04 | Validasi Upload File: Sistem memvalidasi tipe file foto di sisi server (hanya JPG, JPEG, PNG, WebP yang diterima) dan membatasi ukuran file maksimal 5 MB untuk mencegah file upload exploit. |
| S-05 | Whitelist Operasi Hapus: Operasi DELETE data menggunakan whitelist nama tabel yang diizinkan pada hapus.php untuk mencegah penghapusan tabel sembarang (arbitrary table deletion). |
| S-06 | Validasi Enum: Nilai yang memiliki pilihan terbatas (status jalan, tipe wilayah, status SPBU, status milik persil) divalidasi terhadap daftar nilai yang diizinkan sebelum masuk ke database. |
4.3 Spesifikasi Kemudahan Penggunaan (Usability)
Menjamin sistem dapat dioperasikan secara intuitif oleh pengurus masjid maupun admin instansi pemerintah.
| ID | Deskripsi Kebutuhan |
|---|---|
| U-01 | Legenda Peta: Sistem menyediakan legenda visual yang jelas untuk membedakan arti warna marker: Merah (Penduduk Tercakup Masjid) dan Abu-abu (Penduduk Blind Spot). |
| U-02 | Interaksi Intuitif: Pengguna dapat menentukan lokasi objek (Masjid/Rumah/SPBU) secara akurat cukup dengan melakukan klik langsung pada posisi di peta untuk mendapatkan koordinat otomatis. |
| U-03 | Kontrol Navigasi: Tersedianya alat navigasi standar Leaflet (Zoom In/Out) serta fitur Layer Control untuk memfilter visibilitas data infrastruktur dan data sosial secara terpisah. |
| U-04 | Diferensiasi Warna Toolbar: Setiap tombol layer aktif memiliki warna yang berbeda (SPBU: oranye, Jalan: biru, Persil: hijau teal, Wilayah: indigo, Kemiskinan: ungu, Masjid: hijau) untuk identifikasi cepat mode aktif. |
| U-05 | Panel Statistik Interaktif: Panel menampilkan ringkasan statistik secara real-time dan dapat menampilkan detail per masjid atau per wilayah melalui navigasi internal panel tanpa reload halaman. |
| U-06 | Ikon Material Design: Sistem menggunakan Google Material Symbols sebagai ikon antarmuka yang konsisten dan familiar, menggantikan seluruh penggunaan emoji. |
4.4 Spesifikasi Reliabilitas (Reliability)
Menjamin tingkat keakuratan hasil analisis jangkauan sosial dan ketersediaan data secara konsisten.
| ID | Deskripsi Kebutuhan |
|---|---|
| AV-01 | Akurasi Spasial: Perhitungan jangkauan menggunakan algoritma geodesic (Leaflet distanceTo) untuk memastikan akurasi klasifikasi pada penduduk yang berada di perbatasan radius. |
| AV-02 | Ketersediaan Data: Sistem menjamin data koordinat yang diinput tersimpan secara permanen pada database MySQL dan dapat dipanggil secara konsisten setiap kali halaman dimuat ulang. |
| AV-03 | Anti-Double Count: Sistem menjamin KK yang dijangkau oleh lebih dari satu masjid tetap dihitung sebagai 1 KK terjangkau (tidak ada double counting dalam statistik total coverage). |
| AV-04 | Konsistensi State Toggle: Status toggle radius per masjid dipertahankan selama sesi browser aktif menggunakan objek state radiusVisibleState{} tanpa perlu refresh halaman. |
4.5 Spesifikasi Portabilitas (Portability)
Memastikan sistem dapat berjalan di berbagai lingkungan operasional dan perangkat tanpa kendala teknis.
| ID | Deskripsi Kebutuhan |
|---|---|
| C-01 | Kompatibilitas Browser: Antarmuka WebGIS harus berfungsi penuh pada browser modern utama: Google Chrome, Mozilla Firefox, dan Microsoft Edge versi stabil terbaru. |
| C-02 | Akses Lintas Perangkat: Tata letak peta dan form input responsif sehingga tetap nyaman digunakan pada Desktop, Laptop, maupun Tablet. |
| C-03 | Kemudahan Deployment: Kode program terstruktur sehingga aplikasi mudah dipindahkan dari server lokal (XAMPP/Laragon) ke server hosting daring tanpa perubahan kode yang masif. |
| C-04 | Versi PHP: Aplikasi kompatibel dengan PHP versi 7.4 ke atas dengan ekstensi MySQLi dan GD Library (untuk pemrosesan upload foto) aktif. |
ANTARMUKA EKSTERNAL
5.1 Antarmuka Pengguna
Antarmuka pengguna sistem dirancang dengan prinsip Material Design untuk mempermudah visualisasi data spasial dengan kriteria desain responsif dan interaktif agar dapat dioperasikan pada berbagai resolusi layar.
| Halaman | Deskripsi | Referensi |
|---|---|---|
| Halaman Peta Utama | Area kerja utama yang menampilkan peta interaktif (Leaflet), toolbar navigasi (SPBU, Jalan, Tanah, Wilayah, Kemiskinan, Masjid), dan Layer Control untuk filter visibilitas. | Desain WebGIS Utama |
| Form Input SPBU | Popup formulir untuk menginput Nama SPBU, Nomor, dan Status 24 Jam. | Form Data SPBU |
| Form Input Infrastruktur | Popup formulir untuk menginput data Jalan (Line) dan Tanah (Polygon) yang muncul setelah geometri selesai digambar. | Form Data Spasial |
| Form Input Masjid | Panel input untuk Nama Masjid, PIC, Alamat, dan slider radius deteksi (100m–5000m) yang mengubah ukuran lingkaran secara real-time. | Form Data Masjid |
| Form Input Penduduk Miskin | Panel input untuk Nama KK, Alamat, Jumlah Jiwa, checkbox bantuan (PKH/BPNT/BLT), dan upload foto KK. | Form Data Miskin |
| Form Input Batas Wilayah | Panel input untuk Nama Wilayah dan Tipe (RT/RW/Kelurahan/Kecamatan) yang muncul setelah polygon selesai digambar. | Form Data Wilayah |
| Panel Statistik Real-Time | Panel di sisi peta yang menampilkan ringkasan total KK/jiwa/terjangkau/blind spot, breakdown per masjid, breakdown per wilayah, area filter/pencarian, dan tombol Export CSV/PDF. | Panel Analisis |
| Popup Informasi & Update | Jendela kecil yang muncul saat marker diklik, menampilkan detail data, slider radius dan tombol toggle (untuk masjid), tombol Edit, dan tombol Hapus. | Detail Popup & Update |
5.2 Antarmuka Perangkat Keras (Hardware Interface)
Sistem membutuhkan spesifikasi perangkat keras minimal agar analisis spasial dan pemrosesan data koordinat berjalan optimal.
| Komponen | Spesifikasi Minimal |
|---|---|
| Perangkat Input | Mendukung mouse, keyboard, dan layar sentuh untuk navigasi peta di perangkat tablet/mobile. |
| Perangkat Output | Monitor/Layar dengan resolusi minimal 1024×768 untuk tampilan analisis spasial yang jernih. |
| Koneksi Internet | Bandwidth minimal 2 Mbps untuk proses streaming map tiles secara asinkron dari server OpenStreetMap. |
| Penyimpanan Server | Server web dengan kapasitas minimal 500 MB untuk menyimpan skrip PHP, basis data MySQL, dan file foto KK yang diunggah. |
5.3 Antarmuka Perangkat Lunak (Software Interface)
Sistem berinteraksi dengan beberapa komponen perangkat lunak eksternal dan library untuk menjalankan fungsi GIS.
| Layanan / Sistem | Tujuan Integrasi | Versi / Protokol |
|---|---|---|
| OpenStreetMap (OSM) | Penyedia Base Map (Peta Dasar) yang dipanggil secara dinamis melalui Tile Layer. | HTTP/HTTPS |
| Leaflet.js | Library JavaScript utama untuk pengolahan layer, marker, dan perhitungan jarak geodesic di sisi klien. | v1.9.4 |
| Leaflet.GeometryUtil | Plugin untuk kalkulasi luas area (m²) parsil tanah dan panjang jalan secara akurat. | v0.10.3 |
| Leaflet.heat | Plugin untuk visualisasi heatmap kepadatan titik kemiskinan. | v0.2.0 |
| Leaflet Color Markers | Plugin CDN untuk ikon marker berwarna yang membedakan status jangkauan (merah/abu-abu) dan tipe SPBU. | via CDN |
| Google Material Symbols | Icon font (variabel) untuk ikon antarmuka pada toolbar dan tombol-tombol UI. | via Google Fonts CDN |
| Google Fonts (Roboto) | Font teks antarmuka dengan gaya Material Design. | via Google Fonts CDN |
| MySQL Database | Tempat penyimpanan data koordinat seluruh objek (Point, Line, Polygon) dan data demografi penduduk. | v5.7+ / SQL Query |
| PHP Native | Bahasa pemrograman server-side untuk logika bisnis, API endpoint, dan pemrosesan file upload. | v7.4+ |
| mPDF | Library PHP untuk menghasilkan dokumen PDF laporan kemiskinan dari konten HTML. | v8.3 |
| Web Browser | Runtime environment untuk eksekusi JavaScript/HTML5 dan rendering peta Leaflet. | Chrome / Firefox / Edge |
| XAMPP / Laragon | Lingkungan server lokal (Apache + MySQL + PHP) untuk pengembangan dan demonstrasi. | XAMPP 8.x |
5.4 Antarmuka Komunikasi (Communication Interface)
Protokol komunikasi yang digunakan untuk menjamin pertukaran data antara klien dan server berjalan lancar.
| Jalur Komunikasi | Deskripsi Mekanisme |
|---|---|
| Client–Server | Komunikasi antara browser pengguna dan server web menggunakan protokol HTTP (lokal) atau HTTPS (produksi). |
| Data Exchange (JSON) | Pengiriman data dari MySQL ke peta dilakukan melalui skrip PHP yang menghasilkan format JSON untuk diproses oleh JavaScript (get_all_data.php). |
| Database Connectivity | Skrip PHP berkomunikasi dengan database MySQL secara internal menggunakan ekstensi MySQLi (mysqli_query, mysqli_fetch_all). |
| Asynchronous Fetch API | Operasi simpan, update, dan hapus data menggunakan JavaScript Fetch API (metode POST) untuk komunikasi asinkron tanpa reload halaman. |
| Asynchronous Map Tiles | Permintaan ubin peta (map tiles) dilakukan secara asinkron oleh Leaflet sehingga peta tetap lancar saat digeser (panning). |
| File Upload (Multipart) | Upload foto KK menggunakan multipart/form-data melalui PHP $_FILES, disimpan ke folder uploads/kemiskinan/ di server. |
DEFINISI FUNGSI DAN KEBUTUHAN PENGGUNA
6.1 Kebutuhan Pengguna
| ID | Peran Pengguna | Kebutuhan / Goal | Fungsi Sistem Terkait |
|---|---|---|---|
| UR-01 | Pengurus Masjid | Menentukan wilayah tanggung jawab sosial di sekitar masjid secara presisi. | Pengaturan Radius Dinamis per Masjid |
| UR-02 | Pengurus Masjid | Memetakan posisi jamaah/warga miskin agar bantuan tepat sasaran. | Manajemen Data & Plotting Penduduk |
| UR-03 | Pengurus Masjid | Menonaktifkan radius masjid tertentu sementara agar tidak masuk analisis. | Toggle Radius per Masjid |
| UR-04 | Pemerintah/Dinsos | Mengetahui wilayah mana yang penduduk miskinnya belum tersentuh bantuan masjid (blind spot). | Klasifikasi Warna Marker Otomatis |
| UR-05 | Pemerintah/Dinsos | Mencari data KK berdasarkan nama atau jenis bantuan untuk keperluan verifikasi lapangan. | Filter dan Pencarian KK |
| UR-06 | Pemerintah/Dinsos | Mengunduh laporan kemiskinan untuk keperluan rapat atau pengajuan anggaran. | Ekspor CSV dan PDF |
| UR-07 | Pemerintah/Dinsos | Mengetahui sebaran kemiskinan per wilayah administratif (RT/RW) untuk alokasi bantuan yang adil. | Analisis Batas Wilayah & Panel Statistik |
| UR-08 | Masyarakat Umum | Melihat transparansi sebaran rumah ibadah dan kontribusinya terhadap pengentasan kemiskinan di lingkungan. | Visualisasi Peta Multilayer Interaktif |
6.2 Detail Fungsionalitas Spesifik
6.2.1 Fungsi Analisis Radius Jangkauan
- Input: Koordinat Masjid (Lat_m, Long_m), nilai Radius (R) dalam meter, dan status toggle radius per masjid.
- Proses: Sistem menggunakan library Leaflet untuk menggambar lingkaran transparan di sekeliling titik masjid. Secara back-end (di sisi klien), sistem membandingkan jarak setiap Penduduk (P) terhadap pusat Masjid (M) menggunakan formula Haversine (
marker.distanceTo()). Hanya masjid yang status toggle radius-nya aktif (ON) yang diikutsertakan dalam perhitungan. - Output: Penentuan status penduduk berdasarkan kondisi:
- Jika Jarak (P, M) ≤ R untuk setidaknya satu masjid aktif, maka penduduk masuk kategori "Terjangkau".
- Jika Jarak (P, M) > R untuk semua masjid aktif, maka penduduk masuk kategori "Blind Spot".
- Anti-Double Count: KK yang dijangkau lebih dari satu masjid tetap dihitung 1 KK dalam statistik total menggunakan struktur
kkCoverage[kkId]yang berbasis ID unik KK.
6.2.2 Fungsi Analisis Point-in-Polygon (Batas Wilayah)
- Input: Koordinat KK (titik) dan koordinat vertex polygon Batas Wilayah dalam format GeoJSON.
- Proses: Sistem menggunakan algoritma ray casting (
pointInPolygon()) untuk menentukan apakah sebuah titik KK berada di dalam polygon wilayah. Algoritma memancarkan sebuah ray (sinar) horizontal dari titik ke arah tak terhingga dan menghitung jumlah perpotongan dengan sisi-sisi polygon. Jumlah ganjil berarti titik berada di dalam polygon. - Output: Daftar KK per wilayah beserta statistik: jumlah total KK, jumlah jiwa, KK terjangkau masjid, dan KK blind spot dalam wilayah tersebut. Ditampilkan di panel saat wilayah diklik.
6.2.3 Fungsi Klasifikasi Warna Otomatis (Marker Coloring)
Sistem mengubah atribut visual secara dinamis berdasarkan hasil analisis radius tanpa intervensi manual tambahan:
- Marker Merah: Menunjukkan penduduk miskin yang berada dalam jangkauan minimal satu masjid aktif. Fungsi ini membantu pihak masjid memvalidasi daftar penerima bantuan internal mereka.
- Marker Abu-abu: Menunjukkan penduduk miskin yang berada di luar jangkauan semua masjid aktif (Blind Spot). Fungsi ini memberikan sinyal darurat bagi pemerintah untuk segera memberikan intervensi bantuan di titik tersebut.
6.2.4 Fungsi Informasi Interaktif (Tooltip & Popup)
Sistem menampilkan informasi detail saat pengguna mengklik objek di peta:
- Informasi Masjid: Nama Masjid, Nama PIC/Pengurus, Alamat, slider radius, tombol toggle radius (Aktif/Nonaktif), tombol Edit, tombol Hapus, dan jumlah KK yang dijangkau masjid ini.
- Informasi Penduduk: Profil KK (nama, jumlah jiwa, alamat), jenis bantuan (PKH/BPNT/BLT), foto KK (jika ada), status jangkauan (Terjangkau/Blind Spot), dan nama masjid yang menjangkau beserta jaraknya dalam meter.
- Informasi SPBU: Nama SPBU, Nomor, Status 24 Jam, tombol Edit, tombol Hapus.
- Informasi Infrastruktur: Panjang jalan otomatis (m), luas parsil tanah (m²), status kepemilikan/jalan, tombol Edit dan Hapus.
- Informasi Batas Wilayah: Nama wilayah, tipe (RT/RW/Kelurahan/Kecamatan), dan tombol untuk melihat detail KK per wilayah di panel statistik.
6.2.5 Fungsi Filter dan Pencarian
- Pencarian Nama KK: Input teks real-time yang memfilter daftar KK berdasarkan kecocokan parsial nama (case-insensitive). Hasil filter ditampilkan di panel dan marker yang tidak cocok disembunyikan dari peta.
- Filter Bantuan (PKH/BPNT/BLT): Tombol chip yang dapat diklik untuk memfilter KK berdasarkan jenis bantuan yang diterima. Filter dapat dikombinasikan (multi-filter) dan digabungkan dengan pencarian nama.
- Reset Filter: Tombol "Hapus Filter" mengembalikan tampilan ke kondisi semula (semua KK ditampilkan di panel dan peta).
6.2.6 Fungsi Ekspor Data
Ekspor CSV:
- Menggunakan JavaScript Blob API (client-side) tanpa memerlukan request tambahan ke server.
- Kolom: No, Nama KK, Jumlah Jiwa, Alamat, PKH, BPNT, BLT, Status Jangkauan, Dijangkau Masjid (nama-nama masjid), Jarak Terdekat (m), Nama File Foto.
- Encoding UTF-8 BOM untuk kompatibilitas Microsoft Excel.
- Mencerminkan filter yang sedang aktif saat tombol diklik.
Ekspor PDF:
- Menggunakan library mPDF v8.3 di sisi server (
cetak.php). - Format kertas A4 Landscape.
- Konten laporan: judul dan tanggal cetak, tabel ringkasan statistik, tabel breakdown per masjid (nama, radius, KK terjangkau, jiwa terjangkau), dan tabel daftar KK lengkap.
- Data coverage (terjangkau/blind spot) dihitung ulang di server menggunakan formula Haversine dalam PHP untuk konsistensi dengan tampilan di peta.
6.3 Analisis Alur Kerja Pengentasan Kemiskinan
Secara operasional, sistem ini mendukung kolaborasi strategis dalam urutan berikut:
| Tahap | Aktivitas | Pelaksana |
|---|---|---|
| Inisialisasi Data | Admin memasukkan data infrastruktur (SPBU, Jalan, Persil), menggambar polygon batas wilayah administratif, memasukkan koordinat masjid, serta menginput data penduduk miskin ke dalam database. | Admin Sistem |
| Penentuan Komitmen | Pengurus masjid menyesuaikan slider radius untuk menentukan berapa meter wilayah yang sanggup mereka "kawal" secara finansial (misal: 500m). Masjid yang belum siap dapat dinonaktifkan radiusnya sementara menggunakan toggle. | Pengurus Masjid |
| Identifikasi Celah | Pemerintah membuka peta, mengaktifkan layer kemiskinan, dan mencari posisi Marker Abu-abu (blind spot). Fitur filter dapat digunakan untuk memprioritaskan KK yang tidak menerima bantuan apapun (bukan PKH, BPNT, maupun BLT). | Pemerintah / Dinsos |
| Analisis Per Wilayah | Admin mengklik polygon batas wilayah untuk melihat distribusi KK terjangkau vs. blind spot per RT/RW, guna mengidentifikasi wilayah yang paling membutuhkan intervensi. | Pemerintah / Dinsos |
| Pelaporan | Admin mengekspor data ke CSV atau PDF untuk keperluan rapat koordinasi, pengajuan anggaran, atau dokumentasi program pengentasan kemiskinan. | Admin Sistem |
| Intervensi Target | Pemerintah mengirimkan bantuan khusus ke area Marker Abu-abu, sementara Marker Merah dikelola secara mandiri oleh masjid lokal berdasarkan radius yang telah ditetapkan. | Pemerintah / Dinsos |
KESIMPULAN
Sebagai penutup, dokumen SKPL ini disusun untuk memberikan panduan komprehensif dalam pengembangan sistem WebGIS Partisipasi Masjid untuk Pengentasan Kemiskinan. Melalui integrasi antara basis data MySQL, logika PHP Native, dan visualisasi Leaflet.js, sistem ini mampu mengubah data kemiskinan yang kompleks menjadi informasi spasial yang mudah dipahami.
Fitur-fitur inti yang diimplementasikan — meliputi analisis radius Haversine per masjid, toggle radius individual, batas wilayah administratif dengan analisis point-in-polygon, filter dan pencarian data KK, panel statistik real-time, visualisasi heatmap, serta ekspor CSV dan PDF — memungkinkan kolaborasi antara pemerintah dan rumah ibadah dalam menyalurkan bantuan menjadi lebih transparan, terukur, dan tepat sasaran. Antarmuka berbasis Material Design dengan Google Material Symbols menjamin kemudahan penggunaan bagi berbagai kalangan pengguna, mulai dari petugas pemerintah hingga pengurus masjid.
LAMPIRAN
Gambar 1 WebGIS Partisipasi Masjid untuk Pengentasan Kemiskinan
(Screenshot tampilan utama peta dengan semua layer aktif)
Gambar 2 Input Masjid dan Radius
(Screenshot form input masjid dengan slider radius real-time)
Gambar 3 Input Data Penduduk Miskin
(Screenshot form input KK dengan checkbox bantuan PKH/BPNT/BLT dan upload foto)
Gambar 4 Fitur Batas Wilayah dan Panel Statistik Per Wilayah
(Screenshot polygon batas wilayah dan panel breakdown statistik per wilayah)
Gambar 5 Fitur Filter dan Pencarian Data KK
(Screenshot panel filter dengan chip bantuan dan hasil pencarian real-time)
Gambar 6 Use Case Diagram
(Diagram UML Use Case sistem WebGIS)
Gambar 7 ERD Diagram
(Entity Relationship Diagram database: tabel spbu, masjid, kemiskinan, jalan, persil, wilayah)