Enhance pendatang module with existing resident selection, standardize UI gender display to LAKI-LAKI/PEREMPUAN, add Jenis Kelamin columns to pindah/mendu tables, fix NIK display in reports, and implement security improvements

This commit is contained in:
2026-01-22 15:52:22 +08:00
parent 51451824ba
commit 19cc3244de
36 changed files with 648 additions and 434 deletions

30
add_dummy_data.sql Normal file
View File

@@ -0,0 +1,30 @@
-- Add dummy population data for donut chart testing
-- Balita (0-5 years) - 5 records
INSERT INTO tb_pdd (id_pend, nik, nama, tempat_lh, tgl_lh, jekel, desa, rt, rw, agama, kawin, pekerjaan, status) VALUES
(16, '3201010101001001', 'Balita 1', 'Bogor', '2023-01-15', 'LK', 'Sukamaju', '01', '02', 'Islam', 'Belum', 'Balita', 'Ada'),
(17, '3201010101001002', 'Balita 2', 'Bogor', '2022-06-30', 'PR', 'Sukamaju', '01', '02', 'Islam', 'Belum', 'Balita', 'Ada'),
(18, '3201010101001003', 'Balita 3', 'Bogor', '2021-03-20', 'LK', 'Sukamaju', '01', '02', 'Islam', 'Belum', 'Balita', 'Ada'),
(19, '3201010101001004', 'Balita 4', 'Bogor', '2020-11-10', 'PR', 'Sukamaju', '02', '03', 'Islam', 'Belum', 'Balita', 'Ada'),
(20, '3201010101001005', 'Balita 5', 'Bogor', '2024-02-28', 'LK', 'Sukamaju', '02', '03', 'Islam', 'Belum', 'Balita', 'Ada');
-- Anak-anak (6-12 years) - 5 records
INSERT INTO tb_pdd (id_pend, nik, nama, tempat_lh, tgl_lh, jekel, desa, rt, rw, agama, kawin, pekerjaan, status) VALUES
(21, '3201010101001006', 'Anak 1', 'Bogor', '2018-05-15', 'LK', 'Sukamaju', '01', '02', 'Islam', 'Belum', 'Pelajar', 'Ada'),
(22, '3201010101001007', 'Anak 2', 'Bogor', '2017-08-20', 'PR', 'Sukamaju', '01', '02', 'Islam', 'Belum', 'Pelajar', 'Ada'),
(23, '3201010101001008', 'Anak 3', 'Bogor', '2016-12-10', 'LK', 'Sukamaju', '02', '03', 'Islam', 'Belum', 'Pelajar', 'Ada'),
(24, '3201010101001009', 'Anak 4', 'Bogor', '2015-04-25', 'PR', 'Sukamaju', '02', '03', 'Islam', 'Belum', 'Pelajar', 'Ada'),
(25, '3201010101001010', 'Anak 5', 'Bogor', '2014-09-05', 'LK', 'Sukamaju', '03', '04', 'Islam', 'Belum', 'Pelajar', 'Ada');
-- Remaja (13-17 years) - 5 records
INSERT INTO tb_pdd (id_pend, nik, nama, tempat_lh, tgl_lh, jekel, desa, rt, rw, agama, kawin, pekerjaan, status) VALUES
(26, '3201010101001011', 'Remaja 1', 'Bogor', '2011-07-15', 'LK', 'Sukamaju', '01', '02', 'Islam', 'Belum', 'Pelajar', 'Ada'),
(27, '3201010101001012', 'Remaja 2', 'Bogor', '2010-03-20', 'PR', 'Sukamaju', '01', '02', 'Islam', 'Belum', 'Pelajar', 'Ada'),
(28, '3201010101001013', 'Remaja 3', 'Bogor', '2009-11-30', 'LK', 'Sukamaju', '02', '03', 'Islam', 'Belum', 'Pelajar', 'Ada'),
(29, '3201010101001014', 'Remaja 4', 'Bogor', '2008-06-10', 'PR', 'Sukamaju', '02', '03', 'Islam', 'Belum', 'Pelajar', 'Ada'),
(30, '3201010101001015', 'Remaja 5', 'Bogor', '2007-01-25', 'LK', 'Sukamaju', '03', '04', 'Islam', 'Belum', 'Pelajar', 'Ada');
-- Lansia (60+ years) - 3 records
INSERT INTO tb_pdd (id_pend, nik, nama, tempat_lh, tgl_lh, jekel, desa, rt, rw, agama, kawin, pekerjaan, status) VALUES
(31, '3201010101001016', 'Lansia 1', 'Bogor', '1960-05-15', 'LK', 'Sukamaju', '01', '02', 'Islam', 'Kawin', 'Pensiunan', 'Ada'),
(32, '3201010101001017', 'Lansia 2', 'Bogor', '1958-08-20', 'PR', 'Sukamaju', '01', '02', 'Islam', 'Cerai Mati', 'Pensiunan', 'Ada'),
(33, '3201010101001018', 'Lansia 3', 'Bogor', '1955-12-10', 'LK', 'Sukamaju', '02', '03', 'Islam', 'Kawin', 'Pensiunan', 'Ada');

View File

@@ -1,3 +1,6 @@
<?php
$selected_id = isset($_GET['selected_id']) ? (int)$_GET['selected_id'] : 0;
?>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">
@@ -7,28 +10,31 @@
<div class="card-body">
<div class="form-group row">
<label class="col-sm-2 col-form-label">NIK</label>
<label class="col-sm-2 col-form-label">Pendatang</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="nik" name="nik" placeholder="NIK" required>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Nama</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="nama_datang" name="nama_datang" placeholder="Nama Pendatang" required>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Jenis Kelain</label>
<div class="col-sm-3">
<select name="jekel" id="jekel" class="form-control">
<option>- Pilih -</option>
<option>LK</option>
<option>PR</option>
<select name="id_pend" id="id_pend" class="form-control select2bs4" required>
<option value="" <?php echo ($selected_id == 0) ? 'selected="selected"' : ''; ?>>- Pilih Penduduk -</option>
<?php
// ambil data dari database
$query = "select * from tb_pdd where status='Ada'";
$hasil = mysqli_query($koneksi, $query);
while ($row = mysqli_fetch_array($hasil)) {
?>
<option value="<?php echo $row['id_pend'] ?>" <?php echo ($row['id_pend'] == $selected_id) ? 'selected="selected"' : ''; ?>>
<?php echo $row['nik'] ?>
-
<?php echo $row['nama'] ?>
</option>
<?php
}
?>
</select>
</div>
<div class="col-sm-2">
<a href="?page=add-pend&return_to=add-datang" class="btn btn-outline-primary btn-sm">
<i class="fa fa-plus"></i> Tambah Penduduk Baru
</a>
</div>
</div>
<div class="form-group row">
@@ -50,9 +56,9 @@
while ($row = mysqli_fetch_array($hasil)) {
?>
<option value="<?php echo $row['id_pend'] ?>">
<?php echo $row['nik'] ?>
<?php echo htmlspecialchars($row['nik'], ENT_QUOTES); ?>
-
<?php echo $row['nama'] ?>
<?php echo htmlspecialchars($row['nama'], ENT_QUOTES); ?>
</option>
<?php
}
@@ -73,37 +79,37 @@
if (isset ($_POST['Simpan'])){
//mulai proses simpan data
$sql_simpan = "INSERT INTO tb_datang (nik, nama_datang, jekel, tgl_datang, pelapor) VALUES (
'".$_POST['nik']."',
'".$_POST['nama_datang']."',
'".$_POST['jekel']."',
'".$_POST['tgl_datang']."',
'".$_POST['pelapor']."')";
// Sanitize Input to prevent SQL Injection & Syntax Errors
$id_pend = (int)$_POST['id_pend']; // Cast to integer for safety
$tgl_datang = mysqli_real_escape_string($koneksi, trim($_POST['tgl_datang']));
$pelapor = (int)$_POST['pelapor']; // Cast to integer for safety
// Ambil data penduduk yang dipilih
$sql_pend = "SELECT nik, nama, jekel FROM tb_pdd WHERE id_pend='$id_pend'";
$q_pend = mysqli_query($koneksi, $sql_pend);
$d_pend = mysqli_fetch_array($q_pend);
if (!$d_pend) {
die("Data penduduk tidak ditemukan. Silakan pilih penduduk yang valid.");
}
$nik = mysqli_real_escape_string($koneksi, trim($d_pend['nik']));
$nama_datang = mysqli_real_escape_string($koneksi, trim($d_pend['nama']));
$jekel = mysqli_real_escape_string($koneksi, trim($d_pend['jekel']));
$sql_simpan = "INSERT INTO tb_datang (id_pend, nik, nama_datang, jekel, tgl_datang, pelapor) VALUES (
'$id_pend',
'$nik',
'$nama_datang',
'$jekel',
'$tgl_datang',
'$pelapor')";
$query_simpan = mysqli_query($koneksi, $sql_simpan);
// Otomatis tambah ke Data Penduduk
// Ambil data alamat dari pelapor
$id_pelapor = $_POST['pelapor'];
$sql_pelapor = "SELECT desa, rt, rw FROM tb_pdd WHERE id_pend='$id_pelapor'";
$q_pelapor = mysqli_query($koneksi, $sql_pelapor);
$d_pelapor = mysqli_fetch_array($q_pelapor);
$desa = $d_pelapor['desa'];
$rt = $d_pelapor['rt'];
$rw = $d_pelapor['rw'];
$sql_pdd = "INSERT INTO tb_pdd (nik, nama, tempat_lh, tgl_lh, jekel, desa, rt, rw, agama, kawin, pekerjaan, status) VALUES (
'".$_POST['nik']."',
'".$_POST['nama_datang']."',
'-',
'0000-00-00',
'".$_POST['jekel']."',
'$desa', '$rt', '$rw',
'-', '-', '-', 'Ada')";
$query_pdd = mysqli_query($koneksi, $sql_pdd);
mysqli_close($koneksi);
if ($query_simpan && $query_pdd) {
if ($query_simpan) {
echo "<script>
Swal.fire({title: 'Tambah Data Berhasil',text: '',icon: 'success',confirmButtonText: 'OK'
}).then((result) => {if (result.value){

View File

@@ -17,7 +17,7 @@
<th>No</th>
<th>NIK</th>
<th>Nama</th>
<th>Jekel</th>
<th>Jenis Kelamin</th>
<th>Tanggal</th>
<th>Pelapor</th>
<th>Aksi</th>
@@ -43,7 +43,15 @@
<?php echo $data['nama_datang']; ?>
</td>
<td>
<?php echo $data['jekel']; ?>
<?php
if ($data['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data['jekel'];
}
?>
</td>
<td>
<?php echo $data['tgl_datang']; ?>

View File

@@ -1,8 +1,11 @@
<?php
if(isset($_GET['kode'])){
$sql_cek = "SELECT d.id_datang, d.nik, d.nama_datang, d.jekel, d.tgl_datang, p.id_pend, p.nama from
tb_datang d inner join tb_pdd p on d.pelapor=p.id_pend WHERE id_datang='".$_GET['kode']."'";
$sql_cek = "SELECT d.id_datang, d.id_pend, d.nik, d.nama_datang, d.jekel, d.tgl_datang, p.id_pend as id_pelapor, p.nama as nama_pelapor, pd.tgl_lh
FROM tb_datang d
INNER JOIN tb_pdd p ON d.pelapor=p.id_pend
LEFT JOIN tb_pdd pd ON d.id_pend=pd.id_pend
WHERE d.id_datang='".$_GET['kode']."'";
$query_cek = mysqli_query($koneksi, $sql_cek);
$data_cek = mysqli_fetch_array($query_cek,MYSQLI_BOTH);
}
@@ -24,43 +27,51 @@
</div>
</div>
<input type="hidden" id="id_pend" name="id_pend" value="<?php echo isset($data_cek['id_pend']) ? $data_cek['id_pend'] : ''; ?>">
<div class="form-group row">
<label class="col-sm-2 col-form-label">NIK</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="nik" name="nik" value="<?php echo $data_cek['nik']; ?>"
required>
<input type="text" class="form-control" value="<?php echo htmlspecialchars($data_cek['nik'], ENT_QUOTES); ?>" readonly>
<input type="hidden" name="nik" value="<?php echo htmlspecialchars($data_cek['nik'], ENT_QUOTES); ?>">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Nama</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="nama_datang" name="nama_datang" value="<?php echo $data_cek['nama_datang']; ?>"
required>
<input type="text" class="form-control" value="<?php echo htmlspecialchars($data_cek['nama_datang'], ENT_QUOTES); ?>" readonly>
<input type="hidden" name="nama_datang" value="<?php echo htmlspecialchars($data_cek['nama_datang'], ENT_QUOTES); ?>">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Jenis Kelamin</label>
<div class="col-sm-3">
<select name="jekel" id="jekel" class="form-control">
<option value="">-- Pilih jekel --</option>
<?php
//menhecek data yg dipilih sebelumnya
if ($data_cek['jekel'] == "LK") echo "<option value='LK' selected>LK</option>";
else echo "<option value='LK'>LK</option>";
<input type="text" class="form-control" value="<?php
$display_jekel = $data_cek['jekel'];
if ($display_jekel == 'LK') {
$display_jekel = 'LAKI-LAKI';
} elseif ($display_jekel == 'PR') {
$display_jekel = 'PEREMPUAN';
}
echo htmlspecialchars($display_jekel, ENT_QUOTES);
?>" readonly>
<input type="hidden" name="jekel" value="<?php echo htmlspecialchars($data_cek['jekel'], ENT_QUOTES); ?>">
</div>
</div>
if ($data_cek['jekel'] == "PR") echo "<option value='PR' selected>PR</option>";
else echo "<option value='PR'>PR</option>";
?>
</select>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Tgl Lahir</label>
<div class="col-sm-3">
<input type="text" class="form-control" value="<?php echo htmlspecialchars(isset($data_cek['tgl_lh']) ? $data_cek['tgl_lh'] : '-', ENT_QUOTES); ?>" readonly>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Tgl Datang</label>
<div class="col-sm-3">
<input type="date" class="form-control" id="tgl_datang" name="tgl_datang" value="<?php echo $data_cek['tgl_datang']; ?>"
<input type="date" class="form-control" id="tgl_datang" name="tgl_datang" value="<?php echo htmlspecialchars($data_cek['tgl_datang'], ENT_QUOTES); ?>"
required>
</div>
</div>
@@ -72,15 +83,14 @@
<option selected="">- Pilih -</option>
<?php
// ambil data dari database
$query = "select * from tb_pdd";
$query = "select * from tb_pdd where status='Ada'";
$hasil = mysqli_query($koneksi, $query);
while ($row = mysqli_fetch_array($hasil)) {
?>
<option value="<?php echo $row['id_pend'] ?>" <?=$data_cek[
'id_pend']==$row[ 'id_pend'] ? "selected" : null ?>>
<?php echo $row['nik'] ?>
<option value="<?php echo $row['id_pend'] ?>" <?=$data_cek['id_pelapor']==$row['id_pend'] ? "selected" : null ?>>
<?php echo htmlspecialchars($row['nik'], ENT_QUOTES); ?>
-
<?php echo $row['nama'] ?>
<?php echo htmlspecialchars($row['nama'], ENT_QUOTES); ?>
</option>
<?php
}
@@ -101,14 +111,27 @@
<?php
if (isset ($_POST['Ubah'])){
// Sanitize Input to prevent SQL Injection & Syntax Errors
$id_datang = (int)$_POST['id_datang'];
$nik = mysqli_real_escape_string($koneksi, trim($_POST['nik']));
$nama_datang = mysqli_real_escape_string($koneksi, trim($_POST['nama_datang']));
$jekel = mysqli_real_escape_string($koneksi, trim($_POST['jekel']));
$tgl_datang = mysqli_real_escape_string($koneksi, trim($_POST['tgl_datang']));
$pelapor = (int)$_POST['pelapor'];
// Update tb_datang table
$sql_ubah = "UPDATE tb_datang SET
nik='".$_POST['nik']."',
nama_datang='".$_POST['nama_datang']."',
jekel='".$_POST['jekel']."',
tgl_datang='".$_POST['tgl_datang']."',
pelapor='".$_POST['pelapor']."'
WHERE id_datang='".$_POST['id_datang']."'";
nik='$nik',
nama_datang='$nama_datang',
jekel='$jekel',
tgl_datang='$tgl_datang',
pelapor='$pelapor'
WHERE id_datang='$id_datang'";
$query_ubah = mysqli_query($koneksi, $sql_ubah);
mysqli_close($koneksi);
if ($query_ubah) {

View File

@@ -97,7 +97,7 @@
<tr>
<th>NIK</th>
<th>Nama</th>
<th>Jekel</th>
<th>Jenis Kelamin</th>
<th>Hub Keluarga</th>
<th>Aksi</th>
</tr>
@@ -119,7 +119,15 @@
<?php echo $data['nama']; ?>
</td>
<td>
<?php echo $data['jekel']; ?>
<?php
if ($data['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data['jekel'];
}
?>
</td>
<td>
<?php echo $data['hubungan']; ?>

View File

@@ -59,7 +59,7 @@
<th>No</th>
<th>NIK</th>
<th>Nama</th>
<th>Jekel</th>
<th>Jenis Kelamin</th>
<th>Hub Keluarga</th>
<th>Status</th>
</tr>
@@ -85,7 +85,15 @@
<?php echo $data['nama']; ?>
</td>
<td>
<?php echo $data['jekel']; ?>
<?php
if ($data['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data['jekel'];
}
?>
</td>
<td>
<?php echo $data['hubungan']; ?>

View File

@@ -28,7 +28,7 @@
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Jenis Kelain</label>
<label class="col-sm-2 col-form-label">Jenis Kelamin</label>
<div class="col-sm-3">
<select name="jekel" id="jekel" class="form-control">
<option>- Pilih -</option>
@@ -73,16 +73,23 @@
if (isset ($_POST['Simpan'])){
//mulai proses simpan data
// Sanitize Input to prevent SQL Injection & Syntax Errors
$nik = mysqli_real_escape_string($koneksi, trim($_POST['nik']));
$nama = mysqli_real_escape_string($koneksi, trim($_POST['nama']));
$tgl_lh = mysqli_real_escape_string($koneksi, trim($_POST['tgl_lh']));
$jekel = mysqli_real_escape_string($koneksi, trim($_POST['jekel']));
$id_kk = (int)$_POST['id_kk']; // Cast to integer for safety
$sql_simpan = "INSERT INTO tb_lahir (nama, tgl_lh, jekel, id_kk) VALUES (
'".$_POST['nama']."',
'".$_POST['tgl_lh']."',
'".$_POST['jekel']."',
'".$_POST['id_kk']."')";
'$nama',
'$tgl_lh',
'$jekel',
'$id_kk')";
$query_simpan = mysqli_query($koneksi, $sql_simpan);
// Otomatis tambah ke Data Penduduk
// Ambil data alamat dari KK
$id_kk = $_POST['id_kk'];
$sql_kk = "SELECT desa, rt, rw FROM tb_kk WHERE id_kk='$id_kk'";
$q_kk = mysqli_query($koneksi, $sql_kk);
$d_kk = mysqli_fetch_array($q_kk);
@@ -91,11 +98,11 @@
$rw = $d_kk['rw'];
$sql_pdd = "INSERT INTO tb_pdd (nik, nama, tempat_lh, tgl_lh, jekel, desa, rt, rw, agama, kawin, pekerjaan, status) VALUES (
'".$_POST['nik']."',
'".$_POST['nama']."',
'$nik',
'$nama',
'-',
'".$_POST['tgl_lh']."',
'".$_POST['jekel']."',
'$tgl_lh',
'$jekel',
'$desa', '$rt', '$rw',
'-', 'Belum', 'Belum/Tidak Bekerja', 'Ada')";
$query_pdd = mysqli_query($koneksi, $sql_pdd);

View File

@@ -17,7 +17,7 @@
<th>No</th>
<th>Nama</th>
<th>Tgl Lahir</th>
<th>Jekel</th>
<th>Jenis Kelamin</th>
<th>Keluarga</th>
<th>Aksi</th>
</tr>
@@ -42,7 +42,15 @@
<?php echo $data['tgl_lh']; ?>
</td>
<td>
<?php echo $data['jekel']; ?>
<?php
if ($data['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data['jekel'];
}
?>
</td>
<td>
<?php echo $data['no_kk']; ?>-

View File

@@ -56,15 +56,21 @@
if (isset ($_POST['Simpan'])){
//mulai proses simpan data
// Sanitize Input to prevent SQL Injection & Syntax Errors
$id_pdd = (int)$_POST['id_pdd']; // Cast to integer for safety
$tgl_mendu = mysqli_real_escape_string($koneksi, trim($_POST['tgl_mendu']));
$sebab = mysqli_real_escape_string($koneksi, trim($_POST['sebab']));
$sql_simpan = "INSERT INTO tb_mendu (id_pdd, tgl_mendu, sebab) VALUES (
'".$_POST['id_pdd']."',
'".$_POST['tgl_mendu']."',
'".$_POST['sebab']."')";
'$id_pdd',
'$tgl_mendu',
'$sebab')";
$query_simpan = mysqli_query($koneksi, $sql_simpan);
$sql_ubah = "UPDATE tb_pdd SET
status='Meninggal'
WHERE id_pend='".$_POST['id_pdd']."'";
WHERE id_pend='$id_pdd'";
$query_ubah = mysqli_query($koneksi, $sql_ubah);
mysqli_close($koneksi);

View File

@@ -17,6 +17,7 @@
<th>No</th>
<th>NIK</th>
<th>Nama</th>
<th>Jenis Kelamin</th>
<th>Tanggal</th>
<th>Sebab</th>
<th>Aksi</th>
@@ -26,7 +27,7 @@
<?php
$no = 1;
$sql = $koneksi->query("SELECT p.id_pend, p.nik, p.nama, m.tgl_mendu, m.sebab, m.id_mendu from
$sql = $koneksi->query("SELECT p.id_pend, p.nik, p.nama, p.jekel, m.tgl_mendu, m.sebab, m.id_mendu from
tb_mendu m inner join tb_pdd p on p.id_pend=m.id_pdd");
while ($data= $sql->fetch_assoc()) {
?>
@@ -41,6 +42,9 @@
<td>
<?php echo $data['nama']; ?>
</td>
<td>
<?php echo $data['jekel'] == 'LK' ? 'LAKI-LAKI' : 'PEREMPUAN'; ?>
</td>
<td>
<?php echo $data['tgl_mendu']; ?>
</td>

View File

@@ -90,7 +90,15 @@
<b>Jenis Kelamin</b>
</td>
<td>:
<?php echo $data_cek['jekel']; ?>
<?php
if ($data_cek['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data_cek['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data_cek['jekel'];
}
?>
</td>
</tr>
<tr>

View File

@@ -1,3 +1,6 @@
<?php
$return_to = isset($_GET['return_to']) ? mysqli_real_escape_string($koneksi, trim($_GET['return_to'])) : '';
?>
<div class="card card-primary">
<div class="card-header">
<h3 class="card-title">
@@ -388,7 +391,7 @@ window.addEventListener('load', function() {
echo "<script>
Swal.fire({title: 'Gagal',text: 'NIK sudah terdaftar dalam sistem!',icon: 'error',confirmButtonText: 'OK'
}).then((result) => {if (result.value){
window.location = 'index.php?page=add-pend';
window.location = 'index.php?page=add-pend" . (!empty($return_to) ? '&return_to=' . $return_to : '') . "';
}
})</script>";
return;
@@ -432,6 +435,7 @@ window.addEventListener('load', function() {
if ($query_simpan) {
$id_pend_baru = mysqli_insert_id($koneksi);
$redirect_url = !empty($return_to) ? "index.php?page=" . $return_to . "&selected_id=" . $id_pend_baru : "index.php?page=data-pend";
// KTP → KK: Cari KK yang cocok berdasarkan alamat
$sql_cari_kk = "SELECT k.id_kk, k.no_kk, k.kepala, k.desa, k.rt, k.rw
@@ -479,16 +483,16 @@ window.addEventListener('load', function() {
}).then(resp => resp.json()).then(data => {
if(data.success) {
Swal.fire('Berhasil!', 'Data telah dihubungkan dengan KK.', 'success').then(() => {
window.location = 'index.php?page=data-pend';
window.location = '$redirect_url';
});
} else {
Swal.fire('Gagal', 'Gagal menghubungkan: ' + data.message, 'error').then(() => {
window.location = 'index.php?page=data-pend';
window.location = '$redirect_url';
});
}
});
} else {
window.location = 'index.php?page=data-pend';
window.location = '$redirect_url';
}
});
</script>";
@@ -497,7 +501,7 @@ window.addEventListener('load', function() {
echo "<script>
Swal.fire({title: 'Tambah Data Berhasil',text: 'Data telah terhubung dengan KK $no_kk',icon: 'success',confirmButtonText: 'OK'
}).then((result) => {if (result.value){
window.location = 'index.php?page=data-pend';
window.location = '$redirect_url';
}
})</script>";
}
@@ -506,15 +510,16 @@ window.addEventListener('load', function() {
echo "<script>
Swal.fire({title: 'Tambah Data Berhasil',text: '',icon: 'success',confirmButtonText: 'OK'
}).then((result) => {if (result.value){
window.location = 'index.php?page=data-pend';
window.location = '$redirect_url';
}
})</script>";
}
} else {
$error_redirect = 'index.php?page=add-pend' . (!empty($return_to) ? '&return_to=' . $return_to : '');
echo "<script>
Swal.fire({title: 'Tambah Data Gagal',text: '" . mysqli_error($koneksi) . "',icon: 'error',confirmButtonText: 'OK'
}).then((result) => {if (result.value){
window.location = 'index.php?page=add-pend';
window.location = '$error_redirect';
}
})</script>";
}

View File

@@ -17,7 +17,7 @@
<th>No</th>
<th>NIK</th>
<th>Nama</th>
<th>JK</th>
<th>Jenis Kelamin</th>
<th>Alamat</th>
<th>No KK</th>
<th>Aksi</th>
@@ -59,7 +59,15 @@
<?php echo $data['nama']; ?>
</td>
<td>
<?php echo $data['jekel']; ?>
<?php
if ($data['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data['jekel'];
}
?>
</td>
<td>
<?php echo $data['desa']; ?>

View File

@@ -56,13 +56,19 @@
];
$level_db = isset($level_map[$_POST['level']]) ? $level_map[$_POST['level']] : $_POST['level'];
// Sanitize Input to prevent SQL Injection & Syntax Errors
$nama_pengguna = mysqli_real_escape_string($koneksi, trim($_POST['nama_pengguna']));
$username = mysqli_real_escape_string($koneksi, trim($_POST['username']));
$password_raw = trim($_POST['password']);
$password_hash = MD5($password_raw);
$level_db = mysqli_real_escape_string($koneksi, $level_db);
//mulai proses simpan data
$password_hash = MD5($_POST['password']);
$sql_simpan = "INSERT INTO tb_pengguna (nama_pengguna,username,password,level) VALUES (
'".$_POST['nama_pengguna']."',
'".$_POST['username']."',
'".$password_hash."',
'".$level_db."')";
'$nama_pengguna',
'$username',
'$password_hash',
'$level_db')";
$query_simpan = mysqli_query($koneksi, $sql_simpan);
mysqli_close($koneksi);

View File

@@ -56,15 +56,21 @@
if (isset ($_POST['Simpan'])){
//mulai proses simpan data
// Sanitize Input to prevent SQL Injection & Syntax Errors
$id_pdd = (int)$_POST['id_pdd']; // Cast to integer for safety
$tgl_pindah = mysqli_real_escape_string($koneksi, trim($_POST['tgl_pindah']));
$alasan = mysqli_real_escape_string($koneksi, trim($_POST['alasan']));
$sql_simpan = "INSERT INTO tb_pindah (id_pdd, tgl_pindah, alasan) VALUES (
'".$_POST['id_pdd']."',
'".$_POST['tgl_pindah']."',
'".$_POST['alasan']."')";
'$id_pdd',
'$tgl_pindah',
'$alasan')";
$query_simpan = mysqli_query($koneksi, $sql_simpan);
$sql_ubah = "UPDATE tb_pdd SET
status='Pindah'
WHERE id_pend='".$_POST['id_pdd']."'";
WHERE id_pend='$id_pdd'";
$query_ubah = mysqli_query($koneksi, $sql_ubah);
mysqli_close($koneksi);

View File

@@ -17,6 +17,7 @@
<th>No</th>
<th>NIK</th>
<th>Nama</th>
<th>Jenis Kelamin</th>
<th>Tanggal</th>
<th>Alasan</th>
<th>Aksi</th>
@@ -26,7 +27,7 @@
<?php
$no = 1;
$sql = $koneksi->query("SELECT p.id_pend, p.nik, p.nama, d.tgl_pindah, d.alasan, d.id_pindah from
$sql = $koneksi->query("SELECT p.id_pend, p.nik, p.nama, p.jekel, d.tgl_pindah, d.alasan, d.id_pindah from
tb_pindah d inner join tb_pdd p on p.id_pend=d.id_pdd");
while ($data= $sql->fetch_assoc()) {
?>
@@ -41,6 +42,9 @@
<td>
<?php echo $data['nama']; ?>
</td>
<td>
<?php echo $data['jekel'] == 'LK' ? 'LAKI-LAKI' : 'PEREMPUAN'; ?>
</td>
<td>
<?php echo $data['tgl_pindah']; ?>
</td>

View File

@@ -90,7 +90,15 @@
<b>Jenis Kelamin</b>
</td>
<td>:
<?php echo $data_cek['jekel']; ?>
<?php
if ($data_cek['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data_cek['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data_cek['jekel'];
}
?>
</td>
</tr>
<tr>

View File

@@ -10,3 +10,5 @@ if ($koneksi->connect_error) {
die("Koneksi database gagal: " . $koneksi->connect_error);
}
$koneksi->set_charset("utf8mb4");

View File

@@ -389,31 +389,31 @@
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="#" class="nav-link">
<a href="?page=suket-domisili" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Domisili</p>
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
<a href="?page=suket-lahir" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Kelahiran</p>
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
<a href="?page=suket-mati" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Kematian</p>
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
<a href="?page=suket-datang" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Pendatang</p>
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
<a href="?page=suket-pindah" class="nav-link">
<i class="nav-icon far fa-circle text-warning"></i>
<p>Su-Ket Pindah</p>
</a>

View File

@@ -166,7 +166,7 @@ ALTER TABLE `tb_anggota`
ADD CONSTRAINT `tb_anggota_ibfk_2` FOREIGN KEY (`id_pend`) REFERENCES `tb_pdd` (`id_pend`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `tb_datang`
ADD CONSTRAINT `tb_datang_ibfk_1` FOREIGN KEY (`pelapor`) REFERENCES `tb_pengguna` (`id_pengguna`) ON DELETE CASCADE ON UPDATE CASCADE;
ADD CONSTRAINT `tb_datang_ibfk_1` FOREIGN KEY (`pelapor`) REFERENCES `tb_pdd` (`id_pend`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `tb_lahir`
ADD CONSTRAINT `tb_lahir_ibfk_1` FOREIGN KEY (`id_kk`) REFERENCES `tb_kk` (`id_kk`) ON DELETE CASCADE ON UPDATE CASCADE;

View File

@@ -1,8 +1,10 @@
<?php
include "../inc/koneksi.php";
if (isset ($_POST['Cetak'])){
if (isset ($_POST['Cetak']) && isset($_POST['id_datang'])){
$id = $_POST['id_datang'];
} else {
die("Data tidak valid. Silakan pilih data datang dari form.");
}
$tanggal = date("m/y");
@@ -57,34 +59,42 @@
<td>NIK</td>
<td>:</td>
<td>
<?php echo $data['nik']; ?>
<?php echo htmlspecialchars($data['nik'], ENT_QUOTES); ?>
</td>
</tr>
<tr>
<td>Nama</td>
<td>:</td>
<td>
<?php echo $data['nama_datang']; ?>
<?php echo htmlspecialchars($data['nama_datang'], ENT_QUOTES); ?>
</td>
</tr>
<tr>
<td>Jenis Kelamin</td>
<td>:</td>
<td>
<?php echo $data['jekel']; ?>
<?php
$display_jekel = $data['jekel'];
if ($display_jekel == 'LK') {
$display_jekel = 'LAKI-LAKI';
} elseif ($display_jekel == 'PR') {
$display_jekel = 'PEREMPUAN';
}
echo htmlspecialchars($display_jekel, ENT_QUOTES);
?>
</td>
</tr>
<tr>
<td>Tanggal Datang</td>
<td>:</td>
<td>
<?php echo $data['tgl_datang']; ?>
<?php echo htmlspecialchars($data['tgl_datang'], ENT_QUOTES); ?>
</td>
</tr>
<?php } ?>
</tbody>
</table>
<p>Benar-benar Telah datang dan berencana untuk tinggal di <?php echo $data_profil['nama_desa']; ?>, <?php echo $data_profil['kecamatan']; ?>, <?php echo $data_profil['kabupaten']; ?>.</P>
<p>Benar-benar Telah datang dan berencana untuk tinggal di <?php echo htmlspecialchars($data_profil['nama_desa'], ENT_QUOTES); ?>, <?php echo htmlspecialchars($data_profil['kecamatan'], ENT_QUOTES); ?>, <?php echo htmlspecialchars($data_profil['kabupaten'], ENT_QUOTES); ?>.</P>
<p>Demikian Surat ini dibuat, agar dapat digunakan sebagaimana mestinya.</P>
<br>
<br>
@@ -92,7 +102,7 @@
<br>
<br>
<p align="right">
<?php echo $data_profil['nama_desa']; ?>,
<?php echo htmlspecialchars($data_profil['nama_desa'], ENT_QUOTES); ?>,
<?php echo $tgl; ?>
<br> KEPALA DESA
<br>
@@ -101,7 +111,7 @@
<br>
<br>
<br>
<br>(<?php echo $data_profil['kepala_desa']; ?>)
<br>(<?php echo htmlspecialchars($data_profil['kepala_desa'], ENT_QUOTES); ?>)
</p>

View File

@@ -1,8 +1,10 @@
<?php
include "../inc/koneksi.php";
if (isset ($_POST['Cetak'])){
if (isset ($_POST['Cetak']) && isset($_POST['id_pend'])){
$id = $_POST['id_pend'];
} else {
die("Data tidak valid. Silakan pilih data penduduk dari form.");
}
$tanggal = date("m/y");

View File

@@ -55,7 +55,7 @@
<th>Nama</th>
<th>Tgl Lahir</th>
<th>Usia</th>
<th>JK</th>
<th>Jenis Kelamin</th>
<th>Alamat</th>
</tr>
</thead>
@@ -67,11 +67,19 @@
?>
<tr>
<td align="center"><?php echo $no++; ?></td>
<td>'<?php echo $data['nik']; ?></td>
<td><?php echo $data['nik']; ?></td>
<td><?php echo $data['nama']; ?></td>
<td align="center"><?php echo date("d/m/Y", strtotime($data['tgl_lh'])); ?></td>
<td align="center"><?php echo $data['usia']; ?> Thn</td>
<td align="center"><?php echo $data['jekel']; ?></td>
<td align="center"><?php
if ($data['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data['jekel'];
}
?></td>
<td><?php echo $data['desa']; ?>, RT <?php echo $data['rt']; ?>/ RW <?php echo $data['rw']; ?></td>
</tr>
<?php } ?>

View File

@@ -1,8 +1,10 @@
<?php
include "../inc/koneksi.php";
if (isset ($_POST['Cetak'])){
$id = $_POST['lahir'];
if (isset ($_POST['Cetak']) && isset($_POST['id_lahir'])){
$id = $_POST['id_lahir'];
} else {
die("Data tidak valid. Silakan pilih data kelahiran dari form.");
}
$tanggal = date("m/y");
@@ -63,7 +65,15 @@
<td>Jenis Kelamin</td>
<td>:</td>
<td>
<?php echo $data['jekel']; ?>
<?php
if ($data['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data['jekel'];
}
?>
</td>
</tr>
<tr>

View File

@@ -1,8 +1,10 @@
<?php
include "../inc/koneksi.php";
if (isset ($_POST['Cetak'])){
if (isset ($_POST['Cetak']) && isset($_POST['id_mendu'])){
$id = $_POST['id_mendu'];
} else {
die("Data tidak valid. Silakan pilih data kematian dari form.");
}
$tanggal = date("m/y");

View File

@@ -1,8 +1,10 @@
<?php
include "../inc/koneksi.php";
if (isset ($_POST['Cetak'])){
if (isset ($_POST['Cetak']) && isset($_POST['id_pindah'])){
$id = $_POST['id_pindah'];
} else {
die("Data tidak valid. Silakan pilih data pindah dari form.");
}
$tanggal = date("m/y");

View File

@@ -28,7 +28,7 @@
<th>No</th>
<th>NIK</th>
<th>Nama</th>
<th>Jekel</th>
<th>Jenis Kelamin</th>
<th>Tanggal Datang</th>
<th>Pelapor</th>
</tr>
@@ -44,9 +44,17 @@
?>
<tr>
<td align="center"><?php echo $no++; ?></td>
<td>'<?php echo $data['nik']; ?></td>
<td><?php echo $data['nik']; ?></td>
<td><?php echo $data['nama_datang']; ?></td>
<td align="center"><?php echo $data['jekel']; ?></td>
<td align="center"><?php
if ($data['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data['jekel'];
}
?></td>
<td><?php echo $data['tgl_datang']; ?></td>
<td><?php echo $data['pelapor']; ?></td>
</tr>

View File

@@ -45,7 +45,15 @@
<td align="center"><?php echo $no++; ?></td>
<td><?php echo $data['nama']; ?></td>
<td><?php echo $data['tgl_lh']; ?></td>
<td align="center"><?php echo $data['jekel']; ?></td>
<td align="center"><?php
if ($data['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data['jekel'];
}
?></td>
<td><?php echo $data['kepala']; ?> (No KK: '<?php echo $data['no_kk']; ?>)</td>
</tr>
<?php } ?>

View File

@@ -43,7 +43,7 @@
?>
<tr>
<td align="center"><?php echo $no++; ?></td>
<td>'<?php echo $data['nik']; ?></td>
<td><?php echo $data['nik']; ?></td>
<td><?php echo $data['nama']; ?></td>
<td><?php echo $data['tgl_mendu']; ?></td>
<td><?php echo $data['sebab']; ?></td>

View File

@@ -28,7 +28,7 @@
<th>No</th>
<th>NIK</th>
<th>Nama</th>
<th>JK</th>
<th>Jenis Kelamin</th>
<th>Alamat</th>
<th>Status</th>
</tr>
@@ -42,9 +42,17 @@
?>
<tr>
<td align="center"><?php echo $no++; ?></td>
<td>'<?php echo $data['nik']; ?></td>
<td><?php echo $data['nik']; ?></td>
<td><?php echo $data['nama']; ?></td>
<td align="center"><?php echo $data['jekel']; ?></td>
<td align="center"><?php
if ($data['jekel'] == 'LK') {
echo 'LAKI-LAKI';
} elseif ($data['jekel'] == 'PR') {
echo 'PEREMPUAN';
} else {
echo $data['jekel'];
}
?></td>
<td><?php echo $data['desa']; ?>, RT <?php echo $data['rt']; ?>/ RW <?php echo $data['rw']; ?></td>
<td><?php echo $data['status']; ?></td>
</tr>

View File

@@ -43,7 +43,7 @@
?>
<tr>
<td align="center"><?php echo $no++; ?></td>
<td>'<?php echo $data['nik']; ?></td>
<td><?php echo $data['nik']; ?></td>
<td><?php echo $data['nama']; ?></td>
<td><?php echo $data['tgl_pindah']; ?></td>
<td><?php echo $data['alasan']; ?></td>

View File

@@ -3,7 +3,7 @@
<h3 class="card-title">
<i class="fa fa-file"></i> Su-Ket Pendatang</h3>
</div>
<form action="./report/cetak_datang.php" method="post" enctype="multipart/form-data">
<form action="./report/cetak_datang.php" method="post" enctype="multipart/form-data" target="_blank">
<div class="card-body">
<div class="form-group row">
@@ -18,9 +18,9 @@
while ($row = mysqli_fetch_array($hasil)) {
?>
<option value="<?php echo $row['id_datang'] ?>">
<?php echo $row['nik'] ?>
<?php echo htmlspecialchars($row['nik'], ENT_QUOTES); ?>
-
<?php echo $row['nama_datang'] ?>
<?php echo htmlspecialchars($row['nama_datang'], ENT_QUOTES); ?>
</option>
<?php
}
@@ -32,7 +32,7 @@
</div>
<div class="card-footer">
<input target="_blank" type="submit" name="Cetak" value="Cetak" class="btn btn-info"></input>
<input type="submit" name="Cetak" value="Cetak" class="btn btn-info">
</div>
</form>
</div>

View File

@@ -3,7 +3,7 @@
<h3 class="card-title">
<i class="fa fa-file"></i> Su-Ket Domisili</h3>
</div>
<form action="./report/cetak_domisili.php" method="post" enctype="multipart/form-data">
<form action="./report/cetak_domisili.php" method="post" enctype="multipart/form-data" target="_blank">
<div class="card-body">
<div class="form-group row">
@@ -31,7 +31,7 @@
</div>
<div class="card-footer">
<button type="submit" class="btn btn-info" name="btnCetak" target="_blank">Cetak Surat</button>
<input type="submit" name="Cetak" value="Cetak Surat" class="btn btn-info">
</div>
</form>
</div>

View File

@@ -3,13 +3,13 @@
<h3 class="card-title">
<i class="fa fa-file"></i> Su-Ket Kelahiran</h3>
</div>
<form action="./report/cetak_lahir.php" method="post" enctype="multipart/form-data">
<form action="./report/cetak_lahir.php" method="post" enctype="multipart/form-data" target="_blank">
<div class="card-body">
<div class="form-group row">
<label class="col-sm-2 col-form-label">Kelahiran</label>
<div class="col-sm-6">
<select name="lahir" id="lahir" class="form-control select2bs4" required>
<select name="id_lahir" id="id_lahir" class="form-control select2bs4" required>
<option selected="selected">- Pilih Data -</option>
<?php
// ambil data dari database

View File

@@ -3,7 +3,7 @@
<h3 class="card-title">
<i class="fa fa-file"></i> Su-Ket Kematian</h3>
</div>
<form action="./report/cetak_mati.php" method="post" enctype="multipart/form-data">
<form action="./report/cetak_mati.php" method="post" enctype="multipart/form-data" target="_blank">
<div class="card-body">
<div class="form-group row">

View File

@@ -3,24 +3,25 @@
<h3 class="card-title">
<i class="fa fa-file"></i> Su-Ket Pindah</h3>
</div>
<form action="./report/cetak_pindah.php" method="post" enctype="multipart/form-data">
<form action="./report/cetak_pindah.php" method="post" enctype="multipart/form-data" target="_blank">
<div class="card-body">
<div class="form-group row">
<label class="col-sm-2 col-form-label">Penduduk</label>
<label class="col-sm-2 col-form-label">Pindah</label>
<div class="col-sm-6">
<select name="id_pend" id="id_pend" class="form-control select2bs4" required>
<select name="id_pindah" id="id_pindah" class="form-control select2bs4" required>
<option selected="selected">- Pilih Data -</option>
<?php
// ambil data dari database
$query = "select * from tb_pdd where status='Pindah'";
$query = "select p.id_pindah, d.nik, d.nama, p.tgl_pindah from tb_pindah p inner join tb_pdd d on p.id_pdd=d.id_pend";
$hasil = mysqli_query($koneksi, $query);
while ($row = mysqli_fetch_array($hasil)) {
?>
<option value="<?php echo $row['id_pend'] ?>">
<option value="<?php echo $row['id_pindah'] ?>">
<?php echo $row['nik'] ?>
-
<?php echo $row['nama'] ?>
(<?php echo $row['tgl_pindah'] ?>)
</option>
<?php
}