payroll system

79
STEP BY STEP TO BUILD PAYROLL SYSTEM 2011 USING VB.NET & SQL 2005 In this presentation we will guide you to how to build your first application in VB.Net. we will show you step by step until the program is running well at your PC. So please read and understand it carefully to finished this system. 2011 B.WIRATMOJO Work for Bridgestone Tire Indonesia, PT 6/11/2011

Upload: wirat-mojo

Post on 14-Jan-2015

2.058 views

Category:

Education


2 download

DESCRIPTION

The way you start learning VB.Net

TRANSCRIPT

Page 1: Payroll system

STEP BY STEP TO BUILD PAYROLL SYSTEM 2011 USING VB.NET & SQL 2005 In this presentation we will guide you to how to build your first application in VB.Net. we will show you step by step until the program is running well at your PC. So please read and understand it carefully to finished this system.

2011

B.WIRATMOJO Work for Bridgestone Tire Indonesia, PT

6/11/2011

Page 2: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 2

Prakata Penulis Dear all,

Ini diperuntukan untuk semua kalangan yang sedang beralih dari VB 6.0 ke VB.Net atau

memang sedang belajar dari nol VB.Net. ini adalah tugas UAS pada saat Penulis menjalani

kuliahnya di STMIK Bina Insani Bekasi pada jenjang Strata 1. Tulisan ini pun di dedikasikan

sebagai sumbangsih Penulis kepada teman-teman semua yang ingin belajar, yang diharapkan

menjadi pahala yang auto debet, sebagaimana kata orang jaman dulu, “ilmu yang bermanfaat”

adalah termasuk dari 3 amalan yang pahalanya tidak terputus walaupun orang itu sudah

meninggal dunia.

Sebuah CATATAN penting !! disini Penulis menganggap bahwa semua pembaca sudah

mengetahui dasar-dasar penggunaan VB.Net dan Database SQL Server 2005. Pada system

aplikasi Payroll ini Penulis menggunakan VB.Net 2008. Karena Penulis tidak menjelaskan

bagaimana Instalasi SQL Server 2005 dan VB.Net itu sendiri.

Note :

SQL Server 2005 ada beberapa versi, yaitu untuk computer 32 bit dan 64 bit, jadi

sebelum install silahkan lihat PC anda support untuk yang mana.

Bagi yang tidak menggunakan SQL Server 2005 dapat menggunakan SQL Server 2000,

Penulis pastikan semua pembuatan Query sama persis !! karena Syntax SQL adalah bahasa

umum yang dapat di pakai hampir di semua Aplikasi Database.

Bekasi, 11 Juni 2011

Page 3: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 3

MEMBUAT DATABASE Nah tentunya sebelum membuat aplikasi apapun kita perlu untuk mendesain Database

sebaik-baiknya, karena disinilah data-data yang kita proses dengan query DML (Data

Manipulation Language) akan di sajikan, relasi atar data, antar table yang ada haruslah relevan.

Klik kanan pada folder “Database” pilih “New Database…”

Page 4: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 4

Pada Text “Database name” isikan dengan “PAYROL_DB” atau dengan nama database

yang kawan inginkan, TAPI.. harus di ingat benar-benar hingga applikasi selesai dibuat, karena

penamaan apapun saat memrogram adalah sangat penting untuk di ingat..

Pada Grid “Path” Ubahlah direktorinya sesuai yang anda inginkan, disini Penulis sudah

membuatkan “Folder” khusus pada drive D: untuk semua Database SQL 2005 yang dimiliki.

Untuk mengamankan data bila terjadi masalah dengan system windows yang secara default

terinstal pada drive C:

Klik button “OK” maka database “PAYROL_DB” sudah terbentuk !!

WELL DONE to Create Database Application !!

Page 5: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 5

Membuat Tabel-Tabel Pilih “New Query” untuk membuat table pada system kita.

Nama Database

Execute Syntax

Cek Syntax

Page 6: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 6

Pastikan nama database yang akan kita buatkan table didalamnya “Cloud Nama

Database” lalu ketikan syntax Create Database didalamnya sbb :

Membuat TABEL_LOGIN

Create Table TABEL_LOGIN(IDUSER Varchar(2) Not Null Primary Key, USERNAMELOG Varchar(25), ACCESS Varchar (5),PASSWORDLOG Varchar(25))

Cek kebenaran pada penulisan syntax SQL Query anda tersebut dengan klik “Cloud Cek

Syntax”. Seharusnya pada kolon “Message” dibawahnya tertulis “Command(s) completed

successfully.” Ini artinya syntax BENAR. Bila “Message” error pastikan kembali syntax anda,

karena sudah pasti ada kesalahan yang terjadi.

Klik “! Execute” untuk menjadikan tabel pada database PAYROL_DB dengan syntax

tersebut.

WELL DONE TABEL_LOGIN has been created

Membuat TABEL_CITY

Lakukanlah hal yang sama saat membuat tabel sebelumnya lalu ketikan sytax sbb: Create Table TABEL_CITY(IDCITY Varchar(2) Not Null Primary Key, NAMACITY

Varchar(25))

WELL DONE TABEL_CITY has been created

Membuat TABEL_PEGAWAI

Lakukanlah hal yang sama saat membuat tabel sebelumnya lalu ketikan sytax sbb: Create Table TABEL_PEGAWAI(NIP Varchar(10) Not Null Primary Key, NAMAPEGAWAI Varchar(25), TGLLAHIR Varchar(10), ALAMAT varchar(50), IDCITY varchar(2), KODEPOS

varchar(5))

WELL DONE TABEL_PEGAWAI has been created

Membuat TABEL_UAS

Lakukanlah hal yang sama saat membuat tabel sebelumnya lalu ketikan sytax sbb: Create Table TABEL_UAS(NOPAYROLL Varchar(7) Not Null Primary Key, IDUSER Varchar(2), NIP Varchar(10), NPWP varchar(15), GAJIBULAN varchar(15), JABATAN nchar(10),GOLONGAN nchar(10), GAJI decimal (18,0), TUNJANGAN decimal(18,0), POTONGAN decimal (18,0), SEBULANLEMBUR varchar(5), UANGLEMBURAN decimal(18,0), GAJIBERSIH decimal (18,0), TAHUN nchar (10))

WELL DONE TABEL_UAS has been created

Page 7: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 7

Membuat User Login Selamat anda saat ini sudah menjajaki step berikutnya yaitu membuat User Login untuk

digunakan saat aplikasi nanti di run, karena sebelumnya anda sudah berjibaku dengan syntax

dasar Query SQL untuk membuat tabel-tabel pada system ini.

Pada View Database SQL Server 2005 pilih folder “Security” – “Logins” – klik kanan – “New

Login”. Lalu perhatikan dengan seksama setting user anda ini ya pada gambar dan penjelasan

berikutnya??

Page 8: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 8

Pada Page “General”

Login Name : uas Password : 123 Confirm Password : 123 Default database : PAYROL_DB Default language : English Pada Page “Server Role” Centang “sysadmin” Pada Page “User Mapping” Centang “PAYROL_DB” Pada Page “Status” Permission to connect to database engine pilih “Grant” Login pilih “Enabled” OK WELL DONE your user login to the database system has been created !

Page 9: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 9

Membuat Stored Procedure SELAMAT !! akhirnya anda sampai pada step yang lebih menantang anda dan menguji semangat programming anda, yaitu pembuatan Stored Procedure. Yuk mari lanjut mang… Nah masih sama saat membuat tabel, bukalah “New Query” pastikan nama databasenya untuk dibuatkan Stored Procedurenya

Membuat Stored Procedure INPUT TABEL LOGIN Ketikan syntax SQL sbb: Create Procedure StoreINPUT_TABEL_LOGIN @IDUSER Varchar(02), @USERNAMELOG Varchar(25), @ACCESS Varchar(05), @PASSWORDLOG Varchar(25) As Insert TABEL_LOGIN Values(@IDUSER,@USERNAMELOG,@ACCESS,@PASSWORDLOG) Membuat Stored Procedure DELETE TABEL LOGIN Ketikan syntax SQL sbb: Create Procedure StoreDELETE_TABEL_LOGIN @IDUSER Varchar(02) As Delete From TABEL_LOGIN Where IDUSER=@IDUSER Membuat Stored Procedure UPDATE TABEL LOGIN Ketikan syntax SQL sbb: Create Procedure StoreUPDATE_TABEL_LOGIN @IDUSER Varchar(02), @USERNAMELOG Varchar(25), @ACCESS Varchar(05), @PASSWORDLOG Varchar(25) As Update TABEL_LOGIN Set USERNAMELOG=@USERNAMELOG, ACCESS=@ACCESS, PASSWORDLOG=@PASSWORDLOG Where IDUSER=@IDUSER Membuat Stored Procedure SPI PEGAWAI Ketikan syntax SQL sbb: Create Procedure SPI_PEGAWAI @NIP Varchar(10), @NAMAPEGAWAI Varchar(25), @TGLLAHIR Varchar(10), @ALAMAT Varchar(50), @IDCITY Varchar(02), @KODEPOS Varchar(5) As Insert TABEL_PEGAWAI Values (@NIP, @NAMAPEGAWAI, @TGLLAHIR, @ALAMAT, @IDCITY, @KODEPOS)

Page 10: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 10

Membuat Stored Procedure SPD PEGAWAI Ketikan syntax SQL sbb: Create Procedure SPD_PEGAWAI @NIP Varchar(10) As Delete From TABEL_PEGAWAI Where NIP = @NIP Membuat Stored Procedure SPU PEGAWAI Ketikan syntax SQL sbb: Create Procedure SPU_PEGAWAI @NIP Varchar(10), @NAMAPEGAWAI Varchar(25), @TGLLAHIR Varchar(10), @ALAMAT Varchar(50), @IDCITY Varchar(02), @KODEPOS Varchar(5) As Update TABEL_PEGAWAI Set NAMAPEGAWAI = @NAMAPEGAWAI, TGLLAHIR = @TGLLAHIR, ALAMAT = @ALAMAT, IDCITY = @IDCITY, KODEPOS = @KODEPOS Where NIP = @NIP Note : pada saat pembuatan ini pastikan semua Data Type dan Character adalah sesuai dengan yang ada pada database, juga perintah SQL untuk DML (Data Manipulation Language) apa itu INSERT, DELETE dan UPDATE, jadi intinya bukan hanya sekedar copy, paste. Tapi pemahaman tentu jauh lebih penting !! WELL DONE your Stored Procedures have been created !!

Page 11: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 11

Membuat Aplikasi PAYROLL SYSTEM Nnaaahh.. step ini akan semakin menantang, karena disinilah kita akan berkoding-koding ria, siapkan minuman anda juga cemilan, cepuluh, cebelas (lho?? Ngitung??) [intermezzo]. Bukalah project VB.Net anda dan beri nama aplikasinya “NEW-PAYROLL-SYSTEM”. Lalu pada “Solution Explorer” klik kanan pada project “NEW-PAYROLL-SYSTEM” dan tambahkan beberapa folder (APPLICATION FORM, CLASS, MODULE, REPORT, REPORT FORM) seperti gambar dibawah.

Page 12: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 12

Folder-folder yang sudah kita buat tersebut akan mempermudah kita saat membuat aplikasi, karena disini kita secara tidak langsung sudah menerapkan konsep OOP sederhana.. yaitu ENKAPSULASI.. (wiidiih bahasanya..??). intinya akan lebih tertata rapi aja sih hehehe..

Page 13: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 13

Membuat References dan Settings Bab ini akan sangat membantu kita saat berinteraksi dengan database SQL dan Crystal Report nantinya. Dengan men=setting 2 hal ini maka data koneksi dan penggunaan tools untuk saat INHERITANCE system VB.Net itu sendiri. References Klik kanan pada “My Project” di “Solution Explorer” – “Open”. Pada tab “References” tambahkan beberapa referensi system turunananya dengan klik “Add” dan pilih tab “.NET” sbb :

Page 14: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 14

Settings Pilih tab “Settings” Isi grid “Name” KONEKSI_DBASE, “Type” (Connection string), “Scope” Application

Namun untuk “Value” ini ada spesialisasi khusus, klik saja ujung grid Value tersebut seperti terlihat pada gambar disamping.

Page 15: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 15

Datasource : Microsoft SQL Server (SqlClient) bila belum sesuai klik button “Change” Server Name : WIRAT-KOMP (ini adalah nama server SQL 2005 anda) bila tidak suka, maka ada 2 cara, 1. Isikan “Localhost”, 2. Isikan “./SQLEXPRESS” Log on to the server : Pilih “Use Windows Authentification” Connect to a database : Pilih “Select or enter a database name PAYROL_DB atau isi dengan nama database yang akan di kunci koneksinya. Test Connection : Message-nya harus “ Test connection succeeded” bila error, wah itu artinya anda harus mengulangi setting hingga koneksi OK, dan jangan pernah lanjut ke step berikutnya bila ini tidak sesuai !!!

Page 16: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 16

Membuat CLASS Pada bab pembuatan Class PAYROL SYSTEM akan memiliki 3 CLASSES, yaitu Class Koneksi Database, Class Manipulasi Data atau DML dan Class Terbilang. Untuk dapat membuat Class-Class tersebut ikutilah langkahnya berikut ini. Klik kanan pada folder “CLASS” di dalam “Solution Explorer” tambahakanlah sebuah Class sbb :

Class Pertama, beri nama class ini dengan “ClassKONEKSIDATABASE” Dan isilah syntaxnya sbb : Imports System.Data Imports System.Data.SqlClient Namespace AKSESDATA Public Class ClassKONEKSIDATABASE Dim KONEKSI As SqlConnection = New SqlConnection(My.Settings.KONEKSI_DBASE) Public Function BukaKoneksi() As SqlConnection KONEKSI.Open() Return KONEKSI End Function Public Function TutupKoneksi() As SqlConnection KONEKSI.Close()

Page 17: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 17

Return KONEKSI End Function End Class End Namespace Class Kedua, beri nama class ini dengan “CLASS_TERBILANG” Dan isilah syntaxnya sbb : Public Class CLASS_TERBILANG Public Function ANGKA_TERBILANG(ByVal N As Double) As String Dim SATUAN As String() = {"", "SATU", "DUA", "TIGA", "EMPAT", "LIMA", _ "ENAM", "TUJUH", "DELAPAN", "SEMBILAN", "SEPULUH", "SEBELAS"} Select Case n Case 0 To 11 ANGKA_TERBILANG = " " + SATUAN(Fix(n)) Case 12 To 19 ANGKA_TERBILANG = ANGKA_TERBILANG(N Mod 10) + " BELAS" Case 20 To 99 ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 10)) + " PULUH" + _ ANGKA_TERBILANG(N Mod 10) Case 100 To 199 ANGKA_TERBILANG = " SERATUS" + ANGKA_TERBILANG(N - 100) Case 200 To 999 ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 100)) + " RATUS" + _ ANGKA_TERBILANG(N Mod 100) Case 1000 To 1999 ANGKA_TERBILANG = " SERIBU" + ANGKA_TERBILANG(N - 1000) Case 2000 To 999999 ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 1000)) + " RIBU" + _ ANGKA_TERBILANG(N Mod 1000) Case 1000000 To 999999999 ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 1000000)) + " JUTA" + _ ANGKA_TERBILANG(N Mod 1000000) Case 1000000000 To 999999999999 ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 1000000000)) + " MILYAR" + _ ANGKA_TERBILANG(N Mod 1000000000) Case Else ANGKA_TERBILANG = ANGKA_TERBILANG(Fix(N / 1000000000000)) + " TRILYUN" + _ ANGKA_TERBILANG(N Mod 1000000000000) End Select End Function End Class

Page 18: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 18

Class Kedua, beri nama class ini dengan “Class_MANIPULASIDATA” Dan isilah syntaxnya sbb : Imports System.Data Imports System.Data.SqlClient Namespace AKSESDATA Public Class ClassMANIPULASIDATA Public Function AddDATA(ByVal IDUSER As String, ByVal USERNAMELOG As String, ByVal ACCESS As String, ByVal PASSWORDLOG As String) As SqlCommand Dim KoneksiKU As New AKSESDATA.ClassKONEKSIDATABASE Command = New SqlCommand("StoreINPUT_TABEL_LOGIN", KoneksiKU.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure Dim PRM_IDUSER As New SqlParameter("@IDUSER", SqlDbType.VarChar, 2) PRM_IDUSER.Value = IDUSER Dim PRM_USERNAME As New SqlParameter("@USERNAMELOG", SqlDbType.VarChar, 25) PRM_USERNAME.Value = USERNAMELOG Dim PRM_ACCESS As New SqlParameter("@ACCESS", SqlDbType.VarChar, 5) PRM_ACCESS.Value = ACCESS Dim PRM_PASSWORD As New SqlParameter("@PASSWORDLOG", SqlDbType.VarChar, 25) PRM_PASSWORD.Value = PASSWORDLOG With Command.Parameters .Add(PRM_IDUSER) .Add(PRM_USERNAME) .Add(PRM_ACCESS) .Add(PRM_PASSWORD) End With Command.ExecuteNonQuery() Dim HASIL As New SqlCommand("", KoneksiKU.TutupKoneksi) Return HASIL End Function Public Function UpdateDATA(ByVal IDUSER As String, ByVal USERNAMELOG As String, ByVal ACCESS As String, ByVal PASSWORDLOG As String) As SqlCommand Dim KoneksiKU As New AKSESDATA.ClassKONEKSIDATABASE Command = New SqlCommand("StoreUPDATE_TABEL_LOGIN", KoneksiKU.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure

Page 19: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 19

Dim PRM_IDUSER As New SqlParameter("@IDUSER", SqlDbType.VarChar, 2) PRM_IDUSER.Value = IDUSER Dim PRM_USERNAME As New SqlParameter("@USERNAMELOG", SqlDbType.VarChar, 25) PRM_USERNAME.Value = USERNAMELOG Dim PRM_ACCESS As New SqlParameter("@ACCESS", SqlDbType.VarChar, 5) PRM_ACCESS.Value = ACCESS Dim PRM_PASSWORD As New SqlParameter("@PASSWORDLOG", SqlDbType.VarChar, 25) PRM_PASSWORD.Value = PASSWORDLOG With Command.Parameters .Add(PRM_IDUSER) .Add(PRM_USERNAME) .Add(PRM_ACCESS) .Add(PRM_PASSWORD) End With Command.ExecuteNonQuery() Dim HASIL As New SqlCommand("", KoneksiKU.TutupKoneksi) Return HASIL End Function Public Function DeleteDATA(ByVal IDUSER As String) As SqlCommand Dim KoneksiKU As New AKSESDATA.ClassKONEKSIDATABASE Command = New SqlCommand("StoreDELETE_TABEL_LOGIN", KoneksiKU.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure Dim PRM_IDUSER As New SqlParameter("IDUSER", SqlDbType.VarChar, 2) PRM_IDUSER.Value = IDUSER Command.Parameters.Add(PRM_IDUSER) Command.ExecuteNonQuery() Dim HASIL As New SqlCommand("", KoneksiKU.TutupKoneksi) Return HASIL End Function Public Function TambahData(ByVal NIP As String, ByVal Nama As String, _ ByVal TglLahir As String, ByVal Alamat As String, ByVal IdCity As String, _ ByVal KodePos As String) As SqlCommand Dim Koneksiku As New AKSESDATA.ClassKONEKSIDATABASE Command = New SqlCommand("SPI_PEGAWAI", Koneksiku.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure Dim PRM1 As New SqlParameter("@NIP", SqlDbType.VarChar, 10) PRM1.Value = NIP

Page 20: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 20

Dim PRM2 As New SqlParameter("@NAMAPEGAWAI", SqlDbType.VarChar, 25) PRM2.Value = Nama Dim PRM3 As New SqlParameter("@TGLLAHIR", SqlDbType.VarChar, 10) PRM3.Value = TglLahir Dim PRM4 As New SqlParameter("@ALAMAT", SqlDbType.VarChar, 50) PRM4.Value = Alamat Dim PRM5 As New SqlParameter("@IDCITY", SqlDbType.VarChar, 20) PRM5.Value = IdCity Dim PRM6 As New SqlParameter("@KODEPOS", SqlDbType.VarChar, 5) PRM6.Value = KodePos With Command.Parameters .Add(PRM1) .Add(PRM2) .Add(PRM3) .Add(PRM4) .Add(PRM5) .Add(PRM6) End With Command.ExecuteNonQuery() Dim Hasil As New SqlCommand("", Koneksiku.TutupKoneksi) Return Hasil End Function Public Function UbahData(ByVal NIP As String, ByVal Nama As String, _ ByVal TglLahir As String, ByVal Alamat As String, ByVal IdCity As String, _ ByVal KodePos As String) As SqlCommand Dim Koneksiku As New AKSESDATA.ClassKONEKSIDATABASE Command = New SqlCommand("SPU_PEGAWAI", Koneksiku.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure Dim PRM1 As New SqlParameter("@NIP", SqlDbType.VarChar, 10) PRM1.Value = NIP Dim PRM2 As New SqlParameter("@NAMAPEGAWAI", SqlDbType.VarChar, 25) PRM2.Value = Nama Dim PRM3 As New SqlParameter("@TGLLAHIR", SqlDbType.VarChar, 10) PRM3.Value = TglLahir Dim PRM4 As New SqlParameter("@ALAMAT", SqlDbType.VarChar, 50) PRM4.Value = Alamat Dim PRM5 As New SqlParameter("@IDCITY", SqlDbType.VarChar, 20) PRM5.Value = IdCity Dim PRM6 As New SqlParameter("@KODEPOS", SqlDbType.VarChar, 5)

Page 21: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 21

PRM6.Value = KodePos With Command.Parameters .Add(PRM1) .Add(PRM2) .Add(PRM3) .Add(PRM4) .Add(PRM5) .Add(PRM6) End With Command.ExecuteNonQuery() Dim Hasil As New SqlCommand("", Koneksiku.TutupKoneksi) Return Hasil End Function Public Function HapusData(ByVal NIP As String) As SqlCommand Dim Koneksiku As New AksesData.ClassKONEKSIDATABASE Command = New SqlCommand("SPD_PEGAWAI", koneksiku.BukaKoneksi) Command.CommandType = CommandType.StoredProcedure Dim PRM1 As New SqlParameter("@NIP", SqlDbType.VarChar, 10) PRM1.Value = NIP Command.Parameters.Add(PRM1) Command.ExecuteNonQuery() Dim Hasil As New SqlCommand("", Koneksiku.TutupKoneksi) Return Hasil End Function End Class End Namespace

Page 22: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 22

Membuat Module Untuk Module pada aplikasi PAYROLL akan menggunakan 2 Module. Caranya? Ikuti stepnya. Klik kanan pada folder “MODULE” tambahkan sebuah Module.

Module Pertama, beri nama dengan “ModuleKONEKSI” Lalu isikan koding berikut : Imports System.Data.OleDb Module ModuleKONEKSI Public CONN As ADODB.Connection Public Sub KONEKSI_DATABASE() CONN = New ADODB.Connection CONN.Open("Provider=SQLOLEDB; Data Source=WIRAT-KOMP; User Id=uas; Password=123; Initial Catalog=PAYROL_DB;") End Sub End Module Module Kedua, beri nama dengan “ModuleUMUM” Lalu isikan koding berikut : Imports System.Data.SqlClient Module ModuleUMUM Public MSG As Integer Public intResponse As SqlCommand Public Command As SqlCommand Public DataAdapter As SqlDataAdapter Public DataReader As SqlDataReader Public strSQL As String Public Username, Password, Access, IdUser As String Public DS As New DataSet Public DT As New DataTable End Module

Page 23: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 23

Membuat Form Aplikasi Salut for everybody sekarang saatnya kita untuk lanjut ke step berikutnya yaitu pembuatan Form Aplikasi. Akan ada 11 Form Aplikasi (FormTESKONEKSI_ADODB_SQL, FormSPLASH, FormUSER, FormLISTUSERSYSTEM, FormLOGIN, FormUTAMA, FormPROGRAMMER, FormCITY, FormPEGAWAI, FormTRANSAKSI, FormSLIPGAJI) FormTESKONEKSI_ADODB_SQL Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, beri nama form tersebut dengan “FormTESKONEKSI_ADODB_SQL”

Buatlah form dengan setting seperti dibawah

Keterangan Toolbox : 2 buah Label Beri nama salah satu label dengan “LblSTATUS” bold perbesar font-nya Form ini akan berfungsi sebagai langkah awal anda sebelum ngoding lebih jauh. Dan jangan pernah coba ke step berikutnya bila koneksi database GAGAL disini, karena akan percuma, pasti hanya masalah demi masalah yang terjadi nantinya…

Page 24: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 24

Lalu isikan syntax berikut : Imports System.Data Imports System.Data.SqlClient Public Class FormTESKONEKSI_ADODB_SQL Private Sub FormTESKONEKSI_ADODB_SQL_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Dim Conn As New SqlConnection("Server=WIRAT-KOMP;Uid=uas;Pwd=123;Database=PAYROL_DB") Conn.Open() If (Conn.State = ConnectionState.Open) Then LblSTATUS.Text = "SELAMAT !!! ANDA BERHASIL KONEK KE SQL SERVER DI JARINGAN ANDA" End If Conn.Close() Catch ex As Exception LblSTATUS.Text = "KONEKSI GAGAL TOTAL !!!!!, SILAHKAN KONTAK ADMINISTRATOR ANDA" End Try End Sub End Class

FormUSER Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormUSER”

Page 25: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 25

Keterangan Toolbox : 2 GroupBox 5 Button 4 TextBox 1 ComboBox 5 Label 2 GroupBox : GroupBox Button dan GroupBox Data 5 Button : BtnINSERT, BtnDELETE, BtnUPDATE, BtnCLOSE, BtnLISTDATA 4 TextBox : TxtIDUSER, TxtUSERNAME, TxtPASSWORD, TxtVERIFYPASSWORD 1 ComboBox : CmbACCESS 5 Label : IDUSER, USERNAME, ACCESS, PASSWORD, VERIFY PASSWORD Lalu isikan syntax-nya sbb : Public Class FormUSER Private Sub FormUSER_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call KONEKSI_DATABASE() Call HURUF() Call TEXT_TIDAK_AKTIF() Call COMBOACCESS() End Sub Private Sub COMBOACCESS() CmbACCESS.Items.Clear() CmbACCESS.Items.Add("ADMIN") CmbACCESS.Items.Add("USER") End Sub Private Sub HURUF() TxtUSERNAME.CharacterCasing = CharacterCasing.Upper TxtPASSWORD.CharacterCasing = CharacterCasing.Upper TxtVERIFYPASSWORD.CharacterCasing = CharacterCasing.Upper End Sub Private Sub TEXT_TIDAK_AKTIF() TxtIDUSER.Enabled = False TxtUSERNAME.Enabled = False

Page 26: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 26

CmbACCESS.Enabled = False TxtPASSWORD.Enabled = False TxtVERIFYPASSWORD.Enabled = False End Sub Private Sub TEXT_AKTIF() TxtUSERNAME.Enabled = True CmbACCESS.Enabled = True TxtPASSWORD.Enabled = True TxtVERIFYPASSWORD.Enabled = True End Sub Private Sub TEXT_KOSONG() TxtIDUSER.Text = "" TxtUSERNAME.Text = "" CmbACCESS.Text = "" TxtPASSWORD.Text = "" TxtVERIFYPASSWORD.Text = "" End Sub Private Sub BtnINSERT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnINSERT.Click If BtnINSERT.Text = "&ADD NEW" Then BtnINSERT.Text = "&SAVE" BtnCLOSE.Text = "&CANCEL" Call TEXT_AKTIF() Call TEXT_KOSONG() Call ID_LOGIN() TxtUSERNAME.Focus() BtnUPDATE.Enabled = False BtnDELETE.Enabled = False ElseIf BtnINSERT.Text = "&SAVE" Then BtnINSERT.Text = "&ADD NEW" BtnCLOSE.Text = "&CLOSE" Call SAVE_DATA() End If End Sub Private Sub BtnCLOSE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCLOSE.Click If BtnCLOSE.Text = "&CANCEL" Then BtnINSERT.Text = "&ADD NEW" BtnCLOSE.Text = "&CLOSE" BtnUPDATE.Text = "&UPDATE" BtnDELETE.Text = "&DELETE" BtnINSERT.Enabled = True BtnUPDATE.Enabled = True BtnDELETE.Enabled = True BtnCLOSE.Enabled = True Call TEXT_TIDAK_AKTIF()

Page 27: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 27

Call TEXT_KOSONG() Else Me.Close() End If End Sub Private Sub TxtUSERNAME_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtUSERNAME.KeyPress If e.KeyChar = Chr(13) Then CmbACCESS.Focus() End If End Sub Private Sub TxtPASSWORD_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPASSWORD.KeyPress If e.KeyChar = Chr(13) Then TxtVERIFYPASSWORD.Focus() End If End Sub Private Sub TxtVERIFYPASSWORD_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtVERIFYPASSWORD.KeyPress If e.KeyChar = Chr(13) Then If TxtVERIFYPASSWORD.Text <> TxtPASSWORD.Text Then MessageBox.Show("PASSWORD VERIFICATION IS MISTAKE !!!", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Error) TxtVERIFYPASSWORD.Text = "" TxtVERIFYPASSWORD.Focus() Else If BtnINSERT.Enabled = False Then BtnUPDATE.Focus() ElseIf BtnINSERT.Enabled = True Then BtnINSERT.Focus() End If End If End If End Sub Private Sub ID_LOGIN() Dim rsIDLogin As ADODB.Recordset Dim strIDLogin As String rsIDLogin = New ADODB.Recordset rsIDLogin = CONN.Execute("Select Max(IDUSER) As IDUSER From TABEL_LOGIN") If Not rsIDLogin.EOF Then If rsIDLogin.Fields("IDUSER").Value.ToString <> "" Then strIDLogin = Format(Val(Microsoft.VisualBasic.Left(rsIDLogin.Fields("IDUSER").Value.ToString, 2) + 1), "0#") Else strIDLogin = Format(1, "0#") End If rsIDLogin.Close() TxtIDUSER.Text = strIDLogin

Page 28: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 28

End If End Sub Private Sub UPDATE_DATA() Dim MyCOMMAND As New AKSESDATA.ClassMANIPULASIDATA If TxtUSERNAME.Text = "" Or TxtPASSWORD.Text = "" Then MessageBox.Show("NO DATA TO BE UPDATED !! PLEASE CHOOSE ANY ITEM", "WIRATMOJO", MessageBoxButtons.OK) Call TEXT_KOSONG() Call TEXT_TIDAK_AKTIF() Else Dim TANYA As String TANYA = MessageBox.Show("YAKIN MENGUBAH DATA - " & TxtUSERNAME.Text & " - ??", "WIRATMOJO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If TANYA = vbYes Then MyCOMMAND.UpdateDATA(TxtIDUSER.Text, TxtUSERNAME.Text, CmbACCESS.Text, TxtPASSWORD.Text) MessageBox.Show("DATA TELAH DIUBAH !!", "WIRATMOJO", MessageBoxButtons.OK) Call TEXT_KOSONG() Call TEXT_TIDAK_AKTIF() BtnUPDATE.Text = "&UPDATE" BtnCLOSE.Text = "&CLOSE" End If End If End Sub Private Sub SAVE_DATA() Dim MyCOMMAND As New AKSESDATA.ClassMANIPULASIDATA If TxtUSERNAME.Text = "" Or TxtPASSWORD.Text = "" Then MessageBox.Show("NO DATA TO BE SAVE !!", "WIRATMOJO", MessageBoxButtons.OK) Call TEXT_KOSONG() Call TEXT_TIDAK_AKTIF() Else If DT.Rows.Count <= 0 Then MyCOMMAND.AddDATA(TxtIDUSER.Text, TxtUSERNAME.Text, CmbACCESS.Text, TxtPASSWORD.Text) MessageBox.Show("DATA TERSIMPAN !!", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Information) Call TEXT_TIDAK_AKTIF() Call TEXT_KOSONG() Else

Page 29: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 29

MessageBox.Show("DATA SUDAH ADA !!, SILAHKAN PAKAI ID LAIN", "WIRATMOJO", MessageBoxButtons.OK) End If End If End Sub Private Sub CmbACCESS_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbACCESS.KeyPress If e.KeyChar = Chr(13) Then TxtPASSWORD.Focus() End If End Sub Private Sub BtnUPDATE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUPDATE.Click If BtnUPDATE.Text = "&UPDATE" Then BtnUPDATE.Text = "&OK" BtnCLOSE.Text = "&CANCEL" Call TEXT_AKTIF() TxtUSERNAME.Focus() ElseIf BtnUPDATE.Text = "&OK" Then Call UPDATE_DATA() End If End Sub Private Sub BtnLISTDATA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLISTDATA.Click Me.Hide() FormLISTUSERSYSTEM.ShowDialog() End Sub Private Sub BtnDELETE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDELETE.Click Dim MyCOMMAND As New AKSESDATA.ClassMANIPULASIDATA If TxtUSERNAME.Text = "" Or TxtPASSWORD.Text = "" Then MessageBox.Show("NO DATA TO BE DELETED !! PLEASE CHOOSE ANY ITEM", "WIRATMOJO", MessageBoxButtons.OK) Call TEXT_KOSONG() Call TEXT_TIDAK_AKTIF() Else Dim TANYA As String TANYA = MessageBox.Show("YAKIN MENGHAPUS DATA - " & TxtUSERNAME.Text & " - ??", "WIRATMOJO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If TANYA = vbYes Then MyCOMMAND.DeleteDATA(TxtIDUSER.Text) MessageBox.Show("DATA TELAH DIHAPUS !!", "WIRATMOJO", MessageBoxButtons.OK)

Page 30: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 30

Call TEXT_KOSONG() Call TEXT_TIDAK_AKTIF() BtnDELETE.Text = "&DELETE" BtnCLOSE.Text = "&CLOSE" End If End If End Sub End Class FormLISTUSER Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormLISTUSER”

Keterangan Toolbox : 1 DataGridView GridUSER Lalu isikan syntax sbb : Imports System.Data Imports System.Data.SqlClient Public Class FormLISTUSERSYSTEM Private Sub DATAGRID() Dim Koneksi As New SqlConnection("Data Source=WIRAT-KOMP; User Id=uas; Password=123; Initial Catalog=PAYROL_DB;") Dim Query As New SqlCommand("Select * From TABEL_LOGIN", Koneksi) Dim Reader As SqlDataReader Try Koneksi.Open() Reader = Query.ExecuteReader Dim Data As New DataTable Data.Load(Reader) GridUSER.DataSource = Data Reader.Close()

Page 31: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 31

Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Private Sub FormLISTUSERSYSTEM_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed FormUSER.Show() End Sub Private Sub FormLISTUSERSYSTEM_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call DATAGRID() End Sub Private Sub GridUSER_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridUSER.DoubleClick FormUSER.TxtIDUSER.Text = GridUSER.Item(0, GridUSER.CurrentRow.Index).Value FormUSER.TxtUSERNAME.Text = GridUSER.Item(1, GridUSER.CurrentRow.Index).Value FormUSER.CmbACCESS.Text = GridUSER.Item(2, GridUSER.CurrentRow.Index).Value FormUSER.TxtPASSWORD.Text = GridUSER.Item(3, GridUSER.CurrentRow.Index).Value Me.Hide() FormUSER.Show() End Sub Private Sub GridUSER_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles GridUSER.KeyDown If e.KeyCode = Keys.Enter Then FormUSER.TxtIDUSER.Text = GridUSER.Item(0, GridUSER.CurrentRow.Index).Value FormUSER.TxtUSERNAME.Text = GridUSER.Item(1, GridUSER.CurrentRow.Index).Value FormUSER.CmbACCESS.Text = GridUSER.Item(2, GridUSER.CurrentRow.Index).Value FormUSER.TxtPASSWORD.Text = GridUSER.Item(3, GridUSER.CurrentRow.Index).Value Me.Hide() FormUSER.Show() End If End Sub End Class

Page 32: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 32

FormLOGIN Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormLOGIN”

Keterangan Toolbox : 1 GroupBox 2 Label 2 TextBox 2 Button 1 PictureBox 1 GroupBox : GroupBox Data 2 Label : USERNAME, PASSWORD 2 TextBox : TxtUSERNAME, TxtPASSWORD 2 Button : BtnLOGIN, BtnCANCEL 1 PictureBox : Silahkan pilih gambar anda sendiri Lalu isikan syntax sbb : Imports System.Data Imports System.Data.SqlClient Public Class FormLOGIN Inherits System.Windows.Forms.Form

Page 33: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 33

Dim FrmUTAMA As New FormUTAMA Dim Koneksiku As New AksesData.ClassKONEKSIDATABASE Sub CekUSER() DT.Clear() strSQL = "Select * From TABEL_LOGIN Where USERNAMELOG='" & TxtUSERNAME.Text.Trim & "'" DataAdapter = New SqlDataAdapter(strSQL, Koneksiku.BukaKoneksi) DS = New DataSet DataAdapter.Fill(DS, "TABEL_LOGIN") DT = DS.Tables("TABEL_LOGIN") Koneksiku.TutupKoneksi() End Sub Sub CariUSER() strSQL = "Select * From TABEL_LOGIN Where USERNAMELOG = '" & TxtUSERNAME.Text.Trim & "'" Command = New SqlCommand(strSQL, Koneksiku.BukaKoneksi) DataReader = Command.ExecuteReader While DataReader.Read Username = DataReader.Item("USERNAMELOG") Password = DataReader.Item("PASSWORDLOG") Access = DataReader.Item("ACCESS") IdUser = DataReader.Item("IDUSER") End While Koneksiku.TutupKoneksi() End Sub Private Sub BtnCANCEL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCANCEL.Click MSG = MessageBox.Show("SURE WANT TO EXIT PAYROLL SYSTEM ??", "WIRATMOJO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If MSG = vbYes Then End Else Exit Sub End If End Sub Private Sub BtnLOGIN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLOGIN.Click If TxtUSERNAME.Text.Trim = "" Then MessageBox.Show("USERNAME, CANNOT BE EMPTY FIELD", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Information) TxtUSERNAME.Focus() ElseIf TxtPASSWORD.Text.Trim = "" Then

Page 34: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 34

MessageBox.Show("PASSWORD, CANNOT BE EMPTY FIELD", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Information) TxtPASSWORD.Focus() Else Try Call CekUSER() If DT.Rows.Count <= 0 Then MessageBox.Show("USERNAME ISN'T RECOGNIZED, " & vbCrLf & _ "PLEASE USE VALID DATA !!", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Error) TxtUSERNAME.Text = "" TxtUSERNAME.Focus() Else Call CariUSER() If Password <> TxtPASSWORD.Text.Trim Then MessageBox.Show("PASSWORD ISN'T RECOGNIZED, " & vbCrLf & _ "PLEASE USE VALID DATA !!", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Error) TxtPASSWORD.Text = "" TxtPASSWORD.Focus() Else FrmUTAMA.Show() Me.Hide() TxtUSERNAME.Text = "" TxtPASSWORD.Text = "" End If End If Catch When Err.Number <> 0 MessageBox.Show("SYSTEM CAN'T REACHED DATABASE, " & vbCrLf & _ "PLEASE CONTACT YOUR ADMINISTRATOR !!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End If End Sub Private Sub FormLOGIN_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TxtUSERNAME.CharacterCasing = CharacterCasing.Upper TxtPASSWORD.CharacterCasing = CharacterCasing.Upper End Sub Private Sub TxtUSERNAME_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtUSERNAME.KeyPress

Page 35: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 35

If e.KeyChar = Chr(13) Then TxtPASSWORD.Focus() End If End Sub Private Sub TxtPASSWORD_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPASSWORD.KeyPress If e.KeyChar = Chr(13) Then BtnLOGIN.Focus() End If End Sub End Class FormSPLASH Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormSPLASH”

Keterangan Toolbox : 5 Label 1 ProgressBar 1 PictureBox 2 Timer 5 Label : LOADING DATABASE CONNECTION, PAYROLL SYSTEM 2011, LblANGKA, % 1 ProgressBar : BAR

Page 36: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 36

1 PictureBox : Gambar uang atau silahkan pilih gambar anda sendiri, BEBAS daaag.. 2 Timer : TimerSPLASH, TimerLABEL Lalu isikan syntax sbb : Public Class FormSPLASH Dim FRM As New FormLOGIN Dim BARIS As Integer Private Sub TimerSPLASH_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerSPLASH.Tick BARIS = BARIS + 1 BAR.Value = BARIS LblANGKA.Text = BARIS If LblANGKA.Text = 100 Then TimerSPLASH.Dispose() Me.Hide() FRM.Show() End If End Sub Private Sub TimerLABEL_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerLABEL.Tick If Label1.Visible = True Then Label1.Visible = False ElseIf Label1.Visible = False Then Label1.Visible = True End If End Sub End Class

Page 37: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 37

FormUTAMA Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormUTAMA”

Keterangan Toolbox : 1 MenuStrip 1 Statusbar 2 Timer 1 Statusbar 1 MenuStrip : FILEToolStripMenuItem PROGRAMMERToolStripMenuItem, EXITToolStripMenuItem

Page 38: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 38

MASTERDATAToolMenuItem USERSYSTEM, EMPLOToolStripMenuItem, CITYToolStripMenuItem1, PAYROLLToolStripMenuItem1

REPORTINGToolStripMenuItem USERDATAToolStripMenuItem, EMPLOYEEDATAToolStripMenuItem, CITYToolStripMenuItem, PAYROLLToolStripMenuItem, PRINTSLIPGAJIToolStripMenuItem

1 ToolStrip : BtnToolUSER, BtnToolEMPLOYEE, BtnToolCITY, BtnToolPAYROLL, BtnToolEXIT

2 Timer : TimerStsLISENSI, TimerJAM 1 StatusBar : StsIDUSER, Username :.:, StsUSER, Access :.:, StsACCESS, Date :.:, StsDATE, Jam :.:, StsJAM, StsLISENSI

Page 39: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 39

Lalu isikan syntax sbb : Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class FormUTAMA Inherits System.Windows.Forms.Form #Region "JAM" Dim lpT As CLASS_SISTEM Dim dateUTC As Date Dim WTime As Date #End Region Private Declare Sub GetSystemTime Lib "kernel32" (ByRef lpSystemTime As CLASS_SISTEM) Private Structure CLASS_SISTEM Public wYear As Short Public wMonth As Short Public wDayOfWeek As Short Public wDay As Short Public wHour As Short Public wMinute As Short Public wSecond As Short Public wMiliSeconds As Short End Structure Private Sub RUNJAM() Try Call GetSystemTime(lpT) 'Indonesia dateUTC = Date.UtcNow().AddHours(7.0) WTime = CDate(lpT.wHour & ":" & lpT.wMinute & ":" & lpT.wSecond).AddHours(7.0) StsJAM.Text = WTime.ToLongTimeString Catch ex As Exception MsgBox(ex.ToString) End Try End Sub Dim myTabel As CrystalDecisions.CrystalReports.Engine.Table Dim myLogin As CrystalDecisions.Shared.TableLogOnInfo Dim ObjDoc As New ReportDocument Dim ObjCon As New ConnectionInfo Dim ObjLog As New TableLogOnInfo Dim Formula As CrystalDecisions.CrystalReports.Engine.FormulaFieldDefinition

Page 40: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 40

Dim RptUSER As New RptDATAUSER Dim RptPEGAWAI As New RptEMPLOYEE Dim RptCITY As New RptDDATACITY Dim RptGAJIAN As New RptSLIPGAJI Private Sub PROGRAMMERToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PROGRAMMERToolStripMenuItem.Click FormPROGRAMMER.ShowDialog() End Sub Private Sub EXITToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EXITToolStripMenuItem.Click MSG = MessageBox.Show("ARE YOU SURE WANT TO EXIT PAYROLL SYSTEM??", "WIRATMOJO", _ MessageBoxButtons.YesNo, MessageBoxIcon.Question) If MSG = vbYes Then End Else Exit Sub End If End Sub Private Sub EMPLOToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EMPLOToolStripMenuItem.Click FormPEGAWAI.ShowDialog() End Sub Private Sub FormUTAMA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load StsIDUSER.Text = IdUser StsUSER.Text = Username StsACCESS.Text = Access StsDATE.Text = Today.Date.ToLongDateString If StsACCESS.Text = "USER" Then USERSYSTEM.Enabled = False BtnToolUSER.Enabled = False USERDATAToolStripMenuItem.Enabled = False Else USERSYSTEM.Enabled = True BtnToolUSER.Enabled = True USERDATAToolStripMenuItem.Enabled = True End If End Sub Private Sub USERDATAToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles USERDATAToolStripMenuItem.Click Dim Koneksi As New AksesData.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim B As New FormRptDATAUSER RptUSER = New RptDATAUSER For Each myTable In RptUSER.Database.Tables

Page 41: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 41

myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next B.ReportDATAUSER.ReportSource = RptUSER B.ReportDATAUSER.RefreshReport() B.ShowDialog() End Sub Private Sub EMPLOYEEDATAToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EMPLOYEEDATAToolStripMenuItem.Click Dim Koneksi As New AksesData.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim A As New FormRptPEGAWAI RptPEGAWAI = New RptEMPLOYEE For Each myTable In RptPEGAWAI.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next A.REPORTPEGAWAI.ReportSource = RptPEGAWAI A.REPORTPEGAWAI.RefreshReport() A.ShowDialog() End Sub Private Sub CITYToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CITYToolStripMenuItem.Click Dim Koneksi As New AksesData.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim D As New FormRptCITY RptCITY = New RptDDATACITY For Each myTable In RptCITY.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin)

Page 42: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 42

Next D.RptViewerCITY.ReportSource = RptCITY D.RptViewerCITY.RefreshReport() D.ShowDialog() End Sub Private Sub CITYToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CITYToolStripMenuItem1.Click FormCITY.ShowDialog() End Sub Private Sub TimerStsLISENSI_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerStsLISENSI.Tick If StsLISENSI.Visible = True Then StsLISENSI.Visible = False ElseIf StsLISENSI.Visible = False Then StsLISENSI.Visible = True End If End Sub Private Sub TimerJAM_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerJAM.Tick Call RUNJAM() End Sub Private Sub USERSYSTEM_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles USERSYSTEM.Click FormUSER.ShowDialog() End Sub Private Sub BtnToolUSER_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToolUSER.Click FormUSER.ShowDialog() End Sub Private Sub BtnToolEMPLOYEE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToolEMPLOYEE.Click FormPEGAWAI.ShowDialog() End Sub Private Sub BtnToolCITY_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToolCITY.Click FormCITY.ShowDialog() End Sub Private Sub BtnToolEXIT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToolEXIT.Click MSG = MessageBox.Show("ARE YOU SURE WANT TO EXIT PAYROLL SYSTEM??", "WIRATMOJO", _ MessageBoxButtons.YesNo, MessageBoxIcon.Question) If MSG = vbYes Then End Else Exit Sub End If End Sub

Page 43: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 43

Private Sub BtnToolPAYROLL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToolPAYROLL.Click FormTRANSAKSI.ShowDialog() End Sub Private Sub PAYROLLToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PAYROLLToolStripMenuItem1.Click FormTRANSAKSI.ShowDialog() End Sub Private Sub PAYROLLToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PAYROLLToolStripMenuItem.Click Dim Koneksi As New AKSESDATA.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim F As New FormRptPAYROLL RptGAJIAN = New RptSLIPGAJI For Each myTable In RptGAJIAN.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next F.ReportViewPAYROLL.ReportSource = RptGAJIAN F.ReportViewPAYROLL.RefreshReport() F.ShowDialog() End Sub Private Sub PRINTSLIPGAJIToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PRINTSLIPGAJIToolStripMenuItem.Click FormSLIPGAJI_UAS.ShowDialog() End Sub End Class

Page 44: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 44

FormCITY Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormCITY”

Keterangan ToolBox : 2 Label 2 TextBox 1 Button 1 DataGridView 2 Label : KODE KOTA, NAMA KOTA 2 TextBox : TxtKODEKOTA, TxtNAMAKOTA 1 Button : BtnKOTA 1 DataGridView : GridKOTA Lalu isikan syntax sbb : Imports System.Data Imports System.Data.SqlClient Imports System.Windows.Forms.Form Public Class FormCITY Dim rsGRID As ADODB.Recordset

Page 45: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 45

Private Sub BtnKOTA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKOTA.Click If BtnKOTA.Text = "&Item Baru" Then BtnKOTA.Text = "&Insert Data Seksi" Call ID_KOTA() TxtNAMAKOTA.Focus() Else If TxtNAMAKOTA.Text = "" Then MessageBox.Show("TIDAK ADA DATA!!, SILAHKAN INPUT TERLEBIH DULU", "WIRAT INFO", MessageBoxButtons.OK) TxtNAMAKOTA.Focus() Else Call SIMPAN() BtnKOTA.Text = "&Item Baru" End If End If End Sub Private Sub SIMPAN() CONN.Execute("Insert Into TABEL_CITY Values ('" & TxtKODEKOTA.Text & "','" & TxtNAMAKOTA.Text & "')") MessageBox.Show("DATA TELAH TERSIMPAN !!", "WIRAT INFO", MessageBoxButtons.OK) TxtKODEKOTA.Text = "" TxtNAMAKOTA.Text = "" BtnKOTA.Focus() Call DATABARU() End Sub Private Sub DATABARU() rsGRID = New ADODB.Recordset rsGRID.Open("Select * From TABEL_CITY", CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) Call DATAGRID() End Sub Private Sub DATAGRID() Dim Koneksi As New SqlConnection("Data Source=WIRAT-KOMP; User Id=uas; Password=123; Initial Catalog=PAYROL_DB;") Dim Query As New SqlCommand("Select * From TABEL_CITY", Koneksi) Dim Reader As SqlDataReader Try Koneksi.Open() Reader = Query.ExecuteReader Dim Data As New DataTable Data.Load(Reader) GridKOTA.DataSource = Data Reader.Close() Catch ex As Exception

Page 46: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 46

MessageBox.Show(ex.ToString) End Try End Sub Private Sub ID_KOTA() Dim rsIDSeksi As ADODB.Recordset Dim strIDSeksi As String rsIDSeksi = New ADODB.Recordset rsIDSeksi = CONN.Execute("Select Max(IDCITY) as IDCITY FROM TABEL_CITY") If Not rsIDSeksi.EOF Then If rsIDSeksi.Fields("IDCITY").Value.ToString <> "" Then strIDSeksi = Format(Val(Microsoft.VisualBasic.Right(rsIDSeksi.Fields("IDCITY").Value.ToString, 2) + 1), "0#") Else strIDSeksi = Format(1, "0#") End If rsIDSeksi.Close() TxtKODEKOTA.Text = strIDSeksi End If End Sub Private Sub FormKOTA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call KONEKSI_DATABASE() Call DATAGRID() TxtNAMAKOTA.CharacterCasing = CharacterCasing.Upper End Sub Private Sub TxtNAMAKOTA_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNAMAKOTA.KeyPress If e.KeyChar = Chr(13) Then BtnKOTA.Focus() End If End Sub End Class

Page 47: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 47

FormPROGRAMMER Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormPROGRAMMER” untuk form aplikasi ini, anda bisa saja mengganti gambarnya pada PictureBox.

FormPEGAWAI Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormPEGAWAI”

Page 48: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 48

Keterangan ToolBox : 7 Button 1 DataGridView 4 TextBox 1 DateTimePicker 1 ComboBox 2 GroupBox 6 Label 7 Button : BtnFIRST, BtnPREVIOUS, BtnNEXT, BtnLAST, BtnADD, BtnEDIT, BtnSAVE, BtnCANCEL, BtnDELETE, BtnREPORT, BtnCLOSE 1 DataGridView : GridPEGAWAI 4 TextBox : TxtNIP, TxtNAMA, TxtALAMAT, TxtKODEPOS 1 DateTimePicker : DtLAHIR 1 ComboBox : CmbKOTA 2 GroupBox : GroupBox Data Employee, GroupBox Button 6 Label : NIP, NAME, BIRTH, CITY, ADDRESS, ZIP CODE Lalu isikan koding berikut : Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class FormPEGAWAI Dim myTabel As CrystalDecisions.CrystalReports.Engine.Table Dim myLogin As CrystalDecisions.Shared.TableLogOnInfo Dim ObjDoc As New ReportDocument Dim ObjCon As New ConnectionInfo Dim ObjLog As New TableLogOnInfo Dim RptPEGAWAI As New RptEMPLOYEE Dim Formula As CrystalDecisions.CrystalReports.Engine.FormulaFieldDefinition

Page 49: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 49

Dim Status As Boolean Dim KodeSeksi As String Private Sub DataComboKOTA() Dim rsKOTA As ADODB.Recordset Dim A As String Dim B As String rsKOTA = New ADODB.Recordset rsKOTA.Open("Select * From TABEL_CITY Order By IDCITY ASC", CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) With rsKOTA CmbKOTA.Items.Clear() Do Until .EOF A = rsKOTA.Fields("IDCITY").Value B = rsKOTA.Fields("NAMACITY").Value CmbKOTA.Items.Add(A & " - " & B) .MoveNext() Loop .MoveLast() End With End Sub Sub Validasi(ByVal Bool As Boolean) With Me .TxtALAMAT.Enabled = Not Bool .TxtKODEPOS.Enabled = Not Bool '.TxtKOTA.Enabled = Not Bool CmbKOTA.Enabled = Not Bool .TxtNAMA.Enabled = Not Bool '.TxtNIP.Enabled = Not Bool .DtLAHIR.Enabled = Not Bool .BtnADD.Enabled = Bool .BtnCANCEL.Enabled = Not Bool .BtnCLOSE.Enabled = Bool .BtnDELETE.Enabled = Bool .BtnEDIT.Enabled = Bool .BtnREPORT.Enabled = Bool .BtnSAVE.Enabled = Not Bool .GridPEGAWAI.Enabled = Bool .BtnFIRST.Enabled = Bool .BtnLAST.Enabled = Bool .BtnNEXT.Enabled = Bool .BtnPREVIOUS.Enabled = Bool End With End Sub Sub TampilkanData()

Page 50: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 50

Call Validasi(True) DT.Clear() Dim KoneksiKu As New AksesData.ClassKONEKSIDATABASE DataAdapter = New SqlDataAdapter("Select * From TABEL_PEGAWAI", KoneksiKu.BukaKoneksi) DS = New DataSet DataAdapter.Fill(DS, "TbPegawai") DT = DS.Tables("TbPegawai") GridPEGAWAI.DataSource = DT TxtNIP.DataBindings.Add("TEXT", DT, "NIP") TxtNAMA.DataBindings.Add("TEXT", DT, "NAMAPEGAWAI") DtLAHIR.DataBindings.Add("VALUE", DT, "TGLLAHIR") TxtALAMAT.DataBindings.Add("TEXT", DT, "ALAMAT") 'TxtKOTA.DataBindings.Add("TEXT", DT, "IDCITY") CmbKOTA.DataBindings.Add("TEXT", DT, "IDCITY") TxtKODEPOS.DataBindings.Add("TEXT", DT, "KODEPOS") End Sub Sub LepasBinding() With Me .TxtALAMAT.DataBindings.Clear() .TxtKODEPOS.DataBindings.Clear() '.TxtKOTA.DataBindings.Clear() .CmbKOTA.DataBindings.Clear() .TxtNAMA.DataBindings.Clear() .TxtNIP.DataBindings.Clear() .DtLAHIR.DataBindings.Clear() End With End Sub Sub KosongkanNilai() With Me .TxtALAMAT.Text = "" .TxtKODEPOS.Text = "" '.TxtKOTA.Text = "" .CmbKOTA.Text = "" .TxtNAMA.Text = "" '.TxtNIP.Text = "" .DtLAHIR.Value = Today.Date End With End Sub Sub CekNIP() DT.Clear() Dim KoneksiKu As New AksesData.ClassKONEKSIDATABASE

Page 51: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 51

Dim CMD As New SqlCommand("Select * From TABEL_PEGAWAI Where NIP ='" & _ TxtNIP.Text & "'", KoneksiKu.BukaKoneksi) DataAdapter = New SqlDataAdapter(CMD) DS = New DataSet DataAdapter.Fill(DS, "CariNIP") DT = DS.Tables("CariNIP") End Sub Private Sub FormPEGAWAI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call KONEKSI_DATABASE() Call TampilkanData() Call DataComboKOTA() TxtKODEPOS.MaxLength = 5 End Sub Private Sub BtnCLOSE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCLOSE.Click Call LepasBinding() Me.Close() End Sub Private Sub Huruf() TxtNAMA.CharacterCasing = CharacterCasing.Upper TxtALAMAT.CharacterCasing = CharacterCasing.Upper End Sub Private Sub BtnADD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnADD.Click Status = True Call Validasi(False) Call LepasBinding() Call KosongkanNilai() Call Huruf() Call ID_PEGAWAI() TxtNAMA.Focus() End Sub Private Sub BtnEDIT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEDIT.Click Status = False Call Validasi(False) Call LepasBinding() Call Huruf()

Page 52: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 52

TxtNIP.Enabled = False TxtNAMA.Focus() End Sub Private Sub BtnSAVE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSAVE.Click Dim MyCommand As New AKSESDATA.ClassMANIPULASIDATA Dim KODEKOTA As String KODEKOTA = Format(Microsoft.VisualBasic.Left(CmbKOTA.Text.ToString, 2)) If Status = True Then Call CekNIP() If DT.Rows.Count <= 0 Then MyCommand.TambahData(TxtNIP.Text, TxtNAMA.Text, DtLAHIR.Value, _ TxtALAMAT.Text, KODEKOTA, TxtKODEPOS.Text) Call TampilkanData() Else MessageBox.Show("DATA HAS BEEN INPUTED," & vbCrLf & _ "PLEASE USE ANOTHER NIP", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Information) End If Else MyCommand.UbahData(TxtNIP.Text, TxtNAMA.Text, DtLAHIR.Value, _ TxtALAMAT.Text, KODEKOTA, TxtKODEPOS.Text) Call TampilkanData() End If End Sub Private Sub BtnCANCEL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCANCEL.Click Call TampilkanData() End Sub Private Sub BtnDELETE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDELETE.Click Dim MyCommand As New AKSESDATA.ClassMANIPULASIDATA MSG = MessageBox.Show("SURE WANT TO DELETE THIS DATA ??", "WIRATMOJO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If MSG = vbYes Then MyCommand.HapusData(TxtNIP.Text) Call LepasBinding() Call TampilkanData() End If

Page 53: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 53

End Sub Private Sub BtnFIRST_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFIRST.Click BindingContext(DT).Position = 0 End Sub Private Sub BtnPREVIOUS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPREVIOUS.Click BindingContext(DT).Position = BindingContext(DT).Position - 1 End Sub Private Sub BtnNEXT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNEXT.Click BindingContext(DT).Position = BindingContext(DT).Position + 1 End Sub Private Sub BtnLAST_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLAST.Click BindingContext(DT).Position = DT.Rows.Count - 1 End Sub Private Sub BtnREPORT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnREPORT.Click Dim Koneksi As New AksesData.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim A As New FormRptPEGAWAI RptPEGAWAI = New RptEMPLOYEE For Each myTable In RptPEGAWAI.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next A.REPORTPEGAWAI.ReportSource = RptPEGAWAI A.REPORTPEGAWAI.RefreshReport() A.ShowDialog() End Sub Private Sub ID_PEGAWAI() Dim rsIDPegawai As ADODB.Recordset Dim StrIDPegawai As String rsIDPegawai = New ADODB.Recordset rsIDPegawai = CONN.Execute("Select Max(NIP) as NIP FROM TABEL_PEGAWAI") If Not rsIDPegawai.EOF Then If rsIDPegawai.Fields("NIP").Value.ToString <> "" Then

Page 54: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 54

StrIDPegawai = Format(Val(Microsoft.VisualBasic.Left(rsIDPegawai.Fields("NIP").Value.ToString, _ 5) + 1), "0####") & "-" & Format(Now, "yyyy") Else StrIDPegawai = Format(1, "0####") & "-" & Format(Now, "yyyy") End If rsIDPegawai.Close() TxtNIP.Text = StrIDPegawai End If End Sub Private Sub TxtNAMA_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNAMA.KeyPress If e.KeyChar = Chr(13) Then DtLAHIR.Focus() End If End Sub Private Sub DtLAHIR_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DtLAHIR.KeyPress If e.KeyChar = Chr(13) Then CmbKOTA.Focus() End If End Sub Private Sub CmbKOTA_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbKOTA.KeyPress If e.KeyChar = Chr(13) Then TxtALAMAT.Focus() End If End Sub Private Sub TxtALAMAT_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtALAMAT.KeyPress If e.KeyChar = Chr(13) Then TxtKODEPOS.Focus() End If End Sub Private Sub TxtKODEPOS_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtKODEPOS.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0) If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End Sub End Class

Page 55: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 55

FormTRANSAKSI Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormTRANSAKSI”

2 GroupBox 26 Label 12 TextBox 4 ComboBox 1 DateTimePicker 2 Button 2 GroupBox : 26 Label : NO PAYROLL, NIP, NAMA PEGAWAI, TGL LAHIR, ALAMAT, KOTA, KODE POS, GAJI BERSIH, GAJI BULAN, JABATAN, GOLONGAN, GAJI, TUNJANGAN, LEMBURAN, JAM, UANG LEMBUR, NPWP, POTONGAN, UANG LEMBUR 30,000/JAM, LblTERBILANGGAJIBERSIH, LblTAHUN, LblTERBILANGGAJI, LblTERBILANGTUNJANGAN, LblTERBILANGLEMBUR, LblTERBILANGPOTONGAN 12 TextBox : TxtNOPAYROLL, TxtNAMAPEGAWAI, TxtKOTA, TxtKODEPOS, TxtGAJIBERSIH, TxtGAJI, TxtTUNJANGAN, TxtLEMBURAN, TxtUANGLEMBUR, TxtNPWP, TxtPOTONGAN 4 ComboBox : CmbNIP, CmbBULAN, CmbJABATAN, CmbGOLONGAN,

Page 56: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 56

1 DateTimePicker : DtLAHIR 2 Button : BtnINPUT, BtnCLOSE Lalu isikan koding sbb : Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class FormTRANSAKSI Inherits System.Windows.Forms.Form Dim rsCARI As ADODB.Recordset Dim rsSIMPAN As ADODB.Recordset Dim TERBILANG As CLASS_TERBILANG = New CLASS_TERBILANG Dim myTabel As CrystalDecisions.CrystalReports.Engine.Table Dim myLogin As CrystalDecisions.Shared.TableLogOnInfo Dim ObjDoc As New ReportDocument Dim ObjCon As New ConnectionInfo Dim ObjLog As New TableLogOnInfo 'Dim RptPAYROLL As New RptPAYROLL Dim RptGAJIAN As New RptSLIPGAJI Dim Formula As CrystalDecisions.CrystalReports.Engine.FormulaFieldDefinition Private Sub CARINIP() Dim cNIP As String rsCARI = New ADODB.Recordset rsCARI.Open("Select Distinct NIP From TABEL_PEGAWAI Order By NIP Asc", CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) With rsCARI CmbNIP.Items.Clear() Do Until .EOF cNIP = rsCARI.Fields("NIP").Value CmbNIP.Items.Add(cNIP) .MoveNext() Loop .MoveFirst() End With End Sub Private Sub BtnCLOSE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCLOSE.Click If BtnINPUT.Text = "&SIMPAN" Then BtnINPUT.Text = "&INPUT"

Page 57: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 57

Call KOSONG() Call KUNCI(False) Else Me.Close() End If End Sub Private Sub BtnINPUT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnINPUT.Click If BtnINPUT.Text = "&INPUT" Then BtnINPUT.Text = "&SIMPAN" Call BUKAKUNCI(True) Call CARINIP() Call PAYROLLNUMBER() CmbNIP.Focus() ElseIf BtnINPUT.Text = "&SIMPAN" Then Call SIMPAN() End If End Sub Private Sub KOSONG() With Me .TxtNOPAYROLL.Text = "" .CmbNIP.Text = "" .TxtNAMAPEGAWAI.Text = "" .DTLahir.Text = Today.Date .TxtALAMAT.Text = "" .TxtKOTA.Text = "" .TxtKODEPOS.Text = "" .CmbBULAN.Text = "" .CmbJABATAN.Text = "" .CmbGOLONGAN.Text = "" .TxtGAJI.Text = "" .TxtTUNJANGAN.Text = "" .TxtLEMBURAN.Text = "" .TxtUANGLEMBUR.Text = "" .TxtNPWP.Text = "" .TxtPOTONGAN.Text = "" .TxtGAJIBERSIH.Text = "" End With End Sub Private Sub KUNCI(ByVal MATI As Boolean) With Me .TxtNOPAYROLL.Enabled = MATI .CmbNIP.Enabled = MATI .TxtNAMAPEGAWAI.Enabled = MATI .DTLahir.Enabled = MATI .TxtALAMAT.Enabled = MATI .TxtKOTA.Enabled = MATI .TxtKODEPOS.Enabled = MATI .CmbBULAN.Enabled = MATI .CmbJABATAN.Enabled = MATI .CmbGOLONGAN.Enabled = MATI .TxtGAJI.Enabled = MATI .TxtTUNJANGAN.Enabled = MATI .TxtLEMBURAN.Enabled = MATI .TxtUANGLEMBUR.Enabled = MATI

Page 58: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 58

.TxtNPWP.Enabled = MATI .TxtPOTONGAN.Enabled = MATI .TxtGAJIBERSIH.Enabled = MATI End With End Sub Private Sub BUKAKUNCI(ByVal NYALA As Boolean) With Me .CmbNIP.Enabled = NYALA .CmbBULAN.Enabled = NYALA .CmbJABATAN.Enabled = NYALA .CmbGOLONGAN.Enabled = NYALA .TxtLEMBURAN.Enabled = NYALA .TxtNPWP.Enabled = NYALA .TxtPOTONGAN.Enabled = NYALA End With End Sub Private Sub FormTRANSAKSI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call KONEKSI_DATABASE() Call KUNCI(False) Call KOSONG() Call DataCOMBO() TxtNPWP.MaxLength = 15 LblTAHUN.Text = Format(Now, "yyyy") End Sub Private Sub CmbNIP_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbNIP.KeyPress If e.KeyChar = Chr(13) Then CmbBULAN.Focus() End If End Sub Private Sub CmbNIP_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbNIP.SelectedIndexChanged rsCARI = New ADODB.Recordset rsCARI.Open("Select * From TABEL_PEGAWAI Where NIP='" & CmbNIP.Text & "'", _ CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) While rsCARI.EOF <> True TxtNAMAPEGAWAI.Text = rsCARI.Fields("NAMAPEGAWAI").Value DTLahir.Text = rsCARI.Fields("TGLLAHIR").Value TxtALAMAT.Text = rsCARI.Fields("ALAMAT").Value TxtKOTA.Text = rsCARI.Fields("IDCITY").Value TxtKODEPOS.Text = rsCARI.Fields("KODEPOS").Value rsCARI.MoveNext() End While End Sub Private Sub DataCOMBO() With CmbJABATAN

Page 59: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 59

.Items.Clear() .Items.Add("MANAGER") .Items.Add("SUPERVISOR") .Items.Add("STAFF") End With With CmbBULAN .Items.Clear() .Items.Add("JANUARI") .Items.Add("FEBRUARI") .Items.Add("MARET") .Items.Add("APRIL") .Items.Add("MEI") .Items.Add("JUNI") .Items.Add("JULI") .Items.Add("AGUSTUS") .Items.Add("SEPTEMBER") .Items.Add("OKTOBER") .Items.Add("NOVEMBER") .Items.Add("DESEMBER") End With End Sub Private Sub CmbGOLONGAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbGOLONGAN.KeyPress If e.KeyChar = Chr(13) Then TxtLEMBURAN.Focus() End If End Sub Private Sub TxtGAJI_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtGAJI.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0) If e.KeyChar = Chr(13) Then TxtTUNJANGAN.Focus() TxtGAJI.Text = Format(TxtGAJI.Text, "#,#") Else If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End If End Sub Private Sub CmbJABATAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbJABATAN.KeyPress If e.KeyChar = Chr(13) Then CmbGOLONGAN.Focus() End If

Page 60: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 60

End Sub Private Sub TxtTUNJANGAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtTUNJANGAN.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0) If e.KeyChar = Chr(13) Then TxtLEMBURAN.Focus() TxtTUNJANGAN.Text = Format(TxtTUNJANGAN.Text, "#,#") Else If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End If End Sub Private Sub TxtLEMBURAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtLEMBURAN.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0) If e.KeyChar = Chr(13) Then Dim UANGLEMBUR As String UANGLEMBUR = TxtLEMBURAN.Text * 30000 TxtUANGLEMBUR.Text = UANGLEMBUR TxtNPWP.Focus() Else If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End If End Sub Private Sub TxtNPWP_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNPWP.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0)

Page 61: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 61

If e.KeyChar = Chr(13) Then TxtPOTONGAN.Focus() Else If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End If End Sub Private Sub SIMPAN() Dim TANYA As Integer TANYA = MsgBox("SURE TO SAVE DATA??", MsgBoxStyle.Question, "WIRATMOJO") If TANYA = 7 Then Exit Sub Else rsSIMPAN = New ADODB.Recordset rsSIMPAN.Open("Select * From TABEL_UAS", CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) rsSIMPAN.AddNew() rsSIMPAN.Fields(0).Value = TxtNOPAYROLL.Text rsSIMPAN.Fields(1).Value = IdUser 'Deklarasi ModulUmum Field dari TabelLogin rsSIMPAN.Fields(2).Value = CmbNIP.Text rsSIMPAN.Fields(3).Value = TxtNPWP.Text rsSIMPAN.Fields(4).Value = CmbBULAN.Text rsSIMPAN.Fields(5).Value = CmbJABATAN.Text rsSIMPAN.Fields(6).Value = CmbGOLONGAN.Text rsSIMPAN.Fields(7).Value = TxtGAJI.Text rsSIMPAN.Fields(8).Value = TxtTUNJANGAN.Text rsSIMPAN.Fields(9).Value = TxtPOTONGAN.Text rsSIMPAN.Fields(10).Value = TxtLEMBURAN.Text rsSIMPAN.Fields(11).Value = TxtUANGLEMBUR.Text rsSIMPAN.Fields(12).Value = TxtGAJIBERSIH.Text rsSIMPAN.Fields(13).Value = LblTAHUN.Text rsSIMPAN.Update() MessageBox.Show("DATA TERSIMPAN !!!", "WIRATMOJO", MessageBoxButtons.OK, MessageBoxIcon.Information) Dim Koneksi As New AKSESDATA.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim F As New FormRptPAYROLL 'RptPAYROLL = New RptPAYROLL RptGAJIAN = New RptSLIPGAJI

Page 62: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 62

For Each myTable In RptGAJIAN.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next F.ReportViewPAYROLL.SelectionFormula = "{TABEL_UAS.NOPAYROLL}='" + TxtNOPAYROLL.Text + "'" F.ReportViewPAYROLL.ReportSource = RptGAJIAN F.ReportViewPAYROLL.RefreshReport() F.ShowDialog() Call KUNCI(False) Call KOSONG() BtnINPUT.Text = "&INPUT" End If End Sub Private Sub TxtPOTONGAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPOTONGAN.KeyPress 'SUPAYA PADA TxtANGKA HANYA BISA DI INPUT ANGKA (1234567890) SAJA Dim INPUT_ANGKA As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0) If e.KeyChar = Chr(13) Then BtnINPUT.Focus() Dim GAJIBERSIH As String GAJIBERSIH = (Val(TxtGAJI.Text) + Val(TxtTUNJANGAN.Text) + Val(TxtUANGLEMBUR.Text) - Val(TxtPOTONGAN.Text)) TxtGAJIBERSIH.Text = GAJIBERSIH Else If Not (((INPUT_ANGKA >= 48) And (INPUT_ANGKA <= 57)) Or (INPUT_ANGKA = 8)) Then e.Handled = True 'JADI KALO TEKAN KEYBOARD BUKAN ANGKA PC BUNYI (TUNG!!) Beep() End If End If End Sub Private Sub CmbJABATAN_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbJABATAN.SelectedIndexChanged If CmbJABATAN.Text = "MANAGER" Then CmbGOLONGAN.Items.Clear()

Page 63: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 63

CmbGOLONGAN.Items.Add("S1") CmbGOLONGAN.Items.Add("S2") ElseIf CmbJABATAN.Text = "SUPERVISOR" Then CmbGOLONGAN.Items.Clear() CmbGOLONGAN.Items.Add("M1") CmbGOLONGAN.Items.Add("M2") ElseIf CmbJABATAN.Text = "STAFF" Then CmbGOLONGAN.Items.Clear() CmbGOLONGAN.Items.Add("J1") CmbGOLONGAN.Items.Add("J2") End If End Sub Private Sub CmbGOLONGAN_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbGOLONGAN.SelectedIndexChanged If CmbGOLONGAN.Text = "S1" Then TxtGAJI.Text = "18000000" TxtTUNJANGAN.Text = "700000" ElseIf CmbGOLONGAN.Text = "S2" Then TxtGAJI.Text = "16000000" TxtTUNJANGAN.Text = "600000" ElseIf CmbGOLONGAN.Text = "M1" Then TxtGAJI.Text = "9000000" TxtTUNJANGAN.Text = "400000" ElseIf CmbGOLONGAN.Text = "M2" Then TxtGAJI.Text = "7000000" TxtTUNJANGAN.Text = "300000" ElseIf CmbGOLONGAN.Text = "J1" Then TxtGAJI.Text = "5000000" TxtTUNJANGAN.Text = "500000" ElseIf CmbGOLONGAN.Text = "J2" Then TxtGAJI.Text = "4000000" TxtTUNJANGAN.Text = "200000" End If End Sub Private Sub TxtGAJI_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtGAJI.TextChanged If TxtGAJI.Text <> "" Then LblTERBILANGGAJI.Text = TERBILANG.ANGKA_TERBILANG(TxtGAJI.Text) + " RUPIAH" Else LblTERBILANGGAJI.Text = "TERBILANG GAJI" End If End Sub Private Sub TxtTUNJANGAN_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtTUNJANGAN.TextChanged If TxtTUNJANGAN.Text <> "" Then LblTERBILANGTUNJANGAN.Text = TERBILANG.ANGKA_TERBILANG(TxtTUNJANGAN.Text) + " RUPIAH" Else LblTERBILANGTUNJANGAN.Text = "TERBILANG TUNJANGAN" End If End Sub

Page 64: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 64

Private Sub TxtUANGLEMBUR_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtUANGLEMBUR.TextChanged If TxtUANGLEMBUR.Text <> "" Then LblTERBILANGLEMBUR.Text = TERBILANG.ANGKA_TERBILANG(TxtUANGLEMBUR.Text) + " RUPIAH" Else LblTERBILANGLEMBUR.Text = "TERBILANG LEMBUR" End If End Sub Private Sub TxtPOTONGAN_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtPOTONGAN.TextChanged If TxtPOTONGAN.Text <> "" Then LblTERBILANGPOTONGAN.Text = TERBILANG.ANGKA_TERBILANG(TxtPOTONGAN.Text) + " RUPIAH" Else LblTERBILANGPOTONGAN.Text = "TERBILANG POTONGAN" End If End Sub Private Sub TxtGAJIBERSIH_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtGAJIBERSIH.TextChanged If TxtGAJIBERSIH.Text <> "" Then LblTERBILANGGAJIBERSIH.Text = TERBILANG.ANGKA_TERBILANG(TxtGAJIBERSIH.Text) + " RUPIAH" Else LblTERBILANGGAJIBERSIH.Text = "TERBILANG GAJIBERSIH" End If End Sub Private Sub CmbBULAN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbBULAN.KeyPress If e.KeyChar = Chr(13) Then CmbJABATAN.Focus() End If End Sub Private Sub PAYROLLNUMBER() Dim rsIDPayroll As ADODB.Recordset Dim strIDPayroll As String rsIDPayroll = New ADODB.Recordset 'rsIDPayroll = CONN.Execute("Select Max(NOPAYROLL) as NOPAYROLL FROM TABEL_PAYROLL") rsIDPayroll = CONN.Execute("Select Max(NOPAYROLL) as NOPAYROLL FROM TABEL_UAS") If Not rsIDPayroll.EOF Then If rsIDPayroll.Fields("NOPAYROLL").Value.ToString <> "" Then strIDPayroll = Format(Val(Microsoft.VisualBasic.Right(rsIDPayroll.Fields("NOPAYROLL").Value.ToString, 7) + 1), "0######") Else strIDPayroll = Format(1, "0######") End If rsIDPayroll.Close() TxtNOPAYROLL.Text = strIDPayroll

Page 65: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 65

End If End Sub End Class FormSLIPGAJI Tambahkan sebuah form dengan klik kanan folder “APPLICATION FORM” pilih “Windows form”, dan beri nama form tersebut dengan “FormSLIPGAJI”

Keterangan ToolBox : 3 ComboBox 1 Button

3 ComboBox : CmbNIP, CmbGAJIBULAN, CmbTAHUN 1 Button : BtnCETAKSLIP Lalu isikan koding berikut : Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class FormSLIPGAJI_UAS Dim myTabel As CrystalDecisions.CrystalReports.Engine.Table Dim myLogin As CrystalDecisions.Shared.TableLogOnInfo Dim ObjDoc As New ReportDocument Dim ObjCon As New ConnectionInfo Dim ObjLog As New TableLogOnInfo

Page 66: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 66

Dim Formula As CrystalDecisions.CrystalReports.Engine.FormulaFieldDefinition Dim rsCARI As ADODB.Recordset Dim RptGAJIAN As New RptSLIPGAJI Private Sub IsiComboBox() With CmbGAJIBULAN .Items.Clear() .Items.Add("JANUARI") .Items.Add("FEBRUARI") .Items.Add("MARET") .Items.Add("APRIL") .Items.Add("MEI") .Items.Add("JUNI") .Items.Add("JULI") .Items.Add("AGUSTUS") .Items.Add("SEPTEMBER") .Items.Add("OKTOBER") .Items.Add("NOVEMBER") .Items.Add("DESEMBER") End With With CmbTAHUN .Items.Clear() .Items.Add("2011") .Items.Add("2012") .Items.Add("2013") End With End Sub Private Sub CARINIP() Dim cNIP As String rsCARI = New ADODB.Recordset rsCARI.Open("Select Distinct NIP From TABEL_PEGAWAI Order By NIP Asc", CONN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) With rsCARI CmbNIP.Items.Clear() Do Until .EOF cNIP = rsCARI.Fields("NIP").Value CmbNIP.Items.Add(cNIP) .MoveNext() Loop .MoveFirst() End With End Sub Private Sub FormSLIPGAJI_UAS_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call KONEKSI_DATABASE() Call CARINIP() Call IsiComboBox()

Page 67: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 67

End Sub Private Sub BtnCETAKSLIP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCETAKSLIP.Click Dim Koneksi As New AKSESDATA.ClassKONEKSIDATABASE() Koneksi.BukaKoneksi() Dim F As New FormRptPAYROLL RptGAJIAN = New RptSLIPGAJI For Each myTable In RptGAJIAN.Database.Tables myLogin = myTable.LogOnInfo myLogin.ConnectionInfo.UserID = "uas" myLogin.ConnectionInfo.Password = "123" myLogin.ConnectionInfo.ServerName = "Localhost" myLogin.ConnectionInfo.DatabaseName = "PAYROL_DB" myTable.ApplyLogOnInfo(myLogin) Next F.ReportViewPAYROLL.SelectionFormula = "{TABEL_UAS.NIP}='" + CmbNIP.Text + "' And {TABEL_UAS.GAJIBULAN}='" + CmbGAJIBULAN.Text + "' And {TABEL_UAS.TAHUN}='" + CmbTAHUN.Text + "'" F.ReportViewPAYROLL.ReportSource = RptGAJIAN F.ReportViewPAYROLL.RefreshReport() F.ShowDialog() End Sub End Class

Page 68: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 68

Membuat REPORT Kita hampir tiba di penghujung pembuatan aplikasi PAYROLL, yaitu pembuatan report. Tambahkan sebuah report dengan klik kanan pada folder “REPORT” New Item Reporting Crystal Report beri nama RptDATAUSER

Page 69: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 69

Page 70: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 70

Pilih TABEL_LOGIN, karena memang data dari table tersebut yang akan ditampilkan

Page 71: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 71

Pilih field mana saja yang akan ditampilkan pada Report tersebut. Berikutnya pada sesi “Grouping” dan “Record Selection” lewatkan saja karena belum akan dipakai. Dan pada sesi “Report Style” Lalu settinglah layout Report anda sbb :

Page 72: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 72

Sehingga bila di running reportnya sbb :

Lakukanlah hal yang sama untuk menbuat Report lainnya (RptDATACITY, RptEMPLOYEE) namun khusus pada RptSlip Gaji tambahkan sesi “Grouping” pada pembuatan Reportnya dengan Field “NOPAYROLL”. Dan setting reportnya sbb :

Page 73: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 73

Sehingga layout reportnya sbb :

Lalu buatlah form untuk menampilkan report-report tersebut. Dengan hanya menambahkan CrystalReportViewer pada masing-masing form tersebut. Buatlah 4 Form Viewer Report (FormRptDATAUSER, FormRptCITY, FormRptPEGAWAI, FormRptPAYROLL).

Page 74: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 74

FormRptDATAUSER beri nama CrystalReportViewer ReportDATAUSER FormRptCITY beri nama CrystalReportViewer RptViewerCITY FormRptPEGAWAI beri nama CrystalReportViewer REPORTPEGAWAI FormRptPAYROLL beri nama CrystalReportViewer ReportViewPAYROLL Membuat Setup Aplikasi PAYROLL File Add New Project

Page 75: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 75

Isikan data dengan benar sbb : Projec t types Other Project Types Setup and Deployment Nama Setup Setup PAYROLL-SYSTEM 2011 Setup yang telah kita create tersebut akan tampil dibawah project dan database yang telah kita rapikan sebelumnya. Klik kanan pada Setup PAYROLL-SYSTEM 2011 Properties Prerequisites

Page 76: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 76

Choose which prerequisites to install .NET Framework 2.0 (x86) Windows Installer 3.1 .NET Framework 3.0 (x86) .NET Framework 3.5 Crystal Reports Basic for Visual Studio 2008 (x68, x64 Microsoft Visual Studio 2008 Report Viewer

Lalu pilih Download prerequisites from the same location as my application OK Langkah selajutnya adalah memastikan seluruh aplikasi sudah berjalan dengan lancar tanpa masalah dan juga sesuai denga algoritma yang di inginkan dengan menjadi “FormSPLASH” yang pertama kali di run dari sistem aplikasi ini.

Page 77: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 77

User’s Programs Menu klik kanan Add Tab Browse File .exe aplikasi, cari dalam folder “bin” sistem aplikasi PAYROLL anda

Lakukan hal yang sama pada folder “Application Folder” dengan menambahkan sebuah file “.ico” untuk dijadikan icon aplikasi. Juga jangan lupa buatlah “Shortcut” dengan setting propertiesnya menggunakan icon tersebut. Dan kemudian “Cut” Shortcut tersebut dan dipindahkan ke dalam folder “User’s Desktop” Dan langkah terakhir adalah BUILD file Setup ini

Page 78: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 78

Pastikan pesan Building setup Succeeded yang tertera pada pojok kiri bawah

WELL DONE GOOD JOB MISSION COMPLETED !!!

Page 79: Payroll system

Step By Step Build Payroll System 2011 By B.Wiratmojo – STMIK Bina Insani 79

PAYROLL SYSTEM 2011 Materi UAS Visual Basic.NET

B.Wiratmojo Kuliah D3nya diselesaikan pada tahun 2008 lalu di Kampus STMIK Bina Insani, Jurusan Teknik Informatika dan kemudian kembali melanjutkan Program Strata 1 pada tahun 2011 ditempat dan jurusan yang sama. Bekerja di PT Bridgestone Tire Indonesia sejak 2008. Bercita-cita dapat selalu mendedikasikan dirinya dalam bidang IT Indonesia dan Dunia. [email protected] or [email protected]

bambangwiratmojo.blogspot.com