PEMROGRAMAN INPUT JURNAL TRANSAKSI Bab ini: Membahas tentang tabel yang digunakan dalam pembuatan form input jurnal. Membahas tentang pembuatan form input jurnal. Membahas tentang edit, hapus, dan update data tansaksi. Membahas tentang program untuk melakukan konfirmasi transaksi.
Bagian ini akan membahas tentang bagaimana melakukan pemrograman input jurnal transaksi, termasuk di dalamnya menghapus, mengedit, dan mencetak. Jurnal transaksi merupakan data awal yang akan digunakan untuk bahan acuan pembuatan laporan-laporan keuangan lainnya. Input dalam jurnal transaksi ini diambil dari bukti-bukti transaksi yang ada. Dalam studi kasus yang dilakukan untuk sistem ini, input jurnal transaksinya dibedakan menjadi tiga jenis yang terdiri atas: 63
•
Jurnal Kas Masuk, jurnal yang berhubungan dengan uang masuk atau kas masuk, seperti jurnal untuk transaksi hasil penjualan barang atau pendapatan lainnya.
•
Jurnal Kas Keluar, jurnal yang berhubungan dengan pengeluaran atau kas keluar, seperti jurnal untuk pembayaran gaji, listrik, telepon, pembelian barang, dan sebagainya.
•
Jurnal Non-Kas, digunakan untuk transaksi yang tidak secara langsung berhubungan dengan kas.
Pada dasarnya dari ketiga input jurnal ini memiliki proses yang sama. Hanya saja perbedaan terletak pada tampilan jurnal non-kas yang tidak berhubungan langsung dengan pemasukan atau pengeluaran.
Tabel Jurnal Sebelum membuat form untuk input jurnal transaksi, langkah pertama adalah membuat tabel databasenya terlebih dulu. Tabel yang digunakan pada form input Jurnal tersebut adalah tabel Jurnal yang dibuat pada database Akuntansi pada Microsoft SQL Server. Tabel Jurnal berisikan field-field sebagai berikut. 1. Field Nomor Jurnal, bertipe data character dengan ukuran 10 digunakan untuk memasukkan kode nomor jurnal. 2. Field Tanggal, bertipe data date time dengan ukuran field 8 bit, digunakan untuk memasukkan tanggal terjadinya transaksi dari dokumen yang diinput. 3. Field Keterangan, bertipe data character dengan ukuran field 10 bit digunakan untuk memasukkan kode nomor jurnal. 4. Field Nomor Akun, bertipe data character dengan ukuran field 10 bit digunakan untuk memasukkan kode akun dari transaksi yang diinputkan. 5. Field Debet, bertipe data decimal dengan ukuran field 9 bit, digunakan untuk memasukkan nilai transaksi sisi debet.
64
6. Field Kredit, bertipe data decimal dengan ukuran field 9 bit, digunakan untuk memasukkan nilai transaksi sisi kredit. Masuklah kembali ke Microsoft SQL Server ke database Akuntansi. Kemudian buat tabel Jurnal seperti pada jendela di bawah ini.
Gambar 5.1. Tabel Properties Jurnal
Selanjutnya akan dibahas pembuatan form input jurnal transaksi seperti di bawah ini.
Form Input Jurnal Form yang digunakan untuk input jurnal transaksi dirancang seperti pada gambar di bawah ini.
65
Radio Button
List View
Gambar 5.2. Desain Form Input Jurnal Transaksi
Beberapa objek dalam tampilan di atas dapat dijelaskan fungsinya sebagai berikut. •
Kolom Jenis Transaksi, dibuat dari radio button digunakan untuk memilih jenis Jurnal (apakah Jurnal Kas Masuk, Kas Keluar, atau Non-Kas).
•
Kolom Nomer Transaksi, digunakan untuk memasukkan nomor voucher transaksi.
•
Kolom Tanggal, digunakan untuk memasukkan tanggal input jurnal transaksi.
•
Kolom Keterangan digunakan untuk memasukkan keterangan detail transaksi.
•
Kolom List View, digunakan untuk memasukkan data item jurnal transaksi.
•
Kolom Total, untuk menghitung total nilai transaksi.
•
Kolom Selisih, digunakan untuk mengecek debet dan kredit apakah sudah imbang (balance).
66
Untuk mengisi program pada form tersebut, klik ganda form yang telah dibuat dan isikan kode sesuai keinginan. Sebagai contoh, untuk menampilkan jurnal kas masuk dan kas keluar pada listview, isikan skrip program seperti di bawah ini. Private Overloads Sub BuatKolom() Dim satu, dua, tiga As ColumnHeader satu = New ColumnHeader With satu .Text = " No Akun" .TextAlign = HorizontalAlignment.Center .Width = 100 End With dua = New ColumnHeader With dua .Text = "Nama Akun" .TextAlign = HorizontalAlignment.Left .Width = 250 End With tiga = New ColumnHeader With tiga .Text = "Jumlah Rupiah" .TextAlign = HorizontalAlignment.Right .Width = 150 End With With Me._isiListView .Columns.Add(satu) .Columns.Add(dua) .Columns.Add(tiga) .View = View.Details .GridLines = True End With End Sub
Prosedur yang diberi nama Buatkolom seperti di atas, digunakan untuk membuat grid yang berisikan 3 kolom, yaitu No Akun, Nama Akun, dan Jumlah, seperti yang terdapat pada Gambar 5.3. Kode program seperti di atas digunakan untuk tansaksi Kas Masuk atau Kas Keluar. Jadi, pada listview hanya muncul perkiraan satu sisi, yaitu Jumlah Rupiah. Kolom Jumlah Rupiah tersebut akan berarti Kredit jika jenis transaksi yang dipilih adalah Kas Masuk, atau berarti Debet jika jenis transaksi yang dipilih adalah Kas Keluar.
67
Gambar 5.3. Form Input Jurnal Transaksi Arus Kas
Jika jenis transaksi yang dipilih adalah Jurnal Non Kas, kolom pada list View akan dimunculkan sebanyak 4 kolom, yaitu No Akun, Nama Akun, Debet, dan Kredit. Kode programnya nampak pada Prosedur BuatKolomNoKas seperti di bawah ini. Private Overloads Sub BuatKolomNoKas() Dim satu, dua, tiga, empat As ColumnHeader satu = New ColumnHeader With satu .Text = "No Akun" .TextAlign = HorizontalAlignment.Center .Width = 75 End With With dua .Text = " Nama Akun" .TextAlign = HorizontalAlignment.Left .Width = 225 End With tiga = New ColumnHeader With tiga .Text = "Debet" .TextAlign = HorizontalAlignment.Right .Width = 100 End With empat = New ColumnHeader With empat
68
.Text = "Kredit" .TextAlign = HorizontalAlignment.Right .Width = 100 End With With Me._isiListView .Columns.Add(satu) .Columns.Add(dua) .Columns.Add(tiga) .Columns.Add(empat) .View = View.Details .GridLines = True End With End Sub
Berikut tampilan jika jenis transaksi yang dipilih adalah transaksi Jurnal No Kas.
Gambar 5.4. Form Input Jurnal Transaksi Non-Kas
Dalam tampilan input jurnal ini, juga terdapat nomer transaksi yang memiliki sifat mutlak, di mana jika input jurnal, maka nomer transaksi ini harus terisi. Untuk mempermudah pengguna, field Nomer Transaksi ini dapat diisi secara otomatis pada saat membuka tampilan input jurnal. Adapun kode untuk pengisian nomer transaksi tersebut adalah seperti di bawah ini. 69
Private Sub IsiNoJurnal() Dim obj As New clsNoJurnal Dim x As Integer = 0 If obj.NoJurnal.Length = 6 Then Dim a As String = Right(obj.NoJurnal, 2) x = CType(a, Integer) + 1 ElseIf obj.NoJurnal.Length = 7 Then Dim a As String = Right(obj.NoJurnal, 3) x = CType(a, Integer) + 1 Else Dim a As String = Right(obj.NoJurnal, 1) x = CType(a, Integer) + 1 End If If Me._rbtnKasmasuk.Checked Then Me._txNomer.Text = "JKM-" & x ElseIf Me._rbtnKasKeluar.Checked Then Me._txNomer.Text = "JKK-" & x ElseIf Me._rbtnJurnal.Checked Then Me._txNomer.Text = "JNK-" & x End If End Sub
Tanggal dalam input jurnal ini tanggal akan diset pada tanggal saat pembuatan jurnal.
Proses Input Transaksi Input transaksi dapat dilakukan jika salah satu jenis transaksi telah dipilih (Kas Masuk, Kas Keluar, No Kas). Untuk menginputkan transaksi menggunakan tombol “Add - Akun List” seperti di bawah ini.
Gambar 5.5. Tombol Add
Pada tombol Add Akun List tersebut diisi dengan skrip seperti di bawah ini. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _btnAdd.Click
70
If Not _kabar Then Isilistjurnal() Else IsilistJurnalNoKas() End If CekCetak() End Sub
Sub atau prosedur IsiListJurnal( ) berisikan kode program sebagai berikut. Public Sub Isilistjurnal() Dim obj As New clsInputcountList Dim IsiForm As New ListAkunForm IsiForm.ShowDialog(Me) If IsiForm.Kabar Then With IsiForm obj.NoAkun = .NoAkun obj.NamaAkun = .NamaAkun obj.Rupiah = .Rupiah End With Dim item As New ListViewItem(obj.NoAkun) item.SubItems.Add(obj.NamaAkun) item.SubItems.Add(obj.Rupiah) Me._isiListView.Items.Add(item) item.Tag = obj _coll.Add(obj, obj.NoAkun) HitungTotal() End If End Sub
Sedangkan sub atau prosedur IsiListJurnalNoKas( ) berisikan kode program sebagai berikut. Public Sub IsilistJurnalNoKas() Dim obj As New clsInputcountList Dim IsiForm As New ListAkunForm With IsiForm .ChangeRP = True IsiForm.ShowDialog(Me) obj.NoAkun = .NoAkun obj.NamaAkun = .NamaAkun obj.Rupiah = .Rupiah obj.Kredit = .Kredit End With Dim item As New ListViewItem(obj.NoAkun) item.SubItems.Add(obj.NamaAkun) item.SubItems.Add(obj.Rupiah) item.SubItems.Add(obj.Kredit) Me._isiListView.Items.Add(item) item.Tag = obj
71
_coll.Add(obj, obj.NoAkun) HitungTotal() End Sub
ListAkunForm sendiri adalah form yang didesain sebagai berikut.
Gambar 5.6. List Akun Form
Kode-kode program dari form List akun form tersebut akan dibahas secara lebih lengkap pada lampiran buku ini. Selanjutnya setelah menekan Add Akun List, akan ditampilkan form daftar akun seperti di bawah ini.
72
Gambar 5.7. Form List Data Akun
Dalam tampilan ini, disediakan akun-akun yang telah dibuat dalam daftar akun dan dapat memilih akun yang sesuai dengan transaksi. Pilih kode akun yang diinginkan, kemudian klik. akan tampil sebuah form lagi untuk mengisikan besar nominalnya.
Gambar 5.8. Form Input Rupiah
73
Dalam pemanggilan form ini, data yang telah dipilih akan ditampung sementara sambil mengirimkan pesan untuk menampilkan form baru. Kode yang digunakan untuk melakukan hal tersebut adalah sebagai berikut. Public Sub IsiListTetangga() If Me._dataListView.SelectedItems.Count > 0 Then Dim obj As clsAkun Dim _isi As New clsInputcountList obj = CType(Me._dataListView.SelectedItems(0).Tag, clsAkun) Dim f As New JmlHrgForm If Me._changeRP Then f.Kode = Me._changeRP End If f.Nama = obj.Kode & "-" & obj.NoAkun & " " & obj.NamaAkun f.ShowDialog(Me) _noAkun = obj.Kode & "-" & obj.NoAkun _namaAkun = obj.NamaAkun _rupiah = f.Rupiah _kredit = f.Kredit Me.Close() End If End Sub
Pada tampilan seperti Gambar 5.8 di atas terdapat kolom Rp yang merupakan tenpat mengisikan jumlah nominal transaksi dalam satu akun per masing-masing bukti transaksi dalam satu hari. Kolom total merupakan akumulasi dari Rp yang dimasukkan. Jika klik tombol selesai, data yang telah diinput akan dikirimkan kembali pada form jurnal transaksi. Kode-kode untuk melakukan pengiriman tersebut adalah: If Not Me._lbTotal.Text = "" Then If Not Me._rbtnDebet.Checked = True And Not Me._rbtnKredit.Checked = True Then _rupiah = Me._lbTotal.Text Me.Close() Else If Me._rbtnDebet.Checked = True Then _rupiah = Me._lbTotal.Text Me.Close() ElseIf Me._rbtnKredit.Checked = True Then _kredit = Me._lbTotal.Text Me.Close() End If End If
74
Else MsgBox("Jumlah Rupiah Belum diisi", MsgBoxStyle.Question, "Konfirmasi Harga") End If
Berikut contoh tampilan form Input jurnal setelah data diisikan.
Nilai yang diinputkan
Gambar 5.9. Hasil Input Transaksi
Edit Jurnal Transaksi Edit daftar transaksi dapat dilakukan bila transaksi telah ada, dan sebelum disimpan akan diakukan perubahan. Pilih transaksi pada kolom listview yang akan diubah, dan klik tombol Edit, maka akan ditampikan form edit seperti di bawah ini.
Gambar 5.10. Form Edit List Transaksi
75
Untuk memanggil form edit tersebut, kode yang digunakan adalah seperti berikut ini. Private Sub EditList() If Me._isiListView.SelectedItems.Count > 0 Then Dim FIsi As New IsiListForm Dim obj As clsInputcountList obj=CType(CType(Me._isiListView.SelectedItems.Item(0), ListViewItem).Tag, clsInputcountList) Me._baseItem = obj With FIsi If _kabar Then ._lbKredit.Visible = True ._lbRp2.Visible = True ._txKredit.Visible = True ._lbDebet.Text = "Jumlah Debet" End If .NoAkun = obj.NoAkun .NamaAkun = obj.NamaAkun .Debet = obj.Rupiah .Kredit = obj.Kredit .ShowDialog(Me) For Each akun As clsInputcountList In _coll Dim item As New ListViewItem(akun.NoAkun) item.SubItems.Add(akun.NamaAkun) item.SubItems.Add(akun.Rupiah) item.SubItems.Add(akun.Kredit) Me._isiListView.Items.Add(item) item.Tag = akun Next End If End With End Sub
Dalam form tersebut, bisa dilakukan perubahan pada akun transaksi dengan cara klik tombol “...” maka akan ditampilkan daftar akun yang sama seperti pada pengisian daftar transaksi. Selanjutnya Anda bisa langsung lakukan perubahan untuk nilai nominalnya. Jika selesai dan akan menyimpannya pada daftar transaksi, dapat dilakukan dengan klik Edit, dan jika tidak jadi dilakukan perubahan, maka bisa diklik tombol Close.
76
Hapus Isi Transaksi Hapus isi daftar transaksi dapat dilakukan bila data dalam daftar transaksi telah diisi dan dipilih data yang akan dihapus. Proses penghapusan dilakukan dengan memilih salah satu data yang ada dalam daftar transaksi, kemudian klik pada tombol Delete.
Tombol untuk hapus data
Gambar 5.11. Tombol Hapus Data
Kode-kode program untuk melakukan penghapusan isi daftar transaksi adalah seperti berikut ini. If Me._isiListView.SelectedItems.Count > 0 Then Me._coll.Remove(Me._isiListView.SelectedItems.Text) _isiListView.Clear() BuatKolom() For Each akun As clsInputcountList In _coll Dim item As New ListViewItem(akun.NoAkun) item.SubItems.Add(akun.NamaAkun) item.SubItems.Add(akun.Rupiah) Me._isiListView.Items.Add(item) item.Tag = akun Next End If
Jadi, jika diklik tombol Delete pada form, data akan langsung terhapus.
Cetak Jurnal Transaksi Cetak jurnal ini dapat dilakukan dengan klik tombol Print dengan catatan bahwa daftar transaksi telah diisi. Dengan klik tombol print, akan ditampilkan preview dari jurnal yang telah dimasukkan. Untuk menampilkan preview tersebut, kode program yang diisikan sebagai berikut. 77
Private Sub cetak() MyObj = New struc Dim myisi As struc.isidata If Me._rbtnKasKeluar.Checked = True Then With myisi .Tanggal = Me._dtTgl.Value.ToLongDateString .NoJurnal = Me._txNomer.Text .Keterangan = Me._txKet.Text .Kode = "1-1000" .NamaAkun = "Kas" .Debet = _debet MyObj.AddList(myisi) End With For Each item As clsInputcountList In _coll Dim objstruc As struc.isidata With objstruc .Tanggal = Me._dtTgl.Value.ToLongDateString .NoJurnal = Me._txNomer.Text .Keterangan = Me._txKet.Text .Kode = item.NoAkun .NamaAkun = item.NamaAkun .Kredit = item.Rupiah End With MyObj.AddList(objstruc) Next End If MyObj.cetak() End Sub
Tampilan yang muncul setelah penekanan tombol Print adalah hasil preview seperti di bawah ini.
Gambar 5.12. Form Preview Cetak Jurnal
78
Selanjutnya untuk melakukan pencetakan ke printer dapat klik pada tombol Print. Tombol Close digunakan untuk keluar dari preview cetak.
Penyimpanan Jurnal Transaksi dalam DataBase Penyimpanan jurnal transaksi ini merupakan inti dari input jurnal transaksi. Daftar transaksi sebelum disimpan dalam database akan disesuaikan dahulu dalam bentuk jurnal. Jika input jurnal transaksi ini berjenis input kas masuk dan kas keluar, maka bila telah dilakukan penyesuaian akan diberikan konfirmasi mengenai jurnalnya. Untuk melakukan penyimpanan, klik tombol Input seperti di bawah ini. Tombol Penyimpanan
Gambar 5.12. Tombol Penyimpanan
Berikut tampilan dari konfirmasi jurnal sebelum dilakukan penyimpanan.
Gambar 5.13. Form Konfirmasi Jurnal
79
Untuk melakukan pengecekan dan konfimasi jurnal seperti di atas digunakan kode-kode program seperti berikut ini Private Sub kirim() MyObj = New struc Dim myisi As struc.isidata Dim msg As New MsgForm If Me._rbtnKasKeluar.Checked = True Then For Each item As clsInputcountList In _coll Dim objstruc As struc.isidata With objstruc .Tanggal = Me._dtTgl.Value.ToLongDateString .NoJurnal = Me._txNomer.Text .Keterangan = Me._txKet.Text .Kode = item.NoAkun .NamaAkun = item.NamaAkun .Debet = item.Rupiah End With MyObj.AddList(objstruc) msg.IsiMsg(objstruc) Next With myisi .Tanggal = Me._dtTgl.Value.ToLongDateString .NoJurnal = Me._txNomer.Text .Keterangan = Me._txKet.Text .Kode = "1-1000" .NamaAkun = "Kas" .Kredit = _debet MyObj.AddList(myisi) msg.IsiMsg(myisi) End With End If msg.ShowDialog(Me) If msg.KodeMsg Then MyObj.Save() Me._coll = Nothing _coll = New Collection If Not _kabar Then _isiListView.Clear() BuatKolom() Else _isiListView.Clear() BuatKolomNoKas() End If End If End Sub
Kode-kode tersebut memberikan perintah untuk menampilkan form konfirmasi yang berfungsi untuk memberikan batasan pengguna sistem agar tidak salah dalam melakukan penginputan jurnal transaksi.
80
Dalam konfirmasi ini diberikan dua pilihan untuk setuju dan tidak setuju. Jika setuju, klik yes, maka dari konfirmasi ini akan diteruskan untuk disimpan dalam database. Penyimpanan dalam database akan berbeda jika input jurnal berjenis jurnal non-kas. Pada kasus ini, data yang ada dalam daftar transaksi akan langsung dimuat dalam konfirmasi jurnal sesuai dengan apa yang ada dalam daftar transaksi. Input jurnal non-kas akan gagal jika selisih nominal antara total debet dan total kredit lebih dari nol. Penolakan penyimpanan akan menampilkan konfirmasi mengenai selisih nominal tersebut seperti berikut ini.
Gambar 5.14. Form Konfirmasi Nominal Tidak Sama
Dari konfirmasi ini, diketahui bahwa jurnal ini tidak dapat disimpan dan harus dilakukan perubahan. Jika telah sama selisih nominal antara total debet dan kredit, maka akan diberikan konfirmasi jurnal. Agar bisa disimpan, lakukan pembenahan terlebih dahulu terhadap data yang diinputkan, dan lakukan proses penyimpanan ulang.
81