Tutorial PHP dan MySQL: Membuat Aplikasi CRUD [Studi Kasus Pendaftaran Siswa Baru]
Halo Kisanak, Kali ini aku mencoba mengimplenetasikan Tutorial PHP & SQL yang dibuat oleh petanikode
Berikut ini repositori yang bisa kalian pakai diGithubku. Disini terdapat beberapa file php yang digunakan antara lain:
- config.php — untuk menyimpan konfigurasi database;
- index.php — halaman utama;
- list-siswa.php — halaman untuk menampilkan data siswa;
- form-daftar.php — halaman formulir pendaftaran;
- proses-pendaftaran.php — skrip yang memproses pendaftaran;
- form-edit.php — form untuk edit data siswa;
- proses-edit.php — skrip untuk memproses edit/update;
- hapus.php — skrip untuk menghapus data dari database;
Kalian bisa coba langsung disini dan begini tampilannya:
Halaman tambah siswa
Halaman edit siswa
Halaman list siswa
Dan ini dia Source Codenya
config.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$server = "localhost"; | |
$user = "root"; | |
$password = ""; | |
$nama_database = "pendaftaran_siswa"; | |
$db = mysqli_connect($server, $user, $password, $nama_database); | |
if( !$db ){ | |
die("Gagal terhubung dengan database: " . mysqli_connect_error()); | |
} | |
?> |
index.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<!-- Bootstrap CSS --> | |
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> | |
<title>Pendaftaran Siswa Baru | SMK Coding</title> | |
<style type="text/css"> | |
body{ | |
/*padding-left: 4rem;*/ | |
padding-top: 6rem; | |
padding-bottom: 5rem; | |
background-color: #FFEBCC; | |
font-family: 'Open Sans', sans-serif; | |
} | |
.menu{ | |
border-radius:20px; | |
padding : 3rem 5rem; | |
margin-top: 4rem; | |
margin-left:25rem; | |
margin-right:25rem; | |
background-color: #FBFFE2; | |
} | |
.button { | |
background-color: white; | |
color: black; | |
border: 2px solid #FFAFAF; | |
padding: 10px 28px; | |
margin: 4px 2px; | |
transition-duration: 0.4s; | |
cursor: pointer; | |
border-radius:10px; */ | |
} | |
.button:hover { | |
background-color: #FF9999; | |
color: white; | |
} | |
</style> | |
</head> | |
<body> | |
<header style="text-align: center;"> | |
<h3>Pendaftaran Siswa Baru</h3> | |
<h1>SMA SMA an</h1> | |
</header> | |
<div class="menu"> | |
<h4 style="text-align: center;">Menu</h4> | |
<hr> | |
<nav style="text-align: center;"> | |
<a href="form-daftar.php"> | |
<button class="button">Daftar Baru</button> | |
</a> | |
<br> | |
<a href="list-siswa.php"> | |
<button class="button">Data Pendaftar</button> | |
</a> | |
</nav> | |
</div> | |
<?php if(isset($_GET['status'])): ?> | |
<p> | |
<?php | |
if($_GET['status'] == 'sukses'){ | |
echo "Pendaftaran siswa baru berhasil!"; | |
} else { | |
echo "Pendaftaran gagal!"; | |
} | |
?> | |
</p> | |
<?php endif; ?> | |
</body> | |
</html> |
list-siswa.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php include("config.php"); ?> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<!-- Bootstrap CSS --> | |
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> | |
<title>Pendaftaran Siswa Baru | SMK Coding</title> | |
<style type="text/css"> | |
body{ | |
/*padding-left: 4rem;*/ | |
padding-top: 6rem; | |
padding-bottom: 5rem; | |
background-color: #FFEBCC; | |
font-family: 'Open Sans', sans-serif; | |
} | |
.tabel{ | |
border-radius:20px; | |
padding : 3rem 5rem; | |
margin-top: 4rem; | |
margin-left:2rem; | |
margin-right:2rem; | |
background-color: #FBFFE2; | |
} | |
.button { | |
background-color: white; | |
color: black; | |
border: 2px solid #FFAFAF; | |
padding: 10px 28px; | |
margin: 4px 2px; | |
transition-duration: 0.4s; | |
cursor: pointer; | |
border-radius:10px; | |
} | |
.button:hover { | |
background-color: #FF9999; | |
color: white; | |
} | |
a{ | |
text-decoration: none; | |
} | |
</style> | |
</head> | |
<body> | |
<header style="text-align: center"> | |
<h3>Siswa yang sudah mendaftar</h3> | |
</header> | |
<div class="tabel"> | |
<nav > | |
<a class="button" href="form-daftar.php">Tambah Baru</a> | |
</nav> | |
<br> | |
<table class="table table-striped" 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 | |
$sql = "SELECT * FROM calon_siswa"; | |
$query = mysqli_query($db, $sql); | |
while($siswa = mysqli_fetch_array($query)){ | |
echo "<tr>"; | |
echo "<td>".$siswa['id']."</td>"; | |
echo "<td>".$siswa['nama']."</td>"; | |
echo "<td>".$siswa['alamat']."</td>"; | |
echo "<td>".$siswa['jenis_kelamin']."</td>"; | |
echo "<td>".$siswa['agama']."</td>"; | |
echo "<td>".$siswa['sekolah_asal']."</td>"; | |
echo "<td>"; | |
echo "<a href='form-edit.php?id=".$siswa['id']."'>Edit</a> | "; | |
echo "<a href='hapus.php?id=".$siswa['id']."'>Hapus</a>"; | |
echo "</td>"; | |
echo "</tr>"; | |
} | |
?> | |
</tbody> | |
</table> | |
<p>Total: <?php echo mysqli_num_rows($query) ?></p> | |
</div> | |
</body> | |
</html> |
form-daftar.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<!-- Bootstrap CSS --> | |
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> | |
<title>Pendaftaran Siswa Baru | SMK Coding</title> | |
<style type="text/css"> | |
body{ | |
/*padding-left: 4rem;*/ | |
padding-top: 6rem; | |
padding-bottom: 5rem; | |
background-color: #FFEBCC; | |
font-family: 'Open Sans', sans-serif; | |
} | |
.formulir{ | |
border-radius:20px; | |
padding : 3rem 5rem; | |
margin-top: 4rem; | |
margin-left:25rem; | |
margin-right:25rem; | |
background-color: #FBFFE2; | |
} | |
.button { | |
background-color: white; | |
color: black; | |
border: 2px solid #FFAFAF; | |
padding: 10px 28px; | |
margin: 4px 2px; | |
transition-duration: 0.4s; | |
cursor: pointer; | |
border-radius:10px; */ | |
} | |
.button:hover { | |
background-color: #FF9999; | |
color: white; | |
} | |
</style> | |
</head> | |
<body> | |
<header style="text-align: center;"> | |
<h3>Formulir Pendaftaran Siswa Baru</h3> | |
</header> | |
<div class="formulir"> | |
<form action="proses-pendaftaran.php" method="POST"> | |
<fieldset> | |
<p> | |
<label for="nama">Nama: </label> | |
<input type="text" name="nama" placeholder="nama lengkap" /> | |
</p> | |
<p> | |
<label for="alamat">Alamat: </label> | |
<textarea name="alamat"></textarea> | |
</p> | |
<p> | |
<label for="jenis_kelamin">Jenis Kelamin: </label> | |
<label><input type="radio" name="jenis_kelamin" value="laki-laki"> Laki-laki</label> | |
<label><input type="radio" name="jenis_kelamin" value="perempuan"> Perempuan</label> | |
</p> | |
<p> | |
<label for="agama">Agama: </label> | |
<select name="agama"> | |
<option>Islam</option> | |
<option>Kristen</option> | |
<option>Hindu</option> | |
<option>Budha</option> | |
<option>Atheis</option> | |
</select> | |
</p> | |
<p> | |
<label for="sekolah_asal">Sekolah Asal: </label> | |
<input type="text" name="sekolah_asal" placeholder="nama sekolah" /> | |
</p> | |
<p> | |
<input class="button" type="submit" value="Daftar" name="daftar" /> | |
</p> | |
</fieldset> | |
</form> | |
</div> | |
</body> | |
</html> |
proses-pendaftaran.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include("config.php"); | |
// cek apakah tombol daftar sudah diklik atau blum? | |
if(isset($_POST['daftar'])){ | |
// ambil data dari formulir | |
$nama = $_POST['nama']; | |
$alamat = $_POST['alamat']; | |
$jk = $_POST['jenis_kelamin']; | |
$agama = $_POST['agama']; | |
$sekolah = $_POST['sekolah_asal']; | |
// buat query | |
$sql = "INSERT INTO calon_siswa (nama, alamat, jenis_kelamin, agama, sekolah_asal) VALUE ('$nama', '$alamat', '$jk', '$agama', '$sekolah')"; | |
$query = mysqli_query($db, $sql); | |
// apakah query simpan berhasil? | |
if( $query ) { | |
// kalau berhasil alihkan ke halaman index.php dengan status=sukses | |
header('Location: index.php?status=sukses'); | |
} else { | |
// kalau gagal alihkan ke halaman indek.php dengan status=gagal | |
header('Location: index.php?status=gagal'); | |
} | |
} else { | |
die("Akses dilarang..."); | |
} | |
?> |
form-edit.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include("config.php"); | |
// kalau tidak ada id di query string | |
if( !isset($_GET['id']) ){ | |
header('Location: list-siswa.php'); | |
} | |
//ambil id dari query string | |
$id = $_GET['id']; | |
// buat query untuk ambil data dari database | |
$sql = "SELECT * FROM calon_siswa WHERE id=$id"; | |
$query = mysqli_query($db, $sql); | |
$siswa = mysqli_fetch_assoc($query); | |
// jika data yang di-edit tidak ditemukan | |
if( mysqli_num_rows($query) < 1 ){ | |
die("data tidak ditemukan..."); | |
} | |
?> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<!-- Bootstrap CSS --> | |
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> | |
<title>Pendaftaran Siswa Baru | SMK Coding</title> | |
<style type="text/css"> | |
body{ | |
/*padding-left: 4rem;*/ | |
padding-top: 6rem; | |
padding-bottom: 5rem; | |
background-color: #FFEBCC; | |
font-family: 'Open Sans', sans-serif; | |
} | |
.formulir{ | |
border-radius:20px; | |
padding : 3rem 5rem; | |
margin-top: 4rem; | |
margin-left:25rem; | |
margin-right:25rem; | |
background-color: #FBFFE2; | |
} | |
.button { | |
background-color: white; | |
color: black; | |
border: 2px solid #FFAFAF; | |
padding: 10px 28px; | |
margin: 4px 2px; | |
transition-duration: 0.4s; | |
cursor: pointer; | |
border-radius:10px; */ | |
} | |
.button:hover { | |
background-color: #FF9999; | |
color: white; | |
} | |
</style> | |
</head> | |
<body> | |
<header style="text-align: center;"> | |
<h3>Formulir Edit Siswa</h3> | |
</header> | |
<div class="formulir"> | |
<form action="proses-edit.php" method="POST"> | |
<fieldset> | |
<input type="hidden" name="id" value="<?php echo $siswa['id'] ?>" /> | |
<p> | |
<label for="nama">Nama: </label> | |
<input type="text" name="nama" placeholder="nama lengkap" value="<?php echo $siswa['nama'] ?>" /> | |
</p> | |
<p> | |
<label for="alamat">Alamat: </label> | |
<textarea name="alamat"><?php echo $siswa['alamat'] ?></textarea> | |
</p> | |
<p> | |
<label for="jenis_kelamin">Jenis Kelamin: </label> | |
<?php $jk = $siswa['jenis_kelamin']; ?> | |
<label><input type="radio" name="jenis_kelamin" value="laki-laki" <?php echo ($jk == 'laki-laki') ? "checked": "" ?>> Laki-laki</label> | |
<label><input type="radio" name="jenis_kelamin" value="perempuan" <?php echo ($jk == 'perempuan') ? "checked": "" ?>> Perempuan</label> | |
</p> | |
<p> | |
<label for="agama">Agama: </label> | |
<?php $agama = $siswa['agama']; ?> | |
<select name="agama"> | |
<option <?php echo ($agama == 'Islam') ? "selected": "" ?>>Islam</option> | |
<option <?php echo ($agama == 'Kristen') ? "selected": "" ?>>Kristen</option> | |
<option <?php echo ($agama == 'Hindu') ? "selected": "" ?>>Hindu</option> | |
<option <?php echo ($agama == 'Budha') ? "selected": "" ?>>Budha</option> | |
<option <?php echo ($agama == 'Atheis') ? "selected": "" ?>>Atheis</option> | |
</select> | |
</p> | |
<p> | |
<label for="sekolah_asal">Sekolah Asal: </label> | |
<input type="text" name="sekolah_asal" placeholder="nama sekolah" value="<?php echo $siswa['sekolah_asal'] ?>" /> | |
</p> | |
<p> | |
<input class="button" type="submit" value="Simpan" name="simpan" /> | |
</p> | |
</fieldset> | |
</form> | |
</div> | |
</body> | |
</html> |
proses-edit.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include("config.php"); | |
// cek apakah tombol simpan sudah diklik atau blum? | |
if(isset($_POST['simpan'])){ | |
// ambil data dari formulir | |
$id = $_POST['id']; | |
$nama = $_POST['nama']; | |
$alamat = $_POST['alamat']; | |
$jk = $_POST['jenis_kelamin']; | |
$agama = $_POST['agama']; | |
$sekolah = $_POST['sekolah_asal']; | |
// buat query update | |
$sql = "UPDATE calon_siswa SET nama='$nama', alamat='$alamat', jenis_kelamin='$jk', agama='$agama', sekolah_asal='$sekolah' WHERE id=$id"; | |
$query = mysqli_query($db, $sql); | |
// apakah query update berhasil? | |
if( $query ) { | |
// kalau berhasil alihkan ke halaman list-siswa.php | |
header('Location: list-siswa.php'); | |
} else { | |
// kalau gagal tampilkan pesan | |
die("Gagal menyimpan perubahan..."); | |
} | |
} else { | |
die("Akses dilarang..."); | |
} | |
?> |
hapus.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include("config.php"); | |
if( isset($_GET['id']) ){ | |
// ambil id dari query string | |
$id = $_GET['id']; | |
// buat query hapus | |
$sql = "DELETE FROM calon_siswa WHERE id=$id"; | |
$query = mysqli_query($db, $sql); | |
// apakah query hapus berhasil? | |
if( $query ){ | |
header('Location: list-siswa.php'); | |
} else { | |
die("gagal menghapus..."); | |
} | |
} else { | |
die("akses dilarang..."); | |
} | |
?> |
Komentar
Posting Komentar