Pada postingan sebelumnya telah dibahas mengenai pembuatan template sederhana untuk toko online ini. Pada bagian ini akan dibahas mengenai konfigurasi file dan desain database nya. Pada bagian_ Membuat Toko Online – PHP dan MySQL Part 2 _pertama-tama saya akan membahas cara pembuatan database terlebih dahulu untuk memberikan bayangan mengenai sistem yang akan kita buat nanti. Oh ya sebelumnya jika kamu sudah membuat tampilan HTML+CSS nya di Membuat Toko Online – PHP dan MySQL Part 2 mungkin akan ada beberapa hal yang akan berbeda di tahap** Membuat Toko Online – PHP dan MySQL Part 2 **karena dalam tahap ini saya akan membagi bagian template-nya ke dalam beberapa bagian (dimaksudkan untuk dapat lebih mudah dalam pengembangan dan maintanance nanti) baiklah langsung aja check it out.

Membuat Tabel Database

tabel – category

CREATE TABLE IF NOT EXISTS `category` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;

Tabel – Keranjang

CREATE TABLE IF NOT EXISTS `keranjang` (
  `id_keranjang` int(5) NOT NULL AUTO_INCREMENT,
  `id_product` int(5) NOT NULL,
  `id_session` varchar(100) COLLATE latin1_general_ci NOT NULL,
  `tgl_keranjang` date NOT NULL,
  `qty` int(4) NOT NULL,
  PRIMARY KEY (`id_keranjang`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=394 ;

Tabel – Order Product

CREATE TABLE IF NOT EXISTS `order_product` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_product` int(11) NOT NULL,
  `id_pemesan` varchar(100) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `address` text NOT NULL,
  `phone` int(20) NOT NULL,
  `status` varchar(30) NOT NULL DEFAULT 'New',
  `jumlah` int(4) NOT NULL,
  `tanggal` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=70 ;

Tabel – Product

CREATE TABLE IF NOT EXISTS `product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`product_name` varchar(100) NOT NULL,
`price` int(20) NOT NULL,
`image` varchar(1000) NOT NULL,
`id_category` int(11) NOT NULL,
`deskripsi` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ;

Tabel – User

CREATE TABLE IF NOT EXISTS `user` (
  `id_user` varchar(50) COLLATE latin1_general_ci NOT NULL,
  `password` varchar(50) COLLATE latin1_general_ci NOT NULL,
  `email` varchar(100) COLLATE latin1_general_ci NOT NULL,
  `level` varchar(50) COLLATE latin1_general_ci NOT NULL DEFAULT 'user',
  PRIMARY KEY (`id_user`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

Membuat File Konfigurasi

Langkah selanjutnya adalah membuat file-file konfigurasi yang dibutuhkan dalam pembuatan Toko Online ini, seperti

  • Membuat fungsi PHP yang dibutuhkan
  • Memisahkan file-file PHP kedalam bagian-bagian terkecil atau biasa disebut dengan teknik modulasi

Sebelum melangkah pada pembuatan fungsi PHP buatlah terlebih dahulu folder dan file yang dapat dilihat hasilnya pada gambar dibawah ini,

Gambar Folder

Setelah dibuat folder dan filenya, ayoo kita lanjutkan pada tahap selanjutnya (semoga masih semangat yaaaa…! :D). Bukalah folder “include” dan buatlah sebuah file diberi nama lib.php, isilah file tersebut dengan fungsi-fungsi berikut ini.

lib.php

<!--?php $seminggu = array("Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"); $hari = date("w"); $hari_ini = $seminggu[$hari]; $tgl_sekarang = date("Ymd"); $thn_sekarang = date("Y"); $jam_sekarang = date("H:i:s"); $nama_bln=array(1=--> "Januari", "Februari", "Maret", "April", "Mei",
                    "Juni", "Juli", "Agustus", "September",
                    "Oktober", "November", "Desember");
//fungsi untuk keranjang belanja
function cart_content(){
	$ct_content = array();
	$sid = session_id();
	$sql = mysql_query("SELECT * FROM keranjang WHERE id_session='$sid'");
	while ($r=mysql_fetch_array($sql)) {
		$ct_content[] = $r;
	}
	return $ct_content;
}
//fungsi untuk menghapus keranjang
function deletecart(){
	$del = date('Y-m-d', mktime(0,0,0, date('m'), date('d') - 1, date('Y')));
	mysql_query("DELETE FROM keranjang WHERE tgl_keranjang < '$del'"); 	} //fungsi untuk membuat koneksi database ke server function koneksi() { 	$server = "localhost"; 	$username = "root"; 	$password = ""; 	$database = "toko2"; 	mysql_connect($server,$username,$password) or die("Koneksi gagal"); 	mysql_select_db($database) or die("Database tidak bisa dibuka"); } ?>

ya…!! dalam membuat toko online ini fungsi diatas akan menjadi pilar dalam sistem toko online ini, selanjutnya kita akan masuk ke dalam tahap cara menggunakan teknik modulasi yang menurut saya sangat bermanfaat untuk membuat aplikasi web. Karena dengan teknik modulasi ini kita dapat mudah dalam melakukan pengembangan dan perawatan suatu aplikasi web, oh ya teknik modulasi ini merupakan suatu teknik pemisahan sebuah aplikasi menjadi bagian-bagian kecil…hhmmm, mungkin terlalu panjang bahasannya ya hehe, langsung ajalah buat file-file dibawah ini didalam folder “include” :

  1. bottom.php
  2. cart.php
  3. cart2.php
  4. home.php
  5. left.php
  6. order.php
  7. product.php
  8. top.php

Jika sudah dibuat, silahkan file tersebut isikan dengan syntax berikut,

bottom.php

</pre>
<div class="footer">
© <!--?php echo date('Y') ?--> Membuat Sistem Shopping Cart | PHP dan MySQL Developed by <a href="http://www.hitamcoklat.com/">hitamcoklat</a></div>
<pre>

File diatas berfungsi untuk menampilkan bagian bawah website toko online ini.

cart.php

</pre>
<div class="BigContent">
<div class="RightContent">
<h1 class="Judul">Shopping Cart</h1>
<div class="KetProd">$sid = session_id(); $no = 1; $sql = mysql_query("SELECT * FROM keranjang, product WHERE id_session='$sid' AND keranjang.id_product=product.id"); $hitung = mysql_num_rows($sql); if ($hitung < 1){echo""; } else { while($tian=mysql_fetch_array($sql)){ echo""; $no++; } } ?>
<table class="TableCart" style="border-top: 1px dotted #0; border-bottom: 1px dotted #0;" width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<th>No</th>
<th>Foto Produk</th>
<th>Nama Produk</th>
<th>Jumlah</th>
<th>Harga</th>
<th>Delete</th>
<!--?php <br ?-->
<td>$no</td>
<td><img src="foto/$tian[image]" alt="" width="50" /></td>
<td>$tian[product_name]</td>
<td>$tian[qty]</td>
<td>$tian[price]</td>
<td><a href="input.php?input=delete&id=$tian[id_keranjang]">Hapus</a></td>
</tr>
</tbody>
</table>
 <a class="tombol" href="?v=order">Selesai</a>
 <a class="tombol" href="index.php">Belanja Lagi..</a></div>

File diatas berfungsi untuk menampilkan produk yang sudah dimasukan ke dalam keranjang

cart2.php

<!--?php <br ?-->include "inc/koneksi.php";
	$sid = session_id();
	$sql = mysql_query("SELECT * FROM keranjang");
	$row = mysql_num_rows($sql);
	$jml = mysql_fetch_array($sql);

	echo "<span class="KetCart">$row item</span>";
	?>

File diatas berfungsi untuk menampilkan produk yang telah dimasukan kedalam tabel keranjang dan menghitungnya dengan menggunakan fungsi mysql_num_rows()

home.php

</pre>
<div class="BigContent">
<div class="RightContent">
<h1 class="Judul">Produk terbaru</h1>
<!--?php 	$sql = mysql_query("SELECT * FROM product ORDER BY id DESC") or die ("Query gagal dengan error: ".mysql_error()); 	while($data=mysql_fetch_array($sql)){ ?-->
<div class="produk"><a href="?v=produk&id=<?php echo $data['id']; ?>">
 <img class="FotoProduk" title="<?php echo $data['product_name']; ?>" src="foto/<?php echo $data['image']; ?>" alt="" height="110px" />
 </a>
 <br class="clearfloat" />
<div class="KotakKet"><a class="pesanprod" href="input.php?input=add&id=<?php echo $data['id']; ?>">Pesan</a>
 <a class="detprod" href="product.php?id=<?php echo $data['id']; ?>">Detail</a></div>
</div>
<!--?php } ?-->

left.php

</pre>
<div class="LeftContent">
<div id="navigation">
<ul class="top-level">
<ul class="top-level"><!--?php <br ?--> $kat = mysql_query("SELECT category, category.id from category join product on product.id_category=category.id group by category");</ul>
</ul>
<ul class="top-level">
<ul class="top-level">while($list=mysql_fetch_array($kat)){</ul>
</ul>
<ul class="top-level">
<ul class="top-level">echo"
	<li><a href="?v=produk&cat=$list[id]">$list[category]</a></li>
</ul>
</ul>
<ul class="top-level">
<ul class="top-level">";</ul>
</ul>
<ul class="top-level">
<ul class="top-level">}</ul>
</ul>
<ul class="top-level">?></ul>
</div>
</div>
<pre>

File diatas berfungsi untuk menampilkan menu kategori dari tabel category dengan menggabungkan tabel product, dapat dilihat dari syntax mysqlnya,

mysql_query("SELECT category, category.id from category join product on product.id_category=category.id group by category");

order.php

</pre>
<div class="BigContent">
<div class="RightContent">
<h2 class="Judul">Form Pemesanan</h2>
<form action="input.php?input=inputform" method="post">
<table>
<tbody>
<tr>
<td>Nama</td>
<td><input class="form" type="text" name="name" /></td>
</tr>
<tr>
<td>Email</td>
<td><input class="form" type="text" name="email" /></td>
</tr>
<tr>
<td>Alamat</td>
<td><textarea class="form" name="address" rows="7" cols="40"></textarea></td>
</tr>
<tr>
<td>No HP</td>
<td><input class="form" type="text" name="telp" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="order" /></td>
</tr>
</tbody>
</table>
</form>

File diatas berfungsi sebagai form dengan tujuan file yaitu input.php.

product.php

File ini berfungsi untuk menampilkan produk per kategori dan produk inti,

</pre>
<div class="BigContent">
<div class="RightContent"><!--?php <br ?--> $prod = $_GET['id'];
 $cat = $_GET['cat'];
 if($cat){
 $sql = mysql_query("SELECT * FROM category WHERE id = '$cat'"); //untuk mengambil tabel kategori berdasarkan id
 $jdl = mysql_fetch_array($sql);
 echo "
<h1 class="Judul">Kategori $jdl[category]</h1>
";
 $sql2 = mysql_query("SELECT * FROM product WHERE id_category='$cat'");
 while($t = mysql_fetch_array($sql2)){ ?>
<div class="produk"><a href="?v=produk&id=<?php echo $t['id']; ?>">
 <img class="FotoProduk" title="<?php echo $t['product_name']; ?>" src="foto/<?php echo $t['image']; ?>" alt="" height="110px" />
 </a>
 <br class="clearfloat" />
<div class="KotakKet"><a class="pesanprod" href="input.php?input=add&id=<?php echo $t['id']; ?>">Pesan</a>
 <a class="detprod" href="?v=produk&id=<?php echo $t['id']; ?>">Detail</a></div>
</div>
<!--?php 	} } elseif($prod){ ?-->
<!--?php //jika variable cat tidak terdefinisikan maka lanjut ke proses dibawah ini 	$sql = mysql_query("SELECT * FROM product WHERE id='$prod'"); 	$d = mysql_fetch_array($sql); 	?-->
<h1 class="Judul">Produk <!--?php echo $d['product_name']; ?--></h1>
<div class="KetProd"><img class="GambarKetProd" src="foto/<?php echo $d['image']; ?>" alt="" />
 <!--?php echo $d['deskripsi']; ?--></div>
 <a class="haha" href="javascript:history.go(-1)">Kembali</a> | <a class="haha" href="input.php?input=add&id=<?php echo $d['id']; ?>">Beli</a>
<!--?php } ?-->

top.php

<!--?php 	error_reporting(0); 	session_start(); 	?-->

		Toko Online
</pre>
<div class="wrap">
<div class="header">
<div class="LeftOne"><a href="index.php"><img src="images/toko-online.png" alt="" width="150px" /></a></div>
<div class="RightOne">
<div class="cart"></div>
 <br class="clearfloat" />
 <a class="tocart" href="cart.php">Keranjang</a></div>
</div>
 <br class="clearfloat" />

Dari syntax diatas dapat dilihat bahwa terdapat 2 alur pengerjaannya, yaitu jika kondisi pertama (yaitu variable cat dimana dihasilkan dari parameter URL) terpenuhi maka akan melanjutkan query pengambilan kategori dan apabila kondisi kedua (dimana variable cat tidak terdefinisikan) maka akan akan melanjutkan query pengambilan produk berdasarkan_ id._ Dilanjutkan di bagian “Membuat Toko Online PHP dan MySQL Part3” ya :D

Ohh ya jika ada pertanyaan seputar pembuatan toko online ini silahkan isi komentar. ⤧  Next post 10 Template Website Portofolio Terbaik – Gratis ⤧  Previous post Membuat Toko Online – PHP dan MySQL Part 1