From a9965a8650bf02a5568520f63b0c46fc2edc59c1 Mon Sep 17 00:00:00 2001 From: NASYA KHAIRA ADINIA Date: Thu, 11 Jun 2026 01:47:28 +0700 Subject: [PATCH] add script to generate dummy warga data --- insert_dummy_warga.php | 209 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 insert_dummy_warga.php diff --git a/insert_dummy_warga.php b/insert_dummy_warga.php new file mode 100644 index 0000000..620c54e --- /dev/null +++ b/insert_dummy_warga.php @@ -0,0 +1,209 @@ +body{font-family:monospace;background:#0b1120;color:#e0e6f0;padding:20px} .ok{color:#00c9aa} .err{color:#f03e5a} .info{color:#f59e0b} h2{color:#1a5fff}"; +echo "

👥 GeoSosial Dummy Warga Data Generator

"; + +// Koneksi ke database +$conn = new mysqli($host, $user, $pass, $dbName); +if ($conn->connect_error) { + die("

❌ Gagal konek ke MySQL/Database: " . $conn->connect_error . "

"); +} +echo "

✅ Berhasil terhubung ke database $dbName.

"; + +// Bersihkan data warga lama (opsional, agar tidak duplikat jika di-run berkali-kali) +// Kita gunakan TRUNCATE atau DELETE untuk membersihkan tabel relasi +$conn->query("SET FOREIGN_KEY_CHECKS = 0"); +$conn->query("TRUNCATE TABLE riwayat_penyakit"); +$conn->query("TRUNCATE TABLE anggota_keluarga"); +$conn->query("TRUNCATE TABLE histori_bantuan"); +$conn->query("TRUNCATE TABLE warga"); +$conn->query("SET FOREIGN_KEY_CHECKS = 1"); +echo "

🔄 Tabel warga, anggota_keluarga, riwayat_penyakit, dan histori_bantuan dikosongkan untuk di-generate ulang.

"; + +// Data Dummy Warga (Kepala Keluarga) +$dummyWarga = [ + [ + 'nama' => 'Budi Santoso', + 'nik' => '6171011211750001', + 'kelurahan_id' => 4, // Kel. Mariana + 'lat' => -0.0185000, + 'lng' => 109.3325000, + 'kategori' => 'sangat_miskin', + 'jumlah_anggota' => 4, + 'penghasilan' => 800000, + 'tgl_lahir' => '1975-11-12', + 'pendidikan' => 'sd', + 'keterangan' => 'Bekerja sebagai buruh harian lepas, kondisi rumah kayu lapuk tidak layak huni.', + 'anggota' => [ + ['nama' => 'Budi Santoso', 'usia' => 50, 'hubungan' => 'Kepala Keluarga', 'penyakit' => ['hipertensi']], + ['nama' => 'Siti Aminah', 'usia' => 45, 'hubungan' => 'Istri', 'penyakit' => ['diabetes']], + ['nama' => 'Agus Santoso', 'usia' => 18, 'hubungan' => 'Anak', 'penyakit' => ['asma']], + ['nama' => 'Eka Santosa', 'usia' => 12, 'hubungan' => 'Anak', 'penyakit' => ['stunting']], + ], + 'bantuan' => [ + ['tanggal' => '2026-01-15', 'jenis' => 'PKH', 'nominal' => 600000, 'sumber_dana' => 'APBN', 'keterangan' => 'Bantuan Program Keluarga Harapan Tahap 1'] + ] + ], + [ + 'nama' => 'Ahmad Subarjo', + 'nik' => '6171021508800002', + 'kelurahan_id' => 3, // Kel. Sungai Bangkong + 'lat' => -0.0210000, + 'lng' => 109.3540000, + 'kategori' => 'miskin', + 'jumlah_anggota' => 3, + 'penghasilan' => 1200000, + 'tgl_lahir' => '1980-08-15', + 'pendidikan' => 'smp', + 'keterangan' => 'Pedagang kaki lima keliling, pendapatan tidak menentu.', + 'anggota' => [ + ['nama' => 'Ahmad Subarjo', 'usia' => 45, 'hubungan' => 'Kepala Keluarga', 'penyakit' => []], + ['nama' => 'Dewi Lestari', 'usia' => 40, 'hubungan' => 'Istri', 'penyakit' => ['tbc']], + ['nama' => 'Roni Subarjo', 'usia' => 10, 'hubungan' => 'Anak', 'penyakit' => []], + ], + 'bantuan' => [ + ['tanggal' => '2026-02-10', 'jenis' => 'BLT', 'nominal' => 300000, 'sumber_dana' => 'APBD', 'keterangan' => 'BLT BBM Kota Pontianak'] + ] + ], + [ + 'nama' => 'Nurhayati', + 'nik' => '6171034403680003', + 'kelurahan_id' => 14, // Kel. Siantan Hulu + 'lat' => -0.0110000, + 'lng' => 109.3370000, + 'kategori' => 'sangat_miskin', + 'jumlah_anggota' => 2, + 'penghasilan' => 500000, + 'tgl_lahir' => '1968-03-04', + 'pendidikan' => 'tidak_sekolah', + 'keterangan' => 'Janda lanjut usia, bekerja serabutan cuci gosok gosok pakaian tetangga.', + 'anggota' => [ + ['nama' => 'Nurhayati', 'usia' => 58, 'hubungan' => 'Kepala Keluarga', 'penyakit' => ['jantung']], + ['nama' => 'Ani', 'usia' => 15, 'hubungan' => 'Anak', 'penyakit' => []], + ], + 'bantuan' => [ + ['tanggal' => '2026-03-05', 'jenis' => 'Sembako', 'nominal' => 200000, 'sumber_dana' => 'APBD', 'keterangan' => 'Bantuan Pangan Non-Tunai / Sembako Daerah'] + ] + ], + [ + 'nama' => 'Hendra Wijaya', + 'nik' => '6171041902850004', + 'kelurahan_id' => 6, // Kel. Parit Tokaya + 'lat' => -0.0295000, + 'lng' => 109.3380000, + 'kategori' => 'hampir_miskin', + 'jumlah_anggota' => 5, + 'penghasilan' => 1800000, + 'tgl_lahir' => '1985-02-19', + 'pendidikan' => 'sma', + 'keterangan' => 'Bekerja sebagai ojek online, menanggung orang tua yang sedang sakit stroke.', + 'anggota' => [ + ['nama' => 'Hendra Wijaya', 'usia' => 41, 'hubungan' => 'Kepala Keluarga', 'penyakit' => []], + ['nama' => 'Maria Ulfa', 'usia' => 38, 'hubungan' => 'Istri', 'penyakit' => []], + ['nama' => 'Rian Wijaya', 'usia' => 14, 'hubungan' => 'Anak', 'penyakit' => []], + ['nama' => 'Kiki Wijaya', 'usia' => 8, 'hubungan' => 'Anak', 'penyakit' => []], + ['nama' => 'Nenek Sumi', 'usia' => 70, 'hubungan' => 'Orang Tua', 'penyakit' => ['stroke']], + ], + 'bantuan' => [] + ], + [ + 'nama' => 'Supriadi', + 'nik' => '6171050101900005', + 'kelurahan_id' => 1, // Kel. Tengah + 'lat' => -0.0260000, + 'lng' => 109.3425000, + 'kategori' => 'miskin', + 'jumlah_anggota' => 1, + 'penghasilan' => 400000, + 'tgl_lahir' => '1990-01-01', + 'pendidikan' => 'smp', + 'keterangan' => 'Hidup sebatang kara, mengalami gangguan kesehatan mental ringan (ODGJ terawat), dibantu warga sekitar.', + 'anggota' => [ + ['nama' => 'Supriadi', 'usia' => 36, 'hubungan' => 'Kepala Keluarga', 'penyakit' => ['odgj']], + ], + 'bantuan' => [ + ['tanggal' => '2026-04-01', 'jenis' => 'Kesehatan', 'nominal' => 0, 'sumber_dana' => 'BPJS', 'keterangan' => 'Pemberian obat jalan gratis penderita ODGJ'] + ] + ] +]; + +$wargaCount = 0; +$anggotaCount = 0; +$penyakitCount = 0; +$bantuanCount = 0; + +foreach ($dummyWarga as $w) { + // Insert warga + $stmt = $conn->prepare("INSERT INTO warga (nama, nik, kelurahan_id, lat, lng, kategori, jumlah_anggota, penghasilan, tgl_lahir, pendidikan, keterangan, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'aktif')"); + $stmt->bind_param("ssidssissss", + $w['nama'], + $w['nik'], + $w['kelurahan_id'], + $w['lat'], + $w['lng'], + $w['kategori'], + $w['jumlah_anggota'], + $w['penghasilan'], + $w['tgl_lahir'], + $w['pendidikan'], + $w['keterangan'] + ); + + if ($stmt->execute()) { + $wargaId = $conn->insert_id; + $wargaCount++; + + // Insert anggota keluarga + foreach ($w['anggota'] as $a) { + $stmtA = $conn->prepare("INSERT INTO anggota_keluarga (warga_id, nama, usia, hubungan) VALUES (?, ?, ?, ?)"); + $stmtA->bind_param("isis", $wargaId, $a['nama'], $a['usia'], $a['hubungan']); + if ($stmtA->execute()) { + $anggotaId = $conn->insert_id; + $anggotaCount++; + + // Insert riwayat penyakit + foreach ($a['penyakit'] as $py) { + $stmtP = $conn->prepare("INSERT INTO riwayat_penyakit (anggota_id, penyakit) VALUES (?, ?)"); + $stmtP->bind_param("is", $anggotaId, $py); + if ($stmtP->execute()) { + $penyakitCount++; + } + } + } + } + + // Insert histori bantuan + foreach ($w['bantuan'] as $b) { + $stmtB = $conn->prepare("INSERT INTO histori_bantuan (warga_id, tanggal, jenis, nominal, sumber_dana, keterangan) VALUES (?, ?, ?, ?, ?, ?)"); + $stmtB->bind_param("ississ", $wargaId, $b['tanggal'], $b['jenis'], $b['nominal'], $b['sumber_dana'], $b['keterangan']); + if ($stmtB->execute()) { + $bantuanCount++; + } + } + } else { + echo "

❌ Gagal menginput warga " . htmlspecialchars($w['nama']) . ": " . $conn->error . "

"; + } +} + +echo "

🎉 Data Dummy Berhasil Dimasukkan!

"; +echo ""; + +echo "

👉 Silakan kembali ke portal utama untuk melihat hasilnya pada peta & dashboard!

"; +echo "

⚠️ PENTING: Segera hapus file ini setelah dipakai!

"; +echo "

Kembali ke GeoSosial Portal

"; + +$conn->close(); +?>