Assalamualaikum Wr Wb,... Sobat Codingku PHP-MySQL, alhamdulillah pagi yang cerah ini kita masih diberi kesempatan untuk menghirup udara segar. Alhamdulillah juga artikel Contoh Aplikasi CRUD (Create Read Update Delete) Sederhana Data Pegawai ini dapat saya publikasikan, sebelumnya terkendala karena masalah kesibukan (sok sibuk) loh kok sok sibuk. hehehe :), TKP aja gan ke topik pokok artikel ini. :v
CRUD Sederhana Data Pegawai |
Aplikasi CRUD (Create Read Update Delete) adalah aplikasi dasar dalam menangani operasi dalam suatu tabel atau dalam bahasa lain dapat dikatakan sebagai pengolahan tabel seperti menulis memasukkan data kedalam tabel, membaca data dalam tabel, mengubah data dalam tabel dengan kriteria tertentu dan terakhir menghapus data dalam tabel. Menurut pendapat saya seperti itu gan :v, silahkan bagi kawan-kawan yang ingin menambahkan pendapat kalian tentang pengertian CRUD itu sendiri. hehehe,...
Adapun langkah-langkahnya sebagai berikut:
- Buat Database Pegawai
CREATE DATABASE `pegawai`;
- Buat Tabel Pegawai
CREATE TABLE `pegawai` ( `nip` varchar(18) NOT NULL DEFAULT '', `nama` varchar(30) NOT NULL DEFAULT '', `tgllahir` date NOT NULL DEFAULT '0000-00-00', `jenkel` enum('0','1') NOT NULL DEFAULT '0', `alamat` text NOT NULL, `namafoto` varchar(50) NOT NULL DEFAULT '', PRIMARY KEY (`nip`), UNIQUE KEY `nim` (`nip`), KEY `nim_2` (`nip`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- Buat folder dalam direktori C:\xampp\htdocs usahakan nama folder yang mudah diingat dan tidak terlalu panjang. Buka folder yang tadi anda buat kemudian buat folder lagi dengan nama images untuk penempatan gambar hasil upload aplikasi. Didalam folder yang pertama anda buat, buat file koneksi.php dengan menggunakan editor Notepad ++ atau program editor lain yang anda install.
<?php $host = "localhost"; $user = "root"; $pass = ""; $dbnm = "pegawai"; $conn = mysql_connect ($host, $user, $pass); if ($conn) { $buka = mysql_select_db ($dbnm); if (!$buka) { die ("Database tidak dapat dibuka"); } } else { die ("Server MySQL tidak terhubung"); } ?>
$conn jika berhasil terkoneksi dengan database maka akan memilih database $buka, jika gagal memilih maka akan muncul text "Data tidak dapat dibuka!", dan jika gagal terkoneksi ke database maka akan muncul text "Server MySQL tidak terhubung!
- Buat file index.php masih dalam folder yang sama, berfungsi sebagai halaman awal sekaligus untuk melakukan semua operasi CRUD.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Sistem Kepegawaian</title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="main_container"> <div id="header"> <h1>CRUD Data Pegawai</h1> </div> <div id="navigation"> </div> <?php $page = (isset($_GET['page']))? $_GET['page'] : "main"; switch ($page) { case 'input': include "input.php"; break; case 'edit' : include "edit.php"; break; case 'delete' : include "delete.php"; break; case 'main' : default : include 'tampil.php'; } ?> </div> </body> </html>
=>Penjelasan:
$page = (isset($_GET['page']))? $_GET['page'] : "main"; Adalah variabel untuk mendapatkan switch case dari URL browser dan defaultnya file tampil.php
- Buat file tampil.php masih dalam folder yang sama, file tampil.php ini berfungsi untuk menampilkan data pegawai dari tabel pegawai.
<?php include "koneksi.php"; ?> <div id="content"> <h2 align="center">Data Pegawai</h2> <a href="index.php?page=input"><input type="button" name="" value=" Input Data "/></a> <table width="100%" id="tabel"> <tr> <th width="3%">No</td> <th width="18%">NIP</td> <th width="18%">Nama</td> <th width="10%">Tgl Lahir</td> <th width="13%">Jenis Kelamin</td> <th width="22%">Alamat</td> <th width="10%">Foto</td> <th width="6%">Action</td> </tr> <?php $no = 1; $query = "SELECT * FROM pegawai ORDER BY nip"; $sql = mysql_query ($query); while ($hasil = mysql_fetch_array ($sql)) { $nip = $hasil['nip']; $nama = stripslashes ($hasil['nama']); $jenkel = ($hasil['jenkel']==0)?"Laki-laki" : "Wanita"; $tgllhr = stripslashes ($hasil['tgllahir']); $alamat = stripslashes ($hasil['alamat']); $foto = $hasil['namafoto']; $warna = ($no%2==1)?"#ffffff":"#efefef"; ?> <tr bgcolor="<?php echo $warna; ?>"> <td><?php echo $no; ?></td> <td><?php echo $nip; ?></td> <td><?php echo $nama; ?></td> <td><?php echo $tgllhr; ?></td> <td><?php echo $jenkel; ?></td> <td><?php echo $alamat; ?></td> <td><?php echo "<img src='images/$foto' width='100' height='100'/>"; ?></td> <td> <a href="index.php?page=edit&nip=<?php echo $nip; ?>"><input type="button" name="" value=" Edit "/></a><br/> <a href="index.php?page=delete&nip=<?php echo $nip; ?>" onclick="return confirm('Anda yakin akan menghapus pegawai <?php echo $nama; ?> ?')"><input type="button" name="" value=" Delete "/></a></td> </tr> <?php $no++; }?> </table> </div>
Kueri untuk menampilkan data dalam tabel pegawai SELECT * FROM pegawai ORDER BY nip dan berupa link <a href="index.php?page=edit&nip=<?php echo $nip; ?>"><input type="button" name="" value=" Edit "/></a> bertujuan untuk melakukan operasi pengubahan data kehalaman edit.php berdasarkan nip terpilih, dan link <a href="index.php?page=delete&nip=<?php echo $nip; ?>" onclick="return confirm('Anda yakin akan menghapus pegawai <?php echo $nama; ?> ?')"><input type="button" name="" value=" Delete "/></a> befungsi juga untuk melakukan operasi menghapus data berdasarkan nip terpilih.
- Buat file input.php masih dalam folder yang sama, file ini berfungsi untuk melakukan penambahan data pegawai dalam tabel.
<?php include "koneksi.php"; if (isset($_POST['Input'])) { $nip = addslashes (strip_tags ($_POST['nip'])); $nama = addslashes (strip_tags ($_POST['nama'])); $tahun = $_POST['thn']; $bulan = $_POST['bln']; $tanggal = $_POST['tgl']; $tgllahir = $tahun."-".$bulan."-".$tanggal; $jenkel = $_POST['jenkel']; $alamat = addslashes (strip_tags ($_POST['alamat'])); $namafoto = $_FILES['foto']['name']; if (strlen ($nip) != 18) { echo"<script>alert('NIP harus 18 digit !',document.location.href='index.php?page=input')</script>"; } if (strlen($namafoto)>0) { if (is_uploaded_file($_FILES['foto']['tmp_name'])) { move_uploaded_file ($_FILES['foto']['tmp_name'], "images/".$namafoto); } } $query = "INSERT INTO pegawai VALUES('$nip','$nama','$tgllahir','$jenkel','$alamat','$namafoto')"; $sql = mysql_query ($query) or die (mysql_error()); if ($sql) { echo"<script>alert('Data Pegawai telah berhasil ditambahkan !',document.location.href='index.php')</script>"; } else { echo"<script>alert('Data Pegawai gagal ditambahkan !',document.location.href='index.php')</script>"; } } ?> <div id="content"> <h2 align="center">Input Data Pegawai</h2> <FORM ACTION="" METHOD="POST" NAME="input" enctype="multipart/form-data"> <table cellpadding="0" cellspacing="0" border="0" width="950"> <tr> <td width="200">NIP</td> <td>: <input type="text" name="nip" size="18" maxlength="18"></td> </tr> <tr> <td>Nama</td> <td>: <input type="text" name="nama" size="30" maxlength="30"></td> </tr> <tr> <td>Tanggal Lahir</td> <td>: <select name="tgl"> <?php for ($i=1; $i<=31; $i++) { $tg = ($i<10) ? "0$i" : $i; echo "<option value='$tg'>$tg</option>"; } ?> </select> - <select name="bln"> <?php for ($j=1; $j<=12; $j++) { $bl = ($j<10) ? "0$j" : $j; echo "<option value='$bl'>$bl</option>"; } ?> </select> - <select name="thn"> <?php for ($k=1970; $k<=2000; $k++) { echo "<option value='$k'>$k</option>"; } ?> </select> </td> </tr> <tr> <td>Jenis Kelamin</td> <td>: <input type="radio" name="jenkel" value="0" checked> Pria <input type="radio" name="jenkel" value="1"> Wanita</td> </tr> <tr> <td>Alamat</td> <td>: <textarea name="alamat" cols="40" rows="3"></textarea></td> </tr> <tr> <td>Foto</td> <td>: <input type="file" name="foto"/></td> </tr> <tr> <td> </td> <td> <input type="submit" name="Input" value=" Simpan "> <input type="reset" name="reset" value=" Reset "> <a href="index.php"><input type="button" name="" value=" Kembali "/></a></td> </tr> </table> </form> </div>
Kueri untuk memasukkan data dalam tabel pegawai yaitu "INSERT INTO pegawaiVALUES('$nip','$nama','$tgllahir','$jenkel','$alamat','$namafoto')" dan if (is_uploaded_file($_FILES['foto']['tmp_name'])) { move_uploaded_file ($_FILES['foto']['tmp_name'], "images/".$namafoto); berfungsi untuk mengupload file berupa gambar kedalam folder images, dan hanya berupa nama file gambar tersebut yang disimpan dalam tabel pegawai.
- Buat file edit.php masih dalam folder yang sama, file ini berfungsi untuk melakukan perubahan data pegawai berdasarkan nip yang terpilih.
<?php include "koneksi.php"; if (isset($_GET['nip'])) { $nip = $_GET['nip']; } else { die ("Error. No Nip Selected! "); } $query = "SELECT * FROM pegawai WHERE nip='$nip'"; $sql = mysql_query ($query); $hasil = mysql_fetch_array ($sql); $nip = $hasil['nip']; $nama = stripslashes ($hasil['nama']); $jenkel = $hasil['jenkel']; list($thn,$bln,$tgl) = explode ("-",$hasil['tgllahir']); $alamat = stripslashes ($hasil['alamat']); $namafoto = stripslashes ($hasil['namafoto']); $foto = $hasil['namafoto']; if (isset($_POST['Edit'])) { $nip = $_POST['hnip']; $nama = addslashes (strip_tags ($_POST['nama'])); $tgllahir = $_POST['thn']."-".$_POST['bln']."-".$_POST['tgl']; $jenkel = $_POST['jenkel']; $alamat = addslashes (strip_tags ($_POST['alamat'])); $namafoto = $_FILES['foto']['name']; if (strlen($namafoto)>0) { if (is_uploaded_file($_FILES['foto']['tmp_name'])) { move_uploaded_file ($_FILES['foto']['tmp_name'], "images/".$namafoto); mysql_query ("UPDATE pegawai SET namafoto='$namafoto' WHERE nip='$nip'"); } } $query = "UPDATE pegawai SET nama='$nama',tgllahir='$tgllahir',jenkel='$jenkel', alamat='$alamat' WHERE nip='$nip'"; $sql = mysql_query ($query); if ($sql) { echo"<script>alert('Data Pegawai telah berhasil diedit !',document.location.href='index.php')</script>"; } else { echo"<script>alert('Data Pegawai gagal diedit !',document.location.href='index.php')</script>"; } } ?> <div id="content"> <h2 align="center">Edit Data Pegawai</h2> <FORM ACTION="" METHOD="POST" NAME="input" enctype="multipart/form-data"> <table cellpadding="0" cellspacing="0" border="0" width="950"> <tr> <td width="271">NIP</td> <td width="463">: <b><?php echo $nip; ?></b></td> <td width="216">Foto: <?php echo $namafoto; ?></td> </tr> <tr> <td>Nama</td> <td>: <input type="text" name="nama" size="30" maxlength="30" value="<?php echo $nama; ?>"></td> <td rowspan="4"><?php echo "<img src='images/$foto' width='180' height='180'/>"; ?></td> </tr> <tr> <td>Tanggal Lahir</td> <td>: <select name="tgl"> <?php for ($i=1; $i<=31; $i++) { $tg = ($i<10) ? "0$i" : $i; $sele = ($tg==$tgl)? "selected" : ""; echo "<option value='$tg' $sele>$tg</option>"; } ?> </select> - <select name="bln"> <?php for ($i=1; $i<=12; $i++) { $bl = ($i<10) ? "0$i" : $i; $sele = ($bl==$bln)?"selected" : ""; echo "<option value='$bl' $sele>$bl</option>"; } ?> </select> - <select name="thn"> <?php for ($i=1970; $i<=2000; $i++) { $sele = ($i==$thn)?"selected" : ""; echo "<option value='$i' $sele>$i</option>"; } ?> </select> </td> </tr> <tr> <td>Jenis Kelamin</td> <td>: <input type="radio" name="jenkel" value="0" <?php echo ($jenkel==0)?"checked":""; ?>> Pria <input type="radio" name="jenkel" value="1" <?php echo ($jenkel==1)?"checked":""; ?>> Wanita</td> </tr> <tr> <td>Alamat</td> <td>: <textarea name="alamat" cols="40" rows="3"><?php echo $alamat; ?></textarea></td> </tr> <tr> <td>Foto</td> <td>: <input type="file" name="foto"/></td> <td> </td> </tr> <tr> <td> </td> <td> <input type="hidden" name="hnip" value="<?php echo $nip; ?>"> <input type="submit" name="Edit" value=" Simpan "> <input type="reset" name="reset" value=" Reset "> <a href="index.php"><input type="button" name="" value=" Kembali "/></a></td> <td> </td> </tr> </table> </FORM> </div>
if (isset($_GET['nip'])) { $nip = $_GET['nip'];} else { die ("Error. No Nip Selected! "); }berfungsi untuk mendapatkan variabel $nip dari URL browser. kueri untuk mengubah data dalam tabel pegawai berdasarkan nip terpilih yaitu "UPDATE pegawai SET nama='$nama',tgllahir='$tgllahir',jenkel='$jenkel', alamat='$alamat' WHERE nip='$nip'"
- Buat file delete.php masih dalam folder yang sama, file ini berfungsi untuk menghapus data pegawai berdasarkan nip yang terpilih.
<?php include "koneksi.php"; if (isset($_GET['nip'])) { $nip = $_GET['nip']; } else { die ("Error. No nip Selected! "); } ?> <div id="content"> <?php if (!empty($nip) && $nip != "") { $query = "DELETE FROM pegawai WHERE nip='$nip'"; $sql = mysql_query ($query); if ($sql) { echo"<script>alert('Data Pegawai telah berhasil dihapus !',document.location.href='index.php')</script>"; } else { echo"<script>alert('Data pegawai gagal dihapus !',document.location.href='index.php')</script>"; } echo "Klik <a href='index.php'>di sini</a> untuk kembali ke halaman data pegawai"; } else { die ("Access Denied"); } ?> </div>
if (isset($_GET['nip'])) { $nip = $_GET['nip'];} else { die ("Error. No Nip Selected! "); }berfungsi untuk mendapatkan variabel $nip dari URL browser. kueri untuk menghapus data dalam tabel pegawai berdasarkan nip terpilih yaitu "DELETE FROM pegawai WHERE nip='$nip'"
Permisi,...
ReplyDeleteMas, ko link download di SAYA tak bisa (mati) ?
Maaf atas keterlambatanya, link sudah diperbaiki. :D
Deletegan ini sintax Parse error: syntax error, unexpected '$db' (T_VARIABLE) in C:\xampp\htdocs\Bibah\koneksi.php on line 8 solusinya donk
ReplyDeleteada kemungkinan variabel di ubah gan, replace file koneksi.php
Delete$dbm menjadi $db