• Tidak ada hasil yang ditemukan

4. IMPLEMENTASI SISTEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "4. IMPLEMENTASI SISTEM"

Copied!
24
0
0

Teks penuh

(1)

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

(2)

41

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)

Menu

Prosedur

Segmen

Program

Proses

1

Proses

Pembayaran

Login/Pemilihan

barang/Atur

Pengiriman/Metode

Pembayaran

Login.php

Payment.php

4.6

4.16

Proses

2

Proses

Laporan

Login/Laporan

Login.php

Lap_jual.php

Lap_kirim.php

Lap_stok.php

Laporanpenjualan.php

Laporanpengiriman.php

Laporanstok.php

4.9

4.10

4.11

4.12

4.13

Proses

3

Proses

Pembelian

Login/Pemilihan barang

cart/Atur

Pengiriman/

Pemilihan

Metode

Pembayaran/Konfirmasi

Email

Login.php

Products.php

Product_summary.php

Confirm_purchase.php

Payment.php

Kelola_jual.php

4.3

4.4

4.5

4.7

4.8

4.14

4.15

<?php $connect = mysql_connect("localhost","root",'') or die("cannot connect"); $selectdata = mysql_select_db("karunia_komputer"); ?>

(3)

42

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.

Segmen Program 4.2. Pengecekan Login

<?php

include "header.php";

if(!isset($_SESSION['iduser'])) {if(isset($_POST['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>";} } else

(4)

43

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_kategori

Daftar sub-kategori

Daftar_sub_kategori

Daftar user

Daftar_user

Daftar Testimoni

Daftar_testimoni

Pembelian

Daftar Cart

Daftar_cart

Daftar Wishlist

Daftar_wishlist

Daftar Pembayaran

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

Keterangan

(5)

Tabel 4.3. Menu Master (Sambungan)

Sub Menu

Keterangan

Daftar Kategori

Menambah, mengubah dan menghapus data

kategori

Daftar Sub-Kategori

Menambah, mengubah dan menghapus data

sub-kategori

Daftar User

Menambah dan menghapus data user

Daftar Testimoni

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

Keterangan

Daftar Cart

Menambah, mengubah dan menghapus data produk

yang ada dalam cart

Daftar Wishlist

Menambah, mengubah, dan menghapus data produk

yang ada dalam wishlist user.

Daftar Pembayaran

Menambah dan mengubah data pesanan yang dilakukan

oleh user.

(6)

45

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

(7)

Segmen Program 4.3. Pemilihan Produk

if(isset($_GET['cmd'])) {if($_GET['cmd']=="clear")

{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);}

(8)

47

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>

(9)

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-www-form-urlencoded","key: c24896ea63f841b6c369bda084a83279" ),));

(10)

49

Segmen Program 4.5. Pemilihan Pengiriman (Sambungan)

Segmen Program 4.6. Pemilihan Jenis Pembayaran

$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>>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++; }?> <?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')";

(11)

Segmen Program 4.7. Pengiriman e-mail penjualan

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

$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

<no-reply@karuniakomputer.hol.es>' . "\r\n";mail($to, $subject, $message, $headers);

(12)

51

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(total-lharga+quantity*harga,0); document.getElementById("berat").innerHTML=formatNumber(bb-parseFloat(lberat)+quantity*berat,2); document.getElementById("totalberat").innerHTML=formatNumber(bb-parseFloat(lberat)+quantity*berat,2); document.getElementById("finalprice").innerHTML=formatNumber(docum ent.getElementById("total").innerHTML,0);

(13)

Segmen Program 4.8 . Perhitungan penjualan barang (Sambungan)

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

Keterangan

Laporan Penjualan

Digunakan untuk melihat laporan penjualan pada tanggal

tertentu

Laporan

Pengiriman

Digunakan untuk melihat laporan pengiriman penjualan

Laporan Stok

Digunakan untuk melihat laporan jumlah stok yang

dimiliki

$('.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();}

(14)

53

Universitas Kristen Petra

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());

$('#date1').datepicker('setEndDate', minDate); $('#search').focus();

(15)

Segmen Program 4.9 Laporan Penjualan (Sambungan)

Segmen Program 4.10. Pembuatan Laporan Penjualan

$('#date1').datepicker('setEndDate', minDate); $('#search').focus();});});

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

(16)

55

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="text-align:right"><span style="font-weight: bold;"><strong>Laporan Penjualan</strong></span><br>Generate : '.date('d-M, H:i').'<br>Printed by :'.$_SESSION['username-admin'].'<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;

(17)

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

(18)

57

Segmen Program 4.11 Laporan Pengiriman (Sambungan)

Segmen Program 4.12 Pembuatan Laporan Pengiriman

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();});});

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

(19)

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="text-align:center">'.$r2['service'].'<br>'.$r2['nomor_resi '].'</td><td class="right" style="text-align:right">'.number_format($r2['total_biaya']).'</t d></tr>';$html.='</tbody><script>$("[data-toggle=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="text-align:right"><span style="font-weight:

bold;"><strong>Laporan

Pengiriman</strong></span><br>Generate : '.date('d-M, H:i').'<br>Printed by

(20)

59

Segmen Program 4.12 Pembuatan Laporan Pengiriman (Sambungan)

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

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

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'); $(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');});});

(21)

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

Segmen Program 4.15. Konfirmasi E-mail 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'); });});});

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'];

(22)

61

Segmen Program 4.15. Konfirmasi E-mail Pending Order (Sambungan)

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.

$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']."'");}}

$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);

(23)

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

Selain dengan penggunaan meta dalam sebuah website, dapat dilakukan

juga natural listing dengan mendaftarkan website pada search engine untuk

<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'

(24)

63

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.

Gambar

Gambar 4.1. Connect XAMPP Server
Tabel 4.1. Hubungan Proses DFD dengan Segmen Program  Proses Data
Tabel 4.2. Tabel Menu
Tabel 4.3. Menu Master (Sambungan)
+4

Referensi

Dokumen terkait

Sebagai pedoman bagi pihak PUSTIPANDA dalam melaksanakan trouble shooting.. internet di

Reputasi KAP berpengaruh terhadap audit delay karena dalam proses audit reputasi KAP sangatlah penting untuk memberikan kinerjanya sebagai auditor independen, sebab KAP

Hasil penelitian Jonnalagadda dkk (1996) konsumsi tinggi asam lemak jenuh akan meningkatkan kadar kolesterol plasma, diperkirakan setiap penambahan asam lemak jenuh 1% dari

Dalam bidang kajian ekonomi Islam, Fakultas Ekonomi dan Bisnis Islam IAIN Sumatera Utara memberikan bantuan penelitian kepada dosen/tenaga pengajar untuk melakukan

psoriasis muncul setelah usia 40 tahun Angka kejadian tipe I ini dikatakan.. lebih dari 75% dan memiliki gejala yang lebih berat

Atas penghasilan yang diterima atau diperoleh Wajib Pajak dalam negeri dan bentuk usaha tetap.. dari usaha di bidang jasa konstruksi, dikenakan Pajak Penghasilan berdasarkan

pandangan tentang mengapa kremasi masih susah untuk diterima sebagai ritual paniadaan. jenazah oleh keluarga jemaat yang

Tinjauan Terhadap Kemampuan Berbahasa Indonesia Tulis Mahasiswa Program S1 PGSD (Studi Kasus Penyusunan Laporan Hasil Perbaikan Pembelajaran Mata Kuliah Pemantapan