Files
d1041231044_webgis_geopoverty/SRS_CONTEXT.md
T
2026-06-11 21:18:48 +07:00

33 KiB
Raw Blame History

SPESIFIKASI KEBUTUHAN PERANGKAT LUNAK

(SKPL / Software Requirements Specification)

WebGIS Pemetaan Kemiskinan Berbasis

Partisipasi Rumah Ibadah

(Studi Kasus: Masjid di Kota Pontianak)

Versi 1.0 | Pontianak, 2025

Disusun sebagai pemenuhan tugas mata kuliah

Sistem Informasi Geografis (SIG)

BAB 1 PENDAHULUAN

1.1 Tujuan Dokumen

Dokumen Spesifikasi Kebutuhan Perangkat Lunak (SKPL) ini mendeskripsikan secara lengkap kebutuhan fungsional dan non-fungsional dari sistem WebGIS Pemetaan Kemiskinan Berbasis Partisipasi Rumah Ibadah. Dokumen ini menjadi acuan bagi pengembang, penguji, dan seluruh pemangku kepentingan dalam proses pengembangan sistem.

1.2 Latar Belakang dan Deskripsi Sistem

Kemiskinan merupakan masalah sosial yang memerlukan penanganan terkoordinasi dan berbasis data. Di tingkat komunitas, rumah ibadah — khususnya masjid — memegang peran sentral sebagai pusat kegiatan sosial masyarakat. Masjid secara aktif mengelola program zakat, infak, sedekah (ZIS), dan berbagai bantuan sosial lainnya. Namun, distribusi bantuan tersebut seringkali tidak optimal karena ketiadaan data spasial mengenai sebaran keluarga miskin di sekitar masjid.

Sistem yang dibangun adalah sebuah WebGIS (Web-based Geographic Information System) yang memungkinkan pemetaan interaktif titik-titik kemiskinan dan lokasi masjid di wilayah Kota Pontianak. Dengan fitur radius layanan masjid yang dapat dikonfigurasi, sistem ini secara visual menunjukkan keluarga miskin mana yang berada dalam jangkauan layanan sosial suatu masjid dan mana yang belum terjangkau, sehingga membantu perencanaan distribusi bantuan yang lebih tepat sasaran.

Sistem ini dibangun menggunakan teknologi Leaflet.js untuk peta interaktif, PHP sebagai backend, dan MySQL sebagai basis data, yang dapat diakses melalui browser web tanpa instalasi khusus.

1.3 Lingkup Masalah

Sistem ini mencakup:

• Pemetaan dan pengelolaan data titik kemiskinan (keluarga miskin) secara spasial.

• Pemetaan dan pengelolaan data masjid sebagai representasi Rumah Ibadah.

• Visualisasi radius jangkauan layanan sosial masjid terhadap sebaran titik kemiskinan.

• Analisis visual untuk mendukung perencanaan distribusi bantuan berbasis lokasi.

Sistem ini TIDAK mencakup:

• Pengelolaan transaksi keuangan, zakat, atau distribusi bantuan secara langsung.

• Integrasi dengan sistem informasi pemerintah (DTKS, BPJS, dsb.) pada versi ini.

• Rumah ibadah selain masjid (gereja, pura, vihara) — merupakan rencana pengembangan lanjutan.

1.4 Definisi, Akronim, dan Istilah

Istilah / Akronim Definisi
WebGIS Web-based Geographic Information System sistem informasi geografis berbasis web browser
SKPL / SRS Spesifikasi Kebutuhan Perangkat Lunak / Software Requirements Specification
SIG Sistem Informasi Geografis
Kemiskinan (entitas) Data spasial yang merepresentasikan lokasi dan atribut keluarga miskin dalam sistem
KK Kepala Keluarga
Masjid (entitas) Data spasial lokasi masjid beserta atribut dan radius layanannya dalam sistem
PIC Masjid Person In Charge pengurus/penanggung jawab masjid yang terdaftar dalam sistem
Radius Layanan Jangkauan area pelayanan sosial masjid, divisualisasikan sebagai lingkaran pada peta (1005000 m)
Leaflet.js Library JavaScript open-source untuk peta interaktif berbasis web
OSM OpenStreetMap penyedia basemap peta dasar bersifat open-source
CRUD Create, Read, Update, Delete operasi dasar pengelolaan data
Marker Ikon titik pada peta yang merepresentasikan lokasi suatu entitas
Mode View Mode tampil saja (read-only); semua fungsi edit dinonaktifkan
Mode Edit Mode aktif yang memungkinkan operator menambah, menghapus, dan memperbarui data
ZIS Zakat, Infak, Sedekah program sosial berbasis rumah ibadah

1.5 Referensi

• Leaflet.js Documentation https://leafletjs.com/

• OpenStreetMap https://www.openstreetmap.org/

• IEEE Std 830-1998: IEEE Recommended Practice for Software Requirements Specifications

• Peraturan Presiden No. 15 Tahun 2010 tentang Percepatan Penanggulangan Kemiskinan

• Undang-Undang No. 13 Tahun 2011 tentang Penanganan Fakir Miskin

• BPS Data Kemiskinan Kota Pontianak

BAB 2 DESKRIPSI UMUM SISTEM

2.1 Perspektif Produk

WebGIS ini adalah aplikasi perangkat lunak berbasis browser yang berdiri mandiri (standalone). Sistem ini menggantikan proses manual pencatatan dan pemetaan data kemiskinan yang selama ini tidak memiliki komponen spasial. Sistem beroperasi pada arsitektur client-server:

• Client: Browser web modern (Chrome, Firefox, Edge) — tidak memerlukan instalasi tambahan

• Server: PHP (built-in server untuk pengembangan, Apache/Nginx untuk produksi)

• Database: MySQL untuk penyimpanan data atribut dan koordinat

• Basemap: Tile peta OpenStreetMap (memerlukan koneksi internet)

Sistem ini dirancang sebagai alat bantu pengambilan keputusan (Decision Support Tool) bagi:

• Pengurus masjid: untuk mengetahui sebaran keluarga miskin dalam radius layanannya

• Aparat kelurahan/kecamatan: untuk pemetaan kemiskinan di wilayah administratif

• Relawan sosial: untuk perencanaan rute dan target distribusi bantuan

2.2 Fungsi Produk

No Fungsi Utama Deskripsi
1 Pemetaan Kemiskinan Input, tampil, dan hapus titik lokasi keluarga miskin beserta atribut nama KK, jumlah anggota keluarga, dan alamat
2 Pemetaan Masjid Input, tampil, dan hapus data masjid beserta nama PIC dan alamat
3 Radius Layanan Masjid Visualisasi lingkaran jangkauan layanan masjid yang dapat dikonfigurasi (1005000 m) untuk analisis cakupan terhadap titik kemiskinan
4 Filter Layer Toggle tampil/sembunyikan layer kemiskinan dan masjid secara independen
5 Mode View / Edit Pemisahan mode tampil (publik) dan mode edit (operator) untuk kontrol akses sederhana
6 Visualisasi Tematik Simbologi warna berbeda untuk marker kemiskinan (oranye) dan masjid (biru) agar mudah dibedakan
7 Fokus Lokasi Klik card di sidebar untuk menavigasi peta ke lokasi entitas terpilih

2.3 Karakteristik Pengguna

Tipe Pengguna Karakteristik Hak Akses dalam Sistem
Operator Pengurus masjid, staf kelurahan, atau relawan yang bertanggung jawab atas kebenaran data. Memiliki kemampuan dasar penggunaan browser dan peta digital. Mode View + Mode Edit (CRUD penuh: tambah, lihat, hapus, update radius)
Masyarakat / Publik Warga atau pihak yang ingin melihat peta sebaran kemiskinan dan masjid. Tidak perlu login. Mode View saja (hanya lihat dan navigasi peta)

Catatan: Versi 1.0 belum mengimplementasikan sistem autentikasi berbasis akun. Pemisahan akses dilakukan melalui mode UI (View/Edit). Implementasi login merupakan kebutuhan pengembangan lanjutan.

2.4 Batasan Sistem

• Belum terdapat sistem autentikasi/login pada versi 1.0.

• Koordinat disimpan sebagai nilai desimal (DECIMAL), bukan tipe spasial MySQL POINT.

• Analisis spasial terbatas pada visualisasi radius buffer — belum ada query "titik dalam radius" secara otomatis.

• Tidak mendukung export data ke format GIS (Shapefile, GeoJSON, KML).

• Hanya mendukung rumah ibadah jenis masjid; rumah ibadah lain merupakan rencana pengembangan.

• Memerlukan koneksi internet untuk memuat tile peta OpenStreetMap.

• Tidak mendukung pengeditan bersamaan oleh banyak pengguna (no concurrent editing).

2.5 Asumsi dan Ketergantungan

• Server menjalankan PHP versi 7.4 atau lebih baru dengan ekstensi mysqli aktif.

• MySQL versi 5.7 atau lebih baru tersedia dan dapat diakses oleh PHP.

• Browser pengguna mendukung ES6, Fetch API, dan Leaflet.js.

• Koordinat menggunakan sistem referensi WGS84 (EPSG:4326).

• Data titik kemiskinan diperoleh dari survei lapangan oleh relawan yang terlatih.

BAB 3 KEBUTUHAN FUNGSIONAL

Kebutuhan fungsional didefinisikan per modul. Setiap kebutuhan memiliki ID unik, deskripsi, spesifikasi input-proses-output, dan tingkat prioritas.

3.1 Modul Peta Interaktif

KF-01 Inisialisasi Peta

Atribut Deskripsi
ID Kebutuhan KF-01
Nama Inisialisasi Peta Interaktif
Deskripsi Sistem menampilkan peta interaktif berbasis Leaflet.js dengan tile basemap OpenStreetMap, terpusat pada koordinat Kota Pontianak.
Input Koordinat pusat default (Pontianak), zoom level awal
Proses Inisialisasi map container Leaflet, muat tile OSM, set viewport awal
Output Peta interaktif tampil di browser; pengguna dapat zoom, pan, dan klik peta
Prioritas Tinggi (Critical)

KF-02 Toggle Layer Tematik

Atribut Deskripsi
ID Kebutuhan KF-02
Nama Manajemen Visibilitas Layer
Deskripsi Pengguna dapat menampilkan atau menyembunyikan layer Kemiskinan dan layer Masjid secara independen melalui kontrol overlay Leaflet dan checkbox di sidebar.
Input Klik checkbox sidebar atau overlay control di pojok peta
Proses Tambah atau hapus layer group dari map object; sinkronisasi state checkbox dengan layer control
Output Layer tampil atau hilang dari peta secara real-time tanpa reload halaman
Prioritas Tinggi

3.2 Modul Data Kemiskinan

KF-03 Tambah Data Keluarga Miskin

Atribut Deskripsi
ID Kebutuhan KF-03
Nama Input Titik Lokasi Keluarga Miskin
Deskripsi Operator menambahkan data keluarga miskin dengan mengklik titik lokasi di peta dan mengisi formulir atribut. Sistem menyimpan data dan menampilkan marker di peta.
Input Nama kepala keluarga (teks), jumlah KK (angka positif), alamat (teks), koordinat latitude/longitude (dari klik peta)
Proses Validasi input tidak kosong → POST ke create_kemiskinan.php → INSERT ke tabel kemiskinan → refresh layer kemiskinan
Output Marker oranye muncul di lokasi yang diklik; card data muncul di sidebar; data tersimpan di database
Prioritas Tinggi

KF-04 Lihat Daftar Data Kemiskinan

Atribut Deskripsi
ID Kebutuhan KF-04
Nama Tampil Semua Data Keluarga Miskin
Deskripsi Sistem memuat seluruh data kemiskinan dari database dan menampilkannya sebagai marker di peta beserta daftar card di sidebar secara otomatis saat halaman dibuka.
Input Request load halaman atau aksi refresh data
Proses GET read_kemiskinan.php → parse JSON response → render marker per record → render sidebar card per record
Output Semua titik kemiskinan tampil sebagai marker oranye di peta; daftar card tampil di sidebar dengan atribut nama KK, jumlah KK, dan alamat
Prioritas Tinggi

KF-05 Fokus ke Lokasi Keluarga Miskin

Atribut Deskripsi
ID Kebutuhan KF-05
Nama Navigasi Peta ke Lokasi Keluarga Miskin
Deskripsi Pengguna mengklik tombol 'Fokus' pada card di sidebar, dan peta secara otomatis berpindah serta memperbesar tampilan ke lokasi keluarga miskin tersebut.
Input Klik tombol Fokus pada card keluarga miskin di sidebar
Proses Ambil nilai latitude/longitude dari data card → panggil map.setView(koordinat, zoom)
Output Peta bergerak dan memperbesar ke koordinat keluarga miskin yang dipilih
Prioritas Sedang

KF-06 Hapus Data Keluarga Miskin

Atribut Deskripsi
ID Kebutuhan KF-06
Nama Hapus Titik Lokasi Keluarga Miskin
Deskripsi Operator (dalam Mode Edit) menghapus data keluarga miskin dari sistem. Tombol hapus hanya aktif dalam Mode Edit.
Input Klik tombol 'Hapus' pada card di sidebar (hanya aktif di Mode Edit)
Proses Konfirmasi penghapusan → POST ke delete_kemiskinan.php dengan id → DELETE dari database → hapus marker dari layer peta → hapus card dari sidebar
Output Marker hilang dari peta, card hilang dari sidebar, data terhapus permanen dari database
Prioritas Tinggi

3.3 Modul Data Masjid

KF-07 Tambah Data Masjid

Atribut Deskripsi
ID Kebutuhan KF-07
Nama Input Lokasi dan Data Masjid
Deskripsi Operator menambahkan data masjid dengan mengklik lokasi di peta dan mengisi formulir. Sistem menampilkan marker masjid beserta lingkaran radius layanannya.
Input Nama masjid (teks), nama PIC/pengurus (teks), alamat (teks), radius layanan awal (integer, default 500 m, range 1005000), koordinat lat/lng dari klik peta
Proses Validasi input → POST ke create_masjid.php → INSERT ke tabel masjid → render marker biru + L.circle radius di peta → render card di sidebar
Output Marker biru dan lingkaran radius muncul di peta; card masjid muncul di sidebar dengan tombol update radius
Prioritas Tinggi

KF-08 Lihat Daftar Data Masjid

Atribut Deskripsi
ID Kebutuhan KF-08
Nama Tampil Semua Data Masjid dan Radius Layanan
Deskripsi Sistem memuat seluruh data masjid dari database dan menampilkannya sebagai marker biru beserta lingkaran radius layanan di peta, serta daftar card di sidebar.
Input Request load halaman atau aksi refresh data
Proses GET read_masjid.php → parse JSON → render marker biru per masjid → render L.circle sesuai nilai radius → render card sidebar
Output Semua masjid tampil sebagai marker biru; lingkaran radius masing-masing masjid tampil di peta; sidebar menampilkan nama, PIC, alamat, dan nilai radius saat ini
Prioritas Tinggi

KF-09 Fokus ke Lokasi Masjid

Atribut Deskripsi
ID Kebutuhan KF-09
Nama Navigasi Peta ke Lokasi Masjid
Deskripsi Pengguna mengklik tombol 'Fokus' pada card masjid di sidebar untuk menavigasi peta ke lokasi masjid tersebut.
Input Klik tombol Fokus pada card masjid di sidebar
Proses Ambil koordinat masjid → panggil map.setView(koordinat, zoom)
Output Peta bergerak dan memperbesar ke lokasi masjid yang dipilih
Prioritas Sedang

KF-10 Perbarui Radius Layanan Masjid

Atribut Deskripsi
ID Kebutuhan KF-10
Nama Update Radius Jangkauan Layanan Masjid
Deskripsi Operator mengubah nilai radius layanan masjid untuk memperbarui visualisasi lingkaran cakupan di peta. Fitur ini krusial untuk analisis apakah keluarga miskin tertentu berada dalam jangkauan layanan masjid.
Input ID masjid, nilai radius baru (integer, range 1005000 meter)
Proses Validasi range nilai radius → POST ke update_masjid_radius.php → UPDATE kolom radius di database → re-render L.circle dengan radius baru di peta
Output Lingkaran radius masjid di peta berubah ukuran secara real-time sesuai nilai radius yang diperbarui
Prioritas Tinggi

KF-11 Hapus Data Masjid

Atribut Deskripsi
ID Kebutuhan KF-11
Nama Hapus Data Masjid
Deskripsi Operator (dalam Mode Edit) menghapus data masjid beserta lingkaran radiusnya dari sistem.
Input Klik tombol 'Hapus' pada card masjid di sidebar (hanya aktif di Mode Edit)
Proses Konfirmasi penghapusan → POST ke delete_masjid.php dengan id → DELETE dari database → hapus marker dan lingkaran radius dari peta → hapus card dari sidebar
Output Marker dan lingkaran radius masjid hilang dari peta; card hilang dari sidebar; data terhapus dari database
Prioritas Tinggi

3.4 Modul Mode Sistem

KF-12 Mode View (Tampil)

Atribut Deskripsi
ID Kebutuhan KF-12
Nama Mode View / Tampil
Deskripsi Mode default saat sistem dibuka. Semua kontrol edit (tambah data, hapus, update radius) dinonaktifkan. Pengguna hanya dapat melihat peta, membaca data di sidebar, menggunakan filter layer, dan navigasi fokus lokasi.
Input Klik tombol/toggle 'View Mode' atau kondisi awal sistem
Proses Set state mode = 'view' → disable tombol tambah, hapus, update radius → sembunyikan alat gambar
Output UI dalam keadaan read-only; tombol edit tampak abu-abu/nonaktif
Prioritas Tinggi

KF-13 Mode Edit

Atribut Deskripsi
ID Kebutuhan KF-13
Nama Mode Edit
Deskripsi Mode aktif yang memungkinkan operator melakukan operasi CRUD. Semua kontrol input dan hapus diaktifkan.
Input Klik tombol/toggle 'Edit Mode'
Proses Set state mode = 'edit' → enable tombol tambah data, hapus, update radius
Output UI dalam keadaan edit aktif; klik pada peta memicu input form data baru; tombol hapus dan update radius aktif
Prioritas Tinggi

BAB 4 KEBUTUHAN NON-FUNGSIONAL

4.1 Performa

ID Kebutuhan Metrik Target
KNF-01 Waktu muat peta awal < 5 detik pada koneksi internet 10 Mbps
KNF-02 Waktu respons operasi CRUD < 2 detik per operasi pada jaringan lokal
KNF-03 Kapasitas render data Mampu menampilkan hingga 500 marker tanpa penurunan performa signifikan

4.2 Keamanan

ID Kebutuhan Keterangan
KNF-04 Validasi Input Server-side Semua input dari client divalidasi dan di-sanitasi di sisi PHP sebelum diteruskan ke database untuk mencegah SQL Injection dan XSS.
KNF-05 Prepared Statement Seluruh query ke database menggunakan mysqli prepared statements atau PDO.
KNF-06 Autentikasi (Pengembangan Lanjutan) Versi mendatang wajib mengimplementasikan sistem login berbasis session/JWT untuk memisahkan akses Operator dan Publik.
KNF-07 HTTPS di Produksi Sistem di-deploy menggunakan protokol HTTPS di lingkungan produksi.

4.3 Kemudahan Penggunaan (Usability)

ID Kebutuhan Keterangan
KNF-08 Antarmuka Intuitif Navigasi peta mengikuti konvensi WebGIS standar (zoom scroll, drag pan, klik untuk detail).
KNF-09 Resolusi Minimum Antarmuka dapat digunakan dengan baik pada resolusi layar minimal 1280x720 piksel.
KNF-10 Feedback Aksi Setiap operasi CRUD memberikan notifikasi sukses atau pesan error yang informatif.
KNF-11 Konsistensi Simbologi Warna marker konsisten di seluruh sesi: oranye = kemiskinan, biru = masjid.

4.4 Reliabilitas

ID Kebutuhan Keterangan
KNF-12 Integritas Data Setiap perubahan data langsung disimpan ke database; tidak ada state yang hanya tersimpan di memori browser.
KNF-13 Penanganan Error Jika koneksi database gagal atau tile peta tidak termuat, sistem menampilkan pesan error yang informatif — tidak memunculkan halaman kosong atau crash.

4.5 Portabilitas

ID Kebutuhan Keterangan
KNF-14 Lintas Browser Berjalan normal di Chrome 90+, Firefox 88+, dan Edge 90+.
KNF-15 Lintas OS Server Dapat di-deploy di Linux (Ubuntu/Debian) maupun Windows Server dengan PHP dan MySQL.
KNF-16 Kemudahan Instalasi Untuk pengembangan, sistem dapat dijalankan dengan satu perintah: php -S localhost:8000.

BAB 5 ANTARMUKA EKSTERNAL

5.1 Antarmuka Pengguna (UI)

Sistem menggunakan antarmuka single-page dengan tiga area utama:

5.1.1 Toolbar Atas

• Tombol toggle Mode (View / Edit)

• Tombol switch tipe data aktif (Kemiskinan / Masjid)

• Judul dan identitas aplikasi

5.1.2 Sidebar Kiri

• Checkbox filter layer: Kemiskinan dan Masjid (sinkron dengan overlay control Leaflet)

• Daftar card untuk setiap entitas yang termuat dari database

• Card Kemiskinan berisi: nama KK, jumlah KK, alamat, tombol Fokus, tombol Hapus (aktif di Edit Mode)

• Card Masjid berisi: nama masjid, nama PIC, alamat, radius saat ini, tombol Fokus, input + tombol Update Radius (aktif di Edit Mode), tombol Hapus (aktif di Edit Mode)

5.1.3 Area Peta Utama

• Peta interaktif Leaflet dengan basemap OpenStreetMap

• Marker oranye untuk titik kemiskinan; marker biru untuk masjid

• Lingkaran radius layanan di setiap masjid (dapat dikonfigurasi)

• Overlay control di pojok kanan atas untuk toggle layer

• Pop-up atribut saat marker diklik

5.2 Antarmuka Perangkat Lunak

Komponen Eksternal Versi Peran
Leaflet.js 1.x Library peta interaktif utama — render marker, lingkaran radius, kontrol peta
OpenStreetMap Tiles N/A Penyedia basemap — tile server eksternal, memerlukan koneksi internet
PHP (Backend) 7.4+ Menangani logika bisnis, validasi input, dan komunikasi dengan database
MySQL 5.7+ Penyimpanan data atribut kemiskinan dan masjid
Fetch API (Browser) ES6+ Mekanisme komunikasi asinkron antara frontend JavaScript dan endpoint PHP

5.3 Antarmuka Komunikasi (API Endpoint)

Endpoint Method Fungsi Format Respons
php/read_kemiskinan.php GET Ambil semua data keluarga miskin JSON Array
php/create_kemiskinan.php POST Tambah data keluarga miskin baru Text (success/error)
php/delete_kemiskinan.php POST Hapus data keluarga miskin berdasarkan ID Text (success/error)
php/read_masjid.php GET Ambil semua data masjid JSON Array
php/create_masjid.php POST Tambah data masjid baru Text (success/error)
php/update_masjid_radius.php POST Perbarui radius layanan masjid Text (success/error)
php/delete_masjid.php POST Hapus data masjid berdasarkan ID Text (success/error)

5.4 Skema Basis Data

Tabel: kemiskinan

Kolom Tipe Data Keterangan
id INT AUTO_INCREMENT (PK) Primary key, unik per record
nama_kepala_keluarga VARCHAR(255) NOT NULL Nama kepala keluarga miskin
jumlah_kk INT NOT NULL Jumlah anggota keluarga (angka positif)
alamat TEXT NOT NULL Alamat lengkap tempat tinggal
latitude DECIMAL(10,8) NOT NULL Koordinat lintang (WGS84, range -90 hingga +90)
longitude DECIMAL(11,8) NOT NULL Koordinat bujur (WGS84, range -180 hingga +180)
created_at TIMESTAMP DEFAULT NOW() Waktu pencatatan data

Tabel: masjid

Kolom Tipe Data Keterangan
id INT AUTO_INCREMENT (PK) Primary key, unik per record
nama_masjid VARCHAR(255) NOT NULL Nama lengkap masjid
pic_masjid VARCHAR(255) NOT NULL Nama pengurus/penanggung jawab masjid
alamat TEXT NOT NULL Alamat lengkap masjid
latitude DECIMAL(10,8) NOT NULL Koordinat lintang (WGS84)
longitude DECIMAL(11,8) NOT NULL Koordinat bujur (WGS84)
radius INT DEFAULT 500 Radius layanan dalam meter (range valid: 1005000)
created_at TIMESTAMP DEFAULT NOW() Waktu pencatatan data

BAB 6 ANALISIS BISNIS PROSES DAN KONTRIBUSI PENGENTASAN KEMISKINAN

6.1 Konteks dan Permasalahan

Pengentasan kemiskinan di tingkat komunitas memerlukan dua elemen kunci: data yang akurat tentang siapa dan di mana keluarga miskin berada, serta jaringan distribusi bantuan yang efisien. Masjid sebagai lembaga sosial komunitas memiliki kapasitas distribusi tersebut melalui program ZIS, namun seringkali tidak memiliki peta sebaran penerima manfaat.

Permasalahan utama yang diselesaikan sistem ini:

• Tidak adanya data spasial mengenai sebaran keluarga miskin di sekitar masjid.

• Distribusi bantuan bersifat reaktif (menunggu yang datang) bukan proaktif (mendatangi yang membutuhkan).

• Potensi tumpang tindih cakupan antar masjid yang berdekatan, atau sebaliknya, ada wilayah yang tidak terjangkau masjid manapun (coverage gap).

6.2 Alur Bisnis Proses

6.2.1 Proses Pendataan Keluarga Miskin (Partisipatif)

1. Relawan atau pengurus RT/RW melakukan survei lapangan untuk mengidentifikasi keluarga miskin di lingkungannya.

2. Data survei (nama KK, jumlah anggota, alamat, dan koordinat GPS dari smartphone) dibawa ke sistem.

3. Operator membuka WebGIS dalam Mode Edit, memilih tipe 'Kemiskinan', dan mengklik lokasi di peta sesuai koordinat survei.

4. Operator mengisi formulir atribut dan menyimpan data.

5. Sistem menampilkan marker oranye di peta dan menambahkan card di sidebar.

6. Operator dapat memverifikasi posisi marker sesuai alamat yang tercatat.

6.2.2 Proses Registrasi Masjid dan Penetapan Radius Layanan

7. Pengurus masjid mendaftarkan masjidnya ke sistem: nama, nama PIC, alamat, dan koordinat lokasi masjid.

8. Sistem menampilkan marker biru dengan lingkaran radius default 500 m.

9. Pengurus mengamati titik-titik kemiskinan (marker oranye) yang berada di dalam dan di luar radius.

10. Pengurus menyesuaikan nilai radius sesuai kapasitas nyata masjid (misalnya dipersempit ke 300 m jika sumber daya terbatas, atau diperluas ke 1000 m jika kapasitas besar).

11. Radius yang sudah disepakati disimpan ke database untuk digunakan sebagai acuan distribusi.

6.2.3 Proses Analisis Cakupan dan Perencanaan Distribusi

12. Operator membuka peta dalam Mode View dengan kedua layer (Kemiskinan + Masjid) aktif.

13. Secara visual, operator mengidentifikasi: marker oranye mana yang berada di dalam lingkaran biru (terjangkau) dan mana yang di luar (belum terjangkau).

14. Untuk titik kemiskinan yang tidak terjangkau masjid manapun, operator dapat berkoordinasi dengan masjid terdekat untuk memperluas layanan atau dengan aparat kelurahan untuk program bantuan alternatif.

15. Daftar card di sidebar digunakan sebagai dasar daftar penerima manfaat untuk masing-masing masjid.

6.3 Kontribusi Setiap Fitur terhadap Pengentasan Kemiskinan

Fitur Sistem Kontribusi Langsung terhadap Pengentasan Kemiskinan
Titik Peta Kemiskinan Mengubah data survei lapangan menjadi basis data spasial yang dapat dianalisis secara visual — menggantikan daftar nama yang tidak dapat dianalisis secara geografis.
Marker Tematik Oranye Memberikan representasi visual yang jelas dan cepat terbaca bagi pengguna non-teknis untuk memahami sebaran kemiskinan di wilayah mereka.
Lokasi Masjid di Peta Menunjukkan posisi relatif masjid terhadap kantong-kantong kemiskinan untuk perencanaan program sosial yang lebih terarah.
Radius Layanan Masjid Fitur kunci: memvisualisasikan jangkauan program sosial masjid dan mengidentifikasi gap cakupan (keluarga miskin yang tidak terjangkau masjid manapun).
Konfigurasi Radius (Update) Memungkinkan penyesuaian dinamis sesuai kapasitas nyata masjid — radius bukan nilai tetap, melainkan mencerminkan kemampuan riil program sosial.
Filter Layer Independen Memudahkan fokus analisis: hanya tampilkan kemiskinan untuk melihat sebaran, hanya tampilkan masjid untuk melihat distribusi layanan, atau keduanya untuk analisis cakupan.
Sidebar dengan Data Atribut Menyediakan daftar terstruktur yang dapat digunakan langsung sebagai daftar penerima bantuan oleh pengurus masjid.
Mode View/Edit Memisahkan penggunaan sistem sebagai alat analisis publik (View) dan alat pemeliharaan data oleh operator (Edit) — mendukung partisipasi masyarakat luas.

6.4 Rencana Pengembangan Lanjutan

Untuk meningkatkan dampak sistem terhadap pengentasan kemiskinan di versi selanjutnya:

• Autentikasi multi-role: Admin, Operator Masjid, Aparat Kelurahan, dan Publik.

• Analisis spasial otomatis: query database untuk menampilkan daftar keluarga miskin dalam radius suatu masjid secara otomatis (bukan hanya visual).

• Laporan statistik: jumlah KK per kelurahan, persentase cakupan layanan masjid, peta panas (heatmap) kemiskinan.

• Modul rumah ibadah lain: gereja, pura, vihara, dan kelenteng — untuk cakupan lintas agama.

• Export data: ke format Excel atau PDF untuk pelaporan ke instansi pemerintah.

• Integrasi DTKS (Data Terpadu Kesejahteraan Sosial) Kementerian Sosial.

• Fitur upload foto rumah sebagai bukti verifikasi lapangan.

BAB 7 DIAGRAM SISTEM

7.1 Arsitektur Sistem

Sistem menggunakan arsitektur three-tier (tiga lapis):

| ARSITEKTUR THREE-TIER WebGIS Kemiskinan & Masjid ┌─────────────────────────────────────────────┐ │ PRESENTATION LAYER (Client) │ │ Browser: HTML + CSS + Vanilla JavaScript │ │ Leaflet.js | Fetch API | Sidebar UI │ └─────────────────┬───────────────────────────┘ HTTP/HTTPS | JSON Response ┌─────────────────┴───────────────────────────┐ │ BUSINESS LOGIC LAYER (Server) │ │ PHP Procedural | 7 Endpoint CRUD │ │ Validasi Input | Query Builder │ └─────────────────┬───────────────────────────┘ mysqli | SQL Query ┌─────────────────┴───────────────────────────┐ │ DATA LAYER (Database) │ │ MySQL Database │ │ Tabel: kemiskinan | Tabel: masjid │ └─────────────────────────────────────────────┘ | | :---- |

7.2 Alur Data Tambah Titik Kemiskinan

| OPERATOR → Klik lokasi di peta (Leaflet click event) BROWSER → Tampil form: Nama KK | Jumlah KK | Alamat OPERATOR → Isi dan submit form JS → fetch POST php/create_kemiskinan.php PHP → Validasi & sanitasi input PHP → INSERT INTO kemiskinan (...) VALUES (...) MySQL → Simpan data, return success PHP → Return 'success' (text) JS → Refresh: GET read_kemiskinan.php MAP → Render marker oranye di koordinat baru SIDEBAR → Tambah card baru di daftar kemiskinan | | :---- |

7.3 Alur Data Update Radius Masjid

OPERATOR → Input nilai radius baru di card masjid (sidebar) OPERATOR → Klik tombol 'Update Radius' JS → Validasi range (100-5000) JS → fetch POST php/update_masjid_radius.php PHP → UPDATE masjid SET radius=? WHERE id=? MySQL → Update berhasil, return success JS → Re-render L.circle dengan radius baru di peta MAP → Lingkaran radius masjid berubah ukuran real-time

7.4 Entity Relationship Diagram (ERD)

Entitas Atribut
kemiskinan id (PK)
masjid id (PK)

Catatan: Kedua tabel tidak memiliki foreign key — relasi logis antara masjid dan kemiskinan ditentukan secara spasial (kalkulasi jarak dan radius) di layer peta, bukan melalui relasi database relasional. Ini merupakan desain yang disederhanakan untuk versi 1.0; versi lanjutan dapat mengimplementasikan tabel relasi atau tipe spasial MySQL.

LAMPIRAN

A. Ringkasan Kebutuhan Fungsional

ID Nama Kebutuhan Modul Prioritas
KF-01 Inisialisasi Peta Interaktif Peta Tinggi
KF-02 Toggle Layer Tematik Peta Tinggi
KF-03 Tambah Data Keluarga Miskin Kemiskinan Tinggi
KF-04 Lihat Daftar Data Kemiskinan Kemiskinan Tinggi
KF-05 Fokus ke Lokasi Keluarga Miskin Kemiskinan Sedang
KF-06 Hapus Data Keluarga Miskin Kemiskinan Tinggi
KF-07 Tambah Data Masjid Masjid Tinggi
KF-08 Lihat Daftar Data Masjid Masjid Tinggi
KF-09 Fokus ke Lokasi Masjid Masjid Sedang
KF-10 Perbarui Radius Layanan Masjid Masjid Tinggi
KF-11 Hapus Data Masjid Masjid Tinggi
KF-12 Mode View Mode Sistem Tinggi
KF-13 Mode Edit Mode Sistem Tinggi

B. Simbologi Peta

Elemen Peta Simbol Warna Makna
Titik Kemiskinan Marker bulat Oranye (#FFA500) Lokasi keluarga miskin
Masjid Marker bulat Biru (#0000FF) Lokasi masjid (rumah ibadah)
Radius Layanan Masjid Lingkaran transparan Biru muda (opacity 0.2) Area jangkauan program sosial masjid

C. Kamus Data (Data Dictionary)

Field Tabel Tipe Data Validasi
nama_kepala_keluarga kemiskinan VARCHAR(255) Wajib diisi, tidak boleh kosong
jumlah_kk kemiskinan INT Wajib diisi, angka bulat positif > 0
alamat kemiskinan TEXT Wajib diisi
latitude kemiskinan, masjid DECIMAL(10,8) Range: -90 hingga +90
longitude kemiskinan, masjid DECIMAL(11,8) Range: -180 hingga +180
nama_masjid masjid VARCHAR(255) Wajib diisi, tidak boleh kosong
pic_masjid masjid VARCHAR(255) Wajib diisi
radius masjid INT Range valid: 1005000 meter; default 500