4. IMPLEMENTASI SISTEM

dokumen-dokumen yang mirip
MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Pemrograman Web PRAKTIKUM 6. Query Data 2. TUJUAN BELAJAR Mahasiswa dapat menggunakan PHP dan MySQL untuk mengupdate data

HITUNG ONGKOS KIRIM MENGGUNAKA N API RAJAONGKIR.C OM PHP + Jquery. Level Intermediate Bahasa Indonesia Apr 11th 2015 Oleh Yusuf Akhsan

Praktikum 3 Cookie, Session, dan Database MySQL

BAB III IMPLEMENTASI. Program penghubung database tersebut disimpan dengan nama. konek.php. Berikut merupakan kode program penghubung Database :

BAB IV IMPLEMENTASI DAN EVALUASI. Dalam merancang dan membangun sistem penjualan online ini ada

Membangun koneksi dari PHP ke MySQL adalah dengan fungsi mysql_connect();

BAB IV IMPLEMENTASI DAN PENGUJIAN. diperlukan sarana penunjang dalam bentuk Hardware dan software, sebagai

5 BAB V IMPLEMENTASI DAN PENGUJIAN

Membuat Login Dengan PHP dan MYSQL

BAB IV HASIL DAN PEMBAHASAN. Sistem Informasi Penjualan dan Pembelian Barang Pada Toko Touring

BAB IV IMPLEMENTASI DAN PENGUJIAN

Prosedur Menjalankan Aplikasi

Langkah 1 Struktur Folder. Langkah 2 Database. Detil Tutorial

BAB III PERANCANGAN SISTEM

BAB IV IMPLEMENTASI SISTEM

BAB IV HASIL DAN PEMBAHASAN

Dengan asumsi bahwa aplikasi masih menggunakan cookie, maka query untuk membuka profil adalah seperti berikut:

Prosedur menjalankan program Analisis Dan Perancangan. Sistem Basis Data Pembelian, Penjualan Dan Persediaan Pada. Restoran Celio Bistro

Modul Pemrograman Web Teori + Praktik PHP, XML, Ajax, Laravel

BAB 3 ANALISIS DAN PERANCANGAN SISTEM. Dalam merancang sebuah sistem, analisis adalah hal yang harus dilakukan. Dengan

BAB III PERANCANGAN SISTEM

BAB IV IMPLEMENTASI DAN EVALUASI. Sistem yang dibangun pengembang adalah berbasis web. Untuk dapat

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

BAB III ANALISIS DAN DESAIN SISTEM

2. Isikan data registrasi anda pada form yang tersedia.

BAB X AKSES DAN MANIPULASI DATA

SEARCHING, EDIT / UPDATE DAN DELETE. PHP & MYSQL Part Two

Pemrograman Web Lanjut 2017

BAB IV IMPLEMENTASI DAN PENGUJIAN

A. REGISTRASI SELLER DI PESANDULU.COM

BAB IV IMPLEMENTASI DAN EVALUASI

SISTEM INFORMASI PENJUALAN HANDPHONE VELIN PHONE TANGERANG BERBASIS WEB

TIB18 - PEMROGRAMAN WEB. Pemrograman Web Pertemuan & 21-22

BAB 3 ANALISIS DAN PERANCANGAN SISTEM. wawancara yang dilakukan, para costumer ingin membeli dengan cara mudah tanpa

window.location='karyawan/homeuser.php'</script>"; }else if($c['level']=="manajer"){

MANUAL PENGGUNAAN APLIKASI

BAB III ANALISIS DAN PERANCANGAN

Manual Penggunaan Sistem Pengeloalaan TBO. Untuk Pokjar, Karunika dan LPBAUSI

MODUL 11 MEMBUAT LOGIN USER

BAB III ANALISIS DAN PERANCANGAN

Penjualan Buku Online Toko Buku Gramedia Jember

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Gambar 4.1 Running Apache dan MySQL di XAMPP

Bab 4 Implementasi dan Evaluasi

LAPORAN ANALISIS SISTEM (TAHAP I) PENJUALAN LAPTOP ONLINE

Pemrograman Web Lanjut 2017

ONLINE GAME SHOP E-COMMERCE

Gambar 3.1 Data Flow Diagram Level 0

BAB IV IMPLEMENTASI PENGEMBANGAN DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

INTRO PHP FORM PHPMYADMIN input update delete TEMPLATE SEDERHANA

BAB IV IMPLEMENTASI DAN PENGUJIAN

Checkbox dengan Foreach dan MYSQL

BAB V IMPLEMENTASI DAN PEMBAHASANP

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB IV IMPLEMENTASI DAN EVALUASI

BAB IV DESKRIPSI PEKERJAAN. seperti menyebarkan brosur, iklan koran, dll. Promosi yang masih dilakukan

Membuat Toko Online dengan Ajax Jquery [Part 4]

BAB IV IMPLEMENTASI DAN EVALUASI SISTEM. disesuaikan dengan desain sistem yang sudah dibuat. Rancang Bangun sistem

TUGAS ADT. Penyewaan DVD Online. Reinold Simangunsong ( ) L. Roydel Simarmata ( ) Angga Ade sasmita ( )

Bab IV. HASIL DAN ANALISIS

PERANCANGAN DAN PEMBUATAN WEBSITE PERUSAHAAN EKSPEDISI

BAB IV RANCANGAN SISTEM YANG DIUSULKAN

PROSEDUR PROGRAM. Berikut ini adalah petunjuk pemakaian aplikasi basis data penjualan, pembelian

BAB IV IMPLEMENTASI DAN EVALUASI SISTEM. dimengerti oleh komputer. Analisa dan perancangan akan diterjemahkan kedalam

Gambar 6.1 Tampilan Utama Website

BAB IV HASIL PRAKTEK KERJA DAN ANALISIS. penjual dan pihak pembeli. Sistem informasi akuntasi penjualan di CV. Kasih Karunia

BAB V IMPLEMENTASI DAN PEMBAHASAN. pembuatan aplikasi Sistem Informasi Adminstrasi Travel Berbasis Web Pada PT.

BAB IV IMPLEMENTASI DAN EVALUASI. keras (hardwere) dan perangkat lunak (Software) yang dapat menunjang

Menangani Input dari User

BAB IV IMPLEMENTASI DAN PENGUJIAN

Gambar 4. 1 Implementasi Tabel Admin 58

BAB V IMPLEMENTASI DAN PENGUJIAN. lingkungan perangkat lunak, implementasi database beserta struktur program dan

DAFTAR ISI. Halaman ABSTRAK... i ABSTRACT... ii KATA PENGANTAR... iii DAFTAR ISI... v DAFTAR TABEL... ix DAFTAR GAMBAR... x

Gambar 4.1. Running Apache dan MySQL

BAB IV HASIL DAN PEMBAHASAN

RANCANG BANGUN SISTEM INFORMASI PENJUALAN PRODUK KOPI PADA UD. TIARA GLOBAL COFFEE BERBASIS WEB

Halaman Login Halaman Staff

BAB IV PEMBAHASAN. Perancangan aplikasi ini adalah melakukan instalasi aplikasi server yaitu

SMH2D3 Web Programming. 7 BAB V PHP SESSION & COOKIES. H a l IDENTITAS. Kajian Teknik pemrograman menggunakan PHP

CARA MENJALANKAN PROGRAM. Aplikasi pendukung untuk menjalankan website mutasi barang :

DAFTAR ISI. ABSTRAK... i KATA PENGANTAR... DAFTAR ISI... iv. DAFTAR TABEL... viii. DAFTAR GAMBAR... xii. DAFTAR LAMPIRAN... xvi

BAB IV Hasil Tercapai

BAB III ANALISIS DAN PERANCANGAN SISTEM. Pengelolaan Bisnis Iklan Pada PT. Jawa Pos Koran Surabaya. Dalam melakukan

Langkah Cara Membuat Form Login Menggunakan PHP dan MySQL Langkah 1: Membuat Tabel MySQL User/Pengguna

Mahasiswa memahami Pengertian Basisdata, Cara membuat basisdata, cara menginput data dan cara menampilkan data.

BAB IV PENGUJIAN DAN ANALISIS

Mengelola Bagian Utama Website Sekolah

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN ANALISIS. 4.1 Hasil karya dan Implementasi

BAB IV IMPLEMENTASI SISTEM. Tahap implementasi sistem merupakan proses yang dilakukan setelah tahap perancangan

PERANGKAT LUNAK PENJUALAN ACCESSORIES HANDPHONE BERBASIS WEB DI KONTER PRADANA CELLULAR BUSSINESS

BAB III DESAIN DAN PERANCANGAN

Bab III PERANCANGAN SISTEM

KONFIGURASI MAIL SERVER DENGAN MERCURY

BAB IV IMPLEMENTASI DAN PENGUJIAN

Kata Kunci :Sistem Informasi Akademik, SMA, Waterfall, PHP, MySql

Transkripsi:

4. IMPLEMENTASI SISTEM 4.1. Gambaran Umum Program Setelah melakukan analisis pada bab sebelumnya, pada bab ini akan dijelaskan mengenai implementasi sistem dari aplikasi yang telah dibuat. Program ini dibuat dengan menggunakan database MySQL dan bahasa PHP. 4.2. Koneksi Database Pembuatan aplikasi ini menggunakan XAMPP Server sebagai sarana untuk melakukan koneksi dengan MySQL Server. Untuk menjalankan XAMPP Server tekan tombol start pada modul MySQL, Apache dan Mercury dapat dilihat pada Gambar 4.1. Gambar 4.1. Connect XAMPP Server Untuk mengkoneksikan antara PHP dengan MySQL server, maka diperlukan syntax pada halaman awal PHP seperti pada Segmen 4.1. Coding tersebut harus ada setiap kali mengkoneksikan dengan database MySQL. 40

<?php $connect = mysql_connect("localhost","root",'') or die("cannot connect"); $selectdata = mysql_select_db("karunia_komputer");?> Segmen Program 4.1. Connect Database 4.3. Hubungan Proses DFD dengan Segmen Program Dalam pembuatan sistem online perusahaan, program dijalankan sesuai dengan proses bisnis yang dilakukan. Hubungan antara alur proses bisnis dengan program dapat dilihat pada Tabel 4.1. Tabel 4.1. Hubungan Proses DFD dengan Segmen Program Proses Data Flow Diagram (DFD) Proses 1 Proses Pembayaran Proses 2 Proses Laporan Proses 3 Proses Pembelian Menu Prosedur Segmen Program Login/Pemilihan barang/atur Pengiriman/Metode Pembayaran Login/Laporan Login/Pemilihan barang cart/atur Pengiriman/ Pemilihan Metode Pembayaran/Konfirmasi Email Login.php Payment.php Login.php Lap_jual.php Lap_kirim.php Lap_stok.php Laporanpenjualan.php Laporanpengiriman.php Laporanstok.php Login.php Products.php Product_summary.php Confirm_purchase.php Payment.php Kelola_jual.php 4.6 4.16 4.9 4.10 4.11 4.12 4.13 4.3 4.4 4.5 4.7 4.8 4.14 4.15 41

4.4. Implementasi Program Implementasi program merupakan rancangan dari desain sistem yang telah dibuat. Program diawali dengan halaman home. Source code home dapat dilihat pad Segmen 4.2. <?php include "header.php"; if(!isset($_session['iduser'])) {if(isset($_post['login'])) Segmen Program 4.2. Pengecekan Login {$q="select * from m_user where (username = '".$_POST['username']."' or email_user = '".$_POST['username']."') AND password_user = '".md5($_post['password'])."'"; $qr=mysql_query($q);if(mysql_num_rows($qr)>0) {$r=mysql_fetch_array($qr);$_session['iduser']=$r['id_user']; $_SESSION['nama']=$r['nama_user']; if(isset($_get['cmd'])) {if($_get['cmd']=="cart") {echo"<script>window.location.href='product_summary.php'</scri pt>";}}else echo "<script>window.location.href='index.php'</script>"; }else {echo "<script>alert('username / Email tidak ditemukan atau password tidak cocok')</script>"; }} }}elseif(isset($_get['cmd'])) {if($_get['cmd']=="shipping") echo"<script>window.location.href='confirm_purchase.php'</scri pt>";elseif($_get['cmd']=="checkout") {$_SESSION['service']=$_POST['service'];$_SESSION['hrgship']=$ _POST['hrgship'];echo"<script>window.location.href='payment.ph p'</script>";}elseif($_get['cmd']=="cart"){echo "<script>window.location.href='product_summary.php'</script>"; }elseif($_get['cmd']=="logout") {session_unset();session_destroy();$_session = array();echo "<script>window.location.href='index.php'</script>";} 42

Setelah melakukan login maka user dapat memilih menu dalam program, terdapat 3 menu utama dan tiap-tiap menu memiliki beberapa sub-menu. Dapat dilihat pada Tabel 4.2. Tabel 4.2. Tabel Menu Nama Menu Sub Menu Nama Form yang Digunakan Master Data Daftar Produk Daftar_produk Daftar kategori Daftar sub-kategori Daftar user Daftar Testimoni Daftar_kategori Daftar_sub_kategori Daftar_user Daftar_testimoni Pembelian Daftar Cart Daftar_cart Daftar Wishlist Daftar Pembayaran Daftar_wishlist Daftar_pembayaran Laporan Laporan 4.4.1. Menu Master Menu ini berisi segmen program yang mengatur master produk, user, kategori, sub-kategori dan testimoni. Menu master dapat dilihat pada Tabel 4.3. Tabel 4.3. Menu Master Sub Menu Daftar Produk Keterangan Menambah, mengubah dan menghapus data produk 43

Tabel 4.3. Menu Master (Sambungan) Sub Menu Keterangan Daftar Kategori Menambah, mengubah dan menghapus data kategori Daftar Sub-Kategori Daftar User Daftar Testimoni Menambah, mengubah dan menghapus data subkategori Menambah dan menghapus data user Menambah dan menghapus testimoni 4.4.2. Menu Pembelian Menu ini digunakan oleh user untuk mencatat transaksi yang berhubungan dengan pembelian. Transaksi tersebut mencakup pemesanan barang, pembelian, pembayaran dan barang yang diinginkan. Penjelasan mengenai menu pembelian dapat dilihat pada Tabel 4.4. Tabel 4.4. Tabel Menu Pembelian Sub Menu Daftar Cart Daftar Wishlist Daftar Pembayaran Keterangan Menambah, mengubah dan menghapus data produk yang ada dalam cart Menambah, mengubah, dan menghapus data produk yang ada dalam wishlist user. Menambah dan mengubah data pesanan yang dilakukan oleh user. 44

4.4.2.1. Transaksi Pembelian Pada menu pembelian, user memilih produk yang ingin dibeli, pemilihan dimasukkan ke dalam cart tiap user yang telah melakukan login. Jika user belum melakukan login, maka akan dimunculkan halaman login. Langkah-langkah untuk melakukam pembelian dapat dilihat pada Tabel 4.5. Tabel 4.5. Menu Pembelian No. Keterangan Segmen 1. Pemilihan produk 4.3 2. Pengisian tujuan pengiriman 4.4 3. Pemilihan jenis pengiriman 4.5 4. Pemilihan jenis pembayaran kartu kredit/transfer 4.6 5. Pengiriman e-mail penjualan 4.7 45

if(isset($_get['cmd'])) {if($_get['cmd']=="clear") Segmen Program 4.3. Pemilihan Produk {unset($_session['cart']);unset($_session['total']); mysql_query("delete FROM m_cart WHERE user_id = '".$_SESSION['iduser']."'");} elseif($_get['cmd']=="delete") {$id=$_get['id']; unset($_session['cart'][$id]); $_SESSION['cart']=array_values($_SESSION['cart']); }elseif($_get['cmd']=="updateqty"){$_session['cart'][$_get['nomor' ]]['qty']=$_get['qty']; mysql_query("update m_cart SET total_produk ='".$_GET['qty']."' where user_id='".$_session['iduser']."' AND produk_id ='".$_GET['produk']."'");}}elseif(isset($_GET['idproduk'])) {if(isset($_get['qty']))$qty=$_get['qty'];else $qty=1;$tmbhan=array("id_produk"=>$_get['idproduk'],"qty"=>$qty); $a=0; if(isset($_session['cart'])) {$brg=$_session['cart'];for($i=0;$i<count($brg);$i++) {if($brg[$i]['id_produk']==$_get['idproduk']) {$a=1;$brg[$i]['qty']=$brg[$i]['qty']+$tmbhan['qty'];}} if($a==0) {array_push($brg,$tmbhan);} $_SESSION['cart']=$brg;} Else $_SESSION['cart']=array($tmbhan);} 46

Segmen Program 4.4. Pengisian Tujuan Pengiriman <label class="control-label" for="inputcountry">nama Penerima</label> <div class="controls"> <input type="text" id="nama" name="nama" placeholder="nama" value="<?php if(isset($_post['nama'])) echo $_POST['nama']; else echo $_SESSION['nama']; $q="select * from m_user where id_user = '".$_SESSION['iduser']."'"; $qr=mysql_query($q);$r=mysql_fetch_array($qr);?>"> </div><label class="control-label" for="inputcountry">alamat Pengiriman</label><div class="controls"> <input type="text" id="alamat" name="alamat" placeholder="alamat Lengkap" value="<?php if(isset($_post['alamat'])) echo $_POST['alamat']; else echo $r['alamat_user']?>"> </div><label class="control-label" for="inputcountry">kota </label><div class="controls"><input type="text" id="kota" name="kota" placeholder="kota" value="<?php if(isset($_post['kota'])) echo $_POST['kota']; else echo $r['kota_user']?>"></div> <label class="control-label" for="inputcountry">propinsi </label><div class="controls"> <input type="text" id="propinsi" name="propinsi" placeholder="propinsi" value="<?php if(isset($_post['propinsi'])) echo $_POST['propinsi']; else echo $r['provinsi_user']?>"> </div><label class="control-label" for="inputcountry">kode Pos </label><div class="controls"><input type="text" id="zip" name="zip" placeholder="kode Pos" value="<?php if(isset($_post['zip'])) echo $_POST['zip']; else echo $r['kodepos_user']?>"></div><label class="control-label" for="inputcountry">nomor HP </label><div class="controls"> <input type="text" id="nohp" name="nohp" placeholder="081xxxx" value="<?php if(isset($_post['nohp'])) echo $_POST['nohp']; else echo $r['phone_user']?>"></div> 47

Segmen Program 4.5. Pemilihan Jenis Pengiriman if(isset($_post['ongkir'])) {$_SESSION['datakirim']=$_POST;$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://localhost/hans3/jne_city.txt", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => array("key: c24896ea63f841b6c369bda084a83279" ), ));$response = curl_exec($curl); $response=json_decode($response);$hasil=$response- >rajaongkir->results;foreach($hasil as $data) {if(strtoupper($data->city_name) == strtoupper($_post['kota'])) {$tujuan=$data->city_id;$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://api.rajaongkir.com/starter/cost", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "origin=386&destination=".$tujuan."&weight=".$_post['kilo']." &courier=jne", CURLOPT_HTTPHEADER => array("content-type: application/x-wwwform-urlencoded","key: c24896ea63f841b6c369bda084a83279" ),)); 48

Segmen Program 4.5. Pemilihan Pengiriman (Sambungan) $response = curl_exec($curl); $result=json_decode($response); $hasil=$result->rajaongkir->results[0]->costs;}} $err = curl_error($curl); curl_close($curl);} $x=1;foreach ($hasil as $data){$etd=$data->cost[0]->etd; if(trim($etd)!= '')$etd=$etd.' hari';if($x==1) {$check='checked';$service=$data->service;$hrgship=$data- >cost[0]->value;}else $check='';echo '<tr><td>'.$data->service.' '.$data- >description.'</td><td>'.number_format($data->cost[0]- >value,0).'</td><td>'.$etd.'</td><td><input type="radio" name="ship"'.$check.' value="'.$data->service.'###'.$data- >cost[0]->value.'" data-shipservice="'.$data->service.'" data-shipprice="'.$data->cost[0]->value.'"></td></tr>';$x++; }?> Segmen Program 4.6. Pemilihan Jenis Pembayaran <?php include "koneksi.php"; $q="select * from cc_simulasi where nocc='".$_get['nomor']."' AND cvv ='".$_GET['cvv']."' AND expired='".$_get['expired']."' AND aktif='true' and sisalimit >= '".str_replace(',','',$_get['tagihan'])."'"; $qr=mysql_query($q);if(mysql_num_rows($qr)>0)echo "1";else echo $q;if($status=="pending") $q="insert into laporan_pengiriman (nomor_resi,tujuan,service,total_biaya,keterangan) VALUES ('PENDING','".serialize(json_encode($_SESSION['datakirim'])). "','".$service."','".$hrgship."','".$_post['bank']." ".$_POST['namarek']." ".$_POST['tagihan']."')"; elseif($status=="ok") $q="insert into laporan_pengiriman (nomor_resi,tujuan,service,total_biaya,keterangan) VALUES ('PENDING','".serialize(json_encode($_SESSION['datakirim'])). "','".$service."','".$hrgship."','credit CARD CONFIRMED')"; 49

Segmen Program 4.7. Pengiriman e-mail penjualan $q="select * from m_tracking where id_tracking = '".$_POST['status']."'"; $qr=mysql_query($q);$r=mysql_fetch_assoc($qr);$status=$r['keterang an'];$q="select * from laporan_penjualan where pengiriman_id = '".$_POST['id']."'";$qr=mysql_query($q);$tbl="<table border='1'><tr><th>no.</th><th>nama Barang</th><th>Qty</th></tr>"; $i=0;while($r=mysql_fetch_assoc($qr)){$i++;$q2="select * from m_produk where id_produk = '".$r['produk_id']."'"; $qr2=mysql_query($q2);$r2=mysql_fetch_assoc($qr2);$tbl.="<tr><td>".$i."</td><td>".$r2['nama_produk']."</td><td>".$r['jumlah_produk']."</td></tr>";$q3="select * from m_user where id_user = '".$r['user_id']."'"; $qr3=mysql_query($q3);$r3=mysql_fetch_assoc($qr3);$nama=$r3['nama_ user'];}$tbl.="</table>"; $to=$email; $subject="barang Anda berstatus ".$status; $html="halo ".$nama.",<br>"; $html.="pesanan Anda saat ini berstatus ".$status.". Pesanan Anda adalah sebagai berikut :<br>".$tbl."<br>"; if(isset($tambahan)) $html.="<b>nomor Resi : ".$tambahan."<br></b>"; $html.="<br>demikian informasi yang dapat kami berikan untuk status pembayaran Anda. Semoga informasi ini bermanfaat.<br><br>www.karuniakomputer.com"; $message=$html;$headers = 'MIME-Version: 1.0'. "\r\n"; $headers.= 'Content-type: text/html; charset=iso-8859-1'. "\r\n";$headers.= 'To: '.$nama.'<'.$email.'>'. "\r\n"; $headers.= 'BCC: adminkaruniakomputer@ymail.com'. "\r\n"; $headers.= 'From: Karunia Komputer <noreply@karuniakomputer.hol.es>'. "\r\n";mail($to, $subject, $message, $headers); 4.4.2.2. Perhitungan Penjualan Barang Dalam menu pembelian terdapat perhitungan yang dilakukan untuk menghitung sub total barang yang akan dibeli dan juga tambahan 50

biaya untuk pengiriman dengan pemilihan paket. Query perhitungan dapat dilihat di Segmen 4.8. Segmen Program 4.8. Perhitungan penjualan barang jquery(".cqty").on("change",function(){ quantity=$(this).val();if(!isnan(quantity)) {nomor=$(this).data("nomor");produkid=$(this).data("produk"); berat=document.getelementbyid("berat"+nomor).innerhtml; harga=document.getelementbyid("hrg"+nomor).innerhtml; totalberat=berat*quantity;totalberat=totalberat.tofixed(2); lberat=document.getelementbyid("tberat"+nomor).innerhtml; lharga=document.getelementbyid("thrg"+nomor).innerhtml; lharga=parseint(lharga.replace(/,/g,"")); lharga=parseint(lharga);total=document.getelementbyid("total").inn erhtml;total=total.replace("rp.","")total=parseint(total.replace(/,/g,""));var xhttp = new XMLHttpRequest(); xhttp.open("get", "product_summary.php?cmd=updateqty&produk=&"+produkid+"&nomor="+no mor+"&qty="+quantity, true); xhttp.send();xhttp.onreadystatechange = function() { if (xhttp.readystate == 4 && xhttp.status == 200) { }};bb=document.getelementbyid("totalberat").innerhtml; bb=parsefloat(bb); document.getelementbyid("tberat"+nomor).innerhtml=totalberat; document.getelementbyid("thrg"+nomor).innerhtml=formatnumber(quant ity*harga,0); document.getelementbyid("total").innerhtml=formatnumber(totallharga+quantity*harga,0); document.getelementbyid("berat").innerhtml=formatnumber(bbparsefloat(lberat)+quantity*berat,2); document.getelementbyid("totalberat").innerhtml=formatnumber(bbparsefloat(lberat)+quantity*berat,2); document.getelementbyid("finalprice").innerhtml=formatnumber(docum ent.getelementbyid("total").innerhtml,0); }else{alert("anda salah dalam penulisan jumlah barang");}}); 51

Segmen Program 4.8. Perhitungan penjualan barang (Sambungan) $('.favku').click(function() {var xhttp = new XMLHttpRequest(); xhttp.open("get", "addwishlist.php?id=<?php if(isset($_session['iduser'])) echo $_SESSION['iduser'];?>&produk="+($(this).data("id")), true); xhttp.send();});}; function formatnumber (number,desimal) { var num = new NumberFormat(); num.setinputdecimal('.'); num.setnumber(number); num.setplaces(desimal, false); num.setcurrencyvalue(''); num.setcurrency(true); return num.toformatted();} 4.4.3. Menu Laporan Menu ini berisi laporan-laporan yang disediakan oleh sistem. Laporan tersebut meliputi laporan penjualan, laporan pengiriman, dan laporan stok. Penjelasan mengenai menu laporan dapat dilihat pada Tabel 4.6. Tabel 4.6. Menu Laporan Sub Menu Laporan Penjualan Laporan Pengiriman Laporan Stok Keterangan Digunakan untuk melihat laporan penjualan pada tanggal tertentu Digunakan untuk melihat laporan pengiriman penjualan Digunakan untuk melihat laporan jumlah stok yang dimiliki 52

4.4.3.1. Laporan Penjualan Laporan penjualan berguna untuk user / manager melihat penjualan yang dilakukan dalam kurun waktu tertentu, hal ini digunakan untuk perkiraan persediaan barang atau penjualan ke depannya. Query untuk menampilkan laporan penjualan dapat dilihat pada Segmen 4.9. Sedangkan untuk pembuatan file pdf yang digunakan untuk pencetakan laporan dapat dilihat pada Segmen 4.10. Segmen Program 4.9 Laporan Penjualan $(document).ready(function () { $('#onload').modal('show'); $("#lapstok").load("laporanpenjualan.php", function(data) {$("#lapstok").html(data); $('#onload').modal('hide'); }); jquery("#search").click(function(){jquery("#onload").mo dal('show');$("#lapstok").load("laporanpenjualan.php",{ date1: $('#date1').val(),date2: $('#date2').val()}, function(data){$("#lapstok").html(data);$('#onload').mo dal('hide'); });}); $(document).on("click", '#print', function() {$('#onload').modal('show');window.open('laporanpenjual an.php?print=yes&date1='+$('#date1').val()+"&date2="+$( '#date2').val(), '_blank', "height=600,width=800,scrollbars=1,location=no,menubar= no,resizable=1,status=no,toolbar=no"); $('#onload').modal('hide');}); jquery("#date1").datepicker({ enddate: "0d",format: "yyyy-mm-dd", orientation: "bottom auto",autoclose: true, changemonth: true,changeyear: true, }).change().on('changedate', function(selected){ var mindate = new Date(selected.date.valueOf()); $('#date2').datepicker('setstartdate', mindate);}); jquery( "#date2" ).datepicker({enddate: "0d",format: "yyyy-mm-dd",changemonth: true,changeyear: true,autoclose: true,orientation: "bottom auto",}).on('changedate', function(selected){var mindate = new Date(selected.date.valueOf()); 53

Segmen Program 4.9 Laporan Penjualan (Sambungan) $('#date1').datepicker('setenddate', mindate); $('#search').focus();});}); Segmen Program 4.10. Pembuatan Laporan Penjualan $q2="select * from laporan_pengiriman JOIN laporan_penjualan B ON id_pengiriman=b.pengiriman_id WHERE B.tanggal_penjualan >= '".$tglawal." 00:00:00' and B.tanggal_penjualan <= '".$tglakhir." 23:59:59' and status > 1 and status <> 6 GROUP BY id_pengiriman";$qr2=mysql_query($q2);$a=0; while($r2=mysql_fetch_array($qr2,mysql_assoc)) {$q="select * from laporan_penjualan where pengiriman_id ='".$r2['id_pengiriman']."'"; $qr=mysql_query($q);$bnyk=mysql_num_rows($qr); $a++;$uname=mysql_query("select * from m_user where id_user = '".$r2['user_id']."'");$runame=mysql_fetch_assoc($una me); $html.='<tr class="odd gradex"><td rowspan="'.$bnyk.'" class="center"><span class="center">'.$a.'</span></td> <td rowspan="'.$bnyk.'" class="center">'.$r2['tanggal_penjualan'].'</td> <td rowspan="'.$bnyk.'" class="center">'.$runame['username'].'</td>'; $b=0;while($r=mysql_fetch_array($qr,mysql_assoc)) {$b++;$h="select * from m_produk where id_produk = '".$r['produk_id']."'";$hr=mysql_query($h); if(mysql_num_rows($hr)>0) {$produk=mysql_fetch_array($hr,mysql_assoc);} Else $produk=array(""); if($b==1) {$html.='<td align="center" style="vertical-align: middle" valign="middle" class="center" rowspan="'.$bnyk.'">'; 54

Segmen Program 4.10. Pembuatan Laporan Penjualan (Sambungan) $stat=mysql_query("select * from m_tracking where id_tracking = '".$r['status']."'"); $rstat=mysql_fetch_array($stat,mysql_assoc); $html.='<span class="label label- '.$rstat['bantuan'].' changebtn">'.$rstat['keterangan'].'<br>'.'</span></t d>'; }$html.='</tr>'; $html2='<div class="col-lg-12"> <table width="100%"><tr><td width="20%"><img align="middle" border="" src="../../themes/images/logo.png" width="96px" ></td><td class="col-md-8" width="80%" style="textalign:right"><span style="font-weight: bold;"><strong>laporan Penjualan</strong></span><br>Generate : '.date('d-m, H:i').'<br>Printed by :'.$_SESSION['usernameadmin'].'<br>Periode : '.$tglawal." s.d. ".$tglakhir.'</td></tr></table></div>'.$html; if(isset($_get['print'])) {include("../../assets/mpdf/mpdf.php"); $mpdf=new mpdf('c','a4','','',10,10,0,0,0,0); $mpdf->setdisplaymode('fullpage'); $mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list $stylesheet = file_get_contents('../bower_components/bootstrap/dis t/css/bootstrap.min.css'); $mpdf->writehtml($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text $mpdf->writehtml($html2); $namafile='jual'.date('ymd His'); $mpdf->output('../laporan/'.$namafile.'.pdf','i'); echo $html; 55

4.4.3.2. Laporan Pengiriman Laporan Pengiriman berguna untuk manager yang ingin melihat kegiatan pengiriman yang dilakukan oleh toko, sehingga tidak terjadi kekeliruan pengiriman kepada customer. Laporan dapat dipilih sesuai dengan tanggal yang diinginkan Query pembuatan laporan pengiriman dapat dilihat pada Segmen 4.11. Sedangkan pembuatan laporan pengiriman dapat dilihat pada Segmen 4.12. Segmen Program 4.11 Laporan Pengiriman $(document).ready(function () { $('#onload').modal('show'); $("#lapstok").load("laporanpengiriman.php", function(data) {$("#lapstok").html(data); $('#onload').modal('hide'); }); jquery("#search").click(function(){ jquery("#onload").modal('show'); $("#lapstok").load("laporanpengiriman.php",{date1: $('#date1').val(),date2: $('#date2').val()}, function(data) {$("#lapstok").html(data); $('#onload').modal('hide'); });}); $(document).on("click", '#print', function() { $('#onload').modal('show');window.open('laporanpengir iman.php?print=yes&date1='+$('#date1').val()+"&date2= "+$('#date2').val(), '_blank', "height=600,width=800,scrollbars=1,location=no,menuba r=no,resizable=1,status=no,toolbar=no"); $('#onload').modal('hide');}); jquery("#date1").datepicker({ enddate: "0d",format: "yyyy-mm-dd", orientation: "bottom auto",autoclose: true, changemonth: true,changeyear: true,}).change().on('changedate', function(selected){ var mindate = new Date(selected.date.valueOf()); $('#date2').datepicker('setstartdate', mindate); }); 56

Segmen Program 4.11 Laporan Pengiriman (Sambungan) jquery( "#date2" ).datepicker({enddate: "0d", format: "yyyy-mm-dd", changemonth: true, changeyear: true, autoclose: true, orientation: "bottom auto", }).on('changedate', function(selected){ var mindate = new Date(selected.date.valueOf()); $('#date1').datepicker('setenddate', mindate); $('#search').focus();});}); Segmen Program 4.12 Pembuatan Laporan Pengiriman <tbody> ;$q2="select * from laporan_pengiriman JOIN laporan_penjualan B ON id_pengiriman=b.pengiriman_id WHERE status >=4 and waktu_kirim >= '".$tglawal."' and waktu_kirim <= '".$tglakhir."' GROUP BY id_pengiriman ";$qr2=mysql_query($q2); $a=0;while($r2=mysql_fetch_array($qr2,mysql_assoc)) {$q="select * from laporan_penjualan where pengiriman_id ='".$r2['id_pengiriman']."'";$qr=mysql_query($q);$b nyk=mysql_num_rows($qr); $b=0;$brg='';while($r=mysql_fetch_array($qr,mysql_a SSOC)){$b++; $h="select * from m_produk where id_produk = '".$r['produk_id']."'";$hr=mysql_query($h); if(mysql_num_rows($hr)>0){$produk=mysql_fetch_array ($hr,mysql_assoc);} else $produk=array(""); $brg.=$produk['nama_produk']."<br>";} $a++;$html.='<tr class="odd gradex"> <td class="center"><span class="center">'.$a.'</span></td> <td class="center">'.$r2['tanggal_penjualan'].' </td><td class="center">'; 57

Segmen Program 4.12 Pembuatan Laporan Pengiriman (Sambungan) $html.="<span data-toggle='popover' data-html='true' data-content='".$brg."' title='list Barang'>".$r2['waktu_kirim']."<BR>"; $stat=mysql_query("select * from m_tracking where id_tracking = '".$r2['status']."'"); $rstat=mysql_fetch_array($stat,mysql_assoc); $html.='<span class="label label- '.$rstat['bantuan'].' changebtn">'.$rstat['keterangan'].'</span></span></td ><td class="center">'; $html.="<span data-toggle='popover' data-html='true' data-content='".$brg."' title='list Barang'>".$r2['waktu_kirim']."<BR>"; $stat=mysql_query("select * from m_tracking where id_tracking = '".$r2['status']."'"); $rstat=mysql_fetch_array($stat,mysql_assoc); $html.='<span class="label label- '.$rstat['bantuan'].' changebtn">'.$rstat['keterangan'].'</span></span></td ><td class="center">'; $tujuan=json_decode(unserialize($r2['tujuan'])); foreach ($tujuan as $key=>$value) if($key=="nama" $key=="alamat" $key=="kota" $key=="propinsi" $key=="zip") $html.=$value."<br>";}$html.='</td> <td class="center" style="textalign:center">'.$r2['service'].'<br>'.$r2['nomor_resi '].'</td><td class="right" style="textalign:right">'.number_format($r2['total_biaya']).'</t d></tr>';$html.='</tbody><script>$("[datatoggle=popover]").popover()</script>';$html2='<div class="col-lg-12"> <table width="100%"><tr><td width="20%"><img align="middle" border="" src="../../themes/images/logo.png" width="96px" ></td><td class="col-md-8" width="80%" style="textalign:right"><span style="font-weight: bold;"><strong>laporan Pengiriman</strong></span><br>Generate : '.date('d-m, H:i').'<br>Printed by :'.$_SESSION['usernameadmin'].'<br>Periode : '.$tglawal." s.d. ".$tglakhir.'</td></tr></table></div>'.$html; 58

Segmen Program 4.12 Pembuatan Laporan Pengiriman (Sambungan) if(isset($_get['print'])){include("../../assets/mpdf/ mpdf.php");$mpdf=new mpdf('c','a4','','',10,10,0,0,0,0); $mpdf->setdisplaymode('fullpage');$mpdf- >list_indent_first_level = 0; $stylesheet = file_get_contents('../bower_components/bootstrap/dist /css/bootstrap.min.css'); $mpdf->writehtml($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text $mpdf->writehtml($html2); $namafile='kirim'.date('ymd His');$mpdf- >Output('../laporan/'.$namafile.'.pdf','I'); 4.4.3.3. Laporan Stok Laporan stok digunakan oleh manager untuk mengetahui berapa jumlah barang yang dimiliki dan siap untuk dijual, perubahan stok terjadi ketika customer melakukan konfirmasi pemesanan. Laporan yang diberikan merupakan laporan terakhir dari stok barang yang ada. Query pembuatan laporan stok dapat dilihat pada Segmen 4.13. Segmen Program 4.13 Laporan Stok $(document).ready(function () { $('#onload').modal('show');$("#lapstok").load("laporanstok.php", function(data){$("#lapstok").html(data);$('#onload').modal('hide') ;});$(document).on("click", '#print', function() {$('#onload').modal('show');window.open('laporanstok.php?print=yes ', '_blank', "height=600,width=800,scrollbars=1,location=no,menubar=no,resizabl e=1,status=no,toolbar=no");$('#onload').modal('hide');});}); 4.4.4. Menu Pending Order Menu pending order digunakan untuk penjualan barang yang lebih dari jumlah stok yang ada. Dengan menu ini, customer tetap dapat melakukan pembelian barang, dengan peringatan bahwa barang tersebut kurang dari jumlah 59

yang diinginkan. Jika admin menambahkan stok barang, maka akan pending order dapat dijalankan untuk pengiriman kepada customer dengan memberikan konfirmasi berupa e-mail kepada customer. Query untuk pending order dapat dilihat pada Segmen 4.14. Konfirmasi e-mail kepada customer dapat dilihat pada Segment 4.15. Segmen Program 4.14. Pending Order $(document).ready(function () { $('#onload').modal('show');$("#lapstok").load("lap_pendingorders.p hp", function(data) {$("#lapstok").html(data); $('#onload').modal('hide'); });$(document).on("click", '.pendingbtn', function() { $('#onload').modal('show');yesno=confirm("barang akan diproses pengemasan dan dikirim?");if(yesno) {$.post("lap_pendingorders.php", {"id":$(this).data("id"),"produk":$(this).data('produk'),"qty":$(t his).data("qty")}, function( data ) {$("#lapstok").load("lap_pendingorders.php", function(data) { $("#lapstok").html(data); $('#onload').modal('hide'); }); });}$("#lapstok").load("lap_pendingorders.php", function(data) {$("#lapstok").html(data); $('#onload').modal('hide'); });});}); Segmen Program 4.15. Konfirmasi E-mail Pending Order if(isset($_post['id'])){$q="select * from pesan_produk JOIN m_produk B ON produk_id=b.id_produk where id_pemesanan ='".$_POST['id']."'"; $qr=mysql_query($q);if($r=mysql_fetch_array($qr,mysql_assoc)) {$minta=$r['jumlah_pesanan'];$user=$r['user_id']; $stokskrg=$r['jumlah_produk'];$namabarang=$r['nama_produk']; $q2="select * from m_user where id_user='".$user."'"; $qr2=mysql_query($q2);$r2=mysql_fetch_assoc($qr2); $nama=$r2['nama_user']; $email=$r2['email_user']; $to=$email;$subject="pesanan ".$namabarang." telah dalam pengemasan"; 60

Segmen Program 4.15. Konfirmasi E-mail Pending Order (Sambungan) $html="halo ".$nama.",<br>"; $html.="pesanan Anda ".$namabarang." telah siap dikirim. Kami akan segera mengirim pemesanan Anda."; $html.="<br>demikian informasi yang dapat kami berikan untuk status pembayaran Anda. Semoga informasi ini bermanfaat.<br><br>www.karuniakomputer.com"; $message=$html; $headers = 'MIME-Version: 1.0'. "\r\n"; $headers.= 'Content-type: text/html; charset=iso-8859-1'. "\r\n"; $headers.= 'To: '.$nama.' <'.$email.'>'. "\r\n"; $headers.= 'From: Karunia Komputer <no-reply@yahoo.co.id>'. "\r\n"; mail($to, $subject, $message, $headers); mysql_query("delete from pesan_produk where id_pemesanan='".$_post['id']."' and produk_id='".$_post['produk']."'"); mysql_query("update m_produk SET jumlah_produk='".($stokskrg- $_POST['qty'])."' where id_produk='".$_post['produk']."'");}} 4.4.5. Perubahan Status Penjualan Dalam setiap pembelian oleh customer, terdapat kondisi bahwa barang tersebut masuk ke dalam pemesanan. Ketika pemesanan dilakukan lebih dari dua hari dan tidak ada konfirmasi pembayaran, maka pemesanan yang dilakukan akan dibatalkan atau dianggap kadaluarsa. Query untuk perubahan status pemesanan dapat dilihat pada Segmen 4.16. Segmen Program 4.16. Perubahan Status Pemesanan. $date=date('y-m-d H:i:s',strtotime('-2 day',strtotime(date('d-m-y H:i:s')))); $q="update laporan_penjualan set Status = '6' where tanggal_penjualan <= '".$date."' and Status = '1'"; mysql_query($q); 61

4.4.6. Pengoptimasian Website Dalam penambahan rating untuk pencarian kata kunci di google/search engine, maka dilakukan penambahan meta yang berguna sebagai pencarian. Penambahan meta dilakukan sesuai dengan kata kunci barang yang dijual atau kata-kata yang berkaitan dengan toko tersebut. Dengan demikian ketika customer melakukan pencarian, maka rating website dapat muncul di bagian utama. Penambahan meta website dapat dilihat pada Segmen 4.17. Segmen Program 4.17. Penambahan Meta untuk SEO <meta charset="utf-8"> <title>karunia Komputer</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="karunia Komputer adalah sebuah perusahaan yang menjual aksesories komputer di kota salatiga dengan harga yang kompetitif"> <meta name="keywords" content="aksesories komputer,karunia komputer,komputer salatiga,aksesories salatiga,toko aksesories komputer,karunia salatiga,aksesories karunia,kabel LAN,mouse,keyboard,cartridge,cooling fan,aksesoris komputer salatiga"> <meta name="author" content="aksesories karunia komputer"> <meta name="robots" content="index,follow" /> <meta name="googlebot" content="index,follow" /> <meta name="msnbot" content="index,follow" /> <link href='http://www.karuniakomputer.hol.es' rel='alternate' title='rss Feeds' type='application/atom+xml'/> Selain dengan penggunaan meta dalam sebuah website, dapat dilakukan juga natural listing dengan mendaftarkan website pada search engine untuk 62

diindex dalam database search engine tersebut. Pendaftaran dapat dilihat pada Gambar 4.2. Gambar 4.2. Pendaftaran Natural Listing pada Google Setelah melakukan natural listing dan penambahan meta pada website, diperlukan juga penggunaan HTML5 dalam pembuatan website. Hal ini akan menunjang isi dari website sehingga sesuai dengan keywords atau kata pencarian yang dilakukan oleh customer/user pada search engine. 63