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.
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
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
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’
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
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’
4.1.4 Rancangan Layar
A. Rancangan Layar Utama
Gambar 4.3 Rancangan Layar Utama B. Rancangan Layar Optimize
C. Rancangan Layar View Employee Competency
Gambar 4.5 Rancangan Layar View Employee Competency
D. Rancangan Layar View Employee Expectation
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
G. Rancangan Layar Manage Employee Competency
Gambar 4.9 Rancangan Layar Manage Employee Competency
H. Rancangan Layar Manage Employee Expectation
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
K. Rancangan Layar User Manual
Gambar 4.13 Rancangan Layar User Manual
L. Rancangan Layar About
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.
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
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).
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.
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
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.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
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.25 Tampilan Manage Employee Expectation Data
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.
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 i M j ij ijx p x z 1 1 1( ) max∑∑
= = = n i M j ij ijx c x z 1 1 2( ) minPertama-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
fungsi tujuan memaksimalkan profit z1 dan fungsi tujuan meminimalkan cost z2 menjadi sebagai berikut. + + + + = 11 11 12 12 13 13 14 14 1( ) maxz x p x p x p x p x p21x21 + p22x22 + p23x23 + p24x24 + p31x31 + p32x32 + p33x33 + p34x34 minz2(x)=c11x11 +c12x12 +c13x13 +c14x14 + c21x21+c22x22 +c23x23 +c24x24 + c31x31 +c32x32 +c33x33 ++c34x34 +
Untuk nilai p (profit) dan c (cost) didapat dengan menyelesaikan persamaan
max 1 0 0 ) ( j ij u l il il ijl i i ij D D d d d V p = ×
∑
− × = α∑
= − × = u l il il ijl i i ij d d d W c 1 0 0 ) ( α dimana: = ijc biaya (cost) dari pos/departemen ke-i jika karyawan ke-j ditugaskan
= ij
p 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
max 3 1 0 0 ) ( j ij l il il ijl i i ij D D d d d V p = ×
∑
− × = α max 0 3 0 3 3 1 0 2 0 2 2 1 0 1 0 1 1 ) ( ) ( ) ( j ij i i ij i i ij i i ij i i D D d d d d d d d d d V ⎟⎟× ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ − + − + − × = α α α∑
= − × = 3 1 0 0 ) ( l il il ijl i i ij d d d W c α ⎟⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ − + − + − × = 0 3 0 3 3 0 2 0 2 2 0 1 0 1 1 ) ( ) ( ) ( i i ij i i i ij i i i ij i i d d d d d d d d d W α α α dimana: = iV nilai dari pos/departemen ke-i =
i
α berat (weight) dari pos/departemen ke-i =
ijl
d level kompetensi karyawan ke-j untuk kompetensi ke-l pos/departemen ke-i; untuk l = 1,2,...u; 1≤dijl ≤9,dijl∈N;
= 0 il
d level referensi dari kompetensi ke-l dari pos/departemen ke-i untuk l = 1,2,...u
= ij
D level ekspektasi karyawan ke-j terhadap pos/departemen ke-i Untuk 1≤Dij ≤9,Dij∈N;
= max j
D level ekspektasi tertinggi dari karyawan ke-j terhadap keseluruhan pos/departemen
= i
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 ) dan data ekspektasi karyawan ijl (D ) dari database. Untuk data departemen (n=3) yang dipilih akan diambil data ij referensi level kompetensi departemen (d ), dan value (il0 V ), weight (i αil), dan wage (W ) departemen dari database. Seluruh data tersebut akan diinput ke dalam formulasi i
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.
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 masing-masing solusi. Untuk solusi optimal adalah solusi dengan nilai Total Net Profit tertinggi.
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: max 1 11 3 1 0 1 0 1 11 1 1 11 ) ( D D d d d V p l l l l l − × × =
∑
= α = 700 Cost optimal:∑
= − × = 3 1 0 1 0 1 11 1 1 11 ) ( l l l l l d d d W c α = 630Net Profit optimal: 11 11 11 p c
gap = − = 70
Solusi optimal didapat untuk j=1 (Karyawan 20.1113 – Riche Novianty).
Untuk i=2 (Departemen HR02) Profit optimal: max 2 22 3 1 0 2 0 2 22 2 2 22 ) ( D D d d d V p l l l l l − × × =
∑
= α = 131 Cost optimal:∑
= − × = 3 1 0 2 0 2 22 2 2 22 ) ( l l l l l d d d W c α = 105Net Profit optimal: 22 22 22 p c
gap = − = 26
Solusi optimal didapat untuk j=2 (Karyawan 20.1114 – Ellen)
Untuk i=3 (Departemen HR03) Profit optimal: max 3 33 3 1 0 3 0 3 33 3 3 33 ) ( D D d d d V p l l l l l − × × =
∑
= α = 57 Cost optimal:∑
= − × = 3 1 0 3 0 3 33 3 3 33 ) ( l l l l l d d d W c α = 38Net Profit optimal: 33 33 33 p c
gap = − = 19