Membuat Sistem Keranjang Belanja Sederhana

20 views

“Dasar lelaki mata keranjang”. Begitulah teriakan yang tersirat dari perasaan perempuan 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 wacana keranjang kini ini toko online mana sih yang belum punya akomodasi 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 jika mau buat toko online kini sih gampang, tinggal pake wordpress atau opencart pribadi jadi. Namun tentu lebih baik lagi jika kita mengerti bagaimana sistem keranjang belanja itu bekerja, siapa tahu nanti kita dapat menciptakan CMS toko online sendiri.

Bagi Anda para mahasiswa yang sedang mempelajari web programing, keranjang belanja niscaya juga akan masuk pada bahan 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 biar praktis dipelajari.

Sebelum mengikuti tutorial ini, diperlukan 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, aktivitas akan mengarahkan ke aksi_keranjang.php terlebih dahulu untuk mencegah terjadinya doubel data pemesanan.
  3. Baru sesudah 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 tetapkan 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

 

 

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 yaitu source kodenya

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

 

Karena saya memakai Xammp sebagai webserver, maka saya mengosongkan potongan passwordnya. Silahkan diubahsuaikan dengan konfigurasi webserver Anda.

Selanjutnya kita buat file daftar_produk.php, berikut yaitu 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 menyerupai ini

 

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

Jadi disini saya hanya menampilkan link beli dimana saat 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 yaitu source instruksi 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){// jika barang belum ada, maka di jalankan perintah insertmysql_query("INSERT INTO keranjang (id_produk, jumlah, id_session)VALUES ('$_GET[id]', 1, '$sid')");} else {//  jika barang ada, maka di jalankan perintah updatemysql_query("UPDATE keranjangSET jumlah = jumlah + 1WHERE id_session ='$sid' AND id_produk='$_GET[id]'");}header('Location:keranjang.php');?>

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

Pada instruksi diatas di awali dengan session_start. Lalu akan menyertakan file koneksi.php biar dapat terhubung ke database toko. Selanjutnya akan dibentuk session id. Session_id buat apa? ini untuk membedakan antara pembeli yang satu dengan lainnya. Sebab nanti dapat jadi yang belanja di toko online kita dapat 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 yaitu source instruksi 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, dapat dilihat pada instruksi baris 15.

Pada potongan 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 yaitu source kodenya

<?phpsession_start();include "koneksi.php";$sid = session_id();// fungsi untuk mendapat isi keranjang belanjafunction 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')");// mendapat 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']})");}  // sesudah data pemesanan tersimpan, hapus data pemesanan di tabel keranjangfor ($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 dibentuk 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 yaitu perintah sql untuk memasukan data tanggal pembelian ke tabel pembelian. Nantinya tabel pembelian dapat dikembangkan tidak hanya tanggal pembelian saja, dapat ditambah jam pemesanan, id_customer yang memesan, dll. SIlahkan nanti di kembangin sendiri yah.

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

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

Selanjutnya pada baris 35 akan terjadi peniadaan isi data dari tabel keranjang. Ibarat kita hingga dikasir toko isi keranjang belanja kita diambil oleh mbak kasir. Maka instruksi baris 35 kiprahnya menyerupai mbak kasir itu. Mengosongkan keranjang belanja kita

Selanjutnya baris 38 hingga simpulan yaitu instruksi untuk menampilkan rincian belanja. Kodenya hampir sama dengan file keranjang.php. Disini pembeli dapat melihat rincinan belanjanya. Fungsinya hampir sama menyerupai struk belanja.

Nantinya file selesai.php akan terlihat menyerupai ini

 

File selesai.php juga dapat 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, aktivitas akan mengarahkan ke aksi_keranjang.php terlebih dahulu untuk mencegah terjadinya doubel data pemesanan.
  3. Baru sesudah 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 tetapkan 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 dapat bermanfaat untuk Anda. Jika ada yang ingin ditanyakan silahkan hubungi penulis saja untuk konsultasi lebih lanjut. Sekian dan terima kasih

Author: 
    author
    No related post!