3;/n,/sflf;W/ PROTOTYPE APLIKASI FUZZY LOGIC DALAM PENYELEKSIAN INTJE:RNAL PROMOSI JABATAN KARYAWAN
MUHAMMAD RlDHA PRATAMA (100091020233)
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2004 MI 1425 H
PROTOTYPE APLIKASI FUZZY LOGIC DALAM PENYELEKSIAN INTERNAL PROMOSI JABATAN KARYAWAN
Oleh:
MUHAMMAD RIDHA PRATAMA
100091020233
Skripsi Scbagai Salab Satu Syarat untuk Mempcrolcb Gclar Sarjana Tclmik Informatika
Fakultas Sains dan Teknologi Universitas Islam Ncgcri SyarifHidayatullah Jakarta
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SY ARIF HIDA YATULLAH JAKARTA 2004 l'!I I 1425 H
Kupersembahkan karya ini untuk Jbunda Neni Husnaeni, Ayahanda Firdaus Adik-adikku M. Bagia Januardi (olm) - I miss u much, Filria Fird(vani dan Ferdian Jhsain.
PROTOTYPE APLIKASI FUZZY LOGIC DALAM PENYELEKSIAN INTERNAL PI~OMOSI
JABATAN KARYAWAN
Skripsi Scbagai Salah Satu Syarat untuk Mcmpcrolch Gclar Smjana Teknik Informatika Pacla Fakultas Sains clan Teknologi UIN Jakarta
Oleh: MUHAMMAD RIDHA. PRAT AMA 100091020233
Mtnyetujui Pembimbing I,
Pcmbimbing 2,
~ L?7 Ir. Bakri La Katjong, M.T, M.Kom
L-~:c---
victor Amrizal, M.Kom
JURUSAN TEI
Dcngan ini menyatakan bahwa skripsi yang clitulis olch:
Nama
Muhammad Rid ha Pratama
NIM
100091020233
Program Studi
Tcknik Jnfi:mnatika
Juclul Skripsi
Prototype Aplikasi Fuzzy Logic clalam Penyeleksian Internal Promosi Jabatan Karyawan
Dapat cliterima sebagai syarat kclulusan untuk memperoleh gelar smjana Komputer pacla jurusan Teknik Jnformatika, Fakultas Sains clan Teknologi UIN Syarif Hiclayatullah Jakarta.
Jakarta, September 2004 Menyetujui Dosen Pembimbing Pembimbing 1,
Pembimbing 2,
~~~.--
~~ ,___.
Ir. Bakri La Katjong, M.T, M.Kom
Victor Amrizal, M.Kom
Mengetahui Dcka 1,
Ketua Jurusan,
(/Zyvl,___,,_ .Java Putra M.Sis 7 96
Ir. Balz.:ii~a Katjong, M.T, M.Kom Nip. 470 035 764
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR HASIL KARY A SENDIRI YANG BELUM PERNAH DIA.JU KAN SEBA GAi SKRIPSI ATAU KARYA ILMIAtf PAI>A PERGURUAN TINGGI ATAU LEMBAGA MANAPUN.
Jakarta, Sep tern bcr 2004
Muh. Ridha Pratama 100091020233
ABSTRAK MUHAMMAD RIDHA PRATAMA, Prototype Aplikasi Fuzzy Logic dalam Penyeleksian Internal Promosi Jabatan Karyawan. (Di bawah bimbingan Ir. Bakri La Katjong, M.T, M.Kom dan Victor Amrizal, M.Kom). Menurut Drs. Moekijal ( 1986:24), tidak ada organisasi yang mcngt:ndalkan pengadaan tenaga kei:ia dari luar untuk memenuhi semua kebutuhannya. Pengadaan tenaga kerja dari dalam merupakan suatu cara mengadakan seleksi/pcmilihan Dengan melihat karyawan bekei;ja beberapa tahun memungkinkan manajemen rnembuat penilaian (dilakukan oleh sckelompok penilai) yang benar tantang kecakapan karyawan. Penilaian ini dirasakan cukup sulit dilakukan karena kandidat-kandidat yang dipromosikan merupakan karyawan berkualitas karena telah menempati posisi tertentu dalarn perusahaan dan hubungan rclevansi karyawan dengan persyaratan-persyaratan ideal/fakta real kandidat yang ditcntukan merupakan hubungan yang tidak pasti, bcrsifat tidak tegas atau kabur (fuzzy). Melihat dari kondisi tersebut, me/ode ft1zzy merupakan salah satu alternatif terbaik pemecahan masalah di dalam melakukan sebuah penilaian yang objektif terhadap kecakapan karyawan dengan didukung oleh perangkat lunak yang tepat. Oleh karena itu, penulis mencoba rnengembangkan suatu perangkat lunak yang mampu melakukan ha! tersebut di alas menggunakan Borland Delphi 7 dan Paradox 7.0 sebagai database. Tahapan yang penulis lakukan dalam pengembangan perangkat lunak tersebut pertarna adalah tahapar Pendekatan Sistem (analisis kebu111han, identifikasi masalah) dan kedua adalah tahapan Pengembangan Sistem (menggunakan tiga tahap siklus model RAD-Rapid Aplication Development: Perencanaan Syarat-syarat, Workshop Design, Pelaksanaan). Terdapat tiga standar fakta penilaian dalam perangkat lunak ini, yaitu [deal A, Ideal B dan Ideal C yang didefinisikan kedalam gugus fuzzy dan sernb1lan nilai pereferensian yang nantinya akan digunakan dalam mereferensikan ketiga fakta penilaian di alas. Kesemuanya itu direpresentasikan menggunakan representasi tinier di dalam gugus fuzzy. Perangkat lunak ini memiliki 12 sub-program yang marnpu di jalankan dengan konsfigurasi minimal menggunakan operating system Windows 98/2000/XP/NT, prosessor setara Pentium II, memory 64 MB, monitor dengan resolusi l 024x768 dan VGA32 MB.
KATAPENGANTAR
Sujud syukur hanya untuk Illahi Robbi Tuhan sekalian alam yang mempunyai Dzat Maha Sempurna, karena izin-Nya penulis dapat menyclesaikan pcnyusunan skripsi dengan judul " Prototype Aplikasi Fuzzy Logic Dalam Pcnyclcksian Internal Promosi .Jabatan Karyawan" dcngan segala kckurangan didalarnnya.
Shalawat serta salarn tertambatkan kepada rnanusia lennulia Muhammad Bin Abdullah, yang jutaan bibir dan detak jantung alarn semesta akan selalu menyebut namanya hingga akhir zaman kelak. Kesadaran, ucapan terima kasih dan penghargaan terbesar penulis sampaikan atas motivasi, pengarahan, bimbingan, diskusi, informasi dan do'a yang diberikan kepada: I. lbunda Neni Husnaeni dan Ayahanda Firdaus tercinta, ketiga ;idikku tersayang Muhammad Bagja Januardi, Fitria Firdiyani dan Muhammad Ferdian Husain. 2. Bapak Dr. Syopiansyah Jaya Putera, M.Sis, selaku Dekan Fakultas Sains dan Tekno.ogi atas keikhlasan dorongan, motivasi dan i)imbingan yang diberikan. 3. Bapak Ir. Bakri La Katjong, M.T, M.Kom, selaku Ketua Jurusan Teknik Informatika.dan selaku Pembimbing I atas kesabaran, bimbingan dan motivasi yang diberikan 4. Bapak Victor Amrizal, M.Kom, selaku dosen Pembimbing II atas arahan, motivasi, pandangan, motivasi dan nasehat yang diberikan. 5. !bu Khoclijah, S.Kom, selaku Sekretaris Jurusan Teknik Jnfonnatika.
6. Ira Ardhini, thanks for the best support and love i've got. 7. Para Dosen dan Staff Administrasi Fakultas Sains dan Teknologi. 8. Seluruh rekan-rekan rnahasiswa sernua jurusan angkatan 2000 khususnya jurusan Tl B, juga untuk Rusdiana, Ary, Koko, Dcdi dan Riza atas surnbangan ide dan fasilitas yang diberikan, juga tidak lupa untuk kawan seperjuangan yaitu Iqbal, !lacker, Dwi Satria, Fuad, Wahyu, Deni, fhnu, Herry, Khumaidi, Kevin, Hendra, Fahrizal, Bambang, Luthfy, Sukron, Uyunk, Dzia, David, Ilham, Risdi, Dadan, Hadi dll. 9. Pihak pcrpustakaan Fakultas Sains
Ciputat, September 2004
Penulis
DAFTARISI
Halaman Persetujuan Pembimbing ........................................................................... •·················· Pengesahan ... .. ... .... .. ... ............ .. ... ... ...... ... ...... ... ... ... ... ... ... ...... .... ... .. .. .... ... ... .. ....... ... ......
11
Pernyataan ....................................................................................................................
111
Abstrak ......................................................................................................................... iv Kata Pengantar. .... .. ...... ....... ..... ... .. ... ... ... ...... ...... ....... .. ... .... ... ... ........ ..... .... ... ... .... ...... ... vi Daftar Isi ....................................................................................................................... vii Daftar Tabel.. ........................................................................ ...................................... x1 Daftar Gambar ........................................................................................................... xii Daftar Lampiran ........................................................................................................ xvi
BAB I PENDAHULUAN ......................................................................................... I I. I
Latar Belakang ........................................................................................... I
I.2
Tuj uan Penelit ian .. .... ... .. ... ............... ....... .. ... ... .... ... ... .... .. .... ... ... .. ... .. ... .. ..... 2
1.3
Perumusan Masalah ................................................................................... 2
1.4
Batasan Masalah ......................................................................................... 3
1.5
Manfaat Penelitian ..................................................................................... 3
1.6
Metodologi Penelitian ................................................................................ 3
l.7
Kerangka Pemikiran ................................................................................... 4
1.8
Sistematika Penulisan ................................................................................ 7
BAB II LANDASAN TEORI ................................................................................. 9 II. I Pendahuluan ............................................................................................... 9 ll.2 Pengertian Fuzzy Logic (Logika Fuzzy) .................................................... 9 ll.3 Mengapa Menggunakan Fuzzy Logic........................................................ 11 Il.4 Himpunan Crisp dan Himpunan Fuzzy ...................................................... 11 ll.5 Operator-operator Fuzzy ............................................................................ 12 II.5.1
Operasi Himpunan Crisp ............................................................. 12
Il.5.2
Tipe Dasar Zedah untuk Operasi Himpunan Fuzzy .................... 13
ll.6 Metodologi Desain Sistem Fuzzy .............................................................. 14 ll.6.1
Mendefinisikan Karakteristik Model Secara Fungsional Operasional ................................................................................. 15
11.6.2
Melakukan Dekomposisi Variabel Model Menjadi Himpunan Fuzzy ........................................................................................... 15
ll.6.3
Membuat Aturan Fuzzy ............................................................... 16
I! .6.4
Menentukan Metode De Fuzzy untuk Tiap-tiap Variate! Solusi ........................................................................................... 16
11.6.5
Menjalankan Simulasi Sistem ..................................................... 17
11.6.0
Pengujian: Peng(lturan & Validasi Model.. ................................. 17
11.7 Variabel Linguistik ..................................................................................... 17 ll.8 Ala! Perancangan Sistem ............................................................................ 18 11.8.1
STD (State Transition Diagram)................................................. 18
11.8.2
Spesifikasi Proses ........................................................................ 19
ll.8.3
Struktur Program ......................................................................... 20
11.9 Sekilas Tentang Delphi 7 ........................................................................... 21 11.9. l
Menu ........................................................................................... 21
11.9.2
Speed l3ar .................................................................................... 21
11.9.3
Component Pallctte .................................................................... 22
Il.9.4
Form Designer ............................................................................. 22
11.9.5
Code Editor ................................................................................. 23
11.9.6
Object Inspector ......................................................................... 23
II. I 0 Database Desktop ....................................................................................... 2.4 BAB III METODE PENELITIAN ......................................................................... 26 III.! Tahapan Pendekatan Sistem ...................................................................... 26 111.2 Tahapan Pengembangan Sistem ................................................................ 26 BAB IV ANALISA DAN PERANCANGAN SISTEM ......................................... 29 IV. I Analisa Kebutuhan Si stem ......................................................................... 29 IV.2 Konsep Sistem Penyeleksian Internal Promosi Jabatan Karyawan ........... 29 IV .2.1
Penilaian ...................................................................................... 29
IV .2.2
Standar Penilaian ......................................................................... JI
IV.2.3
Aplikasi Penilaian ....................................................................... 31
IV.2.4
Representasi Linicr. ..................................................................... 32
IV .3 Perancangan Si stem ................................................................................. 41
IV.3.1
Rancangan Proses ........................................................................ 41
!V.3.2
Rancangan Menu ......................................................................... 50
BAB V IMPELEMENTASI .................................................................................... 55 V .1 Tools Pcndukung Si stem ............................................................................ 55 V .1.1
Pcrangkat Keras .......................................................................... 55
V .1.2
Pcrangkat Lunak.. .. ... ... ... ... ... ... ... ... .. .. ... ... ........ ... ...... ...... .... ... ... ... 55
V.2 Gambaran dan Fungsi Modul-modul Program .......................................... 56 V.3 Rancangan M')dul ...................................................................................... 57 BAB VI PENUTUP .................................................................................................. 67 Vl. l Kesirnpulan ............................................................................................... 67 VI.2 Saran ........................................................................................................... 68 DAFTARPUSTAKA ................................................................................................. 69 LAMPIRAN ................................................................................................................ 70
DAFT ARTABEL
Halaman Tabel 4.1
: N ilai ......................................................................................................... 34
Tabel 4.2 : Perefcrensian Fakta dengan Kategori Ideal A ......................................... 35 Tabel 4.3 : Ideal A ...................................................................................................... 35 Tabel 4.4 : Pereferensian Fakta dengan Kategori Ideal B ........................................... 36 Tabel 4.5 : Ideal B ....................................................................................................... 37 Tabel 4.6 : Pereferensian Fakta dengan Kategori Ideal C ........................................... 38 Tabel 4.7 : ldeal C ..................................................................................................... 38 Tabel 4.8 : Fakta-fakta yang Diatur l3erdasarkan Kumpubn Nilai Idea' A .............. 39 Tabel 4.9 : Fakta-fakta yang Diatur Berdasarkan Kumpulun Nilai Ideal IL .............. t,O Tabel 4. l 0 : Fakta-fakta yang Diatur Berdasarkan T<.umpulrm Nilai Ideal C ................ 40
DAFTAR GAMBAR
1-lalaman Gambar 1.1
: Pemetaan Input-Output.. ..................................................................... 5
Gambar 1.2
: Diagram Alir ....................................................................................... 6
Gambar 2.1
: Operasi Himpunan Crisp .................................................................... 13
Gambar 2.2
: Metodologi Pengembangan Sistem Fuzzy .......................................... 15
Gambar 2.3
: Contoh Perubahan State ...................................................................... 18
Gambar 2.4
: Notasi Modul ...................................................................................... 19
Gambar 2.5
: Notasi Tampilan .................................................................................. 19
Gambar 2.6
: Notasi Tindakan .................................................................................. 19
Gambar 2.7
: Bagian-bagian IDE Delphi .................................................................. 21
Gambar 2.8
: Speed Bar pada !DE Delphi ............................................................... 22
Gambar 2.9
: Componen Pallette pada IDE Delphi .................................................. 22
Garnbar 2.10 : Form Designer pada IDE Delphi ........................................................ 22 Garn bar 2.11
: Code Editor pada IDE Delphi ............................................................. 23
Gambar :'..12 : Object Inspector pada IDE Delphi ...................................................... 23 Gambar 2.13 : Tampilan Form Database Desktop .................................................... 24 Garn bar 2.14 : Form Pengisian Spesifikasi Field Paradox 7 ...................................... 24 Gambar 2.15 : Form Create Table Paradox 7 ............................................................. 25 Gambar 2.16 : Tampilan Tabel Dibuat dalam Paradox 7 ........................................... 25 Gambar 3.1
: Siklus Pengemgangan Sistem Model RAD ................... :.................... 27
Garn bar 4.1
: Representasi Linier Naik .................................................................... 32
Gambar 4.2
: Himpunan Fuzzy: Nilai ....................................................................... 34
Gambar 4.3
: Grafik Nilai ........................................................................................ 34
Gambar 4.4
: Grafilc Fungsi Keanggotaan Ideal A ................................................... 36
Gambar 4.5
: Grafik Fungsi Keanggotaan Ideal B ................................................... 37
Gambar 4.6
: Grafik Fungsi Keanggotaan Ideal C ................................................... 38
Gambar 4. 7
: STD Sistem ......................................................................................... 41
Gambar 4.8
: Rancangan ERD Antar Tabel ............................................................. 42
Gambar 4.9
: Spcsifikasi Tabel Karyawan ............................................................... 43
Gambar 4.10 : Spesifikasi Jabatan Kosong ............................................................... 43 Gambar 4.11
: Spesifikasi Tabel Cabang..................................................................... 43
Gambar 4.12 : Spesifikasi Tabel Divisi ...................................................................... 44 Gambar 4.13 : Spesifikasi Tabel Jabatan .................................................................... 44 Garn bar 4.14 : Spesifikasi Tabel Pendidikan Terakhir ............................................... 44 Gambar 4.15 : Spesifikasi Tabel Golongan ................................................................ 45 Gambar 4.16 : Spesifikasi Tabel Usia ........................................................................ 45 Gambar 4.17 : Spesifikasi Tabel Penilaian Kinerja .................................................... 45 Gambar 4.18 : Spesifikasi Tabel Masa Kerja ............................................................ 46 Gambar 4.19 : Spesifikasi Tabel Kesetiaan ................................................................ 46 Garn bar 4.20 : Spesifikasi Tabel Kandidat Karyawan ................................................ 46 Gambar 4.21 : Spesifikasi Tabel Kinerja .................................................................... 4 7 Gambar 4.22 : Spesifikasi Tabel Nilai Pereforensian ................................................. 47
Gambar 4.23 : Spesifikasi Tabel Nilai ........................................................................ 47 Gambar 4.24 : Spesifikasi Tabcl Kalimat A ............................................................... 48 Gambar 4.25 : Spcsifikasi Tabel Derajat Keanggotaaa Ideal A ................................. 48 Gambar 4.26 : Spesifikasi Tabcl Derajat Keanggotaan Kandidat A .......................... 49 Garn bar 4.27 : Spesifikasi Tabel Derajat Keanggotaan Akhir .................................... 49 Gambar 4.28 : Rancangan STD Menu ........................................................................ 50 Garn bar ·t.29 : Rancangan STD Input Data ................................................................ 5 J Gambar 4.30 : STD Data Karyawan ........................................................................... 52 Gambar 4.31
: STD Data Kebutuhan Posisi .............................................................. 52
Gambar 4.32 : STD Data pcncarian Kandidat.. ......................................................... 53 Gambar 4.33 : STD Penyelcksian Kandidat ................................................................ 54 Gambar 5.1
: Gambaran dan Fungsi Modul-modul Program ................. :................. 57
Gambar 5.2
: Fonn Menu Utama .............................................................................. .'i8
Gambar 5.3
: Form Data Karyawan .......................................................................... 58
Gambar 5.4
: Form Kebutuhan Posisi ....................................................................... 59
Gambar 5.5
: Form Pilihan Input Data ..................................................................... 59
Gambar 5.6
: Form Pilihan Input Fakta Penilaian .................................................... 60
Gambar 5.7
: Form Input Fakta Penilaian Ideal A .................................................... 60
Gambar 5.8
: Fom1 Input Nilai Pereferensian ........................................................... 61
Gambar 5.9
: Form Check Nilai Pereferensian ......................................................... 61
Gambar 5.10 : Form Derajat Keanggotaan Nilai Pereferensian ................................. 62 Garnbar 5.11 : Form Grafik Derajat Keanggotaan Nilai Pereforcnsian ...................... 62
Gambar 5.12 : Form Pencarian Kandidat Awai. ......................................................... 63 Gambar 5.13 : Form Kandidat Memenuhi Syarat.. ..................................................... 63 Gambar 5.14 : Form Pilihan Penilaian ........................................................................ 64 Gambar 5.15 : Form Penilaian Ideal A ....................................................................... 64 Gambar 5.16 : Form Grafik Derajat Keanggotaan !deal A ......................................... 65 Gambar 5.17 : Form Nilai Derajat Keanggotaan Ideal A ........................................... 65 Gan1bar 5.18 : Form Derajat Keanggotaan Ideal A .................................................... 66 Gambar 5 .19 : Form Nilai Akhir ................................................................................ 66
DAFTAR LAMPIRAN
Lamp. I
: Source Code Menu Utama ..................................................................... 70
Lamp. 2
: Source Code Data Lengkap Karyawan .................................................. 74
Lamp. 3
· Source Code Kebutuhan Posisi.. ............................................................ 79
Lamp. 4
: Source Code Pilihan Input Data .............................................................. 82
Lamp. 5
: Source Code Pilihan Input Fakta Penilaian ........................................... 84
Lamp. 6
: Source Code Input Fakta Penilaian ......................................................... 86
Lamp. 7
: Source Code Input Nilai Perefcrensian .................................................. 89
Lamp. 8
: Source Code Check Nilai Perefcrensian ............................................... 93
Lamp. 9
: Source Code Derajat Keanggotaan Nilai Perefcrensian ........................ 96
Lamp. I 0 : Source Code Grafik Derajat Keanggotaan Nilai Pereferensian ............. 99 Lamp. I I : Source Code Pencarian Kandidat Awai. ................................................ 10 I Lamp. I 2 .. : Source C1de Kandidat Karyawan Memenuhi :Syarat ............................ I 04 Lamp. 13 : Source Code Pilihan Tipe Model Penilaian ........................................... 110 Lamp. 14 : Source Code Analisa Penilaian Ideal A ................................................. I 12 Lamp. 15 : Source Code Grafik Dentjat Keanggotaan Ideal A ................................ 118 Lamp. I 6 : Source Code Nilai Derajat Keanggotaan Ideal A .................................. 120 Lamp. 17 : Source Code Derajat Keanggotaan Ideal A ........................................... I 23 Lamp. 18 : Source Code Penilaian Akhir ................................................................. 125
BABI PENDAHULUAN
I.1
Latar Bclakang
Dalam menunjang kelancaran operasinya, setiap perusahaan rnernbutuhkan beraneka ragam sumber daya yang dikombinasikan dengan tujuan menghasilkan produk atau jasa untuk dipasarkan. Perusahaan umumnya mengkombinasikan lima tipe sumber daya utama, yaitu personil (manusia), malerial. mesin (termmukfasilitas dan energi), keuangan dan informasi. (Hopeman, 1969).
Lima tipe sumber daya utama tersebut, diantaranya rnemiliki satu sumber daya yang terpcnting yang dapat mempengaruhi efisiensi dan efoktifitas perusahaan, yaitu Manusia. Sumber Daya Manusia (SDM) adalah elemen yang selalu ada dalam setiap perusahaan dan mernbuat sumber daya lainnya di dalam perusahaan tempat ia bekerja. Kesuksesan dan nilai jual suatu perusahaan tergantung pada kreativitas para pekerjanya. Perusahaan tidak akan dapat memaksimalkan produktivitas dan labanya tanpa adanya pekerja yang merniliki dedikasi tinggi terhadap perusahaan. Dalam memenuhi kebutuhan akan SDMnya, maka perusahaan dianggap perlu untuk melakukan suatu perencanaan di dalam mencari orang-orang yang berkualitas untuk menempati posisi/jabatan yang dibutuhkan olch perusahaan, yaitu melalui proses perekrutan. Proses perekrutan ini dibagi menjadi dua, yaitu perekrutan secara internal (melihat kandidat karyawan yang telah tersedia daiam perusahaan) dan ekslenwl (kandidat dari luar pcrusahaan/belum mcnjadi karyawan perusahaan).
Penyeleksian internal seorang karyawan yang dianggap mampu untuk ditempatkan pada posisi/jabatan tertentu di dalam perusahaan sulit dilakukan karena
2
kandidat yang ada mcrupakan karyawan yang berkualitas karena telah menempati posisi tertcntu dalam perusahaan. Penilaian yang dilakukan harus secara lepat, akural dan tidak bcrsifat subjektif sesuai dcngan persyaratan-persyaratan yang tclah ditentukan. Hubungan relcvansi karyawan dengan syarat-syarat yang ditcntukan merupakan hubungan yang tidak pasti, bcrsifat tidak tcgas atau kabur (fuzzy). Teknik penyeleksian karyawan menggunakan pendekatanfuzzy ini diharapkan mampu mengatasi bcberapa permasalahan di atas. l.2
Tujuan l'cnelitian
Tujuan penulisan karya ilmiah ini adalah untuk membuat sistem (perangkat lunak) sebagai solusi yang dapat memb,mtu pengambilan keputusan para pemegang perusahaan dalam mencari karyawan-karyawan berkualitas yang memiliki sumber daya yang sesuai dengan posisi/jabatan yang dibutuhkan. I.3
l'erumusan Masalah
Permasalahan penelitian penulis rumuskan sebagai berikut : I. Bagaimana perangkat lunak ini mampu rnencari kandidat karyawan untuk mengisi posisi tertentu diantara karyawan-karyawan berkualitas yang dimiliki perusahaan
dengan
menampilkan
nilai
akhir kandidat terbaik yang
perhitungannya menggunakan pendekatan gugus fuzzy. 2. Bagaimana langkah-langkah perancangan sistem ini dan tools apa yang digunakan agar sesuai dengan poin pertama di atas. 3. Bagaimana dan di mana sistem ini seharusnya diaplikasikan.
3
I.4
Batasan Masalah Berdasarkan penelitian yang penulis lakukan, kenyataannya, banyak sekali
parameter yang
hams digunakan
sehingga
penulis merasa
kesulitan dalam
mengembangkan sistem ini. Untuk itu penulis batasi pengcmbangan sistem ini hanya pada pe11yeleksia11 i11ter1111/ k11ryawa11 (dalam lingkup perusahaan itu sendiri).
l.5
Manfaat Penelitian Sesuai dengan pennasalahan dan tujuan penelitia.1 yang sudah disebutkan,
maka manfaat penelitian dapat dirumuskan sebagai berikut: 1. Man'aat yang bersifat akademis, yaitu : Memberikan sumbangan ilmiah bagi
pengembangan sistem menggunakan metode FUZZY LOGIC. 2. Manfaat yang bersifat praktis (non-Akademis), yaitu memberikan kemudahan bagi para pengembil keputusan dalam peruahan dalam menentukan penilaian yang tepat dan akurat bagi para kandidat yang dianggap pantas menduduki posisi/jabatan kosong yang dibutuhkan, sehingga produktititas perusahaan dalam berjalan dengan baik.
I.6
Metodologi Penelitian a. Metode yang penulis lakukan untuk mendapatkan data dan informasi, yaitu : I. Metode Stucli Pustaka Yaitu pengumpulan data dan informasi dengan cara membaca buku-buku reforensi yang dapat dijadikan acuan pembahasan dalam masalah ini. 2. Metode Interview Koentjaraningrat (1985:167) mengartikan interview sebagai
sebuah
tindakan pengumpulan infomiasi dengan cam mengajukan sejumlah
4
pert<1nyaan secara lisan dan dijawab secara Iisan pula. Dalam ha! ini penulis mengadakan tanya jawab dengan para stack holder dari berbagai perusahaan dan lembaga tentang fakta-fakta penilaian yang dibutuhkan dalam perekrutan karyawan. 3. Metode Observasi Obscrvasi yang penulis lakukan adalah observasi pustaka, yaitu mengumpulkan informasi dengan cara peng.amatan atau peninjauan tcrhadap obyck penclitian lewat buku-buku yang terkait. b. Metodc Pengembangan Sistem Pengembangan sistem dalam penelitian ini penulis lakukan menggunakan lima tahap siklus pengembangan model RAD (Rapid Aplication Development), Kendal & Kendal ( 1998, 200), yaitu: (I) Fase menentukan syarat-syarat, yaitu mcnentukan tujuan dan syarat-syarat informasi; (2) Fase perancangan, yaitu perancangan proses-proses yang akan tci:jadi di dalam sistem, perancangan basis data yaitu perancangan tabel-tabel yang akan digunakan,
dan
perancangan antamrnka yaitu perancangan antarmuka masukkan dan antarmuka keluaran; (3) Fase konstruksi, pada tahap ini dilakukan pengkodean terhadap rancangan-rancangan yang telah didefinisikan; (4) Fase pelaksanaan, pada tahap ini dilakukan pengujian terhadap sistem dan melakukan pengenalan terhadap sistem, dan; (5) Fase Lnplementasi. 1.7
Kcrn.1gka Pcmikiran
Garis besar kerangka berpikir sistem penyeleksian internal promosi jabatan karyawan menggunakan gugus fuzzy seperti terlihat pada gambar 1.1 di bawah ini:
5
Ruang INPUT
Ruang OUTPUT
A
LOGIC
~~c:)o
posisi/jabatan kosong \
llasil akhir penilaian lundidat yang panta.s unruk 1nc11gi~i
1w.sisiljabati111
ko~ong
Gambar 1.1 Pe111etaa11 input-output pada Sisteni pe11yeleksian Internal Promos/ Jabllltln Karyawa11
Untuk menempati suatu posisi/jabatan tertentu dalam suatu perusahaan, seorang kandidat harus dinilai terlebih dahulu oleh sekelompok penilai. Menurut Capaldo & G. Zollo (1993), penilaian ini terdiri atas penilaian umum (yang terdiri dari hal-hal/kriteria-kriteria umum - public memory) dan penilaian khusus (mencakup nilai-nilai/kriteria-kriteria yang sifatnya khusus - private memory). Sistem Internalitas Pencarian Karyawan dengan pendekatan gugus fuzzy dilakukan dalam beberapa langkah, yaitu:
1. Identifikasi posisi/jabatan kornng perusahaan. 2. Melakukan
pencanan
karyawan
yang
m~menuhi
kriteria
awal
penyeleksian yang telah ditentukan. Karyawan yang terpilih akan menjadi kandidat yang nantinya akan mengisi posisi/jabatan kosong. 3. Menentukan nilai-nilai (terms) pereferensian yang akan digunakan dalam perefcrensian fakta-fakta dengan kategori kandidat. Nilai pereferensian ini tergantung kepada kebijaksanaan perusahaan. 4. Menentukan fungsi keanggotaan dan menghitung derajat keanggotaan nilai-nilai tersebut. 5. Pereferensian
antara
fakta-fakta
yang
terbentuk
(hasil
penilaian
6
6. Menentukan
timgsi
keanggotaan
nilai pereferensian masing-masing
kategori kandidat dan menentukan derajat keanggotaan nilai-nilai tersebut. 7. Hitung derajat keanggotaan akhir kandidat dengan mengacu pada derajat keanggotaan nilai-nilai pcrefcrensian yang telah ditetapkan perusahaan. 8. Menentukan hasil akhir penilaian kandidat yang nantinya akan menduduki posisi/jaba.an kosong perusahaan.
~iulni
ldemifikasi
Jabatan kosong
Seleksi awal
Tentukan nilai pereferensian
Hitungdc.rajat keanggo1aan nilai
Pereferensian fakti;-] dcngan katcgori
J
Tentukan derajat
keanggotaan tiup nilai
Hilung dcrajrtt
kcanggo111.sn nlhir
J
Hasil akhir ixnilaian
(
Gambnr 1.2
Selesa1 )
Diagrtl/11 alir J/iagra1n a/Ir dari Siste1n Penyeleksian /11li'!r11al Pron1osi Jabalan Karya1va11
tle11ga11 pe11dehata11 gugus fuz;Ji.
7
1.8
Sistcmatika Pcnulisan
BAB!
PENDAHULUAN
Dalam bab ini, penulis mengemukakan tcntang btar bclakang penelitian, tujuan penelitian, perumusan mi salah, batasan masalah, manfaat penclitian, metodologi penclitian, kerangka pcmikiran dan sistematika pcnulisan. BAB II
LANDASAN TEORI
Dalam bab ini, penulis mengemukakan dan membahas teori tentang pcngertian Gugus Fuzzy Logic, Himpunan Crisp dan Himpunan Fuzzy, Operatoroperator Fuzzy, Metodologi De.min Sistem Fuzzy, Variabel Linguistik, Seki/as tentang Delphi 7 dan penggunaan Database Desk/Op di dalam menangani
tabel dari Paradox sebagai media penyimpanan data. BAB Ill
METODOLOGI PENELITIAN
Dalam bab ini, penulis menjelaskan tahapan-•ahapan metodologi penelitian yang digunakan yaitu tahapan pendekatan sistem dan tahapan pengembangan sisten1.
BAB IV
ANALISA DAN PERANCANGAN
Dalam bab ini, penulis menjelaskam analisa kebutuhan sistem, konsep pcnilaian karyawan menggunakan gugus fuzzy, pcrancangan sistem yang meliputi perancangan proses, perancangan basis data, pcrancangan menu perancangan masukan dan perancangan keluaran.
8
BAB V
IMPLEMENTASI Dalam bab ini, penulis mcndeskripsikan sarana-sarana pendukung sistem, gambaran modul-modul fungsi program dan rancangan interface (antarmuka) masing-masing modul.
BAB VI
Pli:NUTUP
Dalam bab ini, pcnulis mencoba menyimpulkan
pennasalahan-p~rmasalahan
yang dibahas scrta mencoba mengemukakan saran-sarnn yang dianggap pcrlu.
BAB II LANDASAN TEORI
II.1
Pendahnluan Dalam kehidupan schari-hari, kita tidak dapat memutuskan sesuatu masalah
dengan jawaban "Ya" atau "Tidak".
Sebagai contoh, untuk menyatakan orang
berbadan "tinggi", amat bersifat relatif. Demikian juga untuk mengatakan warna "abu-abu" yang merupakan campuran antara hitam dan putih. Pada tahun 1965, zedah memodifikasi teori himpunan dimana setiap anggotanya memilliki derajat keanggotaan yang bernilai kontinyu antara 0 sampai l. himpunan ini disebut himpunan kabur (Fuzzy Set). Selama beberapa dekade yang lalu, himpunan fuzzy dan hubungannya dengan fuzzy logic telah digunakan pada lingkup domain permasalahan yang cukup luas. Lingkup ini antara lain mencakup kendali proses, klasifikasi dan pencocokan pola, manajemen dan pengambilan keputusan, rise! operasi, ekonomi dan lain-lain. Sejak tahun 1985, terjadi perkembangan yang sangat pesat pada fuzzy logic
tersebut
terutama yang bersifat non-linier, ill-defined, lime-varying, dan situasi-situasi yang sangat kompleks. U.2
Pengcrtian Fuzzy Logic (Logika Fuzzy) Logika fuzzy dikatakan sebagai logika baru yang lama, sebab ilmu tentang
logika fuzzy modern dan metodis baru ditemukan beberapa tahun yang lalu, padahal sebenarnya konsep tentang logika fuzzy itu sendiri telah ada pada diri kita sejak lama. Logika Fuzzy adalah suatu cara yang tcpat dalam memetakan suatu ruang input kcdalam suatu ruang output. Sebagai contoh:
10
1. Manajer pergudangan mengatakan pada manajer prnduksi seberapa banyak persediaan barang pada akhir minggu ini, kemudian manajer produksi akan menetapkan jumlah barang yang harus diproduksi esok hari. 2. Penumpang taksi berkata pada sopir taksi seberapa cepat laju kcndaraan yang diinginkan. sopir taksi akan mengatur pijakan gas taksinya. 3. Anda mengatakan pada saya seberapa sejuk ruangan yang anda inginkan, saya akan mengatur putaran kipas angin yaag ada pada ruangan ini. Salah satu contoh pemetaan suatu input-output dalam bentuk grafis terlihat pada Bab I gambar 1.1 di alas. Antara input dan output terdapat satu kotak hitam yang harus memetakan input ke output yang sesuai. Selama ini, ada beberapa cara yang mampu bekerja pada kotak hitam tersebut, antara lain: I. Sistcm frizzy; 2. Sistem tinier; 3. S istem pakar; 4. Jaringan syaraf; 5. Pcrsamaan differensial; 6. Tabel interpolasi multi-dimensi; di!. Meskipun ada beberapa cara yang mampu bekerja d8lam kotak hitam tersebut, namun fuzzy akan memberikan solusi yang paling
baik. Mengapa demikian?
Sebagaimana telah dikemukakan oleh Lotti A. Zadeh, bapak logika fuzzy: "pada hampir semua kasus k:ta dapat menghasilkan suatu produk tanpa menggunakan logika fuzzy, namun menggunakan logika fuzzy akan lebih cepat dan lebih munh".
11
II.3
Mcngapa Mcnggunakan Fuzzy Logic (Logika Fuz:zy)
Ada beberapa alasan mengapa orang menggunakan logika fuzzy, diantaranya yaitu: I. Konsep matematis yang mendasari penalaran logika fuzzy mudah dimcngerti. 2. Logika fuzzy sangat fleksibel. 3. Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat. 4. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinier yang sangat kompleks. 5. Logika
fuzzy
dapat
membangun
dan
menga.plikasikan
pengalaman-
pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan. 6. Logika Fuzzy dapat beke1jasama dengan teknik-teknik kcndali secara konvensional. 7. Logika fuzzy didasarkan pada bahasa alami. H.4
Himpunan Crisp dan Himpunan Fuzzy
Himpunan Crisp A didefinisikan oleh item-item yang ada pada himpunan itu. Jika a E A, maka nilai yang berhubungan dengan a adalah I. Namun, jika a,E A, rnaka nilai yang berhubungan dengan a adalah 0. Notasi A,; {x I P(x)} menunjukkan bahwu A berisi item x dengan P(x) benar. Jika XA merupakan fungsi karakteristik A dan properti P, maka dapat dikatakan bahwa P(x) benar,jika dan hanyajika XA(x)=I. Himpunan fuzzy didasarkan pada gagasan untuk memperluas jangkauan fungsi karakteristik sedemikian hingga fungsi tersebut akan mencangkup bilangan real pada interval [0,1]. Nilai keanggotwnnya menunjukkan bahwa suatu item dalam semesta pembicaraan tidak hanya berada pada 0 atau I, namunjuga nilai yang terletak
!2
diantaranya. Dengan kata lain, nilai kebenaran suatu item tidak hanya bemilai benar atau salah. Nilai 0 menunjukkan salah, nilai I menunjukkan benar, dan masih ada nilai-nilai diantara benar atau salah. Misalkan diketahui klasifikasi sebagai berikut: MUDA
umur < 35 tahun
SETENGAH BAY A
35 S umur S 55 tahun
TUA
umur > 55 tahun
Dengan menggunakan pendekatan crisp, amatlah tidak adil untuk menetapkan nilai SETENGAH BAY A. Pendekatan ini bias saja dilakukan untuk hal-hal yang bersifat diskontinyu. Misalkan klasifikasi untuk umur 55 dan 56 sangatjauh berbeda, umur 55 tahun termasuk SETENGAH BAY A, sedangkan umur 56 tahun sudah termasuk tua. Demikian pula untuk kategori MUDA dan TUA. Orang yang berumur 34 tahun dikatakan MUDA, sedangkan orang yang berumur 35 tahun sudah TIDAK
MUDA lagi. Orang yang berumur 55 tahun tennasuk SETENGAH BAY A, orang yange bermumur 55 tahun lebih l hari sudah T!DAK S.ETENGAH BAY A lagi. Dengan dem;kian pendekatan crisp ini sangat tidak cocok u.ntu!' diterapkan pada halhal yang bersifat kontinyu, seperti umur.
II.5
Operator-operator Fuzzy
II.5.1 Operasi Himpunan Crisp
Pada logika tradisional, fungsi keanggotaan himpunan terbagi atas 2 daerah: µA[x] = 0, jika x ,€:'. A atau µA[x] = l,jika x EA.
13
0
INTER~iEKSI
(H)
Scmcsta
Pcmbicarsum
t---t-··
•
(,~
~J
""1 KOMPLEMEN
UNION
EXCLUSIVE UNION
Garn bar 2.1 Oper(IS/ Ililnpunan L'risp
Dengan kata lain, fungsi keanggotaan himpunan A bernilai nol (0), jika x bukan merupakan elemen dari himpunan A. sebaliknya, fungsi keanggotaan himpunan A akan bernilai satu (I) jika x merupakan &nggota A. keanggotaan himpunan crisp selal u dapat dikategorikan secara pen uh tan pa ada dikotorni atau ambiguitas. Pada himpunan crisp, ada 4 operasi dasar seperti terlihat pada gambar 2.1. Union dari himpunan A dan B (AUB) berisi semua elemen yang berada pada himpunan A atau pada himpunan B. lnterseksi dari himpunan A dan B (AUB) berisi semua elemen yang berada pada himpunan A atau pada himpunan B. 1!.5.2 Tipe Dasar Zcdah uutuk Opcrasi Himpunau Fuzzy
Seperti
halnya himpunan
konvensional, ada
beberapa op.;rasi yang
didefinisikan secara khusus untuk mcngkombinasi dan memouifikasi himpunan fuzzy. Berikut ini beberapa operasi logika fuzzy konvensional yang didefinisikan oleh Zedah:
14
Interseksi
µArni
=min (ftA[x], [ts[y])
Union
µAUil
=max (µA[x], µa[y])
Komplemen
fLA
= I - µA[x]
Karena himpunan fuzzy tidak dapat dibagi dengan tepat seperti halnya pada himpunan crisp, maka operasi-operasi ini diaplikasikan pada tingkat keanggotaan. Suatu eleme•1 dikatakan menjadi anggota himpunan fuzzy jika: · I. Berada pada domain himpunan tersebut. 2. Nilai kcbenaran anggotanya 2: 0. 3. Bcrada diatas ambang ex -cut yang berlaku. II.6
Metodologi Dcsain Sistem Fnzzy
Untuk melakukan perancangan (desain) suatu sistem fuzzy perlu dilakukan beberapa tahapan yaitu: I. Mendefinisikan karakteristik model secara fungsional dan operasional; 2. Melakukan dckomposisi variable model mcmjadi himpunan fuzzy; 3. Membuat aturan fuzzy; 4. Menentukan metode defuzzy untuk tiap-tiap table sol.usi; 5. Menjalankan simulasi sistem; 6. Pengujian pengnturan & validasi model.
15
Mcndefinisikan karakteristik model secara fungsional dan
M1:ndefinisikun norma!isasi post-model
Mcnyusun model dalam segmcn kebijakan
f\.fendckomposisikan variabcl-variabel kedalam himounan~himouan
fuzzv JI
Membentuk atumn
Mendefinisikan mcto
Mcndtfinisikan matriks tJntuk kerja
tvfenjalankan simulas1 sistem
Pengujian: mengatur dan menvalldasi model
Menghubungkan ke sistem produksi
Gambar 2.2 Afetodologi Penge111ba11gan Sistent Fuzzy
II.6.1 Mcndcfinisikan Karaktcristik Model secara Fungsional & Operasional Pada bagian ini perlu diperhatikan karakteristik apa saja yang dimiliki oleh sistem yang ada, kemudian dirurnuskan karakteristik operasi-operasi yang akan digunakan dalam model fuzzy. Ditentukan pula batasan-batasan model, berupa: perbendaharaan hirnpunan fuzzy, hedge dan definisi dari beberapa variabel.
II.6.2 Melakukan Dckomposisi Variabcl Model Menjadi Himpunan Fuzzy Dari variabel-variabel yang telah dirumuskan pada bagian !1.6. I dibentuk hirnpunan-himpunan fuzzy yang berkaitan. Dalam membentuk himpunan fuzzy perlu diperhatikan domain yangjuga telah disebutkan pada 11.6.1.
16
H.6.3 Membuat Aturan Fu1.zy
Aturan-aturan pada suatu model fuzzy menunjukkan bagaimana suatu sistem beroperasi. Secara umum aturan dituliskan sebagai: IF (x1 is A1)o (x2 is A2 )• (x3 is A3)• Dengan •
... •
(x0 is Ao) lliEN y is B
adalah operator (missal: OR atau AND), Xi adalah skalar dan Ai adalah
variabcl linguistik. Apabila sistem tidak menggunkan hedge, maka variabel linguistiknya sama dengan himpunan fuzzy. Untuk menulis aturan perlu diperhatikan hal-hal berikut ini: I. Kclompokkan aturan yang memiliki solusi pada variabel yang sama. 2. Urutkan aturan sehingga mudah dibaca. 3. Gunakan identitas unh1k memperlihatkan struktur aturan. 4. Gunakan penamaan yang umum untuk mengidentifikasi variabel-variabel pada kelas yang berbeda. 5. Gunakan kom-:ntar untuk mendeskripsikan tujuan dari suatu atau sekelompok aturan. 6. Berikan spasi antar aturan. 7. Tulis variabel dengan huruf besar-kecil, himpunan fuzzy dengan huruf besar dan demen-elemen bahasa lainnya dengan hurufkedl. II.6.4 Menentukan Metode DcFuzzy untnk Tiap-tiap Variabel Solusi
Pada tahap defuzzikasi akan dipilih suatu nilai dari suatu variabel solusi yang merupakan konsekuen dari daerah fuzzy.
17
II.6.5 Mcnjalankan Simulasi Sistem Pada tahap ini, dibuat simulasi sistem secara lengkap. Simulasi harus memberikan kemudahan bagi user. Perlu dipertimbangkan juga kemungkinan pengembangannya. Untuk itu, pada program simulasi perlu disertakan editor untuk: a. Perbaikan variabel model input/output; b. Perbaikan himpunan fuzzy; c. Perbaikan aturan; d. Pilihan metode defuzzikasi.
H.6.6 Pengujian: Pengaturan & Validasi Model Dari program simulasi yang sudah dibentuk, diuji.kan untuk beberapa nilai input untuk mendapatkan kebenaran dan validasi output. Apabila hasil yang diperoleh selama pengujian kurang sesuai dengan yang diharapkan, maka diulangi lagi pada proses dekomposisi variabel ke himpunan fuzzy. Sebaliknya, jika hasil yang diperoleh sudah sesuai dengan yang diinginkan, maka program langsung dapat dihubungkan dengan sistcm produksi.
Il.7
Variabcl Linguistik Menurut Zadeh ( 1988), variabel linguistik (linguistic variabe/) adalah suatu
variabel yang nilainya adalah kata atau kalimat di dalam bahasa natural. Sebagai contoh, "umur" adalah variabel linguistikjika nilainya "muda", "tidak muda", "sangat muda"~
''tua", "tidak tua", atau Hsangat tua". Umumnya, nilai variabel linguistic dapat dibangkitka.1 dari nilai yang paling
utama (contohnya "muda"), lawwan katanya (contohnya ''tua", kumpulan modifier (contohnya "sangat", "cukup"), dan kata hubung ("dan" dan "atau").
18
H.8
Alat Perancangan Sistem Menurut Pressma (I 997, 186) ada tiga alasan dalam merancang untuk
mcmbuat suatu sistem: I. Agar dapat terfokus pada bagian sistem yang penting.
2. Agar dapat terfokus pada bagian yang akan mengalami perubahan ·perubahan dan koreksi, serta dokumentasi.
3. Agar dapat mengerti akan lingkungan pemakai, sehingga sistem tersebut lebih baik.
ll.8.1 STD (State transition Diagram) State
Transition
Diagram
mcrupakan
diagram
bagaimana state I dihubungkan dengan state yang lain
yang
menggambarkan
pada satu waktu. STD
menggambarkan suatu state yang mempunyai kondisi di mana dapat menyebabkan perubahan satu state ke state yang lain. (Hoffer, George dan Valacich, 1996, 364). State Transition Diagram pada dasarnya merupakan sebuah diagram yang terdiri dari state dan transisi atau perpindahan state. Transisi atau perpindahan state terdiri dari kondisi dan aksi. Transisi diantara kedua keadaan pada umumnya disebabkan oleh suatu kondisi. Kondisi adalah suatu kejadian yang dapat diketahui oleh sistem. Sedangkan aksi adalah tindakan yang dilakukan oleh sistem apabila te1jadi perubahan state atau merupakan reaksi dari sif.tem. State I Aksi
State 2 Gnn1bar 2.3 Contoh perubahan state
19
Adapun komponen atau simbol y1ng digunakan dalam diagram STD adalah: a. Modul Menggunakan simbol lingkaran keci: (gambar 2.4) yang mcwakili modul yang dipanggil apabila tc1jadi suatu tindakan.
0
Gan1bar 2.4 Notasi 111otful
b. Tampilan kondisi (state)
Mcrupakan layer yang ditampilkan menurut keadaan atau atribut, untuk memenuhi suatu tindakan pada wawktu tertentu yang mewakili suatu bentuk keberadaan atau kondisi tertentu. Disimbolkan dengan gambar kotak sepcrti yang terlihat pada gambar 2.5.
,____] Ga1nbar 2.5 Nolasi tatnpilan
c. Tindakan (state transition) Mcnggunakan simbol anak panah (gambar 2.6) disertai keterangan tindakan yang dilakukan.
Gan1bar 2.6 Notasi tintlakan
Il.8.2 Spcsifikasi Proses Spesifikasi proses merupakan penjclasa dari proses-proses yang terjadi di dalam sisten 1. Spesifikasi proses . harus dimengerti baik oleh pemakai maupun
20
pembuat sistem. Spesifikasi proses akan menjadi pedoman bagi pembuat program dalam membuat kode program maupun dokumentasi. Banyak cara untuk membuat spesifikasi proses antara lain dengan memakai: a. Tabet keputusan (Decision table) b. Bahasa terstruktur (Pseudo code) dengan: I . Bahasa lngg··is terstruktur
2. Bahasa Indonesia terstruktur c. Bagan alur (flowcharl) d. Diagram notasi - Sneiderman (Diagram N-S) e. Bentuk narasi atau cerita (misal dalam bahasa lnggris a/au Indonesia) (Pressman, 1997, 341-358).
H.8.3 Struktur Program Struktur program menggambarkan bagan atau diagram control distribusi yang bersifat top - down, penampilnya dibagi tingl:at pertingkat, ar.tara lain: a. Top Level Module, yaitu model yang menentukan atau mengambil keputusan (decision making). b. Low Level Module, yaitu digunakan sebagai mm;ukkan, pemrosesan atau control sehingga menghasilkan keluaran. Struktur program ini bertuj uan untuk mem berikan gambaran proses informasi yang masuk, mengalir dan keluar pada program yang akan dibuat secara garis besar dengan menggunakan bagan terstruktur (pressman, 1997, 337).
21
II.9
Sckilas tcntang Delphi 7 Pada dasarnya IDE (Integrated Development Envirintment) milik Delphi
dibagi menjadi enam bagian utama, yaitu Menu, Speed Bar, Component Palette, Form Dcsigne:, Code Editor Jan Object Inspector.
i\1------.1.,
"' Nq
>-~ Tfoml
'"'""
+ _J V•ndi::~""' • _J U101 _.n,.~·
Afl >Nd
f,<~,
~
;s;;
.w1;,1..,
ffi.\rcl 11 hk.
em
"'1
f~l.:11,,..fu;-,j
r,...,
f:J.o
1w:,,.,.
>1'>
td.~1!«'<-J1
Objoct Inspector
m
'" !TSio
Or.IDl,.f.;ce fo~,
0Vofa$
¥Ar'-"'
rot-.
Fonn Dwlgner
Gan1bar 2.7 Bagia11-bagia11 !DE Delphi
U.9.1 Menu Menu pada IDE Dephi memiliki kegunaan sepeiti menu pada aplikasi windows lainnya. Dari menu ini, kita bisa memanggil dan menyimpan program, menjalankan dan melacak bug program, dsb. singkatnya segala sesuatu yang berhubungan dengan IDE Delphi, dapat dilakukan di Menu.
Il.9.2 Speed Bar Speed Bar atau sering juga disebut tool bar berisi kumpulan tombol yang tidak lain adalah pengganti beberapa menu item yang sering digunakan. Dengan kala lain, setiap tombol pada Speed Bar menggantikan salah satu item menu. Sebagai rnntoh,
22
tombol kiri atas adalah pengganti menu File I New, tombol clisebelah kanannya adalah pengganti menu File I Open, dst. 1f '-.} b
v_, _,,.J "' f:j
_,o
5J T..:. l':I
4fl
~~
J ,/
Gambar 2.8 Speed Bar pad" l/JE Delphi
ll.9.3 Component Palette Component Palette bcrisi kumpulan ikon yang melambangkan komponenkomponen pada VCL (Visual Component Library). VCL adalah pustaka komponen yang dcngan ini kita dapat membangun scbuah aplikasi. Pada Component Palette, terlihat bebcrapa tab, yaitu Standard, Additionals, Data Access, dan seterusnya. Stand
~
:5j :if ~
A
i"1 ~
J!.i IX
Ci
:llfl §1 ~
-
··
i J..00 ! lnterl~_L!:..
Jf
Garnbar 2.9 Ca111po11e11t Palette pat/a IDE Delp/ti
II.9.4 Form Designer Sesuai dengan namanya, Form Designer merupakan tempat dimana dapat merancang jendela dari aplikasi windows. perancangan form dilakukan dengan meletakkan komponcn-komponen yang diambil dari Componen Palette. ~Fom1t
Gan1bur 2, 10 f~orn1 Designer pada /DE Delphi
23
II.9.5 Code Editor Code editor adalah tempat dimana bisa menuliskan program. Di sini diletakkan pernyataan-pernyataan dalam Object Pascal. Pemrogram Borland Pascal pasti tidak asing lagi dengan code editor karena sangat serupa dcngan editor milik Pascal. Yang perlu
diperhatikan dari Code Editor adalah tidak perlu menuliskan
seluruh kode sumber. Delphi telah menuliskan semacam kernngka secara otomatis. ,JUu>tlJU
~Ind<>.,.,
ha-•,
5j'11llt1l•, Vor1..it•, Clsnn,
ij
H•ic?:
•n• Tron.I
~
Glaa"(lT<><>•!
trlUU
_, {
i•;u-;,~ d~
'
rcnu' TJomdl
Gambur 2.11 Cotle Editor put/a /DE Delphi
II.9.6 Object Inspector Object Inspector digunakan untuk mengubah karaktt:ristik sebuah komponen. pada Object Inspector, terlihat dua tab,) aitu Properties dan Event (diaktifkan dengan mengklik teks Properties atau Event). 1r.;;.1
ll!.jo
--~--------
:~
l~L ·-
·-·
'~ :~
,,_ 0
:=j!, ,""""' 1ilR""°"""'
i
·~ ~
, ......._.. !wj
·~
·~ M"''dlif'
14'•""""'-"' t~""--""
1-
"r....,
I~
Ous•..i~
·~ '~
,_ 1~
·-
I Dodl; ..
ill
~
.....
u;;,,.,:......,..,q
,,.
~
"""'""'""
c-1
24
Tab Properties, bisa mengubah prope1ti dari ko.[l'ponen-komponen IDE Delphi. Secara mudah, properti dapat dijelaskan sebagai data yang menetukan karakteristik komponen. Tab Event, dapat menyisipkan kode untuk menangani kejadian tertentu. kejadian bisa dibangkitkan karena beberapa hal, scperti pengklikkan mouse, penckanan tombol key-board, penutupanjendela, dsb.
11.10
Database Desktop Database Desi.top adalah fasilitas yang dimiliki Delphi untuk membantu
dalam membuat, menampilkan, mengurutkan dan mencari data yang adCI pada tahel. Database Desktop dapat menangani table dari Paradox, dBASE dan Format SQL. Dalam hal ini penulis menggunakan Paradox 7 sebagai database .
.,,!..............., ,.
""·-~-
._.
. .,
....
Ga1nbar 2.13 Tantpilan For1n Database Desktop
f,.;;,_
rr
111"
imm
i;.,.
14y
·~"-°"°" ..;r..u
>.1~
25
Gambar 2.15 F't.1r1n Cre11te Table Paradox 7
l"~!l,\{,\i>,)\" il•t1klGj> fie hit
v..... 1"1.lo Jll)U>'d Tools w.tl>w ttdp
Nam11
Aly Adh~ya Rosdiuna
6 1HlXH9 9 1100l4J 10 11COJ21
PT. PT. °"'i S11uia WijLriatko PT Mochlar Sani PT. Kaku Kocharunarnmi PT Hon S1ragar PT. Iqbal Medarii PT. PT. fshnza! l~kandar Khum~id1 Hamb~li PT. N-Hadi Must~qillm PT.
11 11llXQ2
w~hyu
12 1100:00
Heri Silhram
5 1UXXl16 6 110C017 7 1100016
Mmyantu
Caba nu Pra1uma Pra1~mu
Pr.ilama Prij\ama Pfii1ama P1ulama Pr.i1~ma
Pralama Prij10mQ Pl'lllama
PT. Praluma PT. Pratama
OM~
N
IT IT IT PEMASAAAN IT IT
"
Alrnnl~Mi
\.
''
Ga1nbar 2.16 Sa/ah satu contoh tan1p/lt111 table yang dlbuat de11ga11 Paradox 7
BAB III
METODE PENELITIAN
Seperti yang telah dibahas sccara singkat pada bab I, dalam pengembangan perangkat lunak yang menjadi penelitian penulis, ada bebcrapa tahapan yang penulis lakukan diantaranya adalah scbagai berikut: Ill.l
Tahapan Pcndelmtan Sistcm
Tahapan ini dilakukan sebelum tahapan pengembangan sistem. Pada tahapan ini dilakukan analisis kebutuhan dan identifikasi sistem. a. Analisis Kebutuhan Pada tahapan ini, ditentukan pengguna dan kebutuhannya terhadap sistem. Pengguna dari sistem adalah pihak yang berwenang dalam meiakukan penilaian dan pengambilan keputusan terhadap kandidat karyawa1 yang mcnduduki posisi kosong dalam suatu perusahaan. b. Identifikasi Sistem Penyeleksian karyawan yang bertujuan menentukan siapa yang berhak menduduki posisi/jabatan kosong, adalah
mutlak harus dilakukan dalam
sebuah perusahaan baik penyeleksian secara internal maupun penyeleksian secara eksternal. Dalam penyeleksian tersebut, penilaian yang objektif amat sulit dilakukan karena fakta-fakta penilaian sekclompok kandidat bersifat tidak jelas/tidak tetap/kabur. Oleh karena itu, sebuah sistem yang mampu melakukan penilaian sekelompok kandidat secara objektif amat diperlukan.
27
III.2
Tahapan Pengembangan Sistem Pengembangan sistem yang pcnulis lakukan menggunakan tiga tahap siklus
pengembangan model RAD (Rapid Aplication Development) seperti yang terlihat pada gamabar 3.1, Kendall & Kendall (I 003:237).
Fa:;c Pcrcncanunn
Syarat-syarut
Menentukan
'fujuan dan Syarat~syarat lnforn1asi
' n
l
Fnse konstruksi I workshop ~------------,
i--
llmpan Balik Pengguna
!
[____.________,
~......·--·-···-···-···-------·-J
~ Bekerja dcngan
Men1bangun Sisten1
Pengguna untul\: sisten1 Perancangan
r·· ·····-··-··-··-······- ············-·····--i !Vlcnggunakan
1\-lasukkan da1i
L---'
Memperkcnalkan
Sisten1 Fase Pelaksarumn (;~unbar
a.
3.1 Slklus Penge111ba11gan Sisten11nodel RAD
Perencanaan Syarat-syarat Dalam fase ini, pengguna (pihak yang melakukan penilaian terhadap kandidatlrnndidat) dan pihak yang menganalisa bertemu untuk mengidentifikasi syaratsyarat informasi yang ditimbulkan dari tujuan-tujuan tersebut. Hal ini penulis uraikan sebagai analisa terhadap sistem yang berjalan dan sistem yang akan diterapkan.
28
b. Workshop Design Pada tahapan ini dilakukan perancangan proses yaitu perancangan prosesproses yang akan te1jadi di dalam sistem, perancangan basis data yaitu perancangan tabel-tabel yang akan digunakan, perancangan antarmuka rnasukkan dan antarmuka keluaran serta dilakukan pengkodean terhadap rancangan-rancangan yang telah didefinislkan. c. Pelaksanaan Pada tabapan ini dilakukan pengujian dan pengenalan terhadap sistem.
BAB IV ANALISA DAN PERANCANGAN SISTEM
IV.1
Analisa Kcbntnhan Sistem Proses pembuatan Sistem Penyeleksian Internal Promosi Jabatan Karyawan
menggunakan
Metode
Fuzzy
Logic,
penulis mendefinisikan data-dat1 yang
diperlukan adllah: I . Data-data lengkap karyawan perusahaan. Seperti Nomor Induk Karyawan, Nama, Umur, jabatan, Lama Pengabdian, Depaiiemen dan lain-lain. 2. Data jabatan kosong dalam perusahaan. 3. Listing kategori-kategori ideal yang harus dimiliki seorang kandidat untuk menduduki jabatan kosong yang diperlukan perusahaan. Kategori ideal ini ditetapkan berdasarkan keperluan perusahaan. 4. Listing fakta-fakta berupa kalimat. Kalimat-kalimat ini mengacu kepada kriteriakriteria/persyaratan yang diinginkan dan telah dibuat oleh perusahaan dengan tujuan untuk mendavatkan hubungan fuzzy terhadap kate:gori ideal. 5. Nilai
Pereferensian (Terms). Nilai
ini tergantung kepada kebijaksanaan
pcrusahaan.
IV.2
Konsep Sistcm Penyelcksian Internal Promosi Jabatan Karyawan
IV.2.1 Penilaian Salah satu tugas sulit bagi seorang manajer perusahaan adalah menentukan siapa yang akan dipromosikan, karena biasanya terdapat lebih banyak calon daripada posisi(jabatan yang kosong.
30
Menurut Ors. Moekijat (1986:24), tidak ada organisasi yang mengandalkan pengadaan tenaga ke1ja dari luar untuk memenuhi semua kebutuhannya. Pengadaan tenaga kerja dari dalam juga merupakan suatu cara mengadakan seleksi/pemilihan. Kcbanyakan
prosedur seleksi,
seperti
mengadakan
wawancara,
memberikan
gambaran tentang nilai potensial pelamar baru dirnsa tidak sempurna. Akan tetapi, dengan melihat seseorang bekerja selama beberapa tahun, mernungkinkan manajemen membuat penilaian yang benar tentang kecakapannya. Seleksi/pemilihan ini biasanya berdasarkan atas penilaian oleh perusahaan yang dilakukan sekelompok penilai. Penjelasan ha;il penilaian seorang kandidat dapat menggunakan suatu pernyataan tertentu, seperti: "Nilai penyeleksian kandidat X untuk posisi P adalah V karena {S 1, S2, S3
...
Sn}. Cannavacciolo (1994) menyatakan bahwa pernyataan
terscbut dapat dituliskan dalam bentuk notasi:
Di mana µp(X) merupakan derajat keanggotaan X untuk
menemp~ti
posisi P.
Namun, tidak setiap pernyataan itu jelas. Beberapa fakta dapat merupakan kriteria penilaian yang tidak jelas dan dapat mengandung kriteria penilaian lain yang tersembunyi Oleh karena itu, suatu kriteria penilaian daprt merupakan kriteria yang kompleks yang dapat diperluas. Karena ha! tersebut di atas, maka setiap kalimat S yang menerangkan suatu fakta F, dapat menyatakan satu atau lebih kondisi. Kalimat S yang diperluas dapat dituliskan dalam bentuk:
Dimana: J = 1, 2, 3, ... ,n
31
IV.2.2 Standar Penilaian
Terdapat tiga konsep kategori kandidat ideal yang dibentuk oleh penulis, dan penilaian tersebut relatif terhadap beberapa standar/kategori. Ketiga konsep kategori kandidat ideal tersebut adalah: I. Ideal A Kategori ini mengandung kriteria-kriteria atau profil khusus yang didapat dari diri kandidat dan tidak termasuk kedalam kriteria-kriteria yang telah ditetapkan pcrusahaan. 2. Ideal B Kategori ini mengandung kriteria-kriteria atau profil yang diinginkan atau telah ditetapkan oleli perusahaan. 3. Ideal C
Kategori in; mengandung hasil penilaian atas kepercayaan yang diberikan perusahaan. Konsep-konsep kandidat ideal A, B dan C didefinisikan kedalam gugus fi1zzy A, B, C dengan fungsi keanggotaan µA, µ 8, µc. Hasil penilaian seorang kandidat
tcrhadap konsep-konsep kandidat akan menghasilkan derajat keanggotaan kandidat tersebut. IV.2.3 Aplikasi Penilaian
Hasil pereferensian suatu fakta dengan kategori-kategori kandidat ideal akan menghasilkan nilai (terms). Nilai pereferensian ini tergantmig pada kebijaksanaan perusahaan.
32
Nilai pereferensian yang penulis gunakan adalah: I. SSB
: Sangat-sangat Buruk,
2. SB
: Sangat Buruk,
3. B
: Buruk,
4. A-
; Di bawah Rata-rata,
5. A
: rata-rata,
6. A+
: Di alas Rata-rata,
7. G
: Baik,
8. SG
: Sangat Baik,
9. SSG
: Sangat-sangat Baik.
IV.2.4 Rcpresentasi Linier sebagai Pcnentnan Derajat Keanggotaan Kandidat Pada representasi linier, permukaan digambarkan s1;bagai suatu garis Jurus. Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurangjelas. Ada dua keadaan himpunan fuzzy linier. Pertama, kenaikan himpunan dimulai pada nilai domain yang memiliki derajat keanggotaan no! [OJ bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan Jebih tinggi (Gambar 4.1). Kedua, merupakan kebalikan yang pe1tama. Pada kasus ini penulis memakai keadaan himpunan fuzzy yang pertama.
Dcmjm
kcanggotaan
µ1xJ "'-~~~~~~~~~~--..
0 a
Domain
b
33
Fungsi Kcanggotaan:
µ[x]
=
{
O;
X:S\
(x-a) I (b-a); l;
a:Sx:Sb
X2:b
Setiap perusahaan menentukan nilai pereferensiannya masing-masing. Contoh dalam kajian skripsi ini penulis memakai nilai dengan selang dari SSB sampai SSG. Setiap nilai memiliki derajat keanggotaan masing-masing. Derajat keanggotaan d1dapat dari suatu fungsi keanggotaan basil asumsi bahwa nilai-nilai tersebut - yang digunakan untuk mengevaluasi fakta - adalah nilai-nilai yang memang telah biasa digunakan untuk menilai baik/buruk dan memiliki karakteristik (bobot) yang sama dengan jarak nilai pada skala adalah sama. Pada gambar 4.2 nilai-nilai pereferensian yang digunakan adalah SSB sampai SSG dengan batas bawah adalah 0 dan batas atas adalah 9, sehingga derajat keanggotaan setiap nilai pereferensian adalah: =
Qarak suatu nilai x - batas bawah)/(batas atas - batas bawah)
=
Qarak suatu nilai x -- 0)/(9 - 0)
=
(Jarak suatu nilai x 19)
Contoh fungsi keanggotaan untuk himpunan NILA! (TERMS) pada variabel nilai pereferensian G adalah: =
(7-0) I (9-0)
= 719 = 0.78
34
mm
-•
--mm7
NILA! (terms)
/<
~
0.78 Dcrnjat
.
/
kcanggotaan ~l[XJ
I
0
2
3
4 5
6
+
SSB
(;;unb:.1r 4.2 Ilin1p1111a11
8
7
9
-+
t +G ... SSG
Nilai perefercnsian
Fuzzy: NJLAI
Hasil dari pencarian fungsi keanggotaan dan derajat keanggotaan ini dapat dilihat pada Tabel 4.1 kolom 'Nilai'.
Nilai
SB B
Derajat Kean otaan
Dala1n Selan
I
l
I I
2
0.11 0.22 0.33
3
AA
4 5
A+
6 7 8 9
G
SG SSG
0.44 0.56 0.67 0.78 0.89
T;d.irl 4.1 Tabel NILA/
0.89
0.78 0_67
056 0.44 0 33 0.22
0.11
SSB
Sil
B
A-
A
A+
G
SO
SSG
35
Berikut ini adalah contoh pertama fungsi keanggotaan untuk himpunan Ideal A
pada variabel fakta pereferensian ke- 5 berdasarkan pengaturan pereferensian
fakta-fakta dengan kategori pada tabel 4.3 adalah: µIDEAL_A[fakta ke-5] = (3 - 0) I (6- 0)
= 3 I 6 = 0.50
Nomor Fakta
Kalimat Katcgori Kriteria
2 3 4 5
6 Tabel 4.2 Tube/ PEREFERENSIAN FAKTA DENGAN KATEGORI /D'EALA
Nilai Pcrcferensian SSB SB B A-
Nomor Fakta 2 3
A
5
A+ G SG SSG
1.4 6
Tnbel 4.3 Ttihe/ IDEAL A
Jumlah Fakta 0 I I 0 I 0 2 I 0
Jarak Fakta Dalam Selan 0 I 2 2 3 3 5
6 6
0.17 0.33 0.33 0.50 0.50 0.83 I
36
• SSG
9
-
SG
8
G
7
A+
6
-
A
5
A·
4 ~
SB
3
2
c---
SSl3
2
3
5
-
I
4
6
Gambar 4.4 Graf/k FUNGS/ KEANGGOTAAN X PADA KATEGORI Jf)EALA
Contoh !;edua fungsi kcanggotaan untuk himpunan ldeal B pada variabd fakta percfcrcnsian ke- 5 berdasarkan pengaturan pereferensian fakta-fakta dengan kategori p::ida tabel 4.5 adalah: µmEAL_B[Fakta ke- 5) =(I - 0) I (8 - 0)
= I I 8 = 0.13
Non1or Fakta
2 3 4 5 6
Kriteria l(alin1at Katcgori f(rcatifitas karya\van dalan1 pekerjaan Kcteram ilan karya\vnn d.1la1n bcrdiskl'si dan bt!kon1unikasi Kcman1 uan kcrjasmna dcn_gan kolega Kccakapan karyawan
d:ilu~pcndt!lcgasinn
wewenang kcpada kolcga
l<.en1a1u uan 111en1otivasi
Tolcransi terha
Tabet 4.· Tabc/ l'EREFERENSIAN FAKTA DENGAN KATEGORI IDEAL B
37
Nilai Pcrcfcrcnsian
Non1or
SSll Sll
5 4
Fakta
B AA A+
2 0
2.3.6
Derajat
Keanggotann 0.13 0.25 0.25 0.25 0.38 0.63 0.63
2 2 2 3 5 5 8 8
0 0 I
I 7.8
G SG SSG
Jal'ak Fakta Dalam Sclang
Jumlah Fakta
3 0
Tabel 4.5 Tabe/ IDEAL B
• SSG
9
SG
8
G
7
A+
6
-
A
A·
5 4 3
.---. SB
2
....-
SSB
I 5
4
7
8
2
3
Gnmbar 4.5 Grnflk FUNGSI KEANGGOTAAN X PADA KATEGORJ WEAL B
Terakhir adalah contoh ketiga fungsi keanggotaan untuk himpunan Ideal C pada variabel fakta pereforensian ke- 3 :
µrnEAL_c[Fakta ke- 3] = (2 - 0) I (t> - 0)
= 2 I 6 = 0.33
38
Non1or Fakta
Kriteria Kalimat J(ategori
2 3
4 5 6
Tabel 4.6 Tabet PEREFERENSL4N FAKTA DENGAN KATEGORI IDEAL C
Nilai Perefercnsian SSB SB ll
Nontor Fakta 4
Jumlah Fukta
Jarak Fakta Dalam Selang
0
I I
2 3 4 4 4 6
0
2 0 0
G SG SSG
0.17 0.17 0.33 0.33 0.50 0.67 0.67 0.67 I
2
3
AA A+
Dcrajat
Keanggotaan
2
5.6
Tabel 4. 7 Tabet IDEAL C
SSG
9
SG
8
G
7
A+
-
A
A·
'.
4
-
B
SB
6
~
3
2
,....._
I
SSB
4
3
2
5
6
39
Perhitungan derajat keanggotaan kandidat X untuk kategori tertentu (Ideal A, [deal B dan Ideal C) didapatkan dari menjumlahkan hasil pcrkalian jumlah fakta dengan panjang/jarak nilai dalam sclang dan membaginya dcngan hasil perkalian antara batas bawah nilai(terms) dengan jumlah fakta yang cligunakan pada masingmasing katcgori ideal. Dari tabel 4.8, tabcl 4.9 dan tabel 4.10 berturut-turut didapat derajat keanggotaan Ideal A, Ideal B dan Ideal C adalah µmEAL_A(X) = 32/54 = 0.59,
µlllEAL_a(X) = 44/72 = 0.61 dan µIDEAL_c(X) = 33/54 = 0.61. Bila nilai-nilai tersebut direfercnsikan pada derajat keanggotaan nilai pada masing-masing kategori (tabel 4.3, tabel 4.5 dan tabel 4. 7 pada kolom Derajat Keanggotaan), maka untuk Ideal A, X memiliki nilai A+. Sedangkan untuk kategori Ideal B dan Ideal C berturut-turut adalah A dan A.
Nilai rerefereusian
Bob<Jt
Jarak Nilul Dal.Jun Scl11og
Jumlab
Nilai
(a)
(b)
(c)
(e)
(c * c)
I
()
2
I
0 2 3 0
SSB SB B
AA A+ G SG SSG
3 4
Has ii
Fa kt a
7
0 I 0 2
0 14
8 9
')
8 0
5 6
5
[' l'abel 4.8 Filkta-faktayang diatur berdasarka11 kun1pula11 nilai IDEAL .A
32
40
Nil.ai Pcrcfcrcnsian
Bobot Nllai
Jaruk Nilai Dalnm Sclang
(•)
(b)
Jumlah
Jlasil
(c" c)
(c)
Fukta (c)
SSB
I
I
Sil B
2 3
AA A+
4
0 0
G
5 6 7
2 0
S(i
g
3
24
SSG
9
()
0
I
2 0 ()
5 12 ()
[ T:ibel 4.9
Fakta~fakta yang
diatur berd(lsark1111 ku1np11/a1111ilai /Dl!."'AL B
Percfcrcnsian
(c() -1
'I SB B
AA A+ G SG SSG
44
2 3 4 5 6 7 8 9
0 0 I I 0 0 2
0
5 6 0 ()
18
[
33
Tabel 4. JO Fakta-fakt11 y1mg tlialur bertl11sark1111 k11mp11/a11111/ai IDEAL C
Selanjutnya setelah perhitungan derajat keanggotaan pada masing-masing kategori didapat, maka diperoleh penilaian akhir seorang kandidat untuk menempati suatu
posisi/jabatan kosong perusahaan dengan cara mencari rata-rata dari
penjumlahan nilai-nilai derajat keanggotaan. Derajat keanggotaan/nilai akhir kandidat tersebut adalah: µp(X)
=
(µmEAL_A(X) + ~l10EAL_c(X) + µmEAL_c(X)) I 3 (0.59 + 0.61 + 0.61) I 3 = 0.60
41
Dari derajat keanggotaan/nilai akhir tersebut bila mengacu pada tabel 4.1 kolom Dcrajat Keanggotaan maka X memiliki nilai akhir untuk mencmpati jabatan/posisi kosong adalah 'di atas A' atau 'disekitar rata-rata (A)'. Dalam kasus unik yang mungkin saja ditcmukan yaitu jika tcrdapat kandidat yang mcmiliki dcrajat kcanggotaan yang sama, maka langkah penyelcsaiannya adalah dengan
memberikan fakta-fakta/kalimat-kalimat penilaian baru
untuk menilai
kandidat-kandidat tersebut.
IV.3
Perancangan Sistem Dalam merancang Sistem Penyeleksian Internal Promosi Jabatan Karyawan
penulis menggunakan 5 langkah perancangan sistem, yang terdiri dari Rancangan
Proses, Rancangan Basis Data, Rancangan Menu, Rancangan Masukkan, dan Rancan1'.an Keluaran.
IV.3.1 Rancangan Proses Rancangan proses ditujukan untuk menentukan urutan kejadian, sehingga dihasilkan output seperti yang diharapkan. !upul da1a 11.i!ai pc1efcrcnsian, da!a J..alimat till.ta dan da111 kategori ideal.
Input data katcgmi l..m)'il\\iln yang d1b111uhkan pcrusahaan.
Tidak
Cari k:· 1didat kiuyawan yaug memcnuhi kalcgori awal Jtt!msal1aan unh1k di romo5ika11.
y Sck.ksi karyawau de11gan UICtt:fctensikau fakta dengan L:a!egori Ideal A. ll dan C.
KANDIDAT
42
l. Rancangan Basis Data Data-data yang diperlukan pada proses masukan disimpan dalam basis data. Hal ini dimaksudkan agar data bersifat dinamis yaitu dapat melakukan pcnambahan dan penghapusan data. Di bawah ini adalah rancangan ERO (Entity Relationship Diagram) sistem Pcnyelcksian Internal Promosi Jabatan Karyawan (gambar 4.8) dari 23 tabcl yang digunakan. Penulis hanya mendcfinisikan 19 tabcl pada rancangan proses dibawah ini.
~I i"J_--1
;_~~
['."'
j
-. ,.. ...=1,,..,..,..,_ f.
~:.
Gani bar 4.8 Ra11ca11gan ERD Antar Tabet p1u/a Prototype Penseleksian Internal Karyawau
43
a. Tabel Karyawan, untuk menyimpan data lengkap seluruh karyawan. Field Name
Type
1 No lnduk
21lm9
1191+-
3 Cabang 4 Divisi 5 Jabatan 6 Golongan 7 ·Pendidikan_Terakhir B Usia(Th) 9 Masa_i<erja(Th) 10 Meng.kuti_PK_Sebanyak 11 Penilaian_Kesetiaan
A
Size l<ey, 10i •
A A
20:
A A
20!
20: 20
5'
A A A A A A
5 5 5 5. 15•
Garn bur 4.9 Spesijikasi Tabel Karya1van
b. Tabel Jabatan Kosong, untuk menyimpan data posisi/jabatan kosong perusahaan. Field Name
Type
;umu.nu+MPB.
A
2 Divisi 3 Keperluan Karyawan
A A
Size
Key
30 30 51
Garn bar 4.10 Spesifikasi Tabe/ Jabata11 Kosmrg
c. Tabel Cabang, untuk menyimpan data cabang perusahaan. Field Name 1.~ili 2, Nama_Cabang
Type, Size .. Key
=A A
5 • 20!
44
d. Tabel Divisi, berisi data divisi-divisi yang ada di perusahaan. Field Name
Type
1~A 2 Nama_Divisi A
Size
Key
5 • 20.
Gambar 4.12 S[Jesijlkasi Tube/ DMsi
c. Tabcl Jabatan, berisi data macam-macam tipe jabatan karyawan. Field Name
Type
1~A 2 Nama_~Jabatan A :
Size jKey
5 .•
20:
Gambar 4.13 Spesijlkasi Tabel Jabattm
f.
Tabel Pend. Terakhir, berisi data selang pendidikan karyawan. Field Name
Type
Size :Key_
1!!!Jli~!MFllA
5: • i
2 Pendidikan_Terakhir
fi:
A
G'unhar 4.14 Spesijikasi Tabet Pendidikan Terakhir
45
g. Tabel Golongan, berisi data tipe golongan karyawan.
-A Field Name
2 Golongan
Type
Size
Key
5 • 5
A
G:unbar 4.15 Spesijikasi Tabel Golonga11
h. Tabel Usia, rerisi data selang usia karyawan. Field Name
Type
Size
11li~A 2 Usia(Th) A
Key
5, • 5
Gnmbar 4.16 Spesijlkasi Tabet Usia
i.
Tabel Penilaian Kinerja, berisi daca penilaian kinerja yang pernah diikuti. Field Name
Type
iD~A 2 Mengikuti_PK_Sebanyak A
(~arnhnr
Size
Key
5 • 5
4. l 7 ~Ypesljikasl Tabel J>e11ilult111 Kinerja.
46
J.
Tabel Masa Kerja, berisi data masa kerja karyawan. Field Name 1 l!Pll!&111Dl!i'!J'IH 2 Masa_ Kerja(Th)
Type . Size __ ,Key
3
A A
5 • 5;
Gambar4.lf Spesiflkasl Tabel Masa Kerja
k. Tabel Kesetiaan, berisi data tipe penilaian kesetiaan karyawan. Field Name
,Type
1.imtmllB!llll!lllli\I
A
2 Kesetiaan
A
Size jKeY,
3
1 1
...
2Uj'
Gambar 4.19 Spesiflkasl Tabel Kesetiaa11
I.
Tabel Kandidat Karyawan, untuk menyimpan data kandidat terpilih. Field Name 1 No lnduk
,.
!Type· Size '
2 m!R;.&• 4111: 3'Cabang 4 Divisi 5 Jabatan 6 Golonga·1 7 Pendidikan_Terakhir 8 Usia(Th) 9 Masa_Kerja(Th) 10 Mengikuti_Pl(_Sebanyak 11 Penilaian_Keseti_aan
A A A A A
A A A A A A
Key
10 20! 201 20 20
•
5:
5i 3: 51'
5i 15'
Gambar 4.20 Spesiflkasl Tabe/ Kam/Ida/ Karyawan
47
m. Tabel Kincrja, berisi data macam-macam tipe k.incrja k.aryawan. ,Type. Size
Field Name
R'tlffU.,!@il '
2 'Kinerja
Gani bar 4.21
'tt•1:
~"Tpesifikasi
A A
I
Key
5 .,, i 20
1i1bel Kinerja
n. Tabel Nilai Pereferensian, berisi data nilai pereferensian. Field Name
jType
Size .. iKey,
5:
1 IDJ',m!!ll\Ml!lli1M 2: Pereferensian 3'Kalimat
5;
20:
Gambar 4.22 Spesijikasi Tabel Nilai Perefere11sia11
o. Tabel Nilai, berisi data hasil penilaian k.andidat terpilih. Field Name
:~IIDll!l1!llMllllll!!!l'!!lBlliliilill·lfiMllilllWllll 2 ·No_Pereferensian 3: Pereferensian 4 No_Fakta
1Type . Size ;Key ! 1
A A A A
5 Nilai_Absolut
N
6 Jumlah_Fakta 7 Nilai
N N
Gambar 4.23 Spesifikasi Tabe/ Ni/ai
10: • 10' •
5 20
48
p. Tabel Kalimat A, berisi kalimat fakta penilaian untuk kandidat ideal A. Kalimat faKta penilaian untuk kandidat ideal B clan C memiliki spesifilrnsi label (Tabcl Kalima! B dan Tabel Kalimat C) sama seperti gambar 4.24. Field Name
Typo
Size
1 [;1Jll'i~ A 2 Kalirnat_Penllaian
Key;
5i
1t
!
255
A
(;a1nbar 4.24 Spesijikasi Tabel J(ulinu1t A
q. T7tbcl Derajat Keanggotaan Ideal A, berisi nilai .. nilai derajat keanggotaan untuk tipe ideal A. Tabel Derajat Keanggotaan Ideal B dan C memiliki spesilikasi tabcl sama seperti gambar 4.25 di bawah. Field Name
Type
l~A
2 No
A
3. Pereferensian
A
4 No_Fakta
A
5 Nilai_Absolut 6 Nilai
N N
Size .Key"
101 "' 10: • 5, 10':
(;anibar 4.25 Spesifikasi Tabel Derajat Keanggotaau Ideal A
r.
Tabel Derajat Keanggotaan Kandidat A, berisi nilai derajat keanggotaan kandidat untuk tipe ideal A. Tabel Derajat Keanggotaan Kandidat B dan Tabel Derajat Keanggotaan Kandidat C memiliki spesifikasi sama seperti gambar 4.26 di bawah.
49
Field Name
!Type;
1~A
2 Nama
A
3.Derajat_Keanggotaan_A
!
Si~e
,Key, *
5!
20
N
Gan1bnr 4.26 Spesijikasi Tabe/ Derajat Keanggotaan Kandidat A
s. Tabel Derajat Keanggotaan Akhir, berisi nilai derajat keanggotaan akhir kandidat. Field Name
+
Type
1 ~ililltl©fPHf* A 2 Nama A 3 Derajat_i<eanggotaan_Akhir N
Size -Key 51 *
20:
Garn bar 4.27 Spesiflkasi Tabet Derajat Kea11ggotaa11 AkfJir
50
IV.3.2 Rancangau Menu
[
FormlnpulDl11<1_Klik
Layar Intro
FormKaryawan_Klik
.[
FormKeb"t"hanl'osisi_Klik • [
Form Input Data Forni Karya\van
Form Kebutuhan Posisi
Fom1Kandidat_Klik
-
MENU PILIHAN
'
[
FormPencKandidat Klik
:
·-
FormPenyK.andidat_Klik
[ [
FonnProscsPenilaian_Klik • [
I l
f-
Forni Kandidat
f-
Forn1 Pencari2n
-
l(andidat
Form Penyeleksian
Kandidat Form Proses Penilaian
Akbir Kandidat FormKandidatTerpilih_Klik
-
Form Proses
Tampilkan Kandidat Terpilih
-
-
Tutup_Klik
Gan1bar 4.28 Ra11ca11gan STD !tfenu
Rancangan STD (State Transition Diagram) menu berfungsi untuk memanggil sub-program lain untuk dijalankan seperti tcrlihat dalam gambar 4.28 di atas. a. Rancangan Masukan Rancangan masukan dilakukan agar tingkatan keakuratan data tiuggi dan proses pemasukan data benar sehingga dapat dit<:rima dan dimengerti oleh pengguna sistem. Ada 3 rancangan masukkan yang didefinisikan yaitu rancangan Input Data, rancangan Data Karyawan dan rancangan Kebutuhan Posisi. Ketiga rancangan masukan tersebut dapat dijelaskan sebagai berikut:
51
1. Rancangan STD Input Data Rancangan 'ni berfungsi untuk menginput data fakta dan data nilai pereferensian yang dibutuhkan oleh sistem seperti yang dijelaskan dalam gambar 4.29 di bawah ini: Labc!Canccl klik
I
Navignsi_klik
I
I
IL1bcllnputFakta._klik Pilihan Navigasi
I
FORM INPUT •'AKTA
·-. ~
~I
'
"'• "' "'"
.25
•u
"• >
iJ
.~
u
:;;,
~:;:;;;
"""
.~l
I I
FORM INPUT
FORM INPUT DATA
FORMINPFr
., ~
"~
•
>
-"'-8
Navignsi_klik
I I
Pilihan Navigasi :
' LabellnputPcrf_klik ~ I
La!:i¢1Canccl_klik
,I
~
~
~
~~
;;::: ~
c
• • "'u
'
' FORM INPtrr
.
·"-
ill .
NILA! l'EREFEEltNSIAN
I
Gambar 4.29 Ra11ca11ga11 STD Input Datu
2. Rancangan STD Data Karyawan Rancangan Data Karyawan, berfungsi untuk J11(mambah data karyawan, mengurutkan data karyawan, menghapus data karyawan, mencari data karyawan, dan navigasi untuk pindah ke record awal, record akhir, record sebelum, dan record berikut. Hal ini digambarkan dalam STD dibawah ini (Gambar 4.30).
I
I
52
C'ilihau Sorting (Nama)
Sorting
Tampilkan
I
NavigasiKlik
FORM DATA
Piliha11' Navigasi
I
KARY AW AN
I
AwulKlik
AkhirKlik
.
Tam bah Data_K!ik
SebelumKlik BerikulKlik
'i
Sirnpan Klik Balal_Klik
Tambab~.,._
Form Ka1)'aw;u1
Hapll';Data_Klik Hapus_Klik
Datal Klik
Form Hapus Data Karyawan
1-4--
Gambar 4.30 STD Data Karymva11
3. Rancangan STD Data Kebutuhan Posisi
!'ORM DATA KEBUTUHAN POSIS!
Navig:L~iKhk
~"'~' I Tambah Data
t
Simpan_Klik
Batal Klik
For1n Tan1bah Data l(ebutuhan Posisi
Garn bar 4.31 Rnncangan STD Data Kehutuhan Posisi
Rancangan data kebutuhan posisi berfungsi untuk menampilkan data posisi/jabatan kosong perusahaan, menambah data posisi kosong, dan menghapus data posisi kosong.
53
b. Rancangan Keluaran Rancangan keluaran ditujukan untuk mendapatkan hasil sesuai dengan yang diinginkan oleh pengguna. Kduaran sistem berupa derajat keanggotaan masing-masing kandidat dan hasil penilaian akhir/derajat keanggotaan akhir kandidat
yang
menentukan
seorang
kandidat
itu
pantas
menduduki
jabatan/posisi kosong berdasarkan nilai terbesar. Ked.ua rancangan STD untuk keluaran dapat dilihat pada gambar dibawah ini. (gambar 4.32 & gambar 4.33) I . Rancangan STD Data Pencarian kandidat Rancangan Data Pencarian Kandidat, berfungsi untuk mencari kandidat karyawan untuk mengisi jabatan/posisi kosong perusahaan berdasarkan data-data karyawan yang dimiliki perusaha.)n (internal).
LkUpJabatan_Klik
-
Pilihan Jnbatan Dipegang
LkUpDivisi_Ktik
LkUpGol_K!ik
LkUpPK_KHk
FORM PENCARIAN KANDIDAT
;:._
.
LkUpSctiu_K/ik . _
~
Pilihan Golongan
~
Pilihan Penilaian l{inerja
~
Pilihan Kesetiaian
I I
LkUpPend_K\ik
-
LkUpr-.1asa_Klik
I
LkUpPetatihan_K!ik
Gnn1bar 4.32
Piliban Divis,i
I= LkUpRata2_Klik
Rt111c1111ga11
r-
Pilih_Klik
I
Pilihan Rata-rata J(inerja ~ Pilihan Pend. Terakbir
~
Pilihan J\ilasa Kerja
f-
Pilihan Pelatihan yang Pernah Diikuti
-
STD Data Pencarian Kandldat
.
TA!\.IPILl:AN KAND!llAT
54
2. Rancangan STD Penyeleksian Kandidat Rancangan Penyelcksian Kandidat, berfungsi untuk mcnyclcksi dan mcmilih kandidat tcrbaik dengan mcnampilkan nilai derajat kcanggotaan Ideal A, B dan C dan menghitung nilai derajat keanggotaan akhir kandidat. Kandidat dengan derajat keanggotaan yang terbesar berhak mengisi jabatan/posisi kosong perusahaan. (gambar 4.33 )
LkUpNolnd_Klik
~
->~_No_lnduk
FORM l'ENYELEKSl.AN
Sdcksi Khh.
.
KANDI DAT
I'ORJ\f PILllIAN ID£AL A. n, C
LkUpPi!Fuk
Pihhan Fakta RdBtnNi!Pc
i
A,n,c
Pilih:m Nilai l'crc!Crcnsian
J
cm1ccl_Khk
NIL..\l HEU.AJAT
KEANGGOTAAN
Kc~
NILAI llERAJAT lliiung_Klik
1---:.=----I>
KEANGGOTAAN
T111npilk1111_Khk
TAJ\IPILKAN
AKlllR
KANUIDAT
KANDIDA'f
TEIU'll.111
Gan1bar 4.33 Rancangan STD Penye/ekslan Ka111!ldut
BABY
IMPLEMENTASJ
Tahap implementasi meliputi pemrograman sistem clan pengujian sistem. Bab ini membahas sarana-sarana pendukung yang diperlukan agar sistem perangkat lunak ini dapat berjalan dengan baik.
V.l
Tools Pcndukung Sistcm
V.1.1 Pcrangkat Kcras Perangkat keras untuk mcnjalankan system perangkat lunak yang penulis rancang adalah sebuah unit komputer dengan konfigurasi minimal sebagai berikut: a. Prosesor setara Pentium II. b. Mem01y 64 MB.
c. Monitor dengan resolusi 1024 X 768 d. Keyboard dan Mouse.
e. VGA 32MB.
V.1.2 Pcrangkat Lunak Spesifikasi Operating Systems (OS) dan perangkat lunak yang digunakan sebagai berikut: a.
Windows 98/2000/XP/NT
b. Borland Delphi 7.0
c. Paradox 7.0
56
V.2
Gambaran dan Fungsi Modul-modul Program Fungsi dari 12 sub-program sistem dijelaskan dibawah ini dan dapat dilihat
secara grafis pada gambar 5.1: 1. Sub-program utama, sebagai tempat dalam memanggil sub-program lain dijalankan serta berisi gambaran keseluruhan program. 2. Sub-program input data, merupakan menu pilihan untuk masuk kedalam submenu input nilai pereferensian dan menu input fakta peni laian. 3. Sub-program input 11i/ai perefere11sia11, berfungsi sebagai media penginput data nilai pereferensian yang akan digunakan dalam menilai kandidat. 4. Sub-program inputfakta pe11ilaia11, berfungsi sebagai media penginput datl. fukta penilaian ideal A, ideal B dan ideal C yang nantinya akan direferensikan terhadap nilai pereferensian. 5. Sub-program data karyawa11, merupakan menu yang dapat menampilkan, menambah, menyimpan, mengubah dan menghapus data karyawan perusahaan. 6. Sub-program keb11tulta11 posisi, merupakan menu yang dapat menginput, menghapus dan menampilkan data lengkap posisi/jabatan kosong perusahaan. 7. Sub-program
pe11caria11
kandidat,
berfungsi
mencari
kandidat
yang
dipromosikan untuk menduduki jabatan/posisi kosong perusahaan berdasarkan persyaratan awal yang sebelumnya telah ditetapkan oleh perusahaan. 8. Sub-program kandidat terpililt,, menu ini berfungsi untuk menampilkan kandidat terpilih yang akan dipromosikan untuk menduduki jabatan/posisi kosong. 9. Sub-program keselurulza11 kandidat, menu ini bcrfungsi untuk menampilkan seluruh kandidat yang terpilih melalui sub-program pencarian kandidat.
57
J 0. Sub-prog -am pe11yeleksia11, menampilkan menu pilihan analisis penilaian
kandidat untuk ideal A, ideal B dan ideal C. 11. Sub-program a11111isis penil11ia11 ka11didat, melakukan proses penilaian kandidat dcngan cara mereferensikan fakta dengan nilai perefcrensian yang akan menghasilkan derajat keanggotaan masing-masing fakta. 12. Sub-program pe11ilain aklzir, melakukan proses penilaian kandidat dengan cara menjumlahkan nilai rata-rata derajat keanggotaan kandidat untuk masing-masing tipe ideal A, ideal B dan ideal C yang menghasilkan derajat keanggotaan akhir/nilai akhir kandidat.
I
PENGGLINA
I ~
Sl!B-PROGltAl\t llTA!\lA
~---'-'r='~~~~~~~~.~-~~~u_.~~ i~SUB-PROGRA~I SllB-PROGRAM h:EBlll'llllAN POSJSI
SUB.PROGRAM DATA KARYAWAN
Sl!U..PROGUAM INPUT DATA
- Suh-1>rogntm
.
Sub-program
. Sub-program
kandidat tcrpilih.
input fakta.
- Suh-progriuu nilni pereferensian
SllB-PHOGRAM PENYEtEKSJAN
PENCAIUAN KANDIOAT
.
Sub-program
scluruh kaud,ldat terpilih.
.
aualisis pcnilaiun ideal A. S11b-progr.tm analisl
. Sub-1Jrogra1n
-
analisis lll!nilaian idea.JC. Sub-program penilafun akhir.
Garn bar 5.1 Ga1nhara11 dan Fuugsi Modut-Jt.fodul Progranz.
V.3
Rancangan Modul
Sesuai dengan modul-modul fungsi program diatas, t•:rdapat 9 rancangan yang penulis buat, mcliputi :
58
a. Rancangan Menu Utama Rancangan ini berfungsi sebagai interface tempat sub program lain dipanggil untuk dijalankan, yang terdiri dari data karyawan,, kebutuhan posisi, input data, pencarian kandidat dan penyeleksian kandidat (Gambar 5.2).
Gambar 5.2 Form Menu Utama
b. Rancangan Data Karyawan Rancangan ini berfungsi sebagai interface untuk memodifikasi data karyawan yaitu menambah data karyawan, mengubah data karyawan, menyimpan data karyawan dan menhapus data karyawan. (Gambar 5.3)
59
d. Rancangan Kebutuhan Posisi Rancangan ini sebagai interface untuk melihat, menambah, mengubah, menyimpan dan menghapus data kebutuhan posisi kosong. (Gambar 5.4)
Gambar 5.4 Form Kehutulta11 Posis/
e. Rancangan Pilihan Input Data Rancangan ini sebagai interface untuk memilih input data mana yang user ingin terlebih dahulu lakukan. Terdapat 2 pilihan input data dal8m form ini yaitu input data nilai pereferensian dan input data fakta penilaian.
Gambar 5.5 Form Pi/J/ia11 lllput Data
60
f.
Rancangan Pilihan Input Fakta Penilaian Rancangan ini sebagai interface untuk memilih input data fakta pcnilaian mana yang user ingin lakukan terlebih dahulu. Ada tiga pilihan tipc yaitu tipe fakta penilaian kandidat Ideal A, Ideal B dan Ideal C seperti tcrlihat dalam gambar 5.6 di bawah ini.
Gambar 5.6 Form Pili/tan Input Fakta Penl/aian
g. Rancangan Input Fakta Penilaian Interface ini berfungsi menyimpan input fakta untuk penilaian kandidat. Terdapat 3 tipe input kalimat fakta yaitu Ideal A, Idea.I B dan Ideal C.
61
h. Rancangan Input Nilai Pereferensian Interface ini herfungsi menyimpan input nilai pereferensian yang akan direferensikan dengan fakta penilaian kandidat ideal A, ideal B dan ideal C.
Garn bar 5.8 Form Input Ni/al Perefere11Sian
i.
Rancangan Check Nilai Pereferensian
Gambar 5.9 Form Clteck Nilai Pereferenslan
62
j.
Rancangan Derajat Keanggotaan Nilai Pereferensian Interface ini menampilkan derajat keanggotaan dari nilai perefc:·ensian yang digunakan.
Gambar 5.10 Form Derajat Kea11ggotaan Nilai (terms) Pereferensian
k. Rancangan Grafik Derajat Keanggotaan Nilai Perefer•ensian
Gambar 5.11 Form Grajlk Derajat Keanggotaan Ni/al (terms) P Jrefere11sia11
63
I.
Rancangan Pencarian Kandidat Awai Rancangan ini sebagai interface untuk mencari kandidat awal di antara karyawan-karyawan yang tersedia dalam perusahaan.
Gambar 5.12 Form Pencarian Kandidat Awai
m. Rancangan Kandidat Karyawan Memenuhi Syarat Rncangan ini sebagai media dalam menampilkan kandidat karyawan yang memenuhi persyaratan awal perusahaan.
Garn bar 5.13 Form Kantlldat Karyawanyang Memen1111/ Syarat
64
n. Rancangan Pilihan Tipe Model Penilaian Rancangan ini sebagai interface untuk memilih model penilaian mana yang user ingin lakukan terlebih dahulu. Ada tiga tipe model penilaian yaitu untuk Ideal A, Ideal B dan Ideal C seperti terlihat dalam gambar 5.14 di bawah ini.
Gambar 5.14 Form Pllil1a11 Pe111/aia11
o Rancangan Analisa Penilaian Ideal A Interface
ini
sebagai
media
penilaian
kandidat
karyawan
dengan
mereferensikan fakta-fakta dengan nilai pereferensian yang digunakan. Untu:<: analisa penilaian Ideal B & Ideal C memiliki fungsi dan tampilan yang sama.
65
p. Rancangan Grafik Derajat Keanggotaan Ideal A Interface grafik untuk derajat keanggotaan Ideal B dan Ideal C memiliki fungsi dan tampilan yang sama.
Gambar 5.16 Form Grajlk Derajat Keanggotaan Ideal A
q. Rancangan Nilai Derajat Keanggotaan Ideal A Interface form untuk nilai derajat keanggotaan Ideal B dan Ideal C memiliki fungsi dan tampilan yang sama.
Gambar 5.17 Form Nllai Derajat Keanggotaa11 Ideal A
66
r.
Rancangan Derajat Keanggotaan Ideal A untuk Kandidat X lnteface ini berfungsi menampilkan nilai derajat keanggotaan kandidat X untuk tipe penilaian Ideal A. Fungsi dan tampilan untuk Ideal B dan Ideal C sama.
Gamb:.r 5.18 Form Derajat Kea11ggotaa11 Ideal A
s. Rancangan Penilaian Akhir/Derajat Keanggotaan Akhir untuk Kandidat X Berikut ini adalah tampilan hasil penilaian akhir kandidat X yang merupakan rata-rata dari derajat keanggotaan Ideal A, Ideal B dan Ideal C.
Gambar 5.19 Form Nl/ai Akllir/ Derajat Kea11ggotaa11 Ak/1ir
BAB VI
PENUTUP
VI.I
Kcsimpulan
Berdasarkan permasalahan yang ada tentang penye:leksian internal promosi jabatan karyawan dan pemecahannya yang penulis penulis coba tawarkan, dapat diambil kesimpulan sebagai berikut: a. Pada permasalahan penyeleksian internal promosi jabatan karyawan, metodc gugus fuzzy dapat menjadi pilihan pemecahannya. b. Sistem yang penulis buat dapat secara umum digunakan dalam ruang lingkup instansi/organisasi manapun selama instansi/organi:msi tersebut menerapkan penyeleksian karyawannya secara internal. c. Sistem yang penulis buat memiliki kelemahan dan tidak sepenuhnya memecahkan setiap permasalahan yang dimiliki oleh instansi/organisasi bersangkutan. Oleh karena itu butuh penyempurnaan iebih lanjut. d. Sistem ini memiliki batasan hanya pada penyeleksii.n internal bukan eksternal. e. Sebagai tambahan pustaka - khususnya untuk Universitas Islam Negeri Syarief Hidayatullah Jakata Jurusan Teknik Informatika - bagi perkembangan penerapan gugus fuzzy sebagai salah satu solusi terbaik pemecahan masalah dalam kehidupan sehari-hari.
VI.2
Saran Sebagai penyempurnaan sistem yang penulis buat agar lebih tepat sasaran
dalam pengJunaannya, penulis menyarankan poin-poin sebagai berikut:
68
a. Pengembangan kedepan penulis harapkan sistem ini dapat melakukan penyeleksian secara eksternal dengan memperhatikan kaidah gugus filzzy dan mcnsinkronisasikannya dengan kebutuhan perusahaan. b. Penyeleksian kandidat karyawan seharusnya dapat dilakukan antar department untuk satu posisi/jabatan kosong dalam perusahaan. Karna dimungkinkan untuk satu posisi/jabatan kosong, kandidat yang memenuhi syarat terdapat dalam depaiiment yang berlainan. c. Diharapkan bagi pengguna sistem ini telah mem iliki dasar pengetahuan pengoperasian komputer yang man tap. d. Jika terdapat lebih dari satu kandidat yang memiliki nilai derajat keanggotaan yang sama, maim langkah yang diambil adalah dengan memberikan faktafakta penilaian baru (yang dihasilkan dari pengujian/kepercayaan yang diberikan) untuk direferensikan dengan nilai pereferensian. e. Penulis mengharapkan kedepan sistem ini memiliki alur proses yang lebih mudah digunakan (more user friendly).
69
DAFTAR PUSTAKA
Sri
Kusuma Dewi, Artificial lntelegence (Teknik dan Aplikas1), Edisi
l
(Y ogyakarta: Graha Ilmu, 2003 ). Klir, G.J. & Bo Y., FuzzySets and Fuzzy Logic. Tlteory and Ap/ication, 2°d Edition (America, New Jersey: Prentice-Hall, 1995). Cannavacciulo, G. Capaldo, An Approaclt to Tlte Evaluation of Human Resources
Using Fuzzy Set Tlteo1y, The Third IEEE (America, New York: IEEE, 1994). Jeffry L. Whitten, , Kevin C. Dittman, Lonny D. Bentley Systems Analysis And
Design Metltods,
5th
Edition (America, New York: McGrawHill Companies
Inc., 2000). Moekijat, Ors, Perencanaa11 i/an Pen1 'embangan Karier Pegawai, Cetakkan ke-4 (Bandung: Remaja karya CV Bandung, 1986). Kartini Kartono, Ora, Pemimpin da11 RP-pemimpilwn, Cetakkan ke-5 (Jakarta: Rajawali Pers, 1990). Kendal & Kendal, A1wlisis Dan Pera11ca11gan Sistem, Jilid Pertama Edisi Bahasa Indonesia (Jakarta : Pearson Education Asia Pte. Ltd. dan PT. Prenhallindo, 2003). Roger S. Pressman, Ph.D, Rekayasa Perang/wt Lunak, Buku I (Yogyakarta: Andi Yogyakrta, 200 l ). Antony Pranata, Pemrograma11 Borland Delphi., Edisi ke-3 (Yogyakarta: Andi Yogyakarta, 200 l ). Abdul Kadir, Pemrograman Database Me11gg1111aka11 Delphi, Jilid ke-l (Jakarta: Salemba Infotek, 200 I). Jogiyanto H.M., Baltusa Pascal, Jilid ke-1 (Yogyakarta: Andi Yogyakarta, 1999).
70
LAMPIRAN-LAMPIRAN
Lamp. 1: Source Code Meuu Utama unit Unit I PcrekrutanKyw; interface uses Windov1s, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg;
type Tform I = class(TForn>) CloseButton I: TLabel; CloseButton2: TLabel; Pane!Posisi: TPanel; Pane!Posisi2: TPanel; Pane!Kandidatl: TPanel; Pane1Kandidat2: TPanel; Pane!Penyeleksian I: TPanel; Pane1Penyeleksian2: TPanel; Labe!Judull: TLabel; Labe!Judul2: TLabel; PanclDatal.aryawan I: TPanel; Pane1DataKaryawan2: TPanel; Panel I: TPanel; Label I: TLabel; Bevell: TBevel; Image I: Tlmage; lmage2: Tlmage; Label2: TLabel; PanellnputDatal: TPanel; PanellnputData2: TPanel; Pane1Prograrnrner2: TPanel; PanelProgrammcrl: TPanel; Timer!: Trimer;
procedure CloseButton IClick( Sender: TObject); procedure CloseButton2Click(Sender: TObject); procedure CloseButton I MouseEnter(Sender: TObjecl); procedure ForrnMouseMove(Sender: TObject; Shift: TShiftSlate; X, Y: Integer); procedure PanelPosisiMouscMove(Sender: TObject; Shift: TShiftSu1te; X, Y: Integer); procedure PanclKandidallMouseMove(Sender: TObjecl; Shift: TShiftState; X, Y: Integer); procedure PanelPenyeleksian I MouseMove(Sender: TObjec~ Shift: TShiflState; X, Y: Integer); procedure PanelKandidat!Click(Sender: TObject); procedure Pane1Kandidat2Click(Sender: TObject); procedure PanelDataKaryawan I MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure PanelDataKaryawan2Click(Sender: TObject); procedure PanelDataKaryawanlCJick(Sender: TObject);
.
... .....
·~-··
.
,_
.
71
procedure PanelPosisiClick(Sendcr: TObject); procedure TimerlTimer(Scnder: TObject); procedure lmagelMouseMove(Sender: TOb."ect; Shift: TShiftStatc; X, Y: Integer); procedure PanellnputDatalMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Panel Programmer I MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure PanellnputData2Click(Sender: TObject); procedure Pane1Penyeleksian2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form!: TForml; implementation
uses Unit2PcncarianKandidat, Unit3KandidatKaryawan, Unit4DataLengkapKaryawan, Unit5KebutuhanKaryawan, Unit7NilaiPereferensian,Unit9KallmatFaktaAnalisa, Unitl3Pilihanln~ut, Unit I PenilaianFakta_A, Unit I 21nputPereferensian, Unit_ I 5_PilihanlnputData, Unit I OGrafikTerms; ($R *.dfm}
procedure TFom1 l .CloseButtonl Click( Sender: TObject); begin Close; end; procedure TForm I .CloseButton2Click(Sender: TObject); begin Clo;.e; end; procedure TForml .CloseButton I MouseEnter(Sender: TObject); begin CloseButtonl.Visible :=False; CloseButton2.Visible :=true; end; procedure TForm 1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Intege:); begin Pane!Programn1er2. Visible := False; PanelProgrammcrl.Bcve!Outer := BvNone; Pane1Posisi2.Visible :=False; PanelPosisi.BevclOuter := BvNonc; CloseButton I.Visible:= True; CloseButton2. Visible :=False; Pane1Kandidat2.Visible :=False; Pane!Kandidatl .BevclOuter := BvNone; Pane1Penyeleksian2.Visible :=False; PanelPenyelcksian I .Bevel Outer := BvNonc; Pane1Dat"Karyawan2.Visiblc := Fals~; PanelDataKaryawan I .Bevel Outer := BvNone; PancllnputData2.Visible :=False;
72
End. procedure TForml.PaneJPosisiMouseMove(Sender: TObject; Shift: TShiftState; X, Y: lnte£er); begin PanelPosisi Beve!Outer := BvLowered; Pane1Posisi2.Visible :=True; end; procedure TForml.Pane!Kandidat!MouseMove(Scnder: TObject; Shift: TShiftState; X, Y: Integer); begin PanelKandidatl.BevelOuter := BvLowered; Pane1Kandidat2. Visible :=True; end; procedure TForm l.PanelPenyelcksian I MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin PanelPenyeleksianl.BevelOuter := BvLowered; Pane1Penyeleksian2.Visible :=True; end; procedure TForm l .PanelKandidatl Click( Sender: TObject); begin Form2.Show; end; procedure TForm l.Pane1Kandidat2Click(Sender: TObject); begin Form2.Show; end; procedure TForml.PanelDataKaryawanIMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin PanelDataKaryawan l .BeveJOuter := BvLowered; PanelDataKaryawan2.Visible :=True; end; procedure TForm l.PanelDataKaryawan2Click(Sender: TObject); begin Form4.Show; end; procedure TForm I.Panel DataKaryawan I Click( Sender: TObject); begin Fonn4.Sho\v; end;
procedure TForm l .Pane1Posisi2Click(Sender: TObject); begin Form5.Show; end; procedure TForm l .PanelPosisiClick(Sender: TObject); begin Form5.Show; end; procedure 1'Form l .Tin1crlTin1er(Sendcr: 'fObiect):
73
Label I .Left:= Label I .Left- I; If Label I .Left<-300 then Labell .Lell:=300; end;
procedure TForm l.lmage!MouscMove(Sender: TObjcct; Shill: TShillState; X,Y: Integer); begin
CloseButton I.Visible:= True; CloseButton2.Visible := False;
end; proce<'ure TFonn I .PanellnputDatal MouseMove(Sender: TObject; Shi It: TShiitStatc; X, Y: Integer); begin PanellnputData I .Bevel Outer := BvLowered; PanellnputData2.Visible :=True; end; procedure TForm 1.PanelProgrammerJMouseMove(Sender: TObject: Shill: TShillState; X, Y: Integer); begin Pane!Programmerl.Beve!Outcr := BvLowercd;
Pane1Prot,:rrammcr2.Visible :=True; end; procedure TForm J .PanellnputData2Click(Sender: TObject); begin Form 15Pilihanlnput.Show;
end; procedure TForm l .Pane1Penyeleksian2Cl ick(Sender: TObject); begin Form9.Show;
end; end.
74
Lamp. 2: Source Code Data Lengkap Karyawan unit Unit4DataLengkapKarya\vun; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Fonns, Dialogs, StdCtrls,
Mask, DBCtrls, Grids, DBGrids, ExtCtrls, DB, DBTables; type TForm4 ~ class(TForm) GroupBoxl: TGroupBox; DBGridl: TDBGrid; Label I: TLabel; DBEditl: TDBEdit; Pane!Sebelumnya: TPanel; Pane!Berikutnya: TPanel; Pane!Pertama: TPanel; Pane!Terakhir: Tl'anel; GroupBox2: TGroupBox; Label Cari 1: TLabel; Labe!Cari2: TLabel; Label4: TLabel; GroupBox3: TGroupBox; Labe!TambahDatal: TLabel; Labe!TambahData2: TLabel; Labe!Hapusl: TLabel; Labe!Hapus2: TLabcl; Label Close 1: TLabel; Labe!Close2: TLabel; Table 1: TTable; DataSourcel: TDataSource; Labe!Simpan 1: TLabe!; Labe!Simpan2: TLabel; Labe!Batal I: TLabel; Label3: TLabel; Labe!BataI2: TLabel; Editl: TEdit; procedure Labe!Close2Click(Sender: TObject); procedure Label Close I Click( Sender: TObjcct); procedure Labe!TambahDatalMouseEnter(Sender: TObject); procedure Labe!Hapusl MouseEnter(Sender: TObject); procedure Label Cari 1MouseEnter(Sender: TObject); procedure Labe!CloseIMouseEnter(Sender: TObject); procedure GroupBox3.vfouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure GroupBox2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Pane!PertamaMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Pane!BerikutnyaMouseMovc(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Pane!SebeiumnyaMouseMovc(Sender: TObject; Shift: TShiftState;
75
procedure PanelTerakhirMouseMove(Sender: TObject; Shit\: TShiftState; X, Y: Integer); procedure Group Box I MouscMove(Sender: TObject; Shill: TShift;;Ulte; X, Y: Integer); procedure PanelPertamaCJick(Scndcr: TObject); procedure PanelTerakhirClick(Sender: TObject); procedure J'aneISebelumnyaCiick(Sender: TObject); procedure I anelBerikutnyaCJick(Sender: TObject); procedure LabelTambahData2Click(Sci1der: TObject); procedure LabelSimpan I MouscEntcr(Sender: TObject); procedure Labe1Simpan2Click(Sender: TObject); procedure Labc1Hapus2Click(Sendcr: TObject); procedure LabelBatal l MouseEnter(Sender: TObject); procedure Labe1Batal2Click(Sender: TObject); procedure Labe1Cari2Click(Sender: TObject); private { Private declarations } public { Public declarations ) end;
var Porm4: TForm4; implementation {$R *.dfm}
procedure TForm4.LabelClose2Click(Sender: TObject); begin Close;
end; procedure TForm4.LabelCloselClick(Sender: TObject); begin Close; end; procedure TF orm4.LabelTarnbahData I MouseEnter(Sender: TObject); begin LabelTambahDatal .Visible:= False; LabelTambahData2.Visible :=true; end; procedure TForm4.LabelHapus I MouseEnter(Sender: TObject); begin LabelHapusl.Visible :=False; Labe1Hapus2.\'isible :=true; end;
Procedure TForm4.Labe1Cari!MouscEnter(Sender: TObject); begin
Label Cari I. Visible := False; Labc1Cari2. Visible := true; end; procedure TForm4.LabelClose I MouseEnter(Sendcr: TObjeet); beC?in
76
Labe!Close2.Visible :=true; end; procedure TForm4.GroupBox3MouseMove(Sonder: TObject: Shit\: TShillStatc; X, Y: Integer); begin Labe!TambahDatal.Visible :=True; LabelTambahData2.Visible :=False; Labe!Hapusl .Visible:= True; Labe1Hapus2.Visible :=False; LabelSimpanl.Visible :=True; Labe!Simpan2. Visible:= False; Labe!Batal I .Visible :=True; Labe1Bata12.Visible :=False; end; procedure TForm4.GroupBox2MouseMove(Sender: TObjcct; f.hit\: TShit\State; X, Y: Integer); begin Labe!Caril.Visible :=True; Labe!Cari2.Visible :=False;
end; procedure TForm4.FormMouseMove(Scnder: TObject; Shift: TShil\State; X, Y: Integer); begin LabelClosel.Visible :=True; l.abcJClose2.Visible :=False;
end; procedure TForm4.Pane!PertamaMouseMove(Sender: TObject; Shift: TShit\State; X, Y: Integer); begin Pane!Pertama.Beve!Outer := BvLowered; Pane!Pertama.Color := $00FF8000; Pane!Pertama.Font.Color := $0080FF80;
end; procedure TFom14.Pane!BerikutnyaMouseMovc(Sender: TObject; Shift:: TShit\State; X, Y: Integer); begin PanelBerikutnya.Beve!Outer := BvLowercd; PanelBerikutnya.Color := $00FF8000; Pane!Berikutnya.Font.Color := $0080FF80;
end; procedure TForm4.Pane1SebelumnyaMouseMove(Sender: TObject; Shit\: TShit\Statc; X, Y: Integer); begin Pane!Sebclumnya.Beve!Outer := BvLowered; Pane!Sebclu.nnya.Color := $00FF8000; Pane!Sebclumnya.Font.Color := $0080FF80;
end; procedure TForm4.Pane!TerakhirMouseMove(Sender: TObject; Shift: TShit\State; X, Y: Integer); begin Pane!Terakhir.Beve!Outer := BvLowered; Pane!Terakhir.Color := $00FF8000; Pane!Terakhir.Font.Color := $0080FF80;
0nd; procedure TForm4.GroupBoxIMouseMove(Sender: TObject; Shift: TShit\Statc; X, Y: Integer); begin PancJScbclumnva.BcvclOutcr := BvNone:
77
PandSebelumnya.Font.Color :=cl Silver; PanelBerikutnya.BevelOuter := BvNone; Pane!Berikutnya.Color := c!Black; PanelBerikutnya.Font.Color := clSilvcr; PanelPertama.BevelOuter := BvNonc; PanelPcrtama.Color := cll31ack; PanclPertama.Font.Color := clSilver;
PanelTerakhir.BevelOuter := BvNone; PanelTerakhir.Color := clBlack; PanelTerakhir.Font.Color := clSilver;
end; procedure TForm4.Pane1PertamaClick(Sender: TObjccl); begin Table I.First; end; procedure TForm4.PanelTerakhirClick(Sender: TObject); begin Table I.Lan;
end; procedure TFurm4.Panc1SebelumnyaClick(Scnder: TObject); begin Table I.Prior;
end; procedure TForm4.Pane!BerikutnyaClick(Sender: TObject);
begin Table I .Next;
end; procedure TForm4.LabelTambahData2Click(Sender: TObject); begin Table I .Append;
end; procedure TForm4.LabclSimpan!MouscEnter(Sender: TObject);
begin Labe!Simpan I. Visible := False; Labe1Simpan2. Visible := true;
end; procedure TForm4.LabelSimpan2Click(Sender: TObject); begin Table I.Post; end; procedure TForm4.LabelHapus2Click(Sender: TObject); begin If messageDlg('Anda benar-benar ingin menghapus mbNo],O)=mrYes then table I.Delete;
end; procedure TForm4.LabelBatal I MouseEnter(Sender: TObject); begin LabelBatal I .Visible := False:
data
ini?',mtConfirmati0n,[mbYes,
end; procedure TForm4.Labe1Batal2Cliek(Sender: TObject);
begin Table I .Cancel;
end; procedure TForm4.LabclCari2Click(Sender: TObject); begin with table I do
begin setkey; FieldB yName('Nama').A sString:=Editl. Text;
GoToNcarcst; end; end; end.
79
Lamp. 3: Source Code Kebutuhan Posisi unit U11it5KcbutuhanKaryawan; interface uses Windows, Messages, SysUtils, Variants, Clusses, Graphics, Controls, Forms, Dialogs, DB, Grids, DBGrids, StdCtrls;
type TForm5 = class(TForm) GroupBox 1: TGroupBox; DB Grid 1: TDBGrid; Table 1: lTablc; DataSourcel: TDataSourcc; GroupBox2: TGroupBox; LabelTambahDatal: TLabel; LabelHapus I: TLabel; Label Close 1: TLabel; Label 1: TLabel; LabelTam'>ahDala2: TLabel; LabelHapu,2: TLabel; Labe1Close2: TLabel; LabelBatal 1: TLabel; Labe1Batal2: TLabel; LabelSimpan I: TLabel; Labe1Simpan2: TLabcl; procedure Label Close I Click( Sender: TObjecl); procedure Labe!TambahDatal MouseEnler(Sender: TObject); procedure LabelHapus IMouseEnter(Scnder: TObject); procedure Label Close 1MouseEnter(Sender: TObject); procedure GroupBox2MouseMove(Sender: TOqject; Shift: TShiftState; X, Y: Integer); procedure FormMouseMove(Sender: TObjcct; Shift: TShiftState; X, Y: Integer); procedure Labe1Close2Click(Sender: TObjcct); procedure LabelTambahData2Click(Sender: TObjcct); procedure Labe1Hapus2Click(Sender: TObjecl); procedure LabelBatall MouseEnter(Sender: TObject); procedure Labe1Batal2Click(Sender: TObject); procedure LabelSimpan I MouseEntcr(Sendcr: TObject); procedure Labe!Simpan2Click(Sender: TObject); private ( Private declarations ) public { Public declarations ) end; var
Form5: TFom15; implementation ($R *.dfm)
l)B'fublc~,
80
procedure TFonn5.Labc!Closel Click( Sender: TObjcct); begin Close; end; procedure TForm5.Labc!TambahDala I MouseEntcr(Sendcr: TObjcct); begin Labe!TambahDatal.Visiblc :=False; Labe!TambahData2.Visiblc :~true;
end; procedure TForm5.Labe!Hapus1MouseEnter(Sendcr: TObject); begin Labe!Hapus I. Visible := False; Labe!Hapus2. Visible := true; end; procedure TForm5.LabelClosc I MouseEntcr(Sender: TObject); begin LabclClosel.Visible :=False; Labe!Close2.Visible :=true; end; procedure TFonn5.GroupBox2MouseMove(Sender; TObject; Shift: TShiftState; X, Y: Integer); begin Labe!TambahDalal.Visible :=True; Labe!TambahData2.Visible :=False; LabelHapus I. Visible :=True; Labe!Hapus2. Visible := False; Labe!Batal I.Visible:= True; Labe!Batal2.Visible ;=False; Labe!Simpan I. Visible :=True; Labc!Simpan2.Visible :=False; end; procedure TForm5.FormMouseMove(Sender: TO!<ject; Shift: TShiftState; X, Y: Integer); begin Labe!Closel.Visible :=True; Labe!Close2.Visible :=False; end; procedure TForm5.Labe!Close2Click(Sender: TObject); begin Close; end; procedure TForm5.Labe!TambahData2Click(Scnder: TObject); begin Table I .Append; end; procedure TFonn5.Labe!Hapus2Click(Sender: TObject); begin ifmessagcDlg( 1Anda benar-bcnar ingin menghapus data ini'? 1,mtConfirmation,[mbYes, mbNo],O)=mrYes then table I.Delete; ,. ... rl.
81
procedure TForm5.Labe1Batal JMouseEnter(Sender: TObject); begin Labe!Batal !.Visible:= False; Labe1Batal2.Visible :=true;
end; procedure TForm5.Labe!Batal2Click(Sender: TObject); begin Table J.Cancc!;
end; procedure TForm5.Labe!Simpan I MouseEntcr(Sender: TOl<ject); begin LabelSimpanl.Visible :=False; Labe!Simpan2.Visible :=true;
end; procedure TForm5.LabelSimpan2Click(Sendcr: TObject); begin Table I.Append;
end; end.
82
Lamp. 4: Source Code Pilihan Input Data unit Unit_ 15_PilihaninputData; interface uses Windows, Mcs:;agcs, SyslJtils, Variants, Classes, Graphics, Controls, fiorms, l)ialogs, StdCtrls; type TForm 15Pilihanlnput = class(TForm) Group Box I: TGroupBox; Label I: TLabel; Button l: TButton; Button2: TButtnn; Labe1Close2: TLabel; Label Close 1: TLabel; procedure Label Close I MouseEnter(Scnder: TObject); procedure Labc1Close2Click(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Button 1Click( Sender: TObjcct); procedure Button2Click(Sender: TObject);
private { Private declarations ) public { Public declarations ) end; var Form 15Pilihanlnput: TForm 15Pilihanlnput;
implementation uses Unitl3Pilihanlnput, Unit 121nputPercfcrcnsian; {$R *.Jfm)
procedure TF orm 15Pi Iihanlnput.Label Close 1MouseEnter(Scndcr: TOl!Ject); begin LabelCloscl.Visible :=False; Labe1Close2. Visible := true; end; procedure TFom115Pilihanlnput.LabelClose2Click(Sender: TObject); begin Close; end; procedure TForml5Pilihanlnput.FonnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin LabelClosel .Visible:= True; Labe!Close2. Visible := False;
end; procedure norm l 5Pilihanlnput.Button I Click( Sender: TObject); hnnin
83
Form 13.Show; end;
procedure TF orm I 5Pilihanl nput.Button2Click(Scndcr: TObjcct); begin
Fonn 121 nputPerefcrensian.Sho\v; end; end.
84
Lamp. 5: Source Code Pilihan Input Fakta Penilaian unit Unitl3Pilihanlnput;
interface uses \Vindo\vs, Messages, SysUtils. Variants, Classes, (Jraphics, Controls, Forms, Diulogs, StUCtrls; type TForm13 '" cluss(TFon'l) GroupBox I: TGroupBox; But onl: ·mutton; Button2: ·mutton; Button3: Tllutton; Label I: TLabel; Label Close I: TLabel; Labe1Close2: TLabcl; procedure Button I Click( Sender: TObject); procedure Labc1Close2Click(Sender: TObject); procedure LabelCloselClick(Sender: TObject); procedure FormMousoMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure LabelClosc I MouseEnter(Sender: TObject); procedure llutton2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject);
private { Private declarations } public ( Public declarations }
end; vm· Forml3: TForml3;
implementation uses Unit 14 InputKalin1atPcni laianA, InputKali1natPcnilaianB, Unit 15 ln putKalimatPenilaian_C, Unitl5NilaiAkhir; {$R *.dfm}
procedure TForm I 3.Button J Click( Sender: TObject); begin Form 14.Show;
end; procedure TForm 13.Labe1Close2Click(Sender: TObject); begin Close; end; procedure Tforml3.Labe1Closel Click( Sender: TObject); begin Close; .-.nA•
85
procedure TForm 13.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin LabelClosel.Visible :~True; Labe1Close2.Visible :~False;
end; procedure TForm 13.LabclClosel MouscEnter(Sendcr: TObjcct); begin Label Close l. Visible :~ False; Labc1Close2. Visible:~ true;
end; procedure TForm 13.Button2Click(Sender: TObject);
begin Form l51npulKalimalB Show;
end; procedure TForm l3.Button3Click(Scnder: TObjcet);
begin Form 15Kalimatldeal_C.Show; end; procedure TForml3.Button4Click(Sender: TObject); begin Form 1SNilaiAKhir.ShO\V;
end; end.
86
]Lamp. 6: Source Code Input Fakta Penilaian unit Unitl4lnputKalimatPenilaianA; interface
uses Windows, tvf jSsages, SysUti!s, Variants, Classes, Graphics, Controls, Fonns. I)ialogs, StdCtrls, Mask, DBCtrls, DB, DBTables, Grids, DBGrids; type TForm 14 = class(TForm) GroupBox I: TGroupBox; Label I : TLabel; Label2: TLabel; DataSourcc I: TDataSourcc; Table I: TTable; DBEditl: TDBEdit; DBEdit2: TDBEdit; Label3: TLabel; GroupBox2: TGroupBox; Label Close 1: TLabel; Labc!Close2: TLabel; Labe!Okl: TLabel; Labe!Cancel l: TLabel; Labe!Ok2: TLabel; Labe!Cancel2: TLabel; GroupBox3: TGroupBox; DBGrid I: TDBGrid; Labe!Delete2: TLabel; Labe!Delete I: TLabel; procedure FormActivate(Sender: TObjcct); procedure Labe1Close2C!ick(Sender: TObject); procedure Label Close! MouseEnlcr(Scndcr: TObject); procedure FormMouseMove(Sender: TObject; Shit\: TShif\State; X, Y: Integer); procedure Label Cancel l MouseEnter(Sender: TObject); procedure Labe!Okl Mouse Enter( Sender: TObject); procedure GroupBox2MouseMove(Sender: TObject; Shift: TShif\Stai:e; X, Y: Integer); procedure Labe10k2Click(Sender: TObject); procedure Labe!Next2Click(Sender: TObject); procedure Labe1Cancel2Click(Sender: TObject); procedure Labe!Delete I MouseEnter(Sender: TObject); procedure Labe1Delete2Click(Sender: TObject); procedure Labellnsert2Click(Sender: TOt>ject); private { Private dec!Prations } public ( Public declarations } end; var
Forml4: TForml4; implementation
87
uses Unit 15PerefercnsiunFaktaKategori; {$R *.dfm}
procedure TForm 14.FormActivate(Scndcr: TObject); begin D8Editl.Clear; D8Edit2.Clear;
end; procedure TForm 14.Labc1Closc2Click(Scnder: TObjccl); begin
Close; end; procedure TForm 14.LabelClose I MouseEntcr(Scndcr: TObjcct);
begin Label Close l. Visible := False; Labe1Close2. Visible := true; end; procedure TForm 14.FormMouseMove(Sender: TObject; Shift: TShirtState; X, Y: Integer); begin LabelClosel.Visible := Trne; Labe1Close2.Visible :=False; end; procedure TForm 14.LabelCancel l MouseEnter(Sender: TObject); begin Label Cancel l. Visible := False; Labe1Cancel2.Vlsible :=true;
end; procedure TForm 14.LabclOk l MouseEnter(Sender: TObject); begin LabelOkl.Visible :=False; Label0k2. Visible :=true; end; procedure TForml4.Group8ox2MouseMove(Sender: TObject; Shift: TShiftStatc; X, Y: Integer); begin LabelOkl.Visible :=True; Labe10k2. Visible := False; Labe!Caocel l. Visible :=True; Labe1Cancel2.Visible :=False; LabelDeletel.Visible :=True; Labe1Deletc2.Visible := False;
end; procedure TForm l4.Labcl0k2Click(Scnder: TObject); begin Tablel.Append; DBEditl.Clear; D8Edit2.Clear; D8Editl .SetFocus(); end;
88
begin Table I .Append; DB Edit I .SetFocus();
end; procedure TForml4.LabelCancel2Click(Scndcr: TObjcct); begin Table I.Cancel; DB Edit I .SetFocus();
end; procedure TForrn 14.Labe!Delete 1MouseEnter(Sender: TObject); begin Labe!Deletel.Yisible :=False; Labe1Delete2. Visible := true;
end; procedure TForrn I 4.Labc!Delete2Click(Scndcr: TObject); begin Table I .Delete; Table I .Refresh; DBEditl .SetFocus();
end; procedure TForrn 14 .Labellnscrt2Click(Sender: TObject); begin Table I.Post; DBEditl.SetFocus();
end; end.
89
Lamp. 7: Source Code Input Nilai Pereferensia!! unit Unitl2InputPereferensian; interface uses Windows, Messages, Sy:.Utils, Variants, Classes, Graphics, Controls, Fonns, Dialogs, StdCtrls, DB, DBTables, Mask, DBCtrls, Grids, DBGrids, Buttons;
type TForm 12lnputPereferensian = class(TForm) GroupBoxl: TGroupBox; GroupBox2: TGroupBox; DBGridl: TDBGrid; Table I: TTable;
DataSourcel: TDataSource; Table!No_pereferensian: TStringField; Table I Pereferensian: TStringField; Table!Kalimat: TStringField; Table!LUDerajat: TFloatField; Label!: TLabel; Labe!Edit2: TLabel; Labe!Editl: TLabel; Labe!Batal2: TLabel; Labe!Batal I: TLabel; LabelSavel: TLabel; Labe1Save2: TLabel; Label Delete I: TLabel; Labe1Delete2: TLabel; Labellnsert2: '!'Label; Labellnsertl: '!'Label; Labe!Checkl: '!'Label; Labe!Check2: TLabel; Labe!Close I: '!'Label; Labe!Close2: TLabel; procedure FormActivate(Sender: TObject); procedure Table! CalcFields(DataSet: TDataSct); procedure Labe!EditlMouseEnter(Sender: TObjc>ct); procedure GroupBox2MouseMove(Sender: TObjecl; Shift: TShifiState; X, Y: Integer); procedure Labe!Edit2Cliek(Sendcr: TObject); procedure Labe!Batal I MouseEnter(Sender: '!'Object); procedure Labe!Batal2Click(Sender: '!'Object); procedure Label Save IMouseEnter(Sender: TObject); procedure Labe!Save2Click(Sender: TObject); procedure LabelDeletel MouseEnter(Sender: TObject); procedure Labe1Delete2Click(Sender: TObject); procedure Labellnsertl MouseEnter(Sender: TObject); procedure Labellnsert2Click(Sender: TObject); procedure Label Check I MouseEntcr(Sender: TObject); procedure Labe1Check2Click(Sender: TObjcct); procedure FormMouseMove(Sender: '!'Object; Shift: TShiftState; X, Y: Integer); procedure LabelClosel MouseEnter(Scnder: '!'Object);
.
- ... -~
.
90
private { Private declarations } public { Public declarations
l
end; var
Form 12InputPcrefercnsian: l'Form 12InputPcrcfcrensian; Derajat:a1Tay[ 1.. 1SJ of double; Jarak:array[J.. I SJ of string; Bobot:array[ I.. I SJ of string; Percfercnsian:array[ 1.. 15J of string;
implen1entation uses Unit7NilaiPerefercnsian, Unit8l1asi1Pcrefcrcnsian, Unit12; {$R *.dfm} procedure TForm 121nputPereferensian.FormActivate(Sender: ·robject);
begin Labe1Save2.Enabled:=False; Labe!Batal2.Enabled:=False; DB Grid I .ReadOnly:=True;
Table l .IndexFieldNames:=1No_Pe refcrcnsian1; end; procec Jre TFonn I 2JnputPereferensian.Tablc I CalcFields(DataSet: TDat
i:integcr; begin i:=table I .Record Count; Table I LUDcrajat.Value:=table I .RccNo/i;
end; procedure TForm 12lnputPereferensian. Label Edit I MouseEnter(Sender: TObjeet); begin Labe!Editl.Visible :=False; Labe1Edit2. Visible := true;
end; procedure TForm 121nputPerefcrensian.GroupBox2MouseMove(Sender: TObject; Shift: TShil\Statc; X, Y: Integer); begin Labe!Editl.Visiblc :=True; Labe!Edit2.Visiblc :=False; Labc!Batal i .Visible:= True; Labe!Batal2 Visible := False; Label Save I. Visible:= True; Labe!Save2. Visible :=False; Label Delete I .Visible :=True; Labe1Delete2.Visible :=False; Labellnsertl .Visible:= True; Labellnscrt2.Visible :=False; Labc!Chcckl.Visiblc :=True; Labe!Check2.Visiblc :=False;
end;
91
begin Labe!Save2.Enablcd:=True; Labe!Batal2.Enabled:=True; DBGrid I .ReadOnly:=False; Labe!Edit2.Enabled:=False;
end; procedure TForm 12 lnputPereferensian.Labc!Batal I MouseEnter(Sen
end; procedure TForm I 2lnputPereferensian.Labe!Batal2CI ick(Sender: TObject); begin Table I.Cancel; Labe!Batal2.Enabled:=False; Labe!Save2.Enabled:=False; Labe!Edit2.Enabled:=true; end; procedure TF orm I 2lnputPerefcrensian.Labe!Save I MouseEnter(Sender: TObject); begin Labe!Savel.Visible :=False; Labe!Save2.Visible :=true;
end; procedure TForm 12InputPereferensian.Labe!Save2Click(Sender: TObject); begin Table 1.Refresh; Labe!Batal2.Enabled:=False; Labe!Save2.Enabled:= .'alse; DB Grid 1.ReadOnly:=True; Labc!Edit2.Enabled:=true; Labe!Batal2.Enabled:=True; end; procedure TForm 12lnputPereferensian.Label Delete I MouseEntcr(Sender: TObject); begin Labe!Deletel.Visible :=False; Labe!Dclete2. Visible := true;
end; procedure TForm 12lnputPereferensian.Labe!Delete2Cliek(Sender: TObjeet); begin
.
ifmessageDlg('Anda benar-benar ingin n1enghapus data ini?',n1tConfirmation,[mbYes, mbNo],O)=mrYes then table I.Delete;
end; procedure TF orm 121 nputPcreferensian.Label Insert I MouscEnter(Sender: TObject); begin Labellnsertl.Visiblc :=False; Labcllnsert2. Visible := true;
end; procedure TForm 12InputPereferensian.Labellnsert2Click(Sender: TOqject); begin Table J.lnsert:
92
DBGridl.RcadOnly:=False; Labe1Edit2.Enablcd:=Falsc; Labe1Batal2.Enablcd:= frue; Labc 1Savc2.Enabled:=True; DBGrid l .SetFocus;
end; procedure TF arm 12InputPerefcrcnsian.LabelChcek I MouseEnter( Sender: TObject); begin Label Check I. Visible := False; Labe1Check2. Visible := true;
end; procedure TForm I 2InputPereferensian. Labe1Check2Click(Sender: TObject); var
i:integer; begin with Form? do begin check box I .Checked:=true; checkbox2.Checked:=true; checkbox3.Checked:=true; checkbo>. 4.Checked:=truc; checkboxo .Checked:=true; checkbox6.Checked:=true; checkbox7 .Checked:=true; checkbox8.Checked:=true; checkbox9.Checked:=true;
end; table I.First; for i:=l to tablcl.RecordCount do begin Derajat[i] :=Table I LUDerajat. Value; Jarak[i] :=lntToStr(i); Bobot[i]:='l'; Pereferensian[i] :=Table I Perefcrcnsian. Value; Table I.Next;
end; Form7.Show; end; procedure TForml2InputPereferensian.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin LabelClosel.Visible :=True; Labe1Close2.Visible := 1-alse;
end; procedure TF orm 121nputPereferensian.Labe1Close I MouseEnter(Sender: TObject);
begin LabelClose 1. Visible := False; Labe1Close2.Visible :=true; end; procedure TFarm 12 InputPereferensian.LabelClose2CI ick(Sender: TObject); begin Close; end;
91
Lamp. 8: Source Code Check Nilai Perefereusian unit Unit7NilaiPcrcfercnsian; interface
uses Windo\vs, l\Icssagcs, SysUtils, Variants, Classes, Graphics, Controb, Forms, f)ialogs, StdCtrls, DBCtrls, DB DBTables; type TForm7 = class(TForm) GroupBox l: TGroupBox; GroupBox2: TGroupBox; Labe!Okl: TLabel; Labe10k2: TLabel; Label Cancel I: TLabel; Labe!Cancel2: TLabel; LabelClosel: TLabel; Labe1Close2: TLabel; Label l 0: TLabel; Check Box I: TCheckBox; CheckBox3: TCheckBox; CheckBox4: TCheckBox; CheckBox5: TCheckBox; CheckBox6: TCheckBox; CheckBox7: TCheckBox; CheckBox8: TCheckBox; CheckBox9: TCheckBox; Table I: TTable; CheckBox2: TCheckBox; procedure LabelOklMouseEnter(Sender: TObject); procedure Labe!Cancel IMouseEnter(Sender: TObject); procedure GroupBox2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure LabelClose2MouseEnter(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Label Close I MouseEnter(Sender: TObject); procedure LabelClose2Click(Sender: TObject); procedure Label0k2Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure LabelCancel2Click(Sender: TObject); private
{ Private declarations ) public ( Public declarations ) end; var Form7: TFonn7;
implementation uses Unit8Hasi1Percfcrcnsian, Unit121nputPcrefercnsian;
94
procedure TForm7.LabclOk I MouscEnter(Sendcr: TOqiect); begin LabelOkl.Visible := Fal;c; Label0k2. Visible := true; end; procedure TForm7.Labc1Cancel l MouseEntcr(Sender: TObject); begin Label Cancel l. Visible := False; Labe1Cancel2. Visible := true;
end; procedure TForm7.GroupBox2MouseMovc(Scnder: TObject; Shift: TShif\State; X, Y: Integer); begin LabelOkl.Visible :=True; Labc!Ok2.Visible :=False; LabelCancel I .Visible :=True; Labe1Cancel2.Visible :=False; end; procedure TForm7.LabelClose2MouseEnter(Sender: TObject); begin LabelClosel.Visible :=False; Labe1Close2.Visible :=true;
end; procedure TForm7.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin LabelClosel.Visible :=True; Labe!Close2. Visible := False;
end; procedure TForm7 .LabelClosel MouseEnter(Sender: TObject); begin LabelClosel .Visible:= False; Labc!Close2.Visible :=true;
end; procedure TForm7.Labc!Close2Click(Sendcr: TObjcct); begin Close;
end; procedure TForm7.LabclOk2Click(Scnder: TObject); begin
form8.Shov1; end;
procedure TForm7.FormActivate(Sender: TObject); var
i:intcger; checkB: array[l .. 9] of String; begin Tablel.First; fori:=I to Tablel.RecordCount do begin checkB[i] :=Table l .FicldByName('Pcrefcrcnsian').AsString;
95
end; checkbox 1.Caption:=checkB (1 ]; checkbox2.Caption:=chcckB[2]; checkbox3.Caption:=checkB[3]; checkbox4.Caption:=checkB[4 ]; checkbox5.Caption:=chcckB[5); checkbox6.Caption:=chcckB[6]; checkbox7 .Caption:=checkB[7]; chcckbox8.Caption:=chcckB[8]; checkbox9.Caption:=chcckB[9); end; procedure TForm7.LabclCancel2Click(Scnder: TObject); begin
Close; end; end.
96
Lamp. 9: Source Code Derajat Keanggotaan Nilai Pc•referensian unit Unit811asi1Perefercnsian; interface
uses Windows. Messages. SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, DBCtrls, Grids, DB, DBTables, ExtCtrls; type TFonn8 = class(TForm) GroupBoxl: TGroupBox; Label32: TLabel; StringGridl: TStringGrid; Table2: TTable; Table I: TTable; Table2No_lnduk: TStringField; Table2No_Pereferensian: TStringField; Table2Percferensian: TStringField; Table2No_Fakta: TStringField; Table2Nilai_Absolut: TFloatField; Table2Jumlah_Fakta: TFloatField; Table2Nilai: TFloat 'ield; GroupBox2: TGroupBox; Lnbe!Grafikl: TLabel; Labe1Grafik2: TLabel; Label Close I: TLabcl; Labe!Close2: TLabel; Label I: TLabel; procedure ButtonlClick(Sender: TObjeet); procedure FormActivate(Sender: TObject); procedure Button2Click(Sender: TObjcct); procedure LabelGrafikl MouseEnter(Sender: TObject); procedure GroupBo.'2MouseMove(Scnder: TObject; Shift: TShiftStale; X, Y: Integer); procedure Labe1Grafik2Click(Sender: TObject); procedure Labe1Dcrajat2Click(Sender: TObject); procedure Labe!Closel MouseEnter(Sender: TObjecl); procedure Labe!Close2Click(Sender: TObject); procedure FormMouseMovc(Sender: TObject; Shit1: TShiftState; X, Y: Integer); private ( Private. declarations } public ( Public ceclarations }
end;
var Form8: TForm8;
in1pJementation
uses UnitlOGrafikTcnns, Unitl2InputPcreferensian; ($R *.dfin}
97
procedure TForm8.Bu!lon I Click(Sender: TObjcct); begin Form IO.Show;
end; procedure TForm8.FormActivatc(Sendcr: TObject); var
i:integer; begin stringGrid I .Ce! ls[ 0,0] :='No'; stringGrid 1.Cclls[J ,O]:""''Nilai Perefcrcnsian 1; slringGridl .Cells[2,0]:='Bobol Nilai'; slringGridl.Cclls[3,0]:='Jarak Nilai'; stringGrid I .Cells[4,0]:='Derajat Keanggotaan'; for i:=I to Forml2InputPereferensian.Tablel.RecordCount do begin slringGrid I .RowCount:=StringGrid I .RowCount+ I; stringGrid I .Cells[O,i]:=IntToStr(i); slringGrid I .Cells[ I ,i]:=Pereferensian[i]; slringGrid I .Cells[2,i]:=Bobot[i]; stringGrid I .Cells[3,i]:=Jarak[i]; stringGrid I .Cells[4,i] :=FloatToSlr(Derajat[i));
end; end; procedure TForm8.Button2Click(Scnder: TObject); var
i,tot:integer; begin tot:=O; table2.Firsl; for i:=I to table2.RecordCount do begin Tot:= Tot+ Table2Jumlah_Fakta.Asinlcger • SlrToint(StringGridl.Cells[3,i)); table2.Next;
end; end; procedure TForm8. Label Grafik I MouseEnter(Sendcr: TObject );
begin Labe!Grafikl.Visiblc :=False; Labe1Grafik2.Visible :=true;
end;
procedure TForm8.GroupBox2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin LabelGrafikl.Visible :=True; Labe!Grafi.<2.Visible :=False;
end; procedure TForm8.LabelGrafik2Click(Sender: TObject); begin Form IO.Show;
end; procedure TForm8.Labe1Derajat2Click(Sendcr: TObjecl);
98
i,tot:integcr; begin tot:=O; table2.First; for i:=I to table2.RecordCounl do
begin
Tot:= Tot+ Table2Jumlah_Fakta.Aslntegcr * StrTolnt(SlringGridl.Cells[3,i]); lable2.Next;
end; end; procedure TFonn8.Labe1Close I MouscEnler(Sender: TObjcct); begin Label Close I. Visible := False; Labe1Close2. Visible := true; end; procedure TForm8.LabclClose2Click(Sender: TObject); begin
Close; end; procedure TFurm8.FormMouseMove(Sendcr: TObjcct; Shift: TShiftStatc; X, Y: Integer); begin LabclClosel .Visible:= True; Labe1Close2. Visible := False;
end; end.
99
Lamp. 10: Source Code Grafik Derajat Keanggotaan Nilai Pereferensian unit Unit 1OGrafikTcrms; interface uses \Vindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forrns~ J)ialogs, TcEnginc, Series, ExtClrls, TeeProcs, Char~ DbCharl, DB, DBTablcs, StdCtrls, TceFunci; type TForm I 0 ~ class(TForm) GroupBoxl: TGroupBox; Table I: TI'able; DB Chart I: TDBChart:
Series I: TBarSeries; Table 1No_Pereferensian: TStringField; Table! Pereferensian: TStringFicld; Table I Kali mat: TSlringField; Table! LUDerajat: TFloatField; Timer]: ITimer~ GroupBox2: TGroupBox; DBChart2: TDBChart; Tablc2: TTable;
Series2: 1~PieSeries; CheckBoxl: TCheckBox; Label!: TLaoel; Labe!Closel: TLabel; Labe1Close2: TLabel; procedure Button!Click(Sendcr: TObject); procedure Table! CalcFields(DataSet: TDataSet); procedure FormActivate(Sender: TObject); procedure Check Box I Click(Sender: TObject); procedure Timer! Timer( Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Label Close I MouseEntcr(Sender: TObjcct); procedure Labc1Closc2Click(Scndcr: '!'Object);
private { Private declarations } public tmpX, tmp Y : Longlnt; end; var FormlO: TFormlO; implementation
uses Unit! !PieGrapikTerms; {$R •.dfm}
procedure TForm IO.Button l Cllck(Scnder: '!'Object); begin
Form I J .Sho\v; end~
JOO
procedure TForrn l 0.FonnActivatc(Sender: TObject); begin tmpX:=-4; UnpY:=-3;
end; procedure TForrn l O.ChcckBox l Click( Sender: TObjcct); begin Timer 1.Enabled:=CheckBox I .Checked; if not Timer! .Enabled then begin
Series2.CustomXRadius:=O; Series2.Custom YRadius:=O; end;
end; procedure TForm l O.Table I CalcFields(DataSet: TDatuSet); begin Table I LUDerajat. Value:=tablc I .RccNo/9;
end; procedure TForm 10.Timer!Timer(Sender: TObject); begin Series2.Rotatc(3 ); with Series2 do
begin if unpX>O then begin ifXRadius+tmpX>DBChart2.ChartWidth div 3 then trnpX:=-tmpX; end else ifXRadius+tmpX<30 then trnpX:=-tmpX; customXRadius:=XRadius+tmpX; if unp Y>O then begin if YRadius+tmpY>DBCharl2.ChartHeight div 3 then tmp Y :=-tmpY; end else if YRadius+trnpY<30 then trnpY:=-tmpY; custom YRadius:= YRadius+tmp Y;
end; end; procedure TForm I O.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin LabelClosel.Visible :=True; LabelClose2. Visible := False;
end; procedure TForm I 0.LabelClosel MouseEnter(Sender: TObject); begin LabelClosel.Visible :=False; Labe!Close2.Visible :=true; end; procedure TForm I O.Labe!Close2Click(Sender: TObject);
bc.-gin Close; end;
101
Lamp. 11: Source Code Pencarian Kandidat Awai unit Unit2PcncarianKandidat; interface
uses Windo\vs, Messages, SysUtils, Variants, Classes, Graphics, Controls, Fonns, IJialogs, StdCtrls,
DBCtrls, Mask, ExtCtrls, DB, DBTablcs; type TForm2 ~ class(TForm) Group Box 1: TGroupBox; GroupBox2: TGroupBox; Labell: TLabel; Labc12: TLabel; Labc13: TLabel; Label4: TLabel; Labe15: TLabel; Labe16: TLabcl; GroupBox3: TGroupBox; Label?: TLabel; Label8: TLabel; Label 11: TLabel; GroupBox4: TGroupBox; GroupBox6: TGroupBox; Labell 7: TLabel; Label 19: TLabel; Label20: TLabel; Label21: TLabel; Labcl23: TLabel; Labc124: TLabel; LabclDafKandidatl: '!'Label; LabclClosel: TLabel; LabclDafKandidat2: TLabel; Labe1Close2: TLabel; DBLookupComboBox I: TDBLookupComboBox; DBLookupComboBox2: TDBLookupComboBox; DBLookupComboBox3: TDBLookupCombt Box; DBLookupComboBox5: TDBLookupComboBox; DBLookupComboBox6: TDBLookupComboBox; DBLookupComboBox7: TDBLookupComboBox; DBLookupComboBox8: TDBLookupComboBo>; DBLookupComboBox9: TDBLookupComboBox; DataSource 1: TDataSourcc; DataSource2: TDataSource; DataSource3: TDataSource; DataSource5: 1'DataSource; DataSource6: TDataSourcc; DataSource7: 'fDataSource; DataSomcc8: TDataSourcc; DataSource9: TDataSource; Query!: TQuery; DataSourcelO: TDataSource; DataSomcc 11: TDataSource; DBLookupComboBox!O: TDBLookupComboBox; DBLookupComboBox4: TDBLookupComboBox; T'lnl" C' ''" ,,.,..,.,t • 'f'l""'\,.o n C1 "' ·--·"•
102
Label26: TLabel; DataSource 12: TDataSource; DataSource 13; TDataSource; DBLookupComboBoxl2: TDBLookupComboBox; PanelPilih; TPanel; Labell 2: TLabel; Label 13: TLabel; DBLookupComboBox 11: TDBLookupComboBox; procedure FormMouseMove(Sender: TObject; Shilt: TShil\State; X, Y: Integer); procedure Labe1Close2Click(Sender; TObjct L); procedure Label Close I Click( Sender: TObjcct); procedure Label Close I MouseEntcr(Sendcr: TObject); procedure LabelDalKandidatl MouseEnter(Scnder: TObject); procedure Panc!PilihMouseMove(Sendcr: TO~ic'ot; Shill: TShiftState; X, Y: Integer); procedure GroupBox51v1ouseMovc(Scnder. '!'Object; Shill: TShift3tatc; X, Y: Integer); prncedure Pane!PilihClick(Sender: TObject); procedure GroupBox4MouseMovc(Scndcr: '!'Object; Shift: TShiftState; X, Y: Integer); private ( Private declarations } public ( Public declarations } end; var Form2: TFonn2;
implementation Uses Unit3KandidatKaryawan, UnitlDataModul; ($R *.dfm}
procedure TForm2.FormMouseMove(Sender: TObjcct; Shill: TShit\Statc; X, Y: Integer); begin Labe!Closel.Visible :=True; LabclCiose2. Visible := False; LabelDafKandidatl.Visible :=True; Labe1Da!Kandidat2.Vi,ible :=False;
end; procedure TFonn2.LabclClose2Click(Sender: TObject); begin Close;
end; procedure TForm2.LabelClose I Click( Sender: TObject);
begin Close;
end; procedure TFonn2.LabclClose!MouseEnter(Sender: TObject);
begin LabelCloscl.Visible :=False; Labe1Close2. Visible :=true; end;
103
procedure TForm2.LabeluafKandidal I MouscEnler(Sender: TObjeel); begin LabelDafKandidatl.Visible :=False; Labe1DafKandidat2.Visible :=true; end; procedure TForm2.PanelPilihMouseMovc(Sender: TObject; Shi fl: TShiflState; X, Y: Integer); begin Pane!Pilih.BevelOutcr := BvLowcrcd; PanelPilih.Color := $00FF8000; Pane!Pilih.Font.Color :~ $0080FF80; end; procedure TForm2.GroupBox5MouseMovc(Sender: TObject; Shift: TShif\Statc; X, Y: Integer); begin PaneIPilih.BevelOutcr := BvNone; PanelPilih.Color := c!Black; Pane!Pilih.Font.Color := c!Silver; end; procedure TForm2.PanelPilihCiick(Sender: TObjectl; begin query I.Close; queryl.SQL.Clear; queryl.SQL.Add('Select • From Karyawan Where Jabatan =:JB and Divisi =:DV and'+ Golongan =:GL and Penilaian_Kesetiaan =:KS and Penilaian_Kinerjfa =:KJ and Pendidikan_Terakhir =:PD'+ and Mengikuti_PK_Sebanyak =:PK and Masa_Kerja_Th =:MK and Usia_Th =:US'); query I.Prepare; query! .ParamByName('JB').AsString:=DBLookUpcombobox4.Text; query I .PararnByName('DV').AsString:=DBLookUpcombobox5.Text; query I .PararnByName('GL').AsString:=DBLookUpcombobox6.Text ; queryl.ParamByNamel'KS').AsString:=DBLookUpcombobox8.Text; query I .ParamByName('KJ').AsString:=DBLookUpcombobox9.Text ; query! .ParamByName('PD').AsString:=DBLookUpcombobox7.Text; query l .ParamByName('PK').AsString:=DBLookUpcombobox I O.Tcxt ; query I .ParamByNamc('MK').AsString:=DBLookUpcombobox I I .Text ; query l .ParamByNarne('US').AsString:=DBLook Upcombohox 12.Tcxt ; query I.Open; Form3.Show; end; procedure TForm2.GroupBox4MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Pane!Pilih.Beve!Outer :~ BvNonc; PanelPilih.Color := clBlack; PanelPilih.Font.Color :~ c!Silver; end; end.
104
Lamp. 12: Source Code Kandidat Karyawan Memenubi Syara~ unit Unit3KandidatKaryawan;
interface uses Windo\vs, Messages, SysUtils, Variants, Classes, Graphics, •Controls, Forn1s 1 Dialogs, MMSystcrn, Grids, DBGrids, StdCtrls, ExtCtrls, Mask, DBCtrls, DB, DllTablcs;
type TForrn3 = class(TForrn) GroupBox 1: TGroupBox; Groupl3ox2: TGroupBox; LabclLihatData I: TLubcl; LabclLihalData2: TLuhcl; PanclBerikutnya: TPancl; Pan( ·!Pertarna: TPanel; Panc!Terakhir: TPanel; PancJScbelumnya: TPanel; DBEditl: TDBEdit; LabclClosel: TLabcl; Labe1Close2: TLabcl; LabelJudul: TLabcl; GroupBox3: TGroupBox; Label2: TLabel; Label Caril: TLabcl; Labe1Cari2: TLabcl; DataSource l: TDataSource; LabclSirnpan I: TLabel; Labe1Sirnpan2: TLabel; Edit I: TEdit; Memo 1: TMemo; DB Grid l: TDBGrid; Table l: TI'ablc; Table 1No _Jnduk: TStringFicld; Table 1Nana: TStringFicld; Table 1Cabang: TStringField; Table!Divisi: TStringField; Table!Jabatan: TStringField; Table 1Golongan: TStringField; Table JPendidikan_Terakhir: TStringField; Table] Usia_Th: TStringField; TablelMasa_Kerja_Th: TStringField; Table l Mengikuti_PK_Sebanyak: TStringFicld; Table!Penilaian_Kcsetiaan: TStringField; Table 1Penilaian_ Kinerja: TStringField; procedure LabelCJoseJMouseEnter(Sender: TObject); procedure LabeJLihatData JMouseEnter(Sender: TObject); procedure ForrnMouseMove(Scnder: TObject; Shilt: TShiftState; X, Y: Integer); procedure GroupBox2MouscMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Labe!Close2Click(Sender: TObject); procedure LabeJCloselClick(Sender: TObject); procedure PaneJScbelumnynMouseMove(Sender: TObject; Shift: TShiftStatc; X, Y: Integer);
105
procedure Group Box I MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Pane!PertamaMouseMove(Sendcr: TObject; Shift: TShif>:State; X, Y: Integer); procedure Pane!TerakhirMouseMove(Sender: TObject; Shift: TShitlState; X, Y: Integer); procedure Pane!BerikutnyaMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure PanellMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Labe!LihatData2Click(Scndcr: TObjccl); procedure Labcl3Click(Sendcr: TObjcct); procedure LabeI2Click(Sender: TObject); procedure Label2MouseEnter(Sender: TObject); procedure Label Cari I MouseEnter(Sender: TObject); procedure GroupBox3MouseMove(Sender: TObject; Shift: TShiftS·ratc; X, Y: Integer); procedure Button I Click( Sender: TObject); procedure FormActivate(Sender: TObjcct); procedure FormCiose(Sender: TObject; var Action: TCJoseAction); procedure Labe!Simpan I MouseEnter(Sender: TObjcct); procedure Labe!Simpa.12Click(Sender: TObject); procedure Pane!PertamaCJick(Sender: TObject); procedure PanelTerakhirClick(Sender: TObject); procedure Pane!BerikutnyaClick(Sender: TObject); procedure Pane!SebelumnyaClick(Sender: TObjcct); procedure Labe1Cari2Click(Sender: TObject);
private { Private declarations } public { Public declarations }
end; var Form3: TForm3;
implementation Uses unit4DataLengkapKaryawan, Unit2PencarianKandidat, Unit6All:Kandidat; {$R *.dfmj
procedure TForm3 .Label Close I MouscEnter(Sender: TObject); begin Label Close 1. Visible := False; Labe1Close2.Visible :=true;
end; procedure TForm3 .Labe!LihatData I MouseEnter(Sender: TObject); begin Labe!LihatDatal.Visible :=False; Labe!LihatData2.Visible :=true;
end; procedure TForm3.FormMouseMove(Sender: TObjcct; Shift: TShiftState; X, Y: Integer); begin Labe!Closel.Visible :=True; Labe1Close2.Visible := False; I .ahell ,ihntnntn 1 Vi<:ihlP
·= TrnP·
106
end; procedure TForm3.GroupBox2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: ·nteger); begin LabelLihatData I. Visible :=True; l.abelLihatData2. Visible := False; LabelSimpan I .Visible:= True; Labe1Simpan2.Visible :=False;
end; procedure TF01m3.Labc1Ck1se2Click(Scndcr: TObjcct); begin
Close; end; procedure TForm3.Labc!ClosclClick(Sender: TObjcct); begin Close;
end; procedure TForm3.Pane1SebelumnyaMouseMovc'(Sender: TObject; Shift: TShiftStatc; X, Y: Integer); begin PanelSebelumnya.BevclOuter := BvLo\vered; PanelSebelumnya.Color := $00FF8000; Pane!Sebelumnya.Font.Color := $0080FF80; end; procedure TForm3.GroupBox!MouseMove(Sendcr: TObject; Shift: TShiftState; X, Y: Integer); begin PanelScbelumnya.BcvelOuter := BvNone; Pane!Sebelumnya.Color := clBlack; PanelSebelumnya.Font.Color := c!Silver; Pane!Berikutnya.Beve!Outer := BvNone; PanelBerikutnya.Color :=cl Black; Pane!Berikutnya.Font.Color := clSilver; Pane!Pertama.Bcve!Outer := BvNone; Pane!Pertama.Color :=cl mack; Pane!Pe11ama.Font.Color :=cl Silver; Pane!Terakhir.Beve!Outer := BvNone; Pane!Terakhir.Color := c!Bluck; Pane!Terakhir.Font.Color := clSilvcr;
end; procedure TForm3.Pane1PertumaMouseMove(Sender: TObjcct; Shift: TShifiState; X, Y: Intrger); begin Pune!Pertama.Bevc!Outer := BvLowered; PanelPcrtama.Color := $00FF8000; Pane!Pertama.Font.Color := $0080FF80;
end; procedure TForm3.Pane1TcrakhirMouseMove(Scnder: TObject; Shift: TShiftState; X, Y: Integer); begin Pane!Terakhir.Beve!Outer := BvLo\vered; PanelTerakhir.Color := $00FF8000; Pane!Terakhir.Font.Color := $0080FF80;
end; procedure TForm3.Panc!Bc·rikutnyaMouseMove(SenJcr: TObject; Shift: TShiftStute; X, Y: Integer); begin
107
PanelBerikutnya.Color := $00FF8000; PanelBerikutnya.Font.Color := $0080FF80;
end; procedure TForm3.Pancl I MouseMove(Sendcr: TObject; Shift: TShil\Stmc; X,Y: Integer); begin
Panc!Scbelumnya.Bcvc!Outcr := BvLo\vercd; Pane!Scbelumnya.Color := $00FF8000; Pane!Scbelumnya.Font.Color := $0080FF80; end; procedure TForm3.Labc!LihatData2Click(Sender: TObjcct); begin Form6.Tablel .Close; Form6.Show;
end;
procedure TForm3.Label3Click(Sendcr: TObject); begin Close; end; procedure TForm3.Label2Click(Sendcr: TObject); begin
Close; end; procedure TForm3.Label2MouseEnter(Sender: TObject); begin Labe!Closel.Visible :=False; Labc1Closc2.Visible :=true;
l!nd; procedure TForm3.Labe!Cari I MouseEnter(Sendcr: TObject);
begin Label Cari I. Visible := False; Labc!Cari2. Visible := true;
end; procedure TForm3.GroupBox3MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Labe!Caril.Visible :=True; Labc!Cari2.Visible :=False;
end; procedure TForm3.Button!Click(Sender: TObject); begin Table I.Append; Table I .FieldByName('No _!nduk').AsString := fonm2.Qucry 1.FieldByName('No_lnduk').AsString; Table 1.FieldB yName('Nama').AsString := form2.Query 1.Fie!dByName('Nama').AsString; Table I .FicldByName('Cabang').AsString := form2.Query 1.FicldByName('Cabung').AsString; Table I .FieldByName('Divisi').AsString := form2.Query 1.FieldByName('Divisi').AsSt,ing; Table I .FieldByName('Jabatan').AsString := j( rm2.Query l .FieldB yName('Jabatan').AsString; Table I .FieldByName('Golongan').AsString := form2.Query I .FietdByName('Golongan').AsString; Table I .FieldByNamc('Pendidikan_Tcrakhir').AsString := form2.Query I .Fi el dB yName('Pendidikan _Terakhir').AsString;
108
Table l .FieldByName('Masa_Kerja_Th'}.AsString := form2.Query l .FieldByName('Masa_ Kerja_Th').AsString; Table l .FieldB yName('Mengikuti_PK_Sebanyak').AsString := form2.Query l .FieldByName('Mengikuti_PK_Sebanyak').AsString; Table l .FicldByName('Pcnilaian_ Kesctiaan').AsString := form2. Query I .Fi el dB yNamc('Peni laian_Kesetiaan').AsString; Table l .FieldByName('Penilaian_Kinerja').AsSlring := form2.Queryl .FicldByNamc('Penilaian_Kinerja').AsString; Table I.Post; Table I.Refresh; end; procedure TForm3.FormAclivale(Sender: TObjccl); begin Table I.Open; end; procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction); begin Table I.Close; end;
procedure TForm3.LabelSimpan 1MouseEnter(Sender: TObject); begin LabelSimpan I .Visible := False; Labe1Simpan2.Visible :=true; end; procedure TForm3.LabelSimpan2Click(Sen
109
begin Table I.Last; end; procedure TFonn3.Panc1BerikutnyaClick(Sendcr: TObjcct); begin Table I .Next; end; procedure TForm3.Panc!ScbclumnyaClick(Scnder: TObject); begin Table I .Prior;
end; procedure TForm3.LabelCari2Click(Sendcr: TObjcct); begin with table I do begin sctkey; FieldByName('Nama').AsString:~Editl .Text; GoToJ\carest; end;
end; end.
110
Lamp. 13: Source Code Pilihan Tipe Model Penilaian unit Unit9KalimutFaktaAnalisu; interface
uses WindcHvs, lv1cssagcs, Sy~lJtils, Varianls, Classes, Graphics, (':ontrols, Forins, Dialogs, StdCtrls, D13, DBTables, Grids, DBGrids;
type TForm9 ~ class(TForm) Group Box I: TGroupBox; Button]: 'fButton; Button2: TButton;
llutton3: T13utton; Label 1: TLabel; Label Close I: TLabel; Labe1Close2: TLabel; Button4: TBulton; procedure Button!Click(Sender: TObject); procedure Label Close I MouscEnter(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shi fl: TShif\State; X, Y: Integer); procedure Labe!Close2Click(Sender: TObject); procedure 13utton2Click(Sender: TObjcct); procedure ButtonJClick(Sender: TObjeet); procedure Button4Click(Scnder: TObject);
private { Private dc1·Jara1ions } public { Public declarations } end; var
Form9: TForn19; implementation uses Unit l 2PenilaianModelA, Unit 15 PereforensianFaktaKategori, Unit I PenilaianFakta_A, Unit! 5PenilaianFakta_B, Unit !5PenilaianFakta_C, Unitl 5NilaiAkhir;
{SR *.dtin} procedure TForm9.Button !Click(Scndcr: TObject); begin forml6.Shov1; end; procedure TForm9.Labe!Close I MouseEnter(Sender: TObject); begin LabclClosel.Visible :=False; LabclC!osc2.Vlslble :=true; end; pro?cdure TForm9.FormMouseMove(Sender: TObject; Shift: TShitlStai:c; X, Y: Integer);
111
Label Close 1.Visiblc := 'J'ruc; Labc:lC!ose2.Vbib!c :'--'False;
l'nJ;
;1n1,_·...::
begin For11115Pcnilaianldcal_B.Sho\v; cnd~
pn.1.:cJu:c 'rF1..1n1,(}.P.ut\l1nJClil:k(S1..'nJcr: '! Ubji:ct}; hc.:Iin I~uttnn- 1.LnabkJ:---" tru t.;; Funn l 5PcnilaianKan
pnJccJurc 'IT'orn19.!Jutton-1Ctick(St:nJcr: 1'()bjc~t); begin Form I 5NilaiAkhir.Show; end; end.
112
Lamp. 14: Source Code Analisa Penilaian Ideal A unit UnitIPcnilaianFakta_A; interface
uses Windo1,vs, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, lJB, DB'fables, StdCtrls, Mask, DBCtrls, ExtCtrls, Grids, DBGrids; type TForrn 16 = class(TFonn) Table!: TTable; DataSource I: TDataSource; Table2: TTable; Table3: TTable; RadioGroup I: TRadioGroup; DataSource2: TDataSource; GroupBoxl: TGroupBox; Label3: TLabel; DBLookupCornboBox I: TDBLookupCornboBox; Label4: TLabel; DBEditl: TDBEdit; GroupBox2: TGroupBox; GroupBox4: TGroupBox; Label2: TLabel; DBLookupCornboBox2: IDBLookupComboBox; DBEdit2: TDBEdit; Labell: TLabel; GroupBoxS: TGroupBox; Label5: TLabel; Table4: TTable; DataSource4: TDataSource; DBGridl: TDBGrid; Query I: TQuery; Table3No_Induk: TStringField; Table3No_Pereferensian: TStringField; Table3Pereferensian: TStringField; Table3No_Fukta: TStringField; Table3Nilai_Absolut: TFloatField; Table3Nilai: TFloatField; Table2No_Pereforensian: TStringField; Table2Pereferensian: TStringField; Table2Kalimat: TStringField; ListBoxl: TListBox; LabelCJosel: TLabel; Table4No_lnduk: TStringField; Table4Nama: TStringField; Table4Cabang: TStringField; Table4Divisi: TStringField; Table4Jabatan: TStringField; Table4Golongan: TStringField; Table4Pendidikan_ Terakhir: TStringField; Table4Usia_Th: TStringField; Table4Masa_Kerja_Th: TStringField; Table4Mengikuti_PK_Sebanyak: TStringField; Table4Penilaian Kcsetiuan: TStrin~Field:
113
Tablc4Pcnilaiun_Kinerja: TStringField; QucrylNo... lmluk: TStringField; f}uei·y I Nn_)\.·ri..:Ji.:n.'.nsian: TS!1 ingFielJ; <)1h:f')' 11 'l'i ;_;fi.;rc11',i:1,1: ·1-stringl,.icld; ()uc-ry l No_Faktu: 'l'Stri ngFit:IJ; Qucry!Nilai_Absolut: TFloatField; Qucry!Jumlah_Fakta: TFloalField; Query!Nilai: TFloalFicld; Query l No_lnduk_ l: TStringFicld; QucrylNama: TStringField; Qucry!Cabang: TSlringFicld; Query lDivisi: TStringField; Qucry!Jabatan: TStringFicld; Query!Golongan: TStringField; Que ·yl Pendidikan_Terakhir: TStringField; Query I Usia_Th: TStringField; Query!Masa_Kci:ja_Th: TStringField; Query I Mengikuti_PK_.Scbanyak: TStringField; ()u1.:ryl Peni!aian_Kcsc:tiann: ·rstringFk,Jd; Query I Penilaian_Ki111.:rju: TStringFiclJ; 'L1b1::3Ju1r1l.ih _Fal~ta: 'J'Fln•~tFii:!d; Lt!b...:lGrafiL2: TLab..;!; LabelClo.sc2: TLabel; LabcJGraiikl: TLabcl· LabelDcrajatKcanggotaan2: TLabel; LabclDcrajatKeanggotaan 1: TLabel; Labe!Ok2: TLabel; Label Ok 1: TLabel; LabclCancc12: 1Label; Label Cancel I: TLabcl; LabclDclele I: TLabel; Labe!Delete2: TLabel; Labe!Hasi12: TLabel; LabelHasi' I: TLabel; procedure FormAclivatc(Sender: TObject); procedure DBLookupComboBoxl Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure RadioGroup I Click(Sender: TObject); procedure DBLookupComboBox2Click(Sender: TObjcct); procedure Labe!Close2Click(Sender: TObject); procedure LabelClose l MouseEntcr(Sender: TObject); procedure FormMouscMove(Scn
I 14
procedure LabclHasil l MouscBntcr(Scndcr: TObjcct); procedure FonnClose(Sender: TObject; var Action: TCloseAction);
private { Private declarations } public { Public declarations )
end; var Form 16: TForm 16; jum:integer; jumsebelumjumFakta:integer; str:string; NPre:array[ I..10] of String; fakta:string; i:integcr;
implementation uses Unitl2, Unit! 5GrafikKandidatldealA;
($R *.dfm} procedure TForml6.FormActivate(Sender: TObjecc\; var col,i:integer; begin
jun1sebclum:=O; jum:=O; i:=O; fakta:= 0 ; col:=table2.RecordCount; Radiogroup l .Columns:=col; table2.First; radiogroup l .ltems. Cle'>r; for i:= 1 to col do begin mdiogroup ! .items.Add( tablc2.fieldByName('perefercnsian').AsString); NPrc[i]:=tablc2.FicldByNarne('No_Pcrefcrensian').A:;String; table2.Next;
end;
end; procedure TForm 16.DBLookupComboBox l Click( Sender: TObject); begin listbox l .ltems.Add(dblookupcombobox I .Text);
jum:=jun1+ 1; fakta:=fakta+dblookupcom bobox I .Text+','; end; procedure TForm l 6.Button2Click(Sender: TObject); begin try query I.Delete;
except sho\vn1cssagc('Gagal 1); end;
115
procedure TForm 16.RadioGroup I Click(Scnder: TObject); \'Ur
Abs:integcr; begin abs:=radiogroup l .ltemindcx; str:=radiogroup l .Itcms[abs]; end;
procedure TForm l 6.DBLookupComboBox2Click(Scnder: TObject); begin query I.Clos-'; query I .SQL.Clear; queryl.SQL.Add('select •from Nilai, kandidat' +' \Vherc' +' nilai.No_Induk=Kandidat.No_Induk' +' and Nilai.No_Induk =:KD' +' order by No_Pereferensian 1); query I.Prepare; query! .PararnByName('KD'),AsString:=DBLookUpCombobox2.Text; query I .Open;
i:=O;
end; procedure TForm J 6.Labe1Close2Click(Sender: TObject); begin Close;
end; procedure TForm 16.LabelCloseI MouseEnler(Sender: TObjcct);
begin Lube!Closel.Visible :=False; Lubc1Close2.Visible :=true;
end; procedure TForm 16.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin LabclClose 1. \'isiblc := True; Lube!Closc2.Visible :=False;
end; procedure TForrn l 6.Button4Click(Sender: TObject); begin Form I 2Hasi1DerajatKcunggotaanA.Show;
end; procedure TForm 16.Labe1Gralik2Click(Scnder: TObject); begin Form 15GrafikKandidatldcalA.ShowModaI;
end; procedure TForm 16.LabelGrafik I MouseEnter(Sender: TObject); begin Labe!Grafik I. Visible := False; LabelGrafik2.Visibie :=true;
end; procedure TFormI6.GroupBox5MouseMovc(Sender: TObject; Shift: TShiftStute; X, Y: Integer);
h,,,,: ...
116
Labc1Grafik2. Visible:= False; LabelDerajatKeanggotann I. Visible := True; Labe!DerajatKeanggotaan2. Visible := False; LabelHasil I. Visible :=True; Labe1Hasil2. Visible := False;
end; procedure TForm J6.Labc1DerajatKcanggotaan2Click(Sender: TObjcct);
var i:integer; begin table3.First; for i:=J to table3.RccordCount do begin table3.Edit; table3.FieldByName('Nilai').AsFloat:=tablc3.FicldbyName('Nilai_Absolut').Aslntcgcr/jumfakta; tablc3.Next; table3.Refresh;
end; query I .Close; query I .Open;
end; procedure TForm 16.LabelDerajatKeanggotaan I MouseEnter(Sender: TObject); begin LabclDerajatKeanggotaanl.Visible :=False; LabelDerajatKeanggotmm2.Visible :=true;
end; procc,,ure TForml6.LabelOklMouseEntcr(Sender: TObject); begin Label Ok I. Visible := False; Label0k2.Visible :=true;
end; procedure TForm 16.Label0k2Click(Sender: TObject); begin jumFakta:=jum+JumSebelum; i~=i+1;
table3.Append; table3.FieldByName('No_Perefcrensian').AsString:=NPrc[i]; table3.FieldByName('Perefcrensian').AsString:=str; table3. Fi el dB yName('No_Fakta').AsString:=fakta; table3 .Fi cl dB yName('Ni lai _Ab sol ut').Aslntcger:=jumFakta; table3.FieldByName('Jumlah_Fakta').Aslnteger:=Jum; Table3.Post; table3.Refresh; query I.Close; query I.open;
jun1scbclum:=jun1Fakta; jum:=O;
fakta:= 0 ; listbox I .Items.Clear;
end; procedure TForml6.Grouplloxl MouscMovc(Scnder: TObject; Shift: TShiftState; X, Y: Integer);
begin Labe!Ok I.Visible:= True; l
-1--IAl.'"1 '\F:-!t..L, · -
T' .•
1- ..
117
LabclCanccl !.Visible:~ True; Labc1Cancc12. Visible := False; LLJbclJ)c!cte l .Vbible : = True; LabclJ)clctc2. Visible := Palsc; cnd; 0
procedure TForm 16.Labe1Cancel2Click(Sender: TObject); begin Query I.Caned; ListBo~, l .llcrns.Cl1.:ar; end;
proccdur0 TFonn [().f ,abc!C'ancc! I fvhiuseEnh:r(StnJ..:r; T<Jbject); begin
Labi:JCancel J. Visible
:~
Lubi:!Canccl2.\'i~;ib!~
:"""true;
False;
end;
procedure TFonn 16.LabelDelete J MouseEnter(Sender: TObject); begin L::bclDcl;;tc 1.Vbible
:""~
F
LabL:lUclctc2.Visibl...; :=true; end;
procedure '!'Form 16.Labe1Dclcle2Click(Sendcr: '!'Object); begin try
query l .D\:lct;;; c:\..:cpt sho\vn1cssage('Gagal'); end; end;
procedure TForm 16.Labdl lasil2Click(Scndcr: TObject); begin Form J2Hasil DerajatKeanggotaanA.ShowModal; end;
procedure '!Torm 16.Labcll lasil I MouscEnter(Scndcr: TObjcct); b.:;;in l ,,,h;:ll !.i:.iJ ! .\'i'-,ibk' > J\1LL·; !.,1:, 1'. L.,_,\L?.VLii:k'; ~i 11,.'; 1.:nd; pf1>ccJurc TFunn 16.FunnL'lu:-;c(S..;nJi:r: TObjc-.:l; vur ,\~tion: TC!usc1\ction);
begin queryl .Close; end; end.
118
Lamp. 15: Source Code Grafik Derajat Keanggotaan Ideal A unit U 1itl5GrafikKandidatldealA;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, TeEngine, Series, DB, ExtCtrls, TeeProcs, Chart, DbChart, StdCtrls; type TForml5GrafikKandidatldcalA = class(TForm) DB Chart I: TDBChart;
Series 1: TBarScries; Label I: TLabel; Label2: TLabel; Label Close I: TLabcl; Labe1Close2: TLabcl; procedure Labe1Close2Click(Sender: TObject); procedure Label Close l MouseEntcr(Scnder: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; ;;, Y: Integer\; procedure FormActivate(Sender: TObject);
private ( Private declarations } public { Public declarations } end; var Form l 5GrafikKandidatldcalA: TForm J5GrafikKandidatldealA;
i1nplemcntation
uses Unit1PenilaianFakta_A; {$R *.dfm}
procedure TForm l 5GrafikKandidatl dealA.LabclClose2Click(Sender: TObjcct); begin Close;
end; procedure TF orm l 5Grafiki
end; procedure TForml5GrafikKandidatldealA.FormMouscMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label Close I. Visible := True; Labe1Close2.Visible :=False;
end;
119
procedure TForm 15GralikKandidulldcalA.FormActivatc(Scndcr: TObjcct); begin Form 16.Quer; ! .Open; end; end.
120
Lamp. 16: Source Code Nilai Derajat Keanggotaan Idt!al A unit Unit12;
interface uses Windo\vs, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, f)ialogs, StdCtrls, Grids, Mask, DBCtrls, DB, DBTables;
type TForm 12Hasi1DerajatKeanggotaanA = class(TForm) Group Box I: TGroupBox; StringGridl: TStringGrid; Edit!: TEdit; Labell: TLabel; Labe12: TLabel; GroupBox2: TGroupBox; Label Close I: TLabel; Labc1Close2: TLabel; Label0k2: TLabel; LabelOkl: TLabcl; GroupBox3: TGroupBox; Label3: TLabcl; Label4: TLabel; DBEditl: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; Table!: TTable; Label5: TLabel; procedure FormActivate(Sendcr: TObject); procedure Labe1Close2Click(Sender: TObject); procedure LabelClose I MouseEnter(Sendcr: TObjcct); procedure FormMouscMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure GroupBox2MouscMove(Sender: ~object; Shift: TShiftState; X, Y: Integer); procedure LabelOk!MouseEnter(Sender: TObject); procedure Label0k2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form l 2Hasi!DcrajatKeanggotaanA: TForm 121-lasi lDerajatKcanggotaanA; tot,JumRec:integer; implementation
uses Unit! 2InputPereferensian, Unit I PcnilaianF akta_A, Unit I SDerajatKeanggotaan_A; {$R *.dfin}
procedure TForm 12HasilDerajalKeanggotaanA.Fom1Activate(Scnder: TObjcct); var ij:integer; t.,,,,.: ..
121
Fonn l 2InputPereferensian.Table I.First; for i:=l to Form I 21nputPereferensian.Tablc 1.RecordCount do begin
Derajat[i] :=Form 121 nputPerefercnsian.Table I LUDcrajat. Value; Jarak[i]:=lntT0St1{i); Bobot[i]:='I'; "'lcrefCrensian[i] :=Form 12lnputPerefcrcnsian.Table I PereJCrcnsian. Value; Form I 21nputPcrcferensian.Tablc I .Next;
end;
StringGrid 1. Cells[O,O] :='No'; StringGrid 1.Cclls[l ,O]:='Nilai Pcrcfcrensian (a)'; StringGrid1.Cclls[2,0]:='Bobot Nilai (b)'; StringGrid1.Cells[3,0]:='Jarak Nilai (c)'; StringGrid I .Cells[ 4,0]:='Ju111lah Fakla (d)'; StringGrid l.Cells[5,0]:='Hasil (c*d)'; Form I21nputPcreferensian. Table I .First; Form 16.Queryl .First; tot:""'O;
for i:=l to Form12InputPercferensian.Tablel.RecordCount do begin StringGrid I .Cells[O,i]:=lntToStr(i); StringGrid 1.Cclls[ I,i] := Perefcrensian[i]; StringGrid I .Cells[2,i]:=Bobot[i]; StringGrid I .Cells[3,i] :=Jarak[i]; StringGrid I.Cclls[4,i] :=lntToStr(Form 16.Query I .FieldByName{' Jumlah_F akta'). Value); j :=StrTolnt(Form 16.Queryl .FicldByName('J umlah _Fakta'). Val uc)*StrTolnt(Jarak[i]); StringGrid I .Cells[ 5,i]:=lntToStr(j); Form I 2InputPerefercnsian. Table I .Next; StringGrid I .RowCount:=StringGrid I .RowCount+ I; tot:=tot+j; Form 16.Qucryl .Next; end;
jun1 Rec:= Form J2InputPereferensian. Table l .RccordCount; Edit I. Text:=lntToStr( tot); DBEdit3. Text:=FloatToStr(tot/(JumFakta*J um Rec)); table I.Insert; table!.FieldByName('No_Induk').AsS!ring:=Forml6.DBLookupComboBox2.Text; tablel.FieldByName('Numa').AsString:=Form 16.DBE
procedure TForm l 2Hasi1DerajatKeanggotaanA.LabelClose2Click(Sender: TObject); begin Close; end; procedure TForm 12Hasi IDerajatKeanggotaanA.LabclClose 1MouseEnter(Scnder: TObject); begin Label Close 1. Visible := False; Labe!Close2. Visible := true; end;
122
begin LabelClosel.Visible :=True; Labe1Close2.Visible :=False;
end; prncedure TForm I 2Hasi1DerajatKeanggotaanA. GroupBox2MouseMove(Sender: TObject; Shill: TShiftState; X, Y: Integer); begin Label Ok I .Visible :=True; Labe10k2.Visible :=False;
end;
procedure TForm 12Hasi!DerajatKeanggotaanA.Labc!Ok 1MouscEnter(Scnder: TObject);
begin Labc!Okl.Visihle :=False; Label0k2.Visible :=true;
end; procedure TForm I 2Hasi IDerajatKeanggotaanA. Lube!Ok2CI ick(Scndr:r: TObjecl); begin Form I 5Hasi!Derajati\.ShowModal;
end; end.
123
Lamp. 17: Source Code Derajat Keanggotaan Ideal A unit Unitl 5J)crajatKeanggotaan_A;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, Grids, DBGrids, StdCtrls, Mask, DllC!rls; type TForm l 5Hasi!DerajutA ~ class(TForm) Group Box 1: TGroupBox; f)utaSource 1: TDataSourcc; DB Edit I: TDllEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; Lubell: TLabcl; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; GroupBox2: TGroupBox; Labe!Closel: TLabel; Labe1Close2: TLabel; procedure Labe1Closc2Click(Sender: TObjcct); procedure LabelClose 1MouseEnter(Sendcr: TObjcct); procedure GroupBox2MouseMove(Sender: TObject; Shift: TShiftStale; X, Y: Integer);
private { Private declarations } public { Public declarations }
end; var Form I 5HasilDerajatA: Tform 15HasilDerajatA;
implementation uses Unit12; {$R •.dfm) procedure TForm l 5Hasi1DerajatA.LabelClose2Clid (Sender: TObject); begin
Close; end; procedure TForm 15HasilDerajatA.LabelClosel MouscEnter(Sender: TObject); begin LabelClosel.Visible :~False; Labe1Close2.Visiblc :~true;
end; procedure TForm l51-lasil0crajatt\.GroupBox2Mousclv1ove(Scnder; 'PJbject; Shift; TShiftStatc; X, Y: Integer); hPPin
124
Labe!Closel.Visible :=True; Labe1Close2.Visible :=False;
end; end.
125
Lamp. 18: Source Code Peuilaian Akhir unit Unit! 5NilaiAkhir; interface
uses Windo\vs, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, f)iulogs, StdCtrls, Mask, DBCtrls, DB, DBTables; type TForm I 5NilaiAkhir ~ class(TFom1) Group Box l: TGroupBox; Label I: TLabcl; Label2: TLabel; Table l: TTablc; DalaSourcc l : TDalaSource; DBEdill: TDBEdit; DBEdit2: TDBEdil; Gro11pllox2: TGroupBox;
GroupBox3: l'GroupBox; Label3: TLabel; Labe14: TLabcl; Label5: TLabel; Label6: TLabel; Label7: TLabel; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TDBEdit; DBEdit6: TDBEdit; Table2: Tfable; DataSource2: TDataSource; procedure Label3Click(Sendcr: TObject); private { Private declarations ) public { Public declarations }
end; var Form l 5NilaiAkhir: TForm I 5NilaiAkhir;
i1nplcmcntation uses Unit! 5DerajatKeanggotaanC;
{$R *.dfm} procedure TForm l 5NilaiAkhir.Label3Click(Sender: TObjcct); begin Close;
end; end.