Membuat Fitur Laporan
Membuat Fitur Laporan
A. Deskripsi
Untuk membuat fitur laporan adalah dengan cara membaca data dari tb_transaksi
dengan menggunakan parameter tertentu untuk menseleksi data yang ditampilkan sebagai
laporan. Pada kasus project kita kali ini, kita akan menggunakan data tanggal masuk sebagai
parameter untuk melakukan filter seleksi data. Mengapa menggunakan data tersebut? Karena
jenis laporan yang akan kita buat dalam fitur ini adalah merekap pemasukan transaksi dari
tanggal sekian hingga sekian, dan kriteria yang sesuai adalah mengguankan tanggal masuk
pada tabel tb_transaksi.
Proses pembuatan fitur laporan ini dapat diakses oleh semua role user, sehingga nanti
kita buat awal pada role admin lalu duplikat pada role lainnya. Untuk membuat fitur laporan
ini kita membutuhkan beberapa proses yaitu pertama membuat tampilan untuk halaman
laporan dimana pada halaman tersebut akan menampilkan kriteria filter terlebih dahulu baru
kemudian menampilan proses hasil data laporan. Kedua adalah membuat fitur cetak dari
laporan yang sudah ditampilkan, untuk fitur cetak kita akan belajar mengeksekusi dalam 2
bentuk, bentuk pertama menggunakan print pada browser seperti pada fitur transaksi lalu
bentuk kedua dengan manipulasi file dalam bentuk pdf.
<div class="container">
<div class="panel">
<div class="panel-heading">
<h4>Filter Laporan</h4>
</div>
<div class="panel-body">
<th width="1%"></th>
</tr>
<tr>
<td>
<br/>
<input type="date" name="tgl_dari"
class="form-control">
</td>
<td>
<br/>
<input type="date" name="tgl_sampai"
class="form-control">
<br/>
</td>
<td>
<br/>
<input type="submit" class="btn btn-
primary" value="Filter">
</td>
</tr>
</table>
</form>
</div>
</div>
<br/>
<?php
if(isset($_GET['tgl_dari']) && isset($_GET['tgl_sampai'])){
$dari = $_GET['tgl_dari'];
$sampai = $_GET['tgl_sampai'];
?>
<div class="panel">
<div class="panel-heading">
<h4>Data Laporan Laundry dari <b><?php echo $dari; ?></b>
sampai <b><?php echo $sampai; ?></b></h4>
</div>
<div class="panel-body">
</tr>
<?php
// koneksi database
include '../koneksi.php';
<?php
}
?>
</table>
</div>
</div>
<?php } ?>
</div>
Jika file sudah siap pastikan kalian telah mengaktifkan link pada menu navbar dalam
file header.php untuk mengakses file laporan.php. Setelah itu silakan akses halaman laporan
yang telah dibuat, maka akan didapatkan tampilan sebagai berikut.
Perhatikan pada gambar 1, ketika kita mengakses halaman laporan pertama kali hanya
akan menampilkan form untuk filter data. Setelah kita mengisikan data form parameter
tanggal untuk filter maka form tersebut akan memproses dan menampilan data tabel laporan
seperti berikut.
Pada gambar 2 adalah data laporan hasil dari filter yang diproses. Pada proses yang
dilakukan diatas penulis mencoba menggunakan parameter tanggal mulai dari tanggal 1
agustus hingga 31 agustus, sehingga semua data transaksi yang ada dalam database dengan
kriteria tanggal masuk sesuai rentang parameter akan ditampilan. Jika diperhatikan susunan
data yang ditampilan sama persis ketika kita membuat fitur transaksi, hanya saja ada
tambahan 2 tombol eksekusi untuk cetak yaitu cetak biasa dan cetak pdf. Lalu, bagaimanakah
cara kerja dari file laporan.php untun memproses fitur laporan ini?silakan perhatikan pada
penjelasan sebagai berikut.
</table>
</form>
Perhatikan pada syntax diatas, itu merupakan syntax untuk membuat form filter. Pada
bagian action dalam form merujuk pada sebuah proses bernama “laporan”, dimana laporan
tersebut merujuk pada syntax sebagai berikut.
$dari = $_GET['tgl_dari'];
$sampai = $_GET['tgl_sampai'];
?>
<div class="panel">
<div class="panel-heading">
<h4>Data Laporan Laundry dari <b><?php echo $dari; ?></b>
sampai <b><?php echo $sampai; ?></b></h4>
</div>
<div class="panel-body">
</tr>
<?php
// koneksi database
include '../koneksi.php';
<?php
if($d['transaksi_bayar']=="belum"){
echo "<div class='label label-danger'>BELUM
BAYAR</div>";
}else if($d['transaksi_bayar']=="lunas"){
echo "<div class='label label-success'>SUDAH
LUNAS</div>";
}
?>
</td>
<td>
<?php
if($d['transaksi_status']=="proses"){
echo "<div class='label label-warning'>PROSES</div>";
}else if($d['transaksi_status']=="selesai"){
echo "<div class='label label-info'>SELESAI</div>";
}else if($d['transaksi_status']=="diambil"){
echo "<div class='label label-success'>DIAMBIL</div>";
}
?>
</td>
</tr>
<?php
}
?>
</table>
</div>
</div>
<?php } ?>
Perhatikan pada syntax diatas pada bagian yang diberi tanda bold. Seperti itulah
bagian dari syntax dalam file laporan.php melakukan proses eksekusi data laporan. Silakan
kalian pahami terlebih dahulu sebelum melanjutkan pada materi selanjutnya.
<!DOCTYPE html>
<html>
<head>
<title>Aplikasi LyJo</title>
</head>
<body>
<!-- cek apakah sudah login -->
<?php
session_start();
if($_SESSION['status']!="admin_login"){
header("location:../index.php?pesan=belum_login");
}
?>
<?php
// koneksi database
include '../koneksi.php';
?>
<div class="container">
$dari = $_GET['dari'];
$sampai = $_GET['sampai'];
?>
<h4>Data Laporan Laundry dari <b><?php echo $dari; ?></b> sampai
<b><?php echo $sampai; ?></b></h4>
<table class="table table-bordered table-striped">
<tr>
<th width="1%">No</th>
<th>Invoice</th>
<th>Tanggal Masuk</th>
<th>Outlet</th>
<th>Pelanggan</th>
<th>Berat (Kg)</th>
<th>Tgl. Selesai</th>
<th>Paket</th>
<th>Harga</th>
<th>Status Bayar</th>
<th>Status Barang</th>
</tr>
<?php
?>
<tr>
<td><?php echo $no++; ?></td>
<td>INVOICE-<?php echo
$d['transaksi_id']; ?></td>
<td><?php echo $d['transaksi_masuk']; ?
></td>
<td><?php echo $d['outlet_nama']; ?></td>
<td><?php echo $d['pelanggan_nama']; ?
></td>
<td><?php echo $d['transaksi_berat']; ?
></td>
<td><?php echo
$d['transaksi_selesai']; ?></td>
<td><?php echo $d['paket_jenis']; ?></td>
<td><?php echo "Rp.
".number_format($d['transaksi_harga']) ." ,-"; ?></td>
<td>
<?php
if($d['transaksi_bayar']=="belum"){
echo "<div class='label label-danger'>BELUM
BAYAR</div>";
}else if($d['transaksi_bayar']=="lunas"){
echo "<div class='label label-success'>SUDAH
LUNAS</div>";
}
?>
</td>
<td>
<?php
if($d['transaksi_status']=="proses"){
echo "<div class='label label-warning'>PROSES</div>";
}else if($d['transaksi_status']=="selesai"){
echo "<div class='label label-info'>SELESAI</div>";
}else if($d['transaksi_status']=="diambil"){
echo "<div class='label label-success'>DIAMBIL</div>";
}
?>
</td>
</tr>
<?php
}
?>
</table>
<?php } ?>
</div>
<script type="text/javascript">
window.print();
</script>
</body>
</html>
Untuk mengaktifkan fitur cetak jangan lupa tambahkan sebuah link pada tombol yang
sudah disediakan sesuai dengan nama tombolnya sebagai berikut.
Jika kita jalankan fitur tersebut maka akan kita dapatkan hasil tampilan dari program
menjadi sebagai berikut.
Dalam fitur kali ini kita akan menggunakan file dengan nama laporan_pdf.php.
Silakan buat file tersebut lalu tuliskan syntax sebagai berikut. Namun sebelum itu, pastikan
telah menambahkan sebuah link pada tombol yang sudah disediakan sesuai dengan nama
tombolnya sebagai berikut.
<?php
// menghubungkan dengan dompdf
require_once("../assets/DomPdf/autoload.inc.php");
// koneksi database
include '../koneksi.php';
$dari = $_GET['dari'];
$sampai = $_GET['sampai'];
while($d=mysqli_fetch_array($data)){
$html .= '<tr>';
$html .= '<td>'.$no++.'</td>';
$html .= '<td>INVOICE-'.$d['transaksi_id'].'</td>';
$html .= '<td>'.$d['transaksi_masuk'].'</td>';
$html .= '<td>'.$d['outlet_nama'].'</td>';
$html .= '<td>'.$d['pelanggan_nama'].'</td>';
$html .= '<td>'.$d['transaksi_berat'].'</td>';
$html .= '<td>'.$d['transaksi_selesai'].'</td>';
$html .= '<td>'.$d['paket_jenis'].'</td>';
$html .= '<td> Rp. '.number_format($d["transaksi_harga"]).' ,-</td>';
$html .= '<td>';
if($d['transaksi_bayar']=="belum"){
$html .= "BELUM BAYAR";
}else if($d['transaksi_bayar']=="lunas"){
$html .= "SUDAH LUNAS";
}
$html .= '</td>';
$html .= '<td>';
if($d['transaksi_status']=="proses"){
$html .= "PROSES";
}else if($d['transaksi_status']=="selesai"){
$html .= "SELESAI";
}else if($d['transaksi_status']=="diambil"){
$html .= "DIAMBIL";
}
$html .= '</td>';
$html .= '</tr>';
$html .= '</table>';
$html .= '</body>';
$html .= '</html>';
Setelah kita siapkan segala file yang telah dibutuhkan, ketika kita jalankan fitur ini
maka program akan langsung membuat kita mengunduh sebuah file pdf dengan nama
“laporan_laundry_LyJo.pdf”. Dengan menyelesaikan fitur ini maka keseluruhan fitur yang
ada dalam project aplikasi web kita kali ini. Silakan pahami semua proses yang telah
dikerjakan. Selanjutnya, untuk materi terakhir berikutnya adalah mengenai finalisasi project
ini dengan memenuhi semua fitur role yang tersedia dalam aplikasi.