Soal Tes CRUD PHP
Instruksi: Buatlah aplikasi sederhana menggunakan PHP yang dapat melakukan operasi CRUD (Create, Read, Update, Delete) pada sebuah tabel database. Tabel tersebut memiliki 6 kolom sebagai berikut:
- id (INT, Auto Increment, Primary Key)
- nama (VARCHAR, Nama lengkap)
- email (VARCHAR, Alamat email)
- telepon (VARCHAR, Nomor telepon)
- alamat (TEXT, Alamat lengkap)
- tanggal_lahir (DATE, Tanggal lahir)
Tugas:
- 1. Membuat Database dan Tabel:
- Buat database dengan nama
db_tes
. - Buat tabel dengan nama
data_siswa
sesuai dengan struktur kolom di atas.
- Buat database dengan nama
- 2. Membuat Halaman CRUD:
- Buat form untuk menambahkan data baru (Create).
- Tampilkan data dalam bentuk tabel dengan fitur pencarian (Read).
- Sediakan tombol untuk mengedit data yang sudah ada (Update).
- Sediakan tombol untuk menghapus data (Delete).
- 3. Validasi Data:
- Validasi input agar semua kolom tidak boleh kosong.
- Email harus dalam format yang benar.
- Nomor telepon hanya boleh berupa angka.
- 4. Kriteria Penilaian:
- Fungsi CRUD berfungsi dengan baik.
- Desain sederhana namun user-friendly.
- Penulisan kode rapi dan mudah dipahami.
Jawaban Tes CRUD PHP
Langka-langkah menjawab
1. Persiapan
Pastikan Anda sudah memiliki:
- Server lokal seperti XAMPP.
- Database MySQL.
- Editor kode seperti Visual Studio Code.
2. Membuat Database dan Tabel
- Buka phpMyAdmin melalui browser, biasanya di
http://localhost/phpmyadmin
. - Buat database baru dengan nama
db_tes
. - Buat tabel baru bernama
data_siswa
dengan struktur kolom sebagai berikut:
CREATE TABLE data_siswa (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
telepon VARCHAR(15) NOT NULL,
alamat TEXT NOT NULL,
tanggal_lahir DATE NOT NULL
);
3. Membuat Struktur Folder Project
Buat folder project di dalam folder htdocs
(XAMPP) atau www
(MAMP) dengan nama crud_php
. Di dalamnya, buat beberapa file dan folder berikut:
index.php
(untuk menampilkan data dan form pencarian).create.php
(untuk form tambah data).edit.php
(untuk form edit data).delete.php
(untuk menghapus data).database.php
(untuk koneksi database).
4. Membuat Koneksi Database (database.php
)
Buat file database.php
dan isi dengan kode berikut:
<?php
$host = 'localhost';
$user = 'root'; // sesuaikan jika menggunakan user lain
$password = ''; // sesuaikan jika menggunakan password
$dbname = 'db_tes';
$conn = new mysqli($host, $user, $password, $dbname);
if ($conn->connect_error) {
die("Koneksi gagal: " . $conn->connect_error);
}
?>
5. Menampilkan Data (index.php
)
Buat file index.php
untuk menampilkan data siswa:
<?php
include 'database.php';
$result = $conn->query("SELECT * FROM data_siswa");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Data Siswa</title>
</head>
<body>
<h2>Data Siswa</h2>
<a href="create.php">Tambah Siswa</a>
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th>ID</th>
<th>Nama</th>
<th>Email</th>
<th>Telepon</th>
<th>Alamat</th>
<th>Tanggal Lahir</th>
<th>Aksi</th>
</tr>
<?php while ($row = $result->fetch_assoc()): ?>
<tr>
<td><?= $row['id']; ?></td>
<td><?= $row['nama']; ?></td>
<td><?= $row['email']; ?></td>
<td><?= $row['telepon']; ?></td>
<td><?= $row['alamat']; ?></td>
<td><?= $row['tanggal_lahir']; ?></td>
<td>
<a href="edit.php?id=<?= $row['id']; ?>">Edit</a> |
<a href="delete.php?id=<?= $row['id']; ?>" onclick="return confirm('Yakin ingin menghapus?')">Hapus</a>
</td>
</tr>
<?php endwhile; ?>
</table>
</body>
</html>
6. Menambah Data (create.php
)
Buat file create.php
untuk menambahkan data baru:
<?php
include 'database.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$nama = $_POST['nama'];
$email = $_POST['email'];
$telepon = $_POST['telepon'];
$alamat = $_POST['alamat'];
$tanggal_lahir = $_POST['tanggal_lahir'];
$sql = "INSERT INTO data_siswa (nama, email, telepon, alamat, tanggal_lahir)
VALUES ('$nama', '$email', '$telepon', '$alamat', '$tanggal_lahir')";
if ($conn->query($sql) === TRUE) {
header('Location: index.php');
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tambah Siswa</title>
</head>
<body>
<h2>Tambah Siswa</h2>
<form action="" method="POST">
<label>Nama:</label><br>
<input type="text" name="nama" required><br>
<label>Email:</label><br>
<input type="email" name="email" required><br>
<label>Telepon:</label><br>
<input type="text" name="telepon" required><br>
<label>Alamat:</label><br>
<textarea name="alamat" required></textarea><br>
<label>Tanggal Lahir:</label><br>
<input type="date" name="tanggal_lahir" required><br><br>
<input type="submit" value="Tambah">
</form>
<a href="index.php">Kembali</a>
</body>
</html>
7. Mengedit Data (edit.php
)
Buat file edit.php
untuk mengedit data yang sudah ada:
<?php
include 'database.php';
$id = $_GET['id'];
$result = $conn->query("SELECT * FROM data_siswa WHERE id = $id");
$row = $result->fetch_assoc();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$nama = $_POST['nama'];
$email = $_POST['email'];
$telepon = $_POST['telepon'];
$alamat = $_POST['alamat'];
$tanggal_lahir = $_POST['tanggal_lahir'];
$sql = "UPDATE data_siswa SET
nama='$nama',
email='$email',
telepon='$telepon',
alamat='$alamat',
tanggal_lahir='$tanggal_lahir'
WHERE id=$id";
if ($conn->query($sql) === TRUE) {
header('Location: index.php');
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Edit Siswa</title>
</head>
<body>
<h2>Edit Siswa</h2>
<form action="" method="POST">
<label>Nama:</label><br>
<input type="text" name="nama" value="<?= $row['nama']; ?>" required><br>
<label>Email:</label><br>
<input type="email" name="email" value="<?= $row['email']; ?>" required><br>
<label>Telepon:</label><br>
<input type="text" name="telepon" value="<?= $row['telepon']; ?>" required><br>
<label>Alamat:</label><br>
<textarea name="alamat" required><?= $row['alamat']; ?></textarea><br>
<label>Tanggal Lahir:</label><br>
<input type="date" name="tanggal_lahir" value="<?= $row['tanggal_lahir']; ?>" required><br><br>
<input type="submit" value="Update">
</form>
<a href="index.php">Kembali</a>
</body>
</html>
8. Menghapus Data (delete.php
)
Buat file delete.php
untuk menghapus data:
<?php
include 'database.php';
$id = $_GET['id'];
$sql = "DELETE FROM data_siswa WHERE id = $id";
if ($conn->query($sql) === TRUE) {
header('Location: index.php');
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
?>
Pastikan semua file berada di folder crud_php
. Setelah selesai, buka http://localhost/crud_php/index.php
untuk menjalankan aplikasi. Pastikan semua fungsi CRUD berjalan dengan baik sesuai dengan instruksi soal.
Selamat mencoba dan semoga berhasil!