Totorial Aplikasi Penggajian Visual Basic

download Totorial Aplikasi Penggajian Visual Basic

of 68

Transcript of Totorial Aplikasi Penggajian Visual Basic

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    1/68

    Totorial Aplikasi Penggajian Visual Basic 6.0 INSTALA SI SOFTWARE

    1. Klik Setup untuk menginstal aplikasi VB 6.0

    2.Setelah run program munculah tampilan seperti ini .kalau mau baca readme-nya,kalau tidak silakan Next

    3.Setelah Next ada Licence Agreement. Centang dulu I Accept Licence Agreementlalu Next

    4. Masukan CD-key nya ke dalam ID Number seperti gambar dibawah dan isi 2kolom dibawahnya bebas, lalu Next lagi

    http://setyawanmartha.files.wordpress.com/2012/12/2.jpghttp://setyawanmartha.files.wordpress.com/2012/12/1.jpghttp://setyawanmartha.files.wordpress.com/2012/12/setup.jpghttp://setyawanmartha.files.wordpress.com/2012/12/2.jpghttp://setyawanmartha.files.wordpress.com/2012/12/1.jpghttp://setyawanmartha.files.wordpress.com/2012/12/setup.jpghttp://setyawanmartha.files.wordpress.com/2012/12/2.jpghttp://setyawanmartha.files.wordpress.com/2012/12/1.jpghttp://setyawanmartha.files.wordpress.com/2012/12/setup.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    2/68

    5. Setelah di klik next akan tampil tampilan seperti gambar seperti ini. Pilih InstallVisual Basic 6.0 .

    6. Akan tampil gambar seperti ini. Next lagi

    7. Selanjutnya akan muncul gambar dibawah ini. Pilih Continue

    http://setyawanmartha.files.wordpress.com/2012/12/5.jpghttp://setyawanmartha.files.wordpress.com/2012/12/4.jpghttp://setyawanmartha.files.wordpress.com/2012/12/3.jpghttp://setyawanmartha.files.wordpress.com/2012/12/5.jpghttp://setyawanmartha.files.wordpress.com/2012/12/4.jpghttp://setyawanmartha.files.wordpress.com/2012/12/3.jpghttp://setyawanmartha.files.wordpress.com/2012/12/5.jpghttp://setyawanmartha.files.wordpress.com/2012/12/4.jpghttp://setyawanmartha.files.wordpress.com/2012/12/3.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    3/68

    8. Pilih OK

    10. Setelah itu akan tampil Gambar 16 dan Pastikan Folder sudah benar lalu Pilihyang Typical ya

    11. setelah itu akan muncul kotak dialog seperti dibawah ini lalu pilih Yes

    http://setyawanmartha.files.wordpress.com/2012/12/8.jpghttp://setyawanmartha.files.wordpress.com/2012/12/7.jpghttp://setyawanmartha.files.wordpress.com/2012/12/6.jpghttp://setyawanmartha.files.wordpress.com/2012/12/8.jpghttp://setyawanmartha.files.wordpress.com/2012/12/7.jpghttp://setyawanmartha.files.wordpress.com/2012/12/6.jpghttp://setyawanmartha.files.wordpress.com/2012/12/8.jpghttp://setyawanmartha.files.wordpress.com/2012/12/7.jpghttp://setyawanmartha.files.wordpress.com/2012/12/6.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    4/68

    12. Dan sekarang VB 6 akan melakukan instalasi untuk menyelesaikan semuakomponen.

    13. Setelah instalasi selesai semua VB 6 akan meminta untuk Restart Windows.Pilih Restart Windows. Dan ingat Sebelum Restart Pastikan Dokument atauaplikasi semuanya di tutup agar aman.

    Database 1. Buka Microsoft Ofice Access. Pilih Blank Database lalu Buatlah nama databaseyg anda inginkan

    http://setyawanmartha.files.wordpress.com/2012/12/11.jpghttp://setyawanmartha.files.wordpress.com/2012/12/10.jpghttp://setyawanmartha.files.wordpress.com/2012/12/9.jpghttp://setyawanmartha.files.wordpress.com/2012/12/11.jpghttp://setyawanmartha.files.wordpress.com/2012/12/10.jpghttp://setyawanmartha.files.wordpress.com/2012/12/9.jpghttp://setyawanmartha.files.wordpress.com/2012/12/11.jpghttp://setyawanmartha.files.wordpress.com/2012/12/10.jpghttp://setyawanmartha.files.wordpress.com/2012/12/9.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    5/68

    2. Buatlah Field Tabel Jabatan Seperti dibawah ini dan beri nama = Jabatan

    3. Buatlah Field Tabel Detail Penggajian dengan format seperti dibawah ini danberi nama Tabelnya = Detail_Penggajian

    http://setyawanmartha.files.wordpress.com/2012/12/jabatan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/nama-db.jpghttp://setyawanmartha.files.wordpress.com/2012/12/jabatan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/nama-db.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    6/68

    4. Buatlah Tabel Pengguna dengan format seperti dibawah ini dan beri nama= Pengguna

    http://setyawanmartha.files.wordpress.com/2012/12/pengguna.jpghttp://setyawanmartha.files.wordpress.com/2012/12/detail.jpghttp://setyawanmartha.files.wordpress.com/2012/12/pengguna.jpghttp://setyawanmartha.files.wordpress.com/2012/12/detail.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    7/68

    6. Buatlah Tabel Pegawai dengan format seperti dibawah ini dan beri nama =Pegawai

    Project Pengg ajian 1. Buka aplikasi Microsoft Visul Basic 6.0 yang tadi telah di instal

    2. Pilih VB Enterprise Edition Controls Lalu Next

    http://setyawanmartha.files.wordpress.com/2012/12/pegawai.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    8/68

    lalu akn muncul Form kosong seperti dibawah ini

    3. Ubah nama form pada properties (sebelah kanan) di kolom (name)

    http://setyawanmartha.files.wordpress.com/2012/12/form-kosong.jpghttp://setyawanmartha.files.wordpress.com/2012/12/baru.jpghttp://setyawanmartha.files.wordpress.com/2012/12/form-kosong.jpghttp://setyawanmartha.files.wordpress.com/2012/12/baru.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    9/68

    4. Buat form tersebut dengan tampilan seperti ini (gambar bebas)

    lalu masukkan coding untuk form ini (ikuti lingkaran) klik 2 kali icon Code lalu ketik coding seperti

    disamping

    5. Buat form baru untuk form jabatan dengan cara seperti gambar di bawah ini(Project > add form > open)

    http://setyawanmartha.files.wordpress.com/2012/12/spalsh-code.jpghttp://setyawanmartha.files.wordpress.com/2012/12/spalsh.jpghttp://setyawanmartha.files.wordpress.com/2012/12/buatnama.jpghttp://setyawanmartha.files.wordpress.com/2012/12/spalsh-code.jpghttp://setyawanmartha.files.wordpress.com/2012/12/spalsh.jpghttp://setyawanmartha.files.wordpress.com/2012/12/buatnama.jpghttp://setyawanmartha.files.wordpress.com/2012/12/spalsh-code.jpghttp://setyawanmartha.files.wordpress.com/2012/12/spalsh.jpghttp://setyawanmartha.files.wordpress.com/2012/12/buatnama.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    10/68

    Setelah muncul form kosong seperti form sebelumnya, atur sedemikian rupa sehingga menjadi

    seperti dibawah ini

    (Nama Form diubah menjadi frmJabatan)

    keterangan komponen :

    Biru = Command Button(sebagai tombol navigasi aplikasi), untuk merubah nama dapat dijumpai

    di Properties kolom Caption dan untuk variabelnya diberi nama cmdTambah (misal) pada

    kolom (name)

    Merah = MsFlexiGrid (sebagai tabel yang akan menampilkan data), variabelnya diberi nama Grid

    Jabatan

    Putih = TextBox (sebagai tempat input data) pada properties kolom text dikosongkan dan pada

    variabelnya diganti dengan txtJabatan (misal)

    http://setyawanmartha.files.wordpress.com/2012/12/form-jabatan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/form-baru.jpghttp://setyawanmartha.files.wordpress.com/2012/12/form-jabatan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/form-baru.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    11/68

    Kuning = Label (sebagai pemberi keterangan atau penanda) untuk merubah namanya ada di

    kolom Caption

    Setelah selesai dengan desain maka masukkan Coding seperti dibawah ini

    Option Explicit

    Dim GridObjIndex As Byte

    Dim KodeJabatan As String

    Private Sub Form_Load()

    Move (Screen.Width Width) / 2, _

    (Screen.Height Height) / 3

    Call BukaDatabase

    Call TampilGridData

    Call FormMati

    TbHapus.Enabled = False

    TbSimpan.Enabled = False

    TbUbah.Enabled = False End Sub

    Sub FormKosong()

    txtKode.Text =

    txtNama.Text =

    End Sub

    Sub FormHidup()

    txtKode.Enabled = True

    txtNama.Enabled = True

    End Sub

    Sub FormMati() txtKode.Enabled = False

    txtNama.Enabled = False

    End Sub

    Sub FormNormal()

    FormKosong

    FormMati

    TbTambah.Enabled = True

    TbHapus.Enabled = False

    TbSimpan.Enabled = False

    TbUbah.Enabled = False

    TbKeluar.Caption = &Keluar

    End Sub

    Sub BuatKodeJabatan()

    Rs_Jabatan.Requery

    Set Rs_Jabatan = New ADODB.Recordset

    Set Rs_Jabatan = New ADODB.Recordset

    Rs_Jabatan.Open SELECT * FROM J abatan , _

    KoneksiDB, adOpenDynamic, _

    adLockBatchOptimistic

    If Rs_Jabatan.BOF Then

    KodeJabatan = J0001 Exit Sub

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    12/68

    Else

    Rs_Jabatan.MoveLast

    KodeJabatan = Rs_Jabatan!Kode_Jabatan

    KodeJabatan = Right(KodeJabatan, 4)

    KodeJabatan = Val(KodeJabatan) + 1

    If Len(KodeJabatan) > 4 Then

    MsgBox Kode jabatan baru melewati batas , _

    vbCritical, Error

    Exit Sub

    End If

    End If

    KodeJabatan = J & Format(KodeJabatan, 0000)

    End Sub

    Sub AktifGridJabatan()

    With GridJabatan .RowHeightMin = 300

    .Col = 0

    .Row = 0

    .Text = NO

    .CellFontBold = True

    .ColWidth(0) = 400

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .RowHeightMin = 300

    .Col = 1

    .Row = 0

    .Text = KODE

    .CellFontBold = True

    .ColWidth(1) = 800

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 2

    .Row = 0

    .Text = NAMA JABATAN

    .CellFontBold = True

    .ColWidth(2) = 6000

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    End With

    End Sub

    Sub TampilGridData()

    Dim Baris As Integer

    GridJabatan.Clear

    AktifGridJabatan

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    13/68

    GridJabatan.Rows = 2

    Baris = 0

    Call BukaDatabase

    If Rs_Jabatan.BOF Then

    MsgBox Tabel Jabatan masih kosong! , _

    vbOKOnly + vbInformation, Perhatian

    Exit Sub

    Else

    With Rs_Jabatan

    .MoveFirst

    Do While Not .EOF

    On Error Resume Next

    Baris = Baris + 1

    GridJabatan.Rows = Baris + 1

    GridJabatan.TextMatrix(Baris, 0) = Baris GridJabatan.TextMatrix(Baris, 1) = !Kode_Jabatan

    GridJabatan.TextMatrix(Baris, 2) = !Nama_Jabatan

    .MoveNext

    Loop

    End With

    End If

    End Sub

    Private Sub GridJabatan_DblClick()

    TbHapus.Enabled = True

    TbSimpan.Enabled = False TbUbah.Enabled = True

    TbKeluar.Caption = &Batal

    TbTambah.Enabled = False

    Call FormHidup

    txtNama.SetFocus

    GridObjIndex = GridJabatan.Row

    Set Rs_Jabatan = New ADODB.Recordset

    Rs_Jabatan.Open SELECT * FROM Jabatan _

    & WHERE Kode_Jabatan= _

    & GridJabatan.TextMatrix(GridObjIndex, 1) & _

    , KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Rs_Jabatan.BOF Then

    MsgBox Tabel Jabatan masih kosong! , _

    vbOKOnly + vbInformation, Perhatian

    Exit Sub

    Call FormNormal

    Else Rs_Jabatan.MoveFirst

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    14/68

    Do While Not Rs_Jabatan.EOF

    On Error Resume Next

    txtKode.Text = Rs_Jabatan!Kode_Jabatan

    txtNama.Text = Rs_Jabatan!Nama_Jabatan

    Rs_Jabatan.MoveNext

    Loop

    End If

    End Sub

    # TOMBOL TAMBAH DIKLIK

    Private Sub TbTambah_Click()

    Call FormHidup

    Call BuatKodeJabatan

    txtKode.Text = KodeJabatan

    TbSimpan.Enabled = True TbTambah.Enabled = False

    TbUbah.Enabled = False

    TbHapus.Enabled = False

    TbKeluar.Caption = &Batal

    txtNama.SetFocus

    Call TampilGridData

    End Sub

    Private Sub TbSimpan_Click()

    Dim Rs_Jabatan As New ADODB.Recordset Set Rs_Jabatan = KoneksiDB.Execute(SELECT * _

    & FROM Jabatan _

    & WHERE Nama_Jabatan= & txtNama.Text & )

    If txtNama.Text = Then

    MsgBox Nama Jabatan tidak boleh kosong! , _

    vbInformation + vbOKOnly, Perhatian

    txtNama.SetFocus

    ElseIf Not Rs_Jabatan.BOF Then

    MsgBox Maaf, Nama Jabatan _

    & & UCase(txtNama.Text) _

    & Sudah Tersedia!! , _

    vbInformation + vbOKOnly, Information

    txtNama.Text =

    txtNama.SetFocus

    Exit Sub

    Else

    SqlInsert = INSERT INTO Jabatan _

    & (Kode_Jabatan,Nama_Jabatan) _

    & VALUES( & txtKode.Text & , _

    & txtNama.Text & )

    KoneksiDB.Execute SqlInsert, , adCmdText

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    15/68

    Rs_Jabatan.Requery

    Call FormNormal

    Call Form_Load

    MsgBox Data telah tersimpan dalam database ! , _

    vbOKOnly + vbInformation, Konfirmasi

    End If

    End Sub

    # TOMBOL UBAH DIKLIK

    Private Sub TbUbah_Click()

    If txtNama.Text = Then

    MsgBox Nama Jabatan tidak boleh kosong! , _

    vbInformation + vbOKOnly, Perhatian

    txtNama.SetFocus

    Else

    SqlUpdate = UPDATE Jabatan _ & SET Nama_Jabatan= & txtNama.Text & _

    & WHERE Kode_Jabatan= & txtKode.Text &

    KoneksiDB.Execute SqlUpdate, , adCmdText

    Rs_Jabatan.Requery

    Call FormNormal

    MsgBox Data telah ter_update dalam database ! , _

    vbOKOnly + vbInformation, Konfirmasi

    Call Form_Load

    End If

    End Sub

    # TOMBOL HAPUS DIKLIK

    Private Sub TbHapus_Click()

    Konfirmasi = MsgBox(Anda yakin akan _

    & menghapus pesan ini? , _

    vbYesNo + vbQuestion, Konfirmasi )

    If Konfirmasi = vbYes Then

    SqlDelete = DELETE FROM Jabatan WHERE _

    & Kode_Jabatan= & txtKode.Text &

    KoneksiDB.Execute SqlDelete, , adCmdText

    Rs_Jabatan.Requery

    Call FormNormal

    Call Form_Load

    Else

    Call FormNormal

    End If

    End Sub

    # TOMBOL KELUAR DIKLIK Private Sub TbKeluar_Click()

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    16/68

    If TbKeluar.Caption = &Keluar Then

    Unload Me

    Else

    Call FormNormal

    End If

    End Sub

    Private Sub txtNama_KeyPress(KeyAscii As Integer)

    KeyAscii = Asc(UCase((Chr(KeyAscii))))

    If KeyAscii = vbKeyReturn Then

    TbSimpan.SetFocus

    KeyAscii = 0

    End If

    End Sub 6. Buat Form baru lagi untuk form login (frmLogin)

    untuk komponen text box password pada properties Password Char karakternya diubah menjadi *

    (boleh bebas)

    Source Code Login

    Option Explicit

    Dim MaxLogin As Integer

    Private Sub Form_Load()

    Move (Screen.Width Width) / 2, _

    (Screen.Height Height) / 3

    Call BukaDatabase

    cmbStatus.AddItem (ADMIN )

    cmbStatus.AddItem (BENDAHARA )

    End Sub

    Private Sub TbLogin_Click()

    If txtUser.Text = Then

    MsgBox KOTAK PENGGUNA MASIH KOSONG ! , _

    vbCritical + vbOKOnly, Error

    txtUser.SetFocus ElseIf txtPwd.Text = Then

    http://setyawanmartha.files.wordpress.com/2012/12/login.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    17/68

    MsgBox PASSWORD MASIH KOSONG ! , _

    vbCritical + vbOKOnly, Error

    txtPwd.SetFocus

    Else

    SQL =

    SQL = SELECT * FROM Pengguna _

    & WHERE UserID= & txtUser.Text & _

    & AND PassID= & txtPwd.Text & _

    & AND S tatus= & cmbStatus.Text &

    Set Rs_Pengguna = KoneksiDB.Execute(SQL)

    If Not Rs_Pengguna.BOF Then

    If Rs_Pengguna!Status = ADMIN Then

    Unload Me

    FrmUtama.Enabled = True

    FrmUtama.Show FrmUtama.mnuLaporan.Enabled = True

    FrmUtama.mnuPegawai.Enabled = True

    FrmUtama.mnuJabatan.Enabled = True

    FrmUtama.mnuPengguna.Enabled = True

    FrmUtama.mnuTransaksi.Enabled = True

    FrmUtama.mnuUbahGaji.Enabled = True

    FrmUtama.mnuTransGaji.Enabled = True

    FrmUtama.mnuLapJual.Enabled = True

    FrmUtama.Toolbar1.Enabled = True

    Else Unload Me

    FrmUtama.Enabled = True

    FrmUtama.Show

    FrmUtama.mnuLaporan.Enabled = True

    FrmUtama.mnuLapBarang.Enabled = True

    FrmUtama.mnuLapJenis.Enabled = True

    FrmUtama.mnuTransGaji.Enabled = True

    FrmUtama.mnuUbahGaji.Enabled = False

    FrmUtama.mnuLapJual.Enabled = False

    FrmUtama.mnuPegawai.Enabled = False

    FrmUtama.mnuJabatan.Enabled = False

    FrmUtama.mnuPengguna.Enabled = False

    FrmUtama.mnuTransaksi.Enabled = True

    FrmUtama.Toolbar1.Enabled = False

    End If

    PenggunaID = Rs_Pengguna!UserId

    PenggunaNm = Rs_Pengguna!Nama

    With FrmUtama

    .StatusBar1.Panels(1).Text = Rs_Pengguna!Nama

    .StatusBar1.Panels(2).Text = [" _

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    18/68

    & Rs_Pengguna!Status & "]

    .mnuLogin.Enabled = True

    .mnuLogin.Caption = Logout

    End With

    Unload Me

    Else

    Periksa, login hanya 3 kali

    3x gagal pesan error ditampilkan

    If MaxLogin < 3 Then

    MsgBox PASSWORD MASIH SALAH, SILAHKAN ULANGI LAGI! , _

    vbCritical + vbOKOnly, Error

    txtPwd.Text =

    txtPwd.SetFocus

    MaxLogin = MaxLogin + 1

    Else MsgBox ANDABUKAN PENGGUNA. ANDA TIDAK BERHAK! , _

    vbCritical + vbOKOnly, Error

    End

    End If

    End If

    End If

    End Sub

    Private Sub TbTutup_Click()

    Unload Me

    End Sub 7. Buat Form untuk Form Pegawai (frmPegawai)

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    19/68

    Untuk komponen dan pengaturan desain masih sama

    Source Code Form Pegawai

    Option Explicit Dim GridObjIndex As Byte

    Dim Kd_Jenis As String

    Dim KodePegawai As String

    Dim KeteranganPegawai As String

    Private Sub Form_Load()

    Move (Screen.Width Width) / 2, _

    (Screen.Height Height) / 3

    Call BukaDatabase

    Call TampilGridData

    Call FormMati

    TbHapus.Enabled = False

    TbSimpan.Enabled = False

    TbUbah.Enabled = False

    Call CmbJenis_Click

    Call cmbJenis_DropDown

    End Sub

    Sub FormKosong()

    txtKode.Text =

    cmbJenis.ListIndex = -1

    txtNama.Text =

    http://setyawanmartha.files.wordpress.com/2012/12/form-pegawai.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    20/68

    txtTunjangan.Text = 0

    txtGaji.Text = 0

    txtKeterangan.Text =

    End Sub

    Sub FormHidup()

    txtKode.Enabled = True

    cmbJenis.Enabled = True

    txtNama.Enabled = True

    txtTunjangan.Enabled = True

    txtGaji.Enabled = True

    txtKeterangan.Enabled = True

    End Sub

    Sub FormMati()

    txtKode.Enabled = False

    cmbJenis.Enabled = False

    txtNama.Enabled = False txtTunjangan.Enabled = False

    txtGaji.Enabled = False

    txtKeterangan.Enabled = False

    End Sub

    Sub FormNormal()

    Call FormKosong

    Call FormMati

    txtTunjangan.Locked = False

    TbTambah.Enabled = True TbHapus.Enabled = False

    TbSimpan.Enabled = False

    TbUbah.Enabled = False

    TbKeluar.Caption = &Keluar

    End Sub

    Private Sub CmbJenis_Click()

    Kd_Jenis =

    Set Rs_Jabatan = KoneksiDB.Execute(SELECT * FROM _

    & Jabatan WHERE _

    & Nama_Jabatan= & cmbJenis.Text & )

    With Rs_Jabatan

    If .EOF And .BOF Then

    Exit Sub

    Else

    Kd_Jenis = Rs_Jabatan!Kode_Jabatan

    txtNama.SetFocus

    End If

    End With

    End Sub

    Private Sub cmbJenis_DropDown()

    cmbJenis.Clear Set Rs_Jabatan = KoneksiDB. Execute(SELECT * FROM _

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    21/68

    & Jabatan ORDER BY Nama_Jabatan )

    If Not Rs_Jabatan.BOF Then

    While Not Rs_Jabatan.EOF

    cmbJenis.AddItem Rs_Jabatan!Nama_Jabatan

    Rs_Jabatan.MoveNext

    Wend

    End If

    End Sub

    Sub BuatKodePegawai()

    Rs_Pegawai.Requery

    Set Rs_Pegawai = New ADODB.Recordset

    Rs_Pegawai.Open SELECT Pegawai.*, _

    & Jabatan.Nama_Jabatan _

    & FROM Pegawai, Jabatan WHERE _

    & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _

    & ORDER BY NIP ASC ,_ KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Rs_Pegawai.BOF Then

    KodePegawai = P0001

    Exit Sub

    Else

    Rs_Pegawai.MoveLast

    KodePegawai = Rs_Pegawai!NIP

    KodePegawai = Right(KodePegawai, 4)

    KodePegawai = Val(KodePegawai) + 1

    If Len(KodePegawai) > 4 Then

    MsgBox NIP baru melewati batas , _

    vbCritical, Error

    Exit Sub

    End If

    End If

    KodePegawai = P & Format(KodePegawai, 0000)

    End Sub

    Sub AktifGridPegawai()

    With GridPegawai

    .RowHeightMin = 300

    .Col = 0

    .Row = 0

    .Text = NO

    .CellFontBold = True

    .ColWidth(0) = 400

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .RowHeightMin = 300

    .Col = 1

    .Row = 0

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    22/68

    .Text = NIP

    .CellFontBold = True

    .ColWidth(1) = 750

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 2

    .Row = 0

    .Text = JABATAN

    .CellFontBold = True

    .ColWidth(2) = 1900

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 3

    .Row = 0

    .Text = NAMA PEGAWAI

    .CellFontBold = True

    .ColWidth(3) = 3300

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 4

    .Row = 0

    .Text = TUNJANGAN [Rp.]

    .CellFontBold = True

    .ColWidth(4) = 1600

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 5

    .Row = 0

    .Text = GAJI POKOK [R p.]

    .CellFontBold = True

    .ColWidth(5) = 1600

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 6

    .Row = 0

    .Text = KETERANGAN

    .CellFontBold = True

    .ColWidth(6) = 3000

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    End With End Sub

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    23/68

    Sub TampilGridData()

    Dim Baris As Integer

    GridPegawai.Clear

    Call AktifGridPegawai

    GridPegawai.Rows = 2

    Baris = 0

    Call BukaDatabase

    If Rs_Pegawai.BOF Then

    MsgBox Tabel Pegawai masih kosong! , _

    vbOKOnly + vbInformation, Perhatian

    Exit Sub

    Else

    With Rs_Pegawai .MoveFirst

    Do While Not .EOF

    On Error Resume Next

    Baris = Baris + 1

    GridPegawai.Rows = Baris + 1

    GridPegawai.TextMatrix(Baris, 0) = Baris

    GridPegawai.TextMatrix(Baris, 1) = !NIP

    GridPegawai.TextMatrix(Baris, 2) = !Nama_Jabatan

    GridPegawai.TextMatrix(Baris, 3) = !Nm_Pegawai

    GridPegawai.TextMatrix(Baris, 4) = !Tunjangan GridPegawai.TextMatrix(Baris, 5) = !Gaji_Pokok

    GridPegawai.TextMatrix(Baris, 6) = !Keterangan

    .MoveNext

    Loop

    End With

    End If

    End Sub

    Private Sub GridPegawai_DblClick()

    TbHapus.Enabled = True

    TbSimpan.Enabled = False

    TbUbah.Enabled = True

    TbKeluar.Caption = &Batal

    TbTambah.Enabled = False

    txtGaji.Locked = True

    Call FormHidup

    cmbJenis.SetFocus

    GridObjIndex = GridPegawai.Row

    Set Rs_Pegawai = New ADODB.Recordset Rs_Pegawai.Open SELECT Pegawai.*, _

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    24/68

    & Jabatan.Nama_Jabatan _

    & FROM Pegawai, Jabatan WHERE _

    & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _

    & AND NIP= _

    & GridPegawai.TextMatrix(GridObjIndex, 1) _

    & ORDER BY NIP ASC ,_

    KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Rs_Pegawai.BOF Then

    MsgBox Tabel Pegawai masih kosong! , _

    vbOKOnly + vbInformation, Perhatian

    Exit Sub

    Call FormNormal

    Else

    Rs_Pegawai.MoveFirst

    Do While Not Rs_Pegawai.EOF On Error Resume Next

    txtKode.Text = Rs_Pegawai!NIP

    cmbJenis.Text = Rs_Pegawai!Nama_Jabatan

    txtNama.Text = Rs_Pegawai!Nm_Pegawai

    txtTunjangan.Text = Rs_Pegawai!Tunjangan

    txtGaji.Text = Rs_Pegawai!Gaji_Pokok

    txtKeterangan.Text = Rs_Pegawai!Keterangan

    Rs_Pegawai.MoveNext

    Loop

    End If End Sub

    Private Sub TbTambah_Click()

    Call FormHidup

    Call BuatKodePegawai

    txtKode.Text = KodePegawai

    TbSimpan.Enabled = True

    TbTambah.Enabled = False

    TbUbah.Enabled = False

    TbHapus.Enabled = False

    TbKeluar.Caption = &Batal

    cmbJenis.SetFocus

    Call TampilGridData

    End Sub

    Private Sub TbSimpan_Click()

    If cmbJenis.ListIndex = -1 Then

    MsgBox Jenis Jabatan tidak boleh kosong! , _

    vbInformation + vbOKOnly, Perhatian

    cmbJenis.SetFocus

    ElseIf txtNama.Text = Then MsgBox Nama Pegawai tidak boleh kosong! , _

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    25/68

    vbInformation + vbOKOnly, Perhatian

    txtNama.SetFocus

    ElseIf txtTunjangan.Text = Or txtTunjangan.Text = 0 Then

    MsgBox Tunjangan tidak boleh kosong! , _

    vbInformation + vbOKOnly, Perhatian

    txtTunjangan.SetFocus

    ElseIf txtGaji.Text = Then

    MsgBox Gaji Pegawai tidak boleh kosong! , _

    vbInformation + vbOKOnly, Perhatian

    txtGaji.SetFocus

    Else

    If txtKeterangan = Then

    KeteranganPegawai = Tidak ada keterangan

    Else

    KeteranganPegawai = txtKeterangan.Text

    End If

    SqlInsert = INSERT INTO Pegawai _

    & (NIP,Kode_Jabatan, Nm_Pegawai, _

    & Tunjangan,Gaji_Pokok, Keterangan) _

    & VALUES( & txtKode.Text & , _

    & Kd_Jenis & , & txtNama.Text & , _

    & txtTunjangan.Text & , & txtGaji.Text & , _

    & KeteranganPegawai & )

    KoneksiDB.Execute SqlInsert, , adCmdText Rs_Pegawai.Requery

    Call FormNormal

    Call Form_Load

    MsgBox Data telah tersimpan dalam database ! , _

    vbOKOnly + vbInformation, Konfirmasi

    End If

    End Sub

    Private Sub TbUbah_Click()

    If cmbJenis.ListIndex = -1 Then

    MsgBox Jabatan tidak boleh kosong! , _

    vbInformation + vbOKOnly, Perhatian

    cmbJenis.SetFocus

    ElseIf txtNama.Text = Then

    MsgBox Nama Pegawai tidak boleh kosong! , _

    vbInformation + vbOKOnly, Perhatian

    txtNama.SetFocus

    ElseIf txtTunjangan.Text = Or txtTunjangan.Text = 0 Then

    MsgBox Tunjangan tidak boleh koson g! , _

    vbInformation + vbOKOnly, Perhatian

    txtTunjangan.SetFocus ElseIf txtGaji.Text = Then

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    26/68

    MsgBox Gaji tidak boleh kosong! , _

    vbInformation + vbOKOnly, Perhatian

    txtGaji.SetFocus

    Else

    If txtKeterangan = Then

    KeteranganPegawai = Tidak ada keterangan

    Else

    KeteranganPegawai = txtKeterangan.Text

    End If

    SqlUpdate = UPDATE Pegawai _

    & SET Kode_Jabatan= & Kd_Jenis & , _

    & Nm_Pegawai= & txtNama.Text & , _

    & Tunjangan= & txtTunjangan.Text & , _

    & Gaji_Pokok= & txtGaji.Text & , _

    & Keterangan= & KeteranganPegawai & _ & WHERE NIP= & txtKode.Text &

    KoneksiDB.Execute SqlUpdate, , adCmdText

    Rs_Pegawai.Requery

    Call FormNormal

    MsgBox Data telah terbaharui dalam database ! , _

    vbOKOnly + vbInformation, Konfirmasi

    Call Form_Load End If

    End Sub

    Private Sub TbHapus_Click()

    Konfirmasi = MsgBox(Anda yakin akan _

    & menghapus pesan ini? , _

    vbYesNo + vbQuestion, Konfirmasi )

    If Konfirmasi = vbYes Then

    SqlDelete = DELETE FROM Pegawai WHERE _

    & NIP= & txtKode.Text &

    KoneksiDB.Execute SqlDelete, , adCmdText

    Rs_Pegawai.Requery

    Call FormNormal

    Call Form_Load

    Else

    Call FormNormal

    End If

    End Sub

    Private Sub TbKeluar_Click()

    If TbKeluar.Caption = &Keluar Then

    Unload Me Else

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    27/68

    FormNormal

    End If

    End Sub

    Private Sub txtTunjangan_KeyPress(KeyAscii As Integer)

    If KeyAscii = vbKeyReturn Then

    txtGaji.SetFocus

    ElseIf Not (KeyAscii >= Asc(0) _

    And KeyAscii = Asc(0) _

    And KeyAscii

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    28/68

    Kuning = Combo box (pilihan)

    SourceCode

    Option Explicit

    Dim GridBaris As Byte

    Dim TmpPassword As String

    Dim NewPassword As String

    Dim Tanya As String

    Private Sub Form_Load()

    Move (Screen.Width Width) / 2, _

    (Screen.Height Height) / 3

    Call BukaDatabase

    Call TampilGridData

    cmbStatus.Clear

    cmbStatus.AddItem (ADMIN ) cmbStatus.AddItem (BENDAHARA )

    TbUbah.Enabled = False

    TbSimpan.Enabled = False

    TbHapus.Enabled = False

    Call FormMati

    End Sub

    Sub FormKosong()

    txtUserId.Text = txtPassword.Text =

    http://setyawanmartha.files.wordpress.com/2012/12/form-pengguna.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    29/68

    txtNama.Text =

    cmbStatus.ListIndex = -1

    End Sub

    Sub FormHidup()

    txtUserId.Enabled = True

    txtPassword.Enabled = True

    txtNama.Enabled = True

    cmbStatus.Enabled = True

    txtUserId.BackColor = &HFFFFFF

    txtPassword.BackColor = &HFFFFFF

    txtNama.BackColor = &HFFFFFF

    cmbStatus.BackColor = &HFFFFFF

    End Sub

    Sub FormMati()

    txtUserId.Enabled = False txtPassword.Enabled = False

    txtNama.Enabled = False

    cmbStatus.Enabled = False

    txtUserId.BackColor = &HC0FFFF

    txtPassword.BackColor = &HC0FFFF

    txtNama.BackColor = &HC0FFFF

    cmbStatus.BackColor = &HC0FFFF

    End Sub

    Sub FormNormal() Call FormKosong

    Call FormMati

    TbBaru.Enabled = True

    TbUbah.Enabled = False

    TbHapus.Enabled = False

    TbSimpan.Enabled = False

    TbKeluar.Caption = &Keluar

    End Sub

    Sub AktifGridPengguna()

    With GridPengguna

    .RowHeightMin = 300

    .Col = 0

    .Row = 0

    .Text = USER ID

    .CellFontBold = True

    .ColWidth(0) = 1300

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 1

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    30/68

    .Row = 0

    .Text = PASSWORD

    .CellFontBold = True

    .ColWidth(1) = 1300

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 2

    .Row = 0

    .Text = NAMA PEMILIK

    .CellFontBold = True

    .ColWidth(2) = 3700

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 3

    .Row = 0

    .Text = STATUS

    .CellFontBold = True

    .ColWidth(3) = 1300

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    End With

    End Sub

    Sub TampilGridData()

    Dim Baris As Integer GridPengguna.Clear

    Call AktifGridPengguna

    GridPengguna.Rows = 2

    Baris = 0

    Set Rs_Pengguna = New ADODB.Recordset

    Rs_Pengguna.Open SELECT * FROM Pengguna , _

    KoneksiDB, adOpenDynamic, adLockOptimistic

    If Rs_Pengguna.BOF Then

    MsgBox DATAPengguna MASIH KOSONG! , _

    vbOKOnly + vbInformation, Perhatian

    Exit Sub

    Else

    With Rs_Pengguna

    .MoveFirst

    Do While Not .EOF

    On Error Resume Next

    Baris = Baris + 1

    GridPengguna.Rows = Baris + 1

    GridPengguna.TextMatrix(Baris, 0) = !UserId GridPengguna.TextMatrix(Baris, 1) = xxxxxxx

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    31/68

    GridPengguna.TextMatrix(Baris, 2) = !Nama

    GridPengguna.TextMatrix(Baris, 3) = !Status

    .MoveNext

    Loop

    End With

    End If

    End Sub

    Private Sub GridPengguna_DblClick()

    TbHapus.Enabled = True

    TbSimpan.Enabled = False

    TbUbah.Enabled = True

    TbKeluar.Caption = &Normal

    TbBaru.Enabled = False

    txtUserId.Locked = True

    Call FormHidup txtPassword.SetFocus

    GridBaris = GridPengguna.Row

    Set Rs_Pengguna = New ADODB.Recordset

    Rs_Pengguna.Open SELECT * FROM Pengguna _

    & WHERE UserId= _

    & GridPengguna.TextMatrix(GridBaris, 0) & ,_

    KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Rs_Pengguna.BOF Then

    MsgBox TABELMASIH KOSONG , _

    vbOKOnly + vbInformation, Perhatian

    Exit Sub

    Call FormNormal

    Else

    Rs_Pengguna.MoveFirst

    Do While Not Rs_Pengguna.EOF

    On Error Resume Next

    txtUserId.Text = Rs_Pengguna!UserId

    txtNama.Text = Rs_Pengguna!Nama

    cmbStatus.Text = Rs_Pengguna!Status

    TmpPassword = Rs_Pengguna!PassId

    Rs_Pengguna.MoveNext

    Loop

    End If

    End Sub

    Private Sub TbBaru_Click()

    Call FormHidup

    Call TampilGridData

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    32/68

    TbSimpan.Enabled = True

    TbBaru.Enabled = False

    TbHapus.Enabled = False

    TbKeluar.Caption = &Normal

    txtUserId.Locked = False

    txtUserId.SetFocus

    End Sub

    Private Sub TbSimpan_Click()

    Set Rs_Pengguna = New ADODB.Recordset

    Rs_Pengguna.Open SELECT * FROM Pengguna WHERE _

    & UserId= & Trim(txtUserId.Text) & , _

    KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Len(txtUserId.Text)

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    33/68

    Rs_Pengguna.Open SELECT * FROM Pengguna WHERE _

    & UserId= & Trim(txtUserId.Text) & ,_

    KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If txtNama.Text = Then

    MsgBox NAMATIDAK BOLEH KOSONG , _

    vbOKOnly + vbCritical, Error

    txtNama.SetFocus

    Else

    If Trim(txtPassword.Text) = Then

    NewPassword = TmpPassword

    Else

    NewPassword = txtPassword.Text

    End If

    Tanya = MsgBox(UBAH DATA PENGGUNA DARI : _ & vbCrLf & & NAMALAMA : _

    & Rs_Pengguna.Fields!Nama + vbCrLf & _

    & NAMABARU : & txtNama.Text + vbCrLf & , _

    vbYesNo + vbQuestion, Perhatian ! )

    If Tanya = vbYes Then

    SqlUpdate = UPDATE Pengguna _

    & SET PassId= & NewPassword & , _

    & Nama= & Trim(txtNama.Text) & , _

    & Status= & Trim(cmbStatus.Text) & _

    & WHERE UserId= & Trim(txtUserId.Text) &

    KoneksiDB.Execute SqlUpdate, , adCmdText

    End If

    Rs_Pegawai.Requery

    Call FormNormal

    Call Form_Load

    End If

    End Sub

    Private Sub TbHapus_Click()

    Tanya = MsgBox(YAKIN HAPUS DATA INI ? _

    & vbCrLf & & USERID : _

    & txtUserId + vbCrLf & _

    & NAMA: & txtNama.Text + vbCrLf & , _

    vbYesNo + vbQuestion, Perhatian ! )

    If Tanya = vbYes Then

    SQL = DELETE FROM Pengguna WHERE _

    & UserId= & txtUserId.Text &

    KoneksiDB.Execute SQL, , adCmdText

    Rs_Pengguna.Requery Call FormNormal

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    34/68

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    35/68

    Ikuti jalur warna

    Orange = Image List(memasukkan gambar pada tool bar)

    Biru = Menu Editor (tampilan menu dsn sub menu)

    Kuning = Toolbar (Temapt untukmenaruh imagae dari image list)

    SourceCode Option Explicit

    Private Sub Form_Unload(Cancel As Integer)

    If MsgBox(YAKIN AKAN MENUTUP APLIKASI INI..? , _

    vbQuestion, Konfirmasi ) = vbNo Then

    Cancel = 1

    Else

    End

    End If

    End Sub

    Private Sub mnuLapJenis_Click()

    With rptJenis

    .Sections(Section4).Controls(Label5).Caption = _

    Format(Date, dd MMMM yyyy )

    .Show 1

    End With

    End Sub

    Private Sub mnuJualTgl_Click()

    frmLapJualTgl.Show 1

    End Sub

    Private Sub mnuLPengguna_Click()

    With rptPengguna .Sections(Section4).Controls(Label8).Caption = _

    http://setyawanmartha.files.wordpress.com/2012/12/menu-utama.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    36/68

    Format(Date, dd MMMM yyyy )

    .Show 1

    End With

    End Sub

    Private Sub mnuPengguna_Click()

    frmPengguna.Show 1

    End Sub

    Private Sub mnuJabatan_Click()

    frmJabatan.Show 1, FrmUtama

    End Sub

    Private Sub mnuKeluar_Click()

    End

    End Sub

    Private Sub mnuLapJual_Click()

    With rptLapPenggajian

    .Sections(Section4).Controls(Label5).Caption = _ Format(Date, dd MMMM yyyy )

    .Show 1

    End With

    End Sub

    Private Sub mnuLapBarang_Click()

    With rptPegawai

    .Sections(Section4).Controls(Label5).Capti on = _

    Format(Date, dd MMMM yyyy )

    .Show 1

    End With End Sub

    Private Sub mnuLogin_Click()

    If FrmUtama.mnuLogin.Caption = Login Then

    frmLogin.Show 1

    Else

    mnuLaporan.Enabled = False

    mnuPegawai.Enabled = False

    mnuJabatan.Enabled = False

    mnuUbahGaji.Enabled = False

    mnuPengguna.Enabled = False

    mnuTransaksi.Enabled = False

    Toolbar1.Enabled = False

    Me.mnuLogin.Caption = Login

    End If

    End Sub

    Private Sub mnuPegawai_Click()

    frmPegawai.Show 1, FrmUtama

    End Sub

    Private Sub mnuBarangJenis_Click()

    frmLapBarangJenis.Show 1

    End Sub

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    37/68

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    38/68

    TbSimpan.Enabled = False

    End Sub

    Sub FormKosong()

    txtKode.Text =

    txtJenis.Text =

    txtNama.Text =

    txtTunjangan.Text = 0

    txtGaji.Text = 0

    txtGajiLama.Text =

    txtKeterangan.Text =

    End Sub

    Sub FormHidup()

    txtKode.Enabled = True

    txtJenis.Enabled = True

    txtNama.Enabled = True

    txtTunjangan.Enabled = True txtGaji.Enabled = True

    txtKeterangan.Enabled = True

    End Sub

    Sub FormMati()

    txtKode.Enabled = False

    txtJenis.Enabled = False

    txtNama.Enabled = False

    txtTunjangan.Enabled = False

    txtGaji.Enabled = False

    txtKeterangan.Enabled = False End Sub

    Sub FormNormal()

    Call FormKosong

    Call FormMati

    txtGaji.Locked = False

    Label7.Visible = False

    txtGajiLama.Visible = False

    TbCari.Enabled = False

    TbTambah.Enabled = True

    TbSimpan.Enabled = False

    TbKeluar.Caption = &Keluar

    End Sub

    Private Sub TbCari_Click()

    FrmUtama.Enabled = False

    frmUbahGaji.Enabled = False

    frmCariPegawai.Show 1

    End Sub

    Private Sub TbKeluar_Click()

    If TbKeluar.Caption = &Keluar Then

    FrmUtama.Enabled = True

    Unload Me Else

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    39/68

    FormNormal

    End If

    End Sub

    Private Sub TbSimpan_Click()

    If txtGaji.Text = Or txtGaji.Text = 0 Then

    MsgBox Gaji tidak boleh kosong! , _

    vbInformation + vbOKOnly, Perhatian

    txtGaji.SetFocus

    Else

    SqlUpdate =

    SqlUpdate = UPDATE Pegawai _

    & SET Gaji_Pokok= & txtGaji.Text & _

    & WHERE NIP= & txtKode.Text &

    KoneksiDB.Execute SqlUpdate, , adCmdText Rs_Pegawai.Requery

    Call FormNormal

    MsgBox Data telah terbaharui dalam database ! , _

    vbOKOnly + vbInformation, Konfirmasi

    Call Form_Load

    End If

    End Sub

    Private Sub TbTambah_Click() Call FormHidup

    TbCari.Enabled = True

    TbSimpan.Enabled = True

    TbTambah.Enabled = False

    TbKeluar.Caption = &Batal

    txtKode.SetFocus

    End Sub

    Private Sub txtKode_KeyPress(KeyAscii As Integer)

    If KeyAscii = vbKeyReturn Then

    If Len(txtKode.Text) < 5 Then

    MsgBox NOMORINDUK PEGAWAI HARUS 5 DIGIT , _

    vbCritical, Error

    Exit Sub

    End If

    KeyAscii = 0

    Label7.Visible = True

    txtGajiLama.Visible = True

    Set Rs_Pegawai = New ADODB.Recordset

    Rs_Pegawai.Open SELECT Pegawai.*, _

    & Jabatan.Nama_Jabatan _

    & FROM Pegawai, Jabatan WHERE _ & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    40/68

    & AND Pegawai.NIP= _

    & txtKode.Text & ,_

    KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Rs_Pegawai.BOF Then

    MsgBox NIP TIDAK DIKENALI .. , _

    vbInformation, Info

    Else

    With Rs_Pegawai

    txtJenis.Text = !Nama_Jabatan

    txtNama.Text = !Nm_Pegawai

    txtTunjangan.Text = !Tunjangan

    txtGajiLama.Text = !Gaji_Pokok

    txtKeterangan = !Keterangan

    txtGaji.SetFocus

    End With

    End If End If

    End Sub

    Private Sub txtGaji_KeyPress(KeyAscii As Integer)

    If KeyAscii = vbKeyReturn Then

    TbSimpan.SetFocus

    ElseIf Not (KeyAscii >= Asc(0) _

    And KeyAscii

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    41/68

    SourceCode

    Option Explicit

    Dim Baris As Integer

    Dim i As Integer

    Dim Tanya As String

    Dim NoNota As String

    Private Sub Form_Load()

    Move (Screen.Width Width) / 2, _

    (Screen.Height Height) / 3

    Call BukaDatabase

    Call FormMati

    TbSimpan.Enabled = False

    TbCari.Enabled = False

    TbMasuk.Enabled = False

    End Sub

    Sub FormKosong()

    txtNoNota.Text =

    txtTgl.Text = __/__/____

    txtKode.Text =

    txtNama.Text =

    http://setyawanmartha.files.wordpress.com/2012/12/form-gaji.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    42/68

    txtGaji.Text =

    txtTunjangan.Text =

    txtKas.Text =

    txtTotal.Text = 0

    txtTotalHarga = 0

    txtKembali.Text = 0

    txtCash.Text = 0

    Baris = 1

    GridPenggajian.Clear

    GridPenggajian.Rows = 2

    Call AktifGridGaji

    End Sub

    Sub FormTransKosong()

    txtTotalHarga.Text = 0

    txtCash.Text = txtKembali.Text = 0

    End Sub

    Sub FormMati()

    txtNoNota.Enabled = False

    txtTgl.Enabled = False

    txtKode.Enabled = False

    txtNama.Enabled = False

    txtGaji.Enabled = False

    txtTunjangan.Enabled = False

    txtKas.Enabled = False txtTotal.Enabled = False

    txtTotalHarga.Enabled = False

    txtCash.Enabled = False

    txtKembali.Enabled = False

    End Sub

    Sub FormHidup()

    txtNoNota.Enabled = True

    txtTgl.Enabled = True

    txtKode.Enabled = True

    txtNama.Enabled = True

    txtGaji.Enabled = True

    txtTunjangan.Enabled = True

    txtKas.Enabled = True

    txtTotal.Enabled = True

    txtTotalHarga.Enabled = True

    txtCash.Enabled = True

    txtKembali.Enabled = True

    End Sub

    Sub FormNormal()

    FormMati

    FormKosong

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    43/68

    TbKeluar.Caption = &Keluar

    TbSimpan.Enabled = False

    TbBaru.Enabled = True

    TbCari.Enabled = False

    TbMasuk.Enabled = False

    End Sub

    Sub BuatNotaJual()

    Rs_Penggajian.Requery

    Set Rs_Penggajian = New ADODB.Recordset

    Rs_Penggajian.Open SELECT * FROM _

    & Penggajian ORDER BY No_Nota ,_

    KoneksiDB, adOpenDynamic, _

    adLockBatchOptimistic

    If Rs_Penggajian.BOF Then

    NoNota = GJ - 00001

    Exit Sub Else

    Rs_Penggajian.MoveLast

    NoNota = Rs_Penggajian!No_Nota

    NoNota = Right(NoNota, 5)

    NoNota = Val(NoNota) + 1

    If Len(NoNota) > 5 Then

    MsgBox Nomor nota baru melewati batas , _

    vbCritical, Error

    Exit Sub End If

    End If

    NoNota = GJ - & Format(NoNota, 00000)

    End Sub

    Sub AktifGridGaji()

    With GridPenggajian

    .Col = 0

    .Row = 0

    .Text = KODE

    .CellFontBold = True

    .ColWidth(0) = 1300

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 1

    .Row = 0

    .Text = NAMA PEGAWAI

    .CellFontBold = True

    .ColWidth(1) = 4200

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    44/68

    .Col = 2

    .Row = 0

    .Text = GAJI (Rp)

    .CellFontBold = True

    .ColWidth(2) = 1800

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 3

    .Row = 0

    .Text = KAS

    .CellFontBold = True

    .ColWidth(3) = 1300

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 4

    .Row = 0

    .Text = SUBTOTAL (Rp)

    .CellFontBold = True

    .ColWidth(4) = 1800

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    End With

    End Sub

    Private Sub TbBaru_Click() txtTgl.Text = Format(Date, dd/MM/yyyy )

    Call FormHidup

    Call AktifGridGaji

    Call BuatNotaJual

    txtNoNota.Text = NoNota

    TbBaru.Enabled = False

    TbCari.Enabled = True

    TbKeluar.Caption = &Batal

    TbSimpan.Enabled = True

    TbMasuk.Enabled = True

    Baris = 1

    End Sub

    Private Sub TbCari_Click()

    FrmUtama.Enabled = False

    frmGaji.Enabled = False

    frmCariGaji.Show 1

    End Sub

    Private Sub TbMasuk_Click() If txtKode.Text = Then

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    45/68

    MsgBox Barang masih kosong! ,_

    vbOKOnly + vbCritical, Konfirmasi

    TbCari.SetFocus

    ElseIf Val(txtKas.Text) > _

    Val(txtGaji.Text) Then

    MsgBox Maaf..! Gaji tidak memadai . , _

    vbOKOnly + vbCritical, Konfirmasi

    txtKas.Text = 0

    txtKas.SetFocus

    ElseIf txtKas.Text = _

    Or txtKas.Text = Then

    MsgBox Kas masih kosong! ,_

    vbOKOnly + vbCritical, Konfirmasi

    txtKas.SetFocus

    ElseIf GridPenggajian.Rows = 1 Then

    MsgBox Belum ada Pegawai yang anda Input! , _ vbOKOnly + vbCritical, Konfirmasi

    TbCari.SetFocus

    ElseIf txtGaji.Text = 1 Then

    MsgBox Gaji minimum! , _

    vbOKOnly + vbCritical, Konfirmasi

    Call BersihPegawai

    ElseIf Val(txtGaji.Text) = _

    Val(txtKas.Text) Then

    MsgBox Kas tidak boleh melebihi Gaji! , _

    vbOKOnly + vbCritical, Konfirmasi txtKas.Text = Val(txtKas.Text) 1

    TbMasuk.SetFocus

    Else

    With GridPenggajian

    .Rows = Baris + 1

    .TextMatrix(Baris, 0) = txtKode.Text

    .TextMatrix(Baris, 1) = txtNama.Text

    .TextMatrix(Baris, 2) = txtGaji.Text

    .TextMatrix(Baris, 3) = txtKas.Text

    .TextMatrix(Baris, 4) = txtTotal.Text

    End With

    txtTotalHarga.Text = _

    Val(txtTotalHarga.Text) + Val(txtTotal.Text)

    Baris = Baris + 1

    Call BersihPegawai

    End If

    End Sub

    Private Sub TbSimpan_Click()

    Dim i As Integer

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    46/68

    If txtNoNota.Text = Then

    MsgBox Nomor transaksi masih kosong ! , _

    vbOKOnly + vbCritical, Konfirmasi

    txtNoNota.SetFocus

    ElseIf Baris = 1 Then

    MsgBox Belum ada pegawai yang anda Input! , _

    vbOKOnly + vbCritical, Konfirmasi

    TbCari.SetFocus

    ElseIf txtCash.Text = Then

    MsgBox Belum melakukan pembayaran ! ,_

    vbOKOnly + vbCritical, Konfirmasi

    txtCash.SetFocus

    ElseIf Val(txtCash.Text) < _

    Val(txtTotalHarga.Text) Then

    MsgBox Pembayaran masih kurang , _

    vbOKOnly + vbCritical, Konfirmasi txtCash.SetFocus

    Else

    SqlInsert =

    SqlInsert = INSERT INTO Penggajian _

    & (No_Nota,Tgl_Nota,Total,UserId) _

    & VALUES ( & txtNoNota.Text & , _

    & Format(Date, yyyy -MM- dd ) & , _

    & txtTotalHarga.Text & , _

    & PenggunaID & )

    KoneksiDB.Execute SqlInsert, , adCmdText Rs_Penggajian.Requery

    For i = 1 To Baris 1

    SqlInsert =

    SqlInsert = INSERT INTO Detail_Penggaji an _

    & (No_Nota,NIP,Tunjangan_Krj, _

    & Kas,SubTotal) _

    & VALUES ( & txtNoNota.Text & , _

    & GridPenggajian.TextMatrix(i, 0) & , _

    & GridPenggajian.TextMatrix(i, 2) & , _

    & GridPenggajian.TextMatrix(i, 3) & , _

    & GridPenggajian.TextMatrix(i, 4) & )

    KoneksiDB.Execute SqlInsert, , adCmdText

    SqlUpdate =

    SqlUpdate = UPDATE Pegawai SET _

    & Gaji_Pokok=Gaji_Pokok _

    & Val(GridPenggajian.TextMatrix(i, 3)) & _

    & WHERE NIP= _

    & GridPenggajian.TextMatrix(i, 0) &

    KoneksiDB.Execute SqlUpdate, , adCmdText Next i

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    47/68

    MsgBox Data telah tersimpan dalam database ! , _

    vbOKOnly + vbInformation, Konfirmasi

    On Error Resume Next

    With frmCetakGaji

    .NoNota = txtNoNota.Text

    .TotHarga = txtTotalHarga.Text

    .UangBayar = txtCash.Text

    .UangKembali = txtKembali.Text

    .Show 1

    End With

    Call FormNormal

    Call FormTransKosong

    End If

    End Sub

    Private Sub TbKeluar_Click() If TbKeluar.Caption = &Keluar Then

    Tanya = MsgBox(ANDA YAKIN AKAN _

    & MENGAKHIRI APLIKASI INI..? , _

    vbQuestion + vbYesNo, Exit )

    If Tanya = vbYes Then

    FrmUtama.Enabled = True

    Unload Me

    Else

    Exit Sub

    End If Else

    Call FormNormal

    End If

    End Sub

    Sub BersihPegawai()

    txtKode.Text =

    txtNama.Text =

    txtTunjangan.Text = 0

    txtGaji.Text = 0

    txtKas.Text =

    txtTotal.Text = 0

    End Sub

    Private Sub txtKas_Change()

    On Error Resume Next

    If txtKas.Text = Or txtTunjangan.Text = Or txtGaji.Text = Then

    txtTotal.Text =

    Exit Sub

    Else

    txtTotal.Text = (txtTunjangan.Text + (txtGaji.Text txtKas.Text))

    End If

    End Sub

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    48/68

    Private Sub txtCash_Change()

    On Error Resume Next

    If txtCash.Text = Or txtTotalHarga.Text = Then

    txtKembali.Text = 0

    Exit Sub

    Else

    txtKembali.Text = _

    Val(txtCash.Text) + Val(txtTotalHarga.Text)

    End If

    End Sub

    Private Sub txtCash_KeyPress(KeyAscii As Integer)

    If KeyAscii = vbKeyReturn Then

    TbMasuk.SetFocus

    ElseIf Not (KeyAscii >= Asc(0) _

    And KeyAscii = Asc(0) _

    And KeyAscii

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    49/68

    If Rs_GajiPokok.BOF Then

    MsgBox NIP TIDAK DIKENALI .. , _

    vbInformation, Info

    Else

    With Rs_GajiPokok

    txtGaji.Text = !Gaji_Pokok

    txtNama.Text = !Nm_Pegawai

    End With

    End If

    End If

    End Sub 12. Buat Form untuk formCari Gaji (frmCari Gaji)

    SourceCode

    Option Explicit

    Private Sub Form_Load()

    Move (Screen.Width Width) / 2, _

    (Screen.Height Height) / 2

    Call BukaDatabase

    Call TampilGridData

    End Sub

    Sub AktifGridBarang()

    With GridBarang

    .RowHeightMin = 300

    .Col = 0

    .Row = 0

    .Text = NO

    .CellFontBold = True

    .ColWidth(0) = 400

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    http://setyawanmartha.files.wordpress.com/2012/12/cari-gaji.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    50/68

    .RowHeightMin = 300

    .Col = 1

    .Row = 0

    .Text = KODE

    .CellFontBold = True

    .ColWidth(1) = 750

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 2

    .Row = 0

    .Text = JENIS

    .CellFontBold = True

    .ColWidth(2) = 1900

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 3

    .Row = 0

    .Text = NAMA PEGAWAI

    .CellFontBold = True

    .ColWidth(3) = 3300

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 4

    .Row = 0

    .Text = TUNJANGAN [Rp.]

    .CellFontBold = True

    .ColWidth(4) = 1600

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 5

    .Row = 0

    .Text = GAJI POKOK [Rp.]

    .CellFontBold = True

    .ColWidth(5) = 1600

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    End With

    End Sub

    Sub TampilGridData()

    Dim Baris As Integer

    GridBarang.Clear

    Call AktifGridBarang

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    51/68

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    52/68

    End If

    FrmUtama.Enabled = False

    frmGaji.Enabled = True

    Unload Me

    End Sub

    Private Sub TbNormal_Click()

    Call Form_Load

    txtCari.Text =

    txtCari.SetFocus

    End Sub

    Private Sub TbTutup_Click()

    FrmUtama.Enabled = False

    frmGaji.Enabled = True

    Unload Me

    End Sub Private Sub txtCari_Change()

    If Option2.Value = True Then

    Set Rs_GajiPokok = New ADODB.Recordset

    Rs_GajiPokok.Open SELECT Pegawai.*, _

    & Jabatan.Nama_Jabatan _

    & FROM Pegawai, Jabatan WHERE _

    & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _

    & AND Pegawai.Nm_Pegawai LIKE % _

    & txtCari.Text & % ORDER BY NIP , _ KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Rs_GajiPokok.BOF Then

    MsgBox Tidak menemukan nama Pegawai! _

    & & txtCari.Text & dalam tabel , _

    vbInformation, Informasi

    txtCari.Text =

    txtCari.SetFocus

    Else

    Call TampilGridData

    End If

    ElseIf Option1.Value = True Then

    Set Rs_GajiPokok = New ADODB.Recordset

    Rs_GajiPokok.Open SELECT Pegawai.*, _

    & Jabatan.Nama_Jabatan _

    & FROM Pegawai, Jabatan WHERE _

    & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _

    & AND Pegawai.NIP LIKE % _

    & txtCari.Text & % ORDER BY NIP , _ KoneksiDB, adOpenDynamic, adLockBatchOptimistic

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    53/68

    If Rs_GajiPokok.BOF Then

    MsgBox Tidak menemukan NIP! _

    & & txtCari.Text & dalam tabel , _

    vbInformation, Informasi

    txtCari.Text =

    txtCari.SetFocus

    Else

    Call TampilGridData

    End If

    End If

    End Sub 13. Buat form untuk form cari Pegawai (frmCariPegawai)

    Orange = Option Button (pilihan), untuk merubah nama ada di kolom Caption

    SourceCode Private Sub Form_Load()

    Move (Screen.Width Width) / 2, _

    (Screen.Height Height) / 4

    Call BukaDatabase

    Call TampilGridData

    End Sub

    Sub AktifGridPegawai()

    With GridPegawai

    .RowHeightMin = 300

    .Col = 0

    .Row = 0

    .Text = NO

    .CellFontBold = True

    .ColWidth(0) = 400

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .RowHeightMin = 300

    .Col = 1

    .Row = 0

    .Text = KODE

    .CellFontBold = True

    http://setyawanmartha.files.wordpress.com/2012/12/cari-pegawai.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    54/68

    .ColWidth(1) = 750

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 2

    .Row = 0

    .Text = JABATAN

    .CellFontBold = True

    .ColWidth(2) = 1900

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 3

    .Row = 0

    .Text = NAMA PEGAWAI

    .CellFontBold = True

    .ColWidth(3) = 3300

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 4

    .Row = 0

    .Text = TUNJANGAN [Rp.]

    .CellFontBold = True

    .ColWidth(4) = 1600

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 5

    .Row = 0

    .Text = GAJI

    .CellFontBold = True

    .ColWidth(5) = 1600

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    .Col = 6

    .Row = 0

    .Text = KETERANGAN

    .CellFontBold = True

    .ColWidth(6) = 3000

    .AllowUserResizing = flexResizeColumns

    .CellAlignment = flexAlignCenterCenter

    End With

    End Sub

    Sub TampilGridData() Dim Baris As Integer

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    55/68

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    56/68

    UCase(GridPegawai.TextMatrix(barisGrid, 6))

    End With

    Else

    Exit Sub

    End If

    FrmUtama.Enabled = False

    frmUbahGaji.Enabled = True

    Unload Me

    End Sub

    Private Sub TbNormal_Click()

    Call Form_Load

    txtCari.Text =

    txtCari.SetFocus

    End Sub

    Private Sub TbTutup_Click() FrmUtama.Enabled = False

    frmUbahGaji.Enabled = True

    Unload Me

    End Sub

    Private Sub txtCari_Change()

    If Option2.Value = True Then

    Set Rs_Pegawai = New ADODB.Recordset

    Rs_Pegawai.Open SELECT Pegawai.*, _

    & Jabatan.Nama_Jabatan _

    & FROM Pegawai, Jabatan WHERE _ & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _

    & AND Pegawai.Nm_Pegawai LIKE % _

    & txtCari.Text & % _

    & ORDER BY NIP , _

    KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Rs_Pegawai.BOF Then

    MsgBox Tidak menemukan nama Pegawai! _

    & & txtCari.Text & dalam tabel , _

    vbInformation, Informasi

    txtCari.Text =

    txtCari.SetFocus

    Else

    Call TampilGridData

    End If

    ElseIf Option1.Value = True Then

    Set Rs_Pegawai = New ADODB.Recordset

    Rs_Pegawai.Open SELECT Pegawai.*, _

    & Jabatan.Nama_Jabatan _

    & FROM Pegawai, Jabatan WHERE _ & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    57/68

    & AND Pegawai.NIP LIKE % _

    & txtCari.Text & % _

    & ORDER BY NIP ,_

    KoneksiDB, adOpenDynamic, adLockBatchOptimistic

    If Rs_Pegawai.BOF Then

    MsgBox Tidak menemukan NIP! _

    & & txtCari.Text & dalam tabel , _

    vbInformation, Informasi

    txtCari.Text =

    txtCari.SetFocus

    Else

    Call TampilGridData

    End If

    End If End Sub 14. Buat Form untuk form cetak gaji (frmCetakGaji)

    Biru = Rich TextBox = media cetak variabelnya (rtfLap)

    Orange = Common Dialog (untuk navigasi aplikasi) variabelnya (DialogSimpan)

    SourceCode

    Option Explicit

    Public NoNota As String

    Public TotGaji As String

    Public Lain (+) As String

    http://setyawanmartha.files.wordpress.com/2012/12/cetak-laporan.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    58/68

    Public Total As String

    Dim rsCetak As ADODB.Recordset

    Dim P As Printer

    Dim HariIni As String

    Dim arrHari(1 To 7) As String

    Private Sub Form_Load()

    Move (Screen.Width Width) / 2, _

    (Screen.Height Height) / 3

    rtfLap.Locked = True

    arrHari(1) = Minggu

    arrHari(2) = Senin arrHari(3) = Selasa

    arrHari(4) = Rabu

    arrHari(5) = Kamis

    arrHari(6) = Jumat

    arrHari(7) = Sabtu

    HariIni = arrHari(Abs(Weekday(Date)))

    Dim i, j, JlhBsu, Baris, idx, panjang, _

    pNama As Integer Dim hal As String

    Dim TglKini As String

    Dim Masukan As String

    Dim Kriteria As String

    Dim fileName As String

    TglKini = Format(Date, dd/MM/yyyy )

    SQL =

    SQL = SELECT Penggajian.Tgl_Nota, _

    & Detail_Penggajian.NIP, _

    & Pegawai.Nm_Pegawai, Detail_Penggajian.Tunjangan, _

    & Detail_Penggajian.Kas, _

    & Detail_Penggajian.Subtotal FROM (Penggajian _

    & INNER JOIN Detail_Penggajian ON _

    & Penggajian.No_Nota = Detail_Penggajian.No_Nota) _

    & INNER JOIN Pegawai ON _

    & Detail_Penggajian.NIP = Pegawai.NIP _

    & WHERE Penggajian.No_N ota= & NoNota &

    Set rsCetak = New ADODB.Recordset

    rsCetak.Open SQL, KoneksiDB

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    59/68

    ReDim tabCetak(1)

    j = 0: JlhBsu = 0: rtfLap.Text =

    fileName = Temp.txt

    Open fileName For Output As #1

    rtfLap.Text = CPDP Wil. DEPOK I & vbCrLf & _

    & vbCrLf & _

    Dinas Pendapatan Daerah & vbCrLf & _

    Jl.Merdeka Raya No.2 Sukmajaya Depok & Kriteria & vbCrLf & _

    Ph.[021]7787528 & Kriteria & vbCrLf & _

    & HariIni & , & TglKini & & vbCrLf & _

    No Transaksi: & NoNota & vbCrLf & _

    =============================================================

    =============== & vbCrLf & _

    No. Kode Nama Jumlah Harga Total & vbCrLf & _ -

    Print #1, rtfLap.Text

    Close #1

    Open fileName For Input As #1

    rtfLap.Text = Input(LOF(1), 1)

    Close #1

    i = 0: idx = 1: Baris = 0

    Do While Not rsCetak.EOF

    tabCetak(i).NIP = rsCetak.Fields(NIP )

    tabCetak(i).NamaPegawai = rsCetak.Fields(Nm_Pegawai ) tabCetak(i).Jumlah = rsCetak.Fields(Kas )

    tabCetak(i).HargaSatuan = rsC etak.Fields(Tunjangan )

    tabCetak(i).Total = tabCetak(i).Jumlah * _

    tabCetak(i).Tunjangan

    Open fileName For Output As #1

    rtfLap.SelStart = Len(rtfLap.Text)

    rtfLap.Text = rtfLap.Text & & RKanan((j + 1), # ) & . & _

    RKiri(tabCetak(i).NIP, ########### ) & & _

    RKiri(tabCetak(i).NamaPegawai, ####################### ) & & _

    RKanan(tabCetak(i).Jumlah, ### ) & & _

    RKanan(tabCetak(i).Tunjangan, #,###,### ) & & _

    RKanan(tabCetak(i).Total, #,###,### ) & & vbCrLf

    Print #1, rtfLap.Text

    Close #1

    If rsCetak.EOF = True Then

    Exit Do

    End If

    j = j + 1

    Baris = Baris + 1

    JlhBsu = JlhBsu + tabCetak(i).Total rsCetak.MoveNext

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    60/68

    Loop

    Open fileName For Output As #1

    rtfLap.Text = rtfLap.Text & _

    - & vbCrLf & _

    Total Jenis Barang = & RKanan(j, ### ) & ; Total Besar Uang = & _

    RKanan(JlhBsu, ###,###,###,### ) & & vbCrLf & _

    =============================================================

    ====== & vbCrLf & _

    Total : & RKanan(TotGaji, #,###,###,### ) & &

    vbCrLf & _

    Bayar : & RKanan(Lain (+), #,###,###,### ) & &

    vbCrLf & _

    Kembali : & RKanan(Total, #,###,###,### ) & &

    vbCrLf & _

    =============================================================

    ====== & vbCrLf & _

    ** TERIMA KASIH **

    Print #1, rtfLap.Text

    Close #1

    Set rsCetak = Nothing

    rtfLap.Visible = True

    Show 1

    Exit Sub End Sub

    Private Sub TbCetak_Click()

    Dim Tanya As Integer

    On Error GoTo PrintError

    If IsPrinterInstalled = False Then

    MsgBox Belum ada printer terinstall di & Chr(13) & _

    komputer Anda. Silahkan install & Chr(13) & _

    printer terlebih dulu! , vbCritical, _

    Printer Belum Diinstall

    Exit Sub

    Else

    End If

    If rtfLap.Text = Then

    MsgBox Belum ada data yang akan dicetak! & Chr(13) & _

    Pilihkategori laporan yang akan Anda & Chr(13) & _

    cetak, lalu klik menu Cetak. , vbCritical, _

    Data Tidak Ada

    Exit Sub

    End If

    Printer.FontName = Courier New Printer.FontSize = 9

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    61/68

    Printer.Print rtfLap.Text

    Printer.EndDoc

    If MsgBox(Hasil cetakan sudah benar? _

    , vbQuestion + vbYesNo, Cetak ) = vbYes Then

    End If

    Exit Sub

    PrintError:

    MsgBox Kesalahan nomor: & Err.Number _

    & .Keterangan: _

    & Err.Description & & Chr(13) & _

    & Chr(13) & _

    Kemungkinan printer belum diaktifkan & Chr(13) & _

    atau kertas habis/belum dipasang! & Chr(13) & _

    Nyalakan printer atau pasang kertas, & Chr(13) & _

    laluklik menu Cetak kembali! , _ vbCritical, Printer Error

    Exit Sub

    End Sub

    Private Sub TbKeluar_Click()

    Unload Me

    End Sub

    Private Sub TbSimpan_Click()

    On Error GoTo Batal With DialogSimpan

    .DialogTitle = Simpan sebagai file

    .Filter = *.txt|*.txt

    .ShowSave

    Open .fileName For Output As #1

    Print #1, rtfLap.Text

    Close #1

    End With: Exit Sub

    Batal:

    Exit Sub

    End Sub 15. Module Cetak (mdlCetak) < Variabel

    SourceCode

    Public Type arrCetak

    NIP As String

    NamaPegawai As String

    TanggalTerima As Date

    Jumlah As Long

    Tunjangan As Long

    Total As Long

    End Type

    Public tabCetak() As arrCetak

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    62/68

    # Tulisan rata kiri

    Function RKiri(NData, CFormat) As String

    If NData > 0 Then Jika NData bilangan positif

    RKiri = Format(NData, CFormat)

    RKiri = RKiri + Space(Len(CFormat) Len(RKiri))

    Else Jika NData merupakan string kosong

    RKiri = Format(NData, CFormat)

    RKiri = + Space(Len(CFormat) 1)

    End If

    End Function

    # Tulisan rata kanan

    Function RKanan(NData, CFormat) As String

    If NData > 0 Then Jika NData bilangan positif

    RKanan = Format(NData, CFormat)

    RKanan = RKanan + Space(Len(CFormat) Len(RKanan))

    Else Jika NData merupakan bilangan nol RKanan = Format(NData, CFormat)

    RKanan = Space(Len(CFormat) 1) + 0

    End If

    End Function

    Public Function IsPrinterInstalled() As Boolean

    On Error Resume Next

    Dim strDummy As String

    strDummy = Printer.DeviceName

    If Err.Number Then

    IsPrinterInstalled = False Else

    IsPrinterInstalled = True

    End If

    End Function 16. Module Utama (mdlUtama)

    Sebagai penyambung ke database

    SourceCode

    Option Explicit

    Public KoneksiDB As New ADODB.Connection

    Public Rs_Jabatan As ADODB.Recordset

    Public Rs_Pegawai As ADODB.Recordset

    Public Rs_GajiPokok As ADODB.Recordset

    Public Rs_Pengguna As ADODB.Recordset

    Public Rs_Penggajian As ADODB.Recordset

    Public Rs_CetakPenggajian As ADODB.Recordset

    Public Rs_PreviewPengggajian As ADODB.Recordset

    Public Rs As ADODB.Recordset

    Public StrAkses As String

    Public SqlInsert As String

    Public SqlDelete As String Public SqlUpdate As String

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    63/68

    Public PenggunaID, PenggunaNm As String

    Public SQL As String

    Public Konfirmasi As String

    Public Status As String

    Public Sub BukaDatabase()

    StrAkses = Provider=Microsoft.Jet.OLEDB.4.0;Persist _

    & Security Info=False;Data Source= _

    & App.Path + \ DbGaji.mdb

    On Error Resume Next

    If KoneksiDB.State = adStateOpen Then

    KoneksiDB.Close

    Set KoneksiDB = New ADODB.Connection

    KoneksiDB.Open StrAkses Else

    KoneksiDB.Open StrAkses

    End If

    Set Rs_Jabatan = New ADODB.Recordset

    Rs_Jabatan.Open SELECT * FROM Jabatan , _

    KoneksiDB, adOpenDynamic, _

    adLockBatchOptimistic

    Set Rs_Pegawai = New ADODB.Recordset Rs_Pegawai.Open SELECT Pegawai.*, _

    & Jabatan.Nama_Jabatan _

    & FROM Pegawai, Jabatan WHERE _

    & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _

    & ORDER BY NIP , _

    KoneksiDB, adOpenDynamic, _

    adLockBatchOptimistic

    Set Rs_GajiPokok = New ADODB.Recordset

    Rs_GajiPokok.Open SELECT Pegawai.*, _

    & Jabatan.Nama_Jabatan _

    & FROM Pegawai, Jabatan WHERE _

    & Jabatan.Kode_Jabatan=Pegawai.Kode_Jabatan _

    & AND Pegawai.Gaji_Pokok 0 _

    & ORDER BY NIP , _

    KoneksiDB, adOpenDynamic, _

    adLockBatchOptimistic

    Set Rs_Pengguna = New ADODB.Recordset

    Rs_Pengguna.Open SELECT * FROM Pengguna , _

    KoneksiDB, adOpenDynamic, _ adLockBatchOptimistic

  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    64/68

    Set Rs_Penggajian = New ADODB.Recordset

    Rs_Penggajian.Open SELECT * FROM Penggajian , _

    KoneksiDB, adOpenDynamic, _

    adLockBatchOptimistic

    End Sub

    Public Function TglSkrg(tgl As Date) As String

    TglSkrg = Format(Day(tgl), 00) & / _

    & Format(Month(tgl), 00) & / _

    & Format(Year(tgl))

    End Function 17. DesignerLaporan (DELaporan)

    Pilih Project > More ActiveX Designer > Data Environment atau Project >addData Environtment

    Hubungkan Data Encirontment dengan databese caranya klik kanan menu Connection >

    Properties atauklik icon properties

    http://setyawanmartha.files.wordpress.com/2012/12/capture-20121206-201333.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    65/68

    lalu isikan kolom sesuai denga nam database yang telah dibuat lau klik test connection hingga

    munculkotak dialog laluoke

    18. Membuat Command

    klik kanan connUtama lalu properies

    http://setyawanmartha.files.wordpress.com/2012/12/test.jpghttp://setyawanmartha.files.wordpress.com/2012/12/properties.jpghttp://setyawanmartha.files.wordpress.com/2012/12/test.jpghttp://setyawanmartha.files.wordpress.com/2012/12/properties.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    66/68

    lsikan data dari database sesuai dengan laporan yang akan dibuat

    biru = nama command

    ornge = jenis sumber data dari database

    Kuning = nama tabel databse yang akan diambil datanya

    Lalu oke

    19. Membuat tampilan laporan

    Project > add Data Report

    http://setyawanmartha.files.wordpress.com/2012/12/cmdpengguna.jpghttp://setyawanmartha.files.wordpress.com/2012/12/properties.jpghttp://setyawanmartha.files.wordpress.com/2012/12/cmdpengguna.jpghttp://setyawanmartha.files.wordpress.com/2012/12/properties.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    67/68

    Buka DELapoaran, lakukan drag commnd ke dalam data report

    Klik CmdJabata(misal) tahan > tarik dan letakkan di kolom Detail Section 1

    atur tampilan hinggan menjadi sepertiini

    http://setyawanmartha.files.wordpress.com/2012/12/edit-laporan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/456465418641654564.jpghttp://setyawanmartha.files.wordpress.com/2012/12/edit-laporan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/456465418641654564.jpg
  • 7/27/2019 Totorial Aplikasi Penggajian Visual Basic

    68/68

    SourceCode

    Private Sub DataReport_Terminate()

    rptJenis.Refresh DELaporan.rscmdJabatan.Close

    End Sub

    Buat Laporan sesuai keinginan anda..

    Selamat Mencoba

    http://setyawanmartha.wordpress.com/2012/12/06/totorial-aplikasi-penggajian-visual-basic-6-0/

    http://setyawanmartha.files.wordpress.com/2012/12/laporan-jabatan.jpghttp://setyawanmartha.files.wordpress.com/2012/12/laporan-jabatan.jpg