Pemrograman Web 2
1Membuat Aplikasi Jual-Beli
Pada mata kuliah Pemrograman Web 2, akan fokus pada proses pembuatan aplikasi berbasis web
yang lengkap baik dari sisi fungsi/fitur aplikasi serta
user interface
yang rapi dan responsif.
Pada modul ini akan digunakan Bootstrap 3.3.7 sebagai fondasi pembuatan
user interface
, PHP 5
dan database MySQL untuk pengelolaan
back end
.
Bahan bisa diunduh pada tautan:
https://goo.gl/a6R7Z4
. Ekstrak file bahan tersebut di dalam
folder htdocs server anda. Perhatikan struktur filenya seperti pada gambar berikut.
Struktur File Bootstrap
Basic Template
Buat sebuah file, beri nama
index.phpdan isikan dengan struktur dasar halaman web seperti
berikut.
<!DOCTYPE html> <html lang="en"> <head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ContoAplikasi</title> <!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet"> <style>
body {
padding-top: 50px; }
</style>
<script src="js/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> </head>
<body>
<!-- konten web tampil di sini -->
</body> </html>
Membuat Navigasi
Navigasi diperlukan untuk memudahkan perpindahan antar halaman. Navigasi harus mudah
dilihat dan mudah dikenali. Tambahkan skrip berikut setelah tag
<body>.
<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-fixed-top"> <div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span> </button>
<a class="navbar-brand" href="./">ContohAplikasi</a> </div>
<div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav">
<li><a href="./">Home</a></li>
<li><a href="index.php?hlm=jual">Transaksi Jual</a></li> <li><a href="index.php?hlm=beli">Transaksi Beli</a></li> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Laporan <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="index.php?hlm=laporan_barang">Laporan Stok Barang</a></li>
<li><a href="index.php?hlm=laporan_jual">Laporan Penjualan</a></li>
</ul> </li>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Data class="navbar-link">Administrator</a> | <a href="index.php?hlm=logout" class="navbar-link">Logout</a>
</p>
</div><!--/.nav-collapse --> </div>
</nav>
Tambahkan skrip berikut setelah
</nav>agar dapat menampilkan halaman secara dinamis
mengikuti tautan yang di-klik.
<div class="container"> <?php
if(isset( $_REQUEST['hlm'] )){ switch( $_REQUEST['hlm'] ){
case 'jual':
echo 'transaksi penjualan tampil di sini'; break;
case 'beli':
echo 'transaksi beli dari supplier'; break;
case 'barang':
echo 'master barang dagangan'; break;
case 'supplier':
echo 'halaman manajemen data supplier'; break;
case 'user':
echo 'halaman manajemen user'; break;
case 'laporan_barang':
echo 'laporan stok barang sisa'; break;
case 'laporan_jual':
echo 'laporan penjualan harian'; break;
default:
echo '<b>Error 404</b><br>Halaman tidak ditemukan!'; }
} else {
echo '<h1>Selamat Datang Admin !</h1>'; }
Membuat Database
Pembuatan database dapat dilakukan menggunakan phpMyAdmin, baik secara visual maupun
menggunakan skrip SQL seperti berikut.
CREATE DATABASE contoh; USE contoh;
CREATE TABLE IF NOT EXISTS `barang` ( `barcode` varchar(20) NOT NULL, `nama` varchar(30) NOT NULL, `harga_beli` double NOT NULL, `harga_jual` double NOT NULL, `stok` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Membuat Koneksi ke Database
Beri nama
koneksi.php.
<?php
$host = "localhost"; //alamat server database
$user = "root"; //username dg akses ke database $pass = ""; //password utk akses ke database $db = "contoh"; //nama database yg diakses mysql_connect($host,$user,$pass);
mysql_select_db($db); ?>
Tambahkan baris berikut pada awal file
index.phpagar halaman tersebut dapat terhubung pada
database.
<?php
CRUD Data Master
Berikutnya adalah membuat fungsi CRUD (Create, Retrieve, Update, Delete) untuk data
master/induk seperti data Barang dan Supplier.
Halaman View Barang
Buat sebuah file baru, beri nama
barang.php, dan kemudian ketikkan skrip berikut:
<?php
if(isset($_REQUEST['sub'])){ switch($_REQUEST['sub']){ case 'tambah':
include 'barang-tambah.php'; break;
case 'edit':
include 'barang-edit.php'; break;
default:
echo 'Error 404; Anda mencari halaman imajinasi ya?!'; }
} else {
//tabel daftar barang ditampilkan di sini
} ?>
Tabel Daftar Barang
<div class="col-md-12"><div class="page-header"> <h2>Daftar Barang</h2> </div>
<table class="table table-bordered"> <thead>
<tr>
<th>#</th> <th>Barcode</th> <th>Nama Barang</th> <th>Harga Beli</th> <th>Harga Jual</th> <th>Stok</th> <th>
<?php
echo '<a href="index.php?hlm=barang&sub=tambah" class="btn btn-sm btn-primary"><span class="glyphicon glyphicon-plus-sign"
aria-hidden="true"></span> Tambah Data</a>'; ?>
</th> </tr> </thead> <tbody> <?php
if( mysql_num_rows($sql) > 0 ){ $no = 1;
while( $hsl = mysql_fetch_array($sql) ){ echo '<tr>';
echo '<td><div class="btn-group btn-group-sm" role="group">'; echo '<a
href="index.php?hlm=barang&sub=edit&barcode='.$hsl['barcode'].'" class="btn btn-default"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Edit</a>';
echo '<a href="" class="btn btn-danger btn-hapus" data-id="'.$hsl['barcode'].'"><span class="glyphicon glyphicon-trash"
aria-echo '<tr><td colspan="6"><em>Belum ada untuk ditampilkan!</em></td></tr>';
Tambahkan setelah tampilan tabel barang, dan tambahkan librari
sweetalert.js
agar berfungsi
dengan baik.
.then(function(){
window.location.href = 'barang-hapus.php?barcode='+kdBarcode; });
} else {
swal("Dibatalkan", "Data barang aman tersimpan :)", "error"); }
Buat file baru dan beri nama
barang-tambah.php. File ini memiliki 2 (dua) fungsi yaitu: untuk
menampilkan form input data barang dan fungsi untuk menyimpan data barang.
<?php
if(isset($_REQUEST['submit'])){
//simpan
$barcode = $_POST['barcode']; $nama = $_POST['nama'];
$hargabeli = $_POST['hargabeli']; $hargajual = $_POST['hargajual']; $stok = $_POST['stok'];
$sql = mysql_query("INSERT INTO barang
VALUES('$barcode','$nama','$hargabeli','$hargajual','$stok')"); if($sql){
header('Location: index.php?hlm=barang'); } else {
echo '<em>Ada yang error dengan query! Periksa kembali.</em>'; }
} else {
//tampilkan form input
?>
<div class="col-md-6"> <div class="page-header"> <h2>Form Input Barang</h2> </div>
<form class="form-horizontal" method="post" action=""> <div class="form-group">
<label for="inputBarcode" class="col-sm-3 control-label">Barcode</label>
<div class="col-sm-9">
<input type="text" name="barcode" class="form-control" id="inputBarcode" placeholder="Barcode" required autofocus>
</div> </div>
<div class="form-group">
<label for="inputNama" class="col-sm-3 control-label">Nama Barang</label>
<div class="col-sm-9">
<input type="text" name="nama" class="form-control" id="inputNama" placeholder="Nama Barang">
<div class="form-group">
<label for="inputHargaBeli" class="col-sm-3 control-label">Harga Beli</label>
<div class="col-sm-9">
<input type="number" min="0" name="hargabeli" class="form-control" id="inputHargaBeli" placeholder="Harga Beli">
</div>
<input type="number" min="0" name="hargajual" class="form-control" id="inputHargaJual" placeholder="Harga Jual">
</div>
<input type="number" min="0" name="stok" class="form-control" id="inputStok" placeholder="Stok Awal">
</div> </div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-9">
<button type="submit" name="submit" class="btn btn-primary">Simpan</button>
<button type="reset" class="btn btn-danger">Batal</button>
<a href="index.php?hlm=barang" class="btn btn-link" role="button">Kembali ke Halaman Barang</a>
</div>
Buat file baru, beri nama
barang-edit.php. Pada file ini terdapat 2 (dua) fungsi utama yaitu:
menampilkan data yang akan di-edit ke dalam form dan fungsi untuk memperbarui data pada
tabel barang.
$sql = mysql_query("UPDATE barang SET
nama='$nama',harga_beli='$hargabeli',harga_jual='$hargajual',stok='$stok' WHERE barcode='$barcode'");
if($sql){
header('Location: index.php?hlm=barang'); } else {
echo '<em>Ada yang error dengan query! Periksa kembali.</em>'; }
} else {
//tampilkan data yang edit pada form
$barcode = $_REQUEST['barcode'];
$sql = mysql_query("SELECT * FROM barang WHERE barcode='$barcode'"); $hsl = mysql_fetch_array($sql);
?>
<div class="col-md-6"> <div class="page-header"> <h2>Form Edit Barang</h2> </div>
<form class="form-horizontal" method="post" action=""> <div class="form-group">
<label for="inputBarcode" class="col-sm-3 control-label">Barcode</label>
<div class="col-sm-9">
<input type="text" name="barcode" class="form-control" id="inputBarcode" placeholder="Barcode" readonly value="<?=$hsl['barcode']; ?>">
</div> </div>
<div class="form-group">
<label for="inputNama" class="col-sm-3 control-label">Nama Barang</label>
<div class="col-sm-9">
<input type="text" name="nama" class="form-control" id="inputNama" placeholder="Nama Barang" value="<?=$hsl['nama']; ?>">
</div>
<input type="number" min="0" name="hargabeli" class="form-control" id="inputHargaBeli" placeholder="Harga Beli"
value="<?=$hsl['harga_beli']; ?>">
<input type="number" min="0" name="hargajual" class="form-control" id="inputHargaJual" placeholder="Harga Jual"
<input type="number" min="0" name="stok" class="form-control" id="inputStok" placeholder="Stok Awal" value="<?=$hsl['stok']; ?>">
</div> </div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-9">
<button type="submit" name="submit" class="btn btn-primary">Simpan</button>
<a href="index.php?hlm=barang" class="btn btn-link" role="button">Kembali ke Halaman Barang</a>
</div> </div>
</form> </div>
<?php } ?>
Fungsi Hapus Data Barang
Buat file baru dan beri nama
barang-hapus.php. File ini dipanggil melalui fungsi ajax pada
halaman
barang.php.
<?php
include 'koneksi.php';
$barcode = $_REQUEST['barcode'];
$sql = mysql_query("DELETE FROM barang WHERE barcode='$barcode'"); if($sql){
header('Location: index.php?hlm=barang'); } else {
echo 'ada yang salah dengan query!'; }
?>
Tugas
Buatlah tabel
supplier
pada database dengan ketentuan sebagai berikut dan buatlah fungsi
CRUD-nya.
Nama Database : contoh
Nama tabel
: supplier
idsupplier
INT(2) auto_increment primary key
supplier
varchar(30)
Transaksi Penjualan
Berikutnya adalah halaman untuk memproses transaksi penjualan. Sebagai catatan, transaksi yang
terjadi adalah transaksi tunai.
Tabel Transaksi Penjualan
Untuk keperluan menyimpan data transaksi penjualan, diperlukan 2 (dua) buah tabel dengan
ketentuan sebagai berikut:
Nama Database
: contoh
Nama Tabel
: penjualan
idjual
varchar(10) primary key
tanggal
datetime
total
double
bayar
double
kembali
double
Nama Tabel
: penjualan_detil
idjual
varchar(10) primary key
barcode
varchar(20) primary key
harga
double
qty
int(3)
subtotal
double
Session
Disini diberikan contoh penggunaan
variabel session
untuk menampung data transaksi. Variabel
tersebut hanya dapat diakses jika halaman web menerapkan fungsi
session_start()
. Untuk itu,
tambahkan pada halaman index.php, letakkan sebelum memanggil koneksi database.
<?php
session_start();
include 'koneksi.php'; ?>
Membuat Halaman Transaksi Penjualan
<div class="page-header"> <h1>Transaksi Penjualan</h1> </div>
<div class="row">
<form method="POST" action="">
<div class="form-group form-group-sm col-sm-2"> <div class="input-group">
<input name="barcode" type="text" class="form-control input-sm" placeholder="Barcode" required>
<div class="form-group form-group-sm col-sm-3">
<input name="namabarang" type="text" class="form-control input-sm" placeholder="Nama Barang" readonly>
</div>
<div class="form-group form-group-sm col-sm-2">
<input name="harga" type="text" class="form-control input-sm" placeholder="Harga" readonly>
</div>
<div class="form-group form-group-sm col-sm-1">
<input name="qty" type="text" class="form-control input-sm" size="4" placeholder="Qty" required>
</div>
<div class="form-group form-group-sm col-sm-2">
<input name="subtotal" type="text" class="form-control input-sm" placeholder="Subtotal" readonly>
</div>
<div class="col-sm-2 form-group form-group-sm">
<button name="aksi" value="tambah" type="submit" class="btn sm btn-success btn-block">Tambahkan!</button>
</div> </form> </div>
Berikutnya tambahkan skrip untuk memasukkan data penjualan ke dalam variabel session dan
menampilkannya dalam tabel.
<?php
$_SESSION["arrayJualan"] = $itemJualan;
if(isset($_SESSION["arrayJualan"])){ $no = 1;
echo '<tr class="info"><td colspan="5" class="text-right"><strong>T O T A L</strong></td><td class="text-right">'.$total.'</td></tr>';
echo '<tr><td colspan="6" class="text-right">
<a href="#" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#modalJualan">Bayar</a>
</td></tr>'; } else {
?> <tr>
<td colspan="6"><em>Belum ada barang.</em></td> </tr>
<?php } ?> </tbody> </table>
Hasilnya akan berbentuk seperti berikut:
Kemudian, tambahkan modal untuk menampilkan form pembayaran. Pada skrip berikut juga
ditambahkan fungsi penomoran otomatis untuk nomor transaksi.
<?php
//nomor transaksi otomatis
$cek = mysql_query("SELECT idjual FROM penjualan WHERE DATE(tanggal)=CURDATE() ORDER BY idjual DESC");
if( mysql_num_rows($cek) > 0 ){
list($idjual) = mysql_fetch_array($cek); $nomor = substr($idjual,6,4);
$temp = $nomor + 1;
$idjual = date("ymd").sprintf("%04s",$temp); } else {
$idjual = date("ymd").'0001'; }
?>
<div id="modalJualan" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Pembayaran</h4> </div>
<!-- #bayar -->
<form id="bayar" class="form-horizontal" method="post" action="jual-aksi.php">
<div class="modal-body"> <div class="form-group">
<input type="text" class="form-control" name="idjual" value="<?=$idjual; ?>" readonly>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">Total Belanja</label> <div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon">Rp.</span>
<input type="text" class="form-control" name="total" value="<?=$total; ?>" readonly>
</div> </div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">Jumlah Bayar</label> <div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon">Rp.</span>
<input type="text" class="form-control" name="jmlbayar" placeholder="Jumlah Bayar">
</div> </div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">Kembali</label> <div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon">Rp.</span>
<input type="text" class="form-control" name="kembalian" placeholder="Kembalian" readonly>
</div> </div> </div> </div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" name="aksi" value="bayar" class="btn btn-primary btn-simpan">Simpan</button>
</div>
Form Pembayaran
Berikutnya adalah menambahkan skrip JavaScript (jQuery) untuk fungsi-fungsi dalam form.
<script>
$('input[name=barcode]').focus(); function cariBarcode(b){
var barcode = b;
var dataPost = 'aksi=cari&barcode='+barcode; $.ajax({
type: 'POST',
url: 'jual-aksi.php', data: dataPost, dataType: 'json',
success: function(hasil){ var namabarang = hasil[0]; var harga = hasil[1];
$('input[name=namabarang]').val(namabarang); $('input[name=harga]').val(harga);
$('input[name=qty]').focus(); }
}); }
$('input[name=barcode]').keypress(function(e) { if(e.which == 13) {
var barcode = $('input[name=barcode]').val(); cariBarcode(barcode);
$('input[name=qty]').focus(); }
return false; });
$('#btn-cari').click(function(){
var barcode = $('input[name=barcode]').val(); cariBarcode(barcode);
return false; });
$('input[name=qty]').keypress(function(e) { if(e.which == 13) {
$('input[name=barcode]').focus(); }
});
$('input[name=qty]').keypress(function(e) {
var subTotal = $('input[name=harga]').val() * $('input[name=qty]').val(); $('input[name=subtotal]').val(subTotal);
$('.btn-tambah').focus(); });
$('.btn-tambah').click(function(){ $('input[name=barcode]').focus(); });
$('#modalJualan').on('shown.bs.modal', function (e) { $('input[name=jmlbayar]').focus();
});
$('input[name=jmlbayar]').focusout(function() {
var kembalian = $('input[name=jmlbayar]').val() - $('input[name=total]').val(); $('input[name=kembalian]').val(kembalian);
$('.btn-simpan').focus(); });
</script>
Fungsi Cari Data Barang dan Simpan Transaksi
Untuk mempermudah pengguna dalam input transaksi, pengguna cukup memasukkan
barcode
dari barang, tekan
[Enter]
pada keyboard atau dengan klik ikon kaca-pembesar , maka
nama
barang
dan
harga jual
akan ditampilkan pada form.
Fungsi
cariBarcode
dipanggil menggunakan JavaScript berdasarkan
event
klik pada tombol cari
(ikon kaca pembesar) atau menekan tombol
[Enter]
setelah memasukkan barcode.
Selain itu, diperlukan juga skrip untuk memproses pembayaran dan menyimpan semua data
transaksi ke dalam tabel yang sesuai.
Untuk itu, buatlah sebuah file baru dengan nama
jual-aksi.phpdan tambahkan skrip berikut:
<?php
session_start(); include "koneksi.php";
if(isset($_REQUEST['aksi'])){ switch($_REQUEST['aksi']){ case 'cari':
$barcode = $_REQUEST['barcode'];
$row = mysql_query("SELECT nama,harga_jual FROM barang WHERE barcode='$barcode'");
echo json_encode($array); break;
case 'bayar':
//simpan ke penjualan
$idjual = $_REQUEST['idjual']; $total = $_REQUEST['total']; $jmlbayar = $_REQUEST['jmlbayar']; $kembalian = $_REQUEST['kembalian']; $sql = mysql_query("INSERT INTO penjualan
VALUES('$idjual',NOW(),'$total','$jmlbayar','$kembalian')");
//simpan ke penjualan_detil
$itemJualan = $_SESSION['arrayJualan'];
foreach ($itemJualan as $key => $value) {
list($barcode,$namabarang,$harga,$qty,$subtotal) = $value; mysql_query("INSERT INTO penjualan_detil
VALUES('$idjual','$barcode','$harga','$qty','$subtotal')"); mysql_query("UPDATE barang SET stok=stok-$qty WHERE barcode='$barcode'");
}
//kembali ke halaman transaksi unset($_SESSION['arrayJualan']);
header('Location: index.php?hlm=jual'); break;
} } ?>
Tugas
Buatlah tabel transaksi pembelian dengan ketentuan sebagai berikut dan buatlah halaman
transaksi pembeliannya. Perlu diperhatikan, jika ada pembelian maka stok barang akan bertambah
sesuai dengan jumlah (
qty
) yang dibeli.
Nama Database
: contoh
Nama Tabel
: pembelian
nofaktur
varchar(10) primary key
tanggal
date
idsupplier
int(3)
total
double
bayar
double
Nama Tabel
: pembelian_detil
nofaktur
varchar(10) primary key
barcode
varchar(20) primary key
harga
double
qty
int(3)
Laporan Penjualan
Laporan dibuat dengan tujuan memberikan informasi spesifik yang diperlukan untuk pengambilan
keputusan. Berikut diberikan contoh pembuatan Laporan Penjualan.
Pertama, edit terlebih dahulu file
index.php
, ubah menjadi seperti berikut dan simpan kembali.
case 'laporan_jual':
include 'laporan-jual.php';
break;
Berikutnya, buatlah sebuah file baru dan beri nama
laporan-jual.php
dan tambahkan
skrip-skrip berikut ke dalamnya secara berurutan.
Konversi Nama Bulan
Untuk mempermudah pengguna, bulan (kalender) yang dalam PHP ditampilkan dengan format
angka atau nama dalam bahasa Inggris, perlu dilakukan sedikit perubahan ke dalam bahasa
Indonesia.
Tambahkan
array
nama-nama bulan dalam bahasa Indonesia seperti berikut ini.
<?php
$arrBulan = array( 1=>'Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember' );
?>
Membuat Filter
Untuk membuatnya tambahkan skrip berikut.
<div class="page-header"> <h1>Laporan Penjualan</h1> </div>
<div class="col-md-6 well hidden-print">
<form class="form-horizontal" method="post" action=""> <div class="form-group">
<label class="col-sm-5 control-label">Periode Bulan/Tahun</label> <div class="col-sm-4">
<select class="form-control" name="bln"> <?php
$sql = mysql_query("SELECT DISTINCT MONTH(tanggal) AS bln FROM penjualan ORDER BY MONTH(tanggal)");
while($bln = mysql_fetch_array($sql)){ penjualan ORDER BY YEAR(tanggal) DESC");
while($hsl = mysql_fetch_array($sql)){
<label class="col-sm-5 control-label">Barang ditampilkan</label> <div class="col-sm-4">
<button type="submit" name="submit" class="btn primary btn-block"><i class="fa fa-file-o" aria-hidden="true"></i> Tampilkan</button> </div>
<div class="col-sm-2">
<a href="javascript:window.print()" class="btn default btn-block"><i class="fa fa-print" aria-hidden="true"></i></a>
</div> </form> </div>
Menampilkan Laporan
Dan langkah selanjutnya adalah menambahkan skrip untuk menampilkan laporan saat tombol
[Tampilkan] di-klik.
<?php
//tampilkan laporan
if(isset($_REQUEST['submit'])){ $bulan = $_REQUEST['bln']; $tahun = $_REQUEST['thn']; $sort = $_REQUEST['sort']; $jml = $_REQUEST['jml'];
$tb = $tahun.$bulan;
$q = "SELECT
d.barcode, b.nama, SUM(d.qty) AS qty, b.stok FROM
penjualan p, penjualan_detil d, barang b WHERE
EXTRACT(YEAR_MONTH FROM tanggal) = '$tb' AND d.idjual = p.idjual AND
d.barcode = b.barcode GROUP BY d.barcode ORDER BY qty $sort LIMIT $jml";
$sql = mysql_query($q);
echo '<div class="row"><div class="col-xs-2"><strong>Bulan:</strong> '.$arrBulan[$bulan].'</div>';
echo '<div class="col-xs-10"><strong>Tahun:</strong> '.$tahun.'</div></div>'; echo '<table class="table table-bordered">';
echo '<thead><tr><th>#</th><th>Barcode</th><th>Nama Barang</th><th class="info">Qty Terjual</th><th>Qty in stock</td></tr></thead>'; if(mysql_num_rows($sql)>0){
$no = 1;
while(list($barcode,$nmbarang,$qty,$stok) = mysql_fetch_array($sql)){ echo '<tr><td>'.$no.'</td>';
echo '<td>'.$barcode.'</td>'; echo '<td>'.$nmbarang.'</td>';
echo '<td class="info">'.$qty.'</td>'; echo '<td>'.$stok.'</td></tr>';
$no++; }
}
echo '</table>'; }