• Tidak ada hasil yang ditemukan

4. IMPLEMENTASI SISTEM

N/A
N/A
Protected

Academic year: 2022

Membagikan "4. IMPLEMENTASI SISTEM"

Copied!
19
0
0

Teks penuh

(1)

4. IMPLEMENTASI SISTEM

4.1 Koneksi Web dan Database

Koneksi database diperlukan agar aplikasi atau web dapat terhubung dengan database. Source code koneksi database berada di dalam file bernama “db- config.php” yang disimpan didalam folder “config”. Source code untuk koneksi dengan database dapat dilihat pada Segmen Program 4.1.

Segmen Program 4.1 Source code koneksi web dan database

<?php

$db_servername = "127.0.0.1";

$db_username = "root";

$db_password = "";

$db_name = "pelangi";

$conn = new mysqli($db_servername, $db_username, $db_password, $db_name);

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

}

?>

Perintah new mysqli digunakan untuk membuat koneksi baru, db_name menunjukkan variabel yang menyimpan nama database yang akan dikoneksikan dengan aplikasi atau web.

4.2 Implementasi Program

Pada setiap halaman program diawali dengan source code untuk menghubungkan web dengan database. Source code untuk menghubungkan database dan program dalam dilihat pada Segmen Program 4.2

Segmen Program 4.2 Source code penghubung database dan program

<?php

require '../config/db-config.php';

session_start();

include 'sidebarbelibarang.php';

?>

(2)

4.2.1 Hak Akses Login

Menu Login digunakan untuk membedakan user yang satu dengan user yang lain, menu login pada aplikasi ini terdapat dalam dua halaman login, halaman yang pertama digunakan untuk login sebagai customer, sedangkan halaman login yang kedua digunakan untuk membedakan hak akses Admin dan Karyawan. Source code login untuk customer dan admin bisa dilihat pada Segmen Program 4.3 dan 4.4

Segmen Program 4.3 Source code cek Login Customer

<?php

if ($_SERVER["REQUEST_METHOD"] == "POST") { $email_post = $_POST["email"];

$pass_word_post = $_POST["pass_word"];

$servername = "127.0.0.1";

$username = "root";

$password = "";

$dbname = "pelangi";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

}

$sql = "SELECT * FROM users where email = '$email_post' AND pass_word = '$pass_word_post' ";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) { $_SESSION["id"]=$row["user_id"];

$_SESSION["isLoggedIn"] = TRUE;

$_SESSION["nama"] = $row["nama"];

echo "Halo ".$row["nama"]." ".$row["email"]."

".$row["pass_word"];

header("Location:home.php");

} } else {

echo "<script>alert('Email / Password salah')</script>";

//"0 results";

}

$conn->close();

}

?>

(3)

Segmen Program 4.4 Source code cek Login Admin

<?php

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$email_post = $_POST["email"];

$pass_word_post = $_POST["pass_word"];

$servername = "127.0.0.1";

$username = "root";

$password = "";

$dbname = "pelangi";

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

}

$sql = "SELECT * FROM admin where email = '$email_post' AND pass_word = '$pass_word_post' ";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {

$_SESSION["isLoggedIn2"] = TRUE;

$_SESSION["nama"] = $row["nama"];

if($row["nama"]=='admin'){

$_SESSION["cekadmin"]=TRUE; } else{

$_SESSION["cekadmin"]=FALSE; }

echo "Halo ".$row["nama"]." ".$row["email"]."

".$row["pass_word"];

header("Location:index.php");

} } else {

echo "<script>alert('Email / Password salah')</script>";

}

$conn->close();

}

?>

Segmen Program 4.5 adalah Source code halaman “home.php” dimana

halaman ini adalah halaman awal atau halaman yang pertama terbuka saat customer

berhasil melakukan login di halaman login, pada halaman ini dilakukan pengecekan

apakah customer sudah melakukan proses login atau belum, jika belum maka

customer hanya dapat melihat produk yang dijual di toko pelangi, namun customer

tidak bisa melakukan proses pembelian atau penambahan barang didalam halaman

keranjang.

(4)

Segmen Program 4.5 Source code halaman Home Customer

<div class="container" >

<div class="row">

<?php

$sql = "SELECT * FROM barang";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {

$post_link_detail = 'item-detail.php?id='.$row["barang_id"];

?>

<div class="col-sm-3">

<div class="panel panel-default card">

<div class="panel-heading post-thumb">

<center>

<img src='<?=$row["gambar"]?>' class="card-image"><br>

</center>

</div>

<div class="panel-body post-body">

<div class="post-title">

<center><h4><?=$row["nama_barang"]?></h4>

<center><h3>Rp. <?=number_format($row["harga_barang"])?></h3>

<a href='<?=$post_link_detail?>'><button type="button" class="btn btn-primary glyphicon glyphicon-search" id="edit_btn">Detail</button></a>

<?php

if (isset($_SESSION['isLoggedIn']) && $_SESSION['isLoggedIn'] == TRUE) {

?>

<form action ="process/addkeranjang.php">

<input type="hidden" name="id" value="<?php echo

$row["barang_id"];?>"/>

<input type="hidden" name="hargas" value="<?php echo

$row["harga_barang"];?>"/>

<input type="hidden" id="namabarang" name="namabarang" value="<?php echo

$row["nama_barang"];?>"/>

<input type="number" name="quantity" value="">

<button type="submit" class="btn btn-danger glyphicon glyphicon- plus" id="delete_btn">Beli</button>

</form>

</center>

<?php } else {

?>

<?php }

?>

</div>

</div>

</div>

</div>

<?php }

} //else {

echo "Tidak ada barang yang terdaftar";

$conn->close();

?>

</div>

</div>

Pada Segmen Program diatas terbagi menjadi dua bagian , bagian pertama

adalah gambar dan nama produk yang ditampilkan kepada semua customer, baik

yang sudah login atau belum, sedangkan untuk menampilkan pilihan pembelian dan

quantity, customer perlu melakukan login terlebih dahulu.

(5)

Segmen Program 4.6 adalah source code halaman “index.php” dimana halaman ini adalah halaman awal yang terbuka pada saat admin atau karyawan berhasil melakukan proses login. Pada halaman ini hak akses untuk admin dan karyawan tidaklah sama, admin memiliki hak akses untuk melihat setiap laporan yang ada beserta melakukan perubahan data karyawan yang ada didalam toko, sedangkan karyawan hanya memiliki hak akses untuk mengelola pesanan melihat data master yang ada didalam database.

Segmen Program 4.6 Source code halaman awal admin dan karyawan

<?php

if ((isset($_SESSION['isLoggedIn2']) && $_SESSION['isLoggedIn2'] &&

$_SESSION["cekadmin"] == TRUE )) {

?>

<a href=""><span class="glyphicon glyphicon-user"></span> Selamat Datang

<?=$_SESSION['nama']?></a>

<a href="../process/logout-admin.php"><span class="glyphicon glyphicon- log-out"></span> Logout</a>

<?php

} elseif (isset($_SESSION['isLoggedIn2']) && $_SESSION['isLoggedIn2'] &&

$_SESSION["cekadmin"] == FALSE) {

?>

<a href="../process/logout-admin.php"><span class="glyphicon glyphicon- log-in"></span> Logout</a>

<?php } else { ?>

<?php

header('Location:admin-login.php');

}

?>

<?php

if ((isset($_SESSION['isLoggedIn2']) && $_SESSION['isLoggedIn2'] &&

$_SESSION["cekadmin"] == TRUE )) {

<?php

} elseif (isset($_SESSION['isLoggedIn2']) && $_SESSION['isLoggedIn2'] &&

$_SESSION["cekadmin"] == FALSE) {

?>

</ul>

<?php }

(6)

Segmen Program 4.6 Source code halaman awal admin dan karyawan (Lanjutan)

else { ?>

<?php

header('Location:admin-login.php');

}

?>

</div>

Pada halaman ini dilakukan pengecekan apakah admin atau karyawan yang mengakses halam ini telah melakukan login atau belum , jika belum maka semua fitur didalam halaman ini tidak dapat diakses oleh user.

4.2.2 Hak Akses Register

Menu Register digunakan untuk customer baru yang ingin melakukan proses belanja, customer hanya bisa berbelanja setelah memiliki akun yang dibuat pada halaman register. Source code register bisa dilihat pada Segmen Program 4.7.

Segmen Program 4.7 Source code Register user

<?php

require '../config/db-config.php';

require '../config/constant-config.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$nama_post = $_POST["nama"];

$tanggal_lahir_post = $_POST["tanggal_lahir"];

$alamat_post = $_POST["alamat"];

$no_hp_post = $_POST["no_hp"];

$email_post = $_POST["email"];

$pass_word_post = $_POST["pass_word"];

$sql = "INSERT INTO users (nama, tanggal_lahir, alamat ,no_hp, email, pass_word)

VALUES ('$nama_post', '$tanggal_lahir_post'

,'$alamat_post','$no_hp_post','$email_post','$pass_word_post')";

if ($conn->query($sql) === TRUE) {

header('Location: '.URL.'home.php', TRUE, 302);

} else {

echo "Error: " . $sql . "<br>" . $conn->error;

}

(7)

Segmen Program 4.7 Source code Register user (Lanjutan)

$conn->close();

}

?>

4.2.3 Hak Akses Logout

Fitur Logout digunakan ketika customer ingin keluar dari aplikasi, semua fitur-fitur yang ada di dalam aplikasi akan tidak dapat digunakan lagi oleh customer apabila customer telah melakukan proses Logout, yang terjadi pada saat Fitur logout digunakan adalah semua SESSION id dari customer akan dihapus. Source code hak akses Logout bisa dilihat pada Segmen Program 4.8.

Segmen Program 4.8 Source code Hak Akses Logout

<?php

session_start();

require '../config/constant-config.php';

// remove all session variables session_unset();

// destroy the session session_destroy();

header("location:../home.php");

?>

4.2.4 Cetak Spanduk

Menu cetak spanduk adalah fitur untuk customer yang ingin melakukan

percetakan spanduk, pada halaman menu ini customer dapat melakukan proses

upload gambar sendiri atau memasukan alamat URL gambar yang ingin dicetak

menjadi spanduk beserta Panjang dan lebarnya, perhitungan harga pada fitur cetak

spanduk adalah Rp.20.000 per meternya (((Panjang x lebar) x jumlah ) x harga per

meter). Source code untuk menambah cetakan spanduk dapat dilihat pada Segmen

Program 4.9.

(8)

Segmen Program 4.9 Source code tambah cetakan spanduk

<?php

require '../config/db-config.php';

session_start();

$sid = session_id()."".$_SESSION["id"];

$sql = "SELECT * FROM keranjang WHERE cetakan_id='$_GET[id]' AND

id_session='$sid' AND panjang = '$_GET[panjang]' AND lebar = '$_GET[lebar]'" ; echo $sql;

$hasil=$conn->query($sql);

print_r($hasil);

$harga=$_GET["panjang"] * $_GET["lebar"];

$totalsatuan=str_replace(",","",$_GET["hargaspanduk"]);

if (mysqli_num_rows($hasil)>0) {

$sql2 = ("UPDATE keranjang

SET jumlah_barang = jumlah_barang +

".$_GET["quantity"].",sub_total = sub_total + (harga_satuan *

".$_GET["quantity"]." )

WHERE id_session ='$sid' AND barang_id='$_GET[id]'");

$conn->query($sql2);

} else {

// kalau barang ada, jalankan perintah insert $getid = $_GET["id"];

$getid++;

//$totalsatuan = $_GET["quantity"] * ($_GET["hargaspanduk"] * ($_GET["panjang"] * $_GET["lebar"])) * 1000;

$harga=$_GET["hargaspanduk"] * ($_GET["panjang"] * $_GET["lebar"]);

$totalsatuan = $_GET["quantity"] * $harga ; $sql2 = "INSERT INTO keranjang

(user_id,id_session,cetakan_id,gambar,jumlah_barang,harga_satuan,sub_total,statu s_bayar,nama_barang,panjang,lebar)

VALUES ('$_SESSION[id]','$sid','$getid','$_GET[gambar]', '$_GET[quantity]','$harga','$totalsatuan','0','$_GET[namabarang]','$_GET[panjang ]','$_GET[lebar]')";

echo $sql;

echo $sql2;

$conn->query($sql2);

}

header('Location:../keranjang.php');

?>

(9)

4.2.5 Custom Bingkai Foto

Menu custom bingkai foto adalah fitur untuk customer yang ingin melakukan pembelian bingkai dengan ukuran yang diinginkan oleh customer, customer dapat memilih desain bingkai yang diinginkan beserta memasukkan ukuran Panjang dan lebar yang diinginkan dalam satuan centimeter. Source code untuk menambah bingkai foto kedalam pembelian bisa dilihat pada Segmen Program 4.10.

Segmen Program 4.10 Source code tambah bingkai foto

<?php

require '../config/db-config.php';

session_start();

$sid = session_id()."".$_SESSION["id"];

$sql = "SELECT * FROM keranjang WHERE bingkai_id='$_GET[id]' AND

id_session='$sid' AND id_session='$sid' AND panjang = '$_GET[panjang]' AND lebar

= '$_GET[lebar]'";

$hasil=$conn->query($sql);

print_r($hasil);

$harga=$_GET["panjang"] * $_GET["lebar"];

if (mysqli_num_rows($hasil)>0) {

$sql2 = ("UPDATE keranjang

SET jumlah_barang = jumlah_barang + $_GET[quantity],sub_total = sub_total + ($harga * $_GET[hargabingkai] * $_GET[quantity])

WHERE id_session ='$sid' AND bingkai_id='$_GET[id]'");

echo $sql2;

$conn->query($sql2);

} else {

$harga=$_GET["hargabingkai"] * ($_GET["panjang"] * $_GET["lebar"]);

$totalsatuan = $_GET["quantity"] * $harga ; $sql2 = "INSERT INTO keranjang

(user_id,id_session,bingkai_id,jumlah_barang,harga_satuan,sub_total,status_bayar ,nama_barang,panjang,lebar)

VALUES ('$_SESSION[id]','$sid','$_GET[id]',

'$_GET[quantity]','$harga','$totalsatuan','0','$_GET[namabingkai]','$_GET[panjan g]','$_GET[lebar]')";

echo $sql;

echo $sql2;

$conn->query($sql2);

}

header('Location:../keranjang.php');

?>

(10)

4.2.6 Pembayaran

Menu pembayaran adalah menu yang menyediakan fitur untuk customer melakukan upload gambar yang berupa bukti struk pembayaran atau transfer dana ke rekening pemilik toko, pada menu ini ditampilkan keseluruhan total belanja dan total pembayaran yang harus dibayarkan oleh customer, Source code fungsi upload bukti pembayaran dapat dilihat pada Segmen Program 4.11.

Segmen Program 4.11 Source code fungsi upload bukti pembayaran

<?php

function rstring() {

$rs=md5(date("Ymdhis").rand(1,1000));

return substr($rs,0,10);

}

function prosesgambar($idx) {

$namaakhir="";

if (isset($_FILES[$idx])) {

$fl=explode(".",$_FILES[$idx]["name"]);

$extension=$fl[count($fl)-1];

$name =rstring().".".$extension;

move_uploaded_file($_FILES[$idx]["tmp_name"],"uploads/".$name);

if ($name=="") {

$namaakhir="";

} else {

$namaakhir=$name;

} }

return $namaakhir;

}

?>

4.2.7 Estimasi Waktu

Setelah customer melakukan pembayaran, akan dijalankan fitur perhitungan

estimasi waktu pengambilan cetakan ataupun pembuatan bingkai, barang pesanan

customer akan ditampilkan ke menu barang yang sudah berhasil dibayar, pada

(11)

menu ini ditampilkan estimasi waktu pengambilan cetakan dan bingkai yang dipesan oleh customer. Estimasi waktu untuk cetakan dan pembuatan bingkai sebelumnya yang belum selesai akan ditambahkan secara otomatis untuk cetakan dan pembuatan bingkai pada pesanan selanjutnya. Source code perhitungan estimasi waktu cetak spanduk dan buat bingkai bisa dilihat pada Segmen Program 4.12 dan 4.13

Segmen Program 4.12 Source code Perhitungan estimasi waktu cetak spanduk

$totalAkhir=0;

$q="SELECT * FROM keranjang WHERE user_id='". $_SESSION["id"] ."' AND status_bayar='0'";

echo $q;

$result = $conn->query($q);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) { $totalAkhir+=$row["sub_total"];

$q="UPDATE keranjang SET status_bayar='1',transaksi_id='$kode' WHERE keranjang_id='". $row["keranjang_id"] ."'" ;

$conn->query($q);

if ($row["panjang"]!=null && $row["lebar"]!=null &&

$row["cetakan_id"]!=null) {

echo $row["panjang"].",".$row["lebar"];

$lama=$row["panjang"]*$row["lebar"]*20;

if ($first) {

$first=false;

echo "di sini <br/>";

$q="UPDATE keranjang SET estimasi_waktu=DATE_ADD(SYSDATE(),INTERVAL ".$lama." MINUTE) WHERE keranjang_id='". $row["keranjang_id"] ."'" ;

$conn->query($q);

Segmen Program 4.13 Source code perhitungan estimasi waktu buat bingkai

if ($row["panjang"]!=null && $row["lebar"]!=null && $row["bingkai_id"]!=null) {

echo $row["panjang"].",".$row["lebar"];

$lama2=(($row["jumlah_barang"]))*60;

(12)

Segmen Program 4.13 Source code perhitungan estimasi waktu buat bingkai (Lanjutan)

if ($first) {

$first=false;

$q="UPDATE keranjang SET estimasi_waktu=DATE_ADD(SYSDATE(),INTERVAL

".$lama2." MINUTE) WHERE keranjang_id='". $row["keranjang_id"] ."'" ;

$conn->query($q);

$q="SELECT * FROM keranjang WHERE keranjang_id='".

$row["keranjang_id"] ."'";

$result2=$conn->query($q);

if ($result2->num_rows > 0) {

while($row2 = $result2->fetch_assoc()) {

$tanggal=$row2["estimasi_waktu"];

} } } else {

$q="UPDATE keranjang SET

estimasi_waktu=DATE_ADD('".$tanggal."',INTERVAL ".$lama2." MINUTE) WHERE keranjang_id='". $row["keranjang_id"] ."'" ;

$conn->query($q); }

}

4.2.8 Ubah Status Pesanan

Setelah customer melakukan proses beli barang, cetak spanduk, atau buat

bingkai, pesanan customer akan terlihat di menu admin, admin dapat mengganti

status pesanan customer dengan status yang ada di dalam tabel “statusorder”. Status

pesanan ini berguna agar customer mengetahui sudah sampai tahap mana pesanan

customer tersebut diproses. Source code ubah status pesanan customer bisa dilihat

pada Segmen Program 4.14.

(13)

Segmen Program 4.14 Source code ubah status pesanan customer

<?php

for ($i=0;$i<count($arrValue);$i++){

$sel="";

if ($arrValue[$i]==$row["status_pesanan"]) {

$sel="selected";

} ?>

<option <?php echo $sel; ?> value="<?php echo

$arrValue[$i]?>">

<?php

echo $arrIsi[$i];

?>

</option>

<?php } ?>

<?php

require '../config/db-config.php';

$id=$_POST["id"];

$status=$_POST["status"];

$statusbayar=$_POST["statusbayar"];

$statusSebelum="";

$q="SELECT * FROM keranjang WHERE keranjang_id='$id'";

$conn->query($q);

$barangID="";

$jumlah="";

$harga="";

$result = $conn->query($q);

if ($result->num_rows > 0) {

while($dataS = $result->fetch_assoc()) {

$statusSebelum=$dataS["status_pesanan"];

$barangID=$dataS["barang_id"];

$jumlah=$dataS["jumlah_barang"]*1;

$harga=$dataS["harga_satuan"]*1;

} }

$q="UPDATE keranjang SET status_pesanan='$status',status_bayar ='$statusbayar' WHERE keranjang_id='$id'";

$conn->query($q);

(14)

4.2.9 Insert penjualan kedalam kartu stok

Setiap customer melakukan proses pembelian barang, transaksi dari customer akan tercatat didalam tabel kartu stok, data akan masuk dan stok akan berkurang setelah admin atau karyawan mengubah status transaksi menjadi “proses desain selesai” yang menandakan bahwa customer pasti sudah berhasil melakukan proses pembayaran dan terjadi terjadi pengurangan terhadap stok barang yang tersedia didalam toko. Source code insert penjualan kedalam kartu stok dapat diliaht pada Segmen program 4.15.

Segmen program 4.15 Source code insert penjualan kedalam kartu stok

if ($status=="Proses desain selesai" && $statusSebelum==null) {

$stokSebelum=0;

$hargaSebelum=0;

$sql = "SELECT * FROM kartustok WHERE id_barang='". $barangID ."' ORDER BY tanggal DESC LIMIT 1";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

if ($row = $result->fetch_assoc()) { $stokSebelum=$row["saldo_akhir"];

$hargaSebelum=$row["hpp"];

} }

echo $stokSebelum.",".$hargaSebelum;

$saldoAkhir=$stokSebelum-$jumlah;

$q="INSERT INTO kartustok

(tanggal,keterangan,perubahan,saldo_akhir,harga,hpp,id_barang) ".

"VALUES (SYSDATE(),'Penjualan ".date("d-M-Y")."',".($jumlah*- 1).",$saldoAkhir,$harga,$hargaSebelum,$barangID)";

echo $q;

$conn->query($q);

}

header("location:kelolapesanan.php");

?>

(15)

4.2.10 Beli barang

Admin dapat melakukan input transaksi pembelian dari supplier barang. Stok barang akan bertambah sesuai dengan jumlah barang yang dibeli oleh admin, hpp barang juga terupdate setiap kali proses pembelian barang terjadi. Source code beli barang dapat dilihat pada Segmen program 4.16.

Segmen program 4.16 Source code fitur beli barang

$sql = "SELECT * FROM kartustok WHERE id_barang='$barang' ORDER BY tanggal DESC LIMIT 1";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

if ($row = $result->fetch_assoc()) { $stokSebelum=$row["saldo_akhir"];

$hargaSebelum=$row["hpp"];

} }

$hppBaru=(($stokSebelum*$hargaSebelum)+($jumlah*$harga))/($stokSebelum+$

jumlah);

$stokBaru=$stokSebelum+$jumlah;

$q="SELECT DATE_FORMAT(SYSDATE(),'%d-%M-%Y') as tgl";

$tgl="";

$result = $conn->query($q);

if ($result->num_rows > 0) {

if ($row = $result->fetch_assoc()) { $tgl=$row["tgl"];

} }

$q="INSERT INTO kartustok

(tanggal,keterangan,perubahan,saldo_akhir,hpp,id_barang,harga) ".

"VALUES (SYSDATE(),'Pembelian ".$tgl."

','$jumlah','$stokBaru','$hppBaru','$barang','$harga')";

$conn->query($q);

?>

4.2.11 Laporan Penjualan

Laporan penjualan menampilkan data barang-barang yang terjual beserta

pemasukkan yang didapat oleh toko pada periode tertentu. Source code laporan

penjualan dapat dilihat pada Segmen program 4.17.

(16)

Segmen program 4.17 Source code Laporan penjualan

<?php

$sql = "

SELECT DATE_FORMAT(tanggal,'%M-%Y') as Periode,SUM(total) as Total

FROM transaksi GROUP BY

DATE_FORMAT(tanggal,'%M-%Y') ";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) { ?>

<tr>

<td style="font-weight:bold;">

<?php

echo $row["Periode"];

?>

</td>

<td style="text-align:right">

<?php

echo number_format($row["Total"]);

?>

</td>

</tr>

<?php $q="

SELECT SUM(total) as Total,b.kode_barang,b.nama_barang FROM

transaksi t

INNER JOIN keranjang k ON (k.transaksi_id=t.transaksi_id) INNER JOIN barang b ON (k.barang_id=b.barang_id)

WHERE DATE_FORMAT(tanggal,'%M-%Y')='". $row["Periode"] ."' GROUP BY b.barang_id

";

$result2 = $conn->query($q);

if ($result2->num_rows > 0) {

while($row2 = $result2->fetch_assoc()) { ?>

<tr>

<td>

<?php

echo $row2["kode_barang"]."

".$row2["nama_barang"];

?>

</td>

<td style="text-align:right">

(17)

Segmen program 4.17 Source code Laporan penjualan (Lanjutan)

<?php echo number_format($row2["Total"]);

?>

</td>

</tr>

<?php

} } echo "<tr><td colspan=2><br/></td></tr>";

} } ?>

4.2.12 Laporan Pembelian

Laporan pembelian menampilkan data pembelian barang berupa pengeluaran yang dikeluarkan oleh toko pada periode tertentu. Source code laporan pembelian dapat dilihat pada Segmen program 4.18.

Segmen program 4.18 Source code Laporan pembelian

<?php

$sql = "

SELECT id,DATE_FORMAT(tanggal,'%M-%Y') as Periode,keterangan,SUM(harga) as Total

FROM kartustok GROUP BY

DATE_FORMAT(tanggal,'%M-%Y') ";

$result = $conn->query($sql);

if ($result->num_rows > 0) { // output data of each row

while($row = $result->fetch_assoc()) { ?>

<tr>

<td>

<?php

echo $row["Periode"];

?>

</td>

<td style="text-align:right">

<?php

(18)

Segmen program 4.18 Source code Laporan pembelian (Lanjutan)

echo number_format($row["Total"]);

?>

</td>

</tr>

<?php } } ?>

4.2.13 Laporan stok barang

Laporan stok barang menampilkan data keluar masuk barang didalam toko beserta stok akhir barang yang tersedia di toko dan hpp terakhir yang dihitung dengan menggunakan metode average, juga harga jual dan harga beli barang tersebut. Pada laporan stok barang juga tercatat tanggal terjadinya suatu aktivitas keluar atau masuk barang didalam toko. Source code laporan stok barang dapat dilihat pada Segmen program 4.19.

Segmen program 4.19 Source code laporan stok barang

<?php

$sql = "

SELECT ks.tanggal ,ks.keterangan ,ks.perubahan

,ks.saldo_akhir ,ks.harga ,ks.hpp ,ks.id_barang ,b.nama_barang as nama from

`kartustok` ks INNER JOIN barang b on (ks.id_barang = b.barang_id) order by tanggal desc ";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) { ?>

<tr>

<td>

<?php

echo $row["tanggal"];

?>

</td>

<td>

<?php

echo $row["keterangan"];

?>

</td>

<td style="text-align:center">

<?php

(19)

Segmen program 4.19 Source code laporan stok barang (Lanjutan)

echo $row["perubahan"];

?>

</td>

<td style="text-align:center">

<?php

echo $row["saldo_akhir"];

?>

</td>

<td style="text-align:right">

<?php

echo $row["harga"];

?>

</td>

<td style="text-align:right">

<?php

echo $row["hpp"];

?>

</td>

<td style="text-align:center">

<?php

echo $row["id_barang"];

?> </td>

<td>

<?php

echo $row["nama"];

?>

</td>

</tr>

<?php } } ?>

Referensi

Dokumen terkait

Setiap faktor diperoleh, 75% untuk jarak Taman Kanak-kanak ≤ 5km dari lokasi rumah, untuk biaya yang sesuai untuk pendidikan Taman Kanak-kanak 70,7% orang tua memilih

Jadual 7 menunjukkan maklum balas yang telah diberikan oleh responden di dalam analisis data persoalan kajian dua bagi aspek suasana persekitaran dan kemudahan di

Pada kelas eksperimen hal ini dapat terjadi mengingat pada saat penelitian, peneliti menggunakan metode berkirim salam dan soal yaitu meminta siswa untuk membuat soal dalam

Berdasarkan hsil penelitian dapat disarankan beberapa hal sebagai berikut; 1) Bagi guru, modifikasi permainan papan kreasi magnetik ini dapat digunakan oleh guru

Dengan demikian peran Apoteker (APA) sangat penting untuk memberikan informasi kepada masyarakat.Selain harus pandai sebagai penanggung jawab teknis kefarmasian saja,melainkan

Layout adalah penyusunan dari elemen-elemen desain yang berhubungan kedalam sebuah bidang sehingga membentuk susunan artistik. Hal ini bisa juga disebut manajemen bentuk

dalam undang-undang, akan tetapi karena BW menganut asas kebebasan berkontrak, yang artinya bahwa setiap orang adalah bebas untuk membuat persetujuan apapun

dan pulau terbesar ketiga adalah pulau Petong (115 RTP) dan berikutnya pulau Nguan dan Tanjung Cakang yang juga merupakan daerah pemukiman nelayan (145 RTP), sedangkan