iii
Universitas Kristen MaranathaABSTRACT
Every company has different standard in recruiting employees. Usually,
the decision is made based on one particular standard only. This final thesis will
discuss about final value calculation from an employee candidate with considering
standard criteria which is used by a company.
Fuzzy approach is purposed to assess a candidate not only to determine
whether the employee is good or bad, but it is about value gradation. Fuzzy
approach is also used to get final value such as Less until Excellent.
This fuzzy logic calculation is applied in a computer program which uses
php and mysql. Become an application sistem rekrutmen calon karyawan. This
application has been tested and works properly.
iv
Universitas Kristen MaranathaABSTRAK
Setiap perusahaan memiliki standar yang berbeda-beda dalam menerima
karyawan. Biasanya keputusan yang dibuat hanya dilihat pada satu standar saja.
Pada skripsi ini akan dibahas mengenai perhitungan nilai akhir dari seorang calon
karyawan dengan memperhatikan kriteria standar yang digunakan perusahaan.
Penggunaan pendekatan fuzzy dimaksudkan agar hasil penilaian terhadap
seorang kandidat bukan hanya berupa nilai baik atau buruk saja, tetapi berupa
tingkatan nilai/gradasi nilai. Perhitungan pendekatan fuzzy juga digunakan untuk
mendapatkan satu nilai akhir yang berupa nilai Kurang sampai Baik Sekali.
Perhitungan logika fuzzy ini diterapkan dengan menggunakan perangkat
lunak php menjadi sebuah aplikasi sistem rekrutmen calon karyawan. Aplikasi
sistem rekrutment calon karyawan ini telah diuji coba, dan hasilnya aplikasi ini
dapat berjalan dengan baik.
v
Universitas Kristen MaranathaDAFTAR ISI
LEMBAR PENGESAHANPERNYATAAN ORSINALITAS LAPORAN ... i
PERNYATAAN ORSINALITAS LAPORAN... Error! Bookmark not defined.
KATA PENGANTAR ... Error! Bookmark not defined.
ABSTRACT ... iii
ABSTRAK ... iv
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... x
DAFTAR SIMBOL ... xi
BAB I ... Error! Bookmark not defined.
PERSYARATAN PRODUK ... Error! Bookmark not defined.
1.
Pendahuluan ... Error! Bookmark not defined.
1.1.
Tujuan Pembuatan Sistem ... Error! Bookmark not defined.
1.1.1.
Ruang Lingkup Proyek ... Error! Bookmark not defined.
1.1.2.
Definisi, Akronim, dan Singkatan .... Error! Bookmark not defined.
1.1.3.
Sistematika Laporan ... Error! Bookmark not defined.
1.2.
Gambaran Sistem Keseluruhan ... Error! Bookmark not defined.
1.2.1.
Perspektif Produk ... Error! Bookmark not defined.
1.2.2.
Fungsi Produk ... Error! Bookmark not defined.
1.2.3.
Karakteristik Pengguna ... Error! Bookmark not defined.
1.2.4.
Batasan – batasan ... Error! Bookmark not defined.
1.2.5.
Asumsi dan Ketergantungan ... Error! Bookmark not defined.
BAB II ... Error! Bookmark not defined.
SPESIFIKASI PRODUK ... Error! Bookmark not defined.
2.1.
Persyaratan Antarmuka Eksternal ... Error! Bookmark not defined.
2.1.1.
Antarmuka dengan Pengguna ... Error! Bookmark not defined.
2.1.2.
Antarmuka Perangkat Keras Server . Error! Bookmark not defined.
vi
Universitas Kristen Maranatha2.1.4.
Antarmuka Perangkat Keras Client .. Error! Bookmark not defined.
2.1.5.
Antarmuka Perangkat Lunak Client . Error! Bookmark not defined.
2.2.
Fitur Produk Perangkat Lunak ... Error! Bookmark not defined.
BAB III ... Error! Bookmark not defined.
DESAIN PERANGKAT LUNAK ... Error! Bookmark not defined.
3.1.
Identifikasi Kebutuhan Sistem ... Error! Bookmark not defined.
3.2.
Overview Sistem ... Error! Bookmark not defined.
3.2.1.
Sistem Pakar ... Error! Bookmark not defined.
3.3.
Rancangan Sistem ... Error! Bookmark not defined.
3.4.
Desain Arsitektur Perangkat Lunak ... Error! Bookmark not defined.
3.4.1.
Komponen Perangkat Lunak ... Error! Bookmark not defined.
3.4.2.
Desain Antarmuka ... Error! Bookmark not defined.
3.5.
Desain Perangkat Lunak Secara Keseluruhan ... Error! Bookmark not
defined.
3.5.1.
Entity Relationship Diagram (ERD) Error! Bookmark not defined.
3.5.2.
Use Case Diagram ... Error! Bookmark not defined.
3.5.3.
Activity Diagram... Error! Bookmark not defined.
BAB IV ... Error! Bookmark not defined.
PENGEMBANGAN SISTEM ... Error! Bookmark not defined.
4.1.
Perencanaan Tahap Implementasi ... Error! Bookmark not defined.
4.1.1.
Modul-modul pada sistem rekrutmen karyawan ... Error! Bookmark
not defined.
4.1.2.
Keterkaitan Antar Komponen Perangkat Lunak ... Error! Bookmark
not defined.
4.2.
Perjalanan Tahap Implementasi ... Error! Bookmark not defined.
4.2.1.
Implementasi Top Down ... Error! Bookmark not defined.
4.2.2.
Debugging ... Error! Bookmark not defined.
4.3.
Ulasan Realisasi Fungsionalitas ... Error! Bookmark not defined.
4.4.
Ulasan Realisasi Antarmuka Pengguna ... Error! Bookmark not defined.
BAB V ... Error! Bookmark not defined.
vii
Universitas Kristen Maranatha5.1.
Rencana Pengujian Sistem Terimplementasi ... Error! Bookmark not
defined.
5.1.1.
Test Case ... Error! Bookmark not defined.
5.1.2.
Uji Fungsionalitas Komponen Perangkat Lunak .. Error! Bookmark
not defined.
5.2.
Perjalanan Metodologi Pengujian... Error! Bookmark not defined.
5.2.1.
Black Box ... Error! Bookmark not defined.
5.3.
Ulasan Hasil Evaluasi ... Error! Bookmark not defined.
BAB VI ... Error! Bookmark not defined.
KESIMPULAN DAN SARAN ... Error! Bookmark not defined.
6.1.
Kesimpulan ... Error! Bookmark not defined.
6.2.
Saran ... Error! Bookmark not defined.
DAFTAR PUSTAKA ... Error! Bookmark not defined.
viii
Universitas Kristen MaranathaDAFTAR GAMBAR
Gambar 1. Beberapa Tipe dari Fungsi Keanggotaan ... Error! Bookmark not
defined.
Gambar 2. Fungsi Keanggotaan Himpunan Fuzzy Error! Bookmark not defined.
Gambar 3. Contoh Evaluasi Rule ... Error! Bookmark not defined.
Gambar 4. Contoh Pengelompokan Aturan Keluaran... Error! Bookmark not
defined.
Gambar 5. Proses Defuzzifikasi ... Error! Bookmark not defined.
Gambar 6. Fungsi Triangular untuk Umur ... Error! Bookmark not defined.
Gambar 7. Fungsi Triangular untuk IPK... Error! Bookmark not defined.
Gambar 8. Fungsi Triangular untuk Data Tes ... Error! Bookmark not defined.
Gambar 9. Grafik Hasil Inferensi ... Error! Bookmark not defined.
Gambar 10. Arsitektur Perangkat Lunak ... Error! Bookmark not defined.
Gambar 11. Halaman Login ... Error! Bookmark not defined.
Gambar 12. Halaman Utama ... Error! Bookmark not defined.
Gambar 13. Halaman Masukkan Data Diri Calon Karyawan ... Error! Bookmark
not defined.
Gambar 14. Halaman Masukkan Data Pendidikan Calon Karyawan ... Error!
Bookmark not defined.
Gambar 15. Halaman Masukkan Data Riwayat Pekerjaan Calon Karyawan Error!
Bookmark not defined.
Gambar 16. Halaman Masukkan Data Tes Calon Karyawan ... Error! Bookmark
not defined.
Gambar 17. Halaman Daftar Calon Karyawan ... Error! Bookmark not defined.
Gambar 18. Halaman Ubah Data Calon Karyawan ... Error! Bookmark not
defined.
ix
Universitas Kristen MaranathaGambar 30. Activity Hapus Rule ... Error! Bookmark not defined.
Gambar 31. Activity Masukkan Jabatan ... Error! Bookmark not defined.
Gambar 32. Activity Hapus Jabatan ... Error! Bookmark not defined.
Gambar 33. Activity Seleksi Calon Karyawan ... Error! Bookmark not defined.
Gambar 34. Keterkaitan antar Modul Perangkat Lunak ... Error! Bookmark not
defined.
Gambar 35. Halaman Login ... Error! Bookmark not defined.
Gambar 36. Halaman Utama ... Error! Bookmark not defined.
Gambar 37. Halaman Masukkan Data Diri Calon Karyawan ... Error! Bookmark
not defined.
Gambar 38. Halaman Masukkan Data Pendidikan Calon Karyawan ... Error!
Bookmark not defined.
Gambar 39. Halaman Masukkan Data Riwayat Pekerjaan Calon Karyawan Error!
Bookmark not defined.
Gambar 40. Halaman Masukkan Data Tes Calon Karyawan ... Error! Bookmark
not defined.
Gambar 41. Halaman Daftar Calon Karyawan ... Error! Bookmark not defined.
Gambar 42. Halaman Ubah Calon Karyawan ... Error! Bookmark not defined.
Gambar 43. Halaman Pilih Parameter yang akan dipakai .... Error! Bookmark not
defined.
Gambar 44. Halaman Set nilai Parameter dan Operator ... Error! Bookmark not
defined.
x
Universitas Kristen MaranathaDAFTAR TABEL
Tabel 1. Tabel Keterangan Use Case Diagram ... Error! Bookmark not defined.
Tabel 2. Tabel Modul Sistem Rekrutment Calon Karyawan Error! Bookmark not
defined.
xi
Universitas Kristen MaranathaDAFTAR SIMBOL
Simbol Gambar
Keterangan
Entity Relationship
Diagram
Entitas
Relasi
Atribut
Use Case Diagram
Aktor
Use Case
Batasan Sistem
Activity Diagram
Kondisi Awal
Kondisi Akhir
Aksi
Pilihan
Alur
xii
Universitas Kristen MaranathaSimbol Gambar
Keterangan
Pesan
Pesan ke diri sendiri
Balasan Pesan
Universitas Kristen Maranatha
LAMPIRAN
Source Code:
Koneksi:
<?mysql_connect("localhost","sa","sa"); mysql_select_db("hrd");
?>
Session Request: <?
if(isset($_REQUEST["user"])) {
session_id($_REQUEST["user"]); session_start();
$user = $_REQUEST["user"]; }
else
echo "intruder<br/>"; ?>
Seleksi Karyawan:
<?include("sessionRequest.php");
if(isset($_SESSION["auth"]) && $_SESSION["auth"] == "true") {
if($_SESSION["salah"] == "ada") {
?>
<script type="text/javascript"
alert("TIDAK DAPAT MELAKUKAN
PERHITUNGAN \nRULE TIDAK LENGKAP"); </script>
<?
$_SESSION["salah"] = "tidak"; }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
Universitas Kristen Maranatha <title>Seleksi Calon Karyawan</title>
<style type="text/css"> <!--
.style1 {font-family: Arial, Helvetica, sans-serif} -->
</style> </head>
<body>
<table width="83%" height="476" border="1" bordercolor="#c2b0dd" align="center" cellspacing="0">
<tr>
<td height="190" colspan="2" background="header1.gif"></td> </tr>
<tr>
<td width="20%" height="375" valign="top"> <?
include("menuTree.php"); ?> </td>
<td width="80%" valign="top">
<form id="form1" name="form1" method="post" action="prosesFuzzy.php?user=<?= $user; ?>">
<table width="100%" border="0" cellspacing="0"> <tr>
<td colspan="5" align="left" class="style1"><h2>Seleksi Calon Karyawan</h2></td>
</tr> <tr>
<td colspan="5" class="style1"> </td> </tr>
<tr>
<td colspan="2" class="style1">Seleksi Calon Karyawan Untuk Jabatan </td>
<td colspan="2" class="style1"><select name="pilih_karyawan" id="pilih_karyawan">
<?
include ("koneksi.php");
$ambil_jabatan = "select * from jabatan";
$hasil_jabatan = mysql_query($ambil_jabatan);
while($jabatan =
mysql_fetch_assoc($hasil_jabatan)) {
if($_SESSION["jabatanFuzzy"] == $jabatan["nama_jabatan"])
{
echo "<option selected='selected'>"; echo $jabatan["nama_jabatan"];
echo "</option>"; }
else {
echo "<option>";
Universitas Kristen Maranatha echo "</option>";
} }
?>
</select></td>
<td class="style1"><input name="btn_cari" type="submit" id="btn_cari" value="Cari" /></td>
</tr> <tr> <td class="style1">Umur</td> <td class="style1">minimum</td> <td class="style1"> <select name="umur_minimum"> <?
for($i=20; $i<=54 ;$i++) {
if($_SESSION["umur_min"] == $i)
echo "<option
selected='selected'>$i</option>"; else
echo "<option>$i</option>"; }
?> </select>
</td>
<td class="style1">maksimum </td> <td class="style1">
<select name="umur_maksimum"> <?
for($i=20; $i<=54 ;$i++) {
if(isset($_SESSION["umur_max"]))
{
if($_SESSION["umur_max"] == $i)
echo "<option
selected='selected'>$i</option>";
else
echo "<option>$i</option>"; }
else {
if($i!=54)
echo "<option>$i</option>"; else
echo "<option
selected='selected'>$i</option>"; } } ?> </select> </td> </tr> <tr>
Universitas Kristen Maranatha <td width="9%" class="style1">
<select name="pengalaman_minimum"> <?
for($i=0; $i<=15 ;$i++) {
if($_SESSION["pengalaman_min"] == $i)
echo "<option
selected='selected'>$i</option>"; else
echo "<option>$i</option>"; }
?> </select>
</td>
<td width="9%" class="style1">maksimum</td> <td width="44%" class="style1">
<select name="pengalaman_maksimum"> <?
for($i=0; $i<=15 ;$i++) {
if(isset($_SESSION["pengalaman_max"]))
{
if($_SESSION["pengalaman_max"] == $i)
echo "<option
selected='selected'>$i</option>";
else
echo "<option>$i</option>"; }
else {
if($i!=15)
echo "<option>$i</option>"; else
echo "<option
selected='selected'>$i</option>"; } } ?> </select> </td> </tr> </table> </form> <span class="style1"> <?
$ambil_hasil_seleksi = "select * from hasil_seleksi where jabatan = '".$_SESSION["jabatanFuzzy"]."' order by nilai_cog DESC";
$hasil_ambil_seleksi =
mysql_query($ambil_hasil_seleksi);
if(mysql_num_rows($hasil_ambil_seleksi) > 0) {
Universitas Kristen Maranatha <a href="perbandingan.php?user=<?=$user?>"
target="_blank">Perbandingan 3 tertinggi</a> <table border="1" cellspacing="0"> <tr>
<td width="100" align="center" class="style1"><b>ID Karyawan</b></td>
<td width="100" align="center" class="style1"><b>Nama</b></td>
<td width="100" align="center" class="style1"><b>Jenis Kelamin</b></td>
<td width="100" align="center" class="style1"><b>Nilai</b></td>
<td width="150" align="center" class="style1"><b>dengan kata-kata</b></td>
<td width="100" align="center" class="style1"><b>Jabatan</b></td>
<td class="style1"> </td> </tr>
<?
while($data = mysql_fetch_row($hasil_ambil_seleksi))
{
$query1 = mysql_query("select nama,jenis_kelamin from calon_karyawan where id_karyawan = '".$data[0]."'");
$hasil1 = mysql_fetch_assoc($query1);
echo "<tr>";
echo "<td align='center'>".$data[0]."</td>";
echo "<td
align='center'>".$hasil1["nama"]."</td>";
if($hasil1["jenis_kelamin"] == "P")
echo "<td align='center'>Pria</td>"; else
echo "<td align='center'>Wanita</td>"; echo "<td align='center'>".$data[1]."</td>"; echo "<td align='center'>".$data[2]."</td>"; echo "<td align='center'>".$data[3]."</td>";
echo "<td><a href =
'detailKaryawan2.php?user=$user&id_karyawan=".$data[0]."' target='_blank'>detail</a></td>";
Universitas Kristen Maranatha }
else {
echo "anda belum login"; }
?>
Proses Fuzzy:
<?include("sessionRequest.php"); include("fungsi.php");
if(isset($_SESSION["auth"]) && $_SESSION["auth"] == "true") {
$_SESSION["salah"] = "tidak";
include("koneksi.php");
mysql_query("delete from hasil_seleksi");
$jabatan = $_POST["pilih_karyawan"]; $_SESSION["jabatanFuzzy"] = $jabatan; //echo $jabatan;
$_SESSION["umur_min"] = $_POST["umur_minimum"]; $_SESSION["umur_max"] = $_POST["umur_maksimum"];
$_SESSION["pengalaman_min"] = $_POST["pengalaman_minimum"]; $_SESSION["pengalaman_max"] = $_POST["pengalaman_maksimum"];
$ambil_rule1 = mysql_query("select konklusi from rules where jabatan = '$jabatan' ");
$r1=0; $r2=0; $r3=0; $r4=0; $r5=0;
while($cek_rule = mysql_fetch_assoc($ambil_rule1)) {
if($cek_rule["konklusi"] == "Kurang")
$r1 = 1;
if($cek_rule["konklusi"] == "Cukup")
$r2 = 1;
if($cek_rule["konklusi"] == "Cukup_Baik")
$r3 = 1;
if($cek_rule["konklusi"] == "Baik")
$r4 = 1;
if($cek_rule["konklusi"] == "Baik_Sekali")
$r5 = 1;
}
Universitas Kristen Maranatha $ambil_data_tes = mysql_query("select * from data_tes where umur>=".$_SESSION["umur_min"]." &&
umur<=".$_SESSION["umur_max"]." &&
pengalaman_kerja>=".$_SESSION["pengalaman_min"]."&& pengalaman_kerja<=".$_SESSION["pengalaman_max"]."");
$ambil_batas_umur = mysql_query("select * from batas where kriteria='umur'");
$hasil_batas_umur =
mysql_fetch_assoc($ambil_batas_umur);
$ambil_batas_ipk = mysql_query("select * from batas where kriteria='ipk'");
$hasil_batas_ipk =
mysql_fetch_assoc($ambil_batas_ipk);
$ambil_batas_umum = mysql_query("select * from batas where kriteria='umum'");
$hasil_batas_umum =
mysql_fetch_assoc($ambil_batas_umum);
while($hasil_data_tes =
mysql_fetch_row($ambil_data_tes)) {
//echo "<br/>id karyawan: ".$hasil_data_tes[0]."<br/><br/>";
for($i=2; $i<count($hasil_data_tes); $i++) {
if($i == 2)//IPK
{
$kurang =
hitung($hasil_data_tes[$i], $hasil_batas_ipk["a_kurang"], $hasil_batas_ipk["b_kurang"],
$hasil_batas_ipk["c_kurang"]);
$cukup = hitung($hasil_data_tes[$i],
$hasil_batas_ipk["a_cukup"], $hasil_batas_ipk["b_cukup"], $hasil_batas_ipk["c_cukup"]);
$cukup_baik =
hitung($hasil_data_tes[$i], $hasil_batas_ipk["a_cukup_baik"], $hasil_batas_ipk["b_cukup_baik"],
$hasil_batas_ipk["c_cukup_baik"]);
$baik = hitung($hasil_data_tes[$i],
Universitas Kristen Maranatha
$baik_sekali =
hitung($hasil_data_tes[$i], $hasil_batas_ipk["a_baik_sekali"], $hasil_batas_ipk["b_baik_sekali"],
$hasil_batas_ipk["c_baik_sekali"]);
}
else //Umum
{
$kurang =
hitung($hasil_data_tes[$i], $hasil_batas_umum["a_kurang"], $hasil_batas_umum["b_kurang"],
$hasil_batas_umum["c_kurang"]);
$cukup = hitung($hasil_data_tes[$i],
$hasil_batas_umum["a_cukup"], $hasil_batas_umum["b_cukup"], $hasil_batas_umum["c_cukup"]);
$cukup_baik =
hitung($hasil_data_tes[$i], $hasil_batas_umum["a_cukup_baik"], $hasil_batas_umum["b_cukup_baik"],
$hasil_batas_umum["c_cukup_baik"]);
$baik = hitung($hasil_data_tes[$i],
$hasil_batas_umum["a_baik"], $hasil_batas_umum["b_baik"], $hasil_batas_umum["c_baik"]);
$baik_sekali =
hitung($hasil_data_tes[$i], $hasil_batas_umum["a_baik_sekali"], $hasil_batas_umum["b_baik_sekali"],
$hasil_batas_umum["c_baik_sekali"]);
}
$nama_parameter = "param_".$i;
${$nama_parameter}[0] = $kurang;
${$nama_parameter}[1] = $cukup;
${$nama_parameter}[2] = $cukup_baik;
${$nama_parameter}[3] = $baik;
${$nama_parameter}[4] = $baik_sekali;
// echo $nama_parameter." = ";
// for($p=0;$p<5;$p++)
// echo ${$nama_parameter}[$p]." , "; // echo "<br/>";
Universitas Kristen Maranatha $ambil_rule = mysql_query("select premis, konklusi from rules where jabatan = '$jabatan' ");
while($hasil_rule =
mysql_fetch_assoc($ambil_rule)) {
$premis = explode("
",$hasil_rule["premis"]);
for($i=0; $i<count($premis); $i+=3) {
for($j=1; $j<count($parameter);
$j++)
{
if($premis[$i] ==
$parameter[$j])
$param[] = "param_".$j;
} }
$m=1;
for($k=0; $k<count($param); $k++) {
$x = ambil_nilai($premis[$m]);
$m+=3;
$nilai[] = ${$param[$k]}[$x];
}
$operator[] = "ATAU";
for($j=2; $j<count($premis);$j+=3)
{
// echo $premis[$j];
$operator[] = $premis[$j];
}
// for($j=0; $j<count($nilai);$j++)
// echo $nilai[$j]." - ";
$nilai2[0] = 0.0;
$temp = $hasil[0];
for($i=0; $i<count($nilai); $i++) {
if($operator[$i] == "DAN")
{
$temp = min($temp,$nilai[$i]);
$nilai2[count($nilai2)-1] =
Universitas Kristen Maranatha }
else {
$nilai2[] = $nilai[$i];
$temp = $nilai[$i];
} }
$hasil = 0.0;
for($i=0; $i<count($nilai2);$i++)
{
$hasil = max($hasil,$nilai2[$i]);
}
if($hasil_rule["konklusi"] == "Kurang")
$c_kurang[] = $hasil;
elseif($hasil_rule["konklusi"] == "Cukup")
$c_cukup[] = $hasil;
elseif($hasil_rule["konklusi"] == "Cukup_Baik")
$c_cukup_baik[] = $hasil;
elseif($hasil_rule["konklusi"] == "Baik")
$c_baik[] = $hasil;
elseif($hasil_rule["konklusi"] == "Baik_Sekali")
$c_baik_sekali[] = $hasil;
$count_nilai = count($nilai);
for($k=0; $k < $count_nilai ;$k++) array_pop($nilai);
$count_nilai2 = count($nilai2);
for($k=0; $k < $count_nilai2 ;$k++) array_pop($nilai2);
$count_operator = count($operator);
for($k=0; $k<$count_operator;$k++)
array_pop($operator);
$count_param = count($param);
for($k=0; $k<$count_param;$k++)
array_pop($param); }
//Hasil perhitungan rules
// echo "<br/>Kurang = ";
Universitas Kristen Maranatha // for($p=0;$p<count($c_cukup);$p++) // { echo $c_cukup[$p]." , "; } // echo "<br/>Cukup Baik = ";
// for($p=0;$p<count($c_cukup_baik);$p++) // { echo $c_cukup_baik[$p]." , "; }
// echo "<br/>Baik = ";
// for($p=0;$p<count($c_baik);$p++) // { echo $c_baik[$p]." , "; }
// echo "<br/>Baik Sekali = ";
// for($p=0;$p<count($c_baik_sekali);$p++) // { echo $c_baik_sekali[$p]." , ";
}
// echo "<br/><br/>";
if(count($c_kurang)>1) {
$c_kurang_akhir = 0.0;
for($i=0; $i<count($c_kurang); $i++) {
// $c_kurang_akhir =
max($c_kurang_akhir, $c_kurang[$i]);
if($c_kurang_akhir < $c_kurang[$i])
{$c_kurang_akhir =
$c_kurang[$i];
} }
$count_c = count($c_kurang);
for($k=0; $k<$count_c;$k++)
array_pop($c_kurang); }
elseif(count($c_kurang)== 1)
{
$c_kurang_akhir = $c_kurang[0];
$count_c = count($c_kurang);
for($k=0; $k<$count_c;$k++)
array_pop($c_kurang); }
if(count($c_cukup)>1) {
$c_cukup_akhir = 0.0;
for($i=0; $i<count($c_cukup); $i++) {
if($c_cukup_akhir < $c_cukup[$i])
{$c_cukup_akhir =
$c_cukup[$i];
Universitas Kristen Maranatha }
$count_c = count($c_cukup);
for($k=0; $k<$count_c;$k++)
array_pop($c_cukup); }
elseif(count($c_cukup)== 1)
{
$c_cukup_akhir = $c_cukup[0];
$count_c = count($c_cukup);
for($k=0; $k<$count_c;$k++)
array_pop($c_cukup); }
if(count($c_cukup_baik)>1) {
$c_cukup_baik_akhir = 0.0;
for($i=0; $i<count($c_cukup_baik); $i++) {
if($c_cukup_baik_akhir <
$c_cukup_baik[$i])
{$c_cukup_baik_akhir =
$c_cukup_baik[$i];
} }
$count_c = count($c_cukup_baik);
for($k=0; $k<$count_c;$k++)
array_pop($c_cukup_baik); }
elseif(count($c_cukup_baik)== 1)
{
$c_cukup_baik_akhir = $c_cukup_baik[0];
$count_c = count($c_cukup_baik);
for($k=0; $k<$count_c;$k++)
array_pop($c_cukup_baik); }
if(count($c_baik)>1) {
$c_baik_akhir = 0.0;
for($i=0; $i<count($c_baik); $i++) {
if($c_baik_akhir < $c_baik[$i])
{$c_baik_akhir = $c_baik[$i];
Universitas Kristen Maranatha
$count_c = count($c_baik);
for($k=0; $k<$count_c;$k++)
array_pop($c_baik); }
elseif(count($c_baik)== 1)
{
$c_baik_akhir = $c_baik[0];
$count_c = count($c_baik);
for($k=0; $k<$count_c;$k++)
array_pop($c_baik); }
if(count($c_baik_sekali)>1) {
$c_baik_sekali_akhir = 0.0;
for($i=0; $i<count($c_baik_sekali); $i++) {
if($c_baik_sekali_akhir <
$c_baik_sekali[$i])
{$c_baik_sekali_akhir =
$c_baik_sekali[$i];
} }
$count_c = count($c_baik_sekali);
for($k=0; $k<$count_c;$k++)
array_pop($c_baik_sekali); }
elseif(count($c_baik_sekali)== 1)
{
$c_baik_sekali_akhir = $c_baik_sekali[0];
$count_c = count($c_baik_sekali);
for($k=0; $k<$count_c;$k++)
array_pop($c_baik_sekali); }
//grafik output
$z_kurang[] = 0.0;
$z_kurang[] = 10;
$z_cukup[] =30;
$z_cukup_baik[] =50;
Universitas Kristen Maranatha
$z_baik_sekali[] =90;
$z_baik_sekali[] =100;
if($c_kurang_akhir > 0.5 && $c_cukup_akhir > 0.5)
{
$n1 = rumus_kanan_COG($c_kurang_akhir,
$hasil_batas_umum["b_kurang"], $hasil_batas_umum["c_kurang"]);
$n2 = rumus_kiri_COG($c_cukup_akhir,
$hasil_batas_umum["a_cukup"], $hasil_batas_umum["b_cukup"]);
$m1 = 20 - $n1; $m2 = $n2 - 20;
if($m1>$m2)
$z_cukup[] = 20;
else
$z_kurang[] = 20;
}
elseif($c_kurang_akhir == $c_cukup_akhir) {
$z_kurang[] = 20;
}
else {
if($c_kurang_akhir > $c_cukup_akhir)
$z_kurang[] =20;
elseif($c_kurang_akhir < $c_cukup_akhir)
$z_cukup[] =20;
}
if($c_cukup_akhir > 0.5 && $c_cukup_baik_akhir > 0.5)
{
$n1 = rumus_kanan_COG($c_cukup_akhir,
$hasil_batas_umum["b_cukup"], $hasil_batas_umum["c_cukup"]);
$n2 = rumus_kiri_COG($c_cukup_baik_akhir,
$hasil_batas_umum["a_cukup_baik"], $hasil_batas_umum["b_cukup_baik"]);
$m1 = 40 - $n1; $m2 = $n2 - 40;
if($m1>$m2)
$z_cukup_baik[] = 40;
else
$z_cukup[] = 40;
}
elseif($c_cukup_akhir == $c_cukup_baik_akhir) {
$z_cukup[] = 40;
}
else {
Universitas Kristen Maranatha
$z_cukup[] =40;
elseif($c_cukup_akhir <
$c_cukup_baik_akhir)
$z_cukup_baik[] =40;
}
if($c_cukup_baik_akhir > 0.5 && $c_baik_akhir > 0.5)
{
$n1 = rumus_kanan_COG($c_cukup_baik_akhir,
$hasil_batas_umum["b_cukup_baik"], $hasil_batas_umum["c_cukup_baik"]);
$n2 = rumus_kiri_COG($c_baik_akhir,
$hasil_batas_umum["a_baik"], $hasil_batas_umum["b_baik"]);
$m1 = 60 - $n1; $m2 = $n2 - 60;
if($m1>$m2)
$z_baik[] = 60;
else
$z_cukup_baik[] = 60;
}
elseif($c_cukup_baik_akhir == $c_baik_akhir) {
$z_cukup_baik[] = 60;
}
else {
if($c_cukup_baik_akhir > $c_baik_akhir)
$z_cukup_baik[] =60;
elseif($c_cukup_baik_akhir <
$c_baik_akhir)
$z_baik[] =60;
}
if($c_baik_akhir > 0.5 && $c_baik_sekali_akhir > 0.5)
{
$n1 = rumus_kanan_COG($c_baik_akhir,
$hasil_batas_umum["b_baik"], $hasil_batas_umum["c_baik"]);
$n2 = rumus_kiri_COG($c_baik_sekali_akhir,
$hasil_batas_umum["a_baik_sekali"], $hasil_batas_umum["b_baik_sekali"]);
$m1 = 80 - $n1; $m2 = $n2 - 80;
if($m1>$m2)
$z_baik_sekali[] = 80;
else
$z_baik[] = 80;
}
elseif($c_baik_akhir == $c_baik_sekali_akhir) {
Universitas Kristen Maranatha }
else {
if($c_baik_akhir > $c_baik_sekali_akhir)
$z_baik[] =80;
elseif($c_baik_akhir <
$c_baik_sekali_akhir)
$z_baik_sekali[] =80;
}
// echo "kurang:<br/>";
// for($q=0; $q<count($z_kurang); $q++) // echo $z_kurang[$q]."<br/>"; // echo "cukup:<br/>";
// for($q=0; $q<count($z_cukup); $q++) // echo $z_cukup[$q]."<br/>"; // echo "cukup_baik:<br/>";
// for($q=0; $q<count($z_cukup_baik); $q++) // echo $z_cukup_baik[$q]."<br/>"; // echo "baik:<br/>";
// for($q=0; $q<count($z_baik); $q++) // echo $z_baik[$q]."<br/>"; // echo "baik_sekali:<br/>";
// for($q=0; $q<count($z_baik_sekali); $q++) // echo $z_baik_sekali[$q]."<br/>";
$atas =
(array_sum($z_kurang)*$c_kurang_akhir)+(array_sum($z_cukup)*$c_cuk up_akhir)+(array_sum($z_cukup_baik)*$c_cukup_baik_akhir)+
(array_sum($z_baik)*$c_baik_akhir)+(array_sum($z_baik_sekali )*$c_baik_sekali_akhir);
$bawah
=(count($z_kurang)*$c_kurang_akhir)+(count($z_cukup)*$c_cukup_akhi r)+(count($z_cukup_baik)*$c_cukup_baik_akhir)+
(count($z_baik)*$c_baik_akhir)+(count($z_baik_sekali)*$c_bai k_sekali_akhir);
if($atas != 0.0 && $bawah != 0.0)
$COG = $atas/$bawah;
else
$COG = 0.0;
// echo "<br/> COG = ".$COG."<br/><br/><br/>";
Universitas Kristen Maranatha for($q=0; $q< $jml_z; $q++)
array_pop($z_kurang);
$jml_z = count($z_cukup);
for($q=0; $q<$jml_z; $q++) array_pop($z_cukup);
$jml_z = count($z_cukup_baik);
for($q=0; $q<$jml_z; $q++) array_pop($z_cukup_baik);
$jml_z = count($z_baik);
for($q=0; $q<$jml_z; $q++) array_pop($z_baik);
$jml_z = count($z_baik_sekali);
for($q=0; $q<$jml_z; $q++)
array_pop($z_baik_sekali);
$kurang = hitung($COG,
$hasil_batas_umum["a_kurang"], $hasil_batas_umum["b_kurang"], $hasil_batas_umum["c_kurang"]);
$cukup = hitung($COG,
$hasil_batas_umum["a_cukup"], $hasil_batas_umum["b_cukup"], $hasil_batas_umum["c_cukup"]);
$cukup_baik = hitung($COG,
$hasil_batas_umum["a_cukup_baik"],
$hasil_batas_umum["b_cukup_baik"],$hasil_batas_umum["c_cukup_baik" ]);
$baik = hitung($COG,
$hasil_batas_umum["a_baik"], $hasil_batas_umum["b_baik"], $hasil_batas_umum["c_baik"]);
$baik_sekali = hitung($COG,
$hasil_batas_umum["a_baik_sekali"],
$hasil_batas_umum["b_baik_sekali"],$hasil_batas_umum["c_baik_sekal i"]);
$posisi_akhir =
max($kurang,$cukup,$cukup_baik,$baik,$baik_sekali);
//echo $posisi_akhir;
if($kurang == $posisi_akhir)
{
$simpan_hasil_seleksi = "insert into hasil_seleksi (id_karyawan, nilai_cog, kelompok, jabatan) values(".$hasil_data_tes[0].",$COG,'kurang','$jabatan')";
$hasil_simpan =
mysql_query($simpan_hasil_seleksi); }
elseif($cukup == $posisi_akhir)
Universitas Kristen Maranatha $simpan_hasil_seleksi = "insert into hasil_seleksi (id_karyawan, nilai_cog, kelompok, jabatan) values(".$hasil_data_tes[0].",$COG,'cukup','$jabatan')";
$hasil_simpan =
mysql_query($simpan_hasil_seleksi); }
elseif($cukup_baik == $posisi_akhir) {
$simpan_hasil_seleksi = "insert into hasil_seleksi (id_karyawan, nilai_cog, kelompok, jabatan) values(".$hasil_data_tes[0].",$COG,'cukup baik','$jabatan')";
$hasil_simpan =
mysql_query($simpan_hasil_seleksi); }
elseif($baik == $posisi_akhir)
{
$simpan_hasil_seleksi = "insert into hasil_seleksi (id_karyawan, nilai_cog, kelompok, jabatan) values(".$hasil_data_tes[0].",$COG,'baik','$jabatan')";
$hasil_simpan =
mysql_query($simpan_hasil_seleksi); }
elseif($baik_sekali == $posisi_akhir) {
$simpan_hasil_seleksi = "insert into hasil_seleksi (id_karyawan, nilai_cog, kelompok, jabatan) values(".$hasil_data_tes[0].",$COG,'baik sekali','$jabatan')";
$hasil_simpan =
mysql_query($simpan_hasil_seleksi); }
}
header("location:seleksiKaryawan.php?user=$user"); }
else {
$_SESSION["salah"] = "ada"; // untuk di pakai di halaman seleksi karyawan
header("location:seleksiKaryawan.php?user=$user"); }
} else {
echo "anda belum login"; }
1
Universitas Kristen MaranathaBAB I
PERSYARATAN PRODUK
1. Pendahuluan
Sumber Daya Manusia (SDM) merupakan sumber daya yang selalu
ada dalam setiap perusahaan. SDM sangatlah penting dalam suatu perusahaan
karena SDM mempengaruhi nilai efisiensi dan efektifitas dari suatu
perusahaan.
Untuk memenuhi kebutuhan akan SDM, perusahaan perlu
melakukan perekrutan karyawan. Banyaknya calon karyawan yang melamar
pada posisi yang sama dan telah memenuhi standar dasar perusahaan serta
tingkat kemampuan calon karyawan yang berbeda-beda membuat perusahaan
sulit dalam menentukan karyawan yang paling cocok untuk mengisi suatu
posisi tertentu. Oleh karena itu diperlukan suatu sistem yang dapat membantu
pengambilan keputusan dalam menentukan calon karyawan yang paling
memenuhi kriteria. Sistem tersebut dapat berupa sistem pakar yang
menggunakan pendekatan logika fuzzy.
Penggunaan pendekatan fuzzy dimaksudkan agar hasil penilaian
terhadap seorang kandidat berupa tingkatan nilai/gradasi antara Kurang sampai
Baik Sekali. Dengan demikian dapat terlihat apakah seorang kandidat patut
untuk mendapatkan pertimbangan atau tidak, tidak hanya langsung diputuskan
hasilnya baik atau buruk.
1.1. Tujuan Pembuatan Sistem
1.1.1.
Ruang Lingkup Proyek
Ruang lingkup proyek ini mencakup pembuatan aplikasi sistem
pakar rekrutmen karyawan berbasis web dengan pendekatan logika fuzzy
untuk mendukung pengambilan keputusan yang lebih tepat di bagian Human
Resource Departement (HRD) dalam merekrut calon karyawan. Sistem ini
2
Universitas Kristen Maranathajabatan yang kosong di perusahaan. Data-data calon karyawan ini dapat
diakses melalui internet pada kantor cabang manapun karena berbasis web.
1.1.2.
Definisi, Akronim, dan Singkatan
•
Logika fuzzy
: Suatu cara yang tepat untuk memetakan suatu
ruang input ke dalam suatu ruang output.
•
Crisp :
Himpunan
klasik.
•
Himpunan fuzzy
: Kerangka matematis yang digunakan untuk
mempresentasikan ketidakpastian, ketidak jelasan,
ketidaktepatan, kurangnya informasi, dan
kebenaran parsial (Tettamanzi, 2001).
•
Fungsi Keanggotaan : Suatu kurva yang menunjukkan pemetaan titik-titik
input data ke dalam nilai keanggotaannya (sering
juga disebut derajat keanggotaan) yang memiliki
interval antara 0 sampai 1.
•
Rule
: Aturan - aturan yang menggunakan DAN serta
ATAU yang menghasilkan satu nilai evaluasinya.
•
COG :
(Center Of Grafity) adalah suatu metode
defusifikasi yang menemukan suatu titik dengan
cara membuat suatu garis vertikal yang memotong
kumpulan titik menjadi dua massa yang sama
besar.
1.1.3. Sistematika
Laporan
Bab I akan menjelaskan persyaratan produk yang meliputi tujuan
pembuatan sistem, ruang lingkup proyek, sistematika laporan, gambaran
sistem keseluruhan, perspektif produk, fungsi produk, karakteristik pengguna,
batasan – batasan, asumsi dan ketergantungan, serta penundaan persyaratan.
Bab II akan menjelaskan spesifikasi produk yang meliputi
3
Universitas Kristen Maranathaperangkat keras, antarmuka perangkat lunak, dan fitur produk perangkat
lunak beserta dengan penjelasannya.
Bab III akan menjelaskan desain perangkat lunak yang meliputi
identifikasi kebutuhan sistem, overview sistem, desain perangkat lunak,
desain arsitektur perangkat lunak, komponen perangkat lunak, konsep
eksekusi, dan desain antarmuka.
Bab IV akan menjelaskan pengembangan sistem yang meliputi
perencanaan tahap implementasi, implementasi komponen perangkat lunak,
keterkaitan antar komponen perangkat lunak, perjalan tahap implementasi,
implementasi top down, debugging, ulasan realisasi fungsionalitas, dan ulasan
realisasi antarmuka pengguna.
Bab V akan menjelaskan testing dan evaluasi sistem yang meliputi
rencana pengujian sistem terimplementasi, test case, uji fungsionalitas
komponen perangkat lunak, perjalanan metodologi pengujian, black box,
survei/wawancara dengan target aplikasi, dan ulasan hasil evaluasi.
Bab VI akan berisi kesimpulan dan saran yang meliputi keterkaitan
antara kesimpulan dengan hasil evaluasi, keterkaitan antara saran dengan
hasil evaluasi, dan rencana perbaikan/implementasi terhadap saran yang
diberikan.
1.2. Gambaran Sistem Keseluruhan
Aplikasi ini menerapkan Logika Fuzzy di dalam aplikasi yang
dirancang untuk membantu bagian HRD dalam mengambil keputusan dengan
lebih tepat untuk menentukan orang yang paling cocok untuk mengisi jabatan
yang kosong di perusahaan dari sekian banyak calon karyawan yang telah
memenuhi persyaratan dasar perusahaan.
1.2.1. Perspektif
Produk
Aplikasi ini menerapkan Logika Fuzzy sehingga dapat membantu
bagian HRD menentukan calon yang tepat untuk menempati suatu posisi
tertentu berdasarkan dari hasil akhir yang berupa nilai/gradasi antara Kurang
4
Universitas Kristen Maranatha1.2.2. Fungsi
Produk
Fungsi dari aplikasi ini adalah:
•
Membantu bagian HRD mengambil keputusan untuk memilih
calon karyawan dengan lebih tepat.
•
Membantu menentukan calon karyawan yang paling tepat untuk
mengisi jabatan yang kosong pada perusahaan sesuai dengan
kemampuannya.
•
Menyimpan data-data calon karyawan pada web, sehingga
memudahkan diakses dimana saja.
1.2.3. Karakteristik
Pengguna
Aplikasi ini ditujukan untuk digunakan oleh bagian HRD di suatu
perusahaan yang memiliki kemampuan untuk mengakses komputer, dapat
mengakses website, serta dapat melakukan inputan data.
1.2.4. Batasan
–
batasan
Batasan – batasan yang digunakan dalam aplikasi ini meliputi:
•
Menggunakan bahasa pemrograman PHP.
•
Menggunakan tool Macromedia Dreamweaver 8.
•
Dapat dioperasikan dengan operating system Microsoft Windows
XP Professional SP 2.
•
Menggunakan database MySQL.
•
Menggunakan server Apache.
•
Menggunakan Internet Explorer.
•
Perhitungan bobot kemampuan calon karyawan dilakukan setelah
dilakukannya seleksi awal, yaitu calon karyawan telah lolos seleksi
awal berdasarkan syarat dasar perusahaan.
5
Universitas Kristen Maranatha•
Tidak dapat melakukan penambahan parameter baru.
•
Hasil perhitungan terhadap bobot kemampuan calon karyawan
merupakan suatu alternatif solusi yang dapat digunakan oleh
perusahaan.
1.2.5. Asumsi
dan
Ketergantungan
Asumsi dan ketergantungan pada aplikasi ini adalah:
•
Aplikasi ini dapat diakses dengan menggunakan PC yang
dilengkapi dengan koneksi Internet.
•
Data – data calon karyawan yang akan dimasukkan telah diolah
oleh bagian psikologi perusahaan.
•
Untuk pemilihan karyawan, telah disediakan beberapa kriteria
parameter yang umum digunakan dalam sistem rekrutmen
karyawan yang dapat diubah urutan dan hasilnya sesuai dengan
Universitas Kristen Maranatha
BAB VI
KESIMPULAN DAN SARAN
6.1. Kesimpulan
Logika fuzzy yang diterapkan pada aplikasi sistem rekrutmen calon
karyawan ini memberikan hasil sesuai dengan yang diharapkan, yaitu sistem
dapat melakukan proses perhitungan dari data tes dan rules sehingga dapat
menyimpulkan calon karyawan mana saja yang tepat untuk mengisi suatu posisi
tertentu sesuai dengan kemampuan calon karyawan tersebut.
Hasil dari aplikasi rekrutmen calon karyawan ini akan menampilkan calon
karyawan berdasarkan urutan kemampuan calon karyawan tersebut pada jabatan
yang di seleksi. Detail riwayat pekerjaan dan riwayat pendidikan juga dapat
ditampilkan untuk lebih memastikan bahwa karyawan tersebut memang pantas
menduduki suatu jabatan tertentu pada suatu perusahaan.
Aplikasi ini diuji coba dengan memasukkan sebanyak 20 data calon
karyawan yang beraneka ragam hasil tes-nya dan dengan menggunakan 10 rules.
Hasil ahir perhitungan sistem rekrutmen ini sama dengan hasil perhitungan
manual. Ini menandakan sistem telah teruji bekerja dengan baik.
6.2. Saran
Penerapan proses fuzzy logic pada aplikasi sistem rekrutment calon
karyawan ini dapat berjalan dengan baik, akan tetapi penambahan parameter baru
pada rules belum dapat dilakukan oleh sistem ini. Sistem ini hanya dapat
menggunakan parameter standar yang sudah disediakan oleh sistem.
Untuk versi selanjutnya, sistem diharapkan dapat menambahkan
parameter-parameter baru pada rulesnya. Serta sistem juga dilengkapi dengan database
Universitas Kristen Maranatha
lainnya dalam format pdf. Selain itu untuk evaluasi aturan juga dilengkapi dengan
kemampuan merubah hirarki dengan dapat menambahkan tanda “ ( “ dan “ ) ”.