Thursday 8 May 2014

Program Dana Keluar Dana Masuk


Hari ini :            
Tiap program yang saya buat punya cerita sendiri-sendiri dibelakangnya, mulai dari rasa ingin membantu tetapi kok yang minta bantuan malah lepas tangan akhirnya malah semua bagian program saya yang buat, ada juga yang karena direkomendasikan teman jadi efeknya berantai mulut ke mulut gitu…ada juga yang karena orangnya memang super duper waswas, semua kerjaanya keburu buru hasilnya program dia direvisi hamper 5 kali (untung orangya royal…uangnya ntah darimana aja)…dan untuk program ini, pemirsa eh…pembaca boleh percaya boleh tidak, program ini dibuat hanya dalam waktu 24 jam, saya sampai begadang.
            Berawal dari kelupaan saya akan janji seorang teman yang mau dating kerumah malam hari, saya kelupaan balik kerumah hampir jam 9 malam, untungnya ada warnet sepupu jadi dia main dulu disana sembari nunggu saya pulang (…perjuangan yang berat Teman!!). Setelah bertemu dan basa basi dikit, akhirnya saya dikasi panjar untuk ngerjain programnya…kirain untuk lusa,.ternyata untuk besoknya, alhasil saya kerja sambil mata diganjal korek api ma tusuk gigi….(bohong). Dan pada akhirnya si kawan sukses sidang dengan program yang terkesan terburu buru pula.
Program ini masih sangat bisa dikembangkan lagi karena alur programnya mirip saldo nasabah di bank walau sangat sangat sederhana.
Mari kita bahas program ini:

1. Database
     Dinamai db_DanaPAM karena berhubungan dengan Dana Masuk dan Dana Keluar di PAM (Perusahaan Air Minum atau Perusahaan Air Mandi ya…) setempat .

2. Login
 
     Walau tampilanya sederhana, ternyata form yang satu ini memiliki alur programan yang banyak, bila ini maka ini, bila itu maka ini, bila itu maka itu dsb. berikut potongan koding yang terletak di tombol “OK” :
---------------------------------------------------------------------------------------------------------
Private Sub CmdOk_Click()
If TxtUsername.Text = "" Then
    MsgBox "Username masih kosong !", vbCritical, "Kesalahan"
    TxtUsername.SetFocus
    Exit Sub
ElseIf TxtPassword.Text = "" Then
    MsgBox "Password masih kosong !", vbCritical, "Kesalahan"
    TxtPassword.SetFocus
    Exit Sub
End If

'Cek ke-eksisan dari username
sql = "select * from TblLogin where Username= '" & Trim(TxtUsername.Text) & "'"
Set rsCari = New ADODB.Recordset
rsCari.Open sql, conn, 3, 4

If rsCari.EOF Then
    'Bila ternyata username tidak terdaftar...
    MsgBox "Username Tidak terdaftar, silakan ulangi !", vbCritical, "Kesalahan"
    Call Bersih
    Exit Sub
Else
    'Bila ternyata username terdaftar maka cek username dan password
    sql = "select * from TblLogin where Username= '" & Trim(TxtUsername.Text) & "' and Password = '" & _
    Trim(TxtPassword.Text) & "'"
    Set rsBaca = New ADODB.Recordset
    rsBaca.CursorLocation = adUseClient
    rsBaca.Open sql, conn, 3, 4
    
    If rsBaca.RecordCount = 0 Then
        CobaMasuk = CobaMasuk + 1
            If CobaMasuk >= 4 Then
                MsgBox "Kesempatan anda habis, Aplikasi akan ditutup !", vbCritical, "Peringatan !"
                End
            End If
        MsgBox "Password salah, Anda punya " & 4 - CobaMasuk & " kesempatan lagi!", vbCritical, "Coba Lagi"
        Call Bersih
    Else
        MsgBox "Akses Diterima !", vbInformation, "Sukses"
        VarUsername = TxtUsername.Text
        Unload Me
        Utama.Show
        Call Tema(Utama.Skin, Utama)
    End If
End If
End Sub
------------------------------------------------------

3. Menu Utama

 
     Menu utama yang sangat sederhana sekali, karena tidak ada cukup waktu untuk membuat desain backgroundnya, jadi hanya menggunakan teknik teknik yang sederhana saja yang penting kita dapat mengantisipasi debug yang akan terjadi.

4. Dana Masuk
            Dapat diakses dari form utama yaitu di Form daftar saldo yang bisa dilihat diatas, yaitu dari tombol “Dana Masuk” atau dari Menu Data Transaksi -> Dana Masuk.
     Sepertinya sederhana ya..padahal ribet loh. Kalau dana masuk daftar sekian maka saldo akan ditambah berurutan berdasarkan antrian di daftar, tiap-tiap rupa-rupa dan besar dana disimpan diikuti besar saldo setelah saldo ditambah dana yang masuk. Ini potongan koding dari tombol “Simpan” :
----------------------------------------------------------------------------------------
Private Sub mdSimpan_Click()
Dim VarSaldo As Currency

If TxtNoDM.Text = "" Then
    MsgBox "No. DM masih kosong!", vbExclamation, "Kesalahan"
    Exit Sub
ElseIf TxtBahagian.Text = "" Then
    MsgBox "Isi data Bahagian!", vbExclamation, "Kesalahan"
    Exit Sub
ElseIf Grid.Rows = 1 Then
    MsgBox "Isi dahulu daftar!", vbExclamation, "Kesalahan"
    Exit Sub
End If

conn.BeginTrans
sql = "insert into TblDanaMasuk values ('" & Trim(TxtNoDM.Text) & "', '" & _
Trim(TxtBahagian.Text) & "', '" & Format(DtpDanaMasuk.Value, "mm/dd/yyyy") & "', " & _
CCur(TxtTotalDana.Text) & ", '" & Trim(VarUsername) & "')"
conn.Execute sql

With Grid
        For i = 1 To .Rows - 1
             sql = "insert into TblDanaMasukDetail values('" & Trim(TxtNoDM.Text) & "','" & _
             Trim(.TextMatrix(i, 1)) & "'," & _
            CCur(.TextMatrix(i, 2)) & "," & _
             Val(.TextMatrix(i, 0)) & ")"
            conn.Execute sql
           
            'mencari besar saldo terakhir-------------
            sql = "select saldo from TblSaldo order by NoTrans desc"
            Set rsCari = New ADODB.Recordset
            rsCari.CursorLocation = adUseClient
            rsCari.Open sql, conn, 3, 4
            If rsCari.RecordCount <> 0 Then
                VarSaldo = rsCari!Saldo
            Else
                VarSaldo = 0
            End If
            'akhir cari saldo
           
          sql = "insert into TblSaldo (Tgl, NoUrut, Saldo, NomorDM )values('" & Format(DtpDanaMasuk.Value, "mm/dd/yyyy") & "'," & _
          Val(.TextMatrix(i, 0)) & "," & _
            CCur(Val(VarSaldo) + .TextMatrix(i, 2)) & ", '" & Trim(TxtNoDM.Text) & "')"
            conn.Execute sql
        Next i
    End With
     If MsgBox("Proses Dana Masuk ?", vbQuestion + vbYesNo, "Pembelian") = vbYes Then
        conn.CommitTrans
        MsgBox "Berhasil diproses!", vbInformation, "Sukses"
        Unload Me
       Call FrmSaldo.TampilDana
    Else
        conn.RollbackTrans
    End If
End Sub
-----------------------------------------------------

5. Dana Keluar
     Alur programnya masih sama seperti pada Dana Masuk hanya saja di Dana Keluar saldo akan dikurangi rupa-rupa dan besar dana yang ditambahkan.

6. Pencarian

 
    Sesuai dengan namanya, di form ini kita dapat mencari No. Transaksi, Kode Dana Masuk, Kode Dana Keluar dan sald akhirnya.

7. Laporan
            Dapat diakses dari menu Laporan . Cukup dengn memilih jenis dana yang akan ditampilkan, pilih tanggal dana maka detail dana dan saldo akan ditampilkan. Untuk mencetak data yang tampil tinggal menekan tombol “Cetak”.


oke sekian dulu ya pembahasanya…