aplikasi database berbasis web studi kasus part 3

31
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

Upload: materi-kuliah-online

Post on 01-Jul-2015

5.232 views

Category:

Education


5 download

TRANSCRIPT

Page 1: 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

Page 2: Aplikasi database berbasis web   studi kasus part 3

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.

Page 3: Aplikasi database berbasis web   studi kasus part 3

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.

Page 4: Aplikasi database berbasis web   studi kasus part 3

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)

Page 5: Aplikasi database berbasis web   studi kasus part 3

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>

Page 6: Aplikasi database berbasis web   studi kasus part 3

Upload File (Upload Gambar)

Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)

6

Form Upload

Page 7: Aplikasi database berbasis web   studi kasus part 3

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>

Page 8: Aplikasi database berbasis web   studi kasus part 3

Upload File (Upload Gambar)

Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)

8

Proses File Upload

Page 9: Aplikasi database berbasis web   studi kasus part 3

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.

Page 10: Aplikasi database berbasis web   studi kasus part 3

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.

Page 11: Aplikasi database berbasis web   studi kasus part 3

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

?>

Page 12: Aplikasi database berbasis web   studi kasus part 3

Upload File (Upload Gambar)

Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)

12

Memindahkan file upload ke folder tertentu.

Page 13: Aplikasi database berbasis web   studi kasus part 3

Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)

13

Kembali ke Pengolahan Data Produk

Page 14: Aplikasi database berbasis web   studi kasus part 3

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

Page 15: Aplikasi database berbasis web   studi kasus part 3

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>

Page 16: Aplikasi database berbasis web   studi kasus part 3

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.

Page 17: Aplikasi database berbasis web   studi kasus part 3

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

Page 18: Aplikasi database berbasis web   studi kasus part 3

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

Page 19: Aplikasi database berbasis web   studi kasus part 3

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

Page 20: Aplikasi database berbasis web   studi kasus part 3

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>

Page 21: Aplikasi database berbasis web   studi kasus part 3

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.

Page 22: Aplikasi database berbasis web   studi kasus part 3

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.

Page 23: Aplikasi database berbasis web   studi kasus part 3

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

Page 24: Aplikasi database berbasis web   studi kasus part 3

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

?>

Page 25: Aplikasi database berbasis web   studi kasus part 3

Pengolahan Data Produk

(Penambahan Produk)

Modul Aplikasi Teknologi Online Oleh Andri Heryandi, S.T., M.T. (IF-UNIKOM)

25

Testing

Page 26: Aplikasi database berbasis web   studi kasus part 3

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.

Page 27: Aplikasi database berbasis web   studi kasus part 3

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

Page 28: Aplikasi database berbasis web   studi kasus part 3

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

Page 29: Aplikasi database berbasis web   studi kasus part 3

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

}

?>

Page 30: Aplikasi database berbasis web   studi kasus part 3

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

Page 31: Aplikasi database berbasis web   studi kasus part 3

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.