Aplikasi database berbasis web studi kasus part 3
-
Upload
materi-kuliah-online -
Category
Education
-
view
5.230 -
download
5
Transcript of Aplikasi database berbasis web studi kasus part 3
APLIKASI DATABASE BERBASIS
WEB DENGAN PHP & MYSQL
(BAGIAN 3-STUDI KASUS)
TEKNIK INFORMATIKA – UNIKOM (2009)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
PERTEMUAN 11
1
Pengolahan Data Produk
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
2
Fasilitas yang harus ada adalah penambahan,
penghapusan dan pencarian data produk.
Di setiap penambahan data, field id_kategori dan
id_merk harus dibuat berupa pilihan (combobox)
yang diambil dari table yang ada di database.
Harus ada fasilitas upload gambar produk yang
akan disimpan ke database.
Pengolahan Data Produk
(Proses simpan gambar ke database)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
3
Ada 2 cara menyimpan file gambar ke database
yaitu :
Menyimpan isi file gambar ke database.
Menyimpan nama file gambar ke database. Filenya
disimpan pada folder tertentu.
Pengolahan Data Produk
(Proses simpan gambar ke database)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
4
Menyimpan isi file gambar ke database.
Kelebihan : Konsistensi antara data produk dengan data gambar (tidak ada istilah filenya hilang) karena isi file gambar disimpan pada tempat yang sama (database)
Kekurangan : Membebani database server ketika banyakpengaksesan database untuk mengambil gambar.
Menyimpan nama file gambar ke database. Filenyadisimpan pada folder tertentu.
Kelebihan : Tidak terlalu membebani database server. Karena gambar disimpan terpisah dari data produk.
Kekurangan : Ada kemungkinan tidak konsistensi antaradata produk dengan file gambar (mungkin ada data produk tetapi gambarnya hilang, atau sebaliknya)
Upload File (Upload Gambar)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
5
Form Upload
Wajib menyertakan enctype="multipart/form-data" padapendefinisian FORM.
Boleh menambahkan sebuah elemen INPUT yang bertipe HIDDEN dengan nama MAX_FILE_SIZE untuk membatasi besar file yang boleh diupload.
Untuk pemilihan file digunakan elemen INPUT yang bertipe FILE.
NAMAFILE : upload.php
<form enctype="multipart/form-data"
method="POST" action="proses_file.php">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
File : <input name="userfile" type="file"/><br />
<input type="submit" value="Kirim File"name="tbl" />
</form>
Upload File (Upload Gambar)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
6
Form Upload
Upload File (Upload Gambar)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
7
Proses File Upload
Informasi mengenai file yang terupload dapat dilihat
pada array $_FILES[„nama_input‟]
Function pathinfo digunakan mengekstrak informasi
dari suatu file (nama file, folder, extensionnya)NAMAFILE : proses_file.php
<html><head><title>Proses file upload</title></head><body>
<pre>
<?php
echo "\$_FILES : ";print_r($_FILES['userfile']);
$infofile=pathinfo($_FILES['userfile']['name']);
echo "\$infofile : ";print_r($infofile);
?>
</pre>
</body>
</html>
Upload File (Upload Gambar)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
8
Proses File Upload
Upload File (Upload Gambar)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
9
Proses File Upload
$_FILES adalah variable yang berisi
informasi file yang diupload.
Ada beberapa data yang dapat
digunakan yaitu :
• [name] : Berisi nama file asli
• [type] : Tipe file
• [tmp_name] : Lokasi file yang telah
terupload.
• [error] : Status upload. Berisi 0 jika tidak
ada error.
• [size] : Ukuran file yang diupload.
Upload File (Upload Gambar)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
10
Proses File Upload
$infofile adalah variable yang berisi
informasi suatu file yang merupakan
return value dari function infopath.
Ada beberapa data yang dapat
digunakan yaitu :
• [dirname] : Berisi nama direktori/folder
• [basename] : Nama file dan ekstension
file.
• [extension] : Nama ekstension file
• [filename] : Nama file saja, tanpa
ekstension file.
Upload File (Upload Gambar)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
11
Memindahkan file upload ke folder tertentu.
Buat folder di folder web dengan nama “gambar”
(jangan di folder admin).
Ubah isi file proses_file.php dengan kode berikut<?php
if($_FILES['userfile']['error']==0){
$namafilebaru="../gambar/".$_FILES['userfile']['name'];
if(move_uploaded_file($_FILES['userfile']['tmp_name'],
$namafilebaru)==true){
echo "File telah tersimpan.";
}
else
echo "Gagal menyimpan file upload";
}
else
echo "Gagal Upload";
?>
Upload File (Upload Gambar)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
12
Memindahkan file upload ke folder tertentu.
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
13
Kembali ke Pengolahan Data Produk
Pengolahan Data Produk
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
14
Buatlah tabel Produk
Buka PHPMyAdmin
Pilih database anda
Klik link “SQL”
Paste SQL di bawah ini, kemudian klik tombol “Go”.CREATE TABLE IF NOT EXISTS `produk` (
`id_produk` int(11) NOT NULL AUTO_INCREMENT,
`nama` varchar(100) NOT NULL,
`id_kategori` int(11) NOT NULL,
`id_merk` int(11) NOT NULL,
`harga` decimal(10,2) NOT NULL,
`diskon` decimal(5,2) NOT NULL,
`stok` int(11) NOT NULL DEFAULT '0',
`deskripsi` text NOT NULL,
`dijual` char(1) NOT NULL DEFAULT 'Y',
`filegambar` varchar(100) NOT NULL,
PRIMARY KEY (`id_produk`)
) ENGINE=MyISAM
Pengolahan Data Produk
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
15
Buatlah menu untuk pengolahan data produk.
Tambahkan menu berikut di function menu_admin() di
file lib_func.php
<tr><td align="center" bgcolor="#FFCC00"><b>DATA PRODUK</b></td></tr>
<tr><td align="center"><a href="produk_form_tambah.php">Tambah</a></td></tr>
<tr><td align="center"><a ref="produk_view.php">View</a></td></tr>
Pengolahan Data Produk
(Penambahan Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
16
Duplikat file template.php. Rename menjadi
produk_form_tambah.php
Ganti judul halaman menjadi “PENAMBAHAN
PRODUK.
Pengolahan Data Produk
(Penambahan Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
17
Gantilah isi halaman dengan kode PHP seperti di
bawah ini<?php $link=koneksi_db(); ?>
<form method="post" enctype="multipart/form-data"
action="produk_proses_tambah.php">
<table align="center" bgcolor="white" border=0>
<tr><td colspan=2 align=center class="judultable">
<b>TAMBAH PRODUK</b></td></tr>
<tr><td>Nama Produk</td>
<td> <input type=text name="namaproduk" size=50
maxlength=100></td></tr>
N
e
x
t
Pengolahan Data Produk
(Penambahan Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
18
<tr><td>Kategori</td>
<td><select name="id_kategori">
<option value="">Pilih Kategori</option>
<?php
$res=mysql_query("SELECT id_kategori,nama FROM kategori
ORDER BY nama");
while($data=mysql_fetch_array($res)){
echo "<option value=\"".$data['id_kategori']."\">".
$data['nama']."</option>";
}
?>
</select>
</td></tr>
N
e
x
t
Pengolahan Data Produk
(Penambahan Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
19
<tr><td>Merk</td>
<td><select name="id_merk">
<option value="">Pilih Merk</option>
<?php
$res=mysql_query("SELECT id_merk,nama FROM merk
ORDER BY nama");
while($data=mysql_fetch_array($res)){
echo "<option value=\"".$data['id_merk']."\">".
$data['nama']."</option>";
}
?>
</select>
</td></tr>
N
e
x
t
Pengolahan Data Produk
(Penambahan Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
20
<tr><td>Harga</td>
<td><input type=text name="harga" size=16 maxlength=15></td></tr>
<tr><td>Diskon</td>
<td><input type=text name="diskon" size=7 maxlength=6> %</td></tr>
<tr><td>Stok</td>
<td><input type=text name="stok" size=7 maxlength=6></td></tr>
<tr><td>Deskripsi</td>
<td><textarea name="deskripsi" cols="40" rows="5">
</textarea></td></tr>
<tr><td>File Gambar</td>
<td><input type=file name="filegambar"></td></tr>
<tr><td></td>
<td><input type=submit value="Simpan">
<input type=reset></td></tr>
</table>
</form>
Pengolahan Data Produk
(Penambahan Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
21
Eksekusi file tersebut dengan mengklik link
“Tambah” pada menu Produk.
Pengolahan Data Produk
(Penambahan Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
22
Duplikat file template.php, rename menjadi
produk_proses_simpan.php
Ubahlah judul halaman menjadi “PENAMBAHAN
PRODUK”
Ubahlah isi produk dengan script PHP di bawah ini.
Pengolahan Data Produk
(Penambahan Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
23
<?php
if($_FILES['filegambar']['error']==0){
$link=koneksi_db();
$nama=$_POST['namaproduk'];
$id_merk=$_POST['id_merk'];
$id_kategori=$_POST['id_kategori'];
$harga=$_POST['harga'];
$diskon=$_POST['diskon'];
$stok=$_POST['stok'];
$deskripsi=$_POST['deskripsi'];
$filegambar=$_FILES['filegambar']['name'];
$namafilebaru="../gambar/".$filegambar;
N
e
x
t
Pengolahan Data Produk
(Penambahan Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
24
if(move_uploaded_file($_FILES['filegambar']['tmp_name'],
$namafilebaru)==true){
$sql="INSERT INTO produk
VALUES(null,'$nama','$id_kategori','$id_merk',
'$harga','$diskon','$stok','$deskripsi','Y','$filegambar')";
$res=mysql_query($sql);
if($res){
$id_produk=mysql_insert_id($link);
echo "Data produk baru telah disimpan dengan ID $id_produk";
}
else{
echo "Data produk baru gagal disimpan dengan kesalahan ".
mysql_error();
}
}
}
else
echo "Penambahan produk gagal karena upload file gambar gagal";
?>
Pengolahan Data Produk
(Penambahan Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
25
Testing
Pengolahan Data Produk
(View Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
26
Duplikat file template.php, rename menjadi
produk_view.php
Ganti judul halaman menjadi “DATA PRODUK”
Ganti isi halaman dengan script PHP dibawah ini.
Pengolahan Data Produk
(View Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
27
<?php
$link=koneksi_db();
$sql="SELECT p.id_produk,p.nama NamaProduk,
m.nama NamaMerk,k.nama NamaKategori,
p.harga,p.diskon,p.stok,p.filegambar,p.dijual
FROM produk p JOIN merk m ON p.id_merk=m.id_merk
JOIN kategori k ON p.id_kategori=k.id_kategori
ORDER BY p.nama";
$res=mysql_query($sql,$link) or die(mysql_error());
$banyakrecord=mysql_num_rows($res);
N
e
x
t
Pengolahan Data Produk
(View Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
28
if($banyakrecord>0){
?>
<div class="info">Data Produk ditemukan sebanyak: <b><?php echo $banyakrecord;?></b>
Record</div>
<table border=0 align="center">
<tr class="judultable"><td colspan=10>DAFTAR PRODUK</td></tr>
<tr class="judultable"><td>Gambar</td><td>ID</td><td>NAMA</td>
<td>Merk</td><td>Kategori</td><td>Harga</td>
<td>Stok</td><td>Diskon</td><td>Dijual</td></tr>
<?php
$i=0;
while($data=mysql_fetch_array($res)){
$i++;
?>
<tr class="<?php if($i%2==1) echo "isitabelganjil";else echo
"isitabelgenap";?>">
<td align="center"><img src="../gambar/<?php echo
$data['filegambar'];?>" width="70px" height="70px"></td>
<td align="center"><?php echo $data['id_produk'];?></td>
<td><?php echo $data['NamaProduk'];?></td>
<td><?php echo $data['NamaMerk'];?></td>
<td><?php echo $data['NamaKategori'];?></td>
N
e
x
t
Pengolahan Data Produk
(View Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
29
<td align="right"><?php echo fumber_format($data['harga'],0);?></td>
<td align="right"><?php echo number_format($data['diskon'],0);?></td>
<td align="right"><?php echo number_format($data['stok'],0);?>%</td>
<td align="center"><?php echo $data['dijual'];?></td>
</tr>
<?php
}
?>
</table>
<?php
}
else{
?>
<div class="warning">Data produk tidak ditemukan!.</div>
<?php
}
?>
Pengolahan Data Produk
(View Produk)
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
30
Jalankan view produk dengan mengklik “View”.
Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)
31
Untuk pengeditan dan lain-lain, silahkan
berimprovisasi.
Silahkan diskusikan di mailinglist.