Membuat aplikasi data mahasiswa dengan PHP - Bagian 4

aplikasi web, data mahasiswa

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>&nbsp;</td>
            <td>&nbsp;</td>
            <td>Pilih photo jika ingin diganti</td>
            <td>&nbsp;</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 :

  1. nim diambilkan dari nilai yang dikirimkan melalui url pada laporan, sehingga dalam halaman koreksi diambil dengan fungsi $_GET['nim']
  2. setelah itu nim dicari dalam tabel mahasiswa dan jika ditemukan ditampilkan dalam form koreksi
  3. 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)
  4. kemudian dalam form, nim yang ditampilkan harus dikunci agar tidak bisa dirubah, cara menguncinya dengan perintah readonly=""
  5. 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 **

Artikel Lainnya

  • Menyederhanakan operasi mysql dengan function dalam php
    Sering dalam sebuah aplikasi web khususnya php, kita melakukan operasi database mysql secara berulang. Misal melakukan pengecekan, perhitungan, perbandingan ataupun operasi-operasi umum lainya yang dilibatkan dalam sebuah proses besar. Hal ini sangat tidak efektif karena kita harus menyusunya berulang-ulang yang kadang berujung pada sulitnya melakukan pengembangan. Pada tulisan ini saya akan berbagi trik jitu agar masalah diatas bisa teratasi dengan mudah.
  • Membuat thumbnail dengan php
    Istilah kata thumbnail diartikan sebagai versi kecil dari sebuah gambar yang ditampilkan di komputer. Thumbnail ini digunakan untuk menggantikan gambar yang memiliki ukuran besar sehingga dapat ditampilkan lebih kecil dan cepat ke layar.
  • Perintah include dan require dalam php
    Perintah require() dan include() dalam php digunakan untuk menyisipkan isi file tertentu menjadi bagian file yang memanggilnya. Keduanya sangat identik dalam banyak hal, kecuali cara penanganan kegagalan. include() menghasilkan suatu peringatan, sedangkan require() menghasilkan pesan kesalahan Fatal Error.
  • Membuat fungsi cek data mysql dengan php
    Proses pengecekan apakah data sudah ada dalam database tentunya pasti kita lakukan berulang-ulang dalam sebuah aplikasi php. Untuk mempermudah proses pengecekannya kita memerlukan sebuah fungsi/function yang gampang dipanggil setiap saat. Berikut ini saya ingin berbagi tentang bagaimana membuat fungsi tersebut.
  • Menghapus file dengan php
    Dengan php kita bisa melakukan operasi terhadap file yang berada dalam server. Operasi file yang bisa dilakukan diantaranya adalah menghapus file. Berikut ini caranya.

Kiriman terbaru