Membuat aplikasi data mahasiswa dengan PHP - Bagian 4
Melanjutkan artikel saya tentang membuat aplikasi data mahasiswa yang sempat tertunda, sekarang saya lanjutkan membahas tentang bagaimana membuat form update data mahasiswa serta menyimpanya kembali kedalam tabel database mysql yang sudah saya buat. Langkah-langkahnya akan saya bahas berikut.
Setelah sebelumnya pada artikel membuat aplikasi data mahasiswa dengan php & mysql bagian 1 tentang susunan tabel, koneksi, bagian 2 membuat input data dan simpan, bagian 3 tentang laporan dan hapus data, langkah berikutnya adalah menghubungkan laporan dengan form koreksi data. Pada form koreksi data, data mahasiswa yang sudah ada dimunculkan dengan opsi perubahan isian tertentu kecuali nim. Nim dibuat primary/index sehingga tidak diperkenankan merubahnya. Secara desain, form koreksi hampir sama dengan form input data, hanya berbeda fungsi. Kalau form input ditampilkan dengan isian kosong, kalau form koreksi dengan form yang sudah terisi sesuai data yang tersimpan. Susunan form koreksi data bentuknya seperti gambar berikut :
Form Koreksi Aplikasi Data Mahasiswa
Untuk membuat form seperti itu saya membuat susunan kode php dan html yang disimpan dengan nama file koreksi-data-mahasiswa.php, susunan kodenya sebagai berikut :
<!DOCTYPE HTML> <html> <head> <title>Koreksi Mahasiswa</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php include("koneksi.php"); $nim=$_GET['nim']; $qrykoreksi=mysql_query("select * from tb_mahasiswa where nim='$nim' LIMIT 1"); $dataku=mysql_fetch_object($qrykoreksi); list($tahun,$bulan,$tanggal) = explode('-',$dataku->tanggal_lahir); ?> <form action="update-data-mahasiswa.php" method="post" enctype="multipart/form-data" name="FKoreksi"> <table width="600" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#669900"> <tr> <td height="50" align="center" bgcolor="#669900"><strong><font color="#FFFFFF">KOREKSI DATA</font></strong></td> </tr> <tr> <td><table width="100%" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="99">NIM</td> <td width="9">:</td> <td width="287"><input name="nim" type="text" id="nim" size="10" maxlength="10" value="<?php echo $dataku->nim?>" readonly=""></td> <td width="163" rowspan="7" align="center" valign="top"><img src="<?php echo $dataku->photo?>" alt="<?php echo $dataku->nama?>" width="100" border="1"/></td> </tr> <tr> <td>Nama</td> <td>:</td> <td><input name="nama" type="text" id="nama" size="30" maxlength="30" value="<?php echo $dataku->nama?>"></td> </tr> <tr> <td>Tempat Lahir</td> <td>:</td> <td><input name="tempat_lahir" type="text" id="tempat_lahir" size="30" maxlength="30" value="<?php echo $dataku->tempat_lahir?>"></td> </tr> <tr> <td>Tanggal Lahir</td> <td>:</td> <td><select name="tgl" size="1" id="tgl"> <?php for ($i=1;$i<=31;$i++) { if($tanggal==$i) { echo "<option value=".$i." selected>".$i."</option>"; } else { echo "<option value=".$i.">".$i."</option>"; } } ?> </select> <select name="bln" size="1" id="bln"> <?php $namabulan=array("","Januari","Pebruari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"); for ($i=1;$i<=12;$i++) { if($bulan==$i) { echo "<option value=".$i." selected>".$namabulan[$i]."</option>"; } else { echo "<option value=".$i.">".$namabulan[$i]."</option>"; } } ?> </select> <select name="thn" size="1" id="thn"> <?php echo "<option value=".$tahun.">".$tahun."</option>"; for ($i=1985;$i<=2000;$i++) { if($tahun==$i) { echo "<option value=".$i." selected>".$i."</option>"; } else { echo "<option value=".$i.">".$i."</option>"; } } ?> </select></td> </tr> <tr> <td>Alamat</td> <td>:</td> <td><textarea name="alamat" cols="30" rows="5" id="alamat"><?php echo $dataku->alamat?></textarea></td> </tr> <tr> <td>Jenis Kelamin</td> <td>:</td> <td><input name="jenis_kelamin" id="jenis_kelamin" type="radio" value="L" <?php if($dataku->jenis_kelamin=='L') echo "checked";?>> Laki-laki <input name="jenis_kelamin" id="jenis_kelamin" type="radio" value="P" <?php if($dataku->jenis_kelamin=='P') echo "checked";?>> Perempuan </td> </tr> <tr> <td>Photo</td> <td>:</td> <td><input type="file" name="photo" id="photo"></td> </tr> <tr> <td> </td> <td> </td> <td>Pilih photo jika ingin diganti</td> <td> </td> </tr> <tr> <td height="50" colspan="4" align="center"><input name="fok" type="submit" id="fok" value="OK"> <input name="fulang" type="reset" id="fulang" value="Ulangi"><input name="fulang" type="button" id="fulang" value="Batal" onClick="javascript:history.back()"></td> </tr> </table></td> </tr> </table> </form> <div align="center"><a href="index.php">Menu Utama</a></div> </body> </html>
Keterangan Kode Form Koreksi Data Aplikasi Mahasiswa
Dari kode ada beberapa hal yang perlu diperhatikan :
- nim diambilkan dari nilai yang dikirimkan melalui url pada laporan, sehingga dalam halaman koreksi diambil dengan fungsi $_GET['nim']
- setelah itu nim dicari dalam tabel mahasiswa dan jika ditemukan ditampilkan dalam form koreksi
- karena field tanggal lahir dari database dikirimkan dengan format tahun/bulan/tanggal maka untuk menampilkanya dalam combo/listmenu maka field harus dipisah dengan perintah list($tahun,$bulan,$tanggal)
- kemudian dalam form, nim yang ditampilkan harus dikunci agar tidak bisa dirubah, cara menguncinya dengan perintah readonly=""
- data lainnya ditampilkan sesuai dengan input yang disediakan.
File form koreksi data mahasiswa dapat didownload disini.
Proses Update Data Mahasiswa dengan PHP
Setelah form koreksi selesai, sekarang saya membuat proses penyimpanan kembali data yang dikoreksi. Proses simpan ini juga dapat memperbaharui gambar yang sudah ada. Kodenya dapat dilihat berikut :
<?php include "koneksi.php"; $nim=$_POST['nim']; $nama=$_POST['nama']; $tempat_lahir=$_POST['tempat_lahir']; $tanggal_lahir = $_POST['thn']."-".$_POST['bln']."-".$_POST['tgl']; $alamat=$_POST['alamat']; $jenis_kelamin=$_POST['jenis_kelamin']; if (empty($nim)) { die("Isikan NIM!"); } elseif(empty($nama)) { die("Isikan Nama!"); } else //bisa tambahkan pengecekan yang lain jika perlu { //proses upload photo jika ada if (!empty($_FILES["photo"]["tmp_name"])) { $namafolder="photo/"; //tempat menyimpan file $jenis_gambar=$_FILES['photo']['type']; if($jenis_gambar=="image/jpeg" || $jenis_gambar=="image/jpg" || $jenis_gambar=="image/gif" || $jenis_gambar=="image/png") { $photo = $namafolder . basename($_FILES['photo']['name']); if (!move_uploaded_file($_FILES['photo']['tmp_name'], $photo)) { die("Gambar gagal dikirim"); } //Hapus photo yang lama jika ada $res = mysql_query("select photo from tb_mahasiswa where nim='$nim' LIMIT 1"); $d=mysql_fetch_object($res); if (strlen($d->photo)>3) { if (file_exists($d->photo)) unlink($d->photo); } //update photo dengan yang baru mysql_query("UPDATE tb_mahasiswa SET photo='$photo' WHERE nim='$nim' LIMIT 1"); } else { die("Jenis gambar yang anda kirim salah. Harus .jpg .gif .png"); } } //end if cek file upload $myqry="UPDATE tb_mahasiswa SET nama='$nama',tempat_lahir='$tempat_lahir',". "tanggal_lahir='$tanggal_lahir',alamat='$alamat',jenis_kelamin='$jenis_kelamin' WHERE nim='$nim' LIMIT 1"; mysql_query($myqry) or die(mysql_error()); header("location:laporan-data-mahasiswa.php"); exit; } ?>
File dapat disimpan dengan nama update-data-mahasiswa.php. Dari kode dapat dilihat bahwa halaman update ini menerima input dari form koreksi data dan memprosesnya dengan langkah memindah nilai yang dikirimkan, kemudian mengecek isian dan mengecek photo yang diupload.
File update data mahasiswa dapat didownload disini.
Sampai diproses update, secara umum program aplikasi data mahasiswa dengan php ini selesai. Saya akan tambahkan proses login untuk melindungi aplikasi ini lain waktu.
Semoga Bermanfaat, kritik saran, koreksi, pertanyaan jangan sungkan anda sampaikan. Silahkan berbagi buat yang lain jika ini menurut anda baik.
Zainal Hakim
Membuat aplikasi data mahasiswa dengan PHP - Bagian 1 - Bagian 2 - Bagian 3 - Bagian 4 - Bagian 5 - Bagian 6
** Bebas disunting dengan menyebutkan sumber **