• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI SISTEM

4.3.5 Sistem Interface

4.3.5.2 Input

4.3.5.2.4 Form Daftar Pegawai

Gambar 4.23 Form Daftar Pegawai

Form Daftar Pegawai digunakan oleh bagian personalia untuk mendaftar

data pribadi dan data sidik jari pegawai. Berikut adalah listing program yang

digunakan untuk mendaftar data pribadi pegawai :

Private Sub CmdSave1_Click()

ID_Peg = txtID.Text

NIP = txtNIP.Text

Nama = txtNama.Text

Departemen = ComboDepartemen.Text

Gol = txtGolongan.Text

Jabatan = txtJabatan.Text

Alamat = txtAlamat.Text

tgl = Day(DTPAwalKerja)

bln = Month(DTPAwalKerja)

thn = Year(DTPAwalKerja)

AwalKerja = Trim$(Str$(thn)) + "-" + Trim$(Str$(bln)) + "-" +

Trim$(Str$(tgl))

NIP_Pegawai like '" & NIP & "' ", Koneksi

If Not RecordPegawai_SudahAda.EOF Then

Pesan_NIP_SudahAda = MsgBox("NIP Pegawai " & NIP & " sudah

terdaftar dengan nama " & RecordPegawai_SudahAda!Nama_Pegawai,

vbOKOnly, "Sudah Terdaftar")

txtNIP.Text = ""

txtNIP.SetFocus

RecordPegawai_SudahAda.Close

Exit Sub

ElseIf (txtNama.Text = "") Or (txtNIP.Text = "") Or

(ComboDepartemen.Text = "Pilih Departemen...") Or

(ComboDepartemen.Text = "") Or (txtGolongan.Text = "") Or

(txtJabatan.Text = "") Or (DTPAwalKerja.Value = "") Or

(txtAlamat.Text = "") Then

PesanKosong = MsgBox("Maaf Anda Harus Mengisikan Data Pegawai

Terlebih Dahulu Dengan Lengkap", vbCritical, "Peringatan")

Clear_FormDaftar

txtNama.SetFocus

RecordPegawai_SudahAda.Close

Exit Sub

Else

sqlString = " SELECT ID_Personalia from bagianpersonalia where

ID_Personalia = " & ID_Per & " "

RecordIDLogin.Open sqlString, Koneksi

Id = RecordIDLogin!ID_Personalia

sqlQueryIDBagianPersonalia = " SELECT ID_Personalia from

bagianpersonalia where ID_Personalia =" & Id & " "

RecordIDPersonalia.Open sqlQueryIDBagianPersonalia, Koneksi

ID_Personalia = RecordIDPersonalia!ID_Personalia

sqlQueryID = " SELECT ID_Departemen from departemen where

Nama_Departemen ='" & ComboDepartemen & "' "

RecordDep.Open sqlQueryID, Koneksi

ID_Dep = RecordDep!ID_Departemen

'--Melaksanakan stored procedured Tambah_Pegawai untuk menyimpan

pegawai

Koneksi.Execute "call Tambah_Pegawai('" & ID_Peg & "'," &

ID_Personalia & ", " & ID_Dep & ",'" & txtNIP & "', '" & txtNama &

"','" & txtAlamat & "','" & txtJabatan & "', '" & txtGolongan &

"','" & AwalKerja & "')"

FrameDaftar2.Enabled = True

CmdSave1.Enabled = False

RecordIDLogin.Close

RecordIDPersonalia.Close

RecordDep.Close

RecordPegawai_SudahAda.Close

CmdRun1.SetFocus

End If

End Sub

Berikut adalah Stored Procedure Tambah_Pegawai() yang digunakan

untuk menambah data pribadi pegawai :

DELIMITER $$;

DROP PROCEDURE IF EXISTS `fingerprint`.`Tambah_Pegawai`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `Tambah_Pegawai`(

pID_Pegawai varchar(5),

pBagianPersonalia_ID_Personalia int(10),

pDepartemen_ID_Departemen int(10),

pNIP_Pegawai varchar(10),

pNama_Pegawai varchar(45),

pAlamat_Pegawai varchar(45),

pJabatan_Pegawai varchar(45),

pGol_Pegawai varchar(20),

pAwal_Kerja date)

BEGIN

insert into pegawai

values( pID_Pegawai,

pBagianPersonalia_ID_Personalia ,

pDepartemen_ID_Departemen ,

pNIP_Pegawai ,

pNama_Pegawai ,

pAlamat_Pegawai ,

pJabatan_Pegawai,

pGol_Pegawai,

pAwal_Kerja,null,null,null,null);

END$$

DELIMITER ;$$

Yang pertama kali dilakukan bagian personalia untuk mendaftar sidik jari

adalah menjalankan procedure run pada program dengan mengklik tombol Run.

Berikut adalah listing programnya:

Private Sub CmdRun1_Click()

Dim i As Integer

cursample = 0

For i = 0 To 3

picSidikJari(i).Picture = Nothing

dot(i).Visible = False

Next i

dot(cursample).Visible = True

op.Run

lblPesanDaftarSidikJari.Caption = "Letakkan Sidik Jari

Anda di Atas Sensor"

lblIDSidikJari2.Caption = ""

lblEvents2.Caption = ""

lblSidikJariTelunjukKanan.Visible = True

CmdCancel.Enabled = True

CmdSave2.Enabled = True

CmdSave2.SetFocus

End Sub

Setelah procedure run dijalankan, alat fingerprint siap untuk digunakan.

Pada label Events akan terdapat pernyataan "Alat Tersambung" jika koneksi alat

berhasil. Setelah itu pegawai akan meletakkan sidik jarinya diatas sensor

fingerprint dan masing-masing sidik jari akan didaftar sebanyak 4 kali dan

masing-masing disertai dengan penanda berbentuk lingkaran berwarna merah

yang menunjukkan bahwa sidik jari sudah bisa didaftar untuk kedua kalinya.

Contohnya:

Jika seorang pegawai ingin mendaftar sidik jari telunjuk kanan, sidik jari

tengah kanan, sidik jari telunjuk kiri dan sidik jari tengah kiri maka pegawai akan

memasukkan sidik jari telunjuk kanan lebih dahulu, sesuai dengan urutan dari

program. Bagian personalia akan mengklik tombol run. Kemudian pegawai akan

memasukkan sidik jari telunjuk kanan. Jika sidik jari tertangkap dengan jelas oleh

alat maka lingkaran merah akan berpindah dari picSidikJari1 ke picSidikJari2,

begitu seterusnya. Setelah sampai pada picSidikJari4 maka bagian personalia bisa

langsung mengklik tombol Save. Proses tersebut dilakukan untuk satu sidik jari.

Untuk sidik jari lainnya maka lakukan proses yang sama.

Untuk setiap sidik jari yang sudah didaftar sebanyak 4 kali, pada label

Kualitas akan terdapat pernyataan “Good” untuk kualitas yang baik. Dan masih

ada beberapa pernyataan lainnya untuk kualitas yang berbeda. Dapat dilihat pada

listing program berikut ini :

Private Sub op_SampleQuality(ByVal Quality As

DpSdkEngLib.AISampleQuality)

Select Case Quality

Case AISampleQuality.Sq_Good

lblKualitas2.Caption = "Good"

cursample = cursample + 1

dot(cursample - 1).Visible = False

If cursample <> 4 Then

dot(cursample).Visible = True

End If

Case AISampleQuality.Sq_LowContrast

lblKualitas2.Caption = "Low contrast"

Case AISampleQuality.Sq_NoCentralRegion

lblKualitas2.Caption = "No central region"

Case AISampleQuality.Sq_None

lblKualitas2.Caption = "No quality info"

Case AISampleQuality.Sq_NotEnoughFtr

lblKualitas2.Caption = "Not enough

features"

Case AISampleQuality.Sq_TooDark

lblKualitas2.Caption = "Too dark"

Case AISampleQuality.Sq_TooLight

lblKualitas2.Caption = "Too light"

Case AISampleQuality.Sq_TooNoisy

lblKualitas2.Caption = "Too noisy"

End Select

lblEvents2.Caption = "Sample quality"

End Sub

Dari 4 kali pendaftaran untuk masing-masing sidik jari, akan dipilih

kualitas yang terbaik. Berikut adalah listing program yang digunakan untuk

mendaftar salah satu sidik jari pegawai :

Private Sub CmdSave2_Click()

Dim conn As ADODB.Connection

Set conn = New ADODB.Connection

conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _

& "SERVER=127.0.0.1;" _

& "DATABASE=fingerprint;" _

& "UID=root;" _

& "PWD=;" _

& "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384

conn.CursorLocation = adUseClient

conn.Open

On Error Resume Next

Dim blob() As Byte

Dim bvariant As Variant

ID_SidikJari = lblIDSidikJari2.Caption

If Len(ID_SidikJari) > 0 Then

If regtemplate Is Nothing Then

Exit Sub

End If

regtemplate.Export bvariant

blob = bvariant

'MsgBox blob

Query_SidikJari1 = "Select * From pegawai where NIP_Pegawai =

'" & NIP & "' "

rsCek_SidikJari1.Open Query_SidikJari1, conn, adOpenStatic,

adLockPessimistic

rsCek_SidikJari1!Sidik_Jari1 = blob

rsCek_SidikJari1.Update

Kill rsCek_SidikJari1!Sidik_Jari1

Open rsCek_SidikJari1!Sidik_Jari1 For Binary As #1

Put #1, , blob

Close #1

QuerySidikJariDaftar1 = "SELECT Sidik_Jari1 from pegawai where

ID_Pegawai='" & txtID & "' "

rsSidikJariDaftar1.Open QuerySidikJariDaftar1, Koneksi

If Not rsSidikJariDaftar1.EOF Then

CmdRun1.Enabled = False

CmdRun1.Visible = False

CmdRun2.Visible = True

CmdRun2.Enabled = True

CmdRun2.Left = 240

CmdRun2.Top = 3840

CmdRun2.SetFocus

Else

CmdRun1.SetFocus

End If

lblSidikJariTelunjukKanan.Visible = False

lblSidikJariTengahKanan.Visible = True

rsCek_SidikJari1.Close

rsSidikJariDaftar1.Close

conn.Close

End If

End Sub

Dokumen terkait