Tutorial Accounting Debit, Kredit dengan PHP Part 2

Sore ini saya mw update Tutorial Accounting Debit, Kredit dengan PHP dimana saya menambahkan session user, ini merupakan request dari Ahmad Ahyad pengunjung website 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
Jika ada yang tidak tahu penjelasan Part 1 silakan Baca disini
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 ;

--
-- Dumping data for table `tb_bulan`
--

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,
  `id_user` int(10) NOT NULL,
  `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=15 ;

--
-- Dumping data for table `tb_hitung`
--

INSERT INTO `tb_hitung` (`id_bulan`, `id_hitung`, `id_user`, `Keterangan`, `Debit`, `Kredit`, `date`) VALUES
(12, 1, 1, 'Saldo Awal', 50000000, 0, '2011-12-27'),
(12, 2, 1, 'Pembayaran Piutang', 0, 25000000, '2011-12-28'),
(12, 3, 1, 'Pembelian Aset', 0, 7000000, '2011-12-29'),
(12, 4, 1, 'Pembayaran Piutang', 10000000, 0, '2011-12-30'),
(12, 5, 1, 'Pembelian Aset', 0, 2500000, '2011-12-30'),
(12, 8, 1, 'Mutasi', 0, 10000000, '2011-12-31'),
(12, 9, 2, 'Saldo Awal', 50000000, 0, '2011-12-27'),
(12, 10, 2, 'Pembayaran Piutang', 0, 25000000, '2011-12-28'),
(12, 11, 2, 'Pembelian Aset', 0, 7000000, '2011-12-29'),
(12, 12, 2, 'Pembayaran Piutang', 10000000, 0, '2011-12-30'),
(12, 13, 2, 'Pembelian Aset', 0, 2500000, '2011-12-30'),
(12, 14, 2, 'Mutasi', 0, 20000000, '2011-12-31');
4. Nama table yang kedua adalah tb_user dan silakan copy script dibawah ini dan paste di sql comment.
CREATE TABLE IF NOT EXISTS `tb_user` (
  `id_user` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `password` varchar(50) NOT NULL,
  `nama_lengkap` varchar(50) NOT NULL,
  `id_session` varchar(20) NOT NULL,
  PRIMARY KEY (`id_user`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `tb_user`
--

INSERT INTO `tb_user` (`id_user`, `username`, `password`, `nama_lengkap`, `id_session`) VALUES
(1, 'depri', 'bf5f4820151b466740decf912a2b0ee0', 'Depri Pramana', 'ki6n6i3phgcsi5lv2gdt'),
(2, 'sasuke', '93207db25ad357906be2fd0c3f65f3dc', 'Sasuke Uchiha', '7lt6i9fr86gu1l3dc91c');
5. Kemudian copy paste script berikut di notepad dan simpan dengan nama deposit.php.
<?php 
if (!isset($_SESSION)){
  session_start();
}
if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
  echo "<link href='style.css' rel='stylesheet' type='text/css'>
 <center>Untuk mengakses modul, Anda harus login <br>";
  echo "<a href=index.php><b>LOGIN</b></a></center>";
}
else{
echo "<link href='style.css' rel='stylesheet' type='text/css'>";
$conn=mysql_connect('localhost','root','');
if(!$conn)
{
 die('Could not connect: ' . mysql_error());
}
$user_id=$_SESSION[user_id];
$nama   =$_SESSION[namalengkap];
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 
       where tb_hitung.id_user='.$user_id.' ORDER BY tb_hitung.id_hitung');

echo"<table border='1' align='center'>";
 echo"<tr>";
  echo"<th colspan='4'>$nama</th>";
  echo"<th><a href=logout.php><b>LOGOUT</b></a></th>";
 echo"</tr>";
 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){
   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){   
    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{
    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>";  

}
?>
5. Kemudian copy paste script berikut di notepad dan simpan dengan nama cek_login.php.
<?php
$conn=mysql_connect('localhost','root','');
if(!$conn)
{
 die('Could not connect: ' . mysql_error());
}
$user_id=$_session[user_id];
mysql_select_db('db_counting',$conn);

function anti_injection($data){
  $filter = mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))));
  return $filter;
}

$username = anti_injection($_POST['username']);
$pass     = anti_injection(md5($_POST['password']));

// pastikan username dan password adalah berupa huruf atau angka.
if (!ctype_alnum($username) OR !ctype_alnum($pass)){
  echo "Sekarang loginnya tidak bisa di injeksi lho.";
}
else{
$login=mysql_query("SELECT * FROM tb_user WHERE username='$username' AND password='$pass'");
$ketemu=mysql_num_rows($login);
$r=mysql_fetch_array($login);

// Apabila username dan password ditemukan
if ($ketemu > 0){
  session_start();

  $_SESSION[namauser]     = $r[username];
  $_SESSION[namalengkap]  = $r[nama_lengkap];
  $_SESSION[passuser]     = $r[password];
  $_SESSION[user_id]      = $r[id_user];

 $sid_lama = session_id();
 
 session_regenerate_id();

 $sid_baru = session_id();

  mysql_query("UPDATE tb_user SET id_session='$sid_baru' WHERE username='$username'");
  header('location: deposit.php');
}
else{
  echo "<center>LOGIN GAGAL! <br> 
        Username atau Password Anda tidak benar.<br>
        Atau account Anda sedang diblokir.<br>";
  echo "<a href=index.php><b>ULANGI LAGI</b></a></center>";
}
}
?>

6. Kemudian copy paste script berikut di notepad dan simpan dengan nama index.php.
<html>
<head>
<title>Administrator</title>
<script language="javascript">
function validasi(form){
  if (form.username.value == ""){
    alert("Anda belum mengisikan Username.");
    form.username.focus();
    return (false);
  }
     
  if (form.password.value == ""){
    alert("Anda belum mengisikan Password.");
    form.password.focus();
    return (false);
  }
  return (true);
}
</script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body OnLoad="document.login.username.focus();">
<div id="header">
  <div id="content">
  <h2>Login</h2>
    <img src="login-welcome.gif" width="97" height="105" hspace="10" align="left">

<form name="login" action="cek_login.php" method="POST" onSubmit="return validasi(this)">
<table>
<tr><td>Username</td><td> : <input type="text" name="username"></td></tr>
<tr><td>Password</td><td> : <input type="password" name="password"></td></tr>
<tr><td colspan="2"><input type="submit" value="Login"></td></tr>
</table>
</form>


<p> </p>
  </div>
 <div id="footer">
   Copyright © 2009 by mytutorialswebsite. All rights reserved.
 </div>
</div>
</body>
</html>
kemudian silakan jalankan di browser maka akan mendapatkan hasil berikut:
 Form Login:
Form Utama:
Silakan kembangkan tutorial yang saya berikan sehingga menjadi lebih baik dan berguna.
Salah Hangat,
Depri Pramana

14 komentar

Mastah,

Ini username sama password nya kok gak bisa terus ya???

saya coba copy paste dulu di xammplite saya, tetapi pas pencet login, selalu yang keluar:

LOGIN GAGAL!
Username atau Password Anda tidak benar.
Atau account Anda sedang diblokir.
ULANGI LAGI


saya coba pakai username: depri
pass: bf5f4820151b466740decf912a2b0ee0

tapi tetap gak bisa mas... Kenapa ya mas????

username : depri
password : depri
username : sasuke
password : sasuke

Mastah,


Udah berhasil mastha :)... tapi gimana caranya ya om password nya supaya bisa encrypt gitu? saya coba insert ahmad pass ahmad tapi berubah...

Kasih tahu Mastah....


Thanks,

Maksud saya, saya coba insert user : ahmad pass : ahmad... tapi yang keluar tetap ahmad ahmad juga... gimana supaya password nya bisa encrypt gitu??

Thanks

Udah bisa Mastah....

Ternyata cuma di tambahkan md5() aja di password...

hehehe :D... Makasih ya Mastah.. berguna banget tutorialnya...

Nanti saya tanya lagi kalo ada permasalah ya... :D

coba mas kembangkan biar bisa dikasih input debet dan kreditnya ?

Oke, Tunggu update nya. :D

Lanjutkan gan..bagus tutorialnya. bener bang rizal, tambahin form inputnya :)

Sip gan, ini masih bikin biar sekalian buku besar nya gan..

bang, kok gax bisa di download ya

ini gimana ya

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\www\deposit.php on line 52

Notice: Undefined variable: debit in C:\xampp\htdocs\www\deposit.php on line 82

Notice: Undefined variable: kredit in C:\xampp\htdocs\www\deposit.php on line 83

Notice: Undefined variable: saldo in C:\xampp\htdocs\www\deposit.php on line 84

Mas ko gabisa di download source code nya?

makasih tutorialnya bermanfaat gan. kalau untuk hitung bunga efektif angsuran pinjaman gimana gan? mohon bantuannya.

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