Aplikasi database berbasis web studi kasus part 3

Post on 01-Jul-2015

5.228 views 5 download

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.