commit 19ebb84943010072cad50c1bc131de256d622269 Author: noooviiieee Date: Thu Jun 11 10:16:53 2026 +0700 Initial commit - clean and ready for Coolify diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0334640 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +# 1. Menggunakan base image PHP resmi dengan Apache bawaan yang stabil +FROM php:8.2-apache + +# 2. Install ekstensi PDO MySQL yang wajib diperlukan untuk koneksi database proyek +RUN docker-php-ext-install pdo pdo_mysql + +# 3. Aktifkan modul mod_rewrite Apache (sangat berguna jika nanti memakai file .htaccess atau routing) +RUN a2enmod rewrite + +# 4. Atur direktori kerja utama di dalam container +WORKDIR /var/www/html + +# 5. Salin seluruh isi folder proyek lokal ke dalam container Apache +COPY . /var/www/html/ + +# 6. Atur hak akses (ownership & permissions) agar Apache (www-data) bisa membaca file proyek +RUN chown -R www-data:www-data /var/www/html \ + && chmod -R 755 /var/www/html + +# 7. Buka jalur port 80 untuk lalu lintas web di Coolify +EXPOSE 80 + +# 8. Jalankan Apache di foreground agar container tetap hidup +CMD ["apache2-foreground"] \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..e2f5998 --- /dev/null +++ b/index.php @@ -0,0 +1,404 @@ + + + + + + Portal WebGIS Projects + + + + + + + +
+
+
+
+
+ + +
+
+
+
+
+
+
+
+ +
+
+

GIS Project Portfolio

+

Sistem Informasi Geografis Terintegrasi

+
+ + + + + +
+ + + \ No newline at end of file diff --git a/webgisdatakemiskinan/alter_table.php b/webgisdatakemiskinan/alter_table.php new file mode 100644 index 0000000..e3fd63b --- /dev/null +++ b/webgisdatakemiskinan/alter_table.php @@ -0,0 +1,4 @@ +exec("ALTER TABLE donasi_digital MODIFY metode_pembayaran VARCHAR(50) NOT NULL"); +echo 'Table altered successfully'; diff --git a/webgisdatakemiskinan/api_distribusi.php b/webgisdatakemiskinan/api_distribusi.php new file mode 100644 index 0000000..e064fbc --- /dev/null +++ b/webgisdatakemiskinan/api_distribusi.php @@ -0,0 +1,49 @@ + "error", "pesan" => "Akses ditolak. Silakan login."]); + exit; +} + +header('Content-Type: application/json'); + +// KONEKSI DATABASE MENGGUNAKAN STANDAR PDO +$host = 'localhost'; +$dbname = 'webgis_baru'; // Sesuaikan jika nama databasemu berbeda +$username = 'root'; +$password = ''; + +try { + $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password); + $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); +} catch (PDOException $e) { + die(json_encode(["error" => "Koneksi PDO Gagal: " . $e->getMessage()])); +} + +$aksi = $_GET['aksi'] ?? 'global'; + +if ($aksi == 'global') { + // 1. PERBAIKAN: Menambahkan WHERE status = 'berhasil' agar donasi pending tidak ikut terhitung di index.php + $stmtMasuk = $pdo->query("SELECT SUM(nominal) AS total_masuk, COUNT(id) AS jml_donatur FROM donasi_digital WHERE status = 'berhasil'"); + $dataMasuk = $stmtMasuk->fetch(PDO::FETCH_ASSOC); + $total_donasi = $dataMasuk['total_masuk'] ?? 0; + $jml_donatur = $dataMasuk['jml_donatur'] ?? 0; + + // 2. Tarik Semua Log Distribusi ke Warga Miskin + $stmtDistribusi = $pdo->query(" + SELECT + h.id, h.jenis_id, h.tanggal_distribusi, h.nama_penyalur, h.jumlah, h.satuan_custom, h.catatan, + w.nama_kk, w.lat, w.lng + FROM histori_bantuan h + JOIN warga_miskin w ON h.warga_id = w.id + ORDER BY h.tanggal_distribusi DESC + "); + $log_distribusi = $stmtDistribusi->fetchAll(PDO::FETCH_ASSOC); + + echo json_encode([ + "total_donasi" => $total_donasi, + "jumlah_donatur" => $jml_donatur, + "log_distribusi" => $log_distribusi + ]); +} +?> \ No newline at end of file diff --git a/webgisdatakemiskinan/api_donasi.php b/webgisdatakemiskinan/api_donasi.php new file mode 100644 index 0000000..8857f1e --- /dev/null +++ b/webgisdatakemiskinan/api_donasi.php @@ -0,0 +1,183 @@ + "error", "pesan" => "Akses ditolak. Silakan login."]); + exit; +} + +// KONEKSI DATABASE STANDAR PDO +$host = 'localhost'; +$dbname = 'webgis_baru'; +$username = 'root'; +$password = ''; + +try { + $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password); + $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); +} catch (PDOException $e) { + die(json_encode(["error" => "Koneksi Gagal: " . $e->getMessage()])); +} + +// POST request dari form donasi tidak membawa ?aksi=, default ke 'simpan' +$aksi = $_GET['aksi'] ?? ($_SERVER['REQUEST_METHOD'] === 'POST' ? 'simpan' : 'tampil'); + +// 0. CREATE: SIMPAN DONASI BARU DARI WARGA +if ($aksi == 'simpan') { + $metode = $_POST['metode'] ?? ''; + $nominal = intval($_POST['nominal'] ?? 0); + $nama = trim($_POST['nama'] ?? 'Anonim'); + $pesan = trim($_POST['pesan'] ?? ''); + $ibadahId = intval($_POST['ibadah_id'] ?? 0); + $jenisDonasi = trim($_POST['jenis_donasi'] ?? 'Uang Tunai'); + $deskripsiBarang = trim($_POST['deskripsi_barang'] ?? ''); + + // Validasi minimal + if (empty($metode)) { + echo json_encode(["status" => "error", "pesan" => "Metode pembayaran wajib diisi."]); + exit; + } + if ($jenisDonasi === 'Uang Tunai') { + if ($nominal < 10000) { + echo json_encode(["status" => "error", "pesan" => "Nominal minimal Rp 10.000."]); + exit; + } + } else { + // Donasi barang — metode tidak wajib, deskripsi wajib + if (empty($deskripsiBarang)) { + echo json_encode(["status" => "error", "pesan" => "Deskripsi barang wajib diisi."]); + exit; + } + } + + // Upload bukti (opsional untuk donasi barang) + $buktiPath = ''; + if (isset($_FILES['bukti']) && $_FILES['bukti']['error'] === UPLOAD_ERR_OK) { + $uploadDir = 'uploads/bukti_donasi/'; + if (!is_dir($uploadDir)) mkdir($uploadDir, 0755, true); + + $ext = strtolower(pathinfo($_FILES['bukti']['name'], PATHINFO_EXTENSION)); + $allowed = ['jpg', 'jpeg', 'png', 'webp', 'pdf']; + + if (!in_array($ext, $allowed)) { + echo json_encode(["status" => "error", "pesan" => "Format file tidak didukung."]); + exit; + } + + $namaFile = 'donasi_' . time() . '_' . uniqid() . '.' . $ext; + move_uploaded_file($_FILES['bukti']['tmp_name'], $uploadDir . $namaFile); + $buktiPath = $uploadDir . $namaFile; + } + + // Untuk donasi barang, simpan deskripsi di kolom pesan_dukungan + $pesanFinal = $jenisDonasi !== 'Uang Tunai' + ? "[BARANG] $deskripsiBarang" . ($pesan ? " | Pesan: $pesan" : '') + : $pesan; + + // Ibadah ID 0 artinya umum, simpan sebagai NULL + $ibadahIdFinal = $ibadahId > 0 ? $ibadahId : null; + + $stmt = $pdo->prepare(" + INSERT INTO donasi_digital + (metode_pembayaran, nominal, nama_donatur, pesan_dukungan, ibadah_id, bukti_transfer, status, created_at, jenis_donasi, deskripsi_barang) + VALUES + (?, ?, ?, ?, ?, ?, 'pending', NOW(), ?, ?) + "); + + if ($stmt->execute([$metode, $nominal, $nama, $pesanFinal, $ibadahIdFinal, $buktiPath, $jenisDonasi, $deskripsiBarang])) { + echo json_encode(["status" => "sukses", "pesan" => "Donasi berhasil dikirim."]); + } else { + echo json_encode(["status" => "error", "pesan" => "Gagal menyimpan ke database."]); + } + exit; +} + +// 1. READ: TAMPILKAN LOG DONASI KE DASHBOARD +if ($aksi == 'tampil') { + $stmt = $pdo->query(" + SELECT d.*, r.nama_tempat AS disalurkan_ke + FROM donasi_digital d + LEFT JOIN rumah_ibadah r ON d.ibadah_id = r.id + ORDER BY d.id DESC + "); + $donasi = $stmt->fetchAll(PDO::FETCH_ASSOC); + + // TRANSFORMAST DATA: Menerjemahkan bahasa Database ke bahasa UI Dashboard + foreach ($donasi as &$d) { + $status_db = strtolower($d['status'] ?? ''); + + if ($status_db == 'pending') { + $d['status'] = 'Menunggu'; + } elseif ($status_db == 'berhasil') { + $d['status'] = 'Dikonfirmasi'; + } elseif ($status_db == 'ditolak' || $status_db == 'gagal') { + $d['status'] = 'Ditolak'; + } + + // Gunakan jenis_donasi dari database (bisa 'Uang Tunai', 'Sembako', 'Pakaian', dll.) + $jenis = !empty($d['jenis_donasi']) ? $d['jenis_donasi'] : 'Uang Tunai'; + $d['jenis_donasi'] = $jenis; + + // Untuk donasi uang: tampilkan nominal + metode pembayaran + // Untuk donasi barang: tampilkan deskripsi barang + if ($jenis === 'Uang Tunai') { + $d['nilai'] = number_format((float)$d['nominal'], 0, ',', '.'); + $d['keterangan'] = $d['pesan_dukungan'] . ($d['metode_pembayaran'] ? " (" . $d['metode_pembayaran'] . ")" : ""); + } else { + // Donasi barang: nilai diisi deskripsi barang, bukan nominal + $deskripsi = !empty($d['deskripsi_barang']) ? $d['deskripsi_barang'] : ''; + $d['nilai'] = $deskripsi ?: ($d['pesan_dukungan'] ?: '—'); + $d['keterangan'] = $d['pesan_dukungan']; + } + + $d['tanggal'] = date('Y-m-d', strtotime($d['created_at'])); + $d['kontak'] = "Bukti: " . $d['bukti_transfer']; + + if (empty($d['disalurkan_ke'])) { + $d['disalurkan_ke'] = 'Umum'; + } + } + + echo json_encode($donasi); + exit; + +// 2. UPDATE: KONFIRMASI / TOLAK DONASI +} elseif ($aksi == 'update_status') { + $id = intval($_POST['id'] ?? 0); + $status_ui = $_POST['status'] ?? 'Menunggu'; + + // PENERJEMAH KE DATABASE: Mengubah bahasa UI kembali ke bahasa Database + $status_db = 'pending'; + if ($status_ui == 'Dikonfirmasi') { + $status_db = 'berhasil'; + } elseif ($status_ui == 'Ditolak') { + $status_db = 'gagal'; // enum DB: 'gagal', bukan 'ditolak' + } + + $stmt = $pdo->prepare("UPDATE donasi_digital SET status = ? WHERE id = ?"); + if ($stmt->execute([$status_db, $id])) { + echo "Sukses"; + } else { + echo "Gagal memperbarui status"; + } + exit; + +// 3. DELETE: HAPUS LOG DONASI +} elseif ($aksi == 'hapus') { + $id = intval($_POST['id'] ?? 0); + $stmt = $pdo->prepare("DELETE FROM donasi_digital WHERE id = ?"); + if ($stmt->execute([$id])) { + echo "Sukses"; + } else { + echo "Gagal menghapus data"; + } + exit; +} +?> \ No newline at end of file diff --git a/webgisdatakemiskinan/api_ibadah.php b/webgisdatakemiskinan/api_ibadah.php new file mode 100644 index 0000000..c530c5a --- /dev/null +++ b/webgisdatakemiskinan/api_ibadah.php @@ -0,0 +1,101 @@ + "error", "pesan" => "Akses ditolak. Silakan login."]); + exit; +} +include 'koneksi.php'; +$aksi = $_GET['aksi']; + +include 'koneksi.php'; +$aksi = $_GET['aksi']; + +// 🛡️ PROTEKSI KEAMANAN GLOBAL UNTUK WARGA +$role_aktif = $_SESSION['role'] ?? 'warga'; + +// Jika aksi adalah sesuatu yang merubah data (simpan, update, hapus) +if (in_array($aksi, ['simpan', 'update', 'hapus', 'update_lokasi', 'simpan_bantuan', 'update_bantuan', 'hapus_bantuan'])) { + + // Blokir total jika role-nya adalah warga atau walikota + if ($role_aktif === 'warga' || $role_aktif === 'walikota') { + echo "Gagal: Akses ditolak. Warga hanya diizinkan untuk melihat data dan melakukan donasi."; + exit; + } +} + +if ($aksi == 'tampil') { + $result = $conn->query("SELECT * FROM rumah_ibadah"); + $data = array(); + while($row = $result->fetch_assoc()) { $data[] = $row; } + echo json_encode($data); + +} elseif ($aksi == 'simpan') { + $nama = $conn->real_escape_string($_POST['nama_tempat'] ?? ''); + // Tangkap kategori dari formulir + $kategori = $conn->real_escape_string($_POST['kategori'] ?? 'Masjid'); + $pic = $conn->real_escape_string($_POST['pic'] ?? ''); + $alamat = $conn->real_escape_string($_POST['alamat'] ?? ''); + $radius = intval($_POST['radius'] ?? 500); + $lat = floatval($_POST['lat'] ?? 0); + $lng = floatval($_POST['lng'] ?? 0); + + if ($nama === '' || $lat === 0 || $lng === 0) { + echo "Gagal: Nama tempat dan koordinat tidak boleh kosong."; + exit; + } + + // Masukkan kategori ke dalam query INSERT + $sql = "INSERT INTO rumah_ibadah (nama_tempat, kategori, pic, alamat, radius, lat, lng) + VALUES ('$nama', '$kategori', '$pic', '$alamat', $radius, $lat, $lng)"; + + if ($conn->query($sql)) { + echo "Sukses"; + } else { + echo "Gagal: " . $conn->error; + } + +} elseif ($aksi == 'hapus') { + $id = intval($_POST['id'] ?? 0); + if($conn->query("DELETE FROM rumah_ibadah WHERE id=$id")) echo "Sukses"; else echo "Gagal"; + +} elseif ($aksi == 'update') { + $role = $_SESSION['role'] ?? ''; + $session_masjid = $_SESSION['nama_masjid'] ?? ''; + + $id = intval($_POST['id'] ?? 0); + $nama_tempat = $conn->real_escape_string($_POST['nama_tempat'] ?? ''); + // Tangkap kategori saat proses edit + $kategori = $conn->real_escape_string($_POST['kategori'] ?? 'Masjid'); + $pic = $conn->real_escape_string($_POST['pic'] ?? ''); + $alamat = $conn->real_escape_string($_POST['alamat'] ?? ''); + $radius = intval($_POST['radius'] ?? 500); + + if ($role === 'pengurus_masjid') { + $cek = $conn->query("SELECT nama_tempat FROM rumah_ibadah WHERE id = $id")->fetch_assoc(); + if (!$cek || $cek['nama_tempat'] !== $session_masjid) { + echo "Gagal: Anda tidak memiliki wewenang mengedit data masjid lain."; + exit; + } + } elseif ($role !== 'admin') { + echo "Gagal: Akses ditolak."; + exit; + } + + // Masukkan kategori ke dalam query UPDATE + $sql = "UPDATE rumah_ibadah SET nama_tempat='$nama_tempat', kategori='$kategori', pic='$pic', alamat='$alamat', radius=$radius WHERE id=$id"; + + if ($conn->query($sql)) { + echo "Sukses"; + } else { + echo "Gagal: " . $conn->error; + } + exit; + +} elseif ($aksi == 'update_lokasi') { + $id = intval($_POST['id'] ?? 0); + $lat = floatval($_POST['lat'] ?? 0); + $lng = floatval($_POST['lng'] ?? 0); + if($conn->query("UPDATE rumah_ibadah SET lat=$lat, lng=$lng WHERE id=$id")) echo "Sukses"; else echo "Gagal"; +} +$conn->close(); +?> \ No newline at end of file diff --git a/webgisdatakemiskinan/api_kemiskinan.php b/webgisdatakemiskinan/api_kemiskinan.php new file mode 100644 index 0000000..352072e --- /dev/null +++ b/webgisdatakemiskinan/api_kemiskinan.php @@ -0,0 +1,357 @@ + "error", "pesan" => "Akses ditolak. Silakan login."]); + exit; +} +mysqli_report(MYSQLI_REPORT_OFF); +include 'koneksi.php'; + +include 'koneksi.php'; +$aksi = $_GET['aksi']; + +// 🛡️ PROTEKSI KEAMANAN GLOBAL UNTUK WARGA +$role_aktif = $_SESSION['role'] ?? 'warga'; + +// Jika aksi adalah sesuatu yang merubah data (simpan, update, hapus) +if (in_array($aksi, ['simpan', 'update', 'hapus', 'update_lokasi', 'simpan_bantuan', 'update_bantuan', 'hapus_bantuan'])) { + + // Blokir total jika role-nya adalah warga atau walikota + if ($role_aktif === 'warga' || $role_aktif === 'walikota') { + echo "Gagal: Akses ditolak. Warga hanya diizinkan untuk melihat data dan melakukan donasi."; + exit; + } +} + +// Fungsi hitung jarak radius di sisi Server (Backend Security) +function hitungJarak($lat1, $lon1, $lat2, $lon2) { + $earth_radius = 6371000; // Radius bumi dalam meter + $dLat = deg2rad($lat2 - $lat1); + $dLon = deg2rad($lon2 - $lon1); + $a = sin($dLat/2) * sin($dLat/2) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * sin($dLon/2) * sin($dLon/2); + $c = 2 * asin(sqrt($a)); + return $earth_radius * $c; +} + +header('Content-Type: application/json'); + +$nama_tabel_bantuan = 'histori_bantuan'; +$aksi = $_GET['aksi'] ?? ''; + +// Ambil Sesi Global +$role = $_SESSION['role'] ?? ''; +$nama_masjid = $_SESSION['nama_masjid'] ?? ''; +$user_id = $_SESSION['user_id'] ?? 0; + +if ($aksi == 'tampil') { + $query = $conn->query("SELECT * FROM warga_miskin"); + + if (!$query) { + echo json_encode(["error" => "Gagal memuat data warga_miskin: " . $conn->error]); + exit; + } + + $result = []; + while ($row = $query->fetch_assoc()) { + $id_warga = $row['id']; + + // 1. Ambil data anggota keluarga + $query_anggota = $conn->query("SELECT * FROM anggota_keluarga WHERE id_warga = '$id_warga'"); + $anggota = []; + if ($query_anggota) { + while ($row_anggota = $query_anggota->fetch_assoc()) { + $anggota[] = $row_anggota; + } + } + $row['anggota'] = $anggota; + + // 2. Ambil bantuan TERAKHIR + $query_bantuan = $conn->query(" + SELECT * FROM $nama_tabel_bantuan + WHERE warga_id = '$id_warga' + ORDER BY tanggal_distribusi DESC + LIMIT 1 + "); + + if ($query_bantuan && $query_bantuan->num_rows > 0) { + $bantuan_terakhir = $query_bantuan->fetch_assoc(); + + $tgl_bantuan = new DateTime($bantuan_terakhir['tanggal_distribusi']); + $tgl_sekarang = new DateTime(); + $interval = $tgl_sekarang->diff($tgl_bantuan); + + $selisih_bulan = ($interval->y * 12) + $interval->m; + $sumber = $bantuan_terakhir['nama_penyalur'] ?: 'Rumah Ibadah'; + + if ($selisih_bulan == 0) { + $row['status_bantuan'] = "Warga ini baru saja menerima bantuan bulan ini dari " . $sumber; + } else { + $row['status_bantuan'] = "Warga ini terakhir menerima bantuan " . $selisih_bulan . " bulan lalu dari " . $sumber; + } + } else { + $row['status_bantuan'] = "Warga ini belum pernah menerima bantuan."; + } + + $result[] = $row; + } + + echo json_encode($result); + exit; + +} elseif ($aksi == 'tampil_bantuan') { + $query = $conn->query(" + SELECT + h.id, h.warga_id, h.tanggal_distribusi AS tanggal, h.nama_penyalur AS sumber_bantuan, + IF(h.catatan IS NOT NULL AND h.catatan != '', h.catatan, 'Bantuan Sosial') AS jenis_bantuan, + w.nama_kk, w.lat, w.lng + FROM $nama_tabel_bantuan h + JOIN warga_miskin w ON h.warga_id = w.id + ORDER BY h.tanggal_distribusi DESC + "); + + $bantuan = []; + if ($query) { + while ($row = $query->fetch_assoc()) { $bantuan[] = $row; } + } + echo json_encode($bantuan); + exit; + +} elseif ($aksi == 'simpan') { + $nama = $conn->real_escape_string($_POST['nama_kk'] ?? ''); + $jml = intval($_POST['jumlah_anggota'] ?? 0); + $alamat = $conn->real_escape_string($_POST['alamat'] ?? ''); + $lat = floatval($_POST['lat'] ?? 0); + $lng = floatval($_POST['lng'] ?? 0); + + $pekerjaan = $conn->real_escape_string($_POST['pekerjaan'] ?? ''); + $penyakit = $conn->real_escape_string($_POST['riwayat_penyakit'] ?? ''); + + $tgl_lahir = !empty($_POST['tanggal_lahir']) ? "'" . $conn->real_escape_string($_POST['tanggal_lahir']) . "'" : "NULL"; + $pendidikan = !empty($_POST['pendidikan_terakhir']) ? "'" . $conn->real_escape_string($_POST['pendidikan_terakhir']) . "'" : "NULL"; + $jaminan = !empty($_POST['kepemilikan_jaminan']) ? "'" . $conn->real_escape_string($_POST['kepemilikan_jaminan']) . "'" : "NULL"; + + $fakir = isset($_POST['is_fakir_miskin']) ? intval($_POST['is_fakir_miskin']) : 0; + $dhuafa = isset($_POST['is_dhuafa']) ? intval($_POST['is_dhuafa']) : 0; + $lansia = isset($_POST['is_lansia_tunggal']) ? intval($_POST['is_lansia_tunggal']) : 0; + $yatim = isset($_POST['is_anak_yatim']) ? intval($_POST['is_anak_yatim']) : 0; + $bencana = isset($_POST['is_korban_bencana']) ? intval($_POST['is_korban_bencana']) : 0; + $disab = isset($_POST['is_disabilitas']) ? intval($_POST['is_disabilitas']) : 0; + + if (trim($nama) === '' || $jml <= 0 || trim($alamat) === '' || !isset($_POST['lat']) || !isset($_POST['lng'])) { + echo json_encode(["status" => "Gagal", "pesan" => "Data utama tidak lengkap"]); + exit; + } + + // PERBAIKAN: Menambahkan diinput_oleh_id agar tombol Edit/Hapus bisa muncul di akun pengurus + $sql = "INSERT INTO warga_miskin + (nama_kk, jumlah_anggota, alamat, lat, lng, tanggal_lahir, pendidikan_terakhir, pekerjaan, riwayat_penyakit, kepemilikan_jaminan, + is_fakir_miskin, is_dhuafa, is_lansia_tunggal, is_anak_yatim, is_korban_bencana, is_disabilitas, diinput_oleh_id) + VALUES + ('$nama', $jml, '$alamat', $lat, $lng, $tgl_lahir, $pendidikan, '$pekerjaan', '$penyakit', $jaminan, + $fakir, $dhuafa, $lansia, $yatim, $bencana, $disab, $user_id)"; + + if ($conn->query($sql)) { + $id_warga = $conn->insert_id; + $anggota_json = $_POST['anggota'] ?? '[]'; + $anggota_list = json_decode($anggota_json, true); + + if (!empty($anggota_list) && is_array($anggota_list)) { + foreach ($anggota_list as $an) { + $an_nama = $conn->real_escape_string($an['nama'] ?? ''); + $an_hub = $conn->real_escape_string($an['hubungan_kk'] ?? ''); + $an_jk = !empty($an['jenis_kelamin']) ? "'" . $conn->real_escape_string($an['jenis_kelamin']) . "'" : 'NULL'; + $an_tgl = !empty($an['tanggal_lahir']) ? "'" . $conn->real_escape_string($an['tanggal_lahir']) . "'" : 'NULL'; + $an_pend = !empty($an['pendidikan_terakhir']) ? "'" . $conn->real_escape_string($an['pendidikan_terakhir']) . "'" : 'NULL'; + $an_kerja = $conn->real_escape_string($an['pekerjaan'] ?? ''); + $an_sakit = $conn->real_escape_string($an['riwayat_penyakit'] ?? ''); + $an_jamin = !empty($an['kepemilikan_jaminan']) ? "'" . $conn->real_escape_string($an['kepemilikan_jaminan']) . "'" : 'NULL'; + + $conn->query(" + INSERT INTO anggota_keluarga + (id_warga, nama, tanggal_lahir, jenis_kelamin, hubungan_kk, pendidikan_terakhir, pekerjaan, riwayat_penyakit, kepemilikan_jaminan) + VALUES + ($id_warga, '$an_nama', $an_tgl, $an_jk, '$an_hub', $an_pend, '$an_kerja', '$an_sakit', $an_jamin) + "); + } + } + echo "Sukses"; + } else { + echo "Gagal: " . $conn->error; + } + exit; + +} elseif ($aksi == 'hapus') { + $id = intval($_POST['id'] ?? 0); + + // PROTEKSI GEO-FENCING BACKEND + if ($role === 'pengurus_masjid') { + $wargaRes = $conn->query("SELECT lat, lng FROM warga_miskin WHERE id = $id"); + $masjidRes = $conn->query("SELECT lat, lng, radius FROM rumah_ibadah WHERE nama_tempat = '$nama_masjid'"); + + if ($wargaRes && $masjidRes && $wargaRes->num_rows > 0 && $masjidRes->num_rows > 0) { + $warga = $wargaRes->fetch_assoc(); + $masjid = $masjidRes->fetch_assoc(); + + $jarak = hitungJarak($warga['lat'], $warga['lng'], $masjid['lat'], $masjid['lng']); + if ($jarak > $masjid['radius']) { + echo "Gagal: Warga berada di luar radius wewenang masjid Anda."; + exit; + } + } + } elseif ($role !== 'admin') { + echo "Gagal: Akses ditolak."; + exit; + } + + // PERBAIKAN: Perintah Hapus Utama Ditambahkan + $conn->query("DELETE FROM anggota_keluarga WHERE id_warga = $id"); // Hapus data anak tabel dulu + if ($conn->query("DELETE FROM warga_miskin WHERE id = $id")) { + echo "Sukses"; + } else { + echo "Gagal: " . $conn->error; + } + exit; + +} elseif ($aksi == 'update') { + $id = intval($_POST['id'] ?? 0); + + // PROTEKSI GEO-FENCING BACKEND + if ($role === 'pengurus_masjid') { + $wargaRes = $conn->query("SELECT lat, lng FROM warga_miskin WHERE id = $id"); + $masjidRes = $conn->query("SELECT lat, lng, radius FROM rumah_ibadah WHERE nama_tempat = '$nama_masjid'"); + + if ($wargaRes && $masjidRes && $wargaRes->num_rows > 0 && $masjidRes->num_rows > 0) { + $warga = $wargaRes->fetch_assoc(); + $masjid = $masjidRes->fetch_assoc(); + + $jarak = hitungJarak($warga['lat'], $warga['lng'], $masjid['lat'], $masjid['lng']); + if ($jarak > $masjid['radius']) { + echo "Gagal: Warga berada di luar radius wewenang masjid Anda."; + exit; + } + } else { + echo "Gagal: Data gagal diverifikasi."; + exit; + } + } elseif ($role !== 'admin') { + echo "Gagal: Akses ditolak."; + exit; + } + + // PERBAIKAN: Menangkap Semua Post Data dan Mengeksekusi Update + $nama = $conn->real_escape_string($_POST['nama_kk'] ?? ''); + $jml = intval($_POST['jumlah_anggota'] ?? 0); + $alamat = $conn->real_escape_string($_POST['alamat'] ?? ''); + $pekerjaan = $conn->real_escape_string($_POST['pekerjaan'] ?? ''); + $penyakit = $conn->real_escape_string($_POST['riwayat_penyakit'] ?? ''); + $tgl_lahir = !empty($_POST['tanggal_lahir']) ? "'" . $conn->real_escape_string($_POST['tanggal_lahir']) . "'" : "NULL"; + $pendidikan = !empty($_POST['pendidikan_terakhir']) ? "'" . $conn->real_escape_string($_POST['pendidikan_terakhir']) . "'" : "NULL"; + $jaminan = !empty($_POST['kepemilikan_jaminan']) ? "'" . $conn->real_escape_string($_POST['kepemilikan_jaminan']) . "'" : "NULL"; + + $fakir = isset($_POST['is_fakir_miskin']) ? intval($_POST['is_fakir_miskin']) : 0; + $dhuafa = isset($_POST['is_dhuafa']) ? intval($_POST['is_dhuafa']) : 0; + $lansia = isset($_POST['is_lansia_tunggal']) ? intval($_POST['is_lansia_tunggal']) : 0; + $yatim = isset($_POST['is_anak_yatim']) ? intval($_POST['is_anak_yatim']) : 0; + $bencana = isset($_POST['is_korban_bencana']) ? intval($_POST['is_korban_bencana']) : 0; + $disab = isset($_POST['is_disabilitas']) ? intval($_POST['is_disabilitas']) : 0; + + $sql = "UPDATE warga_miskin SET + nama_kk = '$nama', jumlah_anggota = $jml, alamat = '$alamat', + tanggal_lahir = $tgl_lahir, pendidikan_terakhir = $pendidikan, pekerjaan = '$pekerjaan', + riwayat_penyakit = '$penyakit', kepemilikan_jaminan = $jaminan, + is_fakir_miskin = $fakir, is_dhuafa = $dhuafa, is_lansia_tunggal = $lansia, + is_anak_yatim = $yatim, is_korban_bencana = $bencana, is_disabilitas = $disab + WHERE id = $id"; + + if ($conn->query($sql)) { + echo "Sukses"; + } else { + echo "Gagal: " . $conn->error; + } + exit; + +} elseif ($aksi == 'update_lokasi') { + $id = intval($_POST['id'] ?? 0); + $lat = floatval($_POST['lat'] ?? 0); + $lng = floatval($_POST['lng'] ?? 0); + + if ($conn->query("UPDATE warga_miskin SET lat=$lat, lng=$lng WHERE id=$id")) { + echo "Sukses"; + } else { + echo "Gagal: " . $conn->error; + } + exit; + +} elseif ($aksi == 'simpan_bantuan') { + $warga_id = intval($_POST['warga_id'] ?? 0); + $jenis_id = intval($_POST['jenis_id'] ?? 0); + $tgl = $conn->real_escape_string($_POST['tanggal_distribusi'] ?? ''); + $penyalur = $conn->real_escape_string($_POST['nama_penyalur'] ?? ''); + $deskripsi= $conn->real_escape_string($_POST['deskripsi_bantuan'] ?? ''); + $catatan = $conn->real_escape_string($_POST['catatan'] ?? ''); + + if ($warga_id <= 0 || $jenis_id <= 0 || $tgl == '' || $penyalur == '' || $deskripsi == '') { + echo "Gagal: Data tidak lengkap"; + exit; + } + + $sql = "INSERT INTO $nama_tabel_bantuan + (warga_id, jenis_id, tanggal_distribusi, nama_penyalur, jumlah, satuan_custom, catatan) + VALUES + ($warga_id, $jenis_id, '$tgl', '$penyalur', 1, '$deskripsi', '$catatan')"; + + if ($conn->query($sql)) { + echo "Sukses"; + } else { + echo "Gagal: " . $conn->error; + } + exit; + +} elseif ($aksi == 'update_bantuan') { + $id = intval($_POST['id'] ?? 0); + $jenis_id = intval($_POST['jenis_id'] ?? 0); + $tgl = $conn->real_escape_string($_POST['tanggal_distribusi'] ?? ''); + $penyalur = $conn->real_escape_string($_POST['nama_penyalur'] ?? ''); + $deskripsi= $conn->real_escape_string($_POST['deskripsi_bantuan'] ?? ''); + $catatan = $conn->real_escape_string($_POST['catatan'] ?? ''); + + if ($id <= 0 || $jenis_id <= 0 || $tgl == '' || $penyalur == '' || $deskripsi == '') { + echo "Gagal: Data tidak lengkap"; + exit; + } + + $sql = "UPDATE $nama_tabel_bantuan SET + jenis_id = $jenis_id, + tanggal_distribusi = '$tgl', + nama_penyalur = '$penyalur', + satuan_custom = '$deskripsi', + catatan = '$catatan' + WHERE id = $id"; + + if ($conn->query($sql)) { + echo "Sukses"; + } else { + echo "Gagal: " . $conn->error; + } + exit; + +} elseif ($aksi == 'hapus_bantuan') { + $id = intval($_POST['id'] ?? 0); + + if ($id <= 0) { + echo "Gagal: ID tidak valid"; + exit; + } + + $sql = "DELETE FROM $nama_tabel_bantuan WHERE id = $id"; + + if ($conn->query($sql)) { + echo "Sukses"; + } else { + echo "Gagal: " . $conn->error; + } + exit; +} + +$conn->close(); +?> \ No newline at end of file diff --git a/webgisdatakemiskinan/api_laporan.php b/webgisdatakemiskinan/api_laporan.php new file mode 100644 index 0000000..14306e8 --- /dev/null +++ b/webgisdatakemiskinan/api_laporan.php @@ -0,0 +1,101 @@ + "error", "pesan" => "Akses ditolak. Silakan login."]); + exit; +} +// ============================================= +// api_laporan.php +// Menerima laporan publik dari lapor.php +// Status awal: "menunggu" (belum tampil di peta) +// ============================================= + +header('Content-Type: application/json'); +header('Access-Control-Allow-Origin: *'); + +// ——— KONEKSI DATABASE ——— +// Sesuaikan dengan konfigurasi Laragon kamu +$host = 'localhost'; +$user = 'root'; +$pass = ''; // Laragon default: kosong +$db = 'webgis_baru'; + +$conn = new mysqli($host, $user, $pass, $db); +if ($conn->connect_error) { + echo json_encode(['status' => 'error', 'pesan' => 'Koneksi database gagal']); + exit; +} +$conn->set_charset('utf8mb4'); + +// ——— PASTIKAN TABEL LAPORAN ADA ——— +// Tabel ini terpisah dari warga_miskin. +// Data masuk dulu ke sini, operator verifikasi, +// baru dipindahkan ke warga_miskin. +$conn->query(" + CREATE TABLE IF NOT EXISTS laporan_publik ( + id INT AUTO_INCREMENT PRIMARY KEY, + lat DECIMAL(10,7) NOT NULL, + lng DECIMAL(10,7) NOT NULL, + nama_kk VARCHAR(255) NOT NULL, + jumlah_anggota INT NOT NULL, + alamat TEXT NOT NULL, + tanggal_lahir DATE NULL, + pendidikan_terakhir ENUM('Tidak Sekolah','SD','SMP','SMA','D3','S1','S2','S3') NULL, + pekerjaan VARCHAR(100) NULL, + riwayat_penyakit TEXT NULL, + kepemilikan_jaminan ENUM('BPJS Kesehatan','KIS','BPJS Ketenagakerjaan','Tidak Ada') NULL, + nama_pelapor VARCHAR(255) NOT NULL, + hp_pelapor VARCHAR(20) NULL, + hubungan_pelapor VARCHAR(50) NULL, + keterangan TEXT NULL, + status ENUM('menunggu','disetujui','ditolak') DEFAULT 'menunggu', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 +"); + +// ——— VALIDASI INPUT ——— +$lat = floatval($_POST['lat'] ?? 0); +$lng = floatval($_POST['lng'] ?? 0); +$nama_kk = trim($conn->real_escape_string($_POST['nama_kk'] ?? '')); +$jumlah_anggota = intval($_POST['jumlah_anggota'] ?? 0); +$alamat = trim($conn->real_escape_string($_POST['alamat'] ?? '')); +$nama_pelapor = trim($conn->real_escape_string($_POST['nama_pelapor'] ?? '')); + +if (!$lat || !$lng || !$nama_kk || $jumlah_anggota < 1 || !$alamat || !$nama_pelapor) { + echo json_encode(['status' => 'error', 'pesan' => 'Data wajib tidak lengkap']); + exit; +} + +// ——— DATA OPSIONAL ——— +$tgl_lahir = !empty($_POST['tanggal_lahir']) ? "'" . $conn->real_escape_string($_POST['tanggal_lahir']) . "'" : 'NULL'; +$pendidikan = !empty($_POST['pendidikan_terakhir']) ? "'" . $conn->real_escape_string($_POST['pendidikan_terakhir']) . "'" : 'NULL'; +$pekerjaan = trim($conn->real_escape_string($_POST['pekerjaan'] ?? '')); +$penyakit = trim($conn->real_escape_string($_POST['riwayat_penyakit'] ?? '')); +$jaminan = !empty($_POST['kepemilikan_jaminan']) ? "'" . $conn->real_escape_string($_POST['kepemilikan_jaminan']) . "'" : 'NULL'; +$hp = trim($conn->real_escape_string($_POST['hp_pelapor'] ?? '')); +$hubungan = trim($conn->real_escape_string($_POST['hubungan_pelapor'] ?? '')); +$keterangan = trim($conn->real_escape_string($_POST['keterangan'] ?? '')); + +// ——— INSERT ——— +$sql = " + INSERT INTO laporan_publik + (lat, lng, nama_kk, jumlah_anggota, alamat, + tanggal_lahir, pendidikan_terakhir, pekerjaan, + riwayat_penyakit, kepemilikan_jaminan, + nama_pelapor, hp_pelapor, hubungan_pelapor, keterangan, status) + VALUES + ($lat, $lng, '$nama_kk', $jumlah_anggota, '$alamat', + $tgl_lahir, $pendidikan, '$pekerjaan', + '$penyakit', $jaminan, + '$nama_pelapor', '$hp', '$hubungan', '$keterangan', 'menunggu') +"; + +if ($conn->query($sql)) { + $newId = $conn->insert_id; + echo json_encode(['status' => 'ok', 'id' => $newId]); +} else { + echo json_encode(['status' => 'error', 'pesan' => 'Gagal menyimpan: ' . $conn->error]); +} + +$conn->close(); +?> \ No newline at end of file diff --git a/webgisdatakemiskinan/api_laporan_warga.php b/webgisdatakemiskinan/api_laporan_warga.php new file mode 100644 index 0000000..b3f4b63 --- /dev/null +++ b/webgisdatakemiskinan/api_laporan_warga.php @@ -0,0 +1,199 @@ + "error", "pesan" => "Akses ditolak. Silakan login."]); + exit; +} + +$host = 'localhost'; +$dbname = 'webgis_baru'; +$dbuser = 'root'; +$dbpass = ''; + +try { + $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $dbuser, $dbpass); + $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); +} catch (PDOException $e) { + ob_end_clean(); + echo json_encode(["status" => "error", "pesan" => "Koneksi DB gagal."]); + exit; +} + +$aksi = $_GET['aksi'] ?? ''; +$user_id = (int)($_SESSION['user_id'] ?? 0); +$user_role = $_SESSION['role'] ?? 'warga'; + +// ─── 1. SIMPAN LAPORAN (warga) ─────────────────────────────────────────────── +if ($aksi === 'simpan') { + $tipe = in_array($_POST['tipe_laporan'] ?? '', ['diri_sendiri','orang_lain']) ? $_POST['tipe_laporan'] : 'orang_lain'; + $nama = trim($_POST['nama_kk'] ?? ''); + $jml = max(1, (int)($_POST['jumlah_anggota'] ?? 1)); + $alamat = trim($_POST['alamat'] ?? ''); + $lat = (float)($_POST['lat'] ?? 0); + $lng = (float)($_POST['lng'] ?? 0); + $pekerjaan = trim($_POST['pekerjaan'] ?? ''); + $ket = trim($_POST['keterangan'] ?? ''); + + $fakir = (int)(($_POST['is_fakir_miskin'] ?? 0) == '1'); + $dhuafa = (int)(($_POST['is_dhuafa'] ?? 0) == '1'); + $lansia = (int)(($_POST['is_lansia_tunggal'] ?? 0) == '1'); + $yatim = (int)(($_POST['is_anak_yatim'] ?? 0) == '1'); + $bencana = (int)(($_POST['is_korban_bencana'] ?? 0) == '1'); + $disab = (int)(($_POST['is_disabilitas'] ?? 0) == '1'); + + if (empty($nama) || empty($alamat) || $lat == 0 || $lng == 0) { + ob_end_clean(); + echo json_encode(["status" => "error", "pesan" => "Nama, alamat, dan titik lokasi di peta wajib diisi."]); + exit; + } + + $stmt = $pdo->prepare(" + INSERT INTO laporan_warga + (pelapor_id, tipe_laporan, nama_kk, jumlah_anggota, alamat, lat, lng, + pekerjaan, keterangan, + is_fakir_miskin, is_dhuafa, is_lansia_tunggal, is_anak_yatim, is_korban_bencana, is_disabilitas) + VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + "); + $stmt->execute([ + $user_id, $tipe, $nama, $jml, $alamat, $lat, $lng, + $pekerjaan, $ket, + $fakir, $dhuafa, $lansia, $yatim, $bencana, $disab + ]); + $id = $pdo->lastInsertId(); + ob_end_clean(); + echo json_encode(["status" => "sukses", "id" => $id, "pesan" => "Laporan #$id berhasil dikirim. Menunggu verifikasi admin."]); + exit; +} + +// ─── 2. TAMPIL SEMUA LAPORAN (admin/walikota) ──────────────────────────────── +if ($aksi === 'tampil') { + if (!in_array($user_role, ['admin', 'walikota'])) { + ob_end_clean(); + echo json_encode(["status" => "error", "pesan" => "Akses ditolak."]); + exit; + } + $stmt = $pdo->query(" + SELECT l.*, u.username AS nama_pelapor + FROM laporan_warga l + LEFT JOIN users u ON l.pelapor_id = u.id + ORDER BY l.created_at DESC + "); + $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); + ob_end_clean(); + echo json_encode($rows); + exit; +} + +// ─── 3. CEK STATUS LAPORAN MILIK SENDIRI (warga) ──────────────────────────── +if ($aksi === 'cek_status') { + $stmt = $pdo->prepare(" + SELECT id, tipe_laporan, nama_kk, alamat, status, catatan_admin, created_at + FROM laporan_warga + WHERE pelapor_id = ? + ORDER BY created_at DESC + "); + $stmt->execute([$user_id]); + $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); + ob_end_clean(); + echo json_encode($rows); + exit; +} + +// ─── 4. VERIFIKASI → masuk ke warga_miskin (admin) ────────────────────────── +if ($aksi === 'verifikasi') { + if ($user_role !== 'admin') { + ob_end_clean(); + echo json_encode(["status" => "error", "pesan" => "Hanya admin yang dapat memverifikasi."]); + exit; + } + $id = (int)($_POST['id'] ?? 0); + if ($id <= 0) { + ob_end_clean(); + echo json_encode(["status" => "error", "pesan" => "ID laporan tidak valid."]); + exit; + } + + // Ambil data laporan + $stmt = $pdo->prepare("SELECT * FROM laporan_warga WHERE id = ?"); + $stmt->execute([$id]); + $lap = $stmt->fetch(PDO::FETCH_ASSOC); + if (!$lap) { + ob_end_clean(); + echo json_encode(["status" => "error", "pesan" => "Laporan tidak ditemukan."]); + exit; + } + if ($lap['status'] === 'diverifikasi') { + ob_end_clean(); + echo json_encode(["status" => "error", "pesan" => "Laporan sudah pernah diverifikasi."]); + exit; + } + + // Insert ke warga_miskin + $ins = $pdo->prepare(" + INSERT INTO warga_miskin + (nama_kk, jumlah_anggota, alamat, lat, lng, pekerjaan, + is_fakir_miskin, is_dhuafa, is_lansia_tunggal, is_anak_yatim, is_korban_bencana, is_disabilitas, + diinput_oleh_id) + VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) + "); + $ins->execute([ + $lap['nama_kk'], $lap['jumlah_anggota'], $lap['alamat'], + $lap['lat'], $lap['lng'], $lap['pekerjaan'], + $lap['is_fakir_miskin'], $lap['is_dhuafa'], $lap['is_lansia_tunggal'], + $lap['is_anak_yatim'], $lap['is_korban_bencana'], $lap['is_disabilitas'], + $lap['pelapor_id'] + ]); + $warga_id = $pdo->lastInsertId(); + + // Update status laporan + $upd = $pdo->prepare("UPDATE laporan_warga SET status='diverifikasi', warga_id=? WHERE id=?"); + $upd->execute([$warga_id, $id]); + + ob_end_clean(); + echo json_encode(["status" => "sukses", "warga_id" => $warga_id, "pesan" => "Laporan diverifikasi. Data warga masuk ke peta."]); + exit; +} + +// ─── 5. TOLAK LAPORAN (admin) ──────────────────────────────────────────────── +if ($aksi === 'tolak') { + if ($user_role !== 'admin') { + ob_end_clean(); + echo json_encode(["status" => "error", "pesan" => "Hanya admin yang dapat menolak laporan."]); + exit; + } + $id = (int)($_POST['id'] ?? 0); + $catatan = trim($_POST['catatan_admin'] ?? ''); + if ($id <= 0) { + ob_end_clean(); + echo json_encode(["status" => "error", "pesan" => "ID tidak valid."]); + exit; + } + $stmt = $pdo->prepare("UPDATE laporan_warga SET status='ditolak', catatan_admin=? WHERE id=?"); + $stmt->execute([$catatan, $id]); + ob_end_clean(); + echo json_encode(["status" => "sukses", "pesan" => "Laporan ditolak."]); + exit; +} + +// ─── 6. HITUNG LAPORAN MENUNGGU (admin, untuk badge) ──────────────────────── +if ($aksi === 'hitung_menunggu') { + if (!in_array($user_role, ['admin', 'walikota'])) { + ob_end_clean(); + echo json_encode(["jumlah" => 0]); + exit; + } + $stmt = $pdo->query("SELECT COUNT(*) FROM laporan_warga WHERE status='menunggu'"); + $n = (int)$stmt->fetchColumn(); + ob_end_clean(); + echo json_encode(["jumlah" => $n]); + exit; +} + +ob_end_clean(); +echo json_encode(["status" => "error", "pesan" => "Aksi tidak dikenal: $aksi"]); diff --git a/webgisdatakemiskinan/auth_proses.php b/webgisdatakemiskinan/auth_proses.php new file mode 100644 index 0000000..03428e5 --- /dev/null +++ b/webgisdatakemiskinan/auth_proses.php @@ -0,0 +1,47 @@ +real_escape_string($username); + $sql = "SELECT * FROM users WHERE username = '$username_esc'"; + $result = $conn->query($sql); + + if ($result->num_rows > 0) { + $user = $result->fetch_assoc(); + + if (password_verify($password, $user['password'])) { + $_SESSION['user_id'] = $user['id']; + $_SESSION['username'] = $user['username']; + $_SESSION['role'] = $user['role']; + $_SESSION['nama_masjid'] = $user['nama_masjid'] ?? ''; + + // Arahkan ke dashboard jika admin/walikota, ke peta jika warga + if (in_array($user['role'], ['admin', 'walikota'])) { + header("Location: dashboard.php"); + } else { + header("Location: index.php"); + } + exit; + } else { + header("Location: login.php?error=invalid"); + exit; + } + } else { + header("Location: login.php?error=invalid"); + exit; + } +} else { + header("Location: login.php"); + exit; +} +?> \ No newline at end of file diff --git a/webgisdatakemiskinan/create_laporan_table.php b/webgisdatakemiskinan/create_laporan_table.php new file mode 100644 index 0000000..606bf59 --- /dev/null +++ b/webgisdatakemiskinan/create_laporan_table.php @@ -0,0 +1,31 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + +$sql = "CREATE TABLE IF NOT EXISTS laporan_warga ( + id INT AUTO_INCREMENT PRIMARY KEY, + pelapor_id INT NOT NULL, + tipe_laporan ENUM('diri_sendiri','orang_lain') DEFAULT 'orang_lain', + nama_kk VARCHAR(150) NOT NULL, + jumlah_anggota INT DEFAULT 1, + alamat TEXT NOT NULL, + lat DECIMAL(10,7) DEFAULT 0, + lng DECIMAL(10,7) DEFAULT 0, + pekerjaan VARCHAR(100) DEFAULT '', + keterangan TEXT, + is_fakir_miskin TINYINT(1) DEFAULT 0, + is_dhuafa TINYINT(1) DEFAULT 0, + is_lansia_tunggal TINYINT(1) DEFAULT 0, + is_anak_yatim TINYINT(1) DEFAULT 0, + is_korban_bencana TINYINT(1) DEFAULT 0, + is_disabilitas TINYINT(1) DEFAULT 0, + status ENUM('menunggu','diverifikasi','ditolak') DEFAULT 'menunggu', + catatan_admin TEXT, + warga_id INT DEFAULT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"; + +$pdo->exec($sql); +echo "OK: Tabel laporan_warga berhasil dibuat!\n"; +echo "Kolom: " . implode(', ', array_column($pdo->query('DESCRIBE laporan_warga')->fetchAll(PDO::FETCH_ASSOC), 'Field')) . "\n"; diff --git a/webgisdatakemiskinan/dashboard.php b/webgisdatakemiskinan/dashboard.php new file mode 100644 index 0000000..f0bf3d2 --- /dev/null +++ b/webgisdatakemiskinan/dashboard.php @@ -0,0 +1,1828 @@ + + + + + + +Admin Dashboard — WebGIS Pemetaan Sosial + + + + + + + + +
+ + + + + +
+
+
+
Dashboard
+
Ringkasan Pemetaan Sosial
+
+ +
+ + +
+
+ +
+ + +
+
+ + +
+ +
+
+
Rumah Ibadah
+
0
+
+
+
KK Warga
+
0
+
+
+
Coverage
+
0%
+
+
+
Donasi Masuk
+
0
+
+
+ + +
+
+
+ +
+ +
+
+
Semua
+
Masjid
+
Gereja
+
Vihara
+
Pura
+
+
+ + +
+ + + + +
+ + +
+
+
+
+
Detail Lokasi
+
Pilih Rumah Ibadah
+
+ +
+
+ + +
+ +
+
+
+
Terjangkau
+
0 KK
+
+
+
+
Blind Spot
+
0 KK
+
+
+
+
Ibadah Aktif
+
0
+
+
+
+
Klaster
+
0
+
+
+
+ + +
+
+
Statistik
+
Warga
+
Log Bantuan
+
Donasi
+
Analisis
+
+
+ + +
+
+
Rumah Ibadah
0
Aktif dalam sistem
+
Total Warga
0
Kepala Keluarga
+
Terjangkau
0
Dalam radius ibadah
+
Blind Spot
0
Di luar jangkauan
+
+
+
Coverage Rate0%
+
+
+
+
Distribusi Terbaru
+
+
+
+ + +
+ + +
+ + +
+
+
+
0
+
Total
+
+
+
0
+
Menunggu
+
+
+
0
+
Dikonfirmasi
+
+
+
Donasi Terbaru dari Pengguna
+
+ +
+ + +
+ +
+
+
+
+
+ + +
+
+
+
+
+ +
+ Manajemen Rumah Ibadah +
+ +
+
+ +
+
+ + + +
IDNama IbadahAlamatPICRadiusAksi
+
+
+
+ + +
+
+
+
+
+ +
+ Manajemen Data Warga Miskin +
+ +
+
+ +
+
+ + + +
IDKepala KeluargaPekerjaanJml AnggotaKlasifikasiStatusAksi
+
+
+
+ + +
+
+
+
+
+ +
+ Log Distribusi Bantuan +
+ +
+
+ +
+
+ + + +
IDPenerimaJenis BantuanTanggalPenyalurKeteranganAksi
+
+
+
+ + +
+ +
+
+
0
+
Total Donasi
+
+
+
0
+
Menunggu Konfirmasi
+
+
+
0
+
Dikonfirmasi
+
+
+
Rp 0
+
Total Nilai Uang
+
+
+ +
+
+
+
+ +
+ Log Donasi dari Pengguna +
+
+ + +
+
+ +
+
Semua Jenis
+
Uang Tunai
+
Sembako
+
Kesehatan
+
Pendidikan
+
Pakaian
+
Peralatan
+
Bahan Bangunan
+
Hewan Ternak
+
Lainnya
+
+
+ +
+
+ + + + + + + + + + + + + + +
IDDonaturJenis DonasiNilai / KeteranganDisalurkan keTanggalStatusAksi
+
+
+
+ + +
+
+
0
Terjangkau
+
0
Blind Spot
+
0
Ibadah Aktif
+
0
Klaster Terdeteksi
+
+
+
+
+
+ +
+ Zona Blind Spot Terdeteksi +
+ +
+
+ + + +
#Koordinat CentroidJml KK TerdampakPrioritas
+
+
+
+ +
+
+
0
Menunggu Verifikasi
+
0
Diverifikasi
+
0
Ditolak
+
+
+
+
+
+ +
+ Laporan dari Warga +
+
+ + +
+
+
+ + + +
RefNama KKPelaporTipeAlamatTanggalStatusAksi
+
+
+
+
+
+
+ + + + + + + +
+ + + + \ No newline at end of file diff --git a/webgisdatakemiskinan/hash_test.php b/webgisdatakemiskinan/hash_test.php new file mode 100644 index 0000000..d4aa07f --- /dev/null +++ b/webgisdatakemiskinan/hash_test.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/webgisdatakemiskinan/index.php b/webgisdatakemiskinan/index.php new file mode 100644 index 0000000..ba4f68f --- /dev/null +++ b/webgisdatakemiskinan/index.php @@ -0,0 +1,3373 @@ + + + + + + + WebGIS Pemetaan Sosial — Data Kemiskinan + + + + + + + + + + + + +
+ + + + + +
+ + Klik di peta untuk menambahkan data +
+ + +
+ +
+
+
+
+
+ +
+ Cari Lokasi +
+ +
+
+
+ + + + +
+
+
+
+ Ketik untuk mencari lokasi +
+
+
+
+
+ +
+
+
+
+
+ +
+ Histori Data +
+ +
+
+
+
+
+ Belum ada data tersimpan +
+
+
+
+
+ +
+
+
+
+
+ +
+ Transparansi Distribusi +
+ +
+
+ +
+
+ + Total Donasi Diterima +
+
Rp 0
+
Dari 0 Donatur
+
+ +
+ + Log Penyaluran ke Warga +
+ +
+
+
+ Memuat data transparansi... +
+
+ +
+
+
+ + + +
+
+
+
+
+ +
+ Laporan Saya +
+ +
+
+
+
+
+ Memuat data laporan... +
+
+
+
+
+ +
+
+
+
+
+ +
+ Detail Warga +
+ +
+
+
+
+ + + + + + + + +
+ + +
+ +
+ + + + diff --git a/webgisdatakemiskinan/koneksi.php b/webgisdatakemiskinan/koneksi.php new file mode 100644 index 0000000..c290679 --- /dev/null +++ b/webgisdatakemiskinan/koneksi.php @@ -0,0 +1,6 @@ +connect_error) { + die("Koneksi gagal: " . $conn->connect_error); +} +?> \ No newline at end of file diff --git a/webgisdatakemiskinan/lapor.php b/webgisdatakemiskinan/lapor.php new file mode 100644 index 0000000..21a9510 --- /dev/null +++ b/webgisdatakemiskinan/lapor.php @@ -0,0 +1,704 @@ + + + + + + Lapor Warga — WebGIS Pemetaan Sosial + + + + + + + + +
+
+ Bagikan halaman ini +
+
+
+ Scan untuk membuka di HP lain +
+
+ + + +
+ + + + + +
+
+
+ 📍 +
+
+ Klik titik lokasi tempat tinggal di peta +
+
+ + +
+ + +
+
Formulir Laporan Warga
+
Laporkan Keluarga
Tidak Mampu
+
Data Anda akan diverifikasi oleh pengurus rumah ibadah setempat sebelum masuk ke peta resmi.
+
+ + +
+
1
Mulai
+
2
Lokasi
+
3
Data Diri
+
4
Kirim
+
+ + +
+ +
+ 💡 + Klik di peta sebelah kiri untuk menentukan lokasi, lalu isi data di bawah ini. +
+ + +
📍 Lokasi Tempat Tinggal
+
+
📍
+
+
Belum dipilih — klik peta
+
Klik di peta untuk menentukan koordinat
+
+
+
+ + +
+ + +
👤 Data Kepala Keluarga
+
+ + +
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
🏥 Kesehatan & Jaminan Sosial
+
+ + +
+
+ + +
+ + +
📝 Identitas Pelapor
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+ + + + +
+
+ + +
+
+
+
Laporan Terkirim!
+
Terima kasih. Laporan Anda sudah diterima dan akan segera diverifikasi oleh pengurus rumah ibadah setempat.
+
ID Laporan: #—
+ +
+
+ +
+ + + + \ No newline at end of file diff --git a/webgisdatakemiskinan/login.php b/webgisdatakemiskinan/login.php new file mode 100644 index 0000000..5dddd1a --- /dev/null +++ b/webgisdatakemiskinan/login.php @@ -0,0 +1,594 @@ + + + + + + Login — WebGIS Pemetaan Sosial + + + + + + + + +
+
+
+
+
+ + +
+
+
+
+
+
+
+
+ +
+
+ + +
+
+ '; ?> +
+ +
+ WebGIS Pemetaan Sosial + Platform Manajemen Data Kemiskinan & Distribusi Bantuan +
+
+ + +
+ + +
+ + + + + +

+ +

+
+ + +
+ + + +
+ + + + + + + +
+ + + +
+ + + + + + + + +
+ + + + +
+ +
Akses Tersedia
+ + +
+
+
+ + + +
+
AdminKelola semua data
+
+
+
+ + + + +
+
WalikotaPantau & analisis
+
+
+
+ + + + + + +
+
WargaLaporan & peta
+
+
+
+ + + + +
+
+ + + + + \ No newline at end of file diff --git a/webgisdatakemiskinan/logout.php b/webgisdatakemiskinan/logout.php new file mode 100644 index 0000000..c11440c --- /dev/null +++ b/webgisdatakemiskinan/logout.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/webgisdatakemiskinan/test_schema.php b/webgisdatakemiskinan/test_schema.php new file mode 100644 index 0000000..7064c70 --- /dev/null +++ b/webgisdatakemiskinan/test_schema.php @@ -0,0 +1,4 @@ +query('DESCRIBE donasi_digital'); +echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC)); diff --git a/webgisdatakemiskinan/uploads/1780846324_6a258ef470a47.jpeg b/webgisdatakemiskinan/uploads/1780846324_6a258ef470a47.jpeg new file mode 100644 index 0000000..0fade03 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1780846324_6a258ef470a47.jpeg differ diff --git a/webgisdatakemiskinan/uploads/1780846886_6a2591260a245.jpeg b/webgisdatakemiskinan/uploads/1780846886_6a2591260a245.jpeg new file mode 100644 index 0000000..0fade03 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1780846886_6a2591260a245.jpeg differ diff --git a/webgisdatakemiskinan/uploads/1780847228_6a25927c02043.jpeg b/webgisdatakemiskinan/uploads/1780847228_6a25927c02043.jpeg new file mode 100644 index 0000000..0fade03 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1780847228_6a25927c02043.jpeg differ diff --git a/webgisdatakemiskinan/uploads/1780847618_6a25940293c28.jpeg b/webgisdatakemiskinan/uploads/1780847618_6a25940293c28.jpeg new file mode 100644 index 0000000..0fade03 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1780847618_6a25940293c28.jpeg differ diff --git a/webgisdatakemiskinan/uploads/1780847686_6a2594462e5ac.jpeg b/webgisdatakemiskinan/uploads/1780847686_6a2594462e5ac.jpeg new file mode 100644 index 0000000..0fade03 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1780847686_6a2594462e5ac.jpeg differ diff --git a/webgisdatakemiskinan/uploads/1780847876_6a2595042e5fb.jpeg b/webgisdatakemiskinan/uploads/1780847876_6a2595042e5fb.jpeg new file mode 100644 index 0000000..0fade03 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1780847876_6a2595042e5fb.jpeg differ diff --git a/webgisdatakemiskinan/uploads/1780924196_6a26bf245b673.jpeg b/webgisdatakemiskinan/uploads/1780924196_6a26bf245b673.jpeg new file mode 100644 index 0000000..0fade03 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1780924196_6a26bf245b673.jpeg differ diff --git a/webgisdatakemiskinan/uploads/1780986353_6a27b1f1336b0.jpeg b/webgisdatakemiskinan/uploads/1780986353_6a27b1f1336b0.jpeg new file mode 100644 index 0000000..0fade03 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1780986353_6a27b1f1336b0.jpeg differ diff --git a/webgisdatakemiskinan/uploads/1781086532_6a293944c7260.jpg b/webgisdatakemiskinan/uploads/1781086532_6a293944c7260.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1781086532_6a293944c7260.jpg differ diff --git a/webgisdatakemiskinan/uploads/1781087138_6a293ba2f07d3.jpg b/webgisdatakemiskinan/uploads/1781087138_6a293ba2f07d3.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1781087138_6a293ba2f07d3.jpg differ diff --git a/webgisdatakemiskinan/uploads/1781087211_6a293bebb761d.jpg b/webgisdatakemiskinan/uploads/1781087211_6a293bebb761d.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/1781087211_6a293bebb761d.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781102960_6a297970957d0.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781102960_6a297970957d0.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781102960_6a297970957d0.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103473_6a297b716caf3.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103473_6a297b716caf3.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103473_6a297b716caf3.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103474_6a297b723ffe8.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103474_6a297b723ffe8.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103474_6a297b723ffe8.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103474_6a297b72f3bc8.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103474_6a297b72f3bc8.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103474_6a297b72f3bc8.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103475_6a297b73776a8.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103475_6a297b73776a8.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103475_6a297b73776a8.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103475_6a297b73d64b3.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103475_6a297b73d64b3.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103475_6a297b73d64b3.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103476_6a297b7432ec4.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103476_6a297b7432ec4.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103476_6a297b7432ec4.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103476_6a297b74805f9.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103476_6a297b74805f9.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103476_6a297b74805f9.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103476_6a297b74ccbc2.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103476_6a297b74ccbc2.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103476_6a297b74ccbc2.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b751551a.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b751551a.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b751551a.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75454c7.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75454c7.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75454c7.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b7574590.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b7574590.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b7574590.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75a2521.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75a2521.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75a2521.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75cc75c.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75cc75c.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75cc75c.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75f0c89.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75f0c89.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103477_6a297b75f0c89.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b7624b93.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b7624b93.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b7624b93.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b764b2b8.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b764b2b8.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b764b2b8.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b767445d.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b767445d.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b767445d.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b769b036.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b769b036.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b769b036.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b76c2a36.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b76c2a36.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b76c2a36.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b76ec0e2.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b76ec0e2.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103478_6a297b76ec0e2.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103479_6a297b7728bc4.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103479_6a297b7728bc4.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103479_6a297b7728bc4.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103479_6a297b7799339.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103479_6a297b7799339.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103479_6a297b7799339.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103510_6a297b9691799.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103510_6a297b9691799.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103510_6a297b9691799.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103696_6a297c5004313.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103696_6a297c5004313.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103696_6a297c5004313.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103697_6a297c51c56d6.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103697_6a297c51c56d6.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103697_6a297c51c56d6.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103965_6a297d5df1fea.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103965_6a297d5df1fea.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103965_6a297d5df1fea.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103966_6a297d5eda331.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103966_6a297d5eda331.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103966_6a297d5eda331.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103967_6a297d5f95b08.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103967_6a297d5f95b08.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103967_6a297d5f95b08.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d6007449.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d6007449.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d6007449.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d6063eea.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d6063eea.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d6063eea.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d60b5399.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d60b5399.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d60b5399.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d60f3f6e.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d60f3f6e.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103968_6a297d60f3f6e.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103969_6a297d613a981.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103969_6a297d613a981.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103969_6a297d613a981.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103969_6a297d6177d33.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103969_6a297d6177d33.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103969_6a297d6177d33.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103969_6a297d61b409b.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103969_6a297d61b409b.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103969_6a297d61b409b.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103970_6a297d620ccf5.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103970_6a297d620ccf5.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103970_6a297d620ccf5.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103970_6a297d626d6b5.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103970_6a297d626d6b5.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103970_6a297d626d6b5.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103970_6a297d62f1d69.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103970_6a297d62f1d69.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103970_6a297d62f1d69.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103971_6a297d6374e4f.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103971_6a297d6374e4f.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103971_6a297d6374e4f.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103971_6a297d63ef5da.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103971_6a297d63ef5da.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103971_6a297d63ef5da.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103972_6a297d647103c.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103972_6a297d647103c.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103972_6a297d647103c.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103973_6a297d6502872.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103973_6a297d6502872.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103973_6a297d6502872.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103973_6a297d658b15a.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103973_6a297d658b15a.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103973_6a297d658b15a.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103988_6a297d74b0289.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103988_6a297d74b0289.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781103988_6a297d74b0289.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104026_6a297d9a572f3.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104026_6a297d9a572f3.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104026_6a297d9a572f3.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104216_6a297e58eed86.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104216_6a297e58eed86.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104216_6a297e58eed86.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104555_6a297fab54a15.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104555_6a297fab54a15.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104555_6a297fab54a15.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104556_6a297fac3faf0.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104556_6a297fac3faf0.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104556_6a297fac3faf0.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104556_6a297facc5b48.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104556_6a297facc5b48.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104556_6a297facc5b48.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fad32abe.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fad32abe.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fad32abe.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fad8ca40.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fad8ca40.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fad8ca40.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fadc0ad2.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fadc0ad2.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fadc0ad2.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fadf1720.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fadf1720.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104557_6a297fadf1720.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae25c89.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae25c89.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae25c89.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae545f3.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae545f3.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae545f3.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae7a665.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae7a665.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae7a665.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae9ebb6.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae9ebb6.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297fae9ebb6.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297faec37f9.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297faec37f9.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297faec37f9.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297faef0593.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297faef0593.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104558_6a297faef0593.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297faf1e5f7.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297faf1e5f7.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297faf1e5f7.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297faf69e10.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297faf69e10.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297faf69e10.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297faf8e815.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297faf8e815.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297faf8e815.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297fafb94ae.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297fafb94ae.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297fafb94ae.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297fafd6b49.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297fafd6b49.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104559_6a297fafd6b49.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb009153.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb009153.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb009153.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb02cd0f.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb02cd0f.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb02cd0f.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb0554b8.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb0554b8.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb0554b8.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb075e4b.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb075e4b.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb075e4b.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb09a5fe.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb09a5fe.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb09a5fe.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb0c1712.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb0c1712.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb0c1712.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb0e1c76.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb0e1c76.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104560_6a297fb0e1c76.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104738_6a298062547f5.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104738_6a298062547f5.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104738_6a298062547f5.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104739_6a29806338c5a.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104739_6a29806338c5a.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104739_6a29806338c5a.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104739_6a298063bd319.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104739_6a298063bd319.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104739_6a298063bd319.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104740_6a298064230dc.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104740_6a298064230dc.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104740_6a298064230dc.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104740_6a2980648ffe5.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104740_6a2980648ffe5.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104740_6a2980648ffe5.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104740_6a298064e6369.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104740_6a298064e6369.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104740_6a298064e6369.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a29806567e45.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a29806567e45.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a29806567e45.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a2980659f868.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a2980659f868.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a2980659f868.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a298065c9bb9.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a298065c9bb9.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a298065c9bb9.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a298065f1b8b.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a298065f1b8b.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104741_6a298065f1b8b.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104743_6a29806727b06.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104743_6a29806727b06.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104743_6a29806727b06.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104754_6a29807209fc0.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104754_6a29807209fc0.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781104754_6a29807209fc0.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781105678_6a29840e0b91b.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781105678_6a29840e0b91b.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781105678_6a29840e0b91b.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781105678_6a29840ef041b.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781105678_6a29840ef041b.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781105678_6a29840ef041b.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781105679_6a29840f7c03d.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781105679_6a29840f7c03d.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781105679_6a29840f7c03d.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781110191_6a2995af0263e.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781110191_6a2995af0263e.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781110191_6a2995af0263e.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781111479_6a299ab785056.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781111479_6a299ab785056.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781111479_6a299ab785056.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781113764_6a29a3a434a29.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781113764_6a29a3a434a29.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781113764_6a29a3a434a29.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781114496_6a29a680ca0b5.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781114496_6a29a680ca0b5.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781114496_6a29a680ca0b5.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781114497_6a29a681856cd.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781114497_6a29a681856cd.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781114497_6a29a681856cd.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781136452_6a29fc44f353a.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781136452_6a29fc44f353a.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781136452_6a29fc44f353a.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781136558_6a29fcaed2d5f.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781136558_6a29fcaed2d5f.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781136558_6a29fcaed2d5f.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781137622_6a2a00d65153f.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781137622_6a2a00d65153f.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781137622_6a2a00d65153f.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781137665_6a2a01012800a.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781137665_6a2a01012800a.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781137665_6a2a01012800a.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781138697_6a2a050990405.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781138697_6a2a050990405.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781138697_6a2a050990405.jpg differ diff --git a/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781138979_6a2a06237ed16.jpg b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781138979_6a2a06237ed16.jpg new file mode 100644 index 0000000..28197b7 Binary files /dev/null and b/webgisdatakemiskinan/uploads/bukti_donasi/donasi_1781138979_6a2a06237ed16.jpg differ diff --git a/webgisspbu-parsiltanah/db_update.php b/webgisspbu-parsiltanah/db_update.php new file mode 100644 index 0000000..0c6f89a --- /dev/null +++ b/webgisspbu-parsiltanah/db_update.php @@ -0,0 +1,10 @@ +query($sql) === TRUE) { + echo "Sukses_DB"; +} else { + echo "Error: " . $conn->error; +} +$conn->close(); +?> diff --git a/webgisspbu-parsiltanah/fix.php b/webgisspbu-parsiltanah/fix.php new file mode 100644 index 0000000..e3e309a --- /dev/null +++ b/webgisspbu-parsiltanah/fix.php @@ -0,0 +1,6 @@ +query($sql) === TRUE) { + echo "Sukses"; +} else { + echo "Error: " . $sql . "
" . $conn->error; +} + +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/hapus_jalan.php b/webgisspbu-parsiltanah/hapus_jalan.php new file mode 100644 index 0000000..0e2d3de --- /dev/null +++ b/webgisspbu-parsiltanah/hapus_jalan.php @@ -0,0 +1,14 @@ +query($sql) === TRUE) { + echo "Sukses"; +} else { + echo "Error: " . $conn->error; +} +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/hapus_kavling.php b/webgisspbu-parsiltanah/hapus_kavling.php new file mode 100644 index 0000000..b666869 --- /dev/null +++ b/webgisspbu-parsiltanah/hapus_kavling.php @@ -0,0 +1,7 @@ +query($sql) === TRUE) { echo "Sukses"; } else { echo "Error: " . $conn->error; } +$conn->close(); +?> diff --git a/webgisspbu-parsiltanah/hapus_kemiskinan.php b/webgisspbu-parsiltanah/hapus_kemiskinan.php new file mode 100644 index 0000000..60fcfb6 --- /dev/null +++ b/webgisspbu-parsiltanah/hapus_kemiskinan.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/webgisspbu-parsiltanah/hapus_masjid.php b/webgisspbu-parsiltanah/hapus_masjid.php new file mode 100644 index 0000000..ee89234 --- /dev/null +++ b/webgisspbu-parsiltanah/hapus_masjid.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/webgisspbu-parsiltanah/index.php b/webgisspbu-parsiltanah/index.php new file mode 100644 index 0000000..bbf8b2f --- /dev/null +++ b/webgisspbu-parsiltanah/index.php @@ -0,0 +1,1111 @@ + + + + + + + WebGIS SPBU & Parsil Tanah + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + +
+
+ + + + + \ No newline at end of file diff --git a/webgisspbu-parsiltanah/koneksi.php b/webgisspbu-parsiltanah/koneksi.php new file mode 100644 index 0000000..a96755b --- /dev/null +++ b/webgisspbu-parsiltanah/koneksi.php @@ -0,0 +1,12 @@ +connect_error) { + die("Koneksi ke database gagal: " . $conn->connect_error); +} +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/simpan.php b/webgisspbu-parsiltanah/simpan.php new file mode 100644 index 0000000..2f34a4e --- /dev/null +++ b/webgisspbu-parsiltanah/simpan.php @@ -0,0 +1,22 @@ +query($sql) === TRUE) { + echo "Sukses"; + } else { + echo "Error: " . $conn->error; + } +} +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/simpan_jalan.php b/webgisspbu-parsiltanah/simpan_jalan.php new file mode 100644 index 0000000..87edf63 --- /dev/null +++ b/webgisspbu-parsiltanah/simpan_jalan.php @@ -0,0 +1,11 @@ +query($sql) === TRUE) { echo "Sukses"; } else { echo "Error: " . $conn->error; } +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/simpan_kavling.php b/webgisspbu-parsiltanah/simpan_kavling.php new file mode 100644 index 0000000..b33ebb5 --- /dev/null +++ b/webgisspbu-parsiltanah/simpan_kavling.php @@ -0,0 +1,10 @@ +query($sql) === TRUE) { echo "Sukses"; } else { echo "Error: " . $conn->error; } +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/simpan_kemiskinan.php b/webgisspbu-parsiltanah/simpan_kemiskinan.php new file mode 100644 index 0000000..fe39570 --- /dev/null +++ b/webgisspbu-parsiltanah/simpan_kemiskinan.php @@ -0,0 +1,7 @@ +query($sql) === TRUE) { echo "Sukses"; } else { echo "Error: " . $conn->error; } +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/simpan_masjid.php b/webgisspbu-parsiltanah/simpan_masjid.php new file mode 100644 index 0000000..438a06c --- /dev/null +++ b/webgisspbu-parsiltanah/simpan_masjid.php @@ -0,0 +1,7 @@ +query($sql) === TRUE) { echo "Sukses"; } else { echo "Error: " . $conn->error; } +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/simpan_parsil.php b/webgisspbu-parsiltanah/simpan_parsil.php new file mode 100644 index 0000000..7c2d0f1 --- /dev/null +++ b/webgisspbu-parsiltanah/simpan_parsil.php @@ -0,0 +1,17 @@ +query($sql) === TRUE) { + echo "Sukses"; +} else { + echo "Error: " . $conn->error; +} +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/simpan_polygon.php b/webgisspbu-parsiltanah/simpan_polygon.php new file mode 100644 index 0000000..5830a48 --- /dev/null +++ b/webgisspbu-parsiltanah/simpan_polygon.php @@ -0,0 +1,11 @@ +query($sql); +$conn->close(); +echo "Sukses"; +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/tampil.php b/webgisspbu-parsiltanah/tampil.php new file mode 100644 index 0000000..9e3679a --- /dev/null +++ b/webgisspbu-parsiltanah/tampil.php @@ -0,0 +1,15 @@ +query($sql); + +$data = array(); +while($row = $result->fetch_assoc()) { + $data[] = $row; +} + +header('Content-Type: application/json'); +echo json_encode($data); +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/tampil_jalan.php b/webgisspbu-parsiltanah/tampil_jalan.php new file mode 100644 index 0000000..9690ef8 --- /dev/null +++ b/webgisspbu-parsiltanah/tampil_jalan.php @@ -0,0 +1,12 @@ +query($sql); +$data = array(); +while($row = $result->fetch_assoc()) { + $data[] = $row; +} +header('Content-Type: application/json'); +echo json_encode($data); +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/tampil_kavling.php b/webgisspbu-parsiltanah/tampil_kavling.php new file mode 100644 index 0000000..514f357 --- /dev/null +++ b/webgisspbu-parsiltanah/tampil_kavling.php @@ -0,0 +1,12 @@ +query($sql); +$data = array(); +while($row = $result->fetch_assoc()) { + $data[] = $row; +} +header('Content-Type: application/json'); +echo json_encode($data); +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/tampil_kemiskinan.php b/webgisspbu-parsiltanah/tampil_kemiskinan.php new file mode 100644 index 0000000..cdf2c07 --- /dev/null +++ b/webgisspbu-parsiltanah/tampil_kemiskinan.php @@ -0,0 +1,6 @@ +query("SELECT * FROM kemiskinan"); +$data = array(); while($row = $result->fetch_assoc()) { $data[] = $row; } +header('Content-Type: application/json'); echo json_encode($data); $conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/tampil_masjid.php b/webgisspbu-parsiltanah/tampil_masjid.php new file mode 100644 index 0000000..80e43fe --- /dev/null +++ b/webgisspbu-parsiltanah/tampil_masjid.php @@ -0,0 +1,6 @@ +query("SELECT * FROM masjid"); +$data = array(); while($row = $result->fetch_assoc()) { $data[] = $row; } +header('Content-Type: application/json'); echo json_encode($data); $conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/update.php b/webgisspbu-parsiltanah/update.php new file mode 100644 index 0000000..d8a9c57 --- /dev/null +++ b/webgisspbu-parsiltanah/update.php @@ -0,0 +1,21 @@ +query($sql) === TRUE) { + echo "Sukses"; +} else { + echo "Error: " . $sql . "
" . $conn->error; +} + +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/update_jalan.php b/webgisspbu-parsiltanah/update_jalan.php new file mode 100644 index 0000000..0b165db --- /dev/null +++ b/webgisspbu-parsiltanah/update_jalan.php @@ -0,0 +1,17 @@ +query($sql) === TRUE) { + echo "Sukses"; +} else { + echo "Error: " . $conn->error; +} +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/update_kavling.php b/webgisspbu-parsiltanah/update_kavling.php new file mode 100644 index 0000000..4f5e379 --- /dev/null +++ b/webgisspbu-parsiltanah/update_kavling.php @@ -0,0 +1,8 @@ +query($sql) === TRUE) { echo "Sukses"; } else { echo "Error: " . $conn->error; } +$conn->close(); +?> diff --git a/webgisspbu-parsiltanah/update_kemiskinan.php b/webgisspbu-parsiltanah/update_kemiskinan.php new file mode 100644 index 0000000..61bbb8c --- /dev/null +++ b/webgisspbu-parsiltanah/update_kemiskinan.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/webgisspbu-parsiltanah/update_lokasi.php b/webgisspbu-parsiltanah/update_lokasi.php new file mode 100644 index 0000000..8d829b6 --- /dev/null +++ b/webgisspbu-parsiltanah/update_lokasi.php @@ -0,0 +1,18 @@ +query($sql) === TRUE) { + echo "Sukses"; +} else { + echo "Error: " . $sql . "
" . $conn->error; +} + +$conn->close(); +?> \ No newline at end of file diff --git a/webgisspbu-parsiltanah/update_lokasi_kemiskinan.php b/webgisspbu-parsiltanah/update_lokasi_kemiskinan.php new file mode 100644 index 0000000..c37c51c --- /dev/null +++ b/webgisspbu-parsiltanah/update_lokasi_kemiskinan.php @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/webgisspbu-parsiltanah/update_lokasi_masjid.php b/webgisspbu-parsiltanah/update_lokasi_masjid.php new file mode 100644 index 0000000..c1f15d2 --- /dev/null +++ b/webgisspbu-parsiltanah/update_lokasi_masjid.php @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/webgisspbu-parsiltanah/update_masjid.php b/webgisspbu-parsiltanah/update_masjid.php new file mode 100644 index 0000000..2fed3c6 --- /dev/null +++ b/webgisspbu-parsiltanah/update_masjid.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/webgisspbu-parsiltanah/update_radius.php b/webgisspbu-parsiltanah/update_radius.php new file mode 100644 index 0000000..5a891eb --- /dev/null +++ b/webgisspbu-parsiltanah/update_radius.php @@ -0,0 +1,7 @@ +query($sql) === TRUE) { echo "Sukses"; } else { echo "Error"; } +$conn->close(); +?> \ No newline at end of file