• Tidak ada hasil yang ditemukan

Sistem Pakar Rekrutmen Pegawai Logika Fuzzy.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Sistem Pakar Rekrutmen Pegawai Logika Fuzzy."

Copied!
39
0
0

Teks penuh

(1)

iii

Universitas Kristen Maranatha

ABSTRACT

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.

(2)

iv

Universitas Kristen Maranatha

ABSTRAK

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.

(3)

v

Universitas Kristen Maranatha

DAFTAR 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.

 
(4)

vi

Universitas Kristen Maranatha

2.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.

 
(5)

vii

Universitas Kristen Maranatha

5.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.

 
(6)

viii

Universitas Kristen Maranatha

DAFTAR 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. 

(7)

ix

Universitas Kristen Maranatha

Gambar 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. 

(8)

x

Universitas Kristen Maranatha

DAFTAR TABEL

Tabel 1. Tabel Keterangan Use Case Diagram ... Error! Bookmark not defined.

 

Tabel 2. Tabel Modul Sistem Rekrutment Calon Karyawan Error! Bookmark not

defined. 

(9)

xi

Universitas Kristen Maranatha

DAFTAR 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

(10)

xii

Universitas Kristen Maranatha

Simbol Gambar

Keterangan

Pesan

Pesan ke diri sendiri

Balasan Pesan

(11)
(12)

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>

(13)

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">&nbsp;</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>";

(14)

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>

(15)

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) {

(16)

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">&nbsp;</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>";

(17)

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;

}

(18)

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],

(19)

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/>";

(20)

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] =

(21)

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 = ";

(22)

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];

(23)

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];

(24)

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;

(25)

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 {

(26)

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) {

(27)

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/>";

(28)

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)

(29)

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"; }

(30)
(31)

1

Universitas Kristen Maranatha

BAB 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

(32)

2

Universitas Kristen Maranatha

jabatan 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

(33)

3

Universitas Kristen Maranatha

perangkat 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

(34)

4

Universitas Kristen Maranatha

1.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.

(35)

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

(36)
(37)

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

(38)

Universitas Kristen Maranatha

lainnya dalam format pdf. Selain itu untuk evaluasi aturan juga dilengkapi dengan

kemampuan merubah hirarki dengan dapat menambahkan tanda “ ( “ dan “ ) ”.

Sistem juga berkemampuan untuk memeriksa kesesuaian antara aturan dan

(39)

Gambar

Gambar Keterangan
Gambar Keterangan

Referensi

Dokumen terkait

Terhadap parameter panjang akar, perlakuan P2 memberikan perbedaan sebesar 381.8 % dari perlakuan kontrol (P0), pada parameter tinggi tanaman perlakuan memberikan

Tabel 3 uji anova juga menunjukkan tingkat signifikansi 0,000 yaitu lebih kecil dari nilai α = 0,05 sehingga Ha diterima artinya secara simultan sarana dan pelayanan

1) Pihak debitur harus mempunyai itikad baik sejak awal pengajuan fasilitas kredit pada perusahaan pembiayaan, mentaati segala peraturan yang tercantum dalam perjanjian

[r]

Tanaman lidah buaya (Aloe vera) lebih dikenal sebagai tanaman hias dan banyak digunakan sebagai bahan dasar obat-obatan dan kosmetika, baik secara langsung dalam keadaan segar

Penggunaan terapi herbal dengan daun sirsak dapat mengurangi nyeri pada penderita gout, dengan adanya kandungan tannin, resin dan crytallizable magostine yang

Sesuai dengan hipotesa awal bahwa indeks banjir yang dikembangkan merupakan gabungan dari beberapa variabel dengan satuan yang berbeda, maka konsep yang dapat dikembangkan

Sehingga perlu dibuat sistem yang dapat memprediksi pengambilan keputusan untuk order barang terhadap suplaiyer, dengan cara penggalian informasi pada data transaksi