Membuat Aplikasi Buku Tabungan
Buku tabungan sangat diperlukan terutama di sekolah-sekolah masih banyak yang menggunakan buku tabungan secara manual, cape deh!!!.
Saya mencoba berbagi pengetahuan tentang tata cara membuat buku tabungan siswa di sekolah dengan menggunakan macro excel.
Tanpa basa-basi langsung saja kita buat buku tabungan siswa dengan mempersiapkan satu lembar kerja excel yang disimpan dengan format macro excel dengan nama file buku tabungan siswa.
Untuk membuat buku tabungan siswa persiapkan tiga buah sheet dan beri nama : anggota,Buku Tabungan,Temporaryarea.
Dimana sheet anggota adalah sheet untuk menyimpan nama setiap anggota yang menabung, sheet buku tabungan adalah sheet untuk menyimpan data transaksi anggota/siswa yang menabung, sementara sheet temporaryarea adalah sheet yang akan berganti isinya sesuai kebutuhan bisa untuk menampilkan rekap, ataupun transaksi peranggota.
Untuk sheet anggota buatlah sebuah data base untuk menyimpan data anggota yang menabung dengan mengisikan data pada range A1 dengan No, Range B1 dengan Kode Anggota, range C1 dengan Nama Anggota.
Pada Sheet Buku Tabungan kita isikan range A1 dengan NO range B1 kode Anggota, range C1 dengan Simpanan, range D1 dengan Penarikan.
Setelah beres merancang sheet buku tabungan kita tinggal menyiapkan dua buah userform, tentunya dengan membuka jendela visual basic dengan menekan tombol alt + F11 atau melalui menu developer klik visual basic.
Userform1 digunakan untuk membuat menu utama pada aplikasi buku tabungan ini, mulai dari menyiapkan tombol input, tombol edit dan tombol lihat buku tabungan.
Userform2 digunakan untuk membuat form input data, dengan memisahkan dua buah jenis input yaitu input anggota untuk menyimpan data anggota yang menabung pada sheet anggota, dan input transaksi untuk menyimpan data transaksi setiap anggota yang menabung.
Berikut adalah gambaran userform1 sebagai menu Utama pada Aplikasi Buku Tabungan ini.
menu utama |
Menu Utama terdiri dari empat tombol yaitu Tombol Input Anggota, Tombol Pencatatan Transaksi, Lihat Tabungan Anggota dan Lihat Rekap Tabungan.
Langkah selanjutnya adalah mempersiapkan userfom2 untuk membuat form input anggota, input Transaksi, Pencarian Anggota untuk Aplikasi Buku Tabungan ini pada userform2 saya memisahkannya dengan menggunakan frame pada toolbox, kita akan memberikan bayangan frame1 untuk Input Anggota pada userform2. Lihatlah ilustrasi gambar berikut!
Input Anggota |
Langkah selanjutnya membuat frame yang kedua frame ini berfungsi untuk mencatat transaksi setiap anggota penabung yang akan menabung, dalam frame ini kita menyisipkan frame lagi guna untuk memisahkan antara kotak pencarian dan input data, berikut adalah gambaran desain input data transaksi pada aplikasi buku tabungan ini.
Input Transaksi Tabungan |
Karena Input anggota pada menu utama di aplikasi buku tabungan ini merupakan commandbutton1 maka kita bisa menyisipkan kode berikut dengan cara mengklik Input Anggota pada userform1
Private Sub CommandButton1_Click()
UserForm2.Caption = "Input Anggota"
UserForm2.Frame1.Visible = True
UserForm2.Frame1.Left = 100
UserForm2.Frame1.Top = 50
UserForm2.Frame1.Height = 192
UserForm2.Frame1.Width = 276
UserForm2.Show
End Sub
Kode tersebut berarti kita menampilkan frame1 yang pada awalnya visiblenya false diubah menjadi true selain itu kita juga akan mengatur posisi frame 1, serta lebar dan tingginya frame1 itu.
Untuk menampilkan Input data transaksi pada buku tabungan maka kode yang digunakan adalah sebagai berikut:
Private Sub CommandButton2_Click()
UserForm2.Caption = "Input Transaksi"
UserForm2.Frame2.Visible = True
UserForm2.Frame2.Top = 48
UserForm2.Frame2.Left = 36
UserForm2.Frame2.Width = 414
UserForm2.Frame2.Height = 282
UserForm2.Show
End Sub
Sekarang saya coba memasukan script atau perintah pada masing-masing form pada aplikasi buku tabungan itu. untuk daftar anggota kita pasangkan script di bawah ini pada tombol simpan
Private Sub CommandButton1_Click()
'data validasi apabila textbox kosong ketika di klik simpan akan menolak input data
If TextBox1.Value = "" Then
MsgBox "Isi dulu data"
Exit Sub
End If
'untuk mengaktipkan sheet input data
Sheet1.Activate
'mendeskripsikan banyaknya data yang terinput
Dim isi As Long
isi = WorksheetFunction.CountA(Range("A:A")) + 1
Cells(isi, 1).Value = WorksheetFunction.Count(Range("A:A")) + 1
Cells(isi, 2).FormulaR1C1 = "=""A.""&text(rc[-1],""00#"")"
Cells(isi, 3).Value = TextBox1.Value
MsgBox "input berhasil"
TextBox1.Value = ""
End Sub
Sementara untuk transaksi simpanan ataupun penarikan saya membuat kolom pencarian sehingga scriptnya cukup panjang adalah sebagai berikut
'ini merupkan tombol pencarian pada saat kita menginputkan nama yang akan di cari pada kolom nama maka akan ditampilkan nama pada listbox, sehingga untuk menginput transaksinya kita tinggal mengkliknya salah satu nama yang ditampilkan pada listbox.
Private Sub TextBox2_Change()
Sheet2.Activate
Range("m2").Value = "*" & TextBox2.Value & "*"
Range("l6").CurrentRegion.Clear
Sheet1.Range("a1").CurrentRegion.Name = "Anggota"
Range("Anggota").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"l1:m2"), CopyToRange:=Range("L6"), Unique:=False
Range("l6").CurrentRegion.Name = "tampil"
ListBox1.RowSource = "tampil"
ListBox1.ColumnCount = 3
ListBox1.ColumnWidths = 0 & ";" & 0 & ";" & 40
End Sub
'kita membuat kode apabila listbox tidak di klik maka akan ada pesan bahwa harus mengklik, maka sebelumnya harus memasang dahulu kode berikut
Private Sub ListBox1_Click()
Label7.Caption = ListBox1.Column(1)
'menghitung saldo pada saat anggota dipilih
Label6.Caption = WorksheetFunction.SumIfs(Sheet2.Range("D:D"), Sheet2.Range("C:C"), ListBox1.Column(1)) - WorksheetFunction.SumIfs(Sheet2.Range("E:E"), Sheet2.Range("C:C"), ListBox1.Column(1))
End Sub
Selanjutnya memasangkan kalendar untuk mengisi tanggal pada textbox tanggal pada aplikasi buku tabungan, textbox tanggal ini sengaja di lock agar tanggal tidak diinputkan secara manual, kebanyakan input tanggal manual suka salah, sehingga menggunakan fasilitas bantuan control calendar.
Private Sub TextBox6_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Calendar1.Visible = True
Calendar1.Left = 6
Calendar1.Top = 54
Calendar1.Width = 192
Calendar1.Height = 120
End Sub
Selanjutnya pasang script berikut pada tombol simpan
Private Sub CommandButton3_Click()
'script validasi apabila data belum lengkap
If Label7.Caption = "" Or Label7.Caption = "Kode Anggota" Then
MsgBox "pilih dulu anggota"
Exit Sub
End If
If TextBox3.Value = "" Or TextBox4.Value = "" Or TextBox6.Value = "" Then
MsgBox "data belum lengkap"
Exit Sub
End If
'script validasi apabila data yang diinput bukan nomor
If Not IsNumeric(TextBox3.Value) Then
MsgBox "data simpanan harus angka"
Exit Sub
End If
If Not IsNumeric(TextBox4.Value) Then
MsgBox "data penarikan harus angka"
Exit Sub
End If
'script validasi apabila ada anggota melakukan penarikan dan melebihi simpanan
If CDbl(Label6.Caption) + CDbl(TextBox3.Value) - CDbl(TextBox4.Value) < 0 Then
MsgBox "Penarikan Lebih"
Exit Sub
End If
'script input data
Sheet2.Activate
Dim isi As Long
isi = WorksheetFunction.CountA(Range("A:A")) + 1
Cells(isi, 1).Value = WorksheetFunction.Count(Range("A:A")) + 1
Cells(isi, 2).Value = Calendar1.Value
Cells(isi, 3).Value = ListBox1.Column(1)
Cells(isi, 4).Value = TextBox3.Value
Cells(isi, 5).Value = TextBox4.Value
MsgBox "Input berhasil"
TextBox3.Value = ""
TextBox4.Value = ""
ListBox1.Value = ""
TextBox2 = ""
Label6.Caption = ""
Label7.Caption = ""
End Sub
Selanjutnya kita akan membuat Skrip untuk melihat buku tabungan saya mencoba membagi ke dalam dua bagian yaitu dilihat secara detail per anggota berdasarkan transaksi buku tabungan dan rekap data setiap anggota.
Script berkut untuk menampilkan kotak pencarian anggota sebelum menampilkan detail transaksinya
Private Sub CommandButton3_Click()
UserForm2.Caption = "Cari Anggota"
UserForm2.Frame4.Visible = True
UserForm2.Frame4.Top = 48
UserForm2.Frame4.Left = 36
UserForm2.Frame4.Width = 414
UserForm2.Frame4.Height = 282
UserForm2.Show
End Sub
Pada frame di atas selain dibuatkan kotak pencarian juga dibuat tombol lihat guna menampilkan data detai setiap anggota yang menabung
saya coba tuliskan scriptnya
'ini adalah script pencarian pada perubahan input data pada textbox5
Private Sub TextBox5_Change()
Sheet2.Activate
Sheet2.Range("m2").Value = "*" & TextBox5.Value & "*"
Sheet2.Range("l6").CurrentRegion.Clear
Sheet1.Range("a1").CurrentRegion.Name = "Anggota"
Range("Anggota").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheet2.Range( _
"l1:m2"), CopyToRange:=Range("L6"), Unique:=False
Sheet2.Range("l6").CurrentRegion.Name = "tampil"
ListBox2.RowSource = "tampil"
ListBox2.ColumnCount = 3
ListBox2.ColumnWidths = 0 & ";" & 0 & ";" & 40
End Sub
"berikutnya script apabila data listbox di klik
Private Sub ListBox2_Click()
Label9.Caption = ListBox2.Column(1)
End Sub
selanjutnya tulislah script berikut pada tombol lihat
Private Sub CommandButton4_Click()
If Label9.Caption = "" Or Label9.Caption = "Kode Anggota" Then
MsgBox "tentukan anggotanya"
Exit Sub
End If
Sheet3.Cells.Clear
Sheet2.Range("A1").CurrentRegion.AutoFilter field:=3, Criteria1:=ListBox2.Column(1)
Sheet2.Range("a1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
Sheet3.Activate
Range("a5").PasteSpecial Paste:=xlPasteValues
Range("a1").Value = "BUKU TABUNGAN"
Range("a3").Value = "NAMA "
Range("C3").Value = ":"
Range("D3").Value = ListBox2.Column(2)
Range("f5").Value = "Saldo"
Dim isi As Long
isi = WorksheetFunction.CountA(Range("A:A")) + 2
Range("f6").FormulaR1C1 = "=rc[-2]-rc[-1]"
Range(Cells(7, 6), Cells(isi, 6)).FormulaR1C1 = "=r[-1]c+rc[-2]-rc[-1]"
Range(Cells(6, 1), Cells(isi, 1)).Resize(, 1).Formula = "=row(1:1)"
Range("a1:f1").Merge
Range("A1:f1").HorizontalAlignment = xlCenter
Range(Cells(5, 1), Cells(isi, 6)).Borders.LineStyle = xlContinuous
Sheet2.Select
Selection.AutoFilter
Sheet3.Activate
Unload Me
End Sub
yang terakhir scrip untuk menampilkan rekap tabungan semua anggota yang diletakan pada tombol lihat rekap tabungan pada userform1/menu utama.
Private Sub CommandButton4_Click()
Sheet3.Activate
Sheet3.Cells.Clear
Range("A1").Value = "Rekap Tabungan"
Sheet1.Range("A1").CurrentRegion.Copy
Range("a5").PasteSpecial Paste:=xlPasteValues
Range("d5").Value = "Simpanan"
Range("e5").Value = "Penarikan"
Range("f5").Value = "Saldo"
Dim isi As Long
isi = WorksheetFunction.CountA(Range("A:A")) + 3
Range(Cells(6, 4), Cells(isi, 4)).FormulaR1C1 = "=sumifs('Buku Tabungan'!C4:c4,'Buku Tabungan'!C3:c3,rc2)"
Range(Cells(6, 5), Cells(isi, 5)).FormulaR1C1 = "=sumifs('Buku Tabungan'!C5:c5,'Buku Tabungan'!C3:c3,rc2)"
Range(Cells(6, 6), Cells(isi, 6)).FormulaR1C1 = "=rc[-2]-rc[-1]"
Range(Cells(5, 1), Cells(isi, 6)).Borders.LineStyle = xlContinuous
Range("A1:F1").Merge
Range("A1:F1").HorizontalAlignment = xlCenter
Unload Me
End Sub
Nah itulah cara membuat buku tabungan sengaja tidak diberikan contoh filenya kalo yang butuh bisa diemailkan saja, supaya bisa untuk mencobanya.
4 Comments
Asslamualaikum.wr.wk.
ReplyDeletemaaf pak bisa kirimkan fel tabungan, untuk belajar membuat aplikasi sendiri. tolong bantuanya pak terima kasih.
kirim file tabunganya pak ke sini doank.bakrudin@gmail.com
ReplyDeleteAsslmkm,,
ReplyDeleteBoleh Minta File Tabunganya Pak...??
Assalamualaikum wr. wb.
ReplyDeletePermisi pak, apakah saya boleh meminta file programnya?? Jika diperbolehkan tolong kirim ke email ini ya pak
putrizahra2432@gmail.com
Post a Comment