BAB 4 PERANCANGAN PROGRAM
4.1
Perancangan Program Dalam perancangan program aplikasi ini, terlebih dahulu dibuat rancangan
struktur/hirarki menu, State Transition Diagram (STD), modul dan pseudocode, serta rancangan layar. Perancangan program ini dibuat menggunakan bahasa pemrograman Java Applet sehingga program aplikasi dapat berupa desktop application dan juga web application. Data source yang digunakan sebagai sumber data adalah mySQL.
4.1.1
Rancangan Struktur Menu Struktur menu program yang dirancang adalah sebagai berikut.
Gambar 4.1 Struktur Menu Utama
43 4.1.2
Rancangan State Transition Diagram (STD) State Transition Diagram (STD) merupakan model yang menggambarkan sifat
ketergantungan pada waktu dari suatu sistem. STD terdiri dari simbol kotak dan simbol panah. Setiap anak panah menggambarkan perubahan atau transisi yang disertai dengan keterangan seperti if condition then statement. Keterangan pada anak panah tersebut dibagi menjadi dua buah kalimat. Kalimat pada bagian atas adalah kondisi sedangkan kalimat pada bagian bawah adalah statement jika kondisi terpenuhi. Berikut adalah rancangan STD program aplikasi yang dikembangkan. STD Menu Utama
Gambar 4.2 STD Menu Utama
44 4.1.3
Modul dan Pseudocode
Untuk menjelaskan cara kerja program, di bawah ini dijelaskan rincian spesifikasi untuk tiap proses sebagai berikut. A.
Modul Form Optimize Buat komponen yang dibutuhkan sebagai tampilan. Atur nama tiap komponen Inisialisasi peubah Membuat koneksi ke database If koneksi ke database berhasil Mengambil data dari database Tunggu input user Cek Pilih Tombol ‘Calculate Cost and Profit’ Jalankan progress bar Proses iterasi Menghitung nilai cost departemen Menghitung nilai profit departemen Menampilkan hasil perhitungan cost dan profit Pilih Tombol ‘Optimize’ Jalankan progress bar Proses iterasi Mencari best candidates departemen Menampilkan hasil optimalisasi Tunggu input user Panggil modul CekMenuInput
B.
Modul Form View Employee Competency Data Membuat koneksi ke database If koneksi ke database berhasil Mengambil data employee comptency dari database Menampilkan table data employee competency Tunggu input user Panggil modul CekMenuInput
C.
Modul Form View Employee Expectation Data Membuat koneksi ke database If koneksi ke database berhasil Mengambil data employee expectation dari database Menampilkan tabel data employee expectation Tunggu input user Panggil modul CekMenuInput
45
D.
Modul Form View Department Competency Level Membuat koneksi ke database If koneksi ke database berhasil Mengambil data department competency dari database Menampilkan table data employee expectation Tunggu input user Panggil modul CekMenuInput
E.
Modul Form View Department Value, Weight, and Wage Membuat koneksi ke database If koneksi ke database berhasil Mengambil data department value, weight, and wage dari database Menampilkan table data department value, weight, and wage Tunggu input user Panggil modul CekMenuInput
F.
Modul Form Manage Employee Competency Data Membuat koneksi ke database If koneksi ke database berhasil Mengambil data employee competency dari database Menampilkan table data employee competency Cek Pilih ‘Add’ Menambahkan data ke dalam database Pilih ‘Delete’ Menghapus data dari database Pilih ‘Save’ Menyimpan data ke dalam database Tunggu input user Panggil modul CekMenuInput
G.
Modul Form Manage Employee Expectation Data Membuat koneksi ke database If koneksi ke database berhasil Mengambil data employee expectation dari database Menampilkan table data employee expectation Cek Pilih ‘Add’ Menambahkan data ke dalam database Pilih ‘Delete’
46 Menghapus data dari database Pilih ‘Save’ Menyimpan data ke dalam database Tunggu input user Panggil modul CekMenuInput
H.
Modul Form Manage Department Competency Level Membuat koneksi ke database If koneksi ke database berhasil Mengambil data department competency level dari database Menampilkan table data department competency level Cek Pilih ‘Add’ Menambahkan data ke dalam database Pilih ‘Delete’ Menghapus data dari database Pilih ‘Save’ Menyimpan data ke dalam database Tunggu input user Panggil modul CekMenuInput
I.
Modul Form Manage Department Value, Weight, and Wage Membuat koneksi ke database If koneksi ke database berhasil Mengambil data department value, weight, and wage dari database Menampilkan table data department value, weight, and wage Cek Pilih ‘Add’ Menambahkan data ke dalam database Pilih ‘Delete’ Menghapus data dari database Pilih ‘Save’ Menyimpan data ke dalam database Tunggu input user Panggil modul CekMenuInput
J.
Modul Form User Manual Tampilkan Form User Manual dengan komponennya Tunggu input user Panggil modul CekMenuInput
47 K.
Modul Form About Tampilkan Form About dengan komponennya Tunggu input user Panggil modul CekMenuInput
L.
Modul CekMenuInput Cek Pilih ‘File-Optimize’ Panggil Form Optimize Pilih ‘File-Exit’ Keluar program Pilih ‘Database-View Data-Employee Competency Data’ Panggil Form View Employee Competency Data Pilih ‘Database-View Data-Employee Expectation Data’ Panggil Form View Employee Expectation Data Pilih ‘Database-View Data-Department Competency Level’ Panggil Form View Department Competency Level Pilih ‘Database-View Data-Department Value, Weight, and Wage’ Panggil Form View Department Value, Weight, and Wage Pilih ‘Database-Manage Data-Employee Competency Data’ Panggil Form Manage Employee Competency Data Pilih ‘Database-Manage Data-Employee Expectation Data’ Panggil Form Manage Employee Expectation Data Pilih ‘Database-Manage Data-Department Competency Level’ Panggil Form Manage Department Competency Level Pilih ‘Database-Manage Data-Department Value, Weight, and Wage’ Panggil Form Manage Department Value, Weight, and Wage Pilih ‘Help-User Manual’ Panggil Form User Manual Pilih ‘Help-About’ Panggil Form About
48 4.1.4 A.
Rancangan Layar Rancangan Layar Utama
Gambar 4.3 Rancangan Layar Utama B.
Rancangan Layar Optimize
Gambar 4.4 Rancangan Layar Optimize
49 C.
Rancangan Layar View Employee Competency
Gambar 4.5 Rancangan Layar View Employee Competency
D.
Rancangan Layar View Employee Expectation
Gambar 4.6 Rancangan Layar View Employee Expectation
50 E.
Rancangan Layar View Department Competency Level
Gambar 4.7 Rancangan Layar View Department Competency Level
F.
Rancangan Layar View Department Value, Weight, and Wage
Gambar 4.8 Rancangan Layar View Department Value, Weight, and Wage
51 G.
Rancangan Layar Manage Employee Competency
Gambar 4.9 Rancangan Layar Manage Employee Competency
H.
Rancangan Layar Manage Employee Expectation
Gambar 4.10 Rancangan Layar Manage Employee Expectation
52 I.
Rancangan Layar Manage Department Competency Level
Gambar 4.11 Rancangan Layar Manage Department Competency Level
J.
Rancangan Layar Manage Department Value, Weight, and Wage
Gambar 4.12 Rancangan Layar Manage Department Value, Weight, and Wage
53 K.
Rancangan Layar User Manual
Gambar 4.13 Rancangan Layar User Manual
L.
Rancangan Layar About
Gambar 4.14 Rancangan Layar About
54 4.2
Kebutuhan Sistem Program dirancang dengan menggunakan komputer dan sistem operasi dengan
spesifikasi sebagai berikut. a. Hardware •
Processor
: Intel(R) Core(TM)2 Duo CPU @ 1.40GHz
•
Memory
: 2.99 GB
•
Video Card
: Mobile Intel(R) 965 Express Chipset Family
•
Hard Disk
: 120 GB
b. Software •
Operating System : Microsoft Windows XP Professional
•
Software
: Java 2 Standard Edition (J2SE) Applet
Spesifikasi di atas bukan merupakan spesifikasi minimum untuk menjalankan program aplikasi namun merupakan spesifikasi komputer yang digunakan dalam membuat dan menguji program aplikasi. Dalam membuat program aplikasi ini, digunakan Java 2 Standard Edition (J2SE) Applet dan database mySQL. Java Applet dipilih dikarenakan dari segi kestabilannya, baik saat development hingga implementasi dapat dikatakan bahwa tidak ada masalah yang berarti. Aplikasi ini dibuat dengan Java Applet menjadikannya platform independent, artinya aplikasi ini dapat dijalankan pada sistem operasi apapun asalkan terdapat browser dengan Java Runtime Environment (JRE) di dalamnya.
55 4.3
Pengoperasian dan Tampilan Program Aplikasi Program aplikasi diaktifkan dengan menjalankan file executeable-nya.
Pengguna akan langsung masuk ke layar utama. Pada layar utama ini semua kegiatan yang berhubungan dengan proses optimalisasi alokasi karyawan dilaksanakan.
Gambar 4.15 Tampilan Program Menu Utama Layar menu utama adalah layar menu awal yang menampilkan tiga buah pilihan yaitu File, Database, dan Help. Dalam File terdapat pilihan yaitu Optimize dan Exit. Dalam Database terdapat pilihan View Data (View Employe Competency Data, View Employee Expectation Data, View Department Competency Data, View Department Value, Weight, and Wage) dan Manage Data (Manage Employe Competency Data, Manage Employee Expectation Data, Manage Department Competency Data, Manage Department Value, Weight, and Wage). Sedangkan dalam Help terdapat pilihan User Manual dan About. Submenu Optimize akan menampilkan form untuk memilih data karyawan yang akan dialokasikan dan data departemen yang
56 akan ditempati, kemudian akan dihitung profit dan cost departemen akibat dampak alokasi karyawan, dan terakhir program akan melakukan optimalisasi data kombinasi penempatan karyawan agar mencapai optimal profit dan minimal cost. Submenu View Data untuk menampilkan data dalam bentuk tabel. Submenu Manage Data untuk memasukkan data ke dalam database atau menghapus data dari database. Submenu User Manual untuk menampilkan cara penggunaan, dan submenu About untuk menampilkan hak cipta. Submenu Exit untuk keluar dari program aplikasi.
Gambar 4.16 Tampilan Program Optimize Menu Optimize berisi pilihan untuk memilih karyawan yang akan dialokasikan dan memilih departemen yang akan ditempati oleh karyawan. Pengguna harus memilih minimal dua karyawan dan dua departemen sebelum bisa melanjutkan ke form Cost & Profit Result(s).
57
Gambar 4.17 Tampilan Jika Calculate Cost & Profit Ditekan Saat Hanya Satu Departemen yang Dipilih Jika jumlah pilihan karyawan dan departemen telah valid dan tombol Calculate Cost & Profit ditekan maka proses penghitungan cost dan profit akan dilakukan dengan memakai data yang diambil dari database.
Gambar 4.18 Tampilan Jika Calculate Cost & Profit Ditekan dan Jumlah Pilihan Valid
58 Langkah
terakhir
adalah
dengan
menekan
tombol
Optimize
untuk
menampilkan hasil optimalisasi kombinasi penempatan karyawan untuk mencapai profit dan cost yang optimal. Dalam form Optimal Solution(s), pengguna dalam melihat hasil analisis dan optimalisasi data dalam bentuk tabel beserta keterangan untuk solusi terbaik (best case) yang ditawarkan.
Gambar 4.19 Tampilan Saat Tombol Optimize Ditekan Submenu View Data berfungsi untuk menampilkan data yang diambil dari database. Terdapat empat buah pilihan View Data, yaitu View Employe Competency Data, View Employee Expectation Data, View Department Competency Data, View Department Value, Weight, and Wage. Submenu View Employe Competency Data untuk menampilkan data nomor karyawan, unit kompetensi, dan nilai/indeks kompetensi karyawan. Submenu Employee Expectation Data untuk menampilkan data nomor karyawan, kode departemen dan nilai/indeks ekspektasi karyawan terhadap departemen. Submenu View Department Competency Data untuk menampilkan data kode
59 departemen, unit kompetensi, dan referensi level unit kompetensi. Submenu View Department Value, Weight, and Wage untuk menampilkan data kode departemen, value departemen, weight departemen, dan wage departemen.
Gambar 4.20 Tampilan View Employee Competency Data
Gambar 4.21 Tampilan View Employee Expectation Data
60
Gambar 4.22 Tampilan View Department Competency Data
Gambar 4.23 Tampilan View Department Value, Weight, and Wage Data Pada menu Manage Data pengguna dapat melakukan add, edit, ataupun delete data pada database. Terdapat empat buah pilihan Manage Data, yaitu Manage Employe Competency Data, Manage Employee Expectation Data, Manage Department
61 Competency Data, Manage Department Value, Weight, and Wage. Dalam submenu Manage Employe Competency Data, untuk data nilai/indeks kompetensi karyawan harus berupa angka. Dalam submenu Employee Expectation Data, data nilai/indeks ekspektasi karyawan terhadap departemen harus berupa angka. Dalam submenu View Department Competency Data, data referensi level unit kompetensi harus berupa angka. Dalam submenu View Department Value, Weight, and Wage untuk data value departemen, weight departemen, dan wage departemen harus berupa angka. Untuk menginput data baru pengguna dapat menekan tombol Add, input data yang diperlukan, kemudian tekan tombol Save. Untuk mengubah data, pengguna dapat langsung menginput perubahan pada data, kemudian tekan tombol Save. Untuk menghapus data, pengguna dapat memilih data yang ingin dihapus dengan melakukan klik pada baris data, kemudian menekan tombol Delete.
Gambar 4.24 Tampilan Manage Employee Competency Data
62
Gambar 4.25 Tampilan Manage Employee Expectation Data
Gambar 4.26 Tampilan Manage Department Competency Data
63
Gambar 4.27 Tampilan Manage Department Value, Weight, and Wage Data Pada submenu User Manual, akan ditampilkan bagaimana cara menggunakan program yang sedang berjalan, beserta kegunaan menu dan tombol yang ada dalam program ini.
Gambar 4.28 Tampilan User Manual
64 Submenu About berfungsi untuk menampilkan keterangan hak cipta dan perancang program.
Gambar 4.29 Tampilan About
4.4
Implementasi Dari proses pengolahan data yang dilakukan pada subbab 4.2, maka dapat
dilakukan langkah-langkah penyelesaian formulasi McRAP (Multi-criteria Resource Allocation Problem) Integer Programming sebagai berikut. n
M
max z1 ( x) = ∑∑ pij xij i =1 j =1
n
M
min z 2 ( x) = ∑∑ cij xij i =1 j =1
Pertama-tama, ditentukan terlebih dahulu nilai M dan n. Nilai M adalah jumlah karyawan dan nilai n adalah jumlah departemen. Untuk n = 3 dan M = 4, maka formulasi
65 fungsi tujuan memaksimalkan profit z1 dan fungsi tujuan meminimalkan cost z2 menjadi sebagai berikut. max z1 ( x) = p11 x11 + p12 x12 + p13 x13 + p14 x14 + p 21 x 21 + p 22 x 22 + p 23 x 23 + p 24 x 24 + p31 x31 + p 32 x32 + p 33 x33 + p34 x34 min z 2 ( x) = c11 x11 + c12 x12 + c13 x13 + c14 x14 + c 21 x 21 + c 22 x 22 + c 23 x 23 + c 24 x 24 + c31 x31 + c32 x32 + c33 x33 + +c34 x34 + Untuk nilai p (profit) dan c (cost) didapat dengan menyelesaikan persamaan u
pij = Vi × ∑
α i (d ijl − d il0 ) d
l =1
0 il
×
Dij D j max
u
α i (d ijl − d il0 )
l =1
d il0
cij = Wi × ∑
dimana:
cij = biaya (cost) dari pos/departemen ke-i jika karyawan ke-j ditugaskan
pij = keuntungan (profit) dari pos/departemen ke-i jika karyawan ke-j ditugaskan
l = indeks kriteria kompetensi u = jumlah kriteria kompeten Dalam kasus ini, terdapat tiga kriteria kompetensi l = 1..3, sehingga persamaan p (profit) dan c (cost) dapat diselesaikan menjadi
66 3
pij = Vi × ∑
α i (d ijl − d il0 ) d
l =1
0 il
×
Dij D j max
⎛ α i (d ij1 − d i01 ) α 1 (d ij 2 − d i02 ) α 1 (d ij 3 − d i03 ) ⎞ Dij ⎟× = Vi × ⎜ + + 0 0 0 ⎟ D j max ⎜ d i1 di2 d i3 ⎠ ⎝ 3
α i (d ijl − d il0 )
l =1
d il0
cij = Wi × ∑
⎛ α i (d ij1 − d i01 ) α i (d ij 2 − d i02 ) α i (d ij 3 − d i03 ) ⎞ ⎟ = Wi × ⎜ + + 0 0 0 ⎟ ⎜ d d d i i i 3 2 1 ⎠ ⎝ dimana:
Vi = nilai dari pos/departemen ke-i
α i = berat (weight) dari pos/departemen ke-i d ijl = level kompetensi karyawan ke-j untuk kompetensi ke-l pos/departemen ke-i; untuk l = 1,2,...u;
1 ≤ d ijl ≤ 9, d ijl ∈ N ;
d il0 = level referensi dari kompetensi ke-l dari pos/departemen ke-i untuk l = 1,2,...u Dij = level ekspektasi karyawan ke-j terhadap pos/departemen ke-i
Untuk 1 ≤ Dij ≤ 9, Dij ∈ N ; D j max = level ekspektasi tertinggi dari karyawan ke-j terhadap
keseluruhan pos/departemen Wi = upah dari pos/departemen ke-i
67 Untuk variabel M (jumlah karyawan) dan n (jumlah departemen), dapat diinput dari aplikasi dengan memilih karyawan yang akan dialokasikan dan departemen yang akan ditempati, seperti berikut.
Gambar 4.30 Pilih Karyawan Untuk Dialokasikan (n) dan Departemen Untuk Ditempati (M) Setelah itu, berdasarkan data karyawan (M=4) yang dipilih, aplikasi akan otomatis mengambil data kompetensi karyawan ( d ijl ) dan data ekspektasi karyawan ( Dij ) dari database. Untuk data departemen (n=3) yang dipilih akan diambil data referensi level kompetensi departemen ( d il0 ), dan value ( Vi ), weight ( α il ), dan wage ( Wi ) departemen dari database. Seluruh data tersebut akan diinput ke dalam formulasi profit dan cost, dan akan menghasilkan data sebagai berikut.
68
Gambar 4.31 Data Hasil Perhitungan Cost dan Profit
Kolom Dept. Code menunjukkan kode departemen yang akan diisi, Dept. Name menunjukkan nama departemen yang akan diisi, Emp. Number menunjukkan nomor pegawai yang akan dialokasikan ke departemen yang akan diisi. Untuk kolom Profit menunjukkan hasil perhitungan besarnya profit yang akan dihasilkan setelah alokasi karyawan. Kolom Cost menunjukkan besarnya cost yang akan dihasilkan setelah alokasi karyawan. Kolom Gap menunjukkan besarnya profit dikurangi cost. Hasil cost dan profit yang didapat diharapkan dapat memberikan representasi data optimal untuk kombinasi pemetaan karyawan terhadap departemen. Kombinasi pemetaan karyawan dilakukan dengan memetakan masing-masing karyawan dengan setiap departemen yang dipilih. Hasil akhir yang ditampilkan oleh aplikasi setelah dioptimalisasi adalah sebagai berikut.
69
Gambar 4.32 Data Solusi Optimal Pada solusi optimal ditampilkan data kombinasi pasangan solusi pemetaan antara departemen yang akan diisi dengan karyawan yang akan dialokasikan. Gap dari hasil perhitungan cost dan profit sebelumnya ditampilkan sebagai Net Profit. Untuk judul kolom HR01, HR02, dan HR03 menunjukkan kode departemen yang akan diisi. Sedangkan untuk isi kolom menunjukkan nomor pegawai dan juga nama pegawai yang dialokasikan ke departemen sesuai dengan nama kolom. Kolom Net Profit HR01, Net Profit HR02, dan Net Profit HR03 menunjukkan Gap dari hasil perhitungan profit dan cost sebelumnya untuk masing-masing karyawan dan departemen yang diisi. Kolom Total Net Profit menunjukkan total penjumlahan dari Net Profit yang diperoleh masingmasing solusi. Untuk solusi optimal adalah solusi dengan nilai Total Net Profit tertinggi.
70 4.5
Evaluasi
Solusi optimal dan analisis pencapaian hasil program aplikasi Human Resouces Allocation Optimization, didapatkan nilai untuk masing-masing cost dan profit departemen adalah: Untuk i=1 (Departemen HR01) Profit optimal:
α 1l (d11l − d10l ) D11 × = 700 D1 max d10l l =1 3
p11 = V1 × ∑ Cost optimal:
α 1l (d11l − d10l ) = 630 d10l l =1 3
c11 = W1 × ∑ Net Profit optimal:
gap11 = p11 − c11 = 70
Solusi optimal didapat untuk j=1 (Karyawan 20.1113 – Riche Novianty).
Untuk i=2 (Departemen HR02) Profit optimal:
α 2l (d 22l − d 20l ) D22 p 22 = V2 × ∑ × = 131 D2 max d 20l l =1 3
Cost optimal:
α 2l (d 22l − d 20l ) = 105 d 20l l =1 3
c 22 = W2 × ∑
71 Net Profit optimal: gap 22 = p 22 − c 22 = 26
Solusi optimal didapat untuk j=2 (Karyawan 20.1114 – Ellen)
Untuk i=3 (Departemen HR03) Profit optimal:
α 3l (d 33l − d 30l ) D33 p33 = V3 × ∑ × = 57 D3 max d 30l l =1 3
Cost optimal:
α 3l (d 33l − d 30l ) = 38 d 30l l =1 3
c33 = W3 × ∑ Net Profit optimal:
gap33 = p33 − c33 = 19 Solusi optimal didapat untuk j=3 (Karyawan 20.1115 – Jamie)