prepare(" SELECT pm.nik_kk, pm.nama_kk, pm.no_hp, pm.alamat, pm.rt, pm.rw, COALESCE(w.kelurahan,'–') AS kelurahan, pm.jumlah_anggota, pm.jumlah_anak_sekolah, pm.penghasilan_bulanan, pm.status_pekerjaan, pm.kategori_kemiskinan, pm.kondisi_rumah, CASE pm.punya_bpjs WHEN 1 THEN 'Ya' ELSE 'Tidak' END AS punya_bpjs, pm.status_verifikasi, (SELECT GROUP_CONCAT(jb.kode ORDER BY jb.kode SEPARATOR ', ') FROM bantuan_penduduk bp JOIN jenis_bantuan jb ON jb.id = bp.bantuan_id WHERE bp.penduduk_id = pm.id AND bp.status='aktif') AS bantuan FROM penduduk_miskin pm LEFT JOIN wilayah w ON w.id = pm.wilayah_id $where ORDER BY w.kelurahan, pm.kategori_kemiskinan, pm.nama_kk "); $stmt->execute($params); $rows = $stmt->fetchAll(); // Statistik ringkas $statsStmt = $db->prepare(" SELECT COUNT(*) AS total, SUM(pm.jumlah_anggota) AS jiwa, SUM(CASE WHEN pm.kategori_kemiskinan='sangat_miskin' THEN 1 ELSE 0 END) AS sangat_miskin, SUM(CASE WHEN pm.kategori_kemiskinan='miskin' THEN 1 ELSE 0 END) AS miskin, SUM(CASE WHEN pm.kategori_kemiskinan='hampir_miskin' THEN 1 ELSE 0 END) AS hampir_miskin, SUM(CASE WHEN pm.kategori_kemiskinan='mampu' THEN 1 ELSE 0 END) AS mampu, SUM(CASE WHEN EXISTS(SELECT 1 FROM bantuan_penduduk bp WHERE bp.penduduk_id=pm.id AND bp.status='aktif') THEN 1 ELSE 0 END) AS penerima FROM penduduk_miskin pm LEFT JOIN wilayah w ON w.id = pm.wilayah_id $where "); $statsStmt->execute($params); $stats = $statsStmt->fetch(); $judul = "LAPORAN DATA PENDUDUK MISKIN"; $filter = $kelurahan ? " – Kelurahan $kelurahan" : ($kecamatan ? " – Kec. $kecamatan" : " – Seluruh Wilayah"); $tgl = date('d F Y'); // Warna kategori function warnaBg(string $k): string { return match($k) { 'sangat_miskin' => '#fee2e2', 'miskin' => '#fef3c7', 'hampir_miskin' => '#dcfce7', 'mampu' => '#dbeafe', default => '#f3f4f6', }; } function labelKat(string $k): string { return match($k) { 'sangat_miskin' => 'Sangat Miskin', 'miskin' => 'Miskin', 'hampir_miskin' => 'Nyaris Miskin', 'mampu' => 'Mampu', default => $k, }; } ?> <?= htmlspecialchars($judul . $filter) ?>

SISTEM INFORMASI GEOGRAFIS KEMISKINAN

Dicetak pada:  |  Total: KK

Total KK
Total Jiwa
Sangat Miskin
Miskin
Nyaris Miskin
Mampu
Penerima Bantuan
Belum Bantuan
No NIK / Nama KK Kelurahan RT/RW Alamat Angg. Anak Penghasilan Pekerjaan Kategori Kondisi Rumah BPJS Bantuan Diterima Status Verifikasi


Belum Ada '#dcfce7', 'belum_diverifikasi'=>'#fef3c7', default=>'#fee2e2' }; ?>