210 lines
9.2 KiB
PHP
210 lines
9.2 KiB
PHP
<?php
|
|
// ============================================================
|
|
// insert_dummy_warga.php — Generator Data Dummy Warga
|
|
// ============================================================
|
|
$host = getenv('DB_HOST') ?: 'db';
|
|
$user = getenv('DB_USER') ?: 'root';
|
|
$pass = getenv('DB_PASS') ?: 'root';
|
|
$dbName = getenv('DB_NAME_GEOSOSIAL') ?: 'geososial';
|
|
|
|
header('Content-Type: text/html; charset=utf-8');
|
|
echo "<style>body{font-family:monospace;background:#0b1120;color:#e0e6f0;padding:20px} .ok{color:#00c9aa} .err{color:#f03e5a} .info{color:#f59e0b} h2{color:#1a5fff}</style>";
|
|
echo "<h2>👥 GeoSosial Dummy Warga Data Generator</h2>";
|
|
|
|
// Koneksi ke database
|
|
$conn = new mysqli($host, $user, $pass, $dbName);
|
|
if ($conn->connect_error) {
|
|
die("<p class='err'>❌ Gagal konek ke MySQL/Database: " . $conn->connect_error . "</p>");
|
|
}
|
|
echo "<p class='ok'>✅ Berhasil terhubung ke database <b>$dbName</b>.</p>";
|
|
|
|
// 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 "<p class='info'>🔄 Tabel warga, anggota_keluarga, riwayat_penyakit, dan histori_bantuan dikosongkan untuk di-generate ulang.</p>";
|
|
|
|
// 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 "<p class='err'>❌ Gagal menginput warga " . htmlspecialchars($w['nama']) . ": " . $conn->error . "</p>";
|
|
}
|
|
}
|
|
|
|
echo "<h3>🎉 Data Dummy Berhasil Dimasukkan!</h3>";
|
|
echo "<ul>";
|
|
echo "<li><b>$wargaCount</b> Kepala Keluarga berhasil dimasukkan ke tabel <code>warga</code>.</li>";
|
|
echo "<li><b>$anggotaCount</b> Anggota keluarga berhasil dimasukkan ke tabel <code>anggota_keluarga</code>.</li>";
|
|
echo "<li><b>$penyakitCount</b> Riwayat penyakit berhasil dimasukkan ke tabel <code>riwayat_penyakit</code>.</li>";
|
|
echo "<li><b>$bantuanCount</b> Histori bantuan berhasil dimasukkan ke tabel <code>histori_bantuan</code>.</li>";
|
|
echo "</ul>";
|
|
|
|
echo "<p class='info'>👉 Silakan kembali ke portal utama untuk melihat hasilnya pada peta & dashboard!</p>";
|
|
echo "<p style='color:#f03e5a'><b>⚠️ PENTING: Segera hapus file ini setelah dipakai!</b></p>";
|
|
echo "<p>→ <a href='/geososial/index.php' style='color:#1a5fff'>Kembali ke GeoSosial Portal</a></p>";
|
|
|
|
$conn->close();
|
|
?>
|