Anda di halaman 1dari 19

63

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 dibe-
dakan menjadi tiga jenis yang terdiri atas:
64
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 lang-
sung 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 di-
inputkan.
5. Field Debet, bertipe data decimal dengan ukuran field 9 bit,
digunakan untuk memasukkan nilai transaksi sisi debet.
65
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.
66

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).
Radio
Button
List View
67
Untuk mengisi program pada form tersebut, klik ganda form yang telah
dibuat dan isikan kode sesuai keinginan. Sebagai contoh, untuk menam-
pilkan 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.


68

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
69
.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.
70
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 pem-
buatan 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
71
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
72
_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.
73

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
74
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 meru-
pakan 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

75
Else
MsgBox("Jumlah Rupiah Belum diisi", MsgBoxStyle.Question,
"Konfirmasi Harga")
End If

Berikut contoh tampilan form Input jurnal setelah data diisikan.

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
Nilai yang
diinputkan
76
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.

77
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 transak-
si, kemudian klik pada tombol Delete.



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 ditam-
pilkan preview dari jurnal yang telah dimasukkan. Untuk menampilkan
preview tersebut, kode program yang diisikan sebagai berikut.
Tombol untuk
hapus data
78
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
79
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.



Gambar 5.12. Tombol Penyimpanan
Berikut tampilan dari konfirmasi jurnal sebelum dilakukan penyimpanan.

Gambar 5.13. Form Konfirmasi Jurnal
Tombol
Penyimpanan
80
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.
81
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.

Anda mungkin juga menyukai