Penerapan Form Input Dinamis pada Pembuatan Transaksi Jurnal Umum Akuntansi

11 June 2017 | Tags: , , , , ,


Kali ini saya akan membahas tentang penerapan form input dinamis pada pembuatan transaksi jurnal umum akuntansi. Untuk form dinamis sendiri sudah pernah saya tulis pada artikel : Membuat Form Input Dinamis Dengan Jquery dan Proses Form Dinamis Dengan PHP MySQL. Konsep dari form dinamis adalah kita bisa menambahkan element html yang bisa berupa text, combobox, checkbox dan yang lainnya sejumlah yang kita inginkan secara dinamis. Dan artikel kali ini dalam pembuatan aplikasinya menggunakan framework CodeIginter dan Bootstrap.

Ok, sebelum memulai mari kita mulai dari pengertian Jurnal Umum. Jurnal Umum adalah buku untuk mencatat analisis tiap transaksi secara kronologis atau beraturan  sesuai dengan tanggal kejadian [Badriyah Hurriyah: Praktis Menyusun Laporan Keuangan]. Jurnal umum dicatat dengan  menyebutkan akun yang di Debet maupun yang di Kredit.

Contoh Penerapan Form Input Dinamis pada Pembuatan Transaksi Jurnal Umum Akuntansi

Jadi untuk memulai materi ini kami mengasumsikan bahwa pembaca sudah memahami konsep dasar akuntansi, jika belum silahkan cari artikel sederhana untuk memahaminya.

Diagram E-R(Entity Relationship Diagram) Jurnal Umum

Untuk penerapan jurnal umum sederhana ke dalam aplikasi, kita membutuhkan beberapa tabel sebagai berikut:

  1. tbl_periode: tabel untuk merekam periode
  2. tbl_ju_header: tabel untuk merekan master dari jurnal umum
  3. tbl_ju_detail: tabel untuk merekam rincian kode perkiraan dari jurnal umum
  4. tbl_perkiraan: tabel master untuk kode perkiraan atau disebut Chart of Accounts (COA).
  5. tbl_perkiraan_group: tabel untuk mengelompokkkan kode perkiraan.

Adapun diagram E-R nya adalah sebagai berikut:

Diagram E-R Penerapan Form Input Dinamis pada Pembuatan Transaksi Jurnal Umum Akuntansi

Pembuatan Form Input Dinamis Pada Transaksi Jurnal Umum

Yang menjadi fokus pada artikel kali ini adalah penerapan Form Input Dinamis. Untuk konsep CRUD (Create, Read, Update, Delete) pada CodeIgniter bisa anda pelajari sendiri, karena begitu banyak contoh yang tersedia di Internet.

Pada transaksi Jurnal umum, satu transaksi bisa mempengaruhi minimal 2 (dua) perkiraan dimana jumlah total debet dan kredit harus sama.Sebagai contoh: Transaksi Pembelian Peralatan secara tunai akan mencatatkan kode perkiraan sebagai berikut:

  1. Pembelian Peralatan menyebabkan nilai peralatan bertambah sehingga kode perkiraan dicatat di kolom debet
  2. Pembelian peralatan secara tunai menyebabkan kas berkurang sejumlah nilai peralatan yang dibeli sehingga dicatat di kolom kredit.

Form Input Penerapan Form Input Dinamis pada Pembuatan Transaksi Jurnal Umum Akuntansi

Contoh kasus yang lain misalnya Transaksi Pembelian Perlengkapan seharga Rp. 1.000.000, dibayar dengan tunai Rp.400.000 dan hutang Rp. 600.000, maka pencatatannya adalah:

  1. Perlengkapan Bertambah dicatat di debet sebesar Rp. 1.000.000
  2. Kas Berkurang dicatat di kredit sebesar Rp.400.000
  3. Utang Usaha bertambah dicatat di kolom kredit sebesar Rp. 600.000

Nah dari kasus jurnal umum tersebut jika diterapkan ke dalam aplikasi, dalam kasus berbasis web, maka kita perlu menggunakan form input dinamis untuk mencatat rincian perkiraan akun yang terlibat.

Dalam contoh kasus diatas ketika kita menambah rincian, maka akan muncul rincian baru dengan kolom: kode perkiraan, kolom debet  dan kolom kredit. Khusus pada kode perkiraan diambil dari tabel tbl_perkiraan.

Pembuatan Form Dinamis dengan Jquery/Javascript

Untuk membuat form dinamis kita perlu membuatkan fungsi yang disimpan pada file javascript: assets/js/arf.js

Adapun script nya adalah sebagai berikut:

function addRincian(sl_coa) {
    var idf = document.getElementById("idf").value;
	stre="<div class='form-group'  id='srow" + idf + "'><div class='controls'>";
	stre=stre+"<label for='NamaLengkap' class='control-label col-xs-2 ckeditor'></label>";
	stre=stre+" <div class='col-xs-4'>";
	stre=stre+sl_coa;
	stre=stre+"</div>";
	stre=stre+" <div class='col-xs-2'>";
	stre=stre+"<input placeholder='Debet'  type='text' class='form-control input-sm' name='debet[]'   />";
	stre=stre+"</div>";
	stre=stre+" <div class='col-xs-2'>";
	stre=stre+"<input placeholder='Kredit'  type='text' class='form-control input-sm' name='kredit[]'   />";
	stre=stre+"</div>";

	stre=stre+"<div class='col-xs-1'> <button type='button' class='btn btn-danger btn-sm' title='Hapus Rincian !' onclick='removeFormField(\"#srow" + idf + "\"); return false;'><i class='glyphicon glyphicon-remove'></i></button></div> </div>";
    $("#divAkun").append(stre);
    idf = (idf-1) + 2;
    document.getElementById("idf").value = idf;
}
function removeFormField(idf) {
    $(idf).remove();
}

Pada fungsi kita menyertakan parameter  sl_coa yang berisi nilai element untuk menampilkan combobox/dropdown daftar kode perkiraan yang diambil dari tabel tbl_perkiraan.

Pemanggilan Fungsi

Kembali ke paramter sl_coa diatas, itu dibuat dengan query ke tbl_perkiraan sehingga daftar kode perkiraan disimpan pada sl_coa. Varibel sl_coa berisi perintah html untuk membuat element form select/combobox.

  <?php
       	$sl_coa="<select name=coa[] class=form-control input-sm>";
	    if(count($gp)>0)
		{
		   foreach($gp as $rg)//fetch dari tbl_perkiraan_group
			{
		     	    $kelompok=$rg->id;
			    $sl_coa.="<option value=$kelompok disabled=disabled>".strtoupper($rg->nama_pg)."</option>";
			    $this->db->order_by('coa_perkiraan','ASC');
			    $perkiraan= $this->db->get_where('tbl_perkiraan',array('kelompok'=>$kelompok));
			    foreach ($perkiraan->result_array() as $data )
				{
			  	  $ip=$data['id_perkiraan'];
				  $sl_coa.= "<option value=$ip>&nbsp;&nbsp;&nbsp;&nbsp;".$data['coa_perkiraan']."-".$data['nama_perkiraan']."</option>";
				}
			}
		 }
	$sl_coa.="</select>";
?>

Pemanggilan Lewat Button

<a class="btn btn-primary btn-sm"  onclick="addRincian('<?php echo $sl_coa;?>'); return false;"><i class="glyphicon glyphicon-plus"></i> Tambah Rincian</a>

Proses Form Dinamis

Selanjutnya pada Controller tinggal melakukan proses untuk menyimpan form dinamis yang dengan menggunakan array.

    //----------------INSERT DETAIL--------------------------------------
   if($this->input->post('coa'))
	{
  	  $v1=$this->input->post('coa');
	  while(list($key,$value)=each($v1))
	    {
		$ca=$this->input->post("coa[$key]");
		$debet=$this->input->post("debet[$key]")*1;
		$kredit=$this->input->post("kredit[$key]")*1;
		$data2=array('coa'=>$ca,
			     'header'=>$header,
			     'debet'=>$debet,
                             'kredit'=>$kredit);
                $this->db->insert('tbl_ju_detail',$data2);			 
            }
       }

Ok, demikian tutorial kali ini semoga bermanfaat dan bisa diterapkan.

Download Form Input Input Dinamis pada Transaksi Jurnal Umum

Share via Facebook / Twitter / Google + untuk Download


Komentar via Facebook tentang Penerapan Form Input Dinamis pada Pembuatan Transaksi Jurnal Umum Akuntansi

Komentar tentang Penerapan Form Input Dinamis pada Pembuatan Transaksi Jurnal Umum Akuntansi

  • ini kenapa ya?
    A PHP Error was encountered
    Severity: Warning

    Message: mysqli::real_connect(): (HY000/1045): Access denied for user ‘root’@’localhost’ (using password: YES)

    Filename: mysqli/mysqli_driver.php

    Line Number: 201

    Backtrace:

    File: C:\xampp\htdocs\simpak\index.php
    Line: 315
    Function: require_once

    A Database Error Occurred
    Unable to connect to your database server using the provided settings.

    Filename: C:/xampp/htdocs/simpak/system/database/DB_driver.php

    Line Number: 436

  • Kodingannya rumit sekali ya kak. Bingung kalo mau pake buat belajar-belajar. Ada yang lebih simple gak kak tapi tampilannya sama seperti yang sekarang.. 😉

  • saya baru download lalu test, kok pas mau input gak ada periode yang aktif ya? db nya juga kosong. gimana nih solusinya mastah?

  • maksudnya ganti nilai stt jadi 1 apa ya mas. saya ga ngerti. boleh dijelasin sedikit detail apa yang harus saya lakukan? terimakasih

  • Maaf mau nany nilai stt yang diubah menjadi 1 itu dibagian mana ya bli?soalnya saya sudah mencoba mengubah nilai 1 pada bawaan tapi tetap menampilkan tulisan tidak ada periode aktif. terimakasih sebelumnya

  • ini kenapa ya kak?
    A PHP Error was encountered
    Severity: Warning
    Message: mysqli::real_connect(): (HY000/1045): Access denied for user ‘root’@’localhost’ (using password: YES)
    Filename: mysqli/mysqli_driver.php
    Line Number: 201
    Backtrace:
    File: C:\xampp\htdocs\simpak\index.php
    Line: 315
    Function: require_once
    A Database Error Occurred
    Unable to connect to your database server using the provided settings.
    Filename: C:/xampp/htdocs/simpak/system/database/DB_driver.php
    Line Number: 436

    • Rencanakan dulu konsep yang mau dibuat seperti apa. Nanti untuk konsep berjenjang pelajari caranya, banyak tutorial di internet.

  • A PHP Error was encountered
    Severity: Notice

    Message: Trying to access array offset on value of type null

    Filename: jurnal/form.php

    Line Number: 21

    Backtrace:

    File: C:\xampp\htdocs\simpak\application\views\transaksi\jurnal\form.php
    Line: 21
    Function: _error_handler

    File: C:\xampp\htdocs\simpak\application\controllers\Transaksi.php
    Line: 136
    Function: view

    File: C:\xampp\htdocs\simpak\index.php
    Line: 315
    Function: require_once

    • Itu notice error tapi tetap bisa jalan. Penyebabnya karena versi PHP atau Mysql yang dipakai terbaru. Solusinya bisa dengan non aktifkan pesan notice error, atau untuk form input dan edit dibuat terpisah.

  • Silahkan tulis saran, komentar dan pertanyaan dibawah!

    Your email address will not be published. Required fields are marked *