Anda di halaman 1dari 67

BAB IV

HASIL PENELITIAN DAN PEMBAHASAN


4.1

Profil Mitra Sejahtera


Berawal PT. Bank Central Asia, Tbk di Samarinda membangun

kesejahteraan bersama, maka pada tanggal 9 Januari 2008 dukungan penuh dari
management

berdirilah koperasi di lingkungan PT. Bank Central Asia, Tbk.

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

Visi dan Misi Mitra Sejahtera


Visi yaitu menjadikan Mitra Sejahtera Koperasi Karyawan BCA dengan

tujuan untuk mengembangkan kesejahteraan anggota pada khususnya dan


kemajuan kerja pada umumnya, dalam rangka menggalang terlaksananya
masyarakat adil dan makmur berdasarkan pancasila.
Misi berawal dari azas kekeluargaan dan gotong royong serta sebuah
keinginan yang tulus dari karyawan untuk dapat mewujudkan kesejahteraan
bersama.

4.1.2

Struktur Organisasi
34

35

Struktur organisasi adalah suatu gambaran yang memperlihatkan suatu


susunan yang logis, tertib dan memperlihatkan hubungan-hubungan yang serasi.
Setiap organisasi yang besar maupun yang kecil sudah pasti mempunyai struktur
organisasi yang berbeda-beda antara organisasi satu dengan yang lainnya. Dengan
memiliki struktur organisasi yang baik akan mudah dicapai apa yang menjadi
salah satu tujuan dari organisasi tersebut. Karena dengan struktur organisasi
segala tugas dari masing-masing bagian akan terkoordinir dengan baik pula.
Pada gambar 4.1 merupakan struktur organisasi yang terdapat di Mitra
Sejahtera Koperasi Karyawan BCA sebagai berikut :

Gambar 4.1 Struktur Organisasi Mitra Sejahtera Koperasi Karyawan BCA


4.2

Hasil Penelitian

36

4.2.1

Perancangan Sistem (System Enginering)

1. Flow Of Document (FOD) sistem yang berjalan


Pada gambar 4.2 dapat dilihat bahwa sistem ini melibatkan 3 entitas yaitu
Karyawan, Administrasi, dan Pimpinan. Alur dokumen yang berjalan pada
aplikasi penggajian karyawan Mitra Sejahtera adalah sebagai berikut :
1. Dimulai karyawan menyerahkan data dengan mengisi data karyawan,
kemudian hasil data karyawan dikumpulkan untuk diserahkan kepada bagian
administrasi.
2. Bagian administrasi menerima data karyawan. Lalu administrasi memiliki
data karyawan, data jabatan, dan data presensi. Administrasi melakukan
pengisian data masing-masing sehingga menghasilkan daftar karyawan, daftar
jabatan, daftar presensi.
3. Untuk melakukan proses penggajian dibutuhkan data karyawan, data jabatan,
data presensi, data penggajian, dan data PPh (Pajak Penghasilan).
4. Dari Proses Penggajian menghasilkan daftar penggajian, daftar PPh (Pajak
Penghasilan), dan slip gaji. Slip gaji akan diserahkan kepada karyawan.
5. Pada proses laporan untuk daftar karyawan menghasilkan laporan data
karyawan sedangkan daftar karyawan, daftar penggajian, dan daftar PPh
menghasilkan laporan penggajian.
6. Laporan data karyawan dan laporan data penggajian diserahkan kepada
pimpinan.

37

Gambar 4.2 Flow of Document (FOD) sistem yang sedang berjalan


2. Flow Of Document (FOD) sistem yang diusulkan
Pada gambar 4.3 dapat dilihat bahwa sistem ini melibatkan 3 entitas yaitu
Karyawan, Administrasi, dan Pimpinan. Alur dokumen yang diusulkan pada
aplikasi penggajian karyawan Mitra Sejahtera adalah sebagai berikut :
1. Dimulai karyawan menyerahkan data dengan mengisi data karyawan,
kemudian hasil data karyawan dikumpulkan untuk diserahkan kepada
bagian administrasi.

38

2. Bagian administrasi memiliki data karyawan, data jabatan, data presensi


kemudian diproses masing-masing disimpan kedalam database.
3. Dari proses penggajian didapatkan database karyawan, database jabatan,
database presensi, data penggajian dan data PPh (Pajak Penghasilan)
sehingga disimpan kedalam database penggajian dan database PPh.
4. Dalam proses penggajian menghasilkan slip gaji yang akan diserahkan
kepada karyawan.
5. Pada proses laporan pada didapatkan database karyawan menghasilkan
laporan data karyawan.
6. Database karyawan, database penggajian dan database PPh diproses
menghasilkan laporan data penggajian.
7. Database presensi diproses menghasilkan laporan data presensi.
8. Laporan data karyawan, lapoaran data penggajian, dan laporan data
presensi akan diserahkan kepada pimpinan.

39

Gambar 4.3 Flow Of Document (FOD) yang diusulkan


3. Context Diagram (CD)
Pada gambar 4.4 aplikasi penggajian karyawan Mitra Sejahtera Koperasi
Karyawan BCA dalam rancangan Context Diagram terdapat 3 entitas yang dibuat
yaitu karyawan, adminitrasi, dan pimpinan. Karyawan memberikan data karyawan
yang akan diserahkan untuk penggajian. Administrasi menginputkan data jabatan,
data presensi, data penggajian dan data PPh (Pajak Penghasilan). Output yang
diterima yaitu slip gaji yang yang diserahkan kepada karyawan sedangkan laporan
data karyawan laporan data presensi dan laporan penggajian diserahkan kepada
pimpinan.

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

Gambar 4.4 Context Diagram (CD) Aplikasi Penggajian


4. Data Flow Diagram (DFD) Level 0
Pada gambar 4.5 sistem penggajian karyawan dijelaskan sebagai berikut :
1. Proses isi data jabatan, entitas adminitrasi melakukan pendataan jabatan dan
tersimpan dalam data store jabatan.
2. Proses isi data presensi, entitas adminitrasi melakukan pendataan presensi
yang sebelumnya mengambil data karyawan dari data store karyawan
kemudian tersimpan kedalam data store presensi.
3. Proses isi data karyawan, entitas karyawan melakukan pendataan karyawan
beserta jabatan yang diambil dari data store jabatan dan disimpan kedalam
data store karyawan.
4. Proses isi data PPh , entitas adminitrasi melakukan pendataan PPh dari data
store kemudian disimpan dalam data store PPh.

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

Data 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

Gambar 4.5 DFD Level 0 Aplikasi Penggajian

43

5. Data Flow Diagram (DFD) Level 1


Pada gambar 4.6 ini menjelaskan secara ringkas bahwa hasil dari sistem
penggajian ini berupa slip gaji yang diberikan kepada karyawan kemudian proses
laporan berupa laporan data karyawan laporan data presensi, dan laporan data
penggajian diberikan kepada pimpinan.

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

Gambar 4.6 DFD Level 1 Aplikasi Penggajian


6. Hierarchy Input Process Output (HIPO)

Gambar 4.7 Hierarchy Input Process Output (HIPO)

44

Pada gambar 4.7 aplikasi penggajian Mitra Sejahtera terdapat 5 proses


yaitu pendataan jabatan, pendataan presensi, pendataan karyawan, proses
penggajian, dan laporan. Dari proses penggajian maka dikeluarkan slip gaji. Dari
Laporan dikeluarkan Laporan Data Karyawan Laporan Data Presensi, dan
Laporan data penggajian berdasarkan data karyawan, data penggajian, dan data
PPH (Pajak Penghasilan).
4.2.2

Analisa (Analysis)
Analisa

adalah

tahapan

awal

yang

harus

di

lakukan

untuk

mengidentifikasi berbagai permasalahan yang ada pada aplikasi serta kebutuhan


informasi bagi pemakainya.
1. Analisa Data
Analisa Data yaitu analisis mengenai data apa saja yang akan diproses,
baik sebagai masukan maupun keluaran. Dalam menganalisa data, hal yang
dibutuhkan yaitu beberapa data yang diperoleh dari Mitra Sejahtera Koperasi
Karyawan BCA. Adapun data yang diperlukan antara lain :
1)

data jabatan, data presensi dan data karyawan sebagai inputan

2)

bentuk output berupa laporan daftar karyawan, laporan daftar gaji


karyawan, laporan daftar presensi dan slip gaji karyawan.

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

Sistem Operasi Windows 7


Microsoft Visual Basic 6.0
Microsoft Access 2007
Crystal Report 8.5

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

: Tabel yang digunakan untuk menyimpan data


jabatan

Tabel 4.2 Tabel Jabatan


No

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

1) Tampilan Menu Utama

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

Form form Input

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

Pada gambar 4.8 tampilan menu utama di aplikasi penggajian karyawan


Mitra Sejahtera terdapat beberapa menu yaitu menu file, menu transaksi, dan
menu laporan. Pada menu file terdiri dari sub menu data karyawan, sub menu data
jabatan, dan sub menu data presensi. Pada menu transaksi terdapat sub menu
penggajian. Kemudian di menu laporan terdapat sub menu laporan data karyawan,
sub menu laporan data penggajian, dan sub menu slip gaji.

Gambar 4.8 Tampilan Menu Utama


2) Tampilan Input Data Karyawan
Pada gambar 4.9 adalah form input data karyawan dapat dilihat ada kolom
input terdiri dari nik, nama, alamat, nomor telepon atau handphone, jenis kelamin,
kode jabatan, nama jabatan, status, dan jumlah anak. Memiliki 4 tombol yaitu
tombol input sekaligus tombol simpan, tombol hapus, tombol batal dan tombol
keluar. Terdapat pencarian yang digunakan untuk mencari data berdasarkan nama
karyawan. Ada tabel digunakan sebagai menampilkan daftar karyawan dari
inputan-inputan karyawan yang telah disimpan.
Dijelaskan bahwa untuk menginput data karyawan dimulai dari input NIK
yang terdiri dari 9 digit yatitu 4 digit awal merupakan tahun masuk karyawan.

49

Dilanjutkan 2 digit dari bulan masuk karyawan dan 3 digit dari urutan. Kemudian
kolom lainnya berupa identitas karyawan yang harus diisi.

Gambar 4.9 Form Input Data Karyawan


3) Tampilan Input Jabatan
Pada gambar 4.10 adalah form Input data jabatan terdapat kode jabatan, nama
jabatan, gaji pokok dan tunjangan jabatan. Memiliki 4 tombol yaitu tombol input
sekaligus tombol simpan, tombol hapus, tombol batal dan tombol keluar. Terdapat
pencarian yang digunakan untuk mencari data berdasarkan nama jabatan. Ada
tabel yang digunakan sebagai menampilkan daftar jabatan dari inputan-inputan
jabatan yang telah disimpan.
Form ini dimulai dengan mengisi kode jabatan yaitu mengisi 4 digit yang
diawali dengan huruf J kemudian 3 digit berupa urutan jabatan. Selanjutnya
dengan mengisi nama jabatan, gaji pokok, dan tunjangan jabatan. Inputan-inputan
ini yang akan nantinya digunakan pada form inputan data karyawan.

50

Gambar 4.10 Form Input Data Jabatan


4) Tampilan Input Data Presensi
Pada form input data presensi memiliki tanggal presensi, nama, nik, jumlah
hari kerja, dan jumlah jam lembur. Ada 4 tombol yang digunakan tombol input
serta tombol simpan, tombol edit, tombol hapus dan tombol keluar. Ada pencarian
yang digunakan berdasarkan mencari nama jabatan. Kemudian tabel dari hasil
simpan inputan-inputan data presensi karyawan.

Gambar 4.11 Form Input Data Presensi

51

3. Form Form Proses Transaksi


Di dalam tampilan transaksi penggajian memiliki proses penggajian
dijelaskan berdasarkan perincian gaji bruto dan perincian potongan sebagai
berikut :
1) Gaji pokok dan tunjangan jabatan pada transaksi penggajian dilakukan
penginputan otomatis berdasarkan jabatan pada karyawan yang diambil daftar
jabatan.
2) Tunjangan makan dan transportasi terinput otomatis berdasarkan perhitungan:
Tunjangan Makan dan Transportasi = jumlah hari kerja Rp 9090.
3) Uang lembur berdasarkan perhitungan :
gaji pokok jumlah jamlembur

Uang Lembur
173
Keterangan : 173 = jumlah jam per bulan
4) Uang makan lembur berdasarkan perhitungan :
jumlah jam lembur Rp 15.000

Uang Makan Lembur


.
8
Keterangan : 8 = jumlah jam lembur per hari
5) Tunjangan kemahalan yaitu tambahan gaji sebagai bantuan untuk kenaikkan
harga kebutuhan sehari-hari.
6) Pada PPh 21 berdasarkan perhitungan dapat dilihat gambar 4.12 :
Gaji bulanan = gaji bruto + BPJS
Biaya Jabatan = 5% gaji per bulan
Penghasilan Tidak Kena Pajak (PTKP) = WP sendiri + WP Nikah + WP Anak
PKP Bulanan = (gaji bulanan biaya jabatan) - PTKP
PPh 21 = 5% PKP bulanan
7) Pinjaman jika karyawan terutang pada bulan tersebut.
8) Potongan toko jika karyawan melakukan pembelian dengan pemotongan gaji
pada bulan tersebut.
9) Gaji bruto didapat dari keseluruhan yaitu :
Gaji Bruto = gaji pokok + tunjangan jabatan + tunjangan makan dan
transportasi + uang lembur + uang makan lembur + tunjangan
kemahalan.
10) Jumlah potongan didapat dari perhitungan :
Jumlah Potongan = PPh 21 + pinjaman + potongan toko.

52

11) Total berdasarkan perhitungan :


Total gaji bruto jumlah potongan.
Untuk pengoperasian pada form ini memiliki 4 tombol yaitu tombol input,
tombol hapus, tombol batal dan tombol cetak. Ada pencarian yang berdasarkan
mencari nomor slip gaji dan nama.

Gambar 4.12 Form Transaksi Penggajian


Untuk awal menggunakan menekan tombol input dalam penggajian
karyawan. Untuk nomor slip secara otomatis dengan muncul angka 10 digit
berurutan. Nomor slip berdasarkan tanggal tahun dan bulan kemudian dengan
urutan. Mengatur tanggal transaksi gaji kemudian mencari nik karyawan pada
combobox yang didapatkan dari daftar karyawan maka akan muncul nama beserta
nama jabatan. Hari kerja dan jam lembur didapat dari data presensi sehingga saat
memilih nik karyawan maka muncul hari kerja dan jam lembur sesuai dengan
bulan dan tahun.

53

Gambar 4.13 Form Detail PPh 21


Untuk PPH 21 memiliki perhitungan tersendiri secara detail dengan
mengenter textbox PPh 21 maka masuk ke form detail PPh 21 lihat pada gambar
4.13. Jika mencetak slip gaji maka dengan menekan tombol cetak maka muncul
sebuah form dengan memilih nomor slip gaji atau NIK beserta periode atau
tanggal gaji.

Gambar 4.14 Tampilan Form Cetak Slip Gaji di transaksi penggajian


Selanjutnya keluar slip gaji karyawan yang telah ditentukan.

54

Gambar 4.15 Slip Gaji Karyawan


4. Output / Laporan
1) Tampilan Laporan Data Karyawan
pada form laporan data karyawan berfungsi untuk mencetak data karyawan
secara keseluruhan seperti gambar 4.16.

Gambar 4.16 Form Laporan Data Karyawan


Pada form tersebut memiliki 2 tombol yaitu tombol cetak berguna
untuk mencetak laporan data karyawan dan tombol keluar untuk keluar
dari form tersebut.

55

Gambar 4.17 Laporan Data Karyawan


2) Tampilan Laporan Data Penggajian
Pada gambar 4.18 merupakan form untuk mencetak data penggajian dengan
memilih bulan penggajian atau keseluruhan penggajian berdasarkan tahun.

Gambar 4.18 Form Laporan Data Penggajian


Maka dengan menekan tombol cetak sesuai dengan pilihan di form
tersebut muncul laporan data penggajian. Seperti yang terlihat pada gambar 4.19.

56

Gambar 4.19 Laporan Data Penggajian


3) Laporan Data Presensi
Pada gambar 4.20 merupakan form untuk mencetak data presensi dengan
memilih bulan presensi atau keseluruhan presensi berdasarkan tahun.

Gambar 4.20 Form Laporan Data Presensi


Maka dengan menekan tombol cetak sesuai dengan pilihan di form
tersebut muncul laporan data presensi. Seperti yang terlihat pada gambar 4.21.

57

Gambar 4.21 Laporan Data Presensi

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

Private Sub MNPEGAWAI_Click()


PEGAWAI.Show
End Sub
Private Sub MNPEMINJAMAN_Click()
PINJAMAN.Show
End Sub
Private Sub MNPENGGAJIAN_Click()
GAJI.Show
End Sub
Private Sub MNPRESENSI_Click()
PRESENSI.Show
End Sub
Private Sub Timer1_Timer()
StatusBar1.Panels(5).Text = Format(Now, "HH:MM:SS")
End Sub

2. Input Data Karyawan


Private Sub CJABATAN_Click()
Call BukaDB
RSKARYAWAN.Open "Select * from tbjabatan where kd_jabatan='" &
CJABATAN & "'", Conn
If RSKARYAWAN.EOF Then
'CJABATAN.SetFocus
Else
TNMJABATAN = RSKARYAWAN!nama_jabatan
End If
End Sub
Private Sub CJABATAN_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then CSTATUS.SetFocus
Call BukaDB
RSKARYAWAN.Open "Select * from tbjabatan where kd_jabatan='" &
CJABATAN & "'", Conn
If RSKARYAWAN.EOF Then
CJABATAN.SetFocus
Else
TNMJABATAN = RSKARYAWAN!nama_jabatan
End If

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

3. Input Data Presensi


Private Sub CBULAN_AKR_Change()
JumlahKerja
End Sub
Private Sub CBULAN_AKR_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
JumlahKerja
CNAMA.SetFocus
End If
End Sub
Private Sub CBULAN_Change()
End Sub
Private Sub CBULAN_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
CBULAN_AKR.SetFocus
End If
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.SetFocus
Else
If TNIP = "" Or CBULAN = "" Or THARIKERJA = "" Or TJAM = "" Then
MsgBox "Masih Ada Data Yang Kosong"
Else
Dim SQLEdit As String
SQLEdit = "Update tbpresensi Set nik= '" & TNIP & "', periode_awal='" &
CBULAN & "', periode_akhir='" & CBULAN_AKR & "',jml_hari_kerja='"
& THARIKERJA & "',jml_jam_lembur='" & TJAM & "' where nama='" &
CNAMA & "' and (month(periode_awal))='" & (Month(CBULAN)) & "' and
(year(periode_awal))='" & (Year(CBULAN)) & "'"
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

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

MsgBox "Kode Jabatan Sudah Ada"


KosongkanText
TKDJABATAN.SetFocus
Else
TNAMA_JABATAN.SetFocus
End If
End If
If CMDEDIT.Caption = "&Simpan" Then
Call CariData
If Not RSJABATAN.EOF Then
TampilkanData
TKDJABATAN.Enabled = False
TNAMA_JABATAN.SetFocus
Else
MsgBox "Kode JABATAN Tidak Ada"
TKDJABATAN = ""
TKDJABATAN.SetFocus
End If
End If
If CMDHAPUS.Enabled = True Then
Call CariData
If Not RSJABATAN.EOF Then
TampilkanData
Pesan = MsgBox("Yakin akan dihapus?", vbYesNo)
If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From tbjabatan where kd_jabatan= '" &
TKDJABATAN & "'"
Conn.Execute SQLHapus
Call KondisiAwal
Form_Activate
CMDHAPUS.SetFocus
Else
Call KondisiAwal
Form_Activate
CMDHAPUS.SetFocus
End If
Else
MsgBox "Data Tidak ditemukan"
TKDJABATAN.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 TNAMA_JABATAN_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then TGAPOK.SetFocus

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

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 FormatAngka()
End Function
5. Transaksi Penggajian
Dim tbpresensi As Recordset
Private Sub CMDCETAK_Click()
Frame4.Visible = True
Option1.Value = 0
Option2.Value = 0
End Sub
Private Sub CMDEDIT_Click()
periode_awal = Format(DTGAJI.Value, "mm/yy")
If CmdEdit.Caption = "&Edit" Then
CmdInput.Enabled = False
CmdEdit.Caption = "&Simpan"
CmdHapus.Enabled = False
CmdKeluar.Caption = "&Batal"
SiapIsi
TCARI.SetFocus
Else
If CNIP = "" Then
MsgBox "Masih Ada Data Yang Kosong"
Else
Dim SQLEdit As Boolean
SQLEdit = "Update tb_gaji Set gapok= '" & TGAJI_POKOK & "',
tj_mahal='" & TJML_MHL & "',tj_maktrans='" & TTUN_MAKANTRANS &
"',uang_lembur='"
&
TLEMBUR
&
"',uang_maklembur='"
&
TUANG_LEMBUR
&
"',tj_jabatan='"
&
TTJ_JABATAN
&
"',jml_pinjaman='" & TPINJAMAN & "',pph='" & TPPH & "',pot_toko='" &
TPOT_TOKO & "',gaji_bruto='" & TGAJI_BRUTO & "',jml_pot='" &
TJML_POT & "',total_gaji='" & TTOTAL & "' where nik='" & TNIP & "'
and tanggal ='" & DTGAJI & "'"
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

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

If Option1.Value = True Then


CR.SelectionFormula = "{tb_gaji.no_slip}='" & Trim(Combo1.Text) & "'"
CR.ReportFileName = App.Path + "\Report\Slip_Gaji_Karyawan.rpt"
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
ElseIf Option2.Value = True Then
'CR.SelectionFormula
=
"month({tb_gaji.tanggal})='"
&
Month(DTPicker1.Value) & "'"
CR.SelectionFormula = "{tb_gaji.nik}='" & Trim(Combo2.Text) & "' and
month({tb_gaji.periode_awal})=" & Month(DTPicker1.Value) & " and
Year({tb_gaji.periode_awal})=" & Year(DTPicker1.Value) & ""
'CR.SelectionFormula = "{tb_gaji.nik}='" & Trim(Combo2.Text) & "'"
CR.ReportFileName = App.Path + "\Report\Slip_Gaji_Karyawan.rpt"
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 Command4_Click()
Frame4.Visible = False
CmdInput.SetFocus
End Sub
Private Sub Command5_Click()
TCARINAMA.Visible = True
TCARINAMA.SetFocus
CNIP.Enabled = False
End Sub
Private Sub DataGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode

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

TTOTAL = Format(Val(TGAJI_BRUTO.Text) - Val(TJML_POT.Text),


"#,###")
End Function
Function HasilPPH()
TPPH = Format(Int(5 * Val(THASIL.Text)) / 100, "###")
End Function
Function PKP()
THASIL = Abs(Val(THASILNETO.Text) - (Val(TWPSENDIRI.Text) +
Val(TWPNIKAH.Text) + Val(TWPANAK.Text)))
End Function
Function Tunjangan()
TTUN_MAKANTRANS = Val(Text1.Caption) * 9090
End Function
Function UangLembur()
TLEMBUR = Format(Int(Val(TGAJI_POKOK.Text) * (Val(Text2.Caption))) /
173, "###")
End Function
Function UangMakanLembur()
TUANG_LEMBUR = (Val(Text2.Caption) / 8) * 15000
End Function
Private Sub TCARINAMA_Change()
Call BukaDB
RSGAJI.Open "SELECT * FROM tbkaryawan where nama like '%" &
TCARINAMA & "%'", Conn
If RSGAJI.EOF Then
MsgBox "Nama Tidak Terdaftar"
TCARINAMA.SetFocus
Else
CNIP = RSGAJI!nik
'LJABATAN = RSGAJI!nama_jabatan
End If
End Sub
Private Sub TCARINAMA_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
CNIP.Enabled = True
CNIP.SetFocus
TCARINAMA.Visible = False
End If
End Sub
Private Sub Text1_Change()
Tunjangan
End Sub
Private Sub Text2_Change()
UangLembur
UangMakanLembur
End Sub
Private Sub Text3_Change()
End Sub

92

Private Sub TGAJI_BRUTO_Change()


GAJIBERSIH
KenaPajak
End Sub
Private Sub TGAJI_Change()
HasilKenaPajak
GajiSetahun
End Sub
Private Sub TGAJI_POKOK_Change()
'TGAJI_POKOK = Format(gapok, "#,###")
GAJIBERSIH
Call BukaDB
RSJABATAN.Open "SELECT * FROM tbjabatan ORDER BY kd_jabatan",
Conn
End Sub
Private Sub TGAJI_POKOK_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then TTJ_JABATAN.SetFocus
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Private Sub THASIL_Change()
HasilPPH
End Sub
Private Sub THASILNETO_Change()
PKP
End Sub
Private Sub TJAMSOSTEK_Change()
HasilKenaPajak
GajiSetahun
End Sub
Private Sub TJML_POT_Change()
'TTOTAL = Val(TGAJI_BRUTO.Text) - Val(TJML_POT.Text)
GAJIBERSIH
End Sub
Private Sub TLEMBUR_Change()
GAJIBERSIH
End Sub
Private Sub TLEMBUR_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then TUANG_LEMBUR.SetFocus
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Private Sub TLEMBUR_LostFocus()
If TLEMBUR.Text = "" Then TLEMBUR.Text = 0
End Sub
Private Sub TPINJAMAN_Change()
GAJIBERSIH
End Sub

93

Private Sub TPINJAMAN_KeyPress(KeyAscii As Integer)


If KeyAscii = 13 Then TPOT_TOKO.SetFocus
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Private Sub TPINJAMAN_LostFocus()
If TPINJAMAN.Text = "" Then TPINJAMAN.Text = 0
End Sub
Private Sub TPOT_TOKO_Change()
GAJIBERSIH
End Sub
Private Sub TPOT_TOKO_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 TPOT_TOKO_LostFocus()
If TPOT_TOKO.Text = "" Then TPOT_TOKO.Text = 0
End Sub
Private Sub TPPH_Change()
GAJIBERSIH
Call BukaDB
RSGAJI.Open "SELECT * FROM tbdetailpph", Conn
'TampilkanDetailPPH
'KosongkanPPH
End Sub
Private Sub TPPH_KeyPress(KeyAscii As Integer)
Adodc1.RecordSource = "SELECT * FROM tbdetailpph ORDER BY no_slip"
If KeyAscii = 13 Then Frame3.Visible = True
TGAJI.Text = TGAJI_BRUTO
If TGAJI_BRUTO.Text = "" Then
MsgBox "Perincian Gaji Bruto Belum Terisi!", vbOKOnly + vbInformation
TGAJI_POKOK.SetFocus
Frame3.Visible = False
Exit Sub
End If
End Sub
Private Sub TPPH_LostFocus()
If TPPH.Text = "" Then TPPH.Text = 0
End Sub
Private Sub TSTATUS_Change()
If TSTATUS.Text <> "BELUM MENIKAH" Then

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

Private Sub TUANG_LEMBUR_Change()


GAJIBERSIH
End Sub
Private Sub TUANG_LEMBUR_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then TTUN_KML.SetFocus
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then KeyAscii = 0
End Sub
Private Sub TUANG_LEMBUR_LostFocus()
If TUANG_LEMBUR.Text = "" Then TUANG_LEMBUR.Text = 0
End Sub
Private Sub KenaPajak()
If TGAJI_BRUTO > 2025000 Then
TPPH.Enabled = True
If KeyCode = 13 Then
TPPH.SetFocus
End If
Else
TPPH.Text = 0
TPPH.Enabled = False
If KeyCode = 13 Then
TPINJAMAN.SetFocus
End If
End If
End Sub
Private Sub TWPANAK_Change()
PKP
End Sub
Private Sub TWPANAK_LostFocus()
If TWPANAK.Enabled = False Then TWPANAK.Text = 0
End Sub
Private Sub TWPNIKAH_Change()
PKP
End Sub
Private Sub TWPNIKAH_LostFocus()
If TWPNIKAH.Enabled = False Then TWPNIKAH.Text = 0
End Sub
Private Sub TWPSENDIRI_Change()
PKP
End Sub
6. Laporan Data Karyawan
Dim Conn As New ADODB.Connection 'konek database
Dim Rec As New ADODB.Recordset 'konek ke tabel data_kons
Private Sub Command1_Click()
'CR.Reset
CR.ReportFileName = App.Path & "\Report\Laporan_Data_Karyawan.rpt"
CR.DataFiles(0) = App.Path & "\DatabaseGaji.mdb"

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

Tabel 4.6 Pengujian Black Box pada Aplikasi Penggajian Karyawan


Fungsi yang Diuji
Input/Edit/Delete
Data Karyawan

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)

1. Melakukan pengaturan kembali implementasi pada database pemakai yang


menggunakan Microsoft Access 2003.
2. Perbaikan terhadap cetak laporan data karyawan, cetak laporan gaji
karyawan, cetak laporan penggajian, dan laporan data presensi

100

3. Perbaikan penginputan aplikasi penggajian karyawan.

Anda mungkin juga menyukai