Files
d1041231060-WebGIS-PovertyMap/uas/SKPL.md
T
Athallah Ghathfan Aqila 6215b4367a Initial commit — WebGIS UAS GeoMiskin
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>
2026-06-11 13:31:33 +07:00

48 KiB
Raw Blame History

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 (kuningoranyemerah) 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 (100m5000m) 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 (kuningoranyemerah) 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 (100m5000m) 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 (100m5000m) 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
ClientServer 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)