Golaneducation.com – Laporan arus kas adalah alat yang sangat penting dalam pengelolaan keuangan sebuah perusahaan atau organisasi. Laporan ini memberikan gambaran tentang aliran masuk dan keluar uang selama periode tertentu pada suatu masjid. Tujuannya membantu dalam pengambilan keputusan keuangan yang tepat. Dalam artikel ini, Golan Education akan membahas cara membuat laporan cetak transaksi arus kas masjid menggunakan PHP dan MySQL dengan periode tanggal tertentu.
berikut tampilan laporan cetak yang diinginkan:
Gambar diatas adalah contoh bentuk laporan yang akan kita buatkan menggunakan php dan mysql. Apabila ada bentuk permintaan dari Sahabat Golan bisa di koment ya artikel ini dan kontak Golan Education. Golan Education siap membantu Anda dalam menemukan solusi.
Baik Langsung saja kita ke langkah-langkah yang dibutuhkan untuk membuat bentuk laporan kas seperti gambar diatas:
Cara Membuat Laporan Cetak Transaksi Arus Kas Masjid dengan Periode Tanggal Tertentu
Persiapan Awal
Sebelum memulai, pastikan Anda memiliki lingkungan pengembangan PHP dan server MySQL yang sudah terinstal dan berfungsi dengan baik. Selain itu, pastikan Anda telah membuat tabel transaksi arus kas di database MySQL Anda yang mencatat semua transaksi dengan kolom seperti id_transaksi, jenis_transaksi, tanggal, jumlah, dan lainnya yang sesuai. Untuk atibut atau field silahkan bebas apabila ada penambahan. field atau atribut dibawah ini hanya sebagai contoh saja.
misal pada aplikasi ini menggunakan tabel kas masjid seperti tampilan berikut:
Ket atribut:
id_km=Id Kas Masjid
tgl_km= Tanggal Kas Masjid
uraian_km= Urain Kas Masjid
masuk/keluar= jumlah kas masuk/keluar
jenis=kategori (masuk/keluar)
Setelah pembuatan tabel selanjutnya kita masuk ke langkah pembuatan laporan cetaknya.
Langkah-langkah Pembuatan Laporan Cetak
Berikut adalah langkah-langkah untuk membuat laporan cetak transaksi arus kas menggunakan PHP dan MySQL:
1. Koneksi ke Database
Mulailah dengan membuat koneksi ke database MySQL Anda menggunakan PHP. Anda dapat menggunakan fungsi mysqli_connect() untuk melakukan koneksi. Misal seperti kodingan dibawah ini:
<?php
// Membuat variabel, ubah sesuai dengan nama host dan database pada hosting
$host = "localhost";
$user = "root";
$pass = "";
$db = "pencatatan_kas";
//Menggunakan objek mysqli untuk membuat koneksi dan menyimpanya dalam variabel $mysqli
$mysqli = new mysqli($host, $user, $pass, $db);
//Menentukan timezone
date_default_timezone_set('Asia/Jakarta');
?>
2. Buat Form Periode Tanggal
Buatlah form pada halaman HTML yang memungkinkan pengguna untuk memilih periode tanggal yang ingin mereka lihat laporan arus kasnya. Form ini akan mengirimkan data ke halaman PHP yang akan digunakan untuk mengambil data dari database berdasarkan periode tanggal yang dipilih. Tetapi sebelum membuat form periode tanggal ini, program input arus kas masuk dan keluar sudah dibuat dans udah bisa dijalankan. Berikut gambar dan codingan untuk pemilihan tanggal awal dan tanggal akhir untuk laporan arus kas:
Buatkan tampilan diatas dengan kodingna seperti dibawah ini:
<div class="card card-secondary">
<div class="card-header">
<h3 class="card-title"><i class="fa fa-file"></i> Laporan Arus Kas (Kas masjid dan Pembangunan)</h3>
</div>
<form action="./report/kas_arus_per.php" method="post" enctype="multipart/form-data" target="_blank">
<div class="card-body">
<div class="form-group row">
<label class="col-sm-2 col-form-label">Tanggal Awal</label>
<div class="col-sm-4">
<input type="date" class="form-control" id="tgl_1" name="tgl_1">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Tanggal Akhir</label>
<div class="col-sm-4">
<input type="date" class="form-control" id="tgl_2" name="tgl_2">
</div>
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-info" name="btnCetak" target="_blank">Cetak Periode</button>
<a href="./report/kas_arus_full.php" class="btn btn-primary" target="_blank">Cetak Semua</a>
</div>
</form>
</div>
Pastikan pengiriman post pada form supaya bisa mengirim tanggal awal dan tanggal akhir.
<form action="./report/kas_arus_per.php" method="post" enctype="multipart/form-data" target="_blank">
: Ini adalah elemen <form>
yang mengarahkan data input dari form ke halaman kas_arus_per.php
saat form disubmit. Metode yang digunakan adalah “post”, dan enctype="multipart/form-data"
menunjukkan bahwa form akan mengandung file yang di-upload. Pilihan target="_blank"
berarti hasil laporan akan dibuka di jendela/tab baru saat form disubmit.
<input type="date" class="form-control" id="tgl_1" name="tgl_1">
: Ini adalah elemen <input>
yang memungkinkan pengguna memasukkan tanggal. Tipe “date” menampilkan widget tanggal yang dapat dipilih oleh pengguna. Elemen ini memiliki atribut “id” dan “name” sebagai identifikasi untuk data input.
<div class="card-footer">
: Ini adalah elemen <div>
yang menjadi footer (kaki) dari kartu. Di dalamnya terdapat dua tombol: “Cetak Periode” yang akan melakukan submit form dan membuka laporan pada halaman kas_arus_per.php
, dan “Cetak Semua” yang akan membuka laporan pada halaman kas_arus_full.php
. Tombol “Cetak Semua” menggunakan elemen <a>
untuk mengarahkan ke halaman tersebut.
3. Proses Form dan Ambil Data dari Database
Selanjutnya, buat halaman PHP dengan nama “kas_arus_per.php” yang akan mengambil data transaksi arus kas dari database berdasarkan periode tanggal yang dipilih oleh pengguna. Proses ini melibatkan eksekusi query SQL menggunakan tanggal mulai dan tanggal selesai yang dikirimkan dari form.
<?php
include "../inc/koneksi.php";
//FUNGSI RUPIAH
include "../inc/rupiah.php";
$dt1 = $_POST["tgl_1"];
$dt2 = $_POST["tgl_2"];
?>
<?php
//untuk kas masjid
$sql = $koneksi->query("SELECT SUM(masuk) as tot_masuk from kas_masjid where jenis='Masuk' and tgl_km BETWEEN '$dt1' AND '$dt2'");
while ($data= $sql->fetch_assoc()) {
$masuk=$data['tot_masuk'];
}
$sql = $koneksi->query("SELECT SUM(keluar) as tot_keluar from kas_masjid where jenis='Keluar' and tgl_km BETWEEN '$dt1' AND '$dt2'");
while ($data= $sql->fetch_assoc()) {
$keluar=$data['tot_keluar'];
}
$saldo= $masuk-$keluar;
?>
<?php
//untuk kas pembangunan
$sql2 = $koneksi->query("SELECT SUM(masuk) as tot_masuk from kas_pembangunan where jenis='Masuk' and tgl_kp BETWEEN '$dt1' AND '$dt2'");
while ($data2= $sql2->fetch_assoc()) {
$masukp=$data2['tot_masuk'];
}
$sql2 = $koneksi->query("SELECT SUM(keluar) as tot_keluar from kas_pembangunan where jenis='Keluar' and tgl_kp BETWEEN '$dt1' AND '$dt2'");
while ($data2= $sql2->fetch_assoc()) {
$keluarp=$data2['tot_keluar'];
}
$saldop= $masukp-$keluarp;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Laporan Kas Masjid</title>
</head>
<body>
<center>
<h2>Laporan Rekapitulasi Arus Kas</h2>
<h3>Masjid Golan</h3>
<p>Periode : <?php $a=$dt1; echo date("d-M-Y", strtotime($a))?> s/d <?php $b=$dt2; echo date("d-M-Y", strtotime($b))?>
<p>________________________________________________________________________</p>
<table border="1" cellspacing="0">
<thead>
<tr>
<th colspan="5">PENERIMAAN</th>
</tr>
<tr>
<th colspan="5" align="left">1. Penerimaan Kas Masjid</th>
</tr>
<tr>
<th>No</th>
<th>Tanggal</th>
<th>Uraian</th>
<th>Pemasukan</th>
<th>Sub Total</th>
</tr>
</thead>
<tbody>
<?php
if(isset($_POST["btnCetak"])){
$sql_tampil = "select * from kas_masjid where jenis='masuk' and tgl_km BETWEEN '$dt1' AND '$dt2' order by tgl_km asc";
}
$query_tampil = mysqli_query($koneksi, $sql_tampil);
$no=1;
while ($data = mysqli_fetch_array($query_tampil,MYSQLI_BOTH)) {
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php $tgl = $data['tgl_km']; echo date("d/M/Y", strtotime($tgl))?></td>
<td><?php echo $data['uraian_km']; ?></td>
<td align="right"><?php echo rupiah($data['masuk']); ?></td>
<td align="right"></td>
</tr>
<?php
$no++;
}
?>
</tbody>
<tr>
<td colspan="4" align="right">Total Pemasukan</td>
<td colspan="1"><?php echo rupiah($masuk); ?></td>
</tr>
<!-- untuk kas pembangunan-->
<thead>
<tr>
<th colspan="5" align="left">2. Penerimaan Kas Pembangunan</th>
</tr>
<tr>
<th>No</th>
<th>Tanggal</th>
<th>Uraian</th>
<th>Pemasukan</th>
<th>Sub Total</th>
</tr>
</thead>
<tbody>
<?php
if(isset($_POST["btnCetak"])){
$sql_tampil = "select * from kas_pembangunan where jenis='masuk' and tgl_kp BETWEEN '$dt1' AND '$dt2' order by tgl_kp asc";
}
$query_tampil = mysqli_query($koneksi, $sql_tampil);
$no=1;
while ($data = mysqli_fetch_array($query_tampil,MYSQLI_BOTH)) {
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php $tgl = $data['tgl_kp']; echo date("d/M/Y", strtotime($tgl))?></td>
<td><?php echo $data['uraian_kp']; ?></td>
<td align="right"><?php echo rupiah($data['masuk']); ?></td>
<td align="right"></td>
</tr>
<?php
$no++;
}
?>
</tbody>
<tr>
<td colspan="4" align="right">Total Pemasukan</td>
<td colspan="1"><?php echo rupiah($masukp); ?></td>
</tr>
<!-- Tutup Kas pembanguna -->
<thead>
<tr>
<th colspan="5">PENGELUARAN</th>
</tr>
<tr>
<th colspan="5" align="left">1. Pengeluaran Kas Masjid</th>
</tr>
<tr>
<th>No</th>
<th>Tanggal</th>
<th>Uraian</th>
<th>Pengeluaran</th>
<th>Sub Total</th>
</tr>
</thead>
<tbody>
<?php
if(isset($_POST["btnCetak"])){
$sql_tampil = "select * from kas_masjid where jenis='keluar' and tgl_km BETWEEN '$dt1' AND '$dt2' order by tgl_km asc";
}
$query_tampil = mysqli_query($koneksi, $sql_tampil);
$no=1;
while ($data = mysqli_fetch_array($query_tampil,MYSQLI_BOTH)) {
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php $tgl = $data['tgl_km']; echo date("d/M/Y", strtotime($tgl))?></td>
<td><?php echo $data['uraian_km']; ?></td>
<td align="right"><?php echo rupiah($data['keluar']); ?></td>
<td align="right"></td>
</tr>
<?php
$no++;
}
?>
</tbody>
<tr>
<td colspan="4" align="right">Total Pengeluaran</td>
<td><?php echo rupiah($keluar); ?></td>
</tr>
<!-- untuk pengeluaran pembangunan-->
<thead>
<tr>
<th colspan="5" align="left">2. Pengeluaran Kas Pembangunan</th>
</tr>
<tr>
<th>No</th>
<th>Tanggal</th>
<th>Uraian</th>
<th>Pengeluaran</th>
<th>Sub Total</th>
</tr>
</thead>
<tbody>
<?php
if(isset($_POST["btnCetak"])){
$sql_tampil = "select * from kas_pembangunan where jenis='keluar' and tgl_kp BETWEEN '$dt1' AND '$dt2' order by tgl_kp asc";
}
$query_tampil = mysqli_query($koneksi, $sql_tampil);
$no=1;
while ($data = mysqli_fetch_array($query_tampil,MYSQLI_BOTH)) {
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php $tgl = $data['tgl_kp']; echo date("d/M/Y", strtotime($tgl))?></td>
<td><?php echo $data['uraian_kp']; ?></td>
<td align="right"><?php echo rupiah($data['keluar']); ?></td>
<td align="right"></td>
</tr>
<?php
$no++;
}
?>
</tbody>
<tr>
<td colspan="4" align="right">Total Pengeluaran</td>
<td><?php echo rupiah($keluarp); ?></td>
</tr>
<!-- tutup pengeluaran pembangunan-->
<tr>
<td colspan="5"><b>TOTAL KAS</b> </td>
</tr>
<tr>
<td colspan="4">Saldo Kas Masjid</td>
<td align='right'><?php echo rupiah($saldo); ?></td>
</tr>
<tr>
<td colspan="4">Saldo Kas Pembangunan</td>
<td align='right'><?php echo rupiah($saldop); ?></td>
</tr>
<?php $tott=$saldo + $saldop;?>
<tr>
<td colspan="4">Saldo Keseluruhan</td>
<td align='right'><?php echo rupiah($tott); ?></td>
</tr>
</table>
</center>
<script>
window.print();
</script>
</body>
</html>
4. Tampilkan Hasil Data dalam Tabel
Terakhir, tampilkan hasil data dari database dalam bentuk tabel pada halaman PHP yang sama (“kas_arus_per.php”) atau Anda dapat membuat halaman baru khusus untuk menampilkan laporan.
Untuk lebih jelas penjelasan kodingnya bisa hubungi Golan Education atau silahkan tonton pada link video berikut: https://youtu.be/iVOZXq5vy9s
Kesimpulan Golan:
Dengan mengikuti langkah-langkah di atas, Anda telah berhasil membuat laporan cetak transaksi arus kas Masjid dengan periode tanggal tertentu menggunakan PHP dan MySQL. Pengguna dapat memilih periode tanggal yang diinginkan melalui form, dan laporan akan menampilkan semua transaksi yang terjadi dalam periode tersebut dalam bentuk tabel.
Pastikan untuk selalu menjaga keamanan kode Anda dengan melakukan validasi data yang masuk dari form dan menggunakan metode query yang aman untuk mencegah serangan SQL injection. Selain itu, Anda dapat meningkatkan tampilan dan fitur laporan sesuai dengan kebutuhan bisnis Anda. Apabila Anda butuh bantuan untuk membuatkan laporan cetak seperti kasus ini, Silahkan hubungi Golan Education. Golan Education siap membantu Anda sampai tuntas. Selamat mencoba!. (Golan)