Bicara tentang keranjang sekarang ini toko online mana sih yang belum punya fasilitas keranjang belanja. Fitur ini wajib dimiliki setiap toko online. Keranjang belanja digunakan untuk menyimpan data-data barang yang ingin di beli oleh pengunjung website kita.

Membuat Sistem Keranjang Belanja Sederhana

"Dasar lelaki mata keranjang". Begitulah teriakan yang tersirat dari perasaan wanita yang jengkel terhadap seseorang.  Wanita memang tidak suka dengan mata keranjang. Tapi keranjang yang satu ini beda. Ini keranjang buat shopping. Cewe mana sih yang ga suka liad keranjang belanjanya penuh. Weks.....

Bicara tentang keranjang sekarang ini toko online mana sih yang belum punya fasilitas keranjang belanja. Fitur ini wajib dimiliki setiap toko online. Keranjang belanja digunakan untuk menyimpan data-data barang yang ingin di beli oleh pengunjung website kita.

Memang kalau mau buat toko online sekarang sih gampang, tinggal pake wordpress atau opencart langsung jadi. Namun tentu lebih baik lagi kalau kita mengerti bagaimana sistem keranjang belanja itu bekerja, siapa tahu nanti kita bisa membuat CMS toko online sendiri.

Bagi Anda para mahasiswa yang sedang mempelajari web programing, keranjang belanja pasti juga akan masuk pada materi kuliah Anda. Pada kesempatan kali ini saya akan membahas bagaimana sih cara kerja dari fitur keranjang belanja. Sistem keranjang belanja yang akan saya tunjukan disini merupakan sistem yang sudah di pakai oleh CMS lokal indonesia loh. Sengaja saya buah lebih sederhana agar mudah dipelajari.

Sebelum mengikuti tutorial ini, diharapkan Anda sudah paham mengenai dasar-dasar pemograman PHP. Terutama untuk operasi inner join database dan session php. Jika belum mengerti kedua istilah tadi silahkan di pelajari dulu yah. :-)

Sebelum itu berikut saya terangkan dahulu alur sistem keranjang belanja sederhana yang akan kita buat.

  1. Semua berawal dari file daftar_produk.php yang menampilkan daftar produk.
  2. Ketika pengunjung mengklik link beli, program akan mengarahkan ke aksi_keranjang.php terlebih dahulu untuk mencegah terjadinya doubel data pemesanan.
  3. Baru setelah itu akan di arahkan ke keranjang.php. Di file keranjang.php akan menampilkan dafar barang yang di beli beserta link tambah barang dan selesai belanja.
  4. Ketika pengunjung memutuskan selesai belanja maka akan diarahkan ke file selesai.php yang berfungsi layaknya sebagai struk belanjaan
  5. selesai

Pertama-tama kita buat dulu database dengan nama toko, adapun tabel-tabelnya sebagai berikut

db_toko

 

 

Karena ini sistem sederhana, kita hanya memerlukan empat tabel saja. Silahkan nanti di import saja database-nya. Saya sudah menyertakan file sql di paket downloadnya.

Pertama-tama kita buat dulu file koneksi.php, berikut adalah source kodenya

<?php
// koneksi ke mysql
$dbHost = "localhost";
$dbUser = "root";
$dbPass = "";
$dbName = "toko";
mysql_connect($dbHost, $dbUser, $dbPass);
mysql_select_db($dbName);
?>

 

Karena saya menggunakan Xammp sebagai webserver, maka saya mengosongkan bagian passwordnya. Silahkan disesuaikan dengan konfigurasi webserver Anda.

Selanjutnya kita buat file daftar_produk.php, berikut adalah source kodenya

<?php 
session_start();	
include "koneksi.php"; 
echo"<h1>Daftar Produk</h1>
	 <ul>";
$r=mysql_query("SELECT * FROM produk");
while($d=mysql_fetch_array($r)){
		echo"<li>$d[nama_produk] : $d[harga] || <a href='aksi_keranjang.php?id=$d[id_produk]'>Beli</a></li>";
		}
echo"</ul>";
?>

Kode diatas berfungsi untuk menampilkan data dari tabel produk. Tampilannya sederhana dulu saja, nanti akan kelihatan seperti ini

daftar_produk

 

Sederhana banget yah. Ga kayak di toko online lainnya. Sabar, karena ini memang dasarnya banget jadi saya buat demikian. Nanti kalau Anda sudah paham bisa di kembangkan lagi tampilan dan fungsinya. Sementara gini saja dulu.

Jadi disini saya hanya menampilkan link beli dimana ketika link itu diklik akan mengarah pada file aksi_keranjang.php. Masing-masing link akan mengantar id produk ke file aksi_keranjang.php dengan metode get. Nah berikut adalah source kode dari file aksi_keranjang.php

<?php 
session_start();
include "koneksi.php";
$sid = session_id();


//di cek dulu apakah barang yang di beli sudah ada di tabel keranjang
$sql = mysql_query("SELECT id_produk FROM keranjang WHERE id_produk='$_GET[id]' AND id_session='$sid'");
	$ketemu=mysql_num_rows($sql);
	if ($ketemu==0){
		// kalau barang belum ada, maka di jalankan perintah insert
		mysql_query("INSERT INTO keranjang (id_produk, jumlah, id_session)
				VALUES ('$_GET[id]', 1, '$sid')");
	} else {
		//  kalau barang ada, maka di jalankan perintah update
		mysql_query("UPDATE keranjang
		        SET jumlah = jumlah + 1
				WHERE id_session ='$sid' AND id_produk='$_GET[id]'");		
	}	
	header('Location:keranjang.php');

?>

File diatas ga ada tampilannya. Karena hanya berfungsi sebagai file proses.

Pada kode diatas di awali dengan session_start. Lalu akan menyertakan file koneksi.php agar bisa terhubung ke database toko. Selanjutnya akan dibuat session id. Session_id buat apa? ini untuk membedakan antara pembeli yang satu dengan lainnya. Sebab nanti bisa jadi yang belanja di toko online kita bisa lebih dari satu orang dalam waktu bersamaan. Nah session_id inilah yang menjadi pembeda antara pembeli-pembeli tadi.

Selanjtunya akan diperiksa dulu apakah barang yang di beli sudah ada di tabel keranjang dengan session id yang berlaku. Jika belum ada, maka akan dijalankan perintah insert. Jika ada, maka akan di jalankan perintah update dengan menambahkan jumlah barang 1 buah.

Selanjutnya dijalankan perintah header () untuk mengarahkan ke file keranjang.php. Berikut adalah source kode dari file keranjang.php

<?php 
session_start();	
$sid = session_id();
include "koneksi.php";
echo"<h1>Keranjang Belanja</h1>
          <table border=1>
          <tr>
				<th>Nama Produk</th>
				<th>Qty</th>
				<th>Harga</th>
				<th>Sub Total</th>
		  </tr>
		  ";	

//jalankan perintah inner join dari tabel keranjang dan produk $sql = mysql_query("SELECT * FROM keranjang, produk WHERE id_session='$sid' AND keranjang.id_produk=produk.id_produk"); while($d=mysql_fetch_array($sql)){ $subtotal = $d[harga]* $d[jumlah]; $total = $total + $subtotal; echo"<tr><td>$d[nama_produk]</td> <td>$d[jumlah]</td> <td>$d[harga]</td> <td>$subtotal</td></tr>"; } echo"</table> <h2>Total Belanja : <b>$total</b></h2> <ul> <li><a href='daftar_produk.php'>Tambah Barang</a></li> <li><a href='selesai.php'>Selesai belanja</a></li> </ul>"; ?>

Nah, file inilah yang menjadi inti dari sistem. Fungsinya sebagai penampil data belanjaan bedasarkan id session yang berlaku. Data diambil lewat operasi join antar tabel keranjang dan produk, bisa dilihat pada kode baris 15.

Keranjang

Pada bagian bawah saya menambahkan dua link yaitu untuk tambah barang yang mengarah ke daftar_produk.php dan selesai belanja yang mengarah ke selesai.php. Untuk yang tambah barang saya kira tidak perlu di jelaskan lagi, saya akan melanjutkan ke file selesai.php. berikut adalah source kodenya

<?php
session_start();
include "koneksi.php";
$sid = session_id();
// fungsi untuk mendapatkan isi keranjang belanja
function isi_keranjang(){
	$isikeranjang = array();
	$sid = session_id();
	$sql = mysql_query("SELECT * FROM keranjang WHERE id_session='$sid'");
	
	while ($r=mysql_fetch_array($sql)) {
		$isikeranjang[] = $r;
	}
	return $isikeranjang;
}  

$tgl_skrg = date("Ymd");

// simpan data pemesanan 
mysql_query("INSERT INTO pembelian(tgl_beli) VALUES ('$tgl_skrg')");

// mendapatkan nomor orders dari tabel pembelian
$id_orders=mysql_insert_id();

// panggil fungsi isi_keranjang dan hitung jumlah produk yang dipesan
$isikeranjang = isi_keranjang();
$jml          = count($isikeranjang);

// simpan data detail pemesanan  
for ($i = 0; $i < $jml; $i++){
  mysql_query("INSERT INTO detail_beli(id_beli, id_produk, jumlah) VALUES('$id_orders',{$isikeranjang[$i]['id_produk']}, {$isikeranjang[$i]['jumlah']})");
}
  
// setelah data pemesanan tersimpan, hapus data pemesanan di tabel keranjang
for ($i = 0; $i < $jml; $i++) { mysql_query("DELETE FROM keranjang WHERE id_belanja = {$isikeranjang[$i]['id_belanja']}");}


echo"Nomor Order: <b>$id_orders</b><br /><br />";

echo"<h1>Rincian Belanja</h1>
          <table border=1>
          <tr>
				<th>Nama Produk</th>
				<th>Qty</th>
				<th>Harga</th>
				<th>Sub Total</th>
		  </tr>
		  ";	
$r=mysql_query("SELECT * FROM detail_beli,produk WHERE detail_beli.id_produk=produk.id_produk AND id_beli='$id_orders'");
  
while($d=mysql_fetch_array($r)){
		$subtotal    = $d[harga]* $d[jumlah];
		$total       = $total + $subtotal;
		echo"<tr><td>$d[nama_produk]</td>
			<td>$d[jumlah]</td>
			<td>$d[harga]</td>
			<td>$subtotal</td></tr>";
}
echo"</table>
<h2>Total Belanja : <b>$total</b></h2>";
?>

 

Wuih, panjang juga yah kodenya. pertama-tama akan dibuat fungsi penghitung isi tabel keranjang pada baris 6-15. Fungsi itu akan mengembalikan nilai berapa banyak barang yang di beli bedasarkan id_session yang berlaku.

Lanjut pada baris 20 adalah perintah sql untuk memasukan data tanggal pembelian ke tabel pembelian. Nantinya tabel pembelian bisa dikembangkan tidak hanya tanggal pembelian saja, bisa ditambah jam pemesanan, id_customer yang memesan, dll. SIlahkan nanti di kembangin sendiri yah.

Baris 26-27 akan menghitung barang belanjaan menggunakan fungsi isi_keranjang. Lalu nilainya akan disimpan pada variabel $jml. $jml ini akan dipakai pada proses selanjuntnya

baris 30-31 adalah proses penyimpanan data secara berulang ke tabel detail_beli. Perulangannya itu bergantung dari banyak jenis produk yang di beli. Makanya digunakan perintah for agar pemasukannya disesuaikan dengan banyak jenis barang yang dibeli.

Selanjutnya pada baris 35 akan terjadi penghapusan isi data dari tabel keranjang. Ibarat kita sampai dikasir toko isi keranjang belanja kita diambil oleh mbak kasir. Maka kode baris 35 perannya seperti mbak kasir itu. Mengosongkan keranjang belanja kita

Selanjutnya baris 38 sampai akhir adalah kode untuk menampilkan rincian belanja. Kodenya hampir sama dengan file keranjang.php. Disini pembeli bisa melihat rincinan belanjanya. Fungsinya hampir sama seperti struk belanja.

Nantinya file selesai.php akan terlihat seperti ini

 

selesai

File selesai.php juga bisa Anda kembangkan lebih lanjut lagi. Berikut saya review lagi alur sistem keranjang belanja yang beru saja kita bahas.

  1. Semua berawal dari file daftar_produk.php yang menampilkan daftar produk.
  2. Ketika pengunjung mengklik link beli, program akan mengarahkan ke aksi_keranjang.php terlebih dahulu untuk mencegah terjadinya doubel data pemesanan.
  3. Baru setelah itu akan di arahkan ke keranjang.php. Di file keranjang.php akan menampilkan dafar barang yang di beli beserta link tambah barang dan selesai belanja.
  4. Ketika pengunjung memutuskan selesai belanja maka akan diarahkan ke file selesai.php yang berfungsi layaknya sebagai struk belanjaan
  5. selesai

Sampailah kita dipenghujung tutorial ini. Semoga apa yang saya sampaikan bisa bermanfaat untuk Anda. Jika ada yang ingin ditanyakan silahkan hubungi penulis saja untuk konsultasi lebih lanjut. Sekian dan terima kasih


About Author

Dadan

Saya adalah pria biasa saja yang tumbuh semakin besar di lingkungan yang serba biasa, Semoga kehadiran saya disini bisa membantu Anda. ^_^


Comment & Discussions

  • Erdoray
    truktur tabelnya bagaimana??

  • link download nya mana ya?

  • Jauharul Alan Syah
    mas link downloadnya udah mati boleh minta yg baru gak ???

  • Radi Ryan Syah
    gan, untuk struktur databasenya apa aja?

  • Evander Lay
    om, minta db nya dong, klw boleh, buat pake latihan,sy masih amatir soalx, thx

  • Please LOGIN before if you want to give the comment.