Wiruss PDF
Wiruss PDF
SKRIPSI
Diajukan kepada Fakultas Sains dan Teknologi
Universitas Islam Negeri Sunan Kalijaga Yogyakarta
Untuk Memenuhi Sebagian Syarat Memperoleh Gelar Sarjana
Strata Satu Teknik Informatika
Disusun oleh:
Ariyanto
NIM: 07650062
Dengan Kesanggupannya”
(Q.S.Al-Baqarah : 286)
v
HALAMAN PERSEMBAHAN
ALMAMETER TERCINTA
vi
KATA PENGANTAR
Dengan menyebut nama Allah Yang Maha Pengasih lagi Maha Penyayang,
Puji syukur hanya bagi Allah SWT, yang telah memberikan hidayah dan rahmat-
Nya, sehingga penyusun dapat menyelesaikan skripsi ini. Shalawat serta salam
semoga selalu tercurahkan kepada Rosululloh jujungan kita Nabi Muhammad saw,
Dalam Penyusunan skripsi ini tidak terlepas dari bantuan, petunjuk serta bimbingan
dari berbagai pihak. Oleh karena itu, pada kesempatan ini penyusun ingin
Kalijaga Yogyakarta.
Teknik Informatika.
vii
6. Para dosen Teknik Informatika yang telah memberi bekal ilmu
perkuliahan.
saya. Kasih sayang dan dukungan baik moril maupun materil kepada
Rahmat, Rudi, Diana, Qofa, Ovik, Yuni, Iik, Arib, Kak Takesi, Kak
Aziz, Mas Nugroho, Pak Surya Purba, SH, Pak Syahbenol, dan
semuanya yang tidak bisa saya sebutkan satu per satu, dari teman
438.
viii
Penyusun menyadari sekali bahwa dalam penyusunan ini terdapat banyak
kekurangan dalam penyusunan skripsi ini. Oleh karena itu segala saran dan kritik
Ariyanto
NIM. 07650062
ix
DAFTAR ISI
HALAMAN JUDUL.......................................................................................... i
MOTTO.............................................................................................................. v
HALAMAN PERSEMBAHAN......................................................................... vi
x
1.6 Keaslian Penelitian ........................................................................... 4
………………………………………………………… 8
xi
3.2.4 Evaluasi Protoptyping ....................................................... 22
xii
4.5.3 Rancangan Halaman Utama .............................................. 43
xiii
4.5.25 Rancangan Laporan Karyawan Terbaik .......................... 55
xiv
5.4.15 Implementasi Form Input Pamella .................................. 75
6.2 Saran................................................................................................. 89
LAMPIRAN ...................................................................................................... 91
xv
DAFTAR TABEL
xvi
DAFTAR GAMBAR
xvii
Gambar 4.10 Rancangan ERD (Entity Relationship Diagram) ......................... 36
............................................................................................................................ 48
Gambar 4.25 Rancangan Form Input Data Kriteria dan Bobot ......................... 51
Gambar 4.26 Rancangan Form Edit Data Kriteria dan Bobot ........................... 52
xviii
Gambar 4.32 Rancangan Halaman Perkalian Matriks dan Bobot...................... 54
Gambar 5.4 Pesan Delphi Ketika Username dan Password Salah ................... 60
xix
Gambar 5.19 Tampilan Form Edit Kriteria dan Bobot ...................................... 75
xx
DAFTAR LAMPIRAN
xxi
SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN
Ariyanto, 07650062
ABSTRAK
xxii
DECISION SUPPORT SYSTEM THE BEST SELECTION
Ariyanto, 07650062
ABSTRACT
xxiii
BAB I
PENDAHULUAN
baik.
maupun usaha-usaha lain yang dirintis. Dan dengan adanya Pamella group
1
2
terbaik.
manager SDM;
karyawan terbaik.
MySQL yang berfungsi tempat penyimpanan data – data yang digunakan dalam
aplikasi.
digunakan dalam penelitian ini adalah MySQL dan menggunakan Delphi 7 dalam
maupun XP.
basis data yang mudah digunakan bersama Delphi dan gratis. Dari hasil pemetaan
ER-Diagram, didapatkan sembilan buah tabel yaitu tabel login, tabel karyawan
masuk, tabel karyawan keluar, tabel kriteria, tabel pamella, tabel astek, tabel nilai,
57
58
koneksi dengan Delphi perlu menggunakan beberapa tools, dalam hal ini kami
• Database : pamella
• HostName : localhost
• Protocol : mysql
• Password :-
• Protocol : mysql
• User : root
telah dibuat.
menampilkan form login yang harus diisi oleh pengguna ke dalam sistem. Untuk
membuka halaman ini pengguna dapat menjalankan Pamella.exe pada file yang
59
halaman depan windows, sehingga muncul halaman login seperti gambar 5.1.
pengguna menekan tombol login dan user belum mengisi username atau
password maka sistem akan menampilkan pesan yang meminta user untuk
field yang terdapat pada tabel login maka program akan menampilkan pesan
Sebaliknya jika data username dan password sesuai dengan field yang
terdapat pada tabel login, maka akan menampilkan halaman home yang berisi
menu-menu yang dapat diakses oleh pengguna tersebut seperti pada gambar 5.5.
Kode sumber (source code) proses autentikasi login user dapat dilihat
pada lampiran A.
yang akan ditampilkan diambil dari tabel tblpegawai dengan perintah berikut :
masuk, hapus dan cari. Untuk melakukan pencarian data karyawan masuk dapat
masuk diimplementasikan oleh dua file pas, yaitu file Unit9.pas dan Unit7.pas.
Kode sumber (source code) proses penginputan karyawan masuk dapat dilihat
pada lampiran B.
menekan tombol tambah pada halaman ini. Jika data karyawan masuk sudah
data karyawan masuk, dan tombol hapus yang berfungsi untuk menghapus data
karyawan masuk. Dan tombol refresh pada halaman ini digunakan untuk
62
menrefresh data yang ada pada tabel, serta tombol print untuk mencetak data yang
berikut :
keluar, hapus dan cari. Untuk melakukan pencarian data karyawan keluar dapat
keluar diimplementasikan oleh dua file pas, yaitu file Unit13.pas dan Unit14.pas.
Kode sumber (source code) proses penginputan karyawan keluar dapat dilihat
pada lampiran C.
menekan tombol tambah pada halaman ini. Jika data karyawan keluar sudah
data karyawan keluar, dan tombol hapus yang berfungsi untuk menghapus data
karyawan keluar. Dan tombol refresh pada halaman ini digunakan untuk
menrefresh data yang ada pada tabel, serta tombol print untuk mencetak data yang
Data yang akan ditampilkan diambil dari tabel tblkriteria dengan perintah berikut:
Halaman ini memiliki fasilitas tambah kriteria dan bobot, edit kriteria dan
bobot dan hapus. Proses penginputan kriteria dan bobot diimplementasikan oleh
dua file pas, yaitu file Unit10.pas dan Unit11.pas. Kode sumber (source code)
proses penginputan data kriteria dan bobot dapat dilihat pada lampiran D.
tombol tambah pada halaman ini. Jika data kriteria dan bobot sudah diinputkan,
pemakai tinggal menekan tombol edit untuk melakukan perubahan data kriteria
dan bobot, dan tombol hapus yang berfungsi untuk menghapus data kriteria dan
bobot.
yang akan ditampilkan diambil dari tabel tblpamella dengan perintah berikut:
Halaman ini memiliki fasilitas tambah, edit dan hapus. Proses penginputan
pamella diimplementasikan oleh dua file pas, yaitu file Unittmbhpamella.pas dan
tambah pada halaman ini. Jika data pamella sudah diinputkan, pemakai tinggal
menekan tombol edit untuk melakukan perubahan data pamella, dan tombol hapus
Data yang akan ditampilkan diambil dari tabel tblastek dengan perintah berikut:
Halaman ini memiliki fasilitas tambah, edit dan hapus. Proses penginputan
tombol tambah pada halaman ini. Jika data asuransi karyawan sudah diinputkan,
pemakai tinggal menekan tombol edit untuk melakukan perubahan data asuransi
karyawan, dan tombol hapus yang berfungsi untuk menghapus data asuransi
karyawan.
Unit4.pas. Halaman ini memiliki fasilitas tambah, hitung, simpan, batal dan
keluar. Kode sumber (source code) proses penilaian karyawan dapat dilihat pada
lampiran G.
menambahkan penilaian terhadap salah satu karyawan di pamella maka user dapat
melakukan dengan menekan tombol tambah pada halaman ini. Setelah itu, pilih
nama karyawan yang akan dinilai pada combobox yang tersedia, dan masukan
nilai – nilai karyawan sesuai dengan baris kriteria. Tekan tombol hitung untuk
melihat skor rata-rata dan skor karyawan. Apabila data itu ingin disimpan oleh
user maka tekan tombol simpan untuk menyimpan, bila tidak tekan tombol untuk
(SAW)
reset, hitung, matriks normalisasi, bobot dan perangkingan. Kode sumber (source
68
code) proses perhitungan simple additive weighting (SAW) dapat dilihat pada
lampiran H.
bulan mana yang akan ditampilkan, dan memilih combobox tahun untuk memilih
karyawan pamella pada tahun berapa yang akan ditampilkan pada proses
pemilihan pemilihan karyawan terbaik. Setelah itu, tekan tombol tampil untuk
normalisasi, maka user tekan tombol matriks normalisasi, sedangkan apabila user
ingin melihat bobot kriteria penilaian, maka tekan tombol bobot dan jika user
ingin melihat hasil akhir dari proses perhitungan SAW maka tekan tombol
69
kedalam sistem dengan tekan tombol simpan, apabila sebaliknya user tidak ingin
sumber (source code) proses penginputan karyawan masuk dapat dilihat pada
lampiran B. Adapun tampilan form tambah karyawan masuk seperti gambar 5.14.
pamella=:pamella,jk=:jk,nama=:nama,t_lahir=:tempat,tgl_lahir=:lahi
r,bagian=:bagian,alamat=:alamat,gol_darah=:goldarah,astek=:astek,
Params.ParamByName('id').Value:=edt1.Text;
Params.ParamByName('nama').Value:=edt2.Text;
Params.ParamByName('tempat').Value:=edt3.Text;
Params.ParamByName('lahir').Value:=dbtgl_lahir.DateTime;Params.Par
amByName('hp').Value:=edt8.Text;
Params.ParamByName('bagian').Value:=edt5.Text;
Params.ParamByName('pamella').Value:=cbb1.Text;
Params.ParamByName('alamat').Value:=edt6.Text;
Params.ParamByName('goldarah').Value:=edt7.Text;
Params.ParamByName('astek').Value:=cbb2.Text;
Params.ParamByName('masuk').Value:=dbtgl_masuk.DateTime;
Params.ParamByName('jk').Value:=cbb3.Text;
sumber (source code) proses edit karyawan masuk dapat dilihat pada lampiran B.
Semua data yang ditampilkan pada form diatas diambil dari tabel
tblpegawai. Data yang telah dimasukkan diatas kemudian dilakukan query update
pamella=:pamella,nama=:nama,jk=:jk,t_lahir=:tempat,tgl_lahir=:lahi
r,bagian=:bagian,alamat=:alamat,gol_darah=:goldarah,astek=:astek,
Params.ParamByName('id').Value:=edt1.Text;
Params.ParamByName('nama').Value:=edt2.Text;
Params.ParamByName('tempat').Value:=edt3.Text;
Params.ParamByName('lahir').Value:=dbtgl_lahir.DateTime;Params.Par
amByName('hp').Value:=edt8.Text;
Params.ParamByName('bagian').Value:=edt5.Text;
Params.ParamByName('pamella').Value:=cbb1.Text;
Params.ParamByName('alamat').Value:=edt6.Text;
Params.ParamByName('goldarah').Value:=edt7.Text;
Params.ParamByName('astek').Value:=cbb2.Text;
72
Params.ParamByName('masuk').Value:=dbtgl_masuk.DateTime;Params.Par
amByName('jk').Value:=cbb3.Text;
Kode sumber (source code) proses penginputan karyawan keluar dapat dilihat
pada lampiran C. Adapun tampilan form input karyawan keluar seperti gambar
5.16.
no_keluar=:no,id_peg=:nopeg,hp=:hp,alamat=:alamat,
bagian=:bagian,pamella=:pamella,tgl_masuk=:masuk,
Params.ParamByName('no').Value:=edt7.Text;
73
Params.ParamByName('nopeg').Value:=edt1.Text;
Params.ParamByName('hp').Value:=edt2.Text;
Params.ParamByName('alamat').Value:=mmo1.Text;
Params.ParamByName('bagian').Value:=edt4.Text;
Params.ParamByName('pamella').Value:=edt5.Text;
Params.ParamByName('masuk').Value:=dbtgl_masuk.DateTime;
Params.ParamByName('keluar').Value:=dbtgl_keluar.DateTime;
Params.ParamByName('nama').Value:=dblkcbbnama.Text;
Kode sumber (source code) proses edit karyawan keluar dapat dilihat pada
Semua data yang ditampilkan pada form diatas diambil dari tabel
Params.ParamByName('id').Value:=edt6.Text;
Params.ParamByName('hp').Value:=edt2.Text;
Params.ParamByName('alamat').Value:=mmo1.Text;
Params.ParamByName('keluar').Value:=dbtgl_keluar.DateTime;
Kode sumber (source code) proses penginputan kriteria dan bobot dapat dilihat
pada lampiran D. Adapun tampilan form input kriteria dan bobot seperti gambar
5.18.
kriteria=:paramkriteria,bobot=:parambobot,id=:paramid';
Params.ParamByName('paramid').Value:=edt1.Text;
Params.ParamByName('paramkriteria').Value:=edt2.Text;
Params.ParamByName('parambobot').Value:=edt3.Text;
75
Kode sumber (source code) proses edit kriteria dan bobot dapat dilihat pada
lampiran D. yang digunakan untuk menampilkan form edit kriteria dan bobot
Semua data yang ditampilkan pada form diatas diambil dari tabel
tblkriteria. Data yang telah dimasukkan diatas kemudian dilakukan query update
Params.ParamByName('paramid').Value:=edt1.Text;
Params.ParamByName('paramkriteria').Value:=edt2.Text;
Params.ParamByName('parambobot').Value:=edt3.Text;
Kode sumber (source code) proses input pamella dapat dilihat pada lampiran E.
alamat=:paramalamat,pamella=:parampamella,id=:paramid';
Params.ParamByName('paramid').Value:=edt1.Text;
Params.ParamByName('parampamella').Value:=edt2.Text;
Params.ParamByName('paramalamat').Value:=mmo1.Text;
Kode sumber (source code) proses edit pamella dapat dilihat pada lampiran E.
Semua data yang ditampilkan pada form diatas diambil dari tabel
tblpamella. Data yang telah dimasukkan diatas kemudian dilakukan query update
Params.ParamByName('paramid').Value:=edt1.Text;
Params.ParamByName('parampamella').Value:=edt2.Text;
Params.ParamByName('paramalamat').Value:=mmo1.Text;
dapat dilihat pada lampiran F. Adapun tampilkan form input asuransi karyawan
Params.ParamByName('paramid').Value:=edt1.Text;
Params.ParamByName('paramastek').Value:=edt2.Text;
78
dapat dilihat pada lampiran F. Adapun tampilkan form edit asuransi karyawan
Semua data yang ditampilkan pada form diatas diambil dari tabel
tblastek. Data yang telah dimasukkan diatas kemudian dilakukan query update
id=:paramid';
Params.ParamByName('paramid').Value:=edt1.Text;
Params.ParamByName('paramastek').Value:=edt2.Text;
sumber (source code) form matriks normalisasi dapat dilihat pada lampiran H.
Hasil matriks normalisasi ini hasil dari rumus pertama (2-1) dari Simple
Additive Weighting (SAW). Berikut potongan script untuk rumus pertama yang
R[baris,kolom]:=X[baris,kolom]/MaxValue(Data);
frmmatriks.strngrd3.Cells[kolom,baris]:=
FormatFloat('#,##0.##',R[baris,kolom]);
menjadikan hasil dari matriks normalisasi tersebut hanya dua angka dibelakang
koma.
Unit21.pas. Kode sumber (source code) perkalian matriks dan bobot dapat dilihat
pada lampiran H. Adapun tampilkan form perkalian matriks dan bobot seperti
gambar 5.25.
80
rumus yang kedua (2-1) dari Simple Additive Weighting (SAW). Berikut potongan
W[kolom]:= StrToInt(strngrd2.Cells[kolom,0]);
V[kolom]:=R[baris,kolom]* W[kolom];
Form21.strngrd4.Cells[kolom,baris]:=
FormatFloat('#,##0.##',V[kolom]);
Form21.strngrd1.Cells[0,baris]:= FormatFloat('#,##0.##',rangking
[baris]);
Apabila user ingin menyimpan data hasil dari pemilihan karyawan terbaik
tersebut, maka tekan tombol simpan untuk menyimpan data hasil akhir pemilihan
karyawan terbaik beserta nilainya. Berikut potongan script untuk menyimpan data
hasil akhir pemilihan karyawan terbaik beserta nilainya yang dapat dilihat pada
lampiran H.
nilaisaw=:nilai,bulan=:bulan, tahun=:tahun';
81
Params.ParamByName('nilai').Value:= strngrd1.Cells[0,row];
Params.ParamByName('id').Value:=Form15.strngrd3.Cells[0,row];
Params.ParamByName('bulan').Value:=Form15.cbb1.Text;
Params.ParamByName('tahun').Value:=Form15.cbb3.Text;
pamella=:pamella,bulan=:bulan, tahun=:tahun';
Params.ParamByName('pamella').Value:=Form15.cbb2.Text;
Params.ParamByName('id').Value:=edt1.Text;
Params.ParamByName('bulan').Value:=Form15.cbb1.Text;
Params.ParamByName('tahun').Value:=Form15.cbb3.Text;
Form laporan nilai karyawan oleh file Unit5.pas. Kode sumber (source
code) laporan nilai karyawan dapat dilihat pada lampiran I. Adapun tampilkan
Laporan nilai karyawan ini dapat diprint dengan menekan tombol print
pada halaman ini. Berikut potongan script untuk mencetak halaman ini.
82
qckrp1.Preview;
query awal sebelum terjadi pemilihan tampilan sesuai dengan pemilihan user
Form laporan nilai saw karyawan oleh file Unit22.pas. Kode sumber
(source code) laporan nilai saw karyawan dapat dilihat pada lampiran J. Adapun
Laporan nilai saw karyawan ini dapat diprint dengan menekan tombol
print pada halaman ini. Berikut potongan script untuk mencetak halaman ini.
qckrp1.Preview;
83
Kode sumber (source code) laporan karyawan terbaik dapat dilihat pada lampiran
Laporan karyawan terbaik ini dapat diprint dengan menekan tombol print
pada halaman ini. Berikut potongan script untuk mencetak halaman ini.
A.id_peg=B.id_peg');
qckrp1.Preview;
Form ganti password oleh file Unit12.pas. Kode sumber (source code)
ganti password dapat dilihat pada lampiran L. Adapun tampilkan form ganti
lama dan memasukan password baru sebanyak dua kali. Setelah itu pilih tombol
semua paket. Pengujian system test menggunakan teknik black box, yaitu dengan
5 Pengolahan data kriteria Black Box Sistem dapat menampilkan data kriteria
dan bobot dan bobot, menambah data kriteria dan
bobot, hapus data kriteria dan bobot dan
edit data kriteria dan bobot.
6 Pengolahan data pamella Black Box Sistem dapat menampilkan data pamella,
menambah pamella, hapus data pamella
dan edit pamella.
7 Pengolahan data asuransi Black Box Sistem dapat menampilkan data asuransi
karyawan karyawan, menambah asuransi
karyawan, hapus data asuransi karyawan
dan edit asuransi karyawan.
komputer yang sudah ada perangkat lunak. Kemudian pengguna mengisi form
pengaksesan. Hasil pengujian fungsional sistem dapat dilihat pada tabel 5.2,
sedangkan hasil pengujian interface dan pengaksesan dapat dilihat pada tabel 5.3.
No Pernyataan Y T
1 Jika username dan password salah maka tidak dapat 24 -
login ke sistem.
2 Proses pengolahan data karyawan masuk berhasil, tidak 23 1
ada error,menampilkan data karyawan masuk
86
No Pernyataan Y T
3 Proses pengolahan data karyawan keluar berhasil, tidak 24 -
ada error,menampilkan data karyawan keluar
No Pernyataan SS S N TS STS
1 Konten yang disediakan sederhana, sehingga 12 12 - - -
memudahkan dalam penggunaan aplikasi.
2 Aplikasi memiliki navigasi yang mudah. 7 17 - - -
3 Waktu loading relatif cepat. 9 12 - 3 -
4 Menu dan navigasi pada sistem sudah berfungsi 11 13 - - -
Total 39 54 0 3 0
menyatakan setuju dengan aplikasi yang telah dibuat, tetapi tidak sedikit juga
Pengguna
2 2 3
Mhs. Tif
Mhs. Non Tif
Karyawan
Pamella
17
pegujian antar muka yang menyatakan sangat setuju (SS) berjumlah 40.6%.
netral (N); 3,1% menyatakan tidak setuju (TS); dan 0 % menyatakan sangat tidak
setuju (STS).
(Multiple Attribute Decission Making) yang telah dibuat layak untuk digunakan.
Akan tetapi perlu adanya pengembangan sistem yang lebih lanjut untuk
Pamella Tiga adalah dilihat dari rincian nilai tersebut (lampiran data nilai) maka
karyawan terbaik di Pamella Tiga yaitu Paryanto, dengan total nilai 892.
maka hasilnya sama yaitu Paryanto juga, dengan total nilai SAW 995,52. Gambar
5.31 adalah laporan karyawan terbaik hasil SAW bulan april 2012.
PENUTUP
6.1 Kesimpulan
pengguna (user) sesuai dengan kriteria dan bobot yang ditentukan diawal
sebelum perhitungan;
6.2 Saran
89
DAFTAR PUSTAKA
Kusumadewi, Sri., Hartati, S., Harjoko, A., dan Wardoyo, R. 2006. “Fuzzy Multi-
Attribute Decision Making (FUZZY MADM)” . Graha Ilmu, Yogyakarta.
Ismail. 2012. “Aplikasi TOPSIS pada Fuzzy Multi Attribute Decision Making
(FMADM) untuk pemilihan karyawan terbaik (studi kasus karyawan inixindo
Yogyakarta). Jurusan Teknik Informatika, Fakultas Sains dan Teknologi,
Universitas Islam Negeri Yogyakarta.
Yogyakarta.
Yogyakarta.
90
FORM KUISIONER PENGUJIAN SISTEM PENDUKUNG
KEPUTUSAN PEMILIHAN KARYAWAN TERBAIK DENGAN
METODE SAW (SIMPLE ADDITIVE WEIGHTING)
(Studi Kasus : Pamella Swalayan)
Nama : ………………………………………………
Pekerjaan : ………………………………………………
Instansi : ………………………………………………
Keterangan : Berilah tanda √ pada salah satu kolom setiap pertanyaan
dibawah ini !
NO PERNYATAAN SS S N TS STS
1 Konten yang disediakan sederhana, sehingga memudahkan
dalam penggunaan aplikasi.
2 Aplikasi memiliki navigasi yang mudah.
3 Waktu loading relatif cepat.
4 Menu dan navigasi pada sistem sudah berfungsi
Catatan:
____________________________________________________________________
____________________________________________________________________
Keterangan:
SS : Sangat Setuju TS : Tidak Setuju Y : Ya
S : Setuju STS : Sangat Tidak Setuju T : Tidak
91
LAMPIRAN KODE SUMBER (SOURCE KODE)
LAMPIRAN A
KODE SUMBER (SOURCE KODE) ANTAR MUKA DAN PROSES LOGIN
92
93
procedure
Application.CreateForm(Tfrmkritria,frmkrit THome.mniKaryawanMasuk2Click(Sender:
ria); TObject);
frmkritria.Show; begin
end;
Application.CreateForm(Tfrmlprnpegawai,frm
procedure THome.img4Click(Sender: lprnpegawai);
TObject); frmlprnpegawai.Show;
begin Home.Enabled:=False;
Application.CreateForm(Tfrmdatapegawai, end;
frmdatapegawai);
frmdatapegawai.Show; procedure
end; THome.mniKaryawanKeluar1Click(Sender:
TObject);
procedure THome.img3Click(Sender: begin
TObject); Application.CreateForm(Tfrmdtapgwiklr,frmd
begin tapgwiklr);
frmdtapgwiklr.Show;
Application.CreateForm(Tfrmdtapgwiklr,frmd Home.Enabled:=False;
tapgwiklr); end;
frmdtapgwiklr.Show;
end; procedure
THome.mniKriteriadanBobot1Click(Sender:
procedure THome.img5Click(Sender: TObject);
TObject); begin
begin Application.CreateForm(Tfrmkritria,frmkrit
Application.CreateForm(Tfrmnilaipegawai, ria);
frmnilaipegawai); frmkritria.Show;
frmnilaipegawai.Show; Home.Enabled:=False;
end; end;
Home.Enabled:=False; end;
end;
procedure THome.KA1Click(Sender: TObject);
procedure begin
THome.mniAsuransiKaryawan1Click(Sender:
TObject); Application.CreateForm(Tfrmkrywntrbaik,frm
begin krywntrbaik);
Application.CreateForm(Tfrmastek,frmastek) frmkrywntrbaik.Show;
; Home.Enabled:=False;
frmastek.Show; end;
Home.Enabled:=False;
end; procedure THome.Logout1Click(Sender:
TObject);
procedure begin
THome.mniNilaiKaryawan1Click(Sender: Application.Terminate;
TObject); end;
begin
Application.CreateForm(TForm5,Form5);
Form5.Show;
Home.Enabled:=False;
end;
procedure
THome.mniInfoSistem1Click(Sender:
TObject);
begin
Application.CreateForm(TForm23,Form23);
Form23.Show;
Home.Enabled:=False;
95
procedure end;
Tfrmtmbhpegawai.edt2KeyPress(Sender: if dbtgl_lahir.Checked=False then
TObject; var Key: Char); begin
begin ShowMessage('Tanggal Lahir Pegawai
if not ( key in['a'..'z', 'A'..'Z','"',' belum diisi!');
', #8, #13]) then dbtgl_lahir.SetFocus;
key:= #0 ; Exit;
end; end;
if cbb1.Text='' then
procedure begin
Tfrmtmbhpegawai.cbb1KeyPress(Sender: ShowMessage('Jenis Kelamin belum
TObject; var Key: Char); diisi!');
begin cbb1.SetFocus;
if not ( key in['a'..'z', 'A'..'Z', #8, Exit;
#13]) then end;
key:= #0 ; if edt4.Text='' then
end; begin
ShowMessage('Nomor HP/Telephon Pegawai
procedure belum diisi!');
Tfrmtmbhpegawai.edt3KeyPress(Sender: edt4.SetFocus;
TObject; var Key: Char); Exit;
begin end;
if not ( key in['a'..'z', 'A'..'Z',' ', if edt5.Text='' then
#8, #13]) then begin
key:= #0 ; ShowMessage('Bagian Pegawai belum
end; diisi!');
edt5.SetFocus;
procedure Exit;
Tfrmtmbhpegawai.edt4KeyPress(Sender: end;
TObject; var Key: Char); if dblkcbbpamella.Text='' then
begin begin
if not ( key in['0'..'9', #8, #13]) then ShowMessage('Pamella belum diisi!');
key:= #0 ; dblkcbbpamella.SetFocus;
end; Exit;
end;
procedure if mmoalamat.Text='' then
Tfrmtmbhpegawai.edt5KeyPress(Sender: begin
TObject; var Key: Char); ShowMessage('Alamat Pegawai belum
begin diisi!');
if not ( key in['a'..'z', 'A'..'Z', #8, mmoalamat.SetFocus;
#13]) then Exit;
key:= #0 ; end;
end; if cbb2.Text='' then
begin
procedure ShowMessage('Golongan Darah Pegawai
Tfrmtmbhpegawai.cbb2KeyPress(Sender: belum diisi!');
TObject; var Key: Char); cbb2.SetFocus;
begin Exit;
if not ( key in['a'..'z', 'A'..'Z', #8, end;
#13]) then if dblkcbbastek.Text='' then
key:= #0 ; begin
end; ShowMessage('Asuransi Tenaga Kerja
belum diisi!');
procedure dblkcbbastek.SetFocus;
Tfrmtmbhpegawai.FormClose(Sender: TObject; Exit;
var Action: TCloseAction); end;
begin if dbtgl_masuk.Checked=False then
Home.Enabled:=True; begin
end; ShowMessage('Tanggal Masuk Pegawai
belum diisi!');
File : Unit7.pas (Edit Karyawan Masuk) dbtgl_masuk.SetFocus;
if edt1.Text='' then Exit;
begin end;
ShowMessage('Nomor Pegawai belum with DM.zqrysimpan do
diisi!'); begin
edt1.SetFocus; SQL.Clear;
Exit; SQL.Text:='UPDATE tblpegawai SET
end; pamella=:pamella,nama=:nama,jk=:jk,t_lahir
if edt2.Text='' then =:tempat,tgl_lahir=:lahir,bagian=:bagian,a
begin lamat=:alamat,gol_darah=:goldarah,astek=:a
ShowMessage('Nama Pegawai belum stek, tgl_masuk=:masuk, hp=:hp, id_peg=:id
diisi!'); where id_peg=:id';
edt2.SetFocus;
Exit; Params.ParamByName('id').Value:=edt1.Text;
end;
if edt3.Text='' then Params.ParamByName('nama').Value:=edt2.Tex
begin t;
ShowMessage('Tempat Lahir Pegawai
belum diisi!'); Params.ParamByName('tempat').Value:=edt3.T
edt3.SetFocus; ext;
Exit;
97
Params.ParamByName('lahir').Value:=dbtgl_l procedure
ahir.DateTime; Tfrmeditpegawai.cbb2KeyPress(Sender:
TObject; var Key: Char);
Params.ParamByName('hp').Value:=edt5.Text; begin
if not ( key in['a'..'z', 'A'..'Z', #8,
Params.ParamByName('bagian').Value:=edt4.T #13]) then
ext; key:= #0 ;
end;
Params.ParamByName('pamella').Value:=dblkc
bbpamella.Text;
procedure frmeditpegawai.edt1.Text:=DM.zqrytampil.fi
Tfrmeditpegawai.edt3KeyPress(Sender: eldbyname('id_peg').AsString;
TObject; var Key: Char);
begin frmeditpegawai.edt2.Text:=DM.zqrytampil.fi
if not ( key in['a'..'z', 'A'..'Z', #8, eldbyname('nama').AsString;
#13]) then
key:= #0 ; frmeditpegawai.cbb1.Text:=DM.zqrytampil.fi
end; eldbyname('jk').AsString;
procedure frmeditpegawai.edt3.Text:=DM.zqrytampil.fi
Tfrmeditpegawai.edt5KeyPress(Sender: eldbyname('t_lahir').AsString;
TObject; var Key: Char);
begin frmeditpegawai.edt5.Text:=DM.zqrytampil.fi
if not ( key in['0'..'9', #8, #13]) then eldbyname('hp').AsString;
key:= #0 ;
end; frmeditpegawai.dbtgl_lahir.DateTime:=DM.zq
rytampil.fieldbyname('tgl_lahir').AsDateTi
procedure me;
Tfrmeditpegawai.edt4KeyPress(Sender:
TObject; var Key: Char); frmeditpegawai.edt4.Text:=DM.zqrytampil.fi
begin eldbyname('bagian').AsString;
if not ( key in['a'..'z', 'A'..'Z', #8,
#13]) then frmeditpegawai.dblkcbbpamella.DataField:=D
key:= #0 ; M.zqrytampil.fieldbyname('pamella').AsStri
end; ng;
98
end else
frmeditpegawai.mmoalamat.Text:=DM.zqrytamp begin
il.fieldbyname('alamat').AsString; frmtmbhpegawai.edt1.Text:='1';
end;
frmeditpegawai.cbb2.Text:=DM.zqrytampil.fi end;
eldbyname('gol_darah').AsString; DM.zqrytampil.Append;
frmtmbhpegawai.Show;
frmeditpegawai.dblkcbbastek.DataField:=DM. frmtmbhpegawai.kosong;
zqrytampil.fieldbyname('astek').AsString; end;
frmeditpegawai.dbtgl_masuk.DateTime:=DM.zq procedure
rytampil.fieldbyname('tgl_masuk').AsDateTi Tfrmdatapegawai.btn1Click(Sender:
me; TObject);
frmeditpegawai.Show; begin
Close();
end; Home.Enabled:=True;
end;
procedure
Tfrmdatapegawai.btnHapusClick(Sender: procedure
TObject); Tfrmdatapegawai.smdbgrd1DrawColumnCell(Sen
begin der: TObject;
if(MessageDlg('Hapus Data?', const Rect: TRect; DataCol: Integer;
mtconfirmation, [mbYes, mbNo], 0) = mrYes) Column: TColumn;
then State: TGridDrawState);
DM.zqrytampil.Delete; begin
end; if ds1.DataSet.RecNo > 0 then
begin
if Column.Title.Caption = 'No' then
procedure smdbgrd1.Canvas.TextOut(Rect.Left +
Tfrmdatapegawai.edt9Change(Sender: 2, Rect.Top, IntToStr(ds1.DataSet.RecNo));
TObject); end;
begin end;
DM.zqrytampil.SQL.Clear;
DM.zqrytampil.SQL.Add('select * from procedure
tblpegawai where nama like Tfrmdatapegawai.FormClose(Sender: TObject;
"'+edt9.Text+'%"'); var Action: TCloseAction);
DM.zqrytampil.Open; begin
if DM.zqrytampil.IsEmpty then Home.Enabled:=True;
begin end;
MessageDlg('Maaf,Data Yang Anda Cari
Tidak Ada!', mtInformation, [mbOK], 0); procedure
DM.zqrytampil.SQL.Clear; Tfrmdatapegawai.dblkcbbnamaClick(Sender:
DM.zqrytampil.SQL.Add('select * from TObject);
tblpegawai order by id_peg asc'); begin
DM.zqrytampil.Open; DM.zqrytampil.SQL.Clear;
end; DM.zqrytampil.SQL.Add('select * from
end; tblpegawai where pamella like
"'+dblkcbbnama.Text+'%"');
procedure DM.zqrytampil.Open;
Tfrmdatapegawai.FormCreate(Sender: if DM.zqrytampil.IsEmpty then
TObject); begin
begin MessageDlg('Maaf,Data Yang Anda Cari
tampilkan; Tidak Ada!', mtInformation, [mbOK], 0);
DateSeparator := '-'; DM.zqrytampil.SQL.Clear;
ShortDateFormat :='dd/MM/yyyy'; DM.zqrytampil.SQL.Add('select * from
end; tblpegawai order by id_peg asc');
DM.zqrytampil.Open;
procedure end;
Tfrmdatapegawai.btnTambahClick(Sender: end;
TObject);
var id, idjadi, nol:string; procedure
begin Tfrmdatapegawai.btnsemuaClick(Sender:
DM.con.Connected; TObject);
frmtmbhpegawai.kosong; begin
DM.zqrytampil.Active:=True; DM.zqrytampil.SQL.Clear;
nol:='0'; DM.zqrytampil.SQL.Add('select * from
with DM.zqrytampil do tblpegawai order by id_peg asc');
begin DM.zqrytampil.Open;
DM.zqrytampil.SQL.Clear; end;
DM.zqrytampil.SQL.Add('select * from
tblpegawai order by id_peg'); procedure
DM.zqrytampil.Open; Tfrmdatapegawai.btn2Click(Sender:
if Recordcount > 0 then TObject);
begin begin
last; Application.CreateForm(Tfrmlprnpegawai,frm
id:=FieldByname('id_peg').AsString; lprnpegawai);
idjadi:=RightStr(id,2); frmlprnpegawai.Show;
id:=Inttostr(Strtoint(idjadi)+1); end;
idjadi:=''+LeftStr(nol,2-
length(id))+id;
frmtmbhpegawai.edt1.Text:=idjadi; File : Unit16.pas (Print Karyawan Masuk)
99
Params.ParamByName('alamat').Value:=mmo1.T id:=Inttostr(Strtoint(idjadi)+1);
ext; idjadi:=''+LeftStr(nol,2-
Params.ParamByName('keluar').Value:=dbtgl_ length(id))+id;
keluar.DateTime; frmklrpegawai.edt7.Text:=idjadi;
ExecSQL; end else
end; begin
frmdtapgwiklr.tampilkan; frmklrpegawai.edt7.Text:='1';
Close(); end;
end; end;
DM.zqrytkpegawai.Append;
procedure DM.zqrytampil.Append;
Tfrmeditpgwaiklr.btn1Click(Sender: frmklrpegawai.ShowModal;
TObject); end;
begin
Close (); procedure
end; Tfrmdtapgwiklr.btnEditClick(Sender:
TObject);
procedure begin
Tfrmeditpgwaiklr.edt2KeyPress(Sender: with DM.zqrykpegwai do
TObject; var Key: Char); begin
begin SQL.Clear;
if not ( key in['0'..'9', #8, #13]) then SQL.Add('select * from
key:= #0 ; tblpegawaikeluar');
end; open;
end;
File : Unit17.pas (Halaman Karyawan Keluar if not (DM.zqrykpegwai.IsEmpty) then
function RightStr
(Const Str: String; Size: Word): frmeditpgwaiklr.edt6.Text:=DM.zqrytkpegawa
String; i.fieldbyname('id').AsString;
begin frmeditpgwaiklr.edt3.Text:=DM.zqrytkpegawa
if Size > Length(Str) then Size := i.fieldbyname('nama').AsString;
Length(Str) ; frmeditpgwaiklr.edt3.Text:=DM.zqrytkpegawa
RightStr := Copy(Str, Length(Str)- i.fieldbyname('nama').AsString;
Size+1, Size) frmeditpgwaiklr.edt7.Text:=DM.zqrytkpegawa
end; i.fieldbyname('no_keluar').AsString;
function LeftStr frmeditpgwaiklr.edt1.Text:=DM.zqrytkpegawa
(Const Str: String; Size: Word): i.fieldbyname('id_peg').AsString;
String; frmeditpgwaiklr.edt2.Text:=DM.zqrytkpegawa
begin i.fieldbyname('hp').AsString;
LeftStr := Copy(Str, 1, Size) frmeditpgwaiklr.mmo1.Text:=DM.zqrytkpegawa
end; i.fieldbyname('alamat').AsString;
frmeditpgwaiklr.edt4.Text:=DM.zqrytkpegawa
procedure Tfrmdtapgwiklr.tampilkan; i.fieldbyname('bagian').AsString;
begin frmeditpgwaiklr.edt5.Text:=DM.zqrytkpegawa
DM.zqrytkpegawai.Active:=True; i.fieldbyname('pamella').AsString;
with DM.zqrytkpegawai do frmeditpgwaiklr.dbtgl_masuk.DateTime:=DM.z
begin qrytkpegawai.fieldbyname('tgl_masuk').AsDa
SQL.Clear; teTime;
SQL.Text:='select * from
tblpegawaikeluar order by no_keluar asc'; frmeditpgwaiklr.dbtgl_keluar.DateTime:=DM.
Open; zqrytkpegawai.fieldbyname('tgl_keluar').As
end; DateTime;
end; frmeditpgwaiklr.Show;
end;
procedure
Tfrmdtapgwiklr.FormCreate(Sender: procedure
TObject); Tfrmdtapgwiklr.btnHapusClick(Sender:
begin TObject);
tampilkan; begin
end; if(MessageDlg('Hapus Data?',
mtconfirmation, [mbYes, mbNo], 0) = mrYes)
procedure then
Tfrmdtapgwiklr.btnTambahClick(Sender: DM.zqrytkpegawai.Delete;
TObject); end;
var id, idjadi, nol:string;
begin procedure Tfrmdtapgwiklr.btn1Click(Sender:
DM.zqrytkpegawai.Active:=True; TObject);
DM.zqrytampil.Append; begin
frmklrpegawai.dblkcbbnama.KeyValue:=null; close();
nol:=''; Home.Enabled:=True;
with DM.zqrytkpegawai do end;
begin
DM.zqrytkpegawai.SQL.Clear; procedure
DM.zqrytkpegawai.SQL.Add('select * from Tfrmdtapgwiklr.smdbgrd1DrawColumnCell(Send
tblpegawaikeluar order by no_keluar asc'); er: TObject;
DM.zqrytkpegawai.Open; const Rect: TRect; DataCol: Integer;
if Recordcount > 0 then Column: TColumn;
begin State: TGridDrawState);
last; begin
id:=FieldByname('no_keluar').AsString; if ds1.DataSet.RecNo > 0 then
idjadi:=RightStr(id,2); begin
102
LAMPIRAN D Params.ParamByName('paramid').Value:=edt1.
KODE SUMBER (SOURCE KODE) PROSES DATA Text;
KRITERIA DAN BOBOT Params.ParamByName('paramkriteria').Value:
=edt2.Text;
Params.ParamByName('parambobot').Value:=ed
File : Unit10.pas (Tambah Kriteria dan t3.Text;
Bobot) ExecSQL;
procedure Tfrmtmbhkriteria.kosong; end;
begin frmkritria.tampilkan;
edt2.Text:=''; close;
edt3.Text:=''; end;
end;
procedure
procedure Tfrmeditkriteria.btn2Click(Sender:
Tfrmtmbhkriteria.btn1Click(Sender: TObject);
TObject); begin
begin close();
with DM.zqrykriteria do end;
begin
SQL.Clear; procedure
SQL.Text:='INSERT tblkriteria Tfrmeditkriteria.edt2KeyPress(Sender:
SET TObject; var Key: Char);
kriteria=:paramkriteria,bobot=:parambobot, begin
id=:paramid'; if not ( key in['a'..'z', 'A'..'Z', #8,
Params.ParamByName('paramid').Value:=edt1. #13]) then
Text; key:= #0 ;
Params.ParamByName('paramkriteria').Value: end;
=edt2.Text;
Params.ParamByName('parambobot').Value:=ed procedure
t3.Text; Tfrmeditkriteria.edt3KeyPress(Sender:
ExecSQL; TObject; var Key: Char);
{with DM.zqrynilai do begin
begin if not ( key in['0'..'9', #8, #13]) then
SQL.Clear; key:= #0 ;
SQL.Add('ALTER TABLE db_nilai end;
ADD `'+edt2.Text+'` INT(20) NOT NULL');
ExecSQL; File : Unit6.pas (Halaman Kriteria dan
end; } Bobot)
end; function RightStr
frmkritria.tampilkan; (Const Str: String; Size: Word):
close; String;
end; begin
if Size > Length(Str) then Size :=
procedure Length(Str) ;
Tfrmtmbhkriteria.btn2Click(Sender: RightStr := Copy(Str, Length(Str)-
TObject); Size+1, Size)
begin end;
DM.zqrytkriteria.Cancel; function LeftStr
close(); (Const Str: String; Size: Word):
end; String;
begin
procedure LeftStr := Copy(Str, 1, Size)
Tfrmtmbhkriteria.edt2KeyPress(Sender: end;
TObject; var Key: Char);
begin procedure Tfrmkritria.tampilkan;
if not ( key in['a'..'z', 'A'..'Z', #8, begin
#13]) then with DM.zqrytkriteria do
key:= #0 ; begin
end; SQL.Clear;
SQL.Add('select * from tblkriteria');
procedure Open;
Tfrmtmbhkriteria.edt3KeyPress(Sender: end;
TObject; var Key: Char); end;
begin
if not ( key in['0'..'9', #8, #13]) then procedure Tfrmkritria.FormCreate(Sender:
key:= #0 ; TObject);
end; begin
tampilkan;
File : Unit11.pas (Edit Kriteria dan end;
Bobot)
procedure procedure
Tfrmeditkriteria.btn1Click(Sender: Tfrmkritria.btntambahClick(Sender:
TObject); TObject);
begin var id, idjadi, nol:string;
with DM.zqrykriteria do begin
begin DM.con.Connected;
SQL.Clear; frmtmbhkriteria.kosong;
SQL.Text:='UPDATE tblkriteria SET DM.zqrytkriteria.Active:=True;
kriteria=:paramkriteria,bobot=:parambobot nol:='';
WHERE id=:paramid'; with DM.zqrykriteria do
begin
104
DM.zqrykriteria.SQL.Clear;
DM.zqrykriteria.SQL.Add('select * from
tblkriteria order by id');
DM.zqrykriteria.Open;
procedure Tfrmkritria.btneditClick(Sender:
TObject);
begin
status:='edit';
with DM.zqrykriteria do
begin
SQL.Clear;
SQL.Add('select * from tblkriteria');
open;
end;
if not (DM.zqrykriteria.IsEmpty) then
frmeditkriteria.edt1.Text:=DM.zqrytkriteri
a.fieldbyname('id').AsString;
frmeditkriteria.edt2.Text:=DM.zqrytkriteri
a.fieldbyname('kriteria').AsString;
frmeditkriteria.edt3.Text:=DM.zqrytkriteri
a.fieldbyname('bobot').AsString;
frmeditkriteria.Show;
end;
procedure Tfrmkritria.Button3Click(Sender:
TObject);
begin
if(MessageDlg('Hapus Data?',
mtconfirmation, [mbYes, mbNo], 0) = mrYes)
then
DM.zqrytkriteria.Delete;
end;
procedure Tfrmkritria.FormClose(Sender:
TObject; var Action: TCloseAction);
begin
Home.Enabled:=True;
end;
105
LAMPIRAN E
KODE SUMBER (SOURCE KODE) PROSES DATA
PAMELLA
procedure
File : Unittmbhpamella.pas (Tambah Tfrmeditpamella.FormClose(Sender: TObject;
Pamella) var Action: TCloseAction);
procedure Tfrmtmbhpamella.kosong; begin
begin Dm.zqrytpamella.Cancel;
edt2.Text:=''; end;
mmo1.Text:='';
end; File : Unipamella.pas (Halaman Pamella)
function RightStr
procedure (Const Str: String; Size: Word):
Tfrmtmbhpamella.btnsimpanClick(Sender: String;
TObject); begin
begin if Size > Length(Str) then Size :=
with DM.zqrypamella do Length(Str) ;
begin RightStr := Copy(Str, Length(Str)-
SQL.Clear; Size+1, Size)
SQL.Text:='INSERT tblpamella SET end;
alamat=:paramalamat,pamella=:parampamella,
id=:paramid'; function LeftStr
Params.ParamByName('paramid').Value:=edt1. (Const Str: String; Size: Word):
Text; String;
Params.ParamByName('parampamella').Value:= begin
edt2.Text; LeftStr := Copy(Str, 1, Size)
Params.ParamByName('paramalamat').Value:=m end;
mo1.Text;
ExecSQL; procedure tfrmpamella.tampilkan;
end; begin
frmpamella.tampilkan; with DM.zqrytpamella do
close; begin
end; SQL.Clear;
SQL.Add('select * from tblpamella
procedure order by id');
Tfrmtmbhpamella.btnbatalClick(Sender: Open;
TObject); end;
begin end;
close(); procedure
DM.zqrytpamella.Cancel; Tfrmpamella.btntambahClick(Sender:
end; TObject);
var id, idjadi, nol:string;
procedure begin
Tfrmtmbhpamella.FormClose(Sender: TObject; DM.con.Connected;
var Action: TCloseAction); frmtmbhpamella.kosong;
begin DM.zqrytpamella.Active:=True;
DM.zqrytpamella.Cancel; nol:='';
end; with DM.zqrypamella do
begin
File : Uniteditpamella.pas (Edit Pamella) DM.zqrypamella.SQL.Clear;
procedure DM.zqrypamella.SQL.Add('select * from
Tfrmeditpamella.btnsimpanClick(Sender: tblpamella order by id');
TObject); DM.zqrypamella.Open;
begin if Recordcount > 0 then
with DM.zqrypamella do begin
begin last;
SQL.Clear; id:=FieldByname('id').AsString;
SQL.Text:='UPDATE tblpamella SET idjadi:=RightStr(id,2);
alamat=:paramalamat,pamella=:parampamella id:=Inttostr(Strtoint(idjadi)+1);
WHERE id=:paramid'; idjadi:=''+LeftStr(nol,2-
Params.ParamByName('paramid').Value:=edt1. length(id))+id;
Text; frmtmbhpamella.edt1.Text:=idjadi;
Params.ParamByName('parampamella').Value:= end else
edt2.Text; begin
Params.ParamByName('paramalamat').Value:=m frmtmbhpamella.edt1.Text:='1';
mo1.Text; end;
ExecSQL; end;
end; DM.zqrytpamella.Append;
frmpamella.tampilkan; frmtmbhpamella.Show;
close; frmtmbhpamella.kosong;
end; end;
LAMPIRAN F
KODE SUMBER (SOURCE KODE) PROSES DATA procedure
ASURANSI KARYAWAN Tfrmtambahastek.btnsimpanClick(Sender:
TObject);
begin
File : Unittmbhastek.pas (Tambah Asuransi with DM.zqryastek do
Karyawan) begin
procedure Tfrmtambahastek.kosong; SQL.Clear;
begin SQL.Text:='INSERT tblastek SET
edt2.Text:=''; astek=:paramastek,id=:paramid';
end; Params.ParamByName('paramid').Value:=edt1.
procedure Text;
Tfrmtambahastek.btnbatalClick(Sender: Params.ParamByName('paramastek').Value:=ed
TObject); t2.Text;
begin ExecSQL;
close(); end;
DM.zqrytastek.Cancel; frmastek.tampilkan;
end; close;
procedure end;
Tfrmtambahastek.FormClose(Sender: TObject; procedure
var Action: TCloseAction); Tfrmtambahastek.edt2KeyPress(Sender:
begin TObject; var Key: Char);
DM.zqrytastek.Cancel; begin
end; if not ( key in['a'..'z', 'A'..'Z', ' ',
#8, #13]) then
key:= #0 ;
end;
LAMPIRAN G
KODE SUMBER (SOURCE KODE) PROSES PENILAIAN open;
KARYAWAN end;
strngrd1.Cells[0,b]:=DM.zqrykriter
ia.fieldbyname('id').AsString;
File : Unit4.pas (Halaman Penilaian strngrd1.Cells[1,b]:=DM.zqrykriter
Karyawan) ia.fieldbyname('kriteria').AsStrin
procedure Tfrmnilaipegawai.mati; g;
begin end;
Edit1.Enabled:=False; end
Edit3.Enabled:=False; else if d = n then
edt1.Enabled:=False; begin
cbb1.Enabled:=False; strngrd1.RowCount:=n+1;
btn1.Enabled:=False; n:=strngrd1.RowCount;
strngrd1.Enabled:=False; for b:=1 to n do
dblkcbbnama.Enabled:=False; begin
btntambah.Enabled:=True; with DM.zqrykriteria do
btnsimpan.Enabled:=False; begin
btnbatal.Enabled:=False; c:= IntToStr(b);
btnedit.Enabled:=true; SQL.Clear;
cbb2.Enabled:=False; SQL.Add('select * from
end; tblkriteria where id="'+c+'"');
open;
procedure Tfrmnilaipegawai.kosong; end;
begin
Edit1.Text:=''; strngrd1.Cells[0,b]:=DM.zqrykriteria.field
Edit3.Text:=''; byname('id').AsString;
edt2.Text:='';
edt3.Text:=''; strngrd1.Cells[1,b]:=DM.zqrykriteria.field
edt1.Text:=''; byname('kriteria').AsString;
cbb1.Text:='Pilih...'; end;
cbb2.Text:='Pilih...'; end
dblkcbbnama.KeyValue:=null; else
for b:=1 to n do
end; begin
with DM.zqrykriteria do
procedure Tfrmnilaipegawai.hidup ; begin
begin c:= IntToStr(b);
Edit1.Enabled:=True; SQL.Clear;
Edit3.Enabled:=True; SQL.Add('select * from tblkriteria
edt1.Enabled:=True; where id="'+c+'"');
cbb1.Enabled:=True; open;
btn1.Enabled:=True; end;
strngrd1.Enabled:=True;
dblkcbbnama.Enabled:=True; strngrd1.Cells[0,b]:=DM.zqrykriteria.field
btntambah.Enabled:=False; byname('id').AsString;
btnsimpan.Enabled:=True;
btnbatal.Enabled:=True; strngrd1.Cells[1,b]:=DM.zqrykriteria.field
btnedit.Enabled:=True; byname('kriteria').AsString;
cbb2.Enabled:=True; end;
end;
strngrd2.Cells[0,0]:= 'Nilai';
procedure nilai:=strngrd2.RowCount;
Tfrmnilaipegawai.FormCreate(Sender: if d > nilai then
TObject); begin
var e:=d-nilai;
b,n,nilai:integer; strngrd2.RowCount:=nilai+e+1;
c:string; nilai:=strngrd2.RowCount;
d,e:integer; end
begin else if d = nilai then
mati; begin
ztbl1.Active:=True; strngrd2.RowCount:=nilai+1;
strngrd1.Cells[0,0]:= 'No'; nilai:=strngrd2.RowCount;
strngrd1.Cells[1,0]:= 'Kriteria'; end
strngrd1.RowCount:=11; else
n:=strngrd1.RowCount; begin
d:=ztbl1.RecordCount; end;
if d > n then end;
ztbl1.recordcount dengan strngrd1.Rowcount
begin procedure
e:=d-n; Tfrmnilaipegawai.btnsimpanClick(Sender:
strngrd1.RowCount:=n+e+1; TObject);
n:=strngrd1.RowCount; var a:Byte;
for b:=1 to n do begin
begin if Edit1.Text='' then
with DM.zqrykriteria do begin
begin ShowMessage('Nomor ID Pegawai belum
c:= IntToStr(b); diisi!');
SQL.Clear; Edit1.SetFocus;
SQL.Add('select * from db_kriteria Exit;
where id="'+c+'"'); end;
110
begin btnsimpan.Enabled:=True;
try btnbatal.Enabled:=True;
n:=strngrd2.RowCount; except
n:=n-1; ShowMessage('Silahkan Pilih Data Yang
c:=0; Akan Dinilai dan Isikan Nilai Kedalam
for b:= 1 to n do Kolom Yang Tersedia!');
begin end;
a:=StrToInt(strngrd2.Cells[0,b]); end;
c:=c+a;
end; procedure
e:= c div n; Tfrmnilaipegawai.FormClose(Sender:
edt2.Text:=IntToStr(e); TObject;
if edt2.Text < '60' then var Action: TCloseAction);
begin begin
edt3.Text:='C'; Home.Enabled:=True;
end end;
else if (edt2.Text >= '60') and
(edt2.Text < '80') then
begin
edt3.Text:='B';
end
else
edt3.Text:='A';
112
LAMPIRAN H
KODE SUMBER (SOURCE KODE) PROSES strngrd1.ColCount:=d-e+1;
PERHITUNGAN Simple Additive Weighting d:=strngrd1.ColCount;
Method (SAW) for f:= 1 to d do
begin
with DM.zqrykriteria do
File : Unit15.pas (Halaman Perhitungan begin
SAW) g:=Inttostr(f);
procedure TForm15.kosong; SQL.Clear;
var a,b:Byte; SQL.Add('select * from
begin tblkriteria where id="'+g+'"');
cbb2.Text:='Pilih ...'; Open;
cbb1.Text:='Pilih ...'; end;
cbb3.Text:='Pilih ...'; strngrd1.Cells
btn3.Enabled:=False; [f,0]:=DM.zqrykriteria.fieldbyname('kriter
btn2.Enabled:=False; ia').AsString;
btn4.Enabled:=False; end;
strngrd1.RowCount:=2; end;
for b:= 0 to ztblkriteria.RecordCount do end;
begin
strngrd1.Cells[b,1]:=''; procedure TForm15.FormCreate(Sender:
rangking[b]:=0; TObject);
V[b]:=0; var a,b,c,d,n,g:Integer;
end; e,f:string;
strngrd1.Enabled:=False; begin
Refresh; ztblkriteria.Active:=True;
end; ztblpegawai.Active:=True;
btn3.Enabled:=False;
procedure TForm15.FormShow(Sender: btn2.Enabled:=False;
TObject); btn4.Enabled:=False;
var a, b,c,d,e,f: Integer; strngrd1.Enabled:=False;
g:string;
begin end;
frmnilaibobot.strngrd1.Cells[1,0]:='Bobot' frmnilaibobot.ShowModal;
; end;
frmnilaibobot.strngrd1.RowCount:=11;
n:= frmnilaibobot.strngrd1.RowCount; procedure TForm15.btn3Click(Sender:
d:= frmnilaibobot.ztbl1.RecordCount; TObject);
if d > n then begin
begin frmmatriks.ShowModal;
e:=d-n; end;
Form15.kosong; Open;
end; end;
for d:=1 to a do
begin begin
frmmatriks.strngrd3.RowCount:=2;
a:=frmmatriks.strngrd3.RowCount; frmmatriks.strngrd3.Cells[0,d]:=DM.zqrykpe
if f > a then gwai.fieldbyname('nama').AsString;
begin DM.zqrykpegwai.Next;
c:=f-a; end;
end;
frmmatriks.strngrd3.RowCount:=a+c+1; end;
a:=frmmatriks.strngrd3.RowCount; end;
begin begin
with DM.zqrykpegwai do Form21.strngrd4.RowCount:=2;
begin l:=Form21.strngrd4.RowCount;
SQL.Clear; if f > l then
SQL.Add('select A.nama, begin
B.id_peg, A.pamella, B.bulan, B.tahun c:=f-l;
from tblpegawai as A inner join tblnilai Form21.strngrd4.RowCount:=l+c+1;
as B on A.id_peg=B.id_peg where l:=Form21.strngrd4.RowCount;
pamella="'+cbb2.Text+'" and begin
B.bulan="'+cbb1.Text+'" and with DM.zqrykpegwai do
B.tahun="'+cbb3.Text+'" group by id_peg begin
asc'); SQL.Clear;
Open; SQL.Add('select A.nama,
end; B.id_peg, A.pamella, B.bulan, B.tahun
for d:=1 to a do from tblpegawai as A inner join tblnilai
begin as B on A.id_peg=B.id_peg where
pamella="'+cbb2.Text+'" and
frmmatriks.strngrd3.Cells[0,d]:=DM.zqrykpe B.bulan="'+cbb1.Text+'" and
gwai.fieldbyname('nama').AsString; B.tahun="'+cbb3.Text+'" group by id_peg
DM.zqrykpegwai.Next; asc');
end; Open;
end; end;
end for d:=1 to a do
else if f=a then begin
begin
frmmatriks.strngrd3.RowCount:=a+1; Form21.strngrd4.Cells[0,d]:=DM.zqrykpegwai
a:=frmmatriks.strngrd3.RowCount; .fieldbyname('nama').AsString;
begin DM.zqrykpegwai.Next;
with DM.zqrykpegwai do end;
begin end;
SQL.Clear; end
SQL.Add('select A.nama, else if f=l then
B.id_peg, A.pamella, B.bulan, B.tahun begin
from tblpegawai as A inner join tblnilai Form21.strngrd4.RowCount:=l+1;
as B on A.id_peg=B.id_peg where l:=Form21.strngrd4.RowCount;
pamella="'+cbb2.Text+'" and begin
B.bulan="'+cbb1.Text+'" and with DM.zqrykpegwai do
B.tahun="'+cbb3.Text+'" group by id_peg begin
asc'); SQL.Clear;
Open; SQL.Add('select A.nama,
end; B.id_peg, A.pamella, B.bulan, B.tahun
for d:=1 to a do from tblpegawai as A inner join tblnilai
begin as B on A.id_peg=B.id_peg where
pamella="'+cbb2.Text+'" and
frmmatriks.strngrd3.Cells[0,d]:=DM.zqrykpe B.bulan="'+cbb1.Text+'" and
gwai.fieldbyname('nama').AsString; B.tahun="'+cbb3.Text+'" group by id_peg
DM.zqrykpegwai.Next; asc');
end; Open;
end end;
end for d:=1 to a do
else begin
begin
c:=a-f; Form21.strngrd4.Cells[0,d]:=DM.zqrykpegwai
.fieldbyname('nama').AsString;
frmmatriks.strngrd3.RowCount:=a-c+1; DM.zqrykpegwai.Next;
end;
a:=frmmatriks.strngrd3.RowCount; end
begin end
with DM.zqrykpegwai do else
begin begin
SQL.Clear; c:=l-f;
SQL.Add('select A.nama, Form21.strngrd4.RowCount:=l-
B.id_peg, A.pamella, B.bulan, B.tahun c+1;
from tblpegawai as A inner join tblnilai l:=Form21.strngrd4.RowCount;
as B on A.id_peg=B.id_peg where begin
pamella="'+cbb2.Text+'" and with DM.zqrykpegwai do
B.bulan="'+cbb1.Text+'" and begin
B.tahun="'+cbb3.Text+'" group by id_peg SQL.Clear;
asc');
116
LAMPIRAN I
KODE SUMBER (SOURCE KODE) LAPORAN NILAI
KARYAWAN
File : Unit5.pas (Laporan Nilai Karyawan)
begin
procedure TForm5.FormCreate(Sender: zqry1.SQL.Clear;
TObject); zqry1.SQL.Add('select A.id_peg, A.nama,
begin A.hp, A.Pamella, B.nilaih, B.bulan,
zqry1.Active:=True; B.tahun from tblpegawai as A right join
DM.zqrypamella.Active:=True; tblnilaidetail as B on A.id_peg=B.id_peg
end; where A.pamella like
"'+dblkcbbpamella.Text+'%" order by id_peg
procedure TForm5.btn1Click(Sender: asc');
TObject); zqry1.Open;
begin if zqry1.IsEmpty then
if dblkcbbpamella.Text='' then begin
begin MessageDlg('Maaf,Data Yang Anda Cari
if cbbbulan.Text ='' then Tidak Ada!', mtInformation, [mbOK], 0);
begin zqry1.SQL.Clear;
with zqry1 do zqry1.SQL.Add('select A.id_peg,
begin A.nama, A.hp, A.Pamella, B.nilaih,
SQl.Clear; B.bulan, B.tahun from tblpegawai as A
SQL.Add('select A.id_peg, right join tblnilaidetail as B on
A.nama, A.hp, A.Pamella, B.nilaih, A.id_peg=B.id_peg order by id_peg asc');
B.bulan, B.tahun from tblpegawai as A zqry1.Open;
right join tblnilaidetail as B on end;
A.id_peg=B.id_peg order by id_peg asc'); end;
Open;
end; procedure TForm5.cbbbulanChange(Sender:
end; TObject);
qckrp1.Preview; begin
end zqry1.SQL.Clear;
else zqry1.SQL.Add('select A.id_peg,
begin A.nama, A.hp, A.Pamella, B.nilaih,
with zqry1 do B.bulan, B.tahun from tblpegawai as A
begin right join tblnilaidetail as B on
SQl.Clear; A.id_peg=B.id_peg where B.bulan like
SQL.Add('select A.id_peg, A.nama, "'+cbbbulan.Text+'%" order by id_peg
A.hp, A.Pamella, B.nilaih, B.bulan, asc');
B.tahun from tblpegawai as A right join zqry1.Open;
tblnilaidetail as B on A.id_peg=B.id_peg if zqry1.IsEmpty then
where A.pamella like begin
"'+dblkcbbpamella.Text+'%" and B.bulan MessageDlg('Maaf,Data Yang Anda Cari
like "'+cbbbulan.Text+'%" and B.tahun like Tidak Ada!', mtInformation, [mbOK], 0);
"'+cbb1.Text+'%"order by id_peg asc'); zqry1.SQL.Clear;
Open; zqry1.SQL.Add('select A.id_peg,
qckrp1.Preview; A.nama, A.hp, A.Pamella, B.nilaih,
end; B.bulan, B.tahun from tblpegawai as A
end; right join tblnilaidetail as B on
end; A.id_peg=B.id_peg order by id_peg asc');
zqry1.Open;
procedure end;
TForm5.smdbgrd1DrawColumnCell(Sender: end;
TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; procedure TForm5.btn3Click(Sender:
State: TGridDrawState); TObject);
begin begin
if ds1.DataSet.RecNo > 0 then zqry1.SQL.Clear;
begin zqry1.SQL.Add('select A.id_peg,
if Column.Title.Caption = 'No' then A.nama, A.hp, A.Pamella, B.nilaih,
smdbgrd1.Canvas.TextOut(Rect.Left + B.bulan, B.tahun from tblpegawai as A
2, Rect.Top, IntToStr(ds1.DataSet.RecNo)); right join tblnilaidetail as B on
end; A.id_peg=B.id_peg order by id_peg asc');
end; zqry1.Open;
dblkcbbpamella.KeyValue:=null;
procedure TForm5.btn2Click(Sender: cbbbulan.Text:='Silahkan Pilih ...';
TObject); end;
begin
close(); procedure TForm5.cbb1Change(Sender:
Home.Enabled:=True; TObject);
end; begin
zqry1.SQL.Clear;
procedure TForm5.FormClose(Sender: zqry1.SQL.Add('select A.id_peg,
TObject; var Action: TCloseAction); A.nama, A.hp, A.Pamella, B.nilaih,
begin B.bulan, B.tahun from tblpegawai as A
Home.Enabled:=True; right join tblnilaidetail as B on
end; A.id_peg=B.id_peg where B.bulan like
"'+cbbbulan.Text+'%" and B.tahun like
procedure "'+cbb1.Text+'%"order by id_peg asc');
TForm5.dblkcbbpamellaClick(Sender: zqry1.Open;
TObject); if zqry1.IsEmpty then
120
begin
MessageDlg('Maaf,Data Yang Anda Cari
Tidak Ada!', mtInformation, [mbOK], 0);
zqry1.SQL.Clear;
zqry1.SQL.Add('select A.id_peg,
A.nama, A.hp, A.Pamella, B.nilaih,
B.bulan, B.tahun from tblpegawai as A
right join tblnilaidetail as B on
A.id_peg=B.id_peg order by id_peg asc');
zqry1.Open;
end;
end;
121
LAMPIRAN J
KODE SUMBER (SOURCE KODE) LAPORAN NILAI SAW KARYAWAN
LAMPIRAN K
KODE SUMBER (SOURCE KODE) LAPORAN KARYAWAN SQL.Add('select A.id_peg, A.nama,
TERBAIK B.Pamella, A.hp, B.bulan, B.tahun from
tblpegawai as A right join
File : UnitKaryawanTerbaik.pas (Laporan tblkaryawanterbaik as B on
Karyawan Terbaik) A.id_peg=B.id_peg where A.pamella like
procedure "'+dblkcbbpamella.Text+'%" and B.Bulan
Tfrmkrywntrbaik.FormCreate(Sender: like "'+cbbbulan.Text+'%" and B.tahun like
TObject); "'+cbb1.Text+'%"');
begin Open;
zqry1.Active:=True; qckrp1.Preview;
end; end;
end;
procedure end;
Tfrmkrywntrbaik.smdbgrd1DrawColumnCell(Sen procedure
der: TObject; Tfrmkrywntrbaik.dblkcbbpamellaClick(Sender
const Rect: TRect; DataCol: Integer; : TObject);
Column: TColumn; begin
State: TGridDrawState); zqry1.SQL.Clear;
begin zqry1.SQL.Add('select A.id_peg,
if ds1.DataSet.RecNo > 0 then A.nama, B.Pamella, A.hp, B.bulan, B.tahun
begin from tblpegawai as A right join
if Column.Title.Caption = 'No' then tblkaryawanterbaik as B on
smdbgrd1.Canvas.TextOut(Rect.Left + A.id_peg=B.id_peg where A.pamella like
2, Rect.Top, IntToStr(ds1.DataSet.RecNo)); "'+dblkcbbpamella.Text+'%"');
end; zqry1.Open;
end; if zqry1.IsEmpty then
begin
procedure MessageDlg('Maaf,Data Yang Anda Cari
Tfrmkrywntrbaik.btn2Click(Sender: Tidak Ada!', mtInformation, [mbOK], 0);
TObject); zqry1.SQL.Clear;
begin zqry1.SQL.Add('select A.id_peg,
Close(); A.nama, B.Pamella, A.hp, B.bulan, B.tahun
Home.Enabled:=True; from tblpegawai as A right join
end; tblkaryawanterbaik as B on
A.id_peg=B.id_peg');
procedure zqry1.Open;
Tfrmkrywntrbaik.FormClose(Sender: TObject; end;
var Action: TCloseAction); end;
begin
Home.Enabled:=True; procedure
end; Tfrmkrywntrbaik.cbbbulanChange(Sender:
TObject);
procedure begin
Tfrmkrywntrbaik.btn3Click(Sender: zqry1.SQL.Clear;
TObject); zqry1.SQL.Add('select A.id_peg,
begin A.nama, B.Pamella, A.hp, B.bulan, B.tahun
zqry1.SQL.Clear; from tblpegawai as A right join
zqry1.SQL.Add('select A.id_peg, tblkaryawanterbaik as B on
A.nama, B.Pamella, A.hp, B.bulan, B.tahun A.id_peg=B.id_peg where B.bulan like
from tblpegawai as A right join "'+cbbbulan.Text+'%" order by id_peg
tblkaryawanterbaik as B on asc');
A.id_peg=B.id_peg'); zqry1.Open;
zqry1.Open; if zqry1.IsEmpty then
dblkcbbpamella.KeyValue:=null; begin
cbbbulan.Text:=''; MessageDlg('Maaf,Data Yang Anda Cari
end; Tidak Ada!', mtInformation, [mbOK], 0);
zqry1.SQL.Clear;
procedure zqry1.SQL.Add('select A.id_peg,
Tfrmkrywntrbaik.btn1Click(Sender: A.nama, B.Pamella, A.hp, B.bulan, B.tahun
TObject); from tblpegawai as A right join
begin tblkaryawanterbaik as B on
if dblkcbbpamella.Text = '' then A.id_peg=B.id_peg');
begin zqry1.Open;
with zqry1 do end;
begin end;
SQl.Clear;
SQL.Add('select A.id_peg, A.nama, procedure
B.Pamella, A.hp, B.bulan, B.tahun from Tfrmkrywntrbaik.cbb1Change(Sender:
tblpegawai as A right join TObject);
tblkaryawanterbaik as B on begin
A.id_peg=B.id_peg'); zqry1.SQL.Clear;
Open; zqry1.SQL.Add('select A.id_peg,
qckrp1.Preview; A.nama, B.Pamella, A.hp, B.bulan, B.tahun
end; from tblpegawai as A right join
end tblkaryawanterbaik as B on
else A.id_peg=B.id_peg where B.bulan like
begin "'+cbbbulan.Text+'%" and B.tahun like
with zqry1 do "'+cbb1.Text+'%" order by id_peg asc');
begin zqry1.Open;
SQl.Clear; if zqry1.IsEmpty then
124
begin SQL.Clear;
MessageDlg('Maaf,Data Yang Anda Cari SQL.Add('DELETE from tblhasilsaw
Tidak Ada!', mtInformation, [mbOK], 0); where bulan like "'+cbbbulan.Text+'%" and
zqry1.SQL.Clear; tahun like "'+cbb1.Text+'%"');
zqry1.SQL.Add('select A.id_peg, ExecSQL;
A.nama, B.Pamella, A.hp, B.bulan, B.tahun end;
from tblpegawai as A right join with DM.zqrykrywntrbk do
tblkaryawanterbaik as B on begin
A.id_peg=B.id_peg'); Dm.zqrykrywntrbk.Active:=True;
zqry1.Open; SQL.Clear;
end; SQL.Add('DELETE from
end; tblkaryawanterbaik where bulan like
"'+cbbbulan.Text+'%" and tahun like
procedure "'+cbb1.Text+'%"');
Tfrmkrywntrbaik.btn4Click(Sender: ExecSQL;
TObject); end;
begin smdbgrd1.RefreshData;
try except
MessageDlg('Apakah Data Hasil MessageDlg('Maaf Tidak Ada Data Yang
Perhitungan SAW bulan "'+cbbbulan.Text+'", Akan Dihapus!'+#13+
tahun "'+cbb1.Text+'" akan dihapus !'+#13+ 'Silakan ulangi.', mtInformation,
'', mtInformation, [mbOK], 0); [mbOK], 0);
end;
with DM.zqryhasilsaw do end;
begin
DM.zqryhasilsaw.Active:=True; end.
125
LAMPIRAN L
File : Unit12.pas
procedure
Tfrmedtpassword.btnsimpanClick(Sender:
TObject);
begin
ztbl1.Active:=True;
if(edtpasslama.Text = '') or
(edtpassbaru.Text ='') or
(edtconfrmbaru.Text='') then
begin
MessageDlg('Lengkapi data terlebih
dahulu', mtwarning, [mbok], 0);
end
else if(edtpassbaru.Text <>
edtconfrmbaru.Text) then
begin
MessageDlg('Password baru dan
konfirmasi password tidak sama',
mtwarning, [mbok], 0);
end
else if(edtpasslama.Text <>
ztbl1.FieldByName('password').AsString)
then
begin
MessageDlg('Password lama yang Anda
masukkan salah', mtwarning, [mbok], 0);
end
else
begin
ztbl1.Edit;
ztbl1.FieldByName('password').AsString
:= edtpassbaru.Text;
ztbl1.ApplyUpdates;
MessageDlg('Password Anda berhasil
diganti', mtinformation, [mbok], 0);
ModalResult := mrOK;
end;
close();
end;
procedure
Tfrmedtpassword.btnbatalClick(Sender:
TObject);
begin
close();
Home.Enabled:=True;
end;
procedure
Tfrmedtpassword.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Home.Enabled:=True;
end;