membuat database dan tabel mahasiswa

19
Membuat database dan tabel mahasiswa Nama database : db_datamhs Nama tabel : tb_mahasiswa Susunan tabel : 1. nim tipe char (12) primary 2. nama tipe varchar(30) 3. alamat tipe varchar (100) 4. tempat_lahir tipe varchar(30) 5. tanggal_lahir tipe date 6. jenis_kelamin tipe enum(‘L’,’P’) 7. photo tipe varchar(100) Query Membuat tabel mahasiswa CREATE TABLE `db_datamhs`.`tb_mahasiswa` ( `nim` CHAR( 12 ) NOT NULL , `nama` VARCHAR( 30 ) NOT NULL , `alamat` VARCHAR( 100 ) NOT NULL , `tempat_lahir` VARCHAR( 30 ) NOT NULL , `tanggal_lahir` DATE NOT NULL , `jenis_kelamin` ENUM( 'L', 'P' ) NOT NULL , `photo` VARCHAR( 100 ) NOT NULL , PRIMARY KEY ( `nim` ) ) ENGINE = MYISAM ; Tampilan hasil tabel pada phpmyadmin Membuat folder aplikasi web data mahasiswa Aplikasi data mahasiswa ini akan disimpan dalam folder data- mahasiswa. buka folder xampp (jika di c:/xampp atau di d:/xampp) dan masuk folder htdocs. Setelah itu create new folder dengan nama : data-mahasiswa Membuat Koneksi Database Dengan berhasilnya database dan tabel dibuat maka sekarang membuat koneksi dari php ke database. buat file baru dengan jenis php dan disimpan dengan nama koneksi.php. <?php $dbserver="localhost"; $dbusername="root";

Upload: aktaumi

Post on 07-Feb-2016

34 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Membuat Database Dan Tabel Mahasiswa

Membuat database dan tabel mahasiswaNama database : db_datamhsNama tabel : tb_mahasiswaSusunan tabel :

1. nim tipe char (12) primary2. nama  tipe varchar(30)3. alamat tipe varchar (100)4. tempat_lahir  tipe varchar(30)5. tanggal_lahir  tipe date6. jenis_kelamin  tipe enum(‘L’,’P’)7. photo tipe varchar(100)

Query Membuat tabel mahasiswaCREATE TABLE  `db_datamhs`.`tb_mahasiswa` (   `nim` CHAR(  12 )  NOT NULL  ,  `nama` VARCHAR( 30 ) NOT  NULL ,  `alamat` VARCHAR( 100 ) NOT  NULL ,  `tempat_lahir` VARCHAR( 30 ) NOT  NULL ,  `tanggal_lahir` DATE  NOT NULL  ,  `jenis_kelamin` ENUM(  'L', 'P'  ) NOT  NULL ,  `photo` VARCHAR( 100 ) NOT  NULL ,  PRIMARY KEY  ( `nim`  )   ) ENGINE = MYISAM  ;Tampilan hasil tabel pada phpmyadmin

Membuat folder aplikasi web data mahasiswaAplikasi data mahasiswa ini akan disimpan dalam folder data-mahasiswa. buka folder xampp (jika di c:/xampp atau di d:/xampp) dan masuk folder htdocs. Setelah itu create new folder dengan nama : data-mahasiswaMembuat Koneksi DatabaseDengan berhasilnya database dan tabel dibuat maka sekarang membuat koneksi dari php ke database. buat file baru dengan jenis php dan disimpan dengan nama koneksi.php.<?php  $dbserver="localhost";  $dbusername="root";  $dbpassword="";  $dbname="db_datamhs";  mysql_connect($dbserver,$dbusername,$dbpassword)  or die(mysql_error());  mysql_select_db($dbname) or die  (mysql_error());?>Membuat Menu Utama aplikasi web data mahasiswaMenu utama digunakan untuk mengakses halaman keseluruhan dari aplikasi data mahasiswa ini. Susunan menu yaitu : Tambah Data Mahasiswa dan Laporan Data Mahasiswa. Saya buat sebuah file dari php dengan nama index.php dengan isi sebagai berikut :<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Page 2: Membuat Database Dan Tabel Mahasiswa

  <html  xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>Menu  Utama Data Mahasiswa</title>  </head>  <body>  <h1 align="center">Data Mahasiswa</h1>  <p align="center"><a href="input-data-mahasiswa.php">Input Data Mahasiswa</a></p>  <p align="center"><a href="laporan-data-mahasiswa.php">Laporan Data Mahasiswa  </a></p>  <p>&nbsp;</p>  <p align="center">Dikembangkan oleh <a  href="http://www.irlanisme.blogspot.com">irlan sugih pranoto</a></p>  </body></html>Sekarang kita sudah bisa jalankan dengan mengetik http://localhost/data-mahasiswa

 

Membuat form input data mahasiswa

Sesuai dengan susunan database yang sudah dirancang sebelumnya maka kita akan membuat sebuah form dengan kode sebagai berikut dan disimpan dengan nama input-data-mahasiswa.php : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01  Transitional//EN">  <html>  <head>  <title>Entry Mahasiswa</title>  <meta http-equiv="Content-Type" content="text/html;  charset=iso-8859-1">  </head>  <body>  <form action="simpan-data-mahasiswa.php"  method="post" enctype="multipart/form-data"  name="FMHS">  <table  width="452" border="0" align="center"  cellpadding="0" cellspacing="1"  bgcolor="#669900">  <tr>  <td  height="40" align="center"  bgcolor="#669900"><strong><font  color="#FFFFFF">ENTRY DATA</font></strong></td>  </tr>  <tr>  <td  bgcolor="#FFFFFF"><table width="452"  border="0" align="center" cellpadding="5"  cellspacing="0">  <tr><td  width="113">NIM</td><td width="11">:</td>  <td  width="237"><input name="nim" type="text"  id="nim" size="12" maxlength="12"></td>  </tr>  <tr><td>Nama</td><td>:</td>  <td><input  name="nama" type="text" id="nama"  size="30" maxlength="30"></td>  </tr>  <tr><td>Tempat  Lahir</td><td>:</td>  <td><input  name="tempat_lahir" type="text" id="tempat_lahir"  size="30" maxlength="30"></td>  </tr>

Page 3: Membuat Database Dan Tabel Mahasiswa

  <tr><td>Tanggal  Lahir</td><td>:</td>  <td><select name="tgl" size="1"  id="tgl">  <?php  for ($i=1;$i<=31;$i++)  {  echo "<option  value=".$i.">".$i."</option>";  }  ?>  </select>  <select  name="bln" size="1" id="bln">  <?php  $bulan=array("","Januari","Pebruari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember");  for ($i=1;$i<=12;$i++)  {  echo "<option  value=".$i.">".$bulan[$i]."</option>";  }  ?>  </select>  <select  name="thn" size="1" id="thn">  <?php  for ($i=1985;$i<=2000;$i++)  {  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"></textarea></td>  </tr>  <tr><td>Jenis  Kelamin</td><td>:</td>  <td><input  name="jenis_kelamin" type="radio" value="L" checked> Laki-laki <input  name="jenis_kelamin" type="radio" value="P"> Perempuan  </td>  </tr>  <tr><td>Photo</td><td>:</td>  <td><input  type="file" name="photo"  id="photo"></td>  </tr>  <tr><td  colspan="3" align="center"><input  name="fok" type="submit" id="fok"  value="OK">  <input  name="fulang" type="reset" id="fulang"  value="Ulangi">  <input name="fulang2"  type="button" id="fulang2" 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>

Membuat Proses Simpan dan Upload photo mahasiswa

Page 4: Membuat Database Dan Tabel Mahasiswa

Setelah form selesai sekarang  membuat file untuk menyimpan data yang diisikan lewat formulir entry, nama file sesuai seperti yang dibuat di <form action="simpan-data-mahasiswa.php" …>  yaitu simpan-data-mahasiswa.php.  <?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'];  //masing-masing variabel yang diawali dengan $_POST harus sesuai dengan  nama yang dibuat dalam form  if (empty($nim))  {                   die("Isikan  NIM!"); //Berhenti dan munculkan pesan jika nim tidak diisi  }   elseif(empty($nama))  {     die("Isikan  Nama!"); //Berhenti dan munculkan pesan jika nama tidak diisi     //anda bisa  tambahkan struktur if yang lain jika ada data yang perlu dicek  }  else  {     $cekdata="select  nim from tb_mahasiswa where nim='$nim'";     $ada=mysql_query($cekdata)  or die(mysql_error());     if(mysql_num_rows($ada)>0)     { die("NIM  telah Terdaftar!"); }     else  {        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"); }          } else  { die("Jenis gambar yang anda kirim salah. Harus .jpg .gif .png"); }        }  //end if cek file upload        mysql_query("insert  into tb_mahasiswa(nim,nama,tempat_lahir,tanggal_lahir,alamat,jenis_kelamin,photo)  " .         "values('$nim','$nama','$tempat_lahir','$tanggal_lahir','$alamat','$jenis_kelamin','$photo')")  or die(mysql_error());        echo  "Berhasil";        header("location:laporan-data-mahasiswa.php");     } //end if  terdaftar}     ?>Setelah selesai form input mahasiswa, anda masuk ke folder data-mahasiswa, lalu buat sebuah folder baru diberi nama photo. Kemudian coba jalankan aplikasi seperti awal tadi (lihat bagian menjalankan menu) , masuk ke menu utama http://localhost/data-mahasiswa 

Page 5: Membuat Database Dan Tabel Mahasiswa

kemudian masuk ke menu input data mahasiswa.Kemudian coba diisikan lengkap dengan gambar dan disimpan.Jika pas selesai ternyata ada error header... , seperti gambar berikut :

Anda jangan panik dulu, data sebenarnya sudah masuk tapi ada bagian baris pertama pada file koneksi.php yang harus anda tambahkan, lihat perubahan pada baris pertama :<?phpob_start(); //ditambahkan untuk mengabaikan pengiriman header, berlaku juga untuk mengabaikan pesan error header$dbserver="localhost";$dbusername="root";$dbpassword="";$dbname="db_datamhs";mysql_connect($dbserver,$dbusername,$dbpassword) or die(mysql_error());mysql_select_db($dbname) or die (mysql_error());?>setelah anda perbaiki file koneksi.php, coba refresh lagi...

Ternyata muncul lagi pesan error... semuanya anda abaikan dulu. Sekarang kita coba cek dulu apakah data yang dikirim sudah masuk database atau belum, caranya anda buka phpmyadmin, masuk ke database db_datamhs, tb_mahasiswa, coba anda browse apakah ada baris baru disitu??? kalau ya berati data memang berhasil tersimpan.Setelah itu kita cek lagi file gambar yang diupload, buka folder data-mahasiswa/photo, apakah ada file gambar disitu??? kalau ya berarti data sudah masuk dan photo juga sudah terkirim. PROSES SIMPAN SELESAI.

Membuat laporan data mahasiswa

Laporan akan dibuat dengan susunan tabel yang menampilkan seluruh data mahasiswa. Silahkan lihat kode berikut ini :<html><head><title>Laporan Data Mahasiswa</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><h2 align="center">Data Mahasiswa</h2><form action="" method="get" name="FCari" id="FCari">  Cari NIM/Nama     <input name="txtcari" type="text" id="txtcari" size="20" maxlength="30" value="<?php echo $_GET['txtcari']?>">  <input type="submit" name="Submit" value="Cari"></form><form name="FLaporan" method="post" action="delete-banyak.php" onSubmit="return confirm('Hapus data terpilih?')"><table width="100%" border="1" align="center" cellpadding="3" cellspacing="0">  <tr>    <td align="center">&nbsp;</td>    <td>NIM</td>    <td>Nama</td>    <td>Tempat Lahir</td>    <td align="center">Tanggal Lahir</td>    <td align="center">Jenis Kelamin</td>    <td>Alamat</td>    <td align="center">Photo</td>

Page 6: Membuat Database Dan Tabel Mahasiswa

    <td align="center">Koreksi</td>    <td align="center">Hapus</td>  </tr><?php        include "koneksi.php";        $txtcari=$_GET['txtcari'];        if(isset($txtcari))        {           $myquery="select nim,nama,tempat_lahir, DATE_FORMAT(tanggal_lahir, '%d-%m-%Y') as tanggal_lahir, jenis_kelamin,alamat, photo from tb_mahasiswa where nim='$txtcari' or nama LIKE '%$txtcari%'";        }        else        {           $myquery="select nim,nama,tempat_lahir, DATE_FORMAT(tanggal_lahir, '%d-%m-%Y') as tanggal_lahir, jenis_kelamin,alamat, photo from tb_mahasiswa";        }               $daftarsiswa=mysql_query($myquery) or die (mysql_error());        while($dataku=mysql_fetch_object($daftarsiswa))        {?>  <tr>    <td align="center">     <input type="checkbox" name="item[]" id="item[]" value="<?php echo $dataku->nim?>" /></td>    <td><?php echo  $dataku->nim?></td>    <td><?php echo  $dataku->nama?></td>    <td><?php echo  $dataku->tempat_lahir?></td>    <td align="center"><?php echo  $dataku->tanggal_lahir?></td>    <td align="center"><?php echo  $dataku->jenis_kelamin?></td>    <td><?php echo  $dataku->alamat?></td>    <td align="center"><img src="<?php echo  $dataku->photo?>" alt="<?php echo  $dataku->nama?>" width="50" /></td>    <td align="center"><a href="koreksi-data-mahasiswa.php?nim=<?php echo  $dataku->nim?>">Koreksi</a></td>    <td align="center"><a href="hapus-data-mahasiswa.php?nim=<?php echo  $dataku->nim?>">Hapus</a></td>  </tr><?        }?></table>    <input name="btnHapus" type="submit" value="Delete">  <p align="center"><a href="index.php">Menu Utama  </a></p></form></body></html>Kemudian simpan dengan nama file laporan-data-mahasiswa.php, jika panggil melalui menu utama maka hasilnya akan seperti berikut :

untuk sementara yang bisa digunakan hanya faslitas pencarian, anda bisa coba.Secara logika, pencarian dilakukan apabila text pencarian dengan nama txtCari diisi dan dikirim, sehingg halaman laporan menerima melalui metode GET dan mencari berdasar nim atau nama.

Membuat halaman delete / hapus satu baris data

Page 7: Membuat Database Dan Tabel Mahasiswa

Jika anda lihat dibagian kolom laporan ada sebuah kolom dengan judul hapus, tulisan hapus pada tiap baris digunakan untuk mengahpus baris yang sesuai, mekanismenya, link hapus membawa nilai dengan kunci nim ke halaman hapus. Sekarang kita akan membuat halaman hapus untuk menerima kiriman dari link hapus. Lihat kode berikut :<?phpinclude "koneksi.php";$nim = $_GET['nim'];$res = mysql_query("select photo from tb_mahasiswa where nim='".$_GET['nim']."' LIMIT 1");$d=mysql_fetch_object($res);if (strlen($d->photo)>3){  if (file_exists($d->photo)) unlink($d->photo);}       $myquery =  "delete from tb_mahasiswa where nim ='$nim' limit 1"; $hapus = mysql_query($myquery) or die ("gagal menghapus"); header ("location:laporan-data-mahasiswa.php");?>Disini antara hapus satu baris kita bedakan filenya, agar lebih mudah difahami. Sebenarnya bisa digabung dengan mendeteksi bentuk kiriman parameter nilainya.Proses penghapusan data dalam file hapus-data-mahasiswa.php dilakukan dengan menghapus sekaligus file gambar yang sudah dimasukkan. Sebelum menghapus juga ada pengecekan status photo jika ada isinya dan jika ada filenya maka dilakukan hapus gambar.

Membuat halaman delete / hapus banyak baris

Bagian ini adalah halaman yang akan menangani proses jika baris data dipilih dan tombol delete ditekan. Fungsinya adalah menghapus semua data yang sudah terpilih. Dibagian laporan, saya sudah buatkan checkbox yang masing-masing sudah diberi nilai dalam susunan array input. Lihat kode baris ini pada bagian kode laporan.<input type="checkbox" name="item[]" id="item[]" value="<?php echo $dataku->nim?>" />Setiap perulangan baris maka masing-masing item[] akan diberi nilai sesuai nim yang sedang diambil dalam tabel. Kemudian semua array akan dikirim ke halaman delete-banyak.php sesuai dengan action form yang ada sebelum tabel. Berikut kode untuk mengambil nilai dari array pilihan yang dihapus :<?phpinclude "koneksi.php";$jumlah = count($_POST["item"]);for($i=0; $i < $jumlah; $i++) {    $nim=$_POST["item"][$i];        $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);        }               $myquery =  "delete from tb_mahasiswa where nim ='$nim' limit 1";         $hapus = mysql_query($myquery) or die ("gagal menghapus"); }header ("location:laporan-data-mahasiswa.php");?>Semua array akan dihitung dan dilakukan perulangan untuk menghapus photo serta recordnya.

Page 8: Membuat Database Dan Tabel Mahasiswa

Setelah sebelumnya membuat tentang susunan tabel, koneksi, membuat input data dan simpan, 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 :Untuk membuat form seperti itu buat susunan kode php dan html yang disimpan dengan nama file koreksi-data-mahasiswa.php, susunan kodenya sebagai berikut :<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><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>

Page 9: Membuat Database Dan Tabel Mahasiswa

            <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>

Page 10: Membuat Database Dan Tabel Mahasiswa

          <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>

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.

Setelah form koreksi selesai, sekarang membuat proses penyimpanan kembali data yang dikoreksi. Proses simpan ini juga dapat memperbaharui gambar yang sudah ada. Kodenya dapat dilihat berikut :<?phpinclude "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!");

Page 11: Membuat Database Dan Tabel Mahasiswa

}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.

Page 12: Membuat Database Dan Tabel Mahasiswa

Data mahasiswa dengan sistem login pengguna/user. Ini diperlukan hampir pada tiap aplikasi yang dibangun agar tidak semua orang yang mengakses halaman pengelola bisa langsung melihat atau melakukan perubahan data tanpa proses login terlebih dahulu.Membuat tabel login penggunaLangkah pertama untuk membuat login adalah membuat desain tabel database myslq untuk menyimpan data user/pegguna.Nama tabel : tb_penggunaField tabel :

1. username tipe varchar (20) primary key2. password tipe varchar (255)3. nama tipe varchar (30)4. login_terakhir datetime

susunan query untuk membuat tabel penggunaCREATE TABLE `db_datamhs`.`tb_pengguna` (`username` VARCHAR( 20 ) NOT NULL ,`password` VARCHAR( 255 ) NOT NULL ,`nama` VARCHAR( 30 ) NOT NULL ,`login_terakhir` DATETIME NOT NULL ,PRIMARY KEY ( `username` )) ENGINE = MYISAM ;dan hasil view struktur tabelnya seperti gambar berikut :Menyisipkan data awal penggunaKemudian untuk simulasi ini kita input data awal secara manual melalui phpmyadmin (nanti kalo sudah ada adminnya baru dibuatkan menu untuk mengelola pengguna). Menambahnya bisa langsung tekan menu insert pada bagian atas informasi tabel pada phpmyadmin, seperti gambar :atau dengan susunan query :INSERT INTO `db_datamhs`.`tb_pengguna` (`username`,`password`,`nama`,`login_terakhir`) VALUES ('admin', MD5( '12345' ) , 'Nama Admin', '2012-08-08 23:49:35');Dalam tabel pengguna kita tambahkan user dengan password MD5(`12345`), ini maksudnya nanti password akan disimpan dalam mode algoritma sistem acak md5(Message-Digest algorithm 5) sehingga password tidak tersimpan dalam bentuk aslinya `12345' tapi dikodekan khusus dalam 128-bit.Pada tabel juga kita tambahkan field login terakhir yang nanti digunakan sebagai tempat mencatat tanggal dan jam login terakhir.Masih ada tahap berikutnya yaitu membuat proses login dan mengamankan setiap halaman yang terhubung dengan pengelolaan data mahasiswa.

Membuat form login penggunaForm login pengguna ini akan membuat seperti gambar diatas, susunan kode htmlnya seperti berikut :<!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=utf-8" /><title>Login Pengguna</title><style type="text/css">

Page 13: Membuat Database Dan Tabel Mahasiswa

body {margin:20px;background-color:#f4f4f4;}#FormLogin { width:400px;margin:0 auto;border:1px solid #444;padding:20px;background-color:#333;border-radius:20px;color:#fff; }#FormLogin h1 { text-align:center;border-bottom:1px solid #ccc;padding:10px;margin:5px;;font-size:22px;}#FormLogin label {float:left;width:150px;}#FormLogin .text { margin-bottom:5px;}</style></head><body><div id="FormLogin"><h1>LOGIN APLIKASI DATA MAHASISWA</h1><form id="FLogin" name="FLogin" method="post" action=""><label>Username</label> : <input name="username" type="text" id="username" size="20" maxlength="20" class="text" /><br /><label>Password</label> :  <input name="password" type="password" id="password" size="20" maxlength="20" class="text" /><br /><p align="center"><input type="submit" name="button" id="button" value="Login" /><input type="reset" name="Reset" id="button" value="Reset" /></p></form></div></body></html>Filenya simpan dengan nama login-data-mahasiswa.phpMembuat script login dengan PHPPada bagian form <form id="FLogin" name="FLogin" method="post" action="">, sengaja action dibuat tanpa nilai, ini artinya form akan diproses pada file itu sendiri. Kode diatas belum selesai karena masih perlu menyisipkan bagian-bagian proses login pada koneksi.php dan file login-data-mahasiswa.Pada baris kedua koneksi.php  ubah menjadi :<?php    ob_start();    session_start();    $dbserver="localhost";    $dbusername="root";    $dbpassword="";    $dbname="db_datamhs";    mysql_connect($dbserver,$dbusername,$dbpassword) or die(mysql_error());    mysql_select_db($dbname) or die (mysql_error());?>Pada baris pertama paling atas halaman login-data-mahasiswa.php tambahkan :<?php    include("koneksi.php");?>Kemudian tambahkan lagi pada bagian setelah <body><?php//Penangganan login jika form diisiif(isset($_POST['username']) && isset($_POST['password'])){   //cek isian   if(!empty($_POST['username']) && !empty($_POST['password']))   {     $username=htmlspecialchars(stripslashes($_POST['username']));     $password=md5(htmlspecialchars(stripslashes($_POST['password'])));     $myquery="select username,nama,DATE_FORMAT(login_terakhir, '%d-%m-%Y %H:%i:%s') as login_terakhir from tb_pengguna where username='$username' and password='$password' limit 1";

Page 14: Membuat Database Dan Tabel Mahasiswa

     $result=mysql_query($myquery) or die (mysql_error());     if (mysql_num_rows($result) == 1)      {        //jika username dan password cocok        $pengguna=mysql_fetch_object($result);        $_SESSION['login']=true;        $_SESSION['username']=$pengguna->username;        $_SESSION['nama']=$pengguna->nama;        $_SESSION['login_terakhir']=$pengguna->login_terakhir;        mysql_query("update tb_pengguna set login_terakhir=NOW() where username='$username' limit 1") or die("Gagal memperbaharui terakhir login");        header("location:index.php");      } else {        //jika username dan password tidak cocok        echo "<h1 align=\"center\">Username atau password salah!</h1>";      }   } else {      //jika form kosong munculkan pesan      echo "<h1 align=\"center\">Isikan username dan password!</h1>";    }} ?>Kode untuk proses login sudah selesai, sekarang tingal melindungi semua halaman akses data mahasiswa. Pada sebelumnya kita sudah membuat :

1. index.php 2. input-data-mahasiswa.php 3. simpan-data-mahasiswa.php 4. laporan-data-mahasiswa.php 5. hapus-data-mahasiswa.php 6. delete-banyak.php 7. koreksi-data-mahasiswa.php8. update-data-mahasiswa.php

Semuanya harus kita lindungi dengan form login, sehinga jika file-file tersebut diakses maka akan dipindah ke halaman login (login-data-mahasiswa.php).Kita mulai dengan file pertama yaitu index.php, tambahkan pada baris pertama kode berikut :<?phpinclude("koneksi.php");if(!isset($_SESSION['login'])) {    header("location:login-data-mahasiswa.php");}?>Walaupun index yang isinya hanya menu, kita perlu memanggil perintah session_start() yang ada pada koneksi.php agar session pada file ini aktif. Anda bisa baca tentang menggunakan session. Anda bisa tampilkan nama pengguna yang login serta terakhir dia login dengan memanggil $_SESSION['nama'] dan $_SESSION['terakhir_login'] yang sudah kita buat pada saat berhasil login tadi. Ini PR buat anda coba sendiri.File kedua, halaman input data. Ini perlakuanya sama dengan index, dia tidak berhubungan langsung dengan database tapi harus memanggil session_start() yang ada pada file koneksi.php. jadi tambahkan kode yang sama pada baris awalnya.Kemudian file simpan-data-mahasiswa.php, ini sedikit berbeda dengan index dan input data. Kita cukup menambahkan perintah berikut setelah include("koneksi.php")

Page 15: Membuat Database Dan Tabel Mahasiswa

<?phpinclude("koneksi.php"); //ini sudah ada sebelumnyaif(!isset($_SESSION['login'])) {    header("location:login-data-mahasiswa.php");}?>Pada file-file lainya karena sudah ada include("koneksi.php), kita lakukan hal yang sama dengan simpan yaitu menambahkan baris perintah if(!isset.... setelah include("koneksi.php")Cek kembali semua file agar memastikan setiap awal setelah koneksi ada pengecekan status login.Dengan semua langkah-langkah diatas, berarti kita sudah melindungi semua halaman dengan login. Anda bisa coba dari index, dst pasti langsung masuk ke login. Anda coba isikan login username admin dan password 12345, jika berhasil maka anda akan bebas mengakses halaman-halaman yang sebelumnya dilindungi tadi.

Membuat halaman logoutAnda mungkin bertanya-tanya mana fasilitas logout atau mengunci kembali aplikasi ini. Memang belum tersedia, sekarang kita akan membuatnya. Langsung buat file baru, dan simpan dengan nama logout-data-mahasiswa.php, isinya lihat kode berikut :<?include "koneksi.php";session_destroy();header("location:login-data-mahasiswa.php");?>Cukup sederhana tinggal memanggil session_destroy() maka semua session akan hilang dan otomatis semua halaman terkunci lagi.Terakhir sekali, yaitu menambahkan link ke halaman logout-data-mahasiswa.php pada menu utama aplikasi (index.php). Ini juga PR buat anda coba sendiri. Caranya silahkan baca tentang Hyperlink.http://www.zainalhakim.web.id/posting/membuat-aplikasi-data-mahasiswa-dengan-php-bagian-6.html