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

  • 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.
  • Menampilkan data mysql dalam list menu dengan php
    List menu atau yang sering disebut combo box adalah sebuah objek dalam form yang disediakan oleh HTML. List menu digunakan untuk menampilkan pilihan yang umumnya bersifat statis misal pilihan nama kota, nama kategori, jenis jabatan dll. Bagaimana seandainya kita ingin menampilkan pilihan dengan sumber datanya dari mysql? Saya akan jelaskan langkahnya pada artikel berikut.
  • Mengurutkan data mysql dalam laporan php
    Data biasanya diinput dengan cara tak beraturan, bisa saja nama yang awalan Z lebih dulu dimasukkan, atau nomor urut yang lebih besar lebih duluan tergantung data mana yang lebih awal disiapkan. Dan jika dibuatkan laporannya dengan cara biasa saja, tentunya akan muncul sesuai dengan urutan memasukkan datanya ke dalam database. Bagaimana cara mengurutkan data tersebut dalam laporan php?
  • Membuat aplikasi data mahasiswa dengan PHP - Bagian 3
    Proses tahap awal dari membuat database, tabel, membuat formulir input data mahasiswa, proses simpan dan upload photo mahasiswa sudah dilakukan pada artikel Membuat aplikasi data mahasiswa dengan PHP - Bagian 1 dan Bagian 2, sekarang membuat laporan hasil input data mahasiswa. Laporan ini akan dibuat menghubungkan kebeberapa bagian yaitu pencarian data mahasiswa, delete/menghapus data mahasiswa dan mengupdate data mahasiswa. Silahkan menyimak tahapan lanjutan berikut ini.
  • Membuat aplikasi data mahasiswa dengan PHP - Bagian 2
    Melanjutkan artikel saya tentang bagaimana membuat aplikasi data mahasiswa dengan php bagian 1, pada bagian 2 ini akan saya bahas tentang bagaimana membuat form/formulir input data mahasiswa, membuat proses simpan dan upload photo mahasiswa.

Kiriman terbaru