From c34be3fcff6dd69d718d672506e2ef0770abb973 Mon Sep 17 00:00:00 2001 From: TiaraChontesa Date: Wed, 3 Jun 2026 05:08:54 +0000 Subject: [PATCH] Upload files to "/" --- dashboard-relawan.php | 315 +++++++++++++++++++++++++++++ data-ibadah.php | 417 ++++++++++++++++++++++++++++++++++++++ data-warga.php | 458 ++++++++++++++++++++++++++++++++++++++++++ index.php | 143 +++++++++++++ koneksi.php | 50 +++++ 5 files changed, 1383 insertions(+) create mode 100644 dashboard-relawan.php create mode 100644 data-ibadah.php create mode 100644 data-warga.php create mode 100644 index.php create mode 100644 koneksi.php diff --git a/dashboard-relawan.php b/dashboard-relawan.php new file mode 100644 index 0000000..0b5eda2 --- /dev/null +++ b/dashboard-relawan.php @@ -0,0 +1,315 @@ +query("SELECT COUNT(*) AS c FROM rumah_ibadah")->fetch_assoc()['c'] ?? 0; +$totalKpm = $conn->query("SELECT COUNT(*) AS c FROM rumah_miskin")->fetch_assoc()['c'] ?? 0; +$terjangkau = $conn->query("SELECT COUNT(*) AS c FROM rumah_miskin WHERE status_bantuan='Terjangkau'")->fetch_assoc()['c'] ?? 0; +$blankSpot = $conn->query("SELECT COUNT(*) AS c FROM rumah_miskin WHERE status_bantuan='Belum Terbantu'")->fetch_assoc()['c'] ?? 0; +$bencanaAktif = $conn->query("SELECT COUNT(*) AS c FROM bencana WHERE status='Aktif'")->fetch_assoc()['c'] ?? 0; + +// Menghitung persentase capaian rasio jangkauan bantuan +$pct = $totalKpm > 0 ? round($terjangkau / $totalKpm * 100) : 0; + +// 2. LOG AKTIVITAS LAPANGAN TERBARU (LIMIT 5) +$kpmBaru = $conn->query("SELECT nama_kepala_keluarga, nik, kelurahan, kondisi_rumah FROM rumah_miskin ORDER BY created_at DESC LIMIT 5"); +$bantuanBaru = $conn->query("SELECT bt.jenis_bantuan, bt.jumlah, bt.tanggal, rm.nama_kepala_keluarga FROM bantuan_tersalur bt LEFT JOIN rumah_miskin rm ON bt.warga_id=rm.id ORDER BY bt.created_at DESC LIMIT 5"); + +// MEMANGGIL SIDEBAR PREMIUM (Otomatis menyambung dan layout langsung presisi) +include 'includes/sidebar.php'; +?> + + + + + + Panel Relawan Lapangan - Poverty Mapping + + + + + + + +
+ +
+

Selamat Bertugas,

+
+ + + +
+
+
+
Pos Rumah Ibadah
+
+
Titik koordinasi aktif
+
+
+ +
+
+ +
+
+
KPM Terdata
+
+
Keluarga telah disurvei
+
+
+ +
+
+ +
+
+
Blank Spot
+
+
Butuh penanganan cepat
+
+
+ +
+
+ +
+
+
Tanggap Bencana
+
+
0 ? 'Status waspada aktif' : 'Kondisi lingkungan aman' ?>
+
+
+ +
+
+
+ +
+
+
+

Rasio Capaian Target Distribusi

+

Persentase pemenuhan logistik bagi KPM yang berada di area koordinasi Anda

+
+
%
+
+
+
+
+
+ Berhasil Terbantu: KPM + Belum Terjangkau: KPM + Total Sasaran: KPM +
+
+ +
+ +
+
+

Survei Warga Terakhir

+ Kelola Data +
+ + + + + + num_rows === 0): ?> + + fetch_assoc()): + $kondisiClass = 'badge-info'; + if (in_array($k['kondisi_rumah'], ['Sangat Parah', 'Sangat Tidak Layak'])) $kondisiClass = 'badge-danger'; + elseif (in_array($k['kondisi_rumah'], ['Parah', 'Tidak Layak'])) $kondisiClass = 'badge-warning'; + elseif (in_array($k['kondisi_rumah'], ['Cukup Baik', 'Layak'])) $kondisiClass = 'badge-success'; + ?> + + + + + + + +
Nama Kepala KeluargaKelurahanKondisi Rumah
Belum ada entri data KPM terdaftar.
+
+
NIK:
+
+
+ +
+
+

Riwayat Penyaluran Anda

+ Semua Riwayat +
+ + + + + + num_rows === 0): ?> + + fetch_assoc()): ?> + + + + + + + +
Penerima KPMPaket LogistikTanggal
Belum ada transaksi bantuan dicatat.
+ + +
+ +
+
+ +
+
+ + + + + + \ No newline at end of file diff --git a/data-ibadah.php b/data-ibadah.php new file mode 100644 index 0000000..9475aac --- /dev/null +++ b/data-ibadah.php @@ -0,0 +1,417 @@ +query("SELECT ri.*, u.nama_lengkap AS dibuat_user FROM rumah_ibadah ri LEFT JOIN users u ON ri.dibuat_oleh=u.id ORDER BY ri.created_at DESC"); +$total = $data->num_rows; + +include 'includes/sidebar.php'; +?> + + + + + + +
+ +
+
+

Rumah Ibadah

+

Total titik terdaftar sebagai pusat logistik & distribusi bantuan

+
+ + + +
+ +
+ data_seek(0); + while ($r = $data->fetch_assoc()): + $jmlBantuan = $conn->query("SELECT COUNT(*) AS c FROM bantuan_tersalur WHERE ibadah_id={$r['id']}")->fetch_assoc()['c']; + + // Klasifikasi style dinamis berdasarkan kategori + $katLower = strtolower($r['kategori']); + $barClass = 'bar-lainnya'; + $badgeClass = 'badge-lainnya'; + + if (strpos($katLower, 'masjid') !== false || strpos($katLower, 'musholla') !== false) { + $barClass = 'bar-masjid'; $badgeClass = 'badge-masjid'; + } elseif (strpos($katLower, 'gereja') !== false) { + $barClass = 'bar-gereja'; $badgeClass = 'badge-gereja'; + } + ?> +
+
+ +
+
+
+
+ +
+ + +
+ + + + +
+ +
+ +
+ + +
+ +
+ + + +
+ +
+
+
+
Kuota KK
+
+
+
m
+
Radius
+
+
+
+
Bantuan
+
+
+ + +
+
+ + + +
+ +

Belum Ada Data Rumah Ibadah

+

Tambahkan titik distribusi baru melalui tombol di atas atau pakai menu Peta Interaktif.

+
+ +
+ +
+ + + + + + + + \ No newline at end of file diff --git a/data-warga.php b/data-warga.php new file mode 100644 index 0000000..6809543 --- /dev/null +++ b/data-warga.php @@ -0,0 +1,458 @@ +query("SELECT rm.*, u.nama_lengkap AS relawan FROM rumah_miskin rm LEFT JOIN users u ON rm.didata_oleh=u.id $where ORDER BY rm.prioritas DESC, rm.created_at DESC"); +$total = $data->num_rows; + +include 'includes/sidebar.php'; +?> + + + +
+
+

+ Data KPM +

+

+ Ditemukan data Keluarga Penerima Manfaat +

+
+ + + +
+ +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+
+

Daftar KPM

+
+ data + Lihat di Peta +
+
+
+ + + + + + + + + + + + + + + + + + + + fetch_assoc()): + $kc = ['Layak'=>'badge-green','Tidak Layak'=>'badge-orange','Sangat Tidak Layak'=>'badge-red']; + $sc = ['Terjangkau'=>'badge-green','Belum Terbantu'=>'badge-red','Sudah Menerima'=>'badge-blue']; + ?> + + + + + + + + + + + + + +
#Nama KKTgl Lahir / UsiaTanggunganPendapatanKondisi RumahWilayahStatusAksi
+ + Tidak ada data ditemukan +
+ + Prioritas
+ +
+
NIK:
+
+
+
+
jiwa +
+
/bulan
+
+
+
+
+
+ + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..c784ecd --- /dev/null +++ b/index.php @@ -0,0 +1,143 @@ + + + + + + + Portal WebGIS Pendataan Rumah Miskin + + + + + + + + +
+
+

Pemetaan Digital & Akurasi Data Kemiskinan Daerah.

+

Sistem integrasi pemetaan WebGIS untuk menyelaraskan verifikasi klaster penerima bantuan (KPM) antara pihak Pemerintah, Dinas Sosial, Relawan Lapangan, serta Operator Lembaga Rumah Ibadah secara waktu-nyata.

+ Mulai Pendataan Sistem +
+
+
+ + Sistem Geografis Terpadu +
+
+
+ +
+

Pilar Integrasi Sistem

+

Mekanisme kerja teratur guna memperkecil celah salah sasaran alokasi bantuan sosial.

+
+
+
+

Otoritas Pemerintah

+

Menyusun kebijakan program bantuan mentah, mengawasi peta sebaran spasial makro, dan meluncurkan pagu anggaran terpusat.

+
+
+
+

Verifikasi Relawan

+

Melakukan peninjauan koordinat fisik rumah tinggal (KPM) di lapangan untuk memastikan keaslian tingkat kelayakan ekonomi.

+
+
+
+

Distribusi Lembaga

+

Operator internal pada titik peribadatan menyalurkan fisik komoditas bantuan dan melakukan validasi akhir status salur.

+
+
+
+ +
+

Pusat Bantuan & Layanan

+

Punya kendala teknis operasional sistem atau pengajuan akun baru? Hubungi tim kami.

+
+
+
+ +
+

Kirim Email

+

support.poverty@domain.go.id

+
+
+
+ +
+

Hubungi Call Center

+

(021) 8892-1293 / Dinas Sosial

+
+
+
+ +
+

Kantor Operasional

+

Gedung Administrasi Terpadu, Lt. 3 Command Center

+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/koneksi.php b/koneksi.php new file mode 100644 index 0000000..a876d1f --- /dev/null +++ b/koneksi.php @@ -0,0 +1,50 @@ +connect_error) { + die(json_encode(['status'=>'error','message'=>'Koneksi DB gagal: '.$conn->connect_error])); +} +$conn->set_charset('utf8mb4'); + +// Helper: sanitasi +function bersih($str, $conn) { + return $conn->real_escape_string(htmlspecialchars(strip_tags(trim($str)))); +} + +// Helper: cek login +function cekLogin() { + if (!isset($_SESSION['user_id'])) { + header('Location: login.php'); + exit; + } +} + +// Helper: cek role +function cekRole(...$roles) { + if (!in_array($_SESSION['role'] ?? '', $roles)) { + header('Location: index.php?error=akses_ditolak'); + exit; + } +} + +// Helper: format rupiah +function rupiah($angka) { + return 'Rp ' . number_format($angka, 0, ',', '.'); +} + +// Helper: usia dari tanggal lahir +function hitungUsia($tgl) { + if (!$tgl || $tgl === '0000-00-00') return '-'; + $lahir = new DateTime($tgl); + $sekarang = new DateTime(); + return $lahir->diff($sekarang)->y . ' th'; +} \ No newline at end of file