Crud Procedural
Crud Procedural
CRUD ini menggunakan gaya penulisan Procedural dimana teknik penulisannya berbeda dengan Contoh
CRUD sebelumnya, dimana disini akan menampung beberapa perintah atau eksekusi ke query didalam
function serta menggunakan prepared statement.
Berikut ini beberapa file CRUD yang akan dibuat disini diantarnya :
1. koneksi.php
2. function.php
3. input.php
4. tampil_data.php
5. detail.php
6. update.php
7. delete.php
Sebelum memulai membuat program, silahkan dibuat dulu basisdata dan tabelnya dengan Struktur
database/tabel sebagai berikut :
1. id (int) 11
2. nim (varchar) 10
3. nama_mahasiswa (varchar) 30
4. tanggal_daftar (timestamp)
Langkah-langkah pemrograman :
1. Buat sebuah file dengan nama : “koneksi.php”. dengan skrip sebagai berikut
<?php
define('DB_SERVER','localhost');
define('DB_USERNAME','root');
define('DB_PASSWORD', '');
define('DB_NAME','kampus');
$koneksi = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD,
DB_NAME);
if($koneksi == false){
die ("Gagal melakukan koneksi ke
database.".mysqli_connect_error());
}
?>
Disini kita mendefinisikan parameter-parameter yang kita perlukan untuk melakukan koneksi
dengan statement “Define”. Disini saya menggunakan nama databasenya “kampus”.
Anda dapat menguji koneksinya dengan menjalankan skrip tersebut.
2. Selanjutnya kita akan mendefinisikan beberapa function yang nantinya bisa dipanggil pada main
kode atau kode utama dengan nama file “function.php”. Untuk lebih lengkapnya Anda bisa melihat
dan mempelajari baris kode dibawah ini :
<?php
//function simpan data
function simpan_mahasiswa($nim, $nama_mahasiswa){
global $koneksi;
$sql="INSERT INTO datamhs(nim, nama_mahasiswa) VALUES (?,?)";
if($stmt=mysqli_prepare($koneksi, $sql)){
mysqli_stmt_bind_param($stmt,"ss",$param_nim,
$param_nama_mahasiswa);
$param_nim = $nim;
$param_nama_mahasiswa = $nama_mahasiswa;
if(mysqli_stmt_execute($stmt)){
return true;
}else{
return false;
}
}
//Close statement
mysqli_stmt_close($koneksi);
//End function
}
//function tampil data
function tampil_data(){
global $koneksi
$sql="SELECT id, nim, nama_mahasiswa, tanggal_daftar FROM
datamhs";
$result=mysqli_query($koneksi,$sql);
return $result;
}
//function delete data
function delete_data($var_id){
global $koneksi;
$sql = "DELETE FROM datamhs where id =?";
if($stmt=mysqli_prepare($koneksi, $sql)){
mysqli_stmt_bind_param($stmt,"i", $param_id);
$param_id = $var_id;
if(mysqli_stmt_execute($stmt)){
return true;
}else{
return false;
}
}
mysqli_stmt_close($stmt);
}
function detail_data($var_id){
global $koneksi;
global $result;
$sql="SELECT id, nama_mahasiswa, nim, tanggal_daftar FROM
datamhs WHERE id=?";
if($stmt=mysqli_prepare($koneksi, $sql)){
mysqli_stmt_bind_param($stmt,"i",$param_id);
$param_id = $var_id;
if(mysqli_stmt_execute($stmt)){
$result=mysqli_stmt_get_result($stmt);
if(mysqli_num_rows($result)==1){
return true; //jika ada data nilai true
}else{
return false; //jika data tidak ditemukan nilai false
}
}else{
echo "Terjadi kesalahan";
}
}
mysqli_stmt_close($stmt);
}
/* Panggil function */
if(simpan_mahasiswa($nim, $nama_mahasiswa)){
echo 'Berhasil menyimpan data';
echo "<a href='tampil_data.php'>Tampil data</a>";
}else{
echo 'Gagal menyimpan data';
}
}
mysqli_close($koneksi);
//close koneksi
//end POST
}
?>
<html>
<head>
<title>Input Mahasiswa </title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<label>Nim :</label>
<input type="text" name="nim" size="15" />
<label>Nama Mahasiswa :</label>
<input type="text" name="nama_mahasiswa" size="15" />
<input type="Submit" name="submit" value="Submit">
</form>
<?php echo $nim_err; ?>
<?php echo $nama_mahasiswa_err; ?>
</body>
</html>
4. Kemudian kita akan membuat file “tampil_data.php” yang berfungsi untuk menampilkan data dari
table.
<?php
include ('koneksi.php');
include ('function.php');
?>
<html>
<head>
<title>Menampilkan data </title>
</head>
<body>
<?php
//memanggi function
$result = tampil_data();
//mengeksekusi function didalam percabangan
if($result){
//jika data di tabel lebih besar dari 0 atau memiliki data maka
eksekusi perulangan atau looping
if(mysqli_num_rows($result)>0){
echo "<table border='1' width='500'>";
echo "<tr>";
echo "<th>ID</th>";
echo "<th>NIM</th>";
echo "<th>NAMA MAHASISWA</th>";
echo "<th>AKSI</th>";
echo "</tr>";
//loping data
while($row=mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['nim']."</td>";
echo "<td>".$row['nama_mahasiswa']."</td>";
echo "<td>";
echo "<a href='delete.php?id=".$row['id']." 'title =
'delete'>DELETE</a>";
echo " | ";
echo "<a href='detail.php?id=".$row['id']." 'title=
detail'>DETAIL</a>";
echo " | ";
echo "<a href='update.php?id=".$row['id']." 'title=
update'>UPDATE</a>";
echo "</td>";
echo "</tr>";
}
echo "</table>";
echo "<a href='input.php'>Input data</a>";
//free result
mysqli_free_result($result);
//namun jika tidak lebih besar dari pada > 0 atau tidak
ditemukan data maka jalan perintah berikut
}else{
echo "Data masih kosong";
}
//percabangan result ketika function tidak bisa mengeksekusi
perintah
}else{
echo "Terjadi kesalahan. Coba lagi
nanti".mysqli_error($koneksi);
}
//close koneksi
mysqli_close($koneksi);
?>
</body>
</html>
5. Pada tampilan data diatas, terdapat 3 aksi yang kita sediakan. Selanjutnya kita akan menangani aksi-
aksi tersebut dimulai dari detail. Kita akan membuat file “detail.php” dengan perintah sebagai
berikut :
<?php
include ('koneksi.php');
include ('function.php');
?>
<html>
<head>
<title>DETAIL DATA </title>
</head>
<body>
<?php
if(!empty($_GET['id'])){
if(detail_data(trim($_GET['id']))){
$row=mysqli_fetch_array($result);
}else{
die ("Data tidak ditemukan");
}
}else{
die("error");
}
mysqli_close($koneksi);
?>
<table border="1" width="500">
<tr>
<th>ID</th>
<th>NAMA MAHASISWA</th>
<th>NIM</th>
<th>TANGGAL DAFTAR</th>
</tr>
<tr>
<td><?php echo $row['id'];?></td>
<td><?php echo $row['nama_mahasiswa'];?></td>
<td><?php echo $row['nim'];?></td>
<td><?php echo $row['tanggal_daftar'];?></td>
</tr>
<a href="javascript:history.back()">Kembali</a>
</form>
</body>
</html>
6. Selanjutnya kita akan menangani aksi update dengan membuat file “update.php” denga nisi
program sebagai berikut :
<?php
include ('koneksi.php');
include ('function.php');
?>
<html>
<head>
<title>UPDATE DATA</title>
</head>
<body>
<?php
if(!empty($_GET['id'])){
//memanggil fungsi detail data terlbeih dahulu
if(detail_data(trim($_GET['id']))){
$row=mysqli_fetch_array($result);
}else{
die ("Data tidak ditemukan");
}
}else{
die("error");
}
?>
<?php
//jika ada request post maka jalankan percabangan
if($_SERVER["REQUEST_METHOD"]=="POST"){
//simpan semua nilai variabel yang akan dikirim
$var_id=trim($_POST['id']);
$nim=trim($_POST['nim']);
$nama_mahasiswa = trim($_POST['nama_mahasiswa']);
//kemudian eksekusi di function update data
if(update_data($var_id, $nim, $nama_mahasiswa)){
echo "berhasil update";
}else{
die("Gagal update");
}
}
?>
<?php
if(isset($_GET['id']) && !empty($_GET['id'])){
//panggil function delete data
if(delete_data(trim($_GET['id']))){
echo "data berhasil dihapus";
echo "<a href='tampil_data.php'>Tampil data</a>";
}else{
echo "Gagal mendelete data";
}
//close koneksi
mysqli_close($koneksi);
}else{
if(empty(trim($_GET["id"]))){
header("location:error");
}
}
?>
<a href="javascript:history.back()">Kembali</a>
</form>
</body>
</html>