Tutorial Accounting Debit, Kredit dengan PHP

Pagi hari ini saya akan membagi info dimana kemarin saya di minta tolong untuk membuatkan tutorial mengenai Debit, Kredit dan saldo, dimana di excel sangat mudah dilakukan dengan menggunakan rumus yang terdapat di excel tetapi bagaimana jika di lakukan menggunakan PHP. silakan ikuti tutorial berikut ini.

pertama-tama kalian harus membuat database dengan mengunakan xampp atau appserver dll yang sudah terdapat mysql-nya.
untuk contoh ini saya mengunakan xampp,
Download Source Code
1. Buat nama db nya db_counting
2. Nama table tb_bulan dan silakan copy script dibawah ini dan paste di sql comment.

CREATE TABLE IF NOT EXISTS `tb_bulan` (
  `id_bulan` int(11) NOT NULL AUTO_INCREMENT,
  `bulan` int(3) NOT NULL,
  `tahun` int(4) NOT NULL,
  PRIMARY KEY (`id_bulan`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;

INSERT INTO `tb_bulan` (`id_bulan`, `bulan`, `tahun`) VALUES
(1, 1, 2011),
(2, 2, 2011),
(3, 3, 2011),
(4, 4, 2011),
(5, 5, 2011),
(6, 6, 2011),
(7, 7, 2011),
(8, 8, 2011),
(9, 9, 2011),
(10, 10, 2011),
(11, 11, 2011),
(12, 12, 2011);


3. Nama table yang kedua adalah tb_hitung dan silakan copy script dibawah ini dan paste di sql comment.
CREATE TABLE IF NOT EXISTS `tb_hitung` (
  `id_bulan` int(7) NOT NULL,
  `id_hitung` int(7) NOT NULL AUTO_INCREMENT,
  `Keterangan` varchar(200) NOT NULL,
  `Debit` int(50) NOT NULL,
  `Kredit` int(50) NOT NULL,
  `date` date NOT NULL,
  PRIMARY KEY (`id_hitung`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

INSERT INTO `tb_hitung` (`id_bulan`, `id_hitung`, `Keterangan`, `Debit`, `Kredit`, `date`) VALUES
(12, 1, 'Saldo Awal', 50000000, 0, '2011-12-27'),
(12, 2, 'Pembayaran Piutang', 0, 25000000, '2011-12-28'),
(12, 3, 'Pembelian Aset', 0, 7000000, '2011-12-29'),
(12, 4, 'Pembayaran Piutang', 10000000, 0, '2011-12-30'),
(12, 5, 'Pembelian Aset', 0, 2500000, '2011-12-30'),
(12, 8, 'Mutasi', 0, 10000000, '2011-12-31');

4. Kemudian copy paste script berikut di notepad dan simpan dengan nama deposit.php.
<?php

$conn=mysql_connect('localhost','root','');

if(!$conn)
{
 die('Could not connect: ' . mysql_error());
}

mysql_select_db('db_counting',$conn);


$result=mysql_query('SELECT tb_hitung.Keterangan, tb_hitung.Debit, tb_hitung.Kredit FROM tb_hitung INNER JOIN tb_bulan ON tb_hitung.id_bulan=tb_bulan.id_bulan ORDER BY tb_hitung.id_hitung');

echo"<table border='1'>";
 echo"<tr>";
  echo"<th>No</th>";
  echo"<th>Keterangan</th>";
  echo"<th>Debit</th>";
  echo"<th>Kredit</th>";
  echo"<th>Saldo</th>";
 echo"</tr>";
 echo"<tr>";
 $count=1;
function num($rp){
if($rp!=0){
 $hasil = number_format($rp, 2, '.', ',');
 }
 else{
 $hasil=0;
 }
return $hasil;
}

while($hasil=mysql_fetch_array($result)){
  echo"<td>$count</td>";
  echo"<td>RP. ".$hasil['Keterangan']."</td>";
  if($count==1){
    /* pertama kali deklarasi Debit */
   echo"<td>Rp. ".num($hasil['Debit'])."</td>";
   echo"<td>Rp. ".num($hasil['Kredit'])."</td>";
   $debit=$hasil['Debit'];
   $saldo=$hasil['Debit']."</td>";
   echo"<td>RP. ".num($saldo);   
  }else{
   if($hasil['Debit']!=0){   
     /* Jika debit tidak sama dengan 0 */
    echo"<td>Rp. ".num($hasil['Debit'])."</td>";
    echo"<td>Rp. ".num($hasil['Kredit'])."</td>";
    $debit=$debit+$hasil['Debit'];
    $saldo=$saldo+$hasil['Debit']."</td>";
    echo"<td>Rp. ".num($saldo);    
   }else{
    /* Jika debit sama dengan 0 */
    echo"<td>Rp. ".num($hasil['Debit'])."</td>";
    echo"<td>Rp. ".num($hasil['Kredit'])."</td>";
    $kredit=$kredit+$hasil['Kredit'];
    $saldo=$saldo-$hasil['Kredit']."</td>";
    echo"<td>Rp. ".num($saldo);    
   }
  }
 echo"</tr>";
 echo"<tr>";
  $count++;
}
echo"<tr>";
  echo"<th colspan='2'>Jumlah</th>";
  echo"<th>Rp. ".num($debit)."</th>";
  echo"<th>Rp. ".num($kredit)."</th>";
  echo"<th>Rp. ".num($saldo)."</th>";
 echo"</tr>";
echo"</table>";

?>

kemudian silakan jalankan di browser maka akan mendapatkan hasil berikut:
Silakan kembangkan tutorial yang saya berikan sehingga menjadi lebih baik dan berguna.

22 komentar

i like this tutorial . thank ya parta

boleh juga tutorialnya gan, hehehe cakep.
buat tutorial messagebox antara user di gimana ya

@Arul-id: Tutorial Messagebox bagaimana nih magsud nya?

Mantap bener tutorialnya... Saya coba sekali aja, langsung nongol di web saya... Jelas banget...

mas gimana ya caranya supaya data yang di tampilkan hanya berdasarkan username, dan tidak semua data di tampilkan.. Saya udah coba coba ganti di daerah
$result=mysql_query('SELECT tb_hitung.Keterangan, tb_hitung.Debit, tb_hitung.Kredit FROM tb_hitung INNER JOIN tb_bulan ON tb_hitung.id_bulan=tb_bulan.id_bulan ORDER BY tb_hitung.id_hitung');


tetapi tetep gak bisa mas... Mohon Pencerahannya,


Thanks


Ahyad

@ahmad, Magsud anda jika username (Ahmad) membuat transaksi dengan nilai (xxxxx) maka dia hanya bisa menampilakan transaksi dia aja, Bgt kan magsud nya?

Jika begitu anda harus biuat kan table user contoh: tb_user(menampung nama user), tb_hitung(terhubung dengan tb_user), tb_bulan(terhubung dengan tb_hitung). jadi 3 table ini saling berelasi.

Note: jika belum jelas nanti saya akan buatkan tutorials nya. :)

kurang lengkap penjelasan saya.. hehe sorry masih newbie..

Gini mas, saya sudah ada tabel user nya (id, username, password).. dari tabel di atas saya sudah ada nambahkan satu kolom yaitu Nama. jadi tabel yang ada sekarang pada saya adalah Nama, Keterangan, Debit, kredit ,Saldo.

jadi sewaktu user login, data yang di tampilkan cuma nama yang sesuai dengan username orang tersebut.. jadi transaksi yang lain tidak terlihat..

Mudahan mastah admin paham maksud saya :)

Gimana caranya ya?

yah kalo ada tutorialnya lebih bagus lagi.. jadi lebih mudah di pelajari..

@ahmad, Silakan lihat tutorial ini http://mytutorialswebsite.blogspot.com/2012/06/tutorial-accounting-debit-kredit-dengan.html semoga membantu. jika kurang jelas silakan tanyakan lagi kepada saya.

Wokeee mastah admin,


Saya baca dulu tutorialnya... kalo ada masalah, nanti saya tanya lagi ya mastah admin...

Terima Kasih

mas klo di tambahkan dengan fasilitas search by month and year cara nya gimana nya, kmrn aku sudah coba selalu muncul error kayak di bawah ini :

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\helenabeautyhouse\bp\lihat_jurnal_kas.php on line 71

Script untuk select data nya gimana mas.
SELECT * FROM tb_accounting WHERE date_format(postdate, '%M %Y') = '$blnth'

Pusing juga nya programnya....

gan mohon bimbingan,

misal kita ingin membuat tabelnya berdasarkan bulan, terus akan didapatkan total saldo dari suatu bulan, misal saldo akhir bulan 1 sebesar RP. 200.000

nah untuk table bulan ke-2, total saldo tadi dimasukkan juga ke dalam table, begitupun di table bulan 3, juga akan digunakan total saldo dari bulan ke-2, dst smpai table bulan ke-12

mohon bantuannya

Sorry Bru balas, itu Gampang Gan, km buat query yang berbeda dari query select berdasarkan bulan atau km bisa simpan saldo akhir bulan ini kedalam database.

maaf gan kayaknya tampilan debet kreditnya salah...setau ane kredit itu menambah saldo, klo debet itu baru mengurangi saldo...itu menurut ane maaf klo salah maklum ane bukan akuntan

Bigini gan. Jika bicara mengenai debit kredit itu Ada dua sisi. Pertama Dari sudut pandang sendiri atau untuk diri kita sendiri yg artinya cash flow itu kredit : Pengeluaran Dan debit untuk pemasukan. Dan jika untuk sudut pandang orang Lain atau berada diposisi bank sehingga Kita berada di pihak bank dimana bank itu meminjam uang ke nasabah. Maka kredit adalah pemasukan Dan debit adalah pengurangan

Terimakasih gan, problem solved.

Gan mau nanya, itu kalo kredit yang pertama debit nya kosong tapi kredit nya terisi lalu bawahnya debitnya kosong kreditnya terisi, berarti kan kredit pertama tadi jadi saldo lalu saldo ditambah kredit bawahnya. Nah kalo kodingan agan saya run, itu tidak berlaku seperti itu, bagaimana ya gan caranya jika seperti itu gan?

bagi kalian yang menginginkan program diatas, silahkan kunjungi link Github dibawah ini. saya sudah update ke versi PHP>7 dan sudah diperbaiki beberapa bug didalam program tersebut.
https://github.com/widiarrohman1234/depositMaster

This comment has been removed by the author.

Silakan Berikan Komentar anda yang bisa mendukung blog ini, komentar anda saya harapkan, terima kasih
EmoticonEmoticon