SlideShare une entreprise Scribd logo
1  sur  40
BAB I
PENDAHULUAN
A. Pendahuluan
Administrasi penggajian/payroll adalah pekerjaan rutin dan merupakan salah satu
bagian terpenting dalam manajemen perusahaan. Proses perhitungan gaji harus dapat
dilakukan dengan cepat, tepat dan akurat. Untuk dapat melakukan administrasi
penggajian yang baik diperlukan pengetahuan dan pemahaman yang komprehensif
tentang administrasi penggajian. Administrasi penggajian harus sesuai dengan hukum
dan perundang-undangan yang berlaku seperti UU Tenaga Kerja, Perpajakan, Jamsostek
dan menunjang keberhasilan perusahaan. Untuk itu profesional dalam bidang
HRD/Payroll dituntut mampu melaksanakan proses administrasi penggajian mulai dari
pemahaman terhadap konsep penggajian, proses perhitungan dan pembuatan laporan
penggajian.
B. Tujuan
1. Mengerti dan memahami konsep penggajian dan kesejahteraan bagi karyawan.
2. Membuat perhitungan lembur, cuti, absensi, klaim medical dsb.
3. Menghitung PPh 21 dengan berbagai metode seperti gross dan membuat laporannya.
4. Menghitung dan membuat laporan tenaga kerja.
5. Menyusun komponen gaji , pendapatan dan potongan serta mengkalkulasi proses
perhitungan gaji mulai dari input data, proses dan pembuatan laporan penggajian.
BAB II
PEMBAHASAN
A. Defenisi
Administrasi penggajian/payroll adalah pekerjaan rutin dan merupakan salah satu bagian
terpenting dalam manajemen perusahaan. Proses perhitungan gaji harus dapat dilakukan
dengan cepat, tepat dan akurat. Untuk dapat melakukan administrasi penggajian yang
baik diperlukan pengetahuan dan pemahaman yang komprehensif tentang administrasi
penggajian. Administrasi penggajian harus sesuai dengan hukum dan perundang-
undangan yang berlaku seperti UU Tenaga Kerja, Perpajakan, Jamsostek dan menunjang
keberhasilan perusahaan. Untuk itu profesional dalam bidang HRD/Payroll dituntut
mampu melaksanakan proses administrasi penggajian mulai dari pemahaman terhadap
konsep penggajian, proses perhitungan dan pembuatan laporan penggajian.
B. Tahapan Pembuatan ERD
Untuk memulai pengerjaan System Payroll ini saya mulai dengan membuat
Database terlebih dahulu, yang terdiri dari 11 Tabel yaitu :
1. Tahap 1: Penentuan Entities
2. Tahap 2 : Penentuan Atribut
bonus, golongan, hari_kerja, jabatan, kehadiran, pajak, pegawai, periode, perusahaan,
potongan, tarif lembur
3. Tahap 3 : Penentuan Kardinalitas Relasi
4. Tahap 4 : Pembuaatan ERD
C. Cara Membuat Koneksi ODBC Setelah ERD terbentuk pada program payroll sebagai
berikut :
Masuk ke dalam Jendela Control Panel (Start - Control Panel)
Pilih Administrative Tools
Pilih Data Source (ODBC)
Tampil Jendela ODBC Data Source Administrator, Pilih Add
Pada Jendela Create New Data Source, Pilih MySQL ODBC 5.1w Driver
Klik tombol Finish
Maka akan tampil jendela form konfigurasi seperti di bawah ini
Pada Bingkai Connection Parameters isi dengan ketentuan sebagai berikut :
1. Data Source Name, merupakan Nama Data Source yang akan digunakan dalam
koneksi dengan Basis Data.
2. Description, untuk mendeskripsikan koneksi Basisdata yang anda buat. Text ini boleh
dikosongkan
3. Server, jika hanya untuk local computer gunakan localhost atau isi dengan IP
127.0.0.1. Jika untuk koneksi ke server atau client gunakan IP Address Komputer
server tujuan.
4. User adalah nama user/pengguna, untuk default dari database MySQL isi dengan
root
5. Password diisi sesuai dengan password user
6. Database merupakan database yang akan digunakan dalam koneksi. Pilih sesuai
dengan database yang akan dituju
7. Untuk mencoba koneksi database, klik tombol Test
8. Jika selesai, klik tombol OK
Contoh Dari pengaturan ODBC mySQL yang sudah saya gunakan
D. Setelah tabel selesai di buat, kita lanjutkan untuk membuat querynya :
a. Query Daftar Pegawai
b. Query Kehadiran
c. Query Daftar Gaji
d. Query Untuk Mencari Jumlah Hari
e. Query Slip Gaji
Simtak :
select `pegawai`.`nama_karyawan0108` AS `nama_karyawan0108`,`pegawai`.`nik0108` AS
`nik0108`,`jabatan`.`nama_jabatan0108` AS `nama_jabatan0108`,`golongan`.`golongan0108`
AS `golongan0108`,`pegawai`.`status_kawin0108` AS
`status_kawin0108`,`golongan`.`gaji_pokok0108` AS
`gaji_pokok0108`,`jabatan`.`uang_makan0108` AS
`uang_makan0108`,`jabatan`.`tunjangan_transport0108` AS
`tunjangan_transport0108`,`jabatan`.`tunjangan_jabatan0108` AS
`tunjangan_jabatan0108`,((`mutia`.`Total_Jam_Lembur` / 3600) * 7500) AS
`Pendapatan_Lembur`,((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) +
`jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) +
((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) AS
`total_gaji`,if((`pegawai`.`status_kawin0108` = 'Belum
Menikah'),((((((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) +
`jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) +
((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) * 12) - 24300000) * 0.05) /
12),((((((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) +
`jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) +
((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) * 12) - 26325000) * 0.05) / 12)) AS
`PPh21`,if((`pegawai`.`status_kawin0108` = 'Belum
Menikah'),(((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) +
`jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) +
((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) - ((((((((`golongan`.`gaji_pokok0108` +
`jabatan`.`uang_makan0108`) + `jabatan`.`tunjangan_transport0108`) +
`jabatan`.`tunjangan_jabatan0108`) + ((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) * 12) -
24300000) * 0.05) / 12)),(((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) +
`jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) +
((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) - ((((((((`golongan`.`gaji_pokok0108` +
`jabatan`.`uang_makan0108`) + `jabatan`.`tunjangan_transport0108`) +
`jabatan`.`tunjangan_jabatan0108`) + ((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) * 12) -
26325000) * 0.05) / 12))) AS `gaji_diterima` from ((((`pegawai` join `jabatan`) join
`golongan`) join `mutia`) join `jabatan`) where ((`pegawai`.`kode_jabatan0108` =
`jabatan`.`kode_jabatan0108`) and (`golongan`.`golongan0108` = `pegawai`.`golongan0108`)
and (`pegawai`.`nik0108` = `mutia`.`nik0108`) and (`pegawai`.`nama_karyawan0108` =
`mutia`.`nama_karyawan0108`)) group by `pegawai`.`nik0108` order by
`pegawai`.`nik0108`;
f. Queri Rekapitulasi Gaji
Simtak :
select `pegawai`.`nik0108` AS `nik0108`,` pegawai`.`nama_karyawan0108` AS
`nama_karyawan0108`,`slip_gaji_pegawai`.`total_gaji` AS
`total_gaji_0108`,`slip_gaji_pegawai`.`Pendapatan_Lembur` AS
`pendapatan_lembur`,`slip_gaji_pegawai`.`PPh21` AS
`PPh21`,((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) +
`jabatan`.`tunjangan_transport0108`) + `slip_gaji_pegawai`.`Pendapatan_Lembur`) -
`slip_gaji_pegawai`.`PPh21`) AS `gaji_diterima` from (((`pegawai` join `golongan`) join
`jabatan`) join `slip_gaji_pegawai`) where ((`pegawai`.`kode_jabatan0108` =
`jabatan`.`kode_jabatan0108`) and (`pegawai`.`golongan0108` = `jabatan`.`golongan0108`)
and (`pegawai`.`nik0108` = `slip_gaji_pegawai`.`nik0108`) and (`pegawai`.`golongan0108` =
`slip_gaji_pegawai`.`golongan0108`));
E. SETELAH ITU MULAILAH KITA MENDESAIN FORM PADA VISUAL BASIC.
Pembuatan Rumus Pada Vb yang ada pada Payroll :
Adapun form yang penulis desain adalah :
1. Module
Public Conn As New ADODB.Connection
Public Rs As New ADODB.Recordset
Public strKon As String
Public strSQL As String
Public Tempat As String
Public Sub konek()
strKon = "driver={MySQL ODBC 3.51 Driver};" _
& "SERVER=localhost;" _
& "DATABASE=payroll;" _
& "port=3306;" _
& "user=root;" _
& "option=3;"
If Conn.State = adStateOpen Then
Conn.Close
Conn.CursorLocation = adUseClient
Set Conn = New ADODB.Connection
Conn.Open strKon
Else
Conn.Open strKon
End If
End Sub
Note :
Pastikan komputer anda sudah aktive SQL servernya
Pastikan Komputer Anda sudah Aktive VB nya
Pastikan Database anda dan tabel anda sudah bisa di gunakan
Pastikan seting ODBC anda sudah aktive
Langkah langkah yang harus dipersiapkan untuk memulai sebuah proyek
adalah menyiapkan folder kusus untuk sistem yang kita bangun. didalam folder
tersebut terdapat file file program, database, gambar, icon dll.
Didalam VB kita bisa membuat sebuah project yang terdidi dari Form,
modul dan Designer. Form adalah wadah tempat kita meletakan tools dan menulis
bahasa program. Sedangkan modul dapat digunakan seagai sebuah mesin
prosedur yang bisa digiunakan ketika kita ingin mejlankan sebuak sistem pada
form, biasanya modul digunakan untuk melakukan koneksi ke database. Dan
Designer merupakan software Report yang digunakan untuk menapilkan data
yang ada di database, biasanya ini digunakan untuk pencetakan data ke printer.
2. Cara Pembuatan MDI From seperti ini :
Proses Pembuatan ini :
a. Kita Klik Menu Editor yang ada pada toolbar
b. Setelah kita tekan menu editor maka akan muncul kotak dialog seperti ini dan ini datanya
dengan field yang tidak boleh sama :
2. Pembuatan Form Pegawai
LAPORAN PEGAWAI
Simtak Untuk Data pegawai :
Private Sub Combo1_Click()
Text5.SetFocus
End Sub
Private Sub Combo2_Click()
Text8.SetFocus
End Sub
Private Sub Combo3_Click()
Combo4.SetFocus
End Sub
Private Sub Combo4_Click()
Combo5.SetFocus
End Sub
Private Sub Combo6_Click()
Combo7.SetFocus
End Sub
Private Sub Command1_Click()
Unload Me Ini Simtak Untuk Tombol Keluar
End Sub
Private Sub Command2_Click()
kondisi
Aktiv
notis
Text2.SetFocus
End Sub
Private Sub Command3_Click()
Simpan Proseder untuk memanggil Proseder simpan dan hitung yang telah ada
Hitung
End Sub
Private Sub Command4_Click()
Simpan
Hitung
End Sub
Private Sub Command5_Click()
Aktiv
Text1.SetFocus
Hitung
End Sub
Private Sub Command6_Click()
Hapus
bersih
kondisi
Hitung
End Sub
Private Sub Command7_Click()
bersih
Tidak_Aktiv
kondisi
Hitung
End Sub
Private Sub Command8_Click()
CommonDialog1.Filter = "Picture files (*.jpg;*.bmp;*.gif;*.png)|*.jpg;*.bmp;*.gif;*.png"
CommonDialog1.ShowOpen
Image1.Picture = LoadPicture(CommonDialog1.FileName)
Image1.Visible = True
Text15.Text = CommonDialog1.FileName
End Sub
Private Sub Command9_Click()
CrystalReport1.ReportFileName = "D:semester4pak budipayrollkepegawaian.rpt"
CrystalReport1.WindowState = crptMaximized
CrystalReport1.RetrieveDataFiles
CrystalReport1.Action = 0
End Sub
Private Sub Commbo8_Click()
CommonDialog1.Filter = "Picture files (*.jpg;*.bmp;*.gif;*.png)|*.jpg;*.bmp;*.gif;*.png"
CommonDialog1.ShowOpen
Image1.Picture = LoadPicture(CommonDialog1.FileName)
Image1.Visible = True
Text15.Text = CommonDialog1.FileName
End Sub
Private Sub Form_Load()
Tidak_Aktiv
bersih
jk
status
Agama
Pendidikan
Kd_Jabatan
Kd_Golongan
Kebangsaan
Hitung
'Label27.Caption = Format(Date, "dd mmmm yyyy")
'Label28.Caption = Format(Date, "dd mmmm yyyy")
'Label29.Caption = Format(Date, "dd mmmm yyyy")
'Label30.Caption = Format(Date, "dd mmmm yyyy")
DTPicker5 = Date
DTPicker2 = Date
DTPicker3 = Date
DTPicker4 = Date
Adodc1.Visible = False
End Sub
Private Sub bersih()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
Text11.Text = ""
Text12.Text = ""
Text13.Text = ""
Text14.Text = ""
Combo1.Text = ""
Combo2.Text = ""
Combo3.Text = ""
Combo4.Text = ""
Combo5.Text = ""
Combo6.Text = ""
Combo7.Text = ""
End Sub
Private Sub notis()
Konek
strSQL = "select max(right(nik0108,3)) as urut from pegawai"
Set rs = conn.Execute(strSQL)
If Not rs.EOF Then
a = "" & rs("urut")
bil = Right(a, 2.1)
If bil = "0" Or bil = "" Then
Text1.Text = "M" + "001"
Else
Text1.Text = Format("M" & "00" & bil + 1)
End If
Else
Text1.Text = "M" + "001"
End If
End Sub
Private Sub jk()
Combo1.Text = "Pilih Jenis Kelamin"
Combo1.AddItem ("Pria")
Combo1.AddItem ("Perempuan")
End Sub
Private Sub Tidak_Aktiv()
Text1.Enabled = False
Text2.Enabled = False
Text3.Enabled = False
Text4.Enabled = False
Text5.Enabled = False
Text6.Enabled = False
Text7.Enabled = False
Text8.Enabled = False
Text9.Enabled = False
Text10.Enabled = False
Text11.Enabled = False
Text12.Enabled = False
Text13.Enabled = False
Text14.Enabled = False
Combo1.Enabled = False
Combo2.Enabled = False
Combo3.Enabled = False
Combo4.Enabled = False
Combo5.Enabled = False
Combo6.Enabled = False
Combo7.Enabled = False
'Label27.Enabled = False
'Label28.Enabled = False
'Label29.Enabled = False
'Label30.Enabled = False
DTPicker5.Enabled = False
DTPicker2.Enabled = False
DTPicker3.Enabled = False
DTPicker4.Enabled = False
End Sub
Private Sub Aktiv()
Text1.Enabled = True
Text2.Enabled = True
Text3.Enabled = True
Text4.Enabled = True
Text5.Enabled = True
Text6.Enabled = True
Text7.Enabled = True
Text8.Enabled = True
Text9.Enabled = True
Text10.Enabled = True
Text11.Enabled = True
Text12.Enabled = True
Text13.Enabled = True
Combo1.Enabled = True
Combo2.Enabled = True
Combo3.Enabled = True
Combo4.Enabled = True
Combo5.Enabled = True
Combo6.Enabled = True
Combo7.Enabled = True
'Label27.Enabled = True
'Label28.Enabled = True
'Label29.Enabled = True
'Label30.Enabled = True
DTPicker5.Enabled = True
DTPicker2.Enabled = True
DTPicker3.Enabled = True
DTPicker4.Enabled = True
End Sub
Private Sub status()
Combo2.Text = "Pilih Status"
Combo2.AddItem ("Belum Menikah")
Combo2.AddItem ("Menikah")
Combo2.AddItem ("Cerai")
End Sub
Private Sub Agama()
Combo3.Text = "Pilih Agama"
Combo3.AddItem ("Islam")
Combo3.AddItem ("Kristen Katolik")
Combo3.AddItem ("Kristen Protesta")
Combo3.AddItem ("Budha")
Combo3.AddItem ("Hindu")
End Sub
Private Sub Pendidikan()
Combo4.Text = "Pilih Pendidikan"
Combo4.AddItem ("S3")
Combo4.AddItem ("S2")
Combo4.AddItem ("S1")
Combo4.AddItem ("D3")
Combo4.AddItem ("SMA")
Combo4.AddItem ("SMP")
Combo4.AddItem ("SD")
End Sub
Private Sub Kd_Jabatan()
Konek
strSQL = "select kode_jabatan0108 From jabatan"
Set rs = conn.Execute(strSQL)
Combo6.Clear
Do While Not rs.EOF
Combo6.Refresh
Combo6.Text = "Pilih Kode Jabatan"
Combo6.AddItem Trim(rs("kode_jabatan0108"))
rs.MoveNext
Loop
End Sub
Private Sub Kd_Golongan()
Konek
strSQL = "select golongan0108 From golongan"
Set rs = conn.Execute(strSQL)
Combo7.Clear
Do While Not rs.EOF
Combo7.Refresh
Combo7.Text = "Pilih Kode Golongan"
Combo7.AddItem Trim(rs("golongan0108"))
rs.MoveNext
Loop
End Sub
Private Sub Kebangsaan()
Combo5.Text = "Pilih Kebangsaan"
Combo5.AddItem ("Indonesia")
Combo5.AddItem ("Warga Negara Asing")
End Sub
'Menghitung Jumlah Data
Private Sub Hitung()
Konek
strSQL = "select COUNT(nik0108) as banyak from pegawai"
Set rs = conn.Execute(strSQL)
If Not rs.EOF Then
X1 = "" & rs("banyak")
Else
X1 = 0
End If
Text14.FontSize = 13
Text14.Text = X1
End Sub
Private Sub Simpan()
'Cek
'On Error GoTo Bantu:
Konek
Set rs = New ADODB.Recordset
rs.Open "select * from pegawai where nik0108 = '" & Text1.Text & "'", conn, adOpenStatic,
adLockOptimistic
If Not rs.EOF Then
Set rs = New ADODB.Recordset
rs.Open "select * from pegawai where nik0108 ='" & Text1.Text & "'", conn, adOpenStatic,
adLockOptimistic
rs!nik0108 = Trim(Text1.Text)
rs!nama_karyawan0108 = Trim(Text2.Text)
rs!tempat_lahir108 = Trim(Text3.Text)
rs!tgl_lahir0108 = Trim(Label27.Caption)
'rs!tgl_lahir0108 = Trim(DTPicker5)
rs!no_npwp0108 = Trim(Text9.Text)
rs!tgl_daftar_npwp0108 = Trim(Label28.Caption)
'rs!tgl_daftar_npwp0108 = Trim(DTPicker2)
rs!alamat0108 = Trim(Text4.Text)
rs!no_telp0108 = Trim(Text5.Text)
rs!no_ktp0108 = Trim(Text6.Text)
rs!pendidikan_akhir0108 = Trim(Combo4.Text)
rs!agama0108 = Trim(Combo3.Text)
rs!tgl_masuk_kerja0108 = Trim(Label29.Caption)
rs!tgl_berhenti0108 = Trim(Label30.Caption)
'rs!tgl_masuk_kerja0108 = Trim(DTPicker3)
'rs!tgl_berhenti0108 = Trim(DTPicker4)
rs!jenis_kelamin0108 = Trim(Combo1.Text)
rs!jenis_pegawai0108 = Trim(Text7.Text)
rs!kebangsaaan0108 = Trim(Combo5.Text)
rs!status_kawin0108 = Trim(Combo2.Text)
rs!no_jamsostek0108 = Trim(Text10.Text)
rs!no_asuransi91 = Trim(Text11.Text)
rs!kode_jabatan0108 = Trim(Combo6.Text)
rs!golongan0108 = Trim(Combo7.Text)
rs!no_rek_bank0108 = Trim(Text12.Text)
rs!nama_bank0108 = Trim(Text13.Text)
rs!jumlah_anak = Trim(Text8.Text)
rs.Update
rs.Close
bersih
MsgBox "Data Jabatan Sudah Di Perbaiki", vbInformation, "Pesan"
Else
'Simpan
Set rs = New ADODB.Recordset
rs.Open "select * from pegawai", conn, adOpenStatic, adLockOptimistic
rs.AddNew
rs!nik0108 = Trim(Text1.Text)
rs!nama_karyawan0108 = Trim(Text2.Text)
rs!tempat_lahir108 = Trim(Text3.Text)
'rs!tgl_lahir0108 = Trim(Label27.Caption)
rs!tgl_lahir0108 = Trim(DTPicker5)
rs!no_npwp0108 = Trim(Text9.Text)
'rs!tgl_daftar_npwp0108 = Trim(Label28.Caption)
rs!tgl_daftar_npwp0108 = Trim(DTPicker2)
rs!alamat0108 = Trim(Text4.Text)
rs!no_telp0108 = Trim(Text5.Text)
rs!no_ktp0108 = Trim(Text6.Text)
rs!pendidikan_akhir0108 = Trim(Combo4.Text)
rs!agama0108 = Trim(Combo3.Text)
'rs!tgl_masuk_kerja0108 = Trim(Label29.Caption)
'rs!tgl_berhenti0108 = Trim(Label30.Caption)
rs!tgl_masuk_kerja0108 = Trim(DTPicker3)
rs!tgl_berhenti0108 = Trim(DTPicker4)
rs!jenis_kelamin0108 = Trim(Combo1.Text)
rs!jenis_pegawai0108 = Trim(Text7.Text)
rs!kebangsaaan0108 = Trim(Combo5.Text)
rs!status_kawin0108 = Trim(Combo2.Text)
rs!no_jamsostek0108 = Trim(Text10.Text)
rs!no_ansuransi0108 = Trim(Text11.Text)
rs!kode_jabatan0108 = Trim(Combo6.Text)
rs!golongan0108 = Trim(Combo7.Text)
rs!no_rek_bank0108 = Trim(Text12.Text)
rs!nama_bank0108 = Trim(Text13.Text)
rs!jumlah_anak = Trim(Text8.Text)
rs.Update
rs.Close
bersih
'MsgBox "Data Jabatan Sudah Di Simpan", vbInformation, "Informasi"
'Bantu:
'If Err.Number = 0 Then
'Exit Sub
'Else
'MsgBox "Ada Kesalahan pada Proses Data", vbInformation, "Informasi"
'End If
End If
End Sub
Private Sub Text1_Change()
On Error GoTo Bantu:
'Membatasi Input Pada Text
If rs.State = adStateOpen Then
rs.Close
End If
If Len(Text1.Text) <> 13 Then
Close
Else
Aktiv
Text2.SetFocus
End If
Konek
Set rs = New ADODB.Recordset
rs.Open "select * from pegawai where nik0108='" & Text1.Text & "'", conn, adOpenStatic,
adLockOptimistic
If Not rs.EOF Then
Set rs = New ADODB.Recordset
rs.Open "select * from pegawai where nik0108='" & Text1.Text & "'", conn, adOpenStatic,
adLockOptimistic
Text1.Text = rs!nik0108
Text2.Text = rs!nama_karyawan0108
Text3.Text = rs!tempat_lahir108
Label27.Caption = rs!tgl_lahir0108
'DTPicker5 = rs!tgl_lahir0108
Text4.Text = rs!alamat0108
Combo1.Text = rs!jenis_kelamin0108
Text5.Text = rs!no_telp0108
Text6.Text = rs!no_ktp0108
Text7.Text = rs!jenis_pegawai0108
Combo2.Text = rs!status_kawin0108
Text8.Text = rs!jumlah_anak
Combo3.Text = rs!agama0108
Combo4.Text = rs!pendidikan_akhir0108
Combo5.Text = rs!kebangsaaan0108
Combo6.Text = rs!kode_jabatan0108
Combo7.Text = rs!golongan0108
'Label29.Caption = rs!tgl_masuk_kerja0108
'Label30.Caption = rs!tgl_berhenti0108
'Label28.Caption = rs!tgl_daftar_npwp0108
DTPicker3 = rs!tgl_masuk_kerja0108
DTPicker4 = rs!tgl_berhenti0108
DTPicker2 = rs!tgl_daftar_npwp0108
Text9.Text = rs!no_npwp0108
Text10.Text = rs!no_jamsostek0108
Text11.Text = rs!no_asuransi91
Text12.Text = rs!no_rek_bank0108
Text13.Text = rs!nama_bank0108
Bantu:
If Err.Number = 0 Then
Exit Sub
Else
MsgBox "Pengimputan Data Salah !", vbInformation, "Informasi"
End If
bersih
End If
End Sub
Private Sub kondisi()
Combo1.Text = "Pilih Jenis Kelamin"
Combo2.Text = "Pilih Status"
Combo3.Text = "Pilih Agama"
Combo4.Text = "Pilih Pendidikan"
Combo5.Text = "Pilih Kebangsaan"
Combo6.Text = "Pilih Kode Jabatan"
Combo7.Text = "Pilih Kode Golongan"
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
Do Until Me.Top <= -50000
DoEvents
Me.Move Me.Left, Me.Top - 5
DoEvents
Loop
Unload Me
End Sub
Private Sub Hapus()
On Error GoTo Bantu:
Konek
strSQL = "Select * from pegawai where nik0108='" & Trim(Text1.Text) & "'"
Set rs = conn.Execute(strSQL)
If rs.EOF Then
MsgBox "Data Tidak Ditemukan!", vbInformation, "Informasi"
Else
Pesan = MsgBox("Yakin Data Akan Di Hapus ?", vbYesNo, "Peringatan")
If Pesan = vbYes Then
strSQL = "delete from pegawai where nik0108='" & Trim(Text1.Text) & "'"
conn.Execute (strSQL)
MsgBox "Data Berhasil Di Hapus", vbInformation, "Informasi"
Else
'Manajemen Tombol
Bantu:
If Err.Number = 0 Then
Exit Sub
Else
MsgBox "Ada Kesalahan pada Koneksi Database", vbInformation, "Informasi"
End If
End If
End If
bersih
End Sub
3. Pembuatan Form Golongan
LAPORAN GOLONGAN PEGAWAI
Simtak form golongan :
Private Sub add_Click()
add.Enabled = False
save.Enabled = True
edit.Enabled = False
delete.Enabled = False
cetak.Enabled = False
batal.Enabled = True
AKTIF
bersih
Text1.SetFocus
End Sub
Private Sub AKTIF()
Text1.Enabled = True
Text2.Enabled = True
End Sub
Private Sub tidak_aktif()
Text1.Enabled = False
Text2.Enabled = False
End Sub
Private Sub bersih()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub batal_click()
bersih
tampil_ke_object
delete.Enabled = False
edit.Enabled = False
save.Enabled = False
add.Enabled = True
cetak.Enabled = True
tidak_aktif
End Sub
Private Sub cetak_Click()
CrystalReport1.ReportFileName = "D:semester4pak budipayrollgolongan108.rpt"
CrystalReport1.WindowState = crptMaximized
CrystalReport1.RetrieveDataFiles
CrystalReport1.Action = 0
End Sub
Private Sub DataGrid1_RowColChange(lastrow As Variant, ByVal lastcol As Integer)
tampil_ke_object
End Sub
Private Sub delete_Click()
Hapus_data
End Sub
Private Sub edit_Click()
AKTIF
add.Enabled = False
save.Enabled = True
edit.Enabled = False
delete.Enabled = False
Text1.Enabled = False
cetak.Enabled = False
End Sub
Private Sub Form_Load()
bersih
tampil
'tampildataGOLONGAN
Adodc1.Visible = False
tidak_aktif
End Sub
Private Sub tampildataGOLONGAN()
Konek
Adodc1.ConnectionString = strKon
Adodc1.RecordSource = "select * from golongan order by golongan0108 asc"
Adodc1.Refresh
With DataGrid1
Set .DataSource = Adodc1
.Caption = "Daftar Golongan [System Payroll]"
End With
DataGrid1.Columns(0).Width = 1200
DataGrid1.Columns(1).Width = 1800
DataGrid1.Columns(0).Caption = "Golongan"
DataGrid1.Columns(1).Caption = "Gaji Pokok"
End Sub
Private Sub tampil()
Konek
Adodc1.ConnectionString = strKon
Adodc1.RecordSource = "select * from golongan"
Adodc1.Refresh
With DataGrid1
Set .DataSource = Adodc1
.Caption = "DATA golongan"
.Columns(0).Width = 1000
.Columns(0).Caption = "golongan0108"
.Columns(1).Width = 1900
.Columns(1).Caption = "gaji_pokok0108"
End With
'Menghitung Jumlah DATA golongan
Konek
strSQL = "select COUNT(golongan0108) as banyak from golongan"
Set rs = conn.Execute(strSQL)
If Not rs.EOF Then
X1 = "" & rs("banyak")
Else
X1 = 0
End If
Text3.FontSize = 13
Text3.Text = X1
End Sub
Private Sub Simpan()
On Error GoTo Bantu:
If Text1.Text = "" Or Text2.Text = "" Then
Text3.Text = "Semua Data Harus DiIsi"
Text1.SetFocus
Exit Sub
End If
If Text2.Text = "" Then
MsgBox "Data Harus Diisi Semua !", 48, "Pesan"
Text2.SetFocus
Exit Sub
End If
Konek
Set rs = New ADODB.Recordset
rs.Open "select * from golongan where golongan0108='" & Text1.Text & "'", conn,
adOpenStatic, adLockOptimistic
If Not rs.EOF Then
Set rs = New ADODB.Recordset
rs.Open "select * from golongan where golongan0108 ='" & Text1.Text & "'", conn,
adOpenStatic, adLockOptimistic
rs!golongan0108 = Trim(Text1.Text)
rs!gaji_pokok0108 = Trim(Text2.Text)
rs.Update
rs.Close
bersih
MsgBox "Data Golongan Sudah Di Perbaiki", vbInformation, "Pesan"
'Manajemen Tombol
tampil_ke_object
add.Enabled = True
save.Enabled = False
edit.Enabled = False
delete.Enabled = False
cetak.Enabled = True
tidak_aktif
Else
'Simpan
Set rs = New ADODB.Recordset
rs.Open "select * from golongan", conn, adOpenStatic, adLockOptimistic
rs.AddNew
rs!golongan0108 = Trim(Text1.Text)
rs!gaji_pokok0108 = Trim(Text2.Text)
rs.Update
rs.Close
bersih
MsgBox "Data Golongan Sudah Di Simpan", vbInformation, "Informasi"
tampil_ke_object
'manajemen tombol
add.Enabled = True
save.Enabled = False
edit.Enabled = False
delete.Enabled = False
cetak.Enabled = True
tidak_aktif
Bantu:
If Err.Number = 0 Then
Exit Sub
Else
MsgBox "Ada Kesalahan pada Pada Proses Data", vbInformation, "Informasi"
End If
End If
End Sub
Private Sub keluar_Click()
End
End Sub
Private Sub Label2_Click()
End Sub
Private Sub save_Click()
Simpan
tampil
End Sub
Private Sub Text1_Change()
'membatasi input pada text
If rs.State = adStateOpen Then
rs.Close
End If
If Len(Text1.Text) <> 13 Then
Close
Else
AKTIF
Text2.SetFocus
End If
Konek
Set rs = New ADODB.Recordset
rs.Open "select * from golongan where golongan0108= '" & Text1.Text & Text1.Text & "'",
conn, adOpenStatic, adLockOptimistic
If Not rs.EOF Then
Set rs = New ADODB.Recordset
rs.Open "select * from golongan where golongan0108='" & Text1.Text & "'", conn,
adOpenStatic, adLockOptimistic
Text1.Text = rs!golongan0108
Text2.Text = rs!gaji_pokok0108
'menampilkan data yang tersedia ke datagrid
Adodc1.RecordSource = "select * from golongan where golongan0108 like '" & Text1.Text
& "%'"
Adodc1.Refresh
With DataGrid1
Set .DataSource = Adodc1
End With
tidak_aktif
save.Enabled = False
edit.Enabled = True
delete.Enabled = True
End If
End Sub
Private Sub text1_keypress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text1.SetFocus
End If
End Sub
Private Sub text2_keypress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text2.SetFocus
End If
End Sub
Private Sub tampil_ke_object()
On Error GoTo help
If Adodc1.Recordset.BOF Then
Exit Sub
ElseIf Adodc1.Recordset.EOF Then
Exit Sub
Else
Text1.Text = "" & Adodc1.Recordset.Fields("golongan0108")
Text2.Text = "" & Adodc1.Recordset.Fields("gaji_pokok0108")
End If
help:
If Err.Number = 0 Then
Else
Text3.FontSize = 13
Text3.Text = "Terjadi Kesalahan Pada Data"
End If
End Sub
Private Sub Hapus_data()
On Error GoTo help:
If Trim(Text1.Text) = "" Then
Text3.Text = "Data Tidak Ditemukan"
DataGrid1.SetFocus
Else
Konek
strSQL = "select * from golongan where golongan0108='" & Trim(Text1.Text) & "'"
Set rs = conn.Execute(strSQL)
If rs.EOF Then
Text3.Text = "Data tidak Ditemukan"
Else
Pesan = MsgBox("Apakah data Barang :" & Trim(Text1.Text) & "Yakin Data Akan Di
Hapus", vbYesNo, "Peringatan")
If Pesan = vbYes Then
strSQL = "delete from golongan where golongan0108='" & Trim(Text1.Text) & "'"
conn.Execute (strSQL)
Text3.Text = "Data Terhapus"
tampil
Else
End If
End If
End If
help:
If Err.Number = 0 Then
Else
Text3.Text = "ERROR KONEKSI DATABASE"
End If
End Sub
4. Pembuatan untuk form jabatan
LAPORAN DATA JABATAN
Simtak :
Simtak tabel jabatan hampir sama dengan simtak dari form golongan.
5. Pembuatan Untuk Form Kehadiran
LaporanKehadiranPegawai Dan UangLembur
Simtak Untuk Kehadiran :
Private Sub Combo1_Click()
Konek
strSQL = "select nama_karyawan0108 from pegawai where nik0108 ='" & Trim(Combo1)
& "'"
Set rs = conn.Execute(strSQL)
If Not rs.EOF Then
Label2.Caption = " " & rs("nama_karyawan0108")
Else
Label12.Caption = "Nama Pegawai Belum Ada"
End If
End Sub
Private Sub nonik()
Konek
strSQL = "select nik0108 From pegawai order by nik0108 asc"
Set rs = conn.Execute(strSQL)
Combo1.Clear
Do While Not rs.EOF
Combo1.Refresh
Combo1.Text = "Pilih Kode"
Combo1.AddItem Trim(rs("nik0108"))
rs.MoveNext
Loop
End Sub
Private Sub Command1_Click()
strSQL = "select nik0108,tgl_kerja0108 from kehadiran where nik0108='" & Trim(Combo1)
& "' And tgl_kerja0108 = '" & Format(Now, "yyyy/mm/dd") & "'"
Set rs = conn.Execute(strSQL)
If Not rs.EOF Then
MsgBox ("Anda Sudah Absen...!"), vbInformation, "Pesan"
Else
Absenku
MsgBox ("Silakan Anda Masuk Kerja..!!!"), vbInformation, "Pesan"
End If
End Sub
Private Sub Command2_Click()
Konek
Set rs = New ADODB.Recordset
rs.Open "select * from kehadiran where nik0108='" & Trim(Combo1) & "' And
tgl_kerja0108 = '" & Format(Now, "yyyy/mm/dd") & "'", conn, adOpenStatic,
adLockOptimistic
If Not rs.EOF Then
Set rs = New ADODB.Recordset
rs.Open "select * from kehadiran where nik0108='" & Trim(Combo1) & "' And
tgl_kerja0108 = '" & Format(Now, "yyyy/mm/dd") & "'", conn, adOpenStatic,
adLockOptimistic
rs!nik0108 = Trim(Combo1)
rs!jam_keluar0108 = Time
rs.Update
rs.Close
MsgBox "Silakan Anda Pulang...!!", vbInformation, "Pesan"
Else
End If
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
Private Sub Command4_Click()
Label2.Caption = ""
Combo1.Text = "Pilih NIK"
End Sub
Private Sub Command5_Click()
cetak
End Sub
Private Sub cetak()
CrystalReport1.ReportFileName = "D:semester4pak budipayrollLAPORAN
KEHADIRAN.rpt"
CrystalReport1.WindowState = crptMaximized
CrystalReport1.RetrieveDataFiles
CrystalReport1.ReplaceSelectionFormula "{kehadiran.nik0108}='" & Combo1.Text & "'"
CrystalReport1.Action = 0
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 27 Then
End
Else
End If
End Sub
Private Sub Form_Load()
Adodc1.Visible = False
Label2.Caption = ""
Text2.Text = ""
Combo1.Text = ""
Label5.Enabled = True
'DTPicker1.Enabled = False
Text2.Enabled = False
Label5 = Date
'DTPicker1 = Format(Now, ddyymm)
nik
End Sub
Private Sub Timer1_Timer()
Text2.Text = "" & Time & ""
End Sub
Private Sub nik()
Konek
strSQL = "select nik0108 From pegawai"
Set rs = conn.Execute(strSQL)
Combo1.Clear
Do While Not rs.EOF
Combo1.Refresh
Combo1.Text = "Pilih NIK"
Combo1.AddItem Trim(rs("nik0108"))
rs.MoveNext
Loop
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
Do Until Me.Top <= -50000
DoEvents
Me.Move Me.Left, Me.Top - 5
DoEvents
Loop
Unload Me
End Sub
Private Sub Absenku()
'simapn Data
Konek
Set rs = New ADODB.Recordset
rs.Open "select * from kehadiran where kehadiran.nik0108='" & Trim(Combo1) & "'",
conn, adOpenStatic, adLockOptimistic
rs.AddNew
rs!nik0108 = Trim(Combo1.Text)
rs!tgl_kerja0108 = Format(Now, "yyyy/mm/dd")
rs!jam_masuk0108 = Trim(Text2.Text)
rs!jam_keluar0108 = Trim(Text2.Text)
rs!kelompok_hari0108 = "STAF"
rs!periode0108 = Month(Label5.Caption)
rs.Update
rs.Close
End Sub
Private Sub Timer2_Timer()
Label5.Caption = Format(Date, "dd mmmm yyyy")
End Sub
6. Form untuk Rekapitulasi Pegawai Berdasarkan Nik Kariawan :
LaporanRekapitulasi Pegawai
Simtaknya :
Private Sub Combo1_Click()
Konek
strSQL = "select nama_karyawan0108 from pegawai where nik0108 ='" & Trim(Combo1)
& "'"
Set rs = conn.Execute(strSQL)
If Not rs.EOF Then
Label2.Caption = " " & rs("nama_karyawan0108")
Else
Label12.Caption = "Nama Pegawai Belum Ada"
End If
End Sub
Private Sub nonik()
Konek
strSQL = "select nik0108 From pegawai order by nik0108 asc"
Set rs = conn.Execute(strSQL)
Combo1.Clear
Do While Not rs.EOF
Combo1.Refresh
Combo1.Text = "Pilih Kode"
Combo1.AddItem Trim(rs("nik0108"))
rs.MoveNext
Loop
End Sub
Private Sub Command3_Click()
Unload Me
End
End Sub
Private Sub Command4_Click()
Label2.Caption = ""
Combo1.Text = "Pilih NIK"
End Sub
Private Sub Command5_Click()
cetak
End Sub
Private Sub cetak()
CrystalReport1.ReportFileName = "D:semester4pak budipayrollREKAPITULASI
LEMBUR PEGAWAI.rpt"
CrystalReport1.WindowState = crptMaximized
CrystalReport1.RetrieveDataFiles
CrystalReport1.ReplaceSelectionFormula "{kehadiran.nik0108}='" & Combo1.Text & "'"
CrystalReport1.Action = 0
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 27 Then
End
Else
End If
End Sub
Private Sub Form_Load()
Adodc1.Visible = False
Label2.Caption = ""
Text2.Text = ""
Label5.Enabled = True
'DTPicker1.Enabled = False
Text2.Enabled = False
Label5 = Date
'DTPicker1 = Format(Now, ddyymm)
nik
End Sub
Private Sub Timer1_Timer()
Text2.Text = "" & Time & ""
End Sub
Private Sub nik()
Konek
strSQL = "select nik0108 From pegawai"
Set rs = conn.Execute(strSQL)
Combo1.Clear
Do While Not rs.EOF
Combo1.Refresh
Combo1.Text = "Pilih NIK"
Combo1.AddItem Trim(rs("nik0108"))
rs.MoveNext
Loop
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
Do Until Me.Top <= -50000
DoEvents
Me.Move Me.Left, Me.Top - 5
DoEvents
Loop
Unload Me
End Sub
Private Sub Absenku()
'simapn Data
Konek
Set rs = New ADODB.Recordset
rs.Open "select * from kehadiran where kehadiran.nik0108='" & Trim(Combo1) & "'",
conn, adOpenStatic, adLockOptimistic
rs.AddNew
rs!nik0108 = Trim(Combo1.Text)
rs!tgl_kerja0108 = Format(Now, "yyyy/mm/dd")
rs!jam_masuk0108 = Trim(Text2.Text)
rs!jam_keluar0108 = Trim(Text2.Text)
rs!kelompok_hari0108 = "STAF"
rs!periode0108 = Month(Label5.Caption)
rs.Update
rs.Close
End Sub
Private Sub Timer2_Timer()
Label5.Caption = Format(Date, "dd mmmm yyyy")
End Sub
7.Form Slip Gaji
 Laporan Slip Gaji
Simtak Pada Vb Pada form Slip Gaji sama dengan Simtak Pada Kehadiran, hanya saja
yang membedakannya itu adalah tombol masuk dan pulangnya diamana di sini tidak
menggunakan simtak tersebut
9. LaporanRekapitulasiGajiPegawai
BAB III
PENUTUP
Kesimpulan
Payroll dapat menghemat waktu dan uang perusahaan. Hal ini memungkinkan
bisnis untuk tidak membuang-buang jam kerja penanganan fungsi yang tidak mendatangkan
penghasilan apapun. Biaya proses penggajian sangat berkurang dengan menggunakan
perusahaan jasa penggajian. Biasanya biaya lebih untuk membayar karyawan untuk
menangani penggajian daripada biaya untuk melakukan outsourcing untuk perusahaan
profesional.
Penghematan biaya lain dari outsourcing adalah menghindari denda dan biaya dari
IRS dan negara jika pengajuan pajak atau pembayaran dikirimkan terlambat atau salah.
Dalam hal kesalahan tidak terjadi sebagian besar perusahaan layanan penggajian akan
membayar denda dan bunga yang masih harus dibayar.
Perusahaan Payroll tetap up to date pada tabel pajak terbaru dan undang-undang
pajak. Undang-undang perpajakan yang terus berubah dan perusahaan gaji tetap di atas
perubahan baru untuk menjaga bisnis keluar dari kesulitan. Perusahaan penggajian
menawarkan layanan seperti deposit langsung dan bayar karena Anda pergi asuransi
kompensasi pekerja bahwa beberapa pengusaha tidak bisa sendiri. Beberapa perusahaan
layanan penggajian juga dapat membantu dengan set up dan administrasi manfaat karyawan.

Contenu connexe

Similaire à payroll

Pembukuan mudah untuk lembaga non profit
Pembukuan mudah untuk lembaga non profitPembukuan mudah untuk lembaga non profit
Pembukuan mudah untuk lembaga non profitzahiraccounting-jkt
 
Basis data tugas
Basis data tugasBasis data tugas
Basis data tugasAhmad Akbar
 
Jbptsttippp -hendrabudi-213-4-babiv
Jbptsttippp -hendrabudi-213-4-babivJbptsttippp -hendrabudi-213-4-babiv
Jbptsttippp -hendrabudi-213-4-babivJOJO JOJO
 
Software zsoft
Software zsoftSoftware zsoft
Software zsoftAdiRusito1
 
Pengolahan Database Karyawan dengan Access 2007
Pengolahan Database Karyawan dengan Access 2007Pengolahan Database Karyawan dengan Access 2007
Pengolahan Database Karyawan dengan Access 2007Materi Kuliah Online
 
Pembukuan mudah untuk perusahaan jasa
Pembukuan mudah untuk perusahaan jasaPembukuan mudah untuk perusahaan jasa
Pembukuan mudah untuk perusahaan jasazahiraccounting-jkt
 
Cara buat aplikasi jualan pulsa sederhana menggunakan microsoft access
Cara buat aplikasi jualan pulsa sederhana menggunakan microsoft accessCara buat aplikasi jualan pulsa sederhana menggunakan microsoft access
Cara buat aplikasi jualan pulsa sederhana menggunakan microsoft accessFajar Sandy
 
Power Point: Software Akuntansi Accurate
Power Point: Software Akuntansi AccuratePower Point: Software Akuntansi Accurate
Power Point: Software Akuntansi AccurateNeila Ismahunnisa
 
Pembukuan mudah untuk perusahaan manufaktur
Pembukuan mudah untuk perusahaan manufakturPembukuan mudah untuk perusahaan manufaktur
Pembukuan mudah untuk perusahaan manufakturzahiraccounting-jkt
 
OfficeCentral User Manual (BM) - Sistem Pengurusan Gaji (Payroll)
OfficeCentral User Manual (BM) - Sistem Pengurusan Gaji (Payroll)OfficeCentral User Manual (BM) - Sistem Pengurusan Gaji (Payroll)
OfficeCentral User Manual (BM) - Sistem Pengurusan Gaji (Payroll)Khairun Nisa Aziz
 
Payroll HR System Information
Payroll HR System InformationPayroll HR System Information
Payroll HR System InformationVinsen Lie
 
Modul pelatihan bee accounting
Modul pelatihan bee accountingModul pelatihan bee accounting
Modul pelatihan bee accountingHz Tena
 
Pembukuan mudah untuk perusahaan trading
Pembukuan mudah untuk perusahaan tradingPembukuan mudah untuk perusahaan trading
Pembukuan mudah untuk perusahaan tradingzahiraccounting-jkt
 
ANALISIS PERANC. SISTEM INFORM materi 9.pdf
ANALISIS PERANC. SISTEM INFORM materi 9.pdfANALISIS PERANC. SISTEM INFORM materi 9.pdf
ANALISIS PERANC. SISTEM INFORM materi 9.pdfFajar Baskoro
 
Analisis perancangan sistem bengkel ramayana
Analisis perancangan sistem bengkel ramayanaAnalisis perancangan sistem bengkel ramayana
Analisis perancangan sistem bengkel ramayanapipin ibnu faqih
 
Aplikasi akuntansi
Aplikasi akuntansiAplikasi akuntansi
Aplikasi akuntansiAhmad Etc
 
Pembukuan mudah untuk perusahaan kontraktor
Pembukuan mudah untuk perusahaan kontraktorPembukuan mudah untuk perusahaan kontraktor
Pembukuan mudah untuk perusahaan kontraktorzahiraccounting-jkt
 
Chapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report KwitansiChapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report KwitansiRakhmat Dedi Gunawan
 

Similaire à payroll (20)

Pembukuan mudah untuk lembaga non profit
Pembukuan mudah untuk lembaga non profitPembukuan mudah untuk lembaga non profit
Pembukuan mudah untuk lembaga non profit
 
Basis data tugas
Basis data tugasBasis data tugas
Basis data tugas
 
Jbptsttippp -hendrabudi-213-4-babiv
Jbptsttippp -hendrabudi-213-4-babivJbptsttippp -hendrabudi-213-4-babiv
Jbptsttippp -hendrabudi-213-4-babiv
 
Software zsoft
Software zsoftSoftware zsoft
Software zsoft
 
Pengolahan Database Karyawan dengan Access 2007
Pengolahan Database Karyawan dengan Access 2007Pengolahan Database Karyawan dengan Access 2007
Pengolahan Database Karyawan dengan Access 2007
 
Pembukuan mudah untuk perusahaan jasa
Pembukuan mudah untuk perusahaan jasaPembukuan mudah untuk perusahaan jasa
Pembukuan mudah untuk perusahaan jasa
 
Cara buat aplikasi jualan pulsa sederhana menggunakan microsoft access
Cara buat aplikasi jualan pulsa sederhana menggunakan microsoft accessCara buat aplikasi jualan pulsa sederhana menggunakan microsoft access
Cara buat aplikasi jualan pulsa sederhana menggunakan microsoft access
 
Power Point: Software Akuntansi Accurate
Power Point: Software Akuntansi AccuratePower Point: Software Akuntansi Accurate
Power Point: Software Akuntansi Accurate
 
Modul 1 resume
Modul 1 resumeModul 1 resume
Modul 1 resume
 
Pembukuan mudah untuk perusahaan manufaktur
Pembukuan mudah untuk perusahaan manufakturPembukuan mudah untuk perusahaan manufaktur
Pembukuan mudah untuk perusahaan manufaktur
 
OfficeCentral User Manual (BM) - Sistem Pengurusan Gaji (Payroll)
OfficeCentral User Manual (BM) - Sistem Pengurusan Gaji (Payroll)OfficeCentral User Manual (BM) - Sistem Pengurusan Gaji (Payroll)
OfficeCentral User Manual (BM) - Sistem Pengurusan Gaji (Payroll)
 
Payroll HR System Information
Payroll HR System InformationPayroll HR System Information
Payroll HR System Information
 
Modul pelatihan bee accounting
Modul pelatihan bee accountingModul pelatihan bee accounting
Modul pelatihan bee accounting
 
Pembukuan mudah untuk perusahaan trading
Pembukuan mudah untuk perusahaan tradingPembukuan mudah untuk perusahaan trading
Pembukuan mudah untuk perusahaan trading
 
ANALISIS PERANC. SISTEM INFORM materi 9.pdf
ANALISIS PERANC. SISTEM INFORM materi 9.pdfANALISIS PERANC. SISTEM INFORM materi 9.pdf
ANALISIS PERANC. SISTEM INFORM materi 9.pdf
 
Analisis perancangan sistem bengkel ramayana
Analisis perancangan sistem bengkel ramayanaAnalisis perancangan sistem bengkel ramayana
Analisis perancangan sistem bengkel ramayana
 
Aplikasi akuntansi
Aplikasi akuntansiAplikasi akuntansi
Aplikasi akuntansi
 
Pembukuan mudah untuk perusahaan kontraktor
Pembukuan mudah untuk perusahaan kontraktorPembukuan mudah untuk perusahaan kontraktor
Pembukuan mudah untuk perusahaan kontraktor
 
Chapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report KwitansiChapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report Kwitansi
 
Tugas manpro
Tugas manproTugas manpro
Tugas manpro
 

Dernier

Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxdeskaputriani1
 
vIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxvIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxsyahrulutama16
 
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptLATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptPpsSambirejo
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxJuliBriana2
 
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdfKanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdfAkhyar33
 
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKgamelamalaal
 
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024editwebsitesubdit
 
Regresi Linear Kelompok 1 XI-10 revisi (1).pptx
Regresi Linear Kelompok 1 XI-10 revisi (1).pptxRegresi Linear Kelompok 1 XI-10 revisi (1).pptx
Regresi Linear Kelompok 1 XI-10 revisi (1).pptxRizalAminulloh2
 
PPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxPPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxDEAAYUANGGREANI
 
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024RoseMia3
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxssuser35630b
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7IwanSumantri7
 
Pengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, FigmaPengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, FigmaAndreRangga1
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfWidyastutyCoyy
 
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKAMODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKAAndiCoc
 
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptxBab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptxrizalhabib4
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxwawan479953
 
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdfAndiCoc
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...Kanaidi ken
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"baimmuhammad71
 

Dernier (20)

Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
vIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxvIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsx
 
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptLATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
 
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdfKanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
 
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
 
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
 
Regresi Linear Kelompok 1 XI-10 revisi (1).pptx
Regresi Linear Kelompok 1 XI-10 revisi (1).pptxRegresi Linear Kelompok 1 XI-10 revisi (1).pptx
Regresi Linear Kelompok 1 XI-10 revisi (1).pptx
 
PPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxPPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptx
 
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
Pengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, FigmaPengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, Figma
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
 
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKAMODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
 
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptxBab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
 
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"
 

payroll

  • 1. BAB I PENDAHULUAN A. Pendahuluan Administrasi penggajian/payroll adalah pekerjaan rutin dan merupakan salah satu bagian terpenting dalam manajemen perusahaan. Proses perhitungan gaji harus dapat dilakukan dengan cepat, tepat dan akurat. Untuk dapat melakukan administrasi penggajian yang baik diperlukan pengetahuan dan pemahaman yang komprehensif tentang administrasi penggajian. Administrasi penggajian harus sesuai dengan hukum dan perundang-undangan yang berlaku seperti UU Tenaga Kerja, Perpajakan, Jamsostek dan menunjang keberhasilan perusahaan. Untuk itu profesional dalam bidang HRD/Payroll dituntut mampu melaksanakan proses administrasi penggajian mulai dari pemahaman terhadap konsep penggajian, proses perhitungan dan pembuatan laporan penggajian. B. Tujuan 1. Mengerti dan memahami konsep penggajian dan kesejahteraan bagi karyawan. 2. Membuat perhitungan lembur, cuti, absensi, klaim medical dsb. 3. Menghitung PPh 21 dengan berbagai metode seperti gross dan membuat laporannya. 4. Menghitung dan membuat laporan tenaga kerja. 5. Menyusun komponen gaji , pendapatan dan potongan serta mengkalkulasi proses perhitungan gaji mulai dari input data, proses dan pembuatan laporan penggajian.
  • 2. BAB II PEMBAHASAN A. Defenisi Administrasi penggajian/payroll adalah pekerjaan rutin dan merupakan salah satu bagian terpenting dalam manajemen perusahaan. Proses perhitungan gaji harus dapat dilakukan dengan cepat, tepat dan akurat. Untuk dapat melakukan administrasi penggajian yang baik diperlukan pengetahuan dan pemahaman yang komprehensif tentang administrasi penggajian. Administrasi penggajian harus sesuai dengan hukum dan perundang- undangan yang berlaku seperti UU Tenaga Kerja, Perpajakan, Jamsostek dan menunjang keberhasilan perusahaan. Untuk itu profesional dalam bidang HRD/Payroll dituntut mampu melaksanakan proses administrasi penggajian mulai dari pemahaman terhadap konsep penggajian, proses perhitungan dan pembuatan laporan penggajian. B. Tahapan Pembuatan ERD Untuk memulai pengerjaan System Payroll ini saya mulai dengan membuat Database terlebih dahulu, yang terdiri dari 11 Tabel yaitu : 1. Tahap 1: Penentuan Entities
  • 3. 2. Tahap 2 : Penentuan Atribut bonus, golongan, hari_kerja, jabatan, kehadiran, pajak, pegawai, periode, perusahaan, potongan, tarif lembur
  • 4.
  • 5.
  • 6.
  • 7. 3. Tahap 3 : Penentuan Kardinalitas Relasi 4. Tahap 4 : Pembuaatan ERD C. Cara Membuat Koneksi ODBC Setelah ERD terbentuk pada program payroll sebagai berikut : Masuk ke dalam Jendela Control Panel (Start - Control Panel) Pilih Administrative Tools Pilih Data Source (ODBC) Tampil Jendela ODBC Data Source Administrator, Pilih Add Pada Jendela Create New Data Source, Pilih MySQL ODBC 5.1w Driver
  • 8. Klik tombol Finish Maka akan tampil jendela form konfigurasi seperti di bawah ini Pada Bingkai Connection Parameters isi dengan ketentuan sebagai berikut : 1. Data Source Name, merupakan Nama Data Source yang akan digunakan dalam koneksi dengan Basis Data. 2. Description, untuk mendeskripsikan koneksi Basisdata yang anda buat. Text ini boleh dikosongkan 3. Server, jika hanya untuk local computer gunakan localhost atau isi dengan IP 127.0.0.1. Jika untuk koneksi ke server atau client gunakan IP Address Komputer server tujuan. 4. User adalah nama user/pengguna, untuk default dari database MySQL isi dengan root 5. Password diisi sesuai dengan password user 6. Database merupakan database yang akan digunakan dalam koneksi. Pilih sesuai dengan database yang akan dituju 7. Untuk mencoba koneksi database, klik tombol Test 8. Jika selesai, klik tombol OK
  • 9. Contoh Dari pengaturan ODBC mySQL yang sudah saya gunakan D. Setelah tabel selesai di buat, kita lanjutkan untuk membuat querynya : a. Query Daftar Pegawai b. Query Kehadiran
  • 10. c. Query Daftar Gaji d. Query Untuk Mencari Jumlah Hari e. Query Slip Gaji Simtak : select `pegawai`.`nama_karyawan0108` AS `nama_karyawan0108`,`pegawai`.`nik0108` AS `nik0108`,`jabatan`.`nama_jabatan0108` AS `nama_jabatan0108`,`golongan`.`golongan0108` AS `golongan0108`,`pegawai`.`status_kawin0108` AS `status_kawin0108`,`golongan`.`gaji_pokok0108` AS `gaji_pokok0108`,`jabatan`.`uang_makan0108` AS `uang_makan0108`,`jabatan`.`tunjangan_transport0108` AS `tunjangan_transport0108`,`jabatan`.`tunjangan_jabatan0108` AS
  • 11. `tunjangan_jabatan0108`,((`mutia`.`Total_Jam_Lembur` / 3600) * 7500) AS `Pendapatan_Lembur`,((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) + `jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) + ((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) AS `total_gaji`,if((`pegawai`.`status_kawin0108` = 'Belum Menikah'),((((((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) + `jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) + ((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) * 12) - 24300000) * 0.05) / 12),((((((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) + `jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) + ((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) * 12) - 26325000) * 0.05) / 12)) AS `PPh21`,if((`pegawai`.`status_kawin0108` = 'Belum Menikah'),(((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) + `jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) + ((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) - ((((((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) + `jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) + ((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) * 12) - 24300000) * 0.05) / 12)),(((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) + `jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) + ((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) - ((((((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) + `jabatan`.`tunjangan_transport0108`) + `jabatan`.`tunjangan_jabatan0108`) + ((`mutia`.`Total_Jam_Lembur` / 3600) * 7500)) * 12) - 26325000) * 0.05) / 12))) AS `gaji_diterima` from ((((`pegawai` join `jabatan`) join `golongan`) join `mutia`) join `jabatan`) where ((`pegawai`.`kode_jabatan0108` = `jabatan`.`kode_jabatan0108`) and (`golongan`.`golongan0108` = `pegawai`.`golongan0108`) and (`pegawai`.`nik0108` = `mutia`.`nik0108`) and (`pegawai`.`nama_karyawan0108` = `mutia`.`nama_karyawan0108`)) group by `pegawai`.`nik0108` order by `pegawai`.`nik0108`; f. Queri Rekapitulasi Gaji Simtak : select `pegawai`.`nik0108` AS `nik0108`,` pegawai`.`nama_karyawan0108` AS `nama_karyawan0108`,`slip_gaji_pegawai`.`total_gaji` AS `total_gaji_0108`,`slip_gaji_pegawai`.`Pendapatan_Lembur` AS `pendapatan_lembur`,`slip_gaji_pegawai`.`PPh21` AS `PPh21`,((((`golongan`.`gaji_pokok0108` + `jabatan`.`uang_makan0108`) + `jabatan`.`tunjangan_transport0108`) + `slip_gaji_pegawai`.`Pendapatan_Lembur`) - `slip_gaji_pegawai`.`PPh21`) AS `gaji_diterima` from (((`pegawai` join `golongan`) join
  • 12. `jabatan`) join `slip_gaji_pegawai`) where ((`pegawai`.`kode_jabatan0108` = `jabatan`.`kode_jabatan0108`) and (`pegawai`.`golongan0108` = `jabatan`.`golongan0108`) and (`pegawai`.`nik0108` = `slip_gaji_pegawai`.`nik0108`) and (`pegawai`.`golongan0108` = `slip_gaji_pegawai`.`golongan0108`)); E. SETELAH ITU MULAILAH KITA MENDESAIN FORM PADA VISUAL BASIC. Pembuatan Rumus Pada Vb yang ada pada Payroll : Adapun form yang penulis desain adalah : 1. Module Public Conn As New ADODB.Connection Public Rs As New ADODB.Recordset Public strKon As String Public strSQL As String Public Tempat As String Public Sub konek() strKon = "driver={MySQL ODBC 3.51 Driver};" _ & "SERVER=localhost;" _ & "DATABASE=payroll;" _ & "port=3306;" _ & "user=root;" _ & "option=3;" If Conn.State = adStateOpen Then Conn.Close Conn.CursorLocation = adUseClient Set Conn = New ADODB.Connection Conn.Open strKon Else Conn.Open strKon End If End Sub Note : Pastikan komputer anda sudah aktive SQL servernya Pastikan Komputer Anda sudah Aktive VB nya Pastikan Database anda dan tabel anda sudah bisa di gunakan Pastikan seting ODBC anda sudah aktive Langkah langkah yang harus dipersiapkan untuk memulai sebuah proyek adalah menyiapkan folder kusus untuk sistem yang kita bangun. didalam folder tersebut terdapat file file program, database, gambar, icon dll. Didalam VB kita bisa membuat sebuah project yang terdidi dari Form, modul dan Designer. Form adalah wadah tempat kita meletakan tools dan menulis bahasa program. Sedangkan modul dapat digunakan seagai sebuah mesin prosedur yang bisa digiunakan ketika kita ingin mejlankan sebuak sistem pada form, biasanya modul digunakan untuk melakukan koneksi ke database. Dan
  • 13. Designer merupakan software Report yang digunakan untuk menapilkan data yang ada di database, biasanya ini digunakan untuk pencetakan data ke printer. 2. Cara Pembuatan MDI From seperti ini : Proses Pembuatan ini : a. Kita Klik Menu Editor yang ada pada toolbar b. Setelah kita tekan menu editor maka akan muncul kotak dialog seperti ini dan ini datanya dengan field yang tidak boleh sama :
  • 14. 2. Pembuatan Form Pegawai LAPORAN PEGAWAI Simtak Untuk Data pegawai : Private Sub Combo1_Click() Text5.SetFocus End Sub
  • 15. Private Sub Combo2_Click() Text8.SetFocus End Sub Private Sub Combo3_Click() Combo4.SetFocus End Sub Private Sub Combo4_Click() Combo5.SetFocus End Sub Private Sub Combo6_Click() Combo7.SetFocus End Sub Private Sub Command1_Click() Unload Me Ini Simtak Untuk Tombol Keluar End Sub Private Sub Command2_Click() kondisi Aktiv notis Text2.SetFocus End Sub Private Sub Command3_Click() Simpan Proseder untuk memanggil Proseder simpan dan hitung yang telah ada Hitung End Sub Private Sub Command4_Click() Simpan Hitung End Sub Private Sub Command5_Click() Aktiv Text1.SetFocus Hitung End Sub Private Sub Command6_Click() Hapus bersih kondisi Hitung End Sub
  • 16. Private Sub Command7_Click() bersih Tidak_Aktiv kondisi Hitung End Sub Private Sub Command8_Click() CommonDialog1.Filter = "Picture files (*.jpg;*.bmp;*.gif;*.png)|*.jpg;*.bmp;*.gif;*.png" CommonDialog1.ShowOpen Image1.Picture = LoadPicture(CommonDialog1.FileName) Image1.Visible = True Text15.Text = CommonDialog1.FileName End Sub Private Sub Command9_Click() CrystalReport1.ReportFileName = "D:semester4pak budipayrollkepegawaian.rpt" CrystalReport1.WindowState = crptMaximized CrystalReport1.RetrieveDataFiles CrystalReport1.Action = 0 End Sub Private Sub Commbo8_Click() CommonDialog1.Filter = "Picture files (*.jpg;*.bmp;*.gif;*.png)|*.jpg;*.bmp;*.gif;*.png" CommonDialog1.ShowOpen Image1.Picture = LoadPicture(CommonDialog1.FileName) Image1.Visible = True Text15.Text = CommonDialog1.FileName End Sub Private Sub Form_Load() Tidak_Aktiv bersih jk status Agama Pendidikan Kd_Jabatan Kd_Golongan Kebangsaan Hitung 'Label27.Caption = Format(Date, "dd mmmm yyyy") 'Label28.Caption = Format(Date, "dd mmmm yyyy") 'Label29.Caption = Format(Date, "dd mmmm yyyy") 'Label30.Caption = Format(Date, "dd mmmm yyyy") DTPicker5 = Date DTPicker2 = Date DTPicker3 = Date
  • 17. DTPicker4 = Date Adodc1.Visible = False End Sub Private Sub bersih() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" Text8.Text = "" Text9.Text = "" Text10.Text = "" Text11.Text = "" Text12.Text = "" Text13.Text = "" Text14.Text = "" Combo1.Text = "" Combo2.Text = "" Combo3.Text = "" Combo4.Text = "" Combo5.Text = "" Combo6.Text = "" Combo7.Text = "" End Sub Private Sub notis() Konek strSQL = "select max(right(nik0108,3)) as urut from pegawai" Set rs = conn.Execute(strSQL) If Not rs.EOF Then a = "" & rs("urut") bil = Right(a, 2.1) If bil = "0" Or bil = "" Then Text1.Text = "M" + "001" Else Text1.Text = Format("M" & "00" & bil + 1) End If Else Text1.Text = "M" + "001" End If End Sub Private Sub jk() Combo1.Text = "Pilih Jenis Kelamin" Combo1.AddItem ("Pria") Combo1.AddItem ("Perempuan") End Sub Private Sub Tidak_Aktiv() Text1.Enabled = False
  • 18. Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Text5.Enabled = False Text6.Enabled = False Text7.Enabled = False Text8.Enabled = False Text9.Enabled = False Text10.Enabled = False Text11.Enabled = False Text12.Enabled = False Text13.Enabled = False Text14.Enabled = False Combo1.Enabled = False Combo2.Enabled = False Combo3.Enabled = False Combo4.Enabled = False Combo5.Enabled = False Combo6.Enabled = False Combo7.Enabled = False 'Label27.Enabled = False 'Label28.Enabled = False 'Label29.Enabled = False 'Label30.Enabled = False DTPicker5.Enabled = False DTPicker2.Enabled = False DTPicker3.Enabled = False DTPicker4.Enabled = False End Sub Private Sub Aktiv() Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text4.Enabled = True Text5.Enabled = True Text6.Enabled = True Text7.Enabled = True Text8.Enabled = True Text9.Enabled = True Text10.Enabled = True Text11.Enabled = True Text12.Enabled = True Text13.Enabled = True Combo1.Enabled = True Combo2.Enabled = True Combo3.Enabled = True Combo4.Enabled = True Combo5.Enabled = True Combo6.Enabled = True
  • 19. Combo7.Enabled = True 'Label27.Enabled = True 'Label28.Enabled = True 'Label29.Enabled = True 'Label30.Enabled = True DTPicker5.Enabled = True DTPicker2.Enabled = True DTPicker3.Enabled = True DTPicker4.Enabled = True End Sub Private Sub status() Combo2.Text = "Pilih Status" Combo2.AddItem ("Belum Menikah") Combo2.AddItem ("Menikah") Combo2.AddItem ("Cerai") End Sub Private Sub Agama() Combo3.Text = "Pilih Agama" Combo3.AddItem ("Islam") Combo3.AddItem ("Kristen Katolik") Combo3.AddItem ("Kristen Protesta") Combo3.AddItem ("Budha") Combo3.AddItem ("Hindu") End Sub Private Sub Pendidikan() Combo4.Text = "Pilih Pendidikan" Combo4.AddItem ("S3") Combo4.AddItem ("S2") Combo4.AddItem ("S1") Combo4.AddItem ("D3") Combo4.AddItem ("SMA") Combo4.AddItem ("SMP") Combo4.AddItem ("SD") End Sub Private Sub Kd_Jabatan() Konek strSQL = "select kode_jabatan0108 From jabatan" Set rs = conn.Execute(strSQL) Combo6.Clear Do While Not rs.EOF Combo6.Refresh Combo6.Text = "Pilih Kode Jabatan" Combo6.AddItem Trim(rs("kode_jabatan0108")) rs.MoveNext Loop End Sub
  • 20. Private Sub Kd_Golongan() Konek strSQL = "select golongan0108 From golongan" Set rs = conn.Execute(strSQL) Combo7.Clear Do While Not rs.EOF Combo7.Refresh Combo7.Text = "Pilih Kode Golongan" Combo7.AddItem Trim(rs("golongan0108")) rs.MoveNext Loop End Sub Private Sub Kebangsaan() Combo5.Text = "Pilih Kebangsaan" Combo5.AddItem ("Indonesia") Combo5.AddItem ("Warga Negara Asing") End Sub 'Menghitung Jumlah Data Private Sub Hitung() Konek strSQL = "select COUNT(nik0108) as banyak from pegawai" Set rs = conn.Execute(strSQL) If Not rs.EOF Then X1 = "" & rs("banyak") Else X1 = 0 End If Text14.FontSize = 13 Text14.Text = X1 End Sub Private Sub Simpan() 'Cek 'On Error GoTo Bantu: Konek Set rs = New ADODB.Recordset rs.Open "select * from pegawai where nik0108 = '" & Text1.Text & "'", conn, adOpenStatic, adLockOptimistic If Not rs.EOF Then Set rs = New ADODB.Recordset rs.Open "select * from pegawai where nik0108 ='" & Text1.Text & "'", conn, adOpenStatic, adLockOptimistic rs!nik0108 = Trim(Text1.Text) rs!nama_karyawan0108 = Trim(Text2.Text) rs!tempat_lahir108 = Trim(Text3.Text) rs!tgl_lahir0108 = Trim(Label27.Caption) 'rs!tgl_lahir0108 = Trim(DTPicker5) rs!no_npwp0108 = Trim(Text9.Text) rs!tgl_daftar_npwp0108 = Trim(Label28.Caption) 'rs!tgl_daftar_npwp0108 = Trim(DTPicker2) rs!alamat0108 = Trim(Text4.Text)
  • 21. rs!no_telp0108 = Trim(Text5.Text) rs!no_ktp0108 = Trim(Text6.Text) rs!pendidikan_akhir0108 = Trim(Combo4.Text) rs!agama0108 = Trim(Combo3.Text) rs!tgl_masuk_kerja0108 = Trim(Label29.Caption) rs!tgl_berhenti0108 = Trim(Label30.Caption) 'rs!tgl_masuk_kerja0108 = Trim(DTPicker3) 'rs!tgl_berhenti0108 = Trim(DTPicker4) rs!jenis_kelamin0108 = Trim(Combo1.Text) rs!jenis_pegawai0108 = Trim(Text7.Text) rs!kebangsaaan0108 = Trim(Combo5.Text) rs!status_kawin0108 = Trim(Combo2.Text) rs!no_jamsostek0108 = Trim(Text10.Text) rs!no_asuransi91 = Trim(Text11.Text) rs!kode_jabatan0108 = Trim(Combo6.Text) rs!golongan0108 = Trim(Combo7.Text) rs!no_rek_bank0108 = Trim(Text12.Text) rs!nama_bank0108 = Trim(Text13.Text) rs!jumlah_anak = Trim(Text8.Text) rs.Update rs.Close bersih MsgBox "Data Jabatan Sudah Di Perbaiki", vbInformation, "Pesan" Else 'Simpan Set rs = New ADODB.Recordset rs.Open "select * from pegawai", conn, adOpenStatic, adLockOptimistic rs.AddNew rs!nik0108 = Trim(Text1.Text) rs!nama_karyawan0108 = Trim(Text2.Text) rs!tempat_lahir108 = Trim(Text3.Text) 'rs!tgl_lahir0108 = Trim(Label27.Caption) rs!tgl_lahir0108 = Trim(DTPicker5) rs!no_npwp0108 = Trim(Text9.Text) 'rs!tgl_daftar_npwp0108 = Trim(Label28.Caption) rs!tgl_daftar_npwp0108 = Trim(DTPicker2) rs!alamat0108 = Trim(Text4.Text) rs!no_telp0108 = Trim(Text5.Text) rs!no_ktp0108 = Trim(Text6.Text) rs!pendidikan_akhir0108 = Trim(Combo4.Text) rs!agama0108 = Trim(Combo3.Text) 'rs!tgl_masuk_kerja0108 = Trim(Label29.Caption) 'rs!tgl_berhenti0108 = Trim(Label30.Caption) rs!tgl_masuk_kerja0108 = Trim(DTPicker3) rs!tgl_berhenti0108 = Trim(DTPicker4) rs!jenis_kelamin0108 = Trim(Combo1.Text) rs!jenis_pegawai0108 = Trim(Text7.Text) rs!kebangsaaan0108 = Trim(Combo5.Text) rs!status_kawin0108 = Trim(Combo2.Text) rs!no_jamsostek0108 = Trim(Text10.Text)
  • 22. rs!no_ansuransi0108 = Trim(Text11.Text) rs!kode_jabatan0108 = Trim(Combo6.Text) rs!golongan0108 = Trim(Combo7.Text) rs!no_rek_bank0108 = Trim(Text12.Text) rs!nama_bank0108 = Trim(Text13.Text) rs!jumlah_anak = Trim(Text8.Text) rs.Update rs.Close bersih 'MsgBox "Data Jabatan Sudah Di Simpan", vbInformation, "Informasi" 'Bantu: 'If Err.Number = 0 Then 'Exit Sub 'Else 'MsgBox "Ada Kesalahan pada Proses Data", vbInformation, "Informasi" 'End If End If End Sub Private Sub Text1_Change() On Error GoTo Bantu: 'Membatasi Input Pada Text If rs.State = adStateOpen Then rs.Close End If If Len(Text1.Text) <> 13 Then Close Else Aktiv Text2.SetFocus End If Konek Set rs = New ADODB.Recordset rs.Open "select * from pegawai where nik0108='" & Text1.Text & "'", conn, adOpenStatic, adLockOptimistic If Not rs.EOF Then Set rs = New ADODB.Recordset rs.Open "select * from pegawai where nik0108='" & Text1.Text & "'", conn, adOpenStatic, adLockOptimistic Text1.Text = rs!nik0108 Text2.Text = rs!nama_karyawan0108 Text3.Text = rs!tempat_lahir108 Label27.Caption = rs!tgl_lahir0108 'DTPicker5 = rs!tgl_lahir0108 Text4.Text = rs!alamat0108 Combo1.Text = rs!jenis_kelamin0108 Text5.Text = rs!no_telp0108 Text6.Text = rs!no_ktp0108 Text7.Text = rs!jenis_pegawai0108 Combo2.Text = rs!status_kawin0108
  • 23. Text8.Text = rs!jumlah_anak Combo3.Text = rs!agama0108 Combo4.Text = rs!pendidikan_akhir0108 Combo5.Text = rs!kebangsaaan0108 Combo6.Text = rs!kode_jabatan0108 Combo7.Text = rs!golongan0108 'Label29.Caption = rs!tgl_masuk_kerja0108 'Label30.Caption = rs!tgl_berhenti0108 'Label28.Caption = rs!tgl_daftar_npwp0108 DTPicker3 = rs!tgl_masuk_kerja0108 DTPicker4 = rs!tgl_berhenti0108 DTPicker2 = rs!tgl_daftar_npwp0108 Text9.Text = rs!no_npwp0108 Text10.Text = rs!no_jamsostek0108 Text11.Text = rs!no_asuransi91 Text12.Text = rs!no_rek_bank0108 Text13.Text = rs!nama_bank0108 Bantu: If Err.Number = 0 Then Exit Sub Else MsgBox "Pengimputan Data Salah !", vbInformation, "Informasi" End If bersih End If End Sub Private Sub kondisi() Combo1.Text = "Pilih Jenis Kelamin" Combo2.Text = "Pilih Status" Combo3.Text = "Pilih Agama" Combo4.Text = "Pilih Pendidikan" Combo5.Text = "Pilih Kebangsaan" Combo6.Text = "Pilih Kode Jabatan" Combo7.Text = "Pilih Kode Golongan" End Sub Private Sub Form_Unload(Cancel As Integer) On Error Resume Next Do Until Me.Top <= -50000 DoEvents Me.Move Me.Left, Me.Top - 5 DoEvents Loop Unload Me End Sub Private Sub Hapus() On Error GoTo Bantu: Konek strSQL = "Select * from pegawai where nik0108='" & Trim(Text1.Text) & "'" Set rs = conn.Execute(strSQL)
  • 24. If rs.EOF Then MsgBox "Data Tidak Ditemukan!", vbInformation, "Informasi" Else Pesan = MsgBox("Yakin Data Akan Di Hapus ?", vbYesNo, "Peringatan") If Pesan = vbYes Then strSQL = "delete from pegawai where nik0108='" & Trim(Text1.Text) & "'" conn.Execute (strSQL) MsgBox "Data Berhasil Di Hapus", vbInformation, "Informasi" Else 'Manajemen Tombol Bantu: If Err.Number = 0 Then Exit Sub Else MsgBox "Ada Kesalahan pada Koneksi Database", vbInformation, "Informasi" End If End If End If bersih End Sub 3. Pembuatan Form Golongan
  • 25. LAPORAN GOLONGAN PEGAWAI Simtak form golongan : Private Sub add_Click() add.Enabled = False save.Enabled = True edit.Enabled = False delete.Enabled = False cetak.Enabled = False batal.Enabled = True AKTIF bersih Text1.SetFocus End Sub Private Sub AKTIF() Text1.Enabled = True Text2.Enabled = True End Sub Private Sub tidak_aktif() Text1.Enabled = False Text2.Enabled = False End Sub Private Sub bersih() Text1.Text = "" Text2.Text = "" End Sub Private Sub batal_click() bersih tampil_ke_object delete.Enabled = False edit.Enabled = False save.Enabled = False add.Enabled = True cetak.Enabled = True tidak_aktif
  • 26. End Sub Private Sub cetak_Click() CrystalReport1.ReportFileName = "D:semester4pak budipayrollgolongan108.rpt" CrystalReport1.WindowState = crptMaximized CrystalReport1.RetrieveDataFiles CrystalReport1.Action = 0 End Sub Private Sub DataGrid1_RowColChange(lastrow As Variant, ByVal lastcol As Integer) tampil_ke_object End Sub Private Sub delete_Click() Hapus_data End Sub Private Sub edit_Click() AKTIF add.Enabled = False save.Enabled = True edit.Enabled = False delete.Enabled = False Text1.Enabled = False cetak.Enabled = False End Sub Private Sub Form_Load() bersih tampil 'tampildataGOLONGAN Adodc1.Visible = False tidak_aktif End Sub Private Sub tampildataGOLONGAN() Konek Adodc1.ConnectionString = strKon Adodc1.RecordSource = "select * from golongan order by golongan0108 asc" Adodc1.Refresh With DataGrid1 Set .DataSource = Adodc1 .Caption = "Daftar Golongan [System Payroll]" End With DataGrid1.Columns(0).Width = 1200 DataGrid1.Columns(1).Width = 1800 DataGrid1.Columns(0).Caption = "Golongan" DataGrid1.Columns(1).Caption = "Gaji Pokok" End Sub Private Sub tampil() Konek
  • 27. Adodc1.ConnectionString = strKon Adodc1.RecordSource = "select * from golongan" Adodc1.Refresh With DataGrid1 Set .DataSource = Adodc1 .Caption = "DATA golongan" .Columns(0).Width = 1000 .Columns(0).Caption = "golongan0108" .Columns(1).Width = 1900 .Columns(1).Caption = "gaji_pokok0108" End With 'Menghitung Jumlah DATA golongan Konek strSQL = "select COUNT(golongan0108) as banyak from golongan" Set rs = conn.Execute(strSQL) If Not rs.EOF Then X1 = "" & rs("banyak") Else X1 = 0 End If Text3.FontSize = 13 Text3.Text = X1 End Sub Private Sub Simpan() On Error GoTo Bantu: If Text1.Text = "" Or Text2.Text = "" Then Text3.Text = "Semua Data Harus DiIsi" Text1.SetFocus Exit Sub End If If Text2.Text = "" Then MsgBox "Data Harus Diisi Semua !", 48, "Pesan" Text2.SetFocus Exit Sub End If Konek Set rs = New ADODB.Recordset rs.Open "select * from golongan where golongan0108='" & Text1.Text & "'", conn, adOpenStatic, adLockOptimistic If Not rs.EOF Then Set rs = New ADODB.Recordset rs.Open "select * from golongan where golongan0108 ='" & Text1.Text & "'", conn, adOpenStatic, adLockOptimistic rs!golongan0108 = Trim(Text1.Text) rs!gaji_pokok0108 = Trim(Text2.Text) rs.Update rs.Close
  • 28. bersih MsgBox "Data Golongan Sudah Di Perbaiki", vbInformation, "Pesan" 'Manajemen Tombol tampil_ke_object add.Enabled = True save.Enabled = False edit.Enabled = False delete.Enabled = False cetak.Enabled = True tidak_aktif Else 'Simpan Set rs = New ADODB.Recordset rs.Open "select * from golongan", conn, adOpenStatic, adLockOptimistic rs.AddNew rs!golongan0108 = Trim(Text1.Text) rs!gaji_pokok0108 = Trim(Text2.Text) rs.Update rs.Close bersih MsgBox "Data Golongan Sudah Di Simpan", vbInformation, "Informasi" tampil_ke_object 'manajemen tombol add.Enabled = True save.Enabled = False edit.Enabled = False delete.Enabled = False cetak.Enabled = True tidak_aktif Bantu: If Err.Number = 0 Then Exit Sub Else MsgBox "Ada Kesalahan pada Pada Proses Data", vbInformation, "Informasi" End If End If End Sub Private Sub keluar_Click() End End Sub Private Sub Label2_Click() End Sub Private Sub save_Click() Simpan tampil End Sub
  • 29. Private Sub Text1_Change() 'membatasi input pada text If rs.State = adStateOpen Then rs.Close End If If Len(Text1.Text) <> 13 Then Close Else AKTIF Text2.SetFocus End If Konek Set rs = New ADODB.Recordset rs.Open "select * from golongan where golongan0108= '" & Text1.Text & Text1.Text & "'", conn, adOpenStatic, adLockOptimistic If Not rs.EOF Then Set rs = New ADODB.Recordset rs.Open "select * from golongan where golongan0108='" & Text1.Text & "'", conn, adOpenStatic, adLockOptimistic Text1.Text = rs!golongan0108 Text2.Text = rs!gaji_pokok0108 'menampilkan data yang tersedia ke datagrid Adodc1.RecordSource = "select * from golongan where golongan0108 like '" & Text1.Text & "%'" Adodc1.Refresh With DataGrid1 Set .DataSource = Adodc1 End With tidak_aktif save.Enabled = False edit.Enabled = True delete.Enabled = True End If End Sub Private Sub text1_keypress(KeyAscii As Integer) If KeyAscii = 13 Then Text1.SetFocus End If End Sub Private Sub text2_keypress(KeyAscii As Integer) If KeyAscii = 13 Then Text2.SetFocus End If End Sub Private Sub tampil_ke_object() On Error GoTo help If Adodc1.Recordset.BOF Then Exit Sub ElseIf Adodc1.Recordset.EOF Then
  • 30. Exit Sub Else Text1.Text = "" & Adodc1.Recordset.Fields("golongan0108") Text2.Text = "" & Adodc1.Recordset.Fields("gaji_pokok0108") End If help: If Err.Number = 0 Then Else Text3.FontSize = 13 Text3.Text = "Terjadi Kesalahan Pada Data" End If End Sub Private Sub Hapus_data() On Error GoTo help: If Trim(Text1.Text) = "" Then Text3.Text = "Data Tidak Ditemukan" DataGrid1.SetFocus Else Konek strSQL = "select * from golongan where golongan0108='" & Trim(Text1.Text) & "'" Set rs = conn.Execute(strSQL) If rs.EOF Then Text3.Text = "Data tidak Ditemukan" Else Pesan = MsgBox("Apakah data Barang :" & Trim(Text1.Text) & "Yakin Data Akan Di Hapus", vbYesNo, "Peringatan") If Pesan = vbYes Then strSQL = "delete from golongan where golongan0108='" & Trim(Text1.Text) & "'" conn.Execute (strSQL) Text3.Text = "Data Terhapus" tampil Else End If End If End If help: If Err.Number = 0 Then Else Text3.Text = "ERROR KONEKSI DATABASE" End If End Sub
  • 31. 4. Pembuatan untuk form jabatan LAPORAN DATA JABATAN Simtak : Simtak tabel jabatan hampir sama dengan simtak dari form golongan.
  • 32. 5. Pembuatan Untuk Form Kehadiran LaporanKehadiranPegawai Dan UangLembur Simtak Untuk Kehadiran : Private Sub Combo1_Click() Konek strSQL = "select nama_karyawan0108 from pegawai where nik0108 ='" & Trim(Combo1) & "'" Set rs = conn.Execute(strSQL) If Not rs.EOF Then Label2.Caption = " " & rs("nama_karyawan0108") Else Label12.Caption = "Nama Pegawai Belum Ada" End If End Sub
  • 33. Private Sub nonik() Konek strSQL = "select nik0108 From pegawai order by nik0108 asc" Set rs = conn.Execute(strSQL) Combo1.Clear Do While Not rs.EOF Combo1.Refresh Combo1.Text = "Pilih Kode" Combo1.AddItem Trim(rs("nik0108")) rs.MoveNext Loop End Sub Private Sub Command1_Click() strSQL = "select nik0108,tgl_kerja0108 from kehadiran where nik0108='" & Trim(Combo1) & "' And tgl_kerja0108 = '" & Format(Now, "yyyy/mm/dd") & "'" Set rs = conn.Execute(strSQL) If Not rs.EOF Then MsgBox ("Anda Sudah Absen...!"), vbInformation, "Pesan" Else Absenku MsgBox ("Silakan Anda Masuk Kerja..!!!"), vbInformation, "Pesan" End If End Sub Private Sub Command2_Click() Konek Set rs = New ADODB.Recordset rs.Open "select * from kehadiran where nik0108='" & Trim(Combo1) & "' And tgl_kerja0108 = '" & Format(Now, "yyyy/mm/dd") & "'", conn, adOpenStatic, adLockOptimistic If Not rs.EOF Then Set rs = New ADODB.Recordset rs.Open "select * from kehadiran where nik0108='" & Trim(Combo1) & "' And tgl_kerja0108 = '" & Format(Now, "yyyy/mm/dd") & "'", conn, adOpenStatic, adLockOptimistic rs!nik0108 = Trim(Combo1) rs!jam_keluar0108 = Time rs.Update rs.Close MsgBox "Silakan Anda Pulang...!!", vbInformation, "Pesan" Else End If End Sub Private Sub Command3_Click() Unload Me End Sub
  • 34. Private Sub Command4_Click() Label2.Caption = "" Combo1.Text = "Pilih NIK" End Sub Private Sub Command5_Click() cetak End Sub Private Sub cetak() CrystalReport1.ReportFileName = "D:semester4pak budipayrollLAPORAN KEHADIRAN.rpt" CrystalReport1.WindowState = crptMaximized CrystalReport1.RetrieveDataFiles CrystalReport1.ReplaceSelectionFormula "{kehadiran.nik0108}='" & Combo1.Text & "'" CrystalReport1.Action = 0 End Sub Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 27 Then End Else End If End Sub Private Sub Form_Load() Adodc1.Visible = False Label2.Caption = "" Text2.Text = "" Combo1.Text = "" Label5.Enabled = True 'DTPicker1.Enabled = False Text2.Enabled = False Label5 = Date 'DTPicker1 = Format(Now, ddyymm) nik End Sub Private Sub Timer1_Timer() Text2.Text = "" & Time & "" End Sub Private Sub nik() Konek strSQL = "select nik0108 From pegawai" Set rs = conn.Execute(strSQL) Combo1.Clear Do While Not rs.EOF Combo1.Refresh Combo1.Text = "Pilih NIK" Combo1.AddItem Trim(rs("nik0108")) rs.MoveNext
  • 35. Loop End Sub Private Sub Form_Unload(Cancel As Integer) On Error Resume Next Do Until Me.Top <= -50000 DoEvents Me.Move Me.Left, Me.Top - 5 DoEvents Loop Unload Me End Sub Private Sub Absenku() 'simapn Data Konek Set rs = New ADODB.Recordset rs.Open "select * from kehadiran where kehadiran.nik0108='" & Trim(Combo1) & "'", conn, adOpenStatic, adLockOptimistic rs.AddNew rs!nik0108 = Trim(Combo1.Text) rs!tgl_kerja0108 = Format(Now, "yyyy/mm/dd") rs!jam_masuk0108 = Trim(Text2.Text) rs!jam_keluar0108 = Trim(Text2.Text) rs!kelompok_hari0108 = "STAF" rs!periode0108 = Month(Label5.Caption) rs.Update rs.Close End Sub Private Sub Timer2_Timer() Label5.Caption = Format(Date, "dd mmmm yyyy") End Sub 6. Form untuk Rekapitulasi Pegawai Berdasarkan Nik Kariawan :
  • 36. LaporanRekapitulasi Pegawai Simtaknya : Private Sub Combo1_Click() Konek strSQL = "select nama_karyawan0108 from pegawai where nik0108 ='" & Trim(Combo1) & "'" Set rs = conn.Execute(strSQL) If Not rs.EOF Then Label2.Caption = " " & rs("nama_karyawan0108") Else Label12.Caption = "Nama Pegawai Belum Ada" End If End Sub Private Sub nonik() Konek strSQL = "select nik0108 From pegawai order by nik0108 asc" Set rs = conn.Execute(strSQL) Combo1.Clear Do While Not rs.EOF Combo1.Refresh Combo1.Text = "Pilih Kode" Combo1.AddItem Trim(rs("nik0108")) rs.MoveNext Loop End Sub
  • 37. Private Sub Command3_Click() Unload Me End End Sub Private Sub Command4_Click() Label2.Caption = "" Combo1.Text = "Pilih NIK" End Sub Private Sub Command5_Click() cetak End Sub Private Sub cetak() CrystalReport1.ReportFileName = "D:semester4pak budipayrollREKAPITULASI LEMBUR PEGAWAI.rpt" CrystalReport1.WindowState = crptMaximized CrystalReport1.RetrieveDataFiles CrystalReport1.ReplaceSelectionFormula "{kehadiran.nik0108}='" & Combo1.Text & "'" CrystalReport1.Action = 0 End Sub Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 27 Then End Else End If End Sub Private Sub Form_Load() Adodc1.Visible = False Label2.Caption = "" Text2.Text = "" Label5.Enabled = True 'DTPicker1.Enabled = False Text2.Enabled = False Label5 = Date 'DTPicker1 = Format(Now, ddyymm) nik End Sub Private Sub Timer1_Timer() Text2.Text = "" & Time & "" End Sub Private Sub nik()
  • 38. Konek strSQL = "select nik0108 From pegawai" Set rs = conn.Execute(strSQL) Combo1.Clear Do While Not rs.EOF Combo1.Refresh Combo1.Text = "Pilih NIK" Combo1.AddItem Trim(rs("nik0108")) rs.MoveNext Loop End Sub Private Sub Form_Unload(Cancel As Integer) On Error Resume Next Do Until Me.Top <= -50000 DoEvents Me.Move Me.Left, Me.Top - 5 DoEvents Loop Unload Me End Sub Private Sub Absenku() 'simapn Data Konek Set rs = New ADODB.Recordset rs.Open "select * from kehadiran where kehadiran.nik0108='" & Trim(Combo1) & "'", conn, adOpenStatic, adLockOptimistic rs.AddNew rs!nik0108 = Trim(Combo1.Text) rs!tgl_kerja0108 = Format(Now, "yyyy/mm/dd") rs!jam_masuk0108 = Trim(Text2.Text) rs!jam_keluar0108 = Trim(Text2.Text) rs!kelompok_hari0108 = "STAF" rs!periode0108 = Month(Label5.Caption) rs.Update rs.Close End Sub Private Sub Timer2_Timer() Label5.Caption = Format(Date, "dd mmmm yyyy") End Sub
  • 39. 7.Form Slip Gaji  Laporan Slip Gaji Simtak Pada Vb Pada form Slip Gaji sama dengan Simtak Pada Kehadiran, hanya saja yang membedakannya itu adalah tombol masuk dan pulangnya diamana di sini tidak menggunakan simtak tersebut 9. LaporanRekapitulasiGajiPegawai
  • 40. BAB III PENUTUP Kesimpulan Payroll dapat menghemat waktu dan uang perusahaan. Hal ini memungkinkan bisnis untuk tidak membuang-buang jam kerja penanganan fungsi yang tidak mendatangkan penghasilan apapun. Biaya proses penggajian sangat berkurang dengan menggunakan perusahaan jasa penggajian. Biasanya biaya lebih untuk membayar karyawan untuk menangani penggajian daripada biaya untuk melakukan outsourcing untuk perusahaan profesional. Penghematan biaya lain dari outsourcing adalah menghindari denda dan biaya dari IRS dan negara jika pengajuan pajak atau pembayaran dikirimkan terlambat atau salah. Dalam hal kesalahan tidak terjadi sebagian besar perusahaan layanan penggajian akan membayar denda dan bunga yang masih harus dibayar. Perusahaan Payroll tetap up to date pada tabel pajak terbaru dan undang-undang pajak. Undang-undang perpajakan yang terus berubah dan perusahaan gaji tetap di atas perubahan baru untuk menjaga bisnis keluar dari kesulitan. Perusahaan penggajian menawarkan layanan seperti deposit langsung dan bayar karena Anda pergi asuransi kompensasi pekerja bahwa beberapa pengusaha tidak bisa sendiri. Beberapa perusahaan layanan penggajian juga dapat membantu dengan set up dan administrasi manfaat karyawan.