kesejahteraan bersama, maka pada tanggal 9 Januari 2008 dukungan penuh dari
management
Badan usaha ini bernama Mitra Sejahtera Koperasi Karyawan BCA yang
berlokasi di alamat jalan Jendral Sudirman No. 30 Kota Samarinda Provinsi
Kalimantan Timur. Koperasi Mitra Sejahtera dikelola oleh 33 orang karyawan,
telah memiliki beberapa kegiatan usaha yang siap melaksanakan tugas kapanpun
dan dimanapun dibutuhkan.
Adapun usaha retail yaitu kegiatan usaha yang transaksinya banyak
dilakukan antara koperasi dengan anggotanya, mulai dari barang kebutuhan
sehari-hari, peralatan / perabot rumah tangga, kebutuhan ATK, makanan, air
minum.
4.1.1
4.1.2
Struktur Organisasi
34
35
Hasil Penelitian
36
4.2.1
37
38
39
40
0
Data Jabatan
Data Karyawan
Karyawan
Slip Gaji
Aplikasi
Penggajian
Karyawan
Data Presensi
Data Penggajian
Administrasi
Data PPh
Laporan Data
Karyawan
Laporan Data
Presensi
Laporan Data
Penggajian
Pimpinan
41
5. Proses isi data penggajian , proses ini mengambil data gaji dari entitas
administrasi dan dari data store jabatan, presensi, dan karyawan kemudian
disimpan dalam data store penggajian.
6. Proses slip gaji, Proses ini diambil dari data store penggajian menghasilkan
slip gaji yang akan di berikan pada karyawan.
7. Proses laporan, data store karyawan, data store penggajian, data store
presensi dan data store PPh menghasilkan laporan data karyawan, laporan
data presensi, dan laporan penggajian yang akan diserahkan kepada pimpinan.
42
Data PPh
1
Administrasi
Data Jabatan
Pendataan
Jabatan
Jabatan
Jabatan
Jabatan
2
Kary awan
Pendataan
Kary awan
Kary awan
Kary awan
Kary awan
Kary awan
Kary awan
Data Presensi
Pendataan
Presensi
Presensi
Presensi
Data Penggajian
4
Pendataan
PPh
PPh
PPh
PPh
Penggajian
Presensi
5
Pendataan
Penggajian
Slip Gaji
6
Proses
Slip
Gaji
Penggajian
Penggajian
Penggajian
Penggajian
Laporan Data
Presensi
Pimpinan
7
Laporan
Presensi
Laporan Data
Kary awan
Laporan Data
Penggajian
43
Karyawan
Karyawan
7.1
Laporan
Data
Karyawan
Laporan Data
Karyawan
Pimpinan
Laporan Data
Presensi
Presensi
Presensi
7.2
Laporan
Data
Presensi
Laporan Data
Penggajian
7.3
Laporan
Data
Penggajian
PPh
Penggajian
Karyawan
PPh
Penggajian
Slip Gaji
Penggajian
7.4
Proses
Slip
Gaji
44
Analisa (Analysis)
Analisa
adalah
tahapan
awal
yang
harus
di
lakukan
untuk
2)
2. Analisa Kebutuhan
Analisis Kebutuhan adalah analisa untuk mengetahui kebutuhan dalam
membangun sebuah aplikasi penggajian karyawan, dari sini akan dilakukan
analisa kebutuhan fungsional tujuannya untuk melihat fungsi atau kegunaan dari
aplikasi yang akan dibuat. Kemudian dilakukan analisa baik dari segi perangkat
45
lunak maupun perangkat keras, yang bertujuan untuk melihat spesikasi minimum
dari software dan hardware yang digunakan setelah aplikasi dibuat.
3. Analisa Teknologi
1) Analisa Perangkat Keras (Hardware)
Spesifikasi perangkat keras dalam implementasi pembuatan aplikasi
penggajian karyawan meliputi :
1) Processor Intel Core i3 CPU @ 2.30GHz
2) Memory 2 GB
3) Harddisk 500 GB
2) Analisa Perangkat Lunak (Software)
Spesifikasi perangkat lunak dalam implementasi pembuatan aplikasi
penggajian karyawan meliputi :
1)
2)
3)
4)
4.2.3
Perancangan (Design)
1. Struktur Database
1. Nama Tabel
Primary Key
Keterangan
: tbkaryawan
: NIK
: Tabel yang digunakan untuk menyimpan data
karyawan
Tabel 4.1 Tabel Karyawan
No
Nama Field
Type
Ukuran Field
Keterangan
1
2
3
4
5
6
7
Nik
Nama
Alamat
Telp
jenis_kelamin
kd_jabatan
nama_jabatan
Text
Text
Text
Text
Text
Text
Text
9
50
50
13
12
8
25
Kode Karyawan
Nama Karyawan
Alamat Karyawan
Telp Karyawan
Jenis Kelamin Karyawan
Kode Jabatan
Nama Jabatan
46
8
9
Status
jml_anak
Text
Number
2. Nama Tabel
Primary Key
20
Long Integer
Status Karyawan
Jumlah Anak
: tbjabatan
: kd_jabatan
Keterangan
Nama Field
Type
Ukuran Field
Keterangan
1
2
kd_jabatan
nama_jabatan
8
25
Kode Jabatan
Nama Jabatan
Gapok
Gaji Pokok
tj_jabatan
Text
Text
Currenc
y
Currenc
y
Tunjangan Jabatan
3. Nama Tabel
Foreign Key
Keterangan
: tbpresensi
: NIK
: Tabel yang digunakan untuk menyimpan data
presensi
Tabel 4.3 Tabel Presensi
No
Nama Field
Type
1
2
3
4
5
6
Nik
Nama
periode_awal
periode_akhir
jml_hari_kerja
Jml_jam_lembur
Text
Text
Date/Time
Date/Time
Text
Text
4. Tabel Nama
Primary Key
Keterangan
Ukuran
Field
9
50
3
3
Keterangan
Kode Karyawan
Nama Karyawan
Periode Presensi Awal
Periode Presensi Akhir
Jumlah Hari Kerja
Jumlah Jam Lembur
: tb_gaji
: no_slip
: Tabel yang digunakan untuk menyimpan data
penggajian
Tabel 4.4 Tabel Penggajian
47
No
Nama Field
Type
1
2
3
4
5
6
7
no_slip
Periode_awal
Nik
Nama
nama_jabatan
Gapok
tj_mahal
Text
Date/Time
Text
Text
Text
Currency
Currency
tj_maktrans
Currency
uang_lembur
uang_maklembur
tj_jabatan
jml_pinjaman
Pph
pot_toko
gaji_bruto
jml_pot
total_gaji
Currency
Currency
Currency
Currency
Currency
Currency
Currency
Currency
Currency
8
9
10
11
12
13
14
15
16
17
5. Tabel Nama
Foreign Key
Keterangan
2.
Nama Field
Type
1
2
3
4
5
6
7
No_slip
Jamsostek
wp_sendiri
wp_nikah
wp_anak
biaya_jabatan
hasil_pajak
Text
Currency
Currency
Currency
Currency
Currency
Currency
Keterangan
No Slip Gaji
Periode Gaji
Kode Karyawan
Nama Karyawan
Nama Jabatan
Gaji Pokok
Tunjangan Kemahalan
Tunjangan Makan &
Transportasi
Uang Lembur
Uang Makan Lembur
Tunjangan Jabatan
Jumlah Pinjaman
PPH
Potongan Toko
Gaji Bruto
Jumlah Potongan
Total Gaji
: tbdetailpph
: no_slip
: Tabel yang digunakan untuk meyimpan data PPh
Tabel 4.5 Tabel Detail PPH
No
Ukuran
Field
15
9
50
25
-
Ukuran
Field
15
-
Keterangan
Nomor Slip Gaji
Jamsostek
Wajib Pajak Sendiri
Wajib Pajak Nikah
Wajib Pajak Anak
Biaya Jabatan
Penghasilan Kena Pajak
48
49
Dilanjutkan 2 digit dari bulan masuk karyawan dan 3 digit dari urutan. Kemudian
kolom lainnya berupa identitas karyawan yang harus diisi.
50
51
Uang Lembur
173
Keterangan : 173 = jumlah jam per bulan
4) Uang makan lembur berdasarkan perhitungan :
jumlah jam lembur Rp 15.000
52
53
54
55
56
57
4.2.4
Pengkodean (Coding)
1. Menu Utama
Private Sub MNGAJI_Click()
LAP_GAJI.Show
End Sub
Private Sub MNJABATAN_Click()
JABATAN.Show
End Sub
Private Sub MNKELUAR_Click()
End
End Sub
Private Sub MNLPEGAWAI_Click()
LAP_KARYAWAN.Show
End Sub
Private Sub MNLPRESENSI_Click()
LAP_PRESENSI.Show
End Sub
58
59
End Sub
Private Sub CJENIS_KELAMIN_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then CJABATAN.SetFocus
End Sub
Private Sub CMDEDIT_Click()
If CmdEdit.Caption = "&Edit" Then
CmdInput.Enabled = False
CmdEdit.Caption = "&Simpan"
CmdHapus.Enabled = False
CmdKeluar.Caption = "&Batal"
SiapIsi
TCARI_NAMA.SetFocus
Else
If TNAMA = "" Or TALAMAT = "" Or TTELP = "" Or CJENIS_KELAMIN
= "" Or CJABATAN = "" Or CSTATUS = "" Or TJML_ANAK = "" Then
MsgBox "Masih Ada Data Yang Kosong"
Else
Dim SQLEdit As String
SQLEdit = "Update tbkaryawan Set nama= '" & TNAMA & "', alamat='" &
TALAMAT & "',telp='" & TTELP & "',jenis_kelamin='" &
CJENIS_KELAMIN & "',kd_jabatan='" & CJABATAN & "',nama_jabatan='"
& TNMJABATAN & "',status='" & CSTATUS & "',jml_anak='" &
TJML_ANAK & "' where nik='" & TNIP & "'"
Conn.Execute SQLEdit
Call KondisiAwal
Form_Activate
End If
End If
End Sub
Private Sub CmdHapus_Click()
If CmdHapus.Caption = "&Hapus" Then
CmdInput.Enabled = False
CmdEdit.Enabled = False
CmdKeluar.Caption = "&Batal"
KosongkanText
SiapIsi
TCARI_NAMA.SetFocus
End If
End Sub
Private Sub CMDINPUT_Click()
If CmdInput.Caption = "&Input" Then
CmdInput.Caption = "&Simpan"
CmdEdit.Enabled = False
CmdHapus.Enabled = False
CmdKeluar.Caption = "&Batal"
SiapIsi
KosongkanText
60
TNIP.SetFocus
Else
If TNIP = "" Or TNAMA = "" Or TALAMAT = "" Or TTELP = "" Or
CJENIS_KELAMIN = "" Or CJABATAN = "" Or TNMJABATAN = "" Or
CSTATUS = "" Or TJML_ANAK = "" Then
MsgBox "Data Belum Lengkap...!"
Else
Dim SQLTambah As String
SQLTambah
=
"Insert
Into
tbkaryawan
(nik,nama,alamat,telp,jenis_kelamin,kd_jabatan,nama_jabatan,status,jml_an
ak) values ('" & TNIP & "','" & TNAMA & "','" & TALAMAT & "','" &
TTELP & "','" & CJENIS_KELAMIN & "','" & CJABATAN & "','" &
TNMJABATAN & "','" & CSTATUS & "','" & TJML_ANAK & "')"
Conn.Execute SQLTambah
Call KondisiAwal
Form_Activate
End If
End If
End Sub
Private Sub CMDKELUAR_Click()
Select Case CmdKeluar.Caption
Case "&Keluar"
Unload Me
Case "&Batal"
TidakSiapIsi
KondisiAwal
End Select
End Sub
Private Sub CSTATUS_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then TJML_ANAK.SetFocus
If CSTATUS = "BELUM MENIKAH" Then TJML_ANAK.Text = "0"
End Sub
Private Sub DataGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyReturn
If CmdEdit.Caption = "&Simpan" Then
Call SelectAllVisible1
TNAMA.SetFocus
ElseIf CmdHapus.Caption = "&Hapus" Then
Call SelectAllVisible2
End If
Case vbKeyEscape
KondisiAwal
CmdHapus.SetFocus
End Select
End Sub
61
Sub SelectAllVisible1()
If TNIP <> DataGrid1.Columns(0) Then
TNIP = DataGrid1.Columns(0)
Call CariData
TNIP.Enabled = False
TNIP = DataGrid1.Columns(0)
TNAMA = DataGrid1.Columns(1)
TALAMAT = DataGrid1.Columns(2)
TTELP = DataGrid1.Columns(3)
CJENIS_KELAMIN = DataGrid1.Columns(4)
CJABATAN = DataGrid1.Columns(5)
TNMJABATAN = DataGrid1.Columns(6)
CSTATUS = DataGrid1.Columns(7)
TJML_ANAK = DataGrid1.Columns(8)
TNAMA.SetFocus
End If
End Sub
Sub SelectAllVisible2()
If TNIP <> DataGrid1.Columns(0) Then
TNIP = DataGrid1.Columns(0)
Call CariData
TNIP.Enabled = False
TNIP = DataGrid1.Columns(0)
TNAMA = DataGrid1.Columns(1)
TALAMAT = DataGrid1.Columns(2)
TTELP = DataGrid1.Columns(3)
CJENIS_KELAMIN = DataGrid1.Columns(4)
CJABATAN = DataGrid1.Columns(5)
TNMJABATAN = DataGrid1.Columns(6)
CSTATUS = DataGrid1.Columns(7)
TJML_ANAK = DataGrid1.Columns(8)
Pesan = MsgBox("Yakin akan dihapus..?", vbYesNo, "Konfirmasi")
If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbkaryawan where nik= '" & TNIP & "'"
Conn.Execute SQLHapus
DataGrid1.Refresh
KondisiAwal
CmdHapus.SetFocus
Else
KondisiAwal
CmdHapus.SetFocus
End If
End If
End Sub
Private Sub Form_Activate()
Call BukaDB
62
Adodc1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\DatabaseGaji.mdb"
Adodc1.RecordSource = "SELECT * FROM tbkaryawan ORDER BY nik"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
Sub Form_Load()
TNIP.MaxLength = 9
TNAMA.MaxLength = 30
TTELP.MaxLength = 13
Call BukaDB
RSKARYAWAN.Open "SELECT DISTINCT kd_jabatan FROM tbjabatan
ORDER BY kd_jabatan", Conn
RSKARYAWAN.MoveFirst
Do While Not RSKARYAWAN.EOF
CJABATAN.AddItem RSKARYAWAN!kd_jabatan
RSKARYAWAN.MoveNext
Loop
CSTATUS.AddItem "MENIKAH"
CSTATUS.AddItem "BELUM MENIKAH"
CJENIS_KELAMIN.AddItem "LAKI-LAKI"
CJENIS_KELAMIN.AddItem "PEREMPUAN"
KondisiAwal
End Sub
Function CariData()
Call BukaDB
RSKARYAWAN.Open "Select * From tbkaryawan where nik='" & TNIP & "'",
Conn
End Function
Private Sub TampilkanData()
With RSKARYAWAN
If Not RSKARYAWAN.EOF Then
TNAMA = RSKARYAWAN!nama
TALAMAT = RSKARYAWAN!alamat
TTELP = RSKARYAWAN!telp
CJENIS_KELAMIN = RSKARYAWAN!jenis_kelamin
CJABATAN = RSKARYAWAN!kd_jabatan
TNMJABATAN = RSKARYAWAN!nama_jabatan
CSTATUS = RSKARYAWAN!Status
TJML_ANAK = RSKARYAWAN!jml_anak
End If
End With
End Sub
Private Sub KosongkanText()
TNIP = ""
TNAMA = ""
TALAMAT = ""
63
TTELP = ""
CJENIS_KELAMIN = ""
CJABATAN = ""
TNMJABATAN = ""
CSTATUS = ""
TJML_ANAK = ""
TCARI_NAMA = ""
End Sub
Private Sub SiapIsi()
TNIP.Enabled = True
TNAMA.Enabled = True
TALAMAT.Enabled = True
TTELP.Enabled = True
CJENIS_KELAMIN.Enabled = True
CJABATAN.Enabled = True
TNMJABATAN.Enabled = True
CSTATUS.Enabled = True
TJML_ANAK.Enabled = True
TCARI_NAMA.Enabled = True
End Sub
Private Sub TidakSiapIsi()
TNIP.Enabled = False
TNAMA.Enabled = False
TALAMAT.Enabled = False
TTELP.Enabled = False
CJENIS_KELAMIN.Enabled = False
CJABATAN.Enabled = False
TNMJABATAN.Enabled = False
CSTATUS.Enabled = False
TJML_ANAK.Enabled = False
End Sub
Private Sub KondisiAwal()
KosongkanText
TidakSiapIsi
CmdInput.Caption = "&Input"
CmdEdit.Caption = "&Edit"
CmdHapus.Caption = "&Hapus"
CmdKeluar.Caption = "&Keluar"
CmdInput.Enabled = True
CmdEdit.Enabled = True
CmdHapus.Enabled = True
End Sub
Private Sub TALAMAT_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then TTELP.SetFocus
End Sub
Private Sub TCARI_NAMA_Change()
64
Adodc1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\DatabaseGaji.mdb"
Adodc1.RecordSource = "select * from tbkaryawan where nama like '%" &
TCARI_NAMA & "%'"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
Private Sub TCARI_NAMA_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then DataGrid1.SetFocus
End Sub
Private Sub TJML_ANAK_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If CmdInput.Enabled = True Then
CmdInput.SetFocus
ElseIf CmdEdit.Enabled = True Then
CmdEdit.SetFocus
End If
End If
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Private Sub TNAMA_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then TALAMAT.SetFocus
End Sub
Private Sub TNIP_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
If Len(TNIP) < 9 Then
MsgBox "NIK Harus 9 Digit"
TNIP.SetFocus
Else
TNAMA.SetFocus
End If
If CmdInput.Caption = "&Simpan" Then
Call CariData
If Not RSKARYAWAN.EOF Then
MsgBox "NIK Sudah Ada"
KosongkanText
TNIP.SetFocus
Else
TNAMA.SetFocus
End If
End If
If CmdEdit.Caption = "&Simpan" Then
65
Call CariData
If Not RSKARYAWAN.EOF Then
TampilkanData
TNIP.Enabled = False
TNAMA.SetFocus
Else
MsgBox "NIK Tidak Ada"
TNIP = ""
TNIP.SetFocus
End If
End If
If CmdHapus.Enabled = True Then
Call CariData
If Not RSKARYAWAN.EOF Then
TampilkanData
Pesan = MsgBox("Yakin akan dihapus?", vbYesNo)
If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbkaryawan where nik= '" & TNIP & "'"
Conn.Execute SQLHapus
Call KondisiAwal
Form_Activate
CmdHapus.SetFocus
Else
Call KondisiAwal
Form_Activate
CmdHapus.SetFocus
End If
Else
MsgBox "Data Tidak ditemukan"
TNIP.SetFocus
End If
End If
End If
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Private Sub TTELP_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then CJENIS_KELAMIN.SetFocus
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Function CariGrid()
Call BukaDB
RSPegawai.Open "Select * From tbkaryawan where nik='" &
DataGrid1.Columns(0) & "'", Conn
End Function
66
67
SiapIsi
TCARI.SetFocus
End If
End Sub
Private Sub CMDINPUT_Click()
If CMDINPUT.Caption = "&Input" Then
CMDINPUT.Caption = "&Simpan"
CMDEDIT.Enabled = False
CMDHAPUS.Enabled = False
CMDKELUAR.Caption = "&Batal"
SiapIsi
KosongkanText
CBULAN.SetFocus
Else
If TNIP = "" Or CNAMA = "" Or CBULAN = "" Or CBULAN_AKR = "" Or
THARIKERJA = "" Or TJAM = "" Then
MsgBox "Data Belum Lengkap...!"
Else
Dim SQLTambah As String
periode_awal = Format(CBULAN.Value, "mmyyyy")
SQLTambah
=
"Insert
Into
tbpresensi
(nik,nama,periode_awal,periode_akhir,jml_hari_kerja,jml_jam_lembur)
values ('" & TNIP & "','" & CNAMA & "','" & CBULAN & "','" &
CBULAN_AKR & "','" & THARIKERJA & "','" & TJAM & "')"
Conn.Execute SQLTambah
Call KondisiAwal
Form_Activate
End If
End If
End Sub
Private Sub CMDKELUAR_Click()
Select Case CMDKELUAR.Caption
Case "&Keluar"
Unload Me
Case "&Batal"
TidakSiapIsi
KondisiAwal
End Select
End Sub
Private Sub CNAMA_Click()
Call BukaDB
If KeyAscii = 13 Then THARIKERJA.SetFocus
RSPRESENSI.Open "Select * from tbkaryawan where nama='" & CNAMA &
"'", Conn
If RSPRESENSI.EOF Then
CNAMA.SetFocus
Else
TNIP = RSPRESENSI!nik
68
End If
End Sub
Private Sub CNAMA_KeyPress(KeyAscii As Integer)
Call BukaDB
If CMDINPUT.Caption = "&Simpan" Then
Call CariData
If Not RSPRESENSI.EOF Then
TampilkanData
MsgBox "Data sudah ada"
KosongkanText
CBULAN.SetFocus
Exit Sub
Else
THARIKERJA.SetFocus
End If
End If
If CMDEDIT.Caption = "&Simpan" Then
Call CariData
If Not RSPRESENSI.EOF Then
TampilkanData
CNAMA.Enabled = False
CBULAN.SetFocus
Else
MsgBox "Nama Tidak Ada"
CNAMA = ""
CNAMA.SetFocus
End If
End If
If CMDHAPUS.Enabled = True Then
Call CariData
If Not RSPRESENSI.EOF Then
TampilkanData
Pesan = MsgBox("Yakin akan dihapus?", vbYesNo)
If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbpresensi where nama= '" & CNAMA & "'"
Conn.Execute SQLHapus
Call KondisiAwal
Form_Activate
CMDHAPUS.SetFocus
Else
Call KondisiAwal
Form_Activate
CMDHAPUS.SetFocus
End If
Else
MsgBox "Data Tidak ditemukan"
CNAMA.SetFocus
69
End If
End If
End Sub
Private Sub DataGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyReturn
If CMDEDIT.Caption = "&Simpan" Then
Call SelectAllVisible1
TNIP.SetFocus
ElseIf CMDHAPUS.Caption = "&Hapus" Then
Call SelectAllVisible2
End If
Case vbKeyEscape
KondisiAwal
CMDHAPUS.SetFocus
End Select
End Sub
Private Sub Form_Activate()
Call BukaDB
Adodc1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\DatabaseGaji.mdb"
Adodc1.RecordSource = "SELECT * FROM tbpresensi "
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
Private Sub Form_Load()
Call BukaDB
RSPRESENSI.Open "SELECT DISTINCT nama FROM tbkaryawan ORDER
BY nama", Conn
RSPRESENSI.MoveFirst
Do While Not RSPRESENSI.EOF
CNAMA.AddItem RSPRESENSI!nama
RSPRESENSI.MoveNext
Loop
CBULAN = Date
CBULAN_AKR = Date
KondisiAwal
End Sub
Private Sub TampilkanData()
With RSPRESENSI
If Not RSPRESENSI.EOF Then
CBULAN_AKR = RSPRESENSI!periode_akhir
TNIP = RSPRESENSI!nik
THARIKERJA = RSPRESENSI!jml_hari_kerja
TJAM = RSPRESENSI!jml_jam_lembur
End If
End With
70
End Sub
Function JumlahKerja()
THARIKERJA = DateDiff("d", CBULAN.Value, CBULAN_AKR.Value) - 8
End Function
Private Sub KosongkanText()
TNIP = ""
CNAMA = ""
THARIKERJA = ""
TJAM = ""
End Sub
Private Sub SiapIsi()
TNIP.Enabled = True
CNAMA.Enabled = True
CBULAN.Enabled = True
CBULAN_AKR.Enabled = True
THARIKERJA.Enabled = True
TJAM.Enabled = True
End Sub
Private Sub TidakSiapIsi()
TNIP.Enabled = False
CNAMA.Enabled = False
CBULAN.Enabled = False
CBULAN_AKR.Enabled = False
THARIKERJA.Enabled = False
TJAM.Enabled = False
End Sub
Private Sub KondisiAwal()
KosongkanText
TidakSiapIsi
CMDINPUT.Caption = "&Input"
CMDEDIT.Caption = "&Edit"
CMDHAPUS.Caption = "&Hapus"
CMDKELUAR.Caption = "&Keluar"
CMDINPUT.Enabled = True
CMDEDIT.Enabled = True
CMDHAPUS.Enabled = True
End Sub
Function CariData()
Call BukaDB
RSPRESENSI.Open "Select * From tbpresensi Where nik = '" & CNIP & "'
and CDate(month(periode_awal)) = '" & CDate(Month(CBULAN)) & "'",
Conn
End Function
Private Sub TCARI_Change()
Adodc1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\DatabaseGaji.mdb"
Adodc1.RecordSource = "select * from tbpresensi where nama like '%" &
TCARI & "%'"
71
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
Private Sub TCARI_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then DataGrid1.SetFocus
End Sub
Private Sub CBULAN_KeyPress(KeyAscii As Integer)
Call BukaDB
If CMDINPUT.Caption = "&Simpan" Then
CBULAN.SetFocus
Else
THARIKERJA.SetFocus
End If
If CMDEDIT.Caption = "&Simpan" Then
Call CariData
If Not RSPRESENSI.EOF Then
TampilkanData
CNAMA.Enabled = False
CBULAN.SetFocus
Else
MsgBox "Nama Tidak Ada"
CNAMA = ""
CNAMA.SetFocus
End If
End If
If CMDHAPUS.Enabled = True Then
Call CariData
If Not RSPRESENSI.EOF Then
TampilkanData
Pesan = MsgBox("Yakin akan dihapus?", vbYesNo)
If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbpresensi where nama= '" & CNAMA & "'"
Conn.Execute SQLHapus
Call KondisiAwal
Form_Activate
CMDHAPUS.SetFocus
Else
Call KondisiAwal
Form_Activate
CMDHAPUS.SetFocus
End If
Else
MsgBox "Data Tidak ditemukan"
CNAMA.SetFocus
End If
End If
72
End Sub
Private Sub THARIKERJA_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then TJAM.SetFocus
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Private Sub TJAM_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If CMDINPUT.Enabled = True Then
CMDINPUT.SetFocus
ElseIf CMDEDIT.Enabled = True Then
CMDEDIT.SetFocus
End If
End If
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Function CariGrid()
Call BukaDB
RSPRESENSI.Open "Select * From tbpresensi where nama='" &
DataGrid1.Columns(0) & "'", Conn
End Function
Sub SelectAllVisible1()
If CNAMA <> DataGrid1.Columns(0) Then
CNAMA = DataGrid1.Columns(0)
Call CariData
CNAMA.Enabled = False
CNAMA = DataGrid1.Columns(0)
TNIP = DataGrid1.Columns(1)
CBULAN = DataGrid1.Columns(2)
CBULAN_AKR = DataGrid1.Columns(3)
THARIKERJA = DataGrid1.Columns(4)
TJAM = DataGrid1.Columns(5)
TNIP.SetFocus
End If
End Sub
Sub SelectAllVisible2()
If CNAMA <> DataGrid1.Columns(0) Then
CNAMA = DataGrid1.Columns(0)
Call CariData
CNAMA.Enabled = False
CNAMA = DataGrid1.Columns(0)
TNIP = DataGrid1.Columns(1)
CBULAN = DataGrid1.Columns(2)
CBULAN_AKR = DataGrid1.Columns(3)
THARIKERJA = DataGrid1.Columns(4)
73
TJAM = DataGrid1.Columns(5)
Pesan = MsgBox("Yakin akan dihapus..?", vbYesNo, "Konfirmasi")
If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbpresensi where nama= '" & CNAMA & "'"
Conn.Execute SQLHapus
DataGrid1.Refresh
KondisiAwal
CMDHAPUS.SetFocus
Else
KondisiAwal
CMDHAPUS.SetFocus
End If
End If
End Sub
4. Input Data Jabatan
Private Sub CMDEDIT_Click()
If CMDEDIT.Caption = "&Edit" Then
CMDINPUT.Enabled = False
CMDEDIT.Caption = "&Simpan"
CMDHAPUS.Enabled = False
CMDKELUAR.Caption = "&Batal"
SiapIsi
TKDJABATAN.SetFocus
Else
If TNAMA_JABATAN = "" Or TGAPOK = "" Or TTUN_JABATAN = "" Then
MsgBox "Masih Ada Data Yang Kosong"
Else
Dim SQLEdit As String
SQLEdit = "Update tbjabatan Set nama_jabatan= '" & TNAMA_JABATAN
& "', gapok='" & TGAPOK & "', tj_jabatan='" & TTUN_JABATAN & "'
where kd_jabatan='" & TKDJABATAN & "'"
Conn.Execute SQLEdit
Call KondisiAwal
Form_Activate
End If
End If
End Sub
Private Sub CmdHapus_Click()
If CMDHAPUS.Caption = "&Hapus" Then
CMDINPUT.Enabled = False
CMDEDIT.Enabled = False
CMDKELUAR.Caption = "&Batal"
KosongkanText
SiapIsi
TCARI.SetFocus
End If
74
End Sub
Private Sub CMDINPUT_Click()
If CMDINPUT.Caption = "&Input" Then
CMDINPUT.Caption = "&Simpan"
CMDEDIT.Enabled = False
CMDHAPUS.Enabled = False
CMDKELUAR.Caption = "&Batal"
SiapIsi
KosongkanText
TKDJABATAN.SetFocus
Else
If TKDJABATAN = "" Or TNAMA_JABATAN = "" Or TGAPOK = "" Then
MsgBox "Data Belum Lengkap...!"
Else
Dim SQLTambah As String
SQLTambah
=
"Insert
Into
tbjabatan
(kd_jabatan,nama_jabatan,gapok,tj_jabatan) values ('" & TKDJABATAN &
"','" & TNAMA_JABATAN & "','" & TGAPOK & "','" & TTUN_JABATAN &
"')"
Conn.Execute SQLTambah
Call KondisiAwal
Form_Activate
End If
End If
End Sub
Private Sub CMDKELUAR_Click()
Select Case CMDKELUAR.Caption
Case "&Keluar"
Unload Me
Case "&Batal"
TidakSiapIsi
KondisiAwal
End Select
End Sub
Private Sub DataGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyReturn
If CMDEDIT.Caption = "&Simpan" Then
Call SelectAllVisible1
TNAMA_JABATAN.SetFocus
ElseIf CMDHAPUS.Caption = "&Hapus" Then
Call SelectAllVisible2
End If
Case vbKeyEscape
KondisiAwal
CMDHAPUS.SetFocus
End Select
End Sub
75
Sub Form_Load()
Call BukaDB
RSJABATAN.Open "SELECT DISTINCT kd_jabatan FROM tbjabatan
ORDER BY kd_jabatan", Conn
RSJABATAN.MoveFirst
Do While Not RSJABATAN.EOF
TKDJABATAN = RSJABATAN!kd_jabatan
RSJABATAN.MoveNext
Loop
KondisiAwal
End Sub
Private Sub Form_Activate()
Call BukaDB
Adodc1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\DatabaseGaji.mdb"
Adodc1.RecordSource = "SELECT * FROM tbjabatan ORDER BY
kd_jabatan"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
Function CariData()
Call BukaDB
RSJABATAN.Open "Select * From tbjabatan where kd_jabatan='" &
TKDJABATAN & "'", Conn
End Function
Private Sub KosongkanText()
TKDJABATAN = ""
TNAMA_JABATAN = ""
TGAPOK = ""
TTUN_JABATAN = ""
TCARI = ""
End Sub
Private Sub SiapIsi()
TKDJABATAN.Enabled = True
TNAMA_JABATAN.Enabled = True
TGAPOK.Enabled = True
TTUN_JABATAN.Enabled = True
TCARI.Enabled = True
End Sub
Private Sub TidakSiapIsi()
TKDJABATAN.Enabled = False
TNAMA_JABATAN.Enabled = False
TGAPOK.Enabled = False
TTUN_JABATAN.Enabled = False
End Sub
Private Sub KondisiAwal()
KosongkanText
76
TidakSiapIsi
CMDINPUT.Caption = "&Input"
CMDEDIT.Caption = "&Edit"
CMDHAPUS.Caption = "&Hapus"
CMDKELUAR.Caption = "&Keluar"
CMDINPUT.Enabled = True
CMDEDIT.Enabled = True
CMDHAPUS.Enabled = True
End Sub
Private Sub TampilkanData()
With RSJABATAN
If Not RSJABATAN.EOF Then
TNAMA_JABATAN = RSJABATAN!nama_jabatan
TGAPOK = RSJABATAN!gapok
TTUN_JABATAN = RSJABATAN!tj_jabatan
End If
End With
End Sub
Private Sub TCARI_Change()
Adodc1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\DatabaseGaji.mdb"
Adodc1.RecordSource = "select * from tbjabatan where nama_jabatan like
'%" & TCARI & "%'"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
Private Sub TCARI_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then DataGrid1.SetFocus
End Sub
Private Sub TGAPOK_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then TTUN_JABATAN.SetFocus
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Private Sub TKDJABATAN_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
If Len(TKDJABATAN) < 1 Then
MsgBox "Isi Kode Jabatan minimal 1 Digit"
TKDJABATAN.SetFocus
Else
TNAMA_JABATAN.SetFocus
End If
If CMDINPUT.Caption = "&Simpan" Then
Call CariData
If Not RSJABATAN.EOF Then
TampilkanData
77
78
'If Not (Keyascii >= Asc("0") And Keyascii <= Asc("9") Or Keyascii =
vbKeyBack) Then Keyascii = 0
End Sub
Function CariGrid()
Call BukaDB
RSJABATAN.Open "Select * From tbjabatan where kd_jabatan='" &
DataGrid1.Columns(0) & "'", Conn
End Function
Sub SelectAllVisible1()
If TKDJABATAN <> DataGrid1.Columns(0) Then
TKDJABATAN = DataGrid1.Columns(0)
Call CariData
TKDJABATAN.Enabled = False
TKDJABATAN = DataGrid1.Columns(0)
TNAMA_JABATAN = DataGrid1.Columns(1)
TGAPOK = DataGrid1.Columns(2)
TTUN_JABATAN = DataGrid1.Columns(3)
TNAMA_JABATAN.SetFocus
End If
End Sub
Sub SelectAllVisible2()
If TKDJABATAN <> DataGrid1.Columns(0) Then
TKDJABATAN = DataGrid1.Columns(0)
Call CariData
TKDJABATAN.Enabled = False
TKDJABATAN = DataGrid1.Columns(0)
TNAMA_JABATAN = DataGrid1.Columns(1)
TGAPOK = DataGrid1.Columns(2)
TTUN_JABATAN = DataGrid1.Columns(3)
Pesan = MsgBox("Yakin akan dihapus..?", vbYesNo, "Konfirmasi")
If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbjabatan where kd_jabatan= '" &
TKDJABATAN & "'"
Conn.Execute SQLHapus
DataGrid1.Refresh
KondisiAwal
CMDHAPUS.SetFocus
Else
KondisiAwal
CMDHAPUS.SetFocus
End If
End If
End Sub
Private Sub TTUN_JABATAN_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If CMDINPUT.Enabled = True Then
CMDINPUT.SetFocus
79
80
CmdEdit.Enabled = False
CmdKeluar.Caption = "&Batal"
KosongkanText
KosongkanPPH
SiapIsi
TCARI.SetFocus
End If
End Sub
Private Sub CMDINPUT_Click()
'DTGAJI.Value = Format(Now, "dd/mm/yy")
Command5.Enabled = True
If CmdInput.Caption = "&Input" Then
CmdInput.Caption = "&Simpan"
CmdEdit.Enabled = False
CmdHapus.Enabled = False
CmdKeluar.Caption = "&Batal"
SiapIsi
KosongkanText
KosongkanPPH
Call Auto
DTGAJI.SetFocus
Else
If CNIP = "" Then
MsgBox "Data Belum Lengkap...!"
Else
MsgBox "Yakin Data Disimpan?", vbInformation, "Information"
Dim SQLTambah As String
Dim total_gaji As Currency
SQLTambah
=
"Insert
Into
tb_gaji
(no_slip,periode_awal,nik,nama,nama_jabatan,gapok,tj_mahal,tj_maktrans,
uang_lembur,uang_maklembur,gaji_bruto,tj_jabatan,jml_pinjaman,pph,pot_t
oko,jml_pot,total_gaji) values('" & LSLIP & "','" & DTGAJI & "','" & CNIP
& "','" & LNAMA & "','" & LJABATAN & "','" & TGAJI_POKOK & "','" &
TTUN_KML & "','" & TTUN_MAKANTRANS & "','" & TLEMBUR & "','" &
TUANG_LEMBUR & "','" & TGAJI_BRUTO & "','" & TTJ_JABATAN & "','"
& TPINJAMAN & "','" & TPPH & "','" & TPOT_TOKO & "','" &
TJML_POT & "','" & TTOTAL & "')"
Conn.Execute SQLTambah
Call KondisiAwal
Form_Activate
End If
End If
End Sub
Private Sub CMDKELUAR_Click()
Select Case CmdKeluar.Caption
Case "&Keluar"
Unload Me
Case "&Batal"
81
Command5.Enabled = False
TidakSiapIsi
KondisiAwal
End Select
End Sub
Private Sub CNIP_Change()
Call BukaDB
periode_awal = Format(DTGAJI.Value, "mm/yy")
RSPRESENSI.Open "Select * From tbpresensi Where nik='" & CNIP & "'
and (month(periode_awal))='" & (Month(DTGAJI)) & "' and
(year(periode_awal))='" & (Year(DTGAJI)) & "'", Conn
If Not RSPRESENSI.EOF Then
'MsgBox "Data presensi tidak ditemukan"
'CNIP.SetFocus
'Else
Text1.Caption = RSPRESENSI!jml_hari_kerja
Text2.Caption = RSPRESENSI!jml_jam_lembur
Exit Sub
End If
RSPRESENSI.Close
End Sub
Private Sub Command1_Click()
'Dim SQLTambah As Currency
Dim SQLTambah As String
SQLTambah
=
"Insert
Into
tbdetailpph
(no_slip,jamsostek,biaya_jabatan,wp_sendiri,wp_nikah,wp_anak,hasil_pajak
) values ('" & LSLIP & "','" & TJAMSOSTEK & "','" & TBIAYA_JABATAN &
"','" & TWPSENDIRI & "','" & TWPNIKAH & "','" & TWPANAK & "','" &
THASIL & "')"
Conn.Execute SQLTambah
'TampilkanDetailPPH
Frame1_Activate
'End
Frame3.Visible = False
TPINJAMAN.SetFocus
End Sub
Private Sub Frame1_Activate()
Call BukaDB
'Adodc1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\DatabaseGaji.mdb"
Adodc1.RecordSource = "SELECT * FROM tbdetailpph ORDER BY no_slip"
Adodc1.Refresh
End Sub
Private Sub Command2_Click()
Frame3.Visible = False
TPPH.Text = ""
End Sub
Private Sub Command3_Click()
82
83
Case vbKeyReturn
If CmdEdit.Caption = "&Simpan" Then
Call SelectAllVisible1
CNIP.SetFocus
ElseIf CmdHapus.Caption = "&Hapus" Then
Call SelectAllVisible2
End If
Case vbKeyEscape
KondisiAwal
CmdHapus.SetFocus
End Select
End Sub
Sub SelectAllVisible1()
If LSLIP <> DataGrid1.Columns(0) Then
LSLIP = DataGrid1.Columns(0)
Call CariData
LSLIP.Enabled = False
LSLIP = DataGrid1.Columns(0)
DTGAJI = DataGrid1.Columns(1)
CNIP = DataGrid1.Columns(2)
LNAMA = DataGrid1.Columns(3)
LJABATAN = DataGrid1.Columns(4)
TGAJI_POKOK = DataGrid1.Columns(5)
TTUN_KML = DataGrid1.Columns(6)
TTJ_JABATAN = DataGrid1.Columns(7)
TTUN_MAKANTRANS = DataGrid1.Columns(8)
TLEMBUR = DataGrid1.Columns(9)
TUANG_LEMBUR = DataGrid1.Columns(10)
TPPH = DataGrid1.Columns(11)
TPINJAMAN = DataGrid1.Columns(12)
TPOT_TOKO = DataGrid1.Columns(13)
TGAJI_BRUTO = DataGrid1.Columns(14)
TJML_POT = DataGrid1.Columns(15)
TTOTAL = DataGrid1.Columns(16)
CNIP.SetFocus
End If
End Sub
Sub SelectAllVisible2()
If LSLIP <> DataGrid1.Columns(0) Then
LSLIP = DataGrid1.Columns(0)
Call CariData
LSLIP.Enabled = False
LSLIP = DataGrid1.Columns(0)
DTGAJI = DataGrid1.Columns(1)
CNIP = DataGrid1.Columns(2)
LNAMA = DataGrid1.Columns(3)
LJABATAN = DataGrid1.Columns(4)
TGAJI_POKOK = DataGrid1.Columns(5)
84
TTUN_KML = DataGrid1.Columns(6)
TTJ_JABATAN = DataGrid1.Columns(7)
TTUN_MAKANTRANS = DataGrid1.Columns(8)
TLEMBUR = DataGrid1.Columns(9)
TUANG_LEMBUR = DataGrid1.Columns(10)
TPPH = DataGrid1.Columns(11)
TPINJAMAN = DataGrid1.Columns(12)
TPOT_TOKO = DataGrid1.Columns(13)
TGAJI_BRUTO = DataGrid1.Columns(14)
TJML_POT = DataGrid1.Columns(15)
TTOTAL = DataGrid1.Columns(16)
Pesan = MsgBox("Yakin akan dihapus..?", vbYesNo, "Konfirmasi")
If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tb_gaji where no_slip= '" & LSLIP & "'"
Conn.Execute SQLHapus
DataGrid1.Refresh
KondisiAwal
CmdHapus.SetFocus
Else
KondisiAwal
CmdHapus.SetFocus
End If
End If
End Sub
Private Sub DTGAJI_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
CNIP.SetFocus
End If
End Sub
Private Sub Form_Activate()
Call BukaDB
Adodc1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\DatabaseGaji.mdb"
Adodc1.RecordSource = "SELECT * FROM tb_gaji ORDER BY no_slip"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
Private Sub Form_Load()
Call BukaDB
periode_awal = Format(DTGAJI.Value, "mm/yy")
RSGAJI.Open "SELECT DISTINCT nik FROM tbkaryawan ORDER BY nik",
Conn
RSGAJI.MoveFirst
Do While Not RSGAJI.EOF
CNIP.AddItem RSGAJI!nik
RSGAJI.MoveNext
85
Loop
KondisiAwal
Set RSGAJI = New ADODB.Recordset
RSGAJI.Open "SELECT * FROM tb_gaji ORDER BY no_slip ASC", Conn
While Not RSGAJI.EOF
Combo1.AddItem RSGAJI!no_slip
Combo2.AddItem RSGAJI!nik
RSGAJI.MoveNext
Wend
Option1.Value = 0
Option2.Value = 0
End Sub
Private Sub HasilKenaPajak()
THASILNETO = ((Val(TGAJI.Text) + Val(TJAMSOSTEK.Text)) Val(TBIAYA_JABATAN.Text))
End Sub
Private Sub GajiSetahun()
TBIAYA_JABATAN.Text
=
Format(5
*
(Val(TGAJI.Text)
+
Val(TJAMSOSTEK.Text)) / 100, "###")
End Sub
Private Sub CNIP_Click()
Call BukaDB
RSJABATAN.Open"SELECT
tbkaryawan.nama_jabatan,tbkaryawan.nama,tbkaryawan.jml_anak,tbkaryaw
an.status,tbjabatan.gapok,tbjabatan.tj_jabatan FROM tbkaryawan,tbjabatan
where tbkaryawan.nama_jabatan = tbjabatan.nama_jabatan ORDER BY
nik='" & CNIP & "'", Conn
If RSJABATAN.EOF Then
MsgBox "NIK tidak terdaftar"
CNIP.SetFocus
Else
LNAMA = RSJABATAN!nama
TANAK = RSJABATAN!jml_anak
TSTATUS = RSJABATAN!Status
LJABATAN = RSJABATAN!nama_jabatan
TGAJI_POKOK = RSJABATAN!gapok
TTJ_JABATAN = RSJABATAN!tj_jabatan
CNIP.SetFocus
End If
If TANAK.Text = "0" Then
TWPANAK.Enabled = False
Label27.Enabled = False
Else
TWPANAK.Enabled = True
Label27.Enabled = True
End If
If TSTATUS.Text = "BELUM MENIKAH" Then
TWPNIKAH.Enabled = False
86
Label26.Enabled = False
Else
TWPNIKAH.Enabled = True
Label26.Enabled = True
End If
CNIP_Change
End Sub
Private Sub CNIP_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If CNIP = "" Then
MsgBox "NIK Belum Terisi"
Exit Sub
CNIP.SetFocus
Else
Call BukaDB
RSGAJI.Open "Select * from tb_gaji where nik='" & CNIP & "' and
(month(periode_awal))
='"
&
(Month(DTGAJI))
&
"'
and
(year(periode_awal)) ='" & (Year(DTGAJI)) & "'", Conn
If Not RSGAJI.EOF Then
MsgBox "NIK : " & CNIP & " " & Chr(13) & _
"Nama : " & LNAMA & " " & Chr(13) & _
"Bulan ini telah menerima gaji"
CNIP.SetFocus
Exit Sub
End If
TGAJI_POKOK.SetFocus
End If
End If
Set RSJABATAN = New ADODB.Recordset
RSJABATAN.Open"SELECT
tbkaryawan.nama_jabatan,tbkaryawan.nama,tbkaryawan.jml_anak,tbkaryaw
an.status,tbjabatan.gapok,tbjabatan.tj_jabatan FROM tbkaryawan,tbjabatan
where tbkaryawan.nama_jabatan = tbjabatan.nama_jabatan ORDER BY
nik='" & CNIP & "'", Conn
If RSJABATAN.EOF Then
MsgBox "Nama tidak terdaftar"
TCARINAMA.SetFocus
Else
LNAMA = RSJABATAN!nama
TANAK = RSJABATAN!jml_anak
TSTATUS = RSJABATAN!Status
LJABATAN = RSJABATAN!nama_jabatan
TGAJI_POKOK = RSJABATAN!gapok
TTJ_JABATAN = RSJABATAN!tj_jabatan
TGAJI_POKOK.SetFocus
End If
'End If
End Sub
87
Function CariGrid()
Call BukaDB
RSGAJI.Open "Select * From tb_gaji where no_slip='" &
DataGrid1.Columns(0) & "'", Conn
End Function
Function CariData()
Call BukaDB
RSGAJI.Open "Select * From tb_gaji where no_slip='" & LSLIP & "'", Conn
End Function
Function KosongkanText()
LSLIP = ""
CNIP = ""
LNAMA = ""
Text1 = ""
Text2 = ""
LJABATAN = ""
TGAJI_POKOK = "0"
TTUN_KML = "0"
TTJ_JABATAN = "0"
TTUN_MAKANTRANS = "0"
TJAM_LEMBUR = "0"
TLEMBUR = "0"
TUANG_LEMBUR = "0"
TPPH = "0"
TPINJAMAN = "0"
TPOT_TOKO = "0"
End Function
Function KosongkanPPH()
LSLIP = ""
TGAJI = "0"
TJAMSOSTEK = "0"
TWPSENDIRI = "0"
TWPNIKAH = "0"
TWPANAK = "0"
THASIL = "0"
End Function
Private Sub TampilkanData()
With RSGAJI
If Not RSGAJI.EOF Then
LSLIP = RSGAJI!no_slip
DTGAJI = RSGAJI!periode_awal
LNAMA = RSGAJI!nama
CNIP = RSGAJI!nik
LJABATAN = RSGAJI!nama_jabatan
TGAJI_POKOK = RSGAJI!gapok
TTUN_KML = RSGAJI!tj_mahal
TTJ_JABATAN = RSGAJI!tj_jabatan
TTUN_MAKANTRANS = RSGAJI!tj_maktrans
88
TLEMBUR = RSGAJI!uang_lembur
TUANG_LEMBUR = RSGAJI!uang_maklembur
TPPH = RSGAJI!pph
TPINJAMAN = RSGAJI!jml_pinjaman
TPOT_TOKO = RSGAJI!pot_toko
TGAJI_BRUTO = RSGAJI!gaji_bruto
TJML_POT = RSGAJI!jml_pot
TTOTAL = RSGAJI!total_gaji
End If
End With
End Sub
Private Sub TampilkanDetailPPH()
With RSGAJI
If Not RSGAJI.EOF Then
LSLIP = RSGAJI!no_slip
TJAMSOSTEK = RSGAJI!jamsostek
TBIAYA_JABATAN = RSGAJI!biaya_jabatan
TWPSENDIRI = RSGAJI!wp_sendiri
TWPNIKAH = RSGAJI!wp_nikah
TWPANAK = RSGAJI!wp_anak
THASIL = RSGAJI!hasil_pajak
End If
End With
End Sub
Private Sub SiapIsi()
LSLIP.Enabled = True
DTGAJI.Enabled = True
CNIP.Enabled = True
LNAMA.Enabled = True
LJABATAN.Enabled = True
TGAJI_POKOK.Enabled = True
TTUN_KML.Enabled = True
TTJ_JABATAN.Enabled = True
TTUN_MAKANTRANS.Enabled = True
TLEMBUR.Enabled = True
TUANG_LEMBUR.Enabled = True
TPPH.Enabled = True
TPINJAMAN.Enabled = True
TPOT_TOKO.Enabled = True
End Sub
Private Sub TidakSiapIsi()
LSLIP.Enabled = False
DTGAJI.Enabled = False
CNIP.Enabled = False
LNAMA.Enabled = False
LJABATAN.Enabled = False
TGAJI_POKOK.Enabled = False
TTUN_KML.Enabled = False
89
TTJ_JABATAN.Enabled = False
TTUN_MAKANTRANS.Enabled = False
TLEMBUR.Enabled = False
TUANG_LEMBUR.Enabled = False
TPPH.Enabled = False
TPINJAMAN.Enabled = False
TPOT_TOKO.Enabled = False
End Sub
Private Sub KondisiAwal()
KosongkanText
TidakSiapIsi
CmdInput.Caption = "&Input"
CmdEdit.Caption = "&Edit"
CmdHapus.Caption = "&Hapus"
CmdKeluar.Caption = "&Keluar"
CmdInput.Enabled = True
CmdEdit.Enabled = True
CmdHapus.Enabled = True
End Sub
Private Sub Auto()
Call BukaDB
RSGAJI.Open "select * from tb_gaji Where no_slip In(Select
Max(no_slip)From tb_gaji)Order By no_slip Desc", Conn
RSGAJI.Requery
Dim Urutan As String * 11
Dim Hitung As Long
With RSGAJI
If RSGAJI.BOF Then
Urutan = Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) + "0001"
LSLIP = Urutan
Else
If Left(RSGAJI!no_slip, 6) <> Right(Date, 2) + Mid(Date, 4, 2) + Left(Date,
2) Then
Urutan = Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2) + "0001"
Else
Hitung = Val(RSGAJI!no_slip) + 1
Urutan = ((Right(Date, 2) + Mid(Date, 4, 2) + Left(Date, 2)) + Right("0000"
& Hitung, 4))
End If
End If
LSLIP = Urutan
End With
End Sub
Private Sub Option1_Click()
Combo1.Enabled = True
Combo2.Enabled = False
DTPicker1.Enabled = False
Combo1.SetFocus
90
End Sub
Private Sub Option2_Click()
Combo2.Enabled = True
Combo1.Enabled = False
DTPicker1.Enabled = True
Combo2.SetFocus
End Sub
Private Sub TANAK_Change()
If TANAK.Text <> "0" Then
TWPANAK.Text = "0"
End If
End Sub
Private Sub TBIAYA_JABATAN_Change()
HasilKenaPajak
End Sub
Private Sub TCARI_Change()
Adodc1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\DatabaseGaji.mdb"
Adodc1.RecordSource = "select * from tb_gaji where no_slip like '%" &
TCARI & "%' OR nama like '%" & TCARI & "%'"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
Private Sub TCARI_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then DataGrid1.SetFocus
End Sub
Function Pendapatan()
'Set RSGAJIBRUTO = New ADODB.Recordset
TGAJI_BRUTO = Val(TGAJI_POKOK.Text) + Val(TTUN_KML.Text) +
Val(TTJ_JABATAN.Text) + _
Val(TTUN_MAKANTRANS.Text)
+
Val(TLEMBUR.Text)
+
Val(TUANG_LEMBUR.Text)
'TGAJI_BRUTO = RSGAJIKOTOR!gaji_bruto
End Function
Function Potongan()
'Set RSGAJIBRUTO = New ADODB.Recordset
TJML_POT
=
Val(TPPH.Text)
+
Val(TPINJAMAN.Text)
+
Val(TPOT_TOKO.Text)
'TJML_POT = RSGAJIKOTOR!jml_pot
End Function
Function GAJIBERSIH()
'TTOTAL.Text = Val(TGAJI_POKOK.Text) + Val(TTUN_KML.Text) +
Val(TTUN_JABATAN.Text)
+
Val(TTUN_MAKANTRANS.Text)
+
Val(TLEMBUR.Text) + Val(TUANG_LEMBUR.Text) - _
Val(TPPH.Text) + Val(TPINJAMAN.Text) + Val(TPOT_TOKO.Text)
TTOTAL = Val(Pendapatan) - Val(Potongan)
91
92
93
94
TWPNIKAH.Text = "0"
End If
End Sub
Private Sub TTJ_JABATAN_Change()
Call BukaDB
RSGAJI.Open "SELECT * FROM tbjabatan ORDER BY kd_jabatan", Conn
GAJIBERSIH
End Sub
Private Sub TTJ_JABATAN_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then TTUN_MAKANTRANS.SetFocus
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Private Sub TTUN_KML_Change()
GAJIBERSIH
End Sub
Private Sub TTUN_KML_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If TGAJI_BRUTO > 2025000 Then
TPPH.SetFocus
TPPH.Enabled = True
Else
TPINJAMAN.SetFocus
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End If
If TGAJI_BRUTO > 2025000 Then
TPPH.Enabled = True
Else
TPPH.Text = 0
TPPH.Enabled = False
If KeyAscii = 13 Then
TPINJAMAN.SetFocus
End If
End If
End If
End Sub
Private Sub TTUN_KML_LostFocus()
If TLEMBUR.Text = "" Then TLEMBUR.Text = 0
End Sub
Private Sub TTUN_MAKANTRANS_Change()
GAJIBERSIH
End Sub
Private Sub TTUN_MAKANTRANS_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then TLEMBUR.SetFocus
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
95
96
CR.RetrieveDataFiles
CR.Destination = crptToWindow
CR.WindowState = crptMaximized
CR.WindowMinButton = False
CR.WindowShowCancelBtn = True
CR.WindowShowCloseBtn = True
CR.WindowShowPrintBtn = True
CR.WindowShowPrintSetupBtn = True
CR.WindowShowNavigationCtls = True
CR.WindowShowRefreshBtn = True
CR.WindowParentHandle = MDIMENU.hWnd
CR.DiscardSavedData = True
CR.Action = 1
Me.MousePointer = 1
End Sub
Private Sub Command2_Click()
X = MsgBox("Yakin Ingin Keluar?", vbOKOnly + vbInformation)
If X = vbOK Then
Unload Me
End If
End Sub
Private Sub Form_Load()
Set Conn = New ADODB.Connection
Conn.Provider = "microsoft.jet.oledb.4.0"
Conn.CursorLocation = adUseClient
Conn.Open App.Path & "\DatabaseGaji.mdb"
End Sub
7. Laporan Data Presensi
Private Sub Command1_Click()
If Option1.Value = True Then
CR.ReportFileName = App.Path & "\Report\Laporan_Data_Presensi.rpt"
CR.SelectionFormula = "Month({tbpresensi.periode_awal})=" &
Month(DTPicker1.Value) & " and Year({tbpresensi.periode_awal})=" &
Year(DTPicker1.Value) & ""
'CR.SelectionFormula = "month({tb_gaji.tanggal})=" &
Month(DTPicker1.Value) & ""
CR.RetrieveDataFiles
CR.WindowMinButton = False
CR.WindowShowCancelBtn = True
CR.WindowShowCloseBtn = True
CR.WindowShowPrintBtn = True
CR.WindowShowPrintSetupBtn = True
CR.WindowShowNavigationCtls = True
CR.WindowShowRefreshBtn = True
CR.Destination = crptToWindow
CR.WindowState = crptMaximized
97
CR.WindowParentHandle = MDIMENU.hWnd
CR.Action = 1
ElseIf Option2.Value = True Then
CR.ReportFileName = App.Path & "\Report\Laporan_Data_Presensi.rpt"
CR.SelectionFormula
=
"year({tbpresensi.periode_awal})="
&
Year(DTPicker1.Value) & ""
CR.RetrieveDataFiles
CR.WindowMinButton = False
CR.WindowShowCancelBtn = True
CR.WindowShowCloseBtn = True
CR.WindowShowPrintBtn = True
CR.WindowShowPrintSetupBtn = True
CR.WindowShowNavigationCtls = True
CR.WindowShowRefreshBtn = True
CR.Destination = crptToWindow
CR.WindowState = crptMaximized
CR.WindowParentHandle = MDIMENU.hWnd
CR.Action = 1
End If
End Sub
Private Sub Command2_Click()
X = MsgBox("Yakin Ingin Keluar?", vbOKOnly + vbInformation)
If X = vbOK Then
Unload Me
End If
End Sub
Private Sub Option1_Click()
DTPicker1.Enabled = True
DTPicker1.SetFocus
End Sub
Private Sub Option2_Click()
DTPicker1.Enabled = True
DTPicker1.SetFocus
End Sub
8. Laporan Data Penggajian
Private Sub Command1_Click()
If Option1.Value = True Then
CR.ReportFileName = App.Path & "\Report\Laporan_Data_Penggajian.rpt"
CR.SelectionFormula
=
"Month({tb_gaji.periode_awal})="
&
Month(DTPicker1.Value) & " and Year({tb_gaji.periode_awal})=" &
Year(DTPicker1.Value) & ""
'CR.SelectionFormula
=
"month({tb_gaji.tanggal})="
&
Month(DTPicker1.Value) & ""
CR.RetrieveDataFiles
CR.WindowMinButton = False
CR.WindowShowCancelBtn = True
CR.WindowShowCloseBtn = True
98
CR.WindowShowPrintBtn = True
CR.WindowShowPrintSetupBtn = True
CR.WindowShowNavigationCtls = True
CR.WindowShowRefreshBtn = True
CR.Destination = crptToWindow
CR.WindowState = crptMaximized
CR.WindowParentHandle = MDIMENU.hWnd
CR.Action = 1
ElseIf Option2.Value = True Then
CR.ReportFileName = App.Path & "\Report\Laporan_Data_Penggajian.rpt"
CR.SelectionFormula
=
"year({tb_gaji.periode_awal})="
&
Year(DTPicker1.Value) & ""
CR.RetrieveDataFiles
CR.WindowMinButton = False
CR.WindowShowCancelBtn = True
CR.WindowShowCloseBtn = True
CR.WindowShowPrintBtn = True
CR.WindowShowPrintSetupBtn = True
CR.WindowShowNavigationCtls = True
CR.WindowShowRefreshBtn = True
CR.Destination = crptToWindow
CR.WindowState = crptMaximized
CR.WindowParentHandle = MDIMENU.hWnd
CR.Action = 1
End If
End Sub
Private Sub Command2_Click()
X = MsgBox("Yakin Ingin Keluar?", vbOKOnly + vbInformation)
If X = vbOK Then
Unload Me
End If
End Sub
Private Sub Option1_Click()
DTPicker1.Enabled = True
DTPicker1.SetFocus
End Sub
Private Sub Option2_Click()
DTPicker1.Enabled = True
DTPicker1.SetFocus
End Sub
4.2.5
Pengujian (Testing)
Pelaksanaan pengujian ini dilakukan dengan pengujian black box.
Pelaksanaan pengujian ini untuk mendapatkan hasil eksekusi data yang diuji.
4.2.5.1 Pengujian Black Box
99
Cara Pengujian
Hasil yang Diharapkan
Memasukkan/meng Berhasil
ubah/menghapus
memasukkan/mengubah/
data karyawan
menghapus data
karyawan
Input/Edit/Delete
Memasukkan/meng Berhasil
Data Jabatan
ubah/menghapus
memasukkan/mengubah/
data jabatan
menghapus data jabatan
Input/Edit/Delete
Memasukkan/meng Berhasil
Data Presensi
ubah/menghapus
memasukkan/mengubah/
data presensi
menghapus data presensi
Input/Delete
Memasukkan/meng Berhasil
Data Penggajian
hapus
data memasukkan/menghapus
penggajian
data penggajian
Cetak Slip Gaji
Membuka
Form Berhasil mencetak slip
gaji
karyawan gaji karyawan
untuk melakukan
cetak slip gaji
Cetak Data Presensi Membuka
Form Berhasil mencetak data
data presensi untuk presensi
melakukan cetak
data presensi
Cetak Data
Membuka
Form Berhasil mencetak data
Karyawan
data
karyawan karyawan
untuk melakukan
cetak
data
karyawan
Cetak Data
Membuka
Form Berhasil mencetak data
Penggajian
data
karyawan penggajian
untuk melakukan
cetak
data
penggajian
4.2.6
Hasil
Sesuai
Sesuai
Sesuai
Sesuai
Sesuai
Sesuai
Sesuai
Sesuai
Pemeliharaan (Maintenance)
100