PHP CRUD
23 Jun 2025 -
penjelasan tentang PHP CRUD
1. Koneksi.php
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$db_nama = 'pendaftaran';
$koneksi = mysqli_connect($host, $username, $password, $db_nama);
if (!$koneksi){
die("koneksi gagal:". mysqli_connect_error());
}else {
echo "koneksi database berhasil";
}
?>
Penjelasan dan Fungsi Kode:
1. <?php
Menandakan bahwa kode setelah ini adalah kode PHP.
2. Variabel Koneksi Database:
$host = 'localhost';
$username = 'root';
$password = '';
$db_nama = 'pendaftaran';
localhost
: Nama host database. Umumnyalocalhost
jika database ada di server yang sama.root
: Username untuk login ke MySQL. Default-nya biasanyaroot
.''
: Password MySQL. Dikosongkan jika tidak ada password (sering terjadi di server lokal/XAMPP).'pendaftaran'
: Nama database yang akan digunakan.
3. Membuat Koneksi ke Database:
$koneksi = mysqli_connect($host, $username, $password, $db_nama);
Fungsi mysqli_connect()
:
Digunakan untuk membuat koneksi ke server MySQL. Jika berhasil, variabel $koneksi
akan menyimpan koneksi tersebut.
4. Mengecek Koneksi:
if (!$koneksi){
die("koneksi gagal:". mysqli_connect_error());
}else {
echo "koneksi database berhasil";
}
if (!$koneksi)
: Mengecek apakah koneksi gagal.die("koneksi gagal:". mysqli_connect_error());
: Jika gagal, tampilkan pesan kesalahan dan hentikan program.mysqli_connect_error()
: Fungsi yang menampilkan detail error dari koneksi.else { echo "koneksi database berhasil"; }
: Jika koneksi berhasil, tampilkan pesan sukses.
2. index.php
<?php
echo "
<h2> pendaftaran siswa baru</h2>
<h1> digital talent</h1>
<h3>Menu</h3>
<ul>
<li><a href='from-daftar.php'>Daftar Baru</a></li>
<li><a href='list-siswa.php'>Pendaftaran</a></li>
</ul>";
?>
Penjelasan
<?php ... ?>
: Menandakan bagian kode PHP.echo "...";
: Menampilkan teks atau HTML ke browser.-
Isi dari
echo
adalah HTML yang mencetak:- Judul halaman: “pendaftaran siswa baru” dan “digital talent”
- Subjudul “Menu”
-
Daftar menu:
- Daftar Baru → tautan ke
from-daftar.php
- Pendaftaran → tautan ke
list-siswa.php
- Daftar Baru → tautan ke
Fungsinya:
Untuk menampilkan navigasi/menu awal pada halaman pendaftaran siswa secara otomatis menggunakan PHP.
3. Form-daftar.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Form pendaftaran | Digital Talent</title>
</head>
<body>
<h2>Formulir Pendaftaran siswa baru</h2>
<form action="create.php" method="POST">
<table>
<tr>
<td>Nama</td>
<td>:</td>
<td><input type="text" name="nama"></td>
</tr>
<tr>
<td>Alamat</td>
<td>:</td>
<td><textarea name="alamat"></textarea></td>
</tr>
<tr>
<td>Jenis Kelamin</td>
<td>:</td>
<td>
<input type="radio" name="jenis_kelamin" value="1"> Laki-laki
<input type="radio" name="jenis_kelamin" value="0"> Perempuan
</td>
</tr>
<tr>
<td>Agama</td>
<td>:</td>
<td>
<select name="agama">
<option>Islam</option>
<option>Kristen</option>
<option>Hindu</option>
<option>Budha</option>
<option>Konghucu</option>
</select>
</td>
</tr>
<tr>
<td>Sekolah Asal</td>
<td>:</td>
<td><input type="text" name="sekolah_asal"></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" name="submit" value="Daftar"></td>
</table>
</form>
</body>
</html>
Penjelasan
<h2>Formulir Pendaftaran siswa baru</h2>
Judul utama halaman.
<form action="create.php" method="POST">
action="create.php"
→ Ketika form disubmit, data dikirim ke file PHPcreate.php
.method="POST"
→ Data dikirim secara tertutup (tidak terlihat di URL).
Isi Formulir:
Nama
<input type="text" name="nama">
Input teks untuk nama siswa.
Alamat
<textarea name="alamat"></textarea>
Textarea untuk menulis alamat lengkap.
Jenis Kelamin
<input type="radio" name="jenis_kelamin" value="1"> Laki-laki
<input type="radio" name="jenis_kelamin" value="0"> Perempuan
Tombol pilihan (radio) antara Laki-laki dan Perempuan.
Agama
<select name="agama"> ... </select>
Dropdown menu untuk memilih agama. Pilihan: Islam, Kristen, Hindu, Budha, Konghucu.
Sekolah Asal
<input type="text" name="sekolah_asal">
Input teks untuk nama sekolah sebelumnya.
Tombol Submit
<input type="submit" name="submit" value="Daftar">
Tombol untuk mengirim form.
Fungsinya
Formulir ini digunakan untuk mendaftarkan siswa baru. Data akan dikirim ke create.php
dan bisa disimpan ke database.
4. create.php
<?php
include "koneksi.php";
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$agama = $_POST['agama'];
$sekolah_asal = $_POST['sekolah_asal'];
$sql = " INSERT INTO siswa (nama, alamat, jenis_kelamin, agama, sekolah_asal)
VALUES ('$nama', '$alamat', '$jenis_kelamin', '$agama', '$sekolah_asal')";
if (mysqli_query($koneksi, $sql)) {
header("location:list-siswa.php");
} else {
echo "Error:" . $sql . "<br>" . mysqli_error($koneksi) ;
}
?>
Ambil data dari form:
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$agama = $_POST['agama'];
$sekolah_asal = $_POST['sekolah_asal'];
Mengambil data yang dikirim dari form HTML dengan metode POST.
Query SQL:
$sql = "INSERT INTO siswa (nama, alamat, jenis_kelamin, agama, sekolah_asal)
VALUES ('$nama', '$alamat', '$jenis_kelamin', '$agama', '$sekolah_asal')";
Membuat perintah SQL untuk menyimpan data ke tabel siswa
.
Eksekusi Query:
if (mysqli_query($koneksi, $sql)) {
header("location:list-siswa.php");
}
Jika berhasil disimpan, redirect ke halaman list-siswa.php
.
Jika Gagal:
else {
echo "Error:" . $sql . "<br>" . mysqli_error($koneksi);
}
Menampilkan pesan error jika query gagal.
5.list-siswa.php
<!doctype html>
<html>
<head>
<title>Daftar Siswa</title>
</head>
<body>
<h2>Siswa yang sudah mendaftar</h2>
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="from-daftar.php">[+] Tambah Baru</a></li>
</ul>
<?php
include "koneksi.php";
$sql = "SELECT * FROM siswa";
$result = mysqli_query($koneksi, $sql);
?>
<table border ="1">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Alamat</th>
<th>Jenis Kelamin</th>
<th>Agama</th>
<th>Sekolah Asal</th>
<th>Tindakan</th>
</tr>
</thead>
<tbody>
<?php
$no = 1;
while ($row = mysqli_fetch_assoc($result)) {
?>
<tr>
<td><?php echo $no++; ?></td>
<td><?php echo $row['nama']; ?></td>
<td><?php echo $row['alamat']; ?></td>
<td>
<?php
if ($row['jenis_kelamin'] == 1) {
echo "Laki-laki";
} else {
echo "Perempuan";
}
?>
</td>
<td><?php echo $row['agama']; ?></td>
<td><?php echo $row['sekolah_asal']; ?></td>
<td>
<a href="form-edit.php?id=<?php echo $row['id']; ?>">Edit</a>
<a href="form-delete.php?id=<?php echo $row['id']; ?>">Delete</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</body>
</html>
Header HTML
<h2>Siswa yang sudah mendaftar</h2>
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="from-daftar.php">[+] Tambah Baru</a></li>
</ul>
Navigasi ke halaman utama dan form pendaftaran baru.
include "koneksi.php";
Menghubungkan ke database.
Ambil Data dari Tabel siswa
$sql = "SELECT * FROM siswa";
$result = mysqli_query($koneksi, $sql);
Mengambil semua data siswa dari database.
Tampilkan Data dalam Tabel HTML
Data siswa ditampilkan satu per satu menggunakan while
, termasuk:
- Nama
- Alamat
- Jenis Kelamin (1 = Laki-laki, 0 = Perempuan)
- Agama
- Sekolah Asal
- Tombol Edit dan Delete berdasarkan
id
.
6. Form-edit.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Form Edit Siswa</title>
</head>
<body>
<?php
include "koneksi.php";
$id = $_GET['id'];
$sql = "SELECT * FROM siswa WHERE id=$id";
$result = mysqli_query($koneksi, $sql);
$row = mysqli_fetch_assoc($result);
?>
<h2>Formulir Edit Siswa</h2>
<form action="update.php" method="POST">
<input type="hidden" name="id" value="<?php echo $row['id'] ?>">
Nama :
<input type="text" name="nama" value="<?php echo $row['nama'] ?>"> <br/>
Alamat :
<textarea name="alamat"><?php echo $row['alamat'] ?></textarea> <br/>
Jenis Kelamin :
<input type="radio" name="jenis_kelamin" value="1" <?php if ($row['jenis_kelamin'] == 1) echo "checked" ?>> Laki-Laki
<input type="radio" name="jenis_kelamin" value="0" <?php if ($row['jenis_kelamin'] == 0) echo "checked" ?>> Perempuan <br/>
Agama :
<select name="agama">
<option>--Pilih Agama--</option>
<option value="Islam" <?php if ($row['agama'] == "Islam") echo "selected" ?>>Islam</option>
<option value="Kristen" <?php if ($row['agama'] == "Kristen") echo "selected" ?>>Kristen</option>
<option value="Hindu" <?php if ($row['agama'] == "Hindu") echo "selected" ?>>Hindu</option>
<option value="Budha" <?php if ($row['agama'] == "Budha") echo "selected" ?>>Budha</option>
</select> <br/>
Sekolah Asal :
<input type="text" name="sekolah_asal" value="<?php echo $row['sekolah_asal'] ?>"> <br/><br/>
<button type="submit">Update</button>
<a href="list-siswa.php">Batal</a>
</form>
</body>
</html>
Penjelasan Per Bagian:
1. include "koneksi.php";
Menghubungkan ke database.
2. Ambil data berdasarkan ID:
$id = $_GET['id'];
$sql = "SELECT * FROM siswa WHERE id=$id";
Mengambil data siswa dengan ID tertentu dari database untuk diedit.
Isi Form:
Form menampilkan data yang sudah ada, dan bisa diubah:
- Nama (input)
- Alamat (textarea)
- Jenis Kelamin (radio)
- Agama (dropdown)
- Sekolah Asal (input)
Nilai-nilai sebelumnya otomatis diisi (prefilled) sesuai data yang diambil dari database.
saat Submit:
Form dikirim ke update.php
untuk menyimpan perubahan.
Kesimpulan:
Halaman ini digunakan untuk mengedit data siswa.
Data diambil dari database lalu ditampilkan, dan setelah diubah akan dikirim ke update.php
untuk diproses.
7. update.php
<?php
include "koneksi.php";
$id = $_POST['id'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$agama = $_POST['agama'];
$sekolah_asal = $_POST['sekolah_asal'];
$sql = "UPDATE siswa SET nama='$nama',alamat='$alamat', jenis_kelamin='$jenis_kelamin',
agama='$agama',sekolah_asal='$sekolah_asal' WHERE id=$id";
if (mysqli_query($koneksi, $sql)) {
header("Location: list-siswa.php");
} else {
echo "Error updating record: " . mysqli_error($koneksi);
}
?>
Penjelasan
-
include "koneksi.php";
Menghubungkan ke database. -
$_POST[...]
Mengambil data dari form edit. -
UPDATE siswa SET ... WHERE id=$id
Menyusun query untuk mengubah data siswa berdasarkan ID. -
mysqli_query(...)
Menjalankan query ke database. -
Jika berhasil → Redirect ke
list-siswa.php
-
Jika gagal → Tampilkan pesan error.
Kesimpulan:
Kode ini digunakan untuk memperbarui data siswa di database berdasarkan input dari form edit.
8. Form-delete.php
<doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Form Hapus Siswa</title>
<head>
<body>
<?php
include "koneksi.php";
$id = $_GET['id'];
$sql = "SELECT * FROM siswa WHERE id=$id" ;
$result = mysqli_query($koneksi, $sql);
$row = mysqli_fetch_assoc($result);
?>
<h2>Apakah Anda Yakin akan menghapus data tersebut?</h2>
<form action= "delete.php" method="POST">
<input type= "hidden" name ="id" value="<?php echo $row['id'] ?>">
Nama : <?php echo $row['nama'] ?> <br/>
Jenis Kelamin :
<?php
if ($row['jenis_kelamin']== 1){
echo "laki laki";
} else {
echo "perempuan";
}
?> <br/>
Agama : <?php echo $row['agama'] ?> <br/>
<button type= "submit"> Ya</button>
<a href="list-siswa.php">Tidak</a>
</form>
</body>
</html>
Penjelasan
-
include "koneksi.php";
Menghubungkan ke database. -
$id = $_GET['id'];
Mengambil ID siswa dari URL. -
SELECT * FROM siswa WHERE id=$id
Mengambil data siswa berdasarkan ID. -
Menampilkan data: Nama, Jenis Kelamin, dan Agama.
-
Form kirim ke
delete.php
dengan metode POST, menyertakanid
siswa.
Pilihan User:
- Klik “Ya” → menghapus data (dikirim ke
delete.php
). - Klik “Tidak” → kembali ke
list-siswa.php
.
Kesimpulan:
Form ini digunakan untuk mengkonfirmasi penghapusan siswa, menampilkan datanya, dan menunggu keputusan pengguna (hapus atau batal).
9.delete.php
<?php
include "koneksi.php";
$id = $_POST['id'];
$sql = "DELETE FROM siswa WHERE id=$id";
if (mysqli_query($koneksi, $sql)) {
header("Location: list-siswa.php");
} else {
echo "Error deleting record:" . mysqli_error($koneksi) ;
}
?>
Penjelasan
-
include "koneksi.php";
Menghubungkan ke database. -
$id = $_POST['id'];
Mengambilid
siswa dari form. -
DELETE FROM siswa WHERE id=$id
Menyusun query untuk menghapus siswa berdasarkan ID. -
mysqli_query(...)
Menjalankan query ke database. -
Jika berhasil → Dialihkan ke
list-siswa.php
. -
Jika gagal → Tampilkan pesan error.
Kesimpulan
Kode ini digunakan untuk mengeksekusi penghapusan data siswa dari tabel siswa secara permanen.