Anda di halaman 1dari 15

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";
$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 mahasiswa
Menu 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">
<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>
<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","A
gustus","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
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
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 :
<?php
ob_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>
<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
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 :
<?php
include "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 :
<?php
include "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.
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>
<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>

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 :
<?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_kela
min' 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.














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 pengguna
Langkah pertama untuk membuat login adalah membuat desain tabel database myslq untuk
menyimpan data user/pegguna.
Nama tabel : tb_pengguna
Field tabel :
1. username tipe varchar (20) primary key
2. password tipe varchar (255)
3. nama tipe varchar (30)
4. login_terakhir datetime
susunan query untuk membuat tabel pengguna
CREATE 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 pengguna
Kemudian 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 pengguna
Form 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">
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.php
Membuat script login dengan PHP
Pada 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 diisi
if(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";
$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.php
8. 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
:
<?php
include("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")
<?php
include("koneksi.php"); //ini sudah ada sebelumnya
if(!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 logout
Anda 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

Anda mungkin juga menyukai