• Tidak ada hasil yang ditemukan

Implementasi Algoritma C4.5 Untuk Perekrutan Karyawan Berbasis Android (Studi Kasus : Blackberry Service Center Medan)

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma C4.5 Untuk Perekrutan Karyawan Berbasis Android (Studi Kasus : Blackberry Service Center Medan)"

Copied!
86
0
0

Teks penuh

(1)

LAMPIRAN A : LISTING PROGRAM

// Source Code MainActivity.java

package com.kurniawan.apptes;

import android.content.Intent;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.Button;

public class MainActivity extends AppCompatActivity { Button data,pengujian,help,about;

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main); data = (Button) findViewById(R.id.bdata); pengujian = (Button) findViewById(R.id.buji); help = (Button) findViewById(R.id.bhelp); about = (Button) findViewById(R.id.babout);

data.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

Intent intent = new Intent(MainActivity.this, Data.class); startActivity(intent);

} });

pengujian.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

Intent intent = new Intent(MainActivity.this, Pengujian.class);

startActivity(intent); }

});

help.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

Intent intent = new Intent(MainActivity.this, Help.class); startActivity(intent);

} });

about.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

(2)

package com.kurniawan.apptes;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import java.util.List;

public class Data extends Activity{ private ListView listView; @Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.data);

this.listView = (ListView) findViewById(R.id.listView);

DatabaseHandler dbHandler = DatabaseHandler.getInstance(this); dbHandler.open();

List<String> nomor = dbHandler.getNomor();

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, nomor);

this.listView.setAdapter(adapter);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> adapterView, View view,

int i, long l) {

Intent intent = new Intent(Data.this, Hasil.class); String nama = listView.getItemAtPosition(i).toString(); intent.putExtra("nama", nama);

startActivity(intent); }

}); } }

// Source Code Pengujian.java

package com.kurniawan.apptes;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import com.kurniawan.apptes.c45Algorithm.Atribut;

import com.kurniawan.apptes.c45Algorithm.Nilai;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

(3)

private static String[] listField = {"Pendidikan_Terakhir",

"Pengalaman_Bekerja", "Psikotes", "Intellegensi"}; private static Integer[] constAtribut = {0, 0, 0, 0, 1, 1,

2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3

};

private static String[] constNilai = {"SMA", "D1", "D3", "S1", "Ya", "Tidak",

"0", "1", "2", "3", "4", "5", "6", "7", "0", "1", "2", "3"

};

Nilai keterangan;

List<Atribut> listAtribut; List<String> field;

List<String> value;

Map<String, String> inputanUser;

private Button btnCek, btnSave, btnClear;

private EditText etNama, etAlamat, etTelp, etPendidikan, etPengalaman,

etIntellegensi, etPsikotes; private TextView tvHasil; SQLiteDatabase database; @Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.pengujian);

btnCek = (Button) findViewById(R.id.btn_cek); btnSave = (Button) findViewById(R.id.btn_save); btnClear = (Button) findViewById(R.id.btn_clr); etNama = (EditText) findViewById(R.id.et_nama); etAlamat = (EditText) findViewById(R.id.et_alamat); etTelp = (EditText) findViewById(R.id.et_telp);

etPendidikan = (EditText) findViewById(R.id.et_pendidikan); etPengalaman = (EditText) findViewById(R.id.et_pengalaman); etIntellegensi = (EditText) findViewById(R.id.et_intellegensi); etPsikotes = (EditText) findViewById(R.id.et_psikotes);

tvHasil = (TextView) findViewById(R.id.tv_hasilProses); dbHelper = new DatabaseOpenHelper(this);

DatabaseHandler dbHandler = DatabaseHandler.getInstance(this); dbHandler.open();

database = dbHandler.database;

btnCek.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View v) { try {

clear();

inputanUser.put("Pendidikan_Terakhir",

etPendidikan.getText().toString());

inputanUser.put("Pengalaman_Bekerja",

etPengalaman.getText().toString());

inputanUser.put("Psikotes",

etPsikotes.getText().toString());

inputanUser.put("Intellegensi",

etIntellegensi.getText().toString());

(4)

Atribut n = new Atribut(field); listAtribut.add(n);

}

for(int i = 0; i < constNilai.length; i++){ try {

Nilai n = new Nilai(listField[constAtribut[i]], constNilai[i]);

n.AmbilDariDataSet(database, field, value); n.HitungEntropy();

listAtribut.get(constAtribut[i]).nilai.add(n); } catch (Exception e){

} }

c45Algorithm();

btnSave.setVisibility(View.VISIBLE); btnClear.setVisibility(View.VISIBLE); } catch (Exception e){

Log.d("Exception", e.toString()); }

} });

btnSave.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

final SQLiteDatabase db = dbHelper.getWritableDatabase(); db.execSQL("INSERT INTO DataPelamar (No, Nama, Alamat, Telp, Pendidikan_Terakhir, Pengalaman_Bekerja, Psikotes, Intellegensi, Keterangan) VALUES ('"+ nomorId() +"', '" +

etNama.getText().toString()+"', '" + etAlamat.getText().toString()+"', '"+ etTelp.getText().toString()+"', '"+ etPendidikan.getText().toString()+"', '"+ etPengalaman.getText().toString()+"', '"+ etPsikotes.getText().toString()+"', '"+ etIntellegensi.getText().toString()+"', '" + tvHasil.getText().toString()+"')");

} }); }

int nomorId() { int nomor = 0;

SQLiteDatabase db = dbHelper.getReadableDatabase();

Cursor cursor = db.rawQuery("SELECT MAX(No) FROM DataPelamar", null); if (cursor.moveToFirst()) {

nomor = cursor.getInt(0); }

return nomor + 1; }

void clear(){

inputanUser = new HashMap<String, String>(); field = new ArrayList<String>();

value = new ArrayList<String>();

listAtribut = new ArrayList<Atribut>(); }

void c45Algorithm(){

keterangan = new Nilai("*", "*");

keterangan.AmbilDariDataSet(database, field, value); keterangan.HitungEntropy();

(5)

if(keterangan.getSumYa() > 0){ tvHasil.setText("LULUS"); return;

}

else if(keterangan.getSumTidak() > 0){ tvHasil.setText("TIDAK LULUS"); return;

} }

Atribut bestGain = new Atribut();

Double maxGain = new Double(Double.MIN_VALUE); for(Atribut n : listAtribut){

n.HitungGain(keterangan.getEntropy(), keterangan.getSumNilai()); if(maxGain < n.gain || listAtribut.indexOf(n) == 0){

maxGain = n.gain; bestGain = n; }

Log.d("TRACE", n.nama + " GAIN : " + n.gain); }

String userValue = inputanUser.get(bestGain.nama); Nilai userNilai = new Nilai();

for(Nilai n : bestGain.nilai){

if(n.getNama().equals(userValue)){ userNilai = n;

} }

if(userNilai.getEntropy() != 0){ field.add(bestGain.nama); value.add(userValue); int i = 0;

for(int index = 0; index < listAtribut.size(); index++){ if(listAtribut.get(index).nama.equals(bestGain.nama)){ i = index;

} }

listAtribut.remove(i); c45Algorithm();

} else {

if(userNilai.getSumYa() > 0){

tvHasil.setText("DATA TERSEBUT LULUS"); }

else if(userNilai.getSumTidak() > 0){

tvHasil.setText("DATA TERSEBUT TIDAK LULUS"); }

} } }

//Source Code Edit.java

package com.kurniawan.apptes;

import android.app.Activity;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

(6)

import com.kurniawan.apptes.c45Algorithm.Atribut;

import com.kurniawan.apptes.c45Algorithm.Nilai;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class Edit extends Activity{

private static String[] listField = {"Pendidikan_Terakhir",

"Pengalaman_Bekerja", "Psikotes", "Intellegensi"}; private static Integer[] constAtribut = {0, 0, 0, 0, 1, 1,

2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3

};

private static String[] constNilai = {"SMA", "D1", "D3", "S1", "Ya", "Tidak",

"0", "1", "2", "3", "4", "5", "6", "7", "0", "1", "2", "3"

};

Nilai keterangan;

List<Atribut> listAtribut; List<String> field;

List<String> value;

Map<String, String> inputanUser;

private Button btnCek, btnSave, btnClear; SQLiteDatabase database;

DatabaseOpenHelper dbHelper; Cursor cursor;

EditText nama, alamat, telp, pend, pengalaman, psikotes, intellegensi; TextView ket;

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.edit);

btnCek = (Button) findViewById(R.id.editCekBtn); btnSave = (Button) findViewById(R.id.editSaveBtn); btnClear = (Button) findViewById(R.id.editClrBtn); nama = (EditText) findViewById(R.id.editNamaTxt); alamat = (EditText) findViewById(R.id.editAlamatTxt); telp = (EditText) findViewById(R.id.editTelpTxt); pend = (EditText) findViewById(R.id.editPendTxt);

pengalaman = (EditText) findViewById(R.id.editPengalamanTxt); intellegensi = (EditText) findViewById(R.id.editIntTxt); psikotes = (EditText) findViewById(R.id.editPsikotesTxt); ket = (TextView) findViewById(R.id.editHasilTxt);

final String namaIntent = getIntent().getStringExtra("primKey"); dbHelper = new DatabaseOpenHelper(this);

final SQLiteDatabase db = dbHelper.getReadableDatabase(); cursor = db.rawQuery("SELECT * FROM DataPelamar WHERE No = '" + namaIntent + "'", null);

cursor.moveToFirst();

if (cursor.getCount() > 0) { cursor.moveToPosition(0);

(7)

pengalaman.setText(cursor.getString(5).toString()); psikotes.setText(cursor.getString(6).toString()); intellegensi.setText(cursor.getString(7).toString()); ket.setText(cursor.getString(8).toString());

}

btnCek.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View v) { try {

clear();

inputanUser.put("Pendidikan_Terakhir",

pend.getText().toString());

inputanUser.put("Pengalaman_Bekerja",

pengalaman.getText().toString());

inputanUser.put("Psikotes",

psikotes.getText().toString());

inputanUser.put("Intellegensi",

intellegensi.getText().toString());

for(String field : listField){ Atribut n = new Atribut(field); listAtribut.add(n);

}

for(int i = 0; i < constNilai.length; i++){ try {

Nilai n = new Nilai(listField[constAtribut[i]], constNilai[i]);

n.AmbilDariDataSet(database, field, value); n.HitungEntropy();

listAtribut.get(constAtribut[i]).nilai.add(n); } catch (Exception e){

} }

c45Algorithm();

btnSave.setVisibility(View.VISIBLE); btnClear.setVisibility(View.VISIBLE); ket.setVisibility(View.VISIBLE); } catch (Exception e){

Log.d("Exception", e.toString()); }

} });

btnSave.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

final SQLiteDatabase db = dbHelper.getWritableDatabase(); db.execSQL("UPDATE DataPelamar SET Nama = '"+

nama.getText().toString() +"'," +

" Alamat = '"+ alamat.getText().toString() +"', " + " Telp = '"+ telp.getText().toString() +"'," +

" Pendidikan_Terakhir = '"+ pend.getText().toString() +"'," +

" Pengalaman_Bekerja = '"+

pengalaman.getText().toString() +"'," +

" Psikotes = '"+ psikotes.getText().toString() +"',"

+

" Intellegensi = '"+

intellegensi.getText().toString() +"'," +

(8)

} }); }

void clear(){

inputanUser = new HashMap<String, String>(); field = new ArrayList<String>();

value = new ArrayList<String>();

listAtribut = new ArrayList<Atribut>(); }

void c45Algorithm(){

keterangan = new Nilai("*", "*");

keterangan.AmbilDariDataSet(database, field, value); keterangan.HitungEntropy();

if(listAtribut.size() == 0){ if(keterangan.getSumYa() > 0){ ket.setText("LULUS"); return;

}

else if(keterangan.getSumTidak() > 0){ ket.setText("TIDAK LULUS");

return; }

}

Atribut bestGain = new Atribut();

Double maxGain = new Double(Double.MIN_VALUE); for(Atribut n : listAtribut){

n.HitungGain(keterangan.getEntropy(), keterangan.getSumNilai()); if(maxGain < n.gain || listAtribut.indexOf(n) == 0){

maxGain = n.gain; bestGain = n; }

Log.d("TRACE", n.nama + " GAIN : " + n.gain); }

String userValue = inputanUser.get(bestGain.nama); Nilai userNilai = new Nilai();

for(Nilai n : bestGain.nilai){

if(n.getNama().equals(userValue)){ userNilai = n;

} }

if(userNilai.getEntropy() != 0){ field.add(bestGain.nama); value.add(userValue); int i = 0;

for(int index = 0; index < listAtribut.size(); index++){ if(listAtribut.get(index).nama.equals(bestGain.nama)){ i = index;

} }

listAtribut.remove(i); c45Algorithm();

} else {

if(userNilai.getSumYa() > 0){

ket.setText("DATA TERSEBUT LULUS"); }

else if(userNilai.getSumTidak() > 0){

(9)

} } }

//Source Code Hasil.java

package com.kurniawan.apptes;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView; /**

* Created by Kurniawan on 12/30/2016. */

public class Hasil extends Activity{ DatabaseOpenHelper dbHelper; Cursor cursor;

Button edit,hapus;

TextView nomor, nama, alamat, telp, pend, pengalaman, psikotes,

intellegensi, ket; @Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.hasil);

nomor = (TextView) findViewById(R.id.tvNo); nama = (TextView) findViewById(R.id.editNamaTxt); pend = (TextView) findViewById(R.id.editPendTxt); alamat = (TextView) findViewById(R.id.editAlamatTxt); telp = (TextView) findViewById(R.id.noTelpTxt);

pengalaman = (TextView) findViewById(R.id.editPengalamanTxt); psikotes = (TextView) findViewById(R.id.editPsikotesTxt); intellegensi = (TextView) findViewById(R.id.editIntTxt); ket = (TextView) findViewById(R.id.hasilTxt);

final String namaIntent = getIntent().getStringExtra("nama"); nama.setText(namaIntent);

dbHelper = new DatabaseOpenHelper(this);

final SQLiteDatabase db = dbHelper.getReadableDatabase();

cursor = db.rawQuery("SELECT * FROM DataPelamar WHERE Nama = '" + namaIntent + "'", null);

cursor.moveToFirst();

if (cursor.getCount() > 0) { cursor.moveToPosition(0);

nomor.setText(cursor.getString(0).toString()); alamat.setText(cursor.getString(2).toString()); telp.setText(cursor.getString(3).toString()); pend.setText(cursor.getString(4).toString()); pengalaman.setText(cursor.getString(5).toString()); psikotes.setText(cursor.getString(6).toString()); intellegensi.setText(cursor.getString(7).toString()); ket.setText(cursor.getString(8).toString());

}

hapus = (Button) findViewById(R.id.deleteBtn);

(10)

@Override

public void onClick(View view) {

new AlertDialog.Builder(Hasil.this).setMessage("Hapus data?").setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override

public void onClick(DialogInterface dialog, int which) { SQLiteDatabase db = dbHelper.getWritableDatabase(); db.execSQL("DELETE FROM DataPelamar WHERE No = '"+

nomor.getText().toString() +"'");

Intent intent = new Intent(Hasil.this, Data.class); startActivity(intent);

} }).show(); }

});

edit = (Button) findViewById(R.id.editBtn);

edit.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

Intent intent = new Intent(Hasil.this, Edit.class); String primKey = nomor.getText().toString();

intent.putExtra("primKey", primKey); startActivity(intent);

} }); } }

//Source Code Nilai.java

package com.kurniawan.apptes.c45Algorithm;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import java.util.ArrayList;

import java.util.List;

public class Nilai {

public static final String LULUS = "L";

public static final String TIDAK_LULUS = "TL";

public static final String NAMA_TABEL = "DataPelamar"; String nama, namaAtribut;

Integer sumNilai, sumYa, sumTidak; Double Entropy;

public Nilai(){ }

public Nilai(String namaAtribut, String nama){ this.nama = nama;

this.namaAtribut = namaAtribut; }

public Double getEntropy(){ return this.Entropy; }

public Integer getSumNilai(){ return this.sumNilai; }

(11)

}

public Integer getSumTidak(){ return this.sumTidak; }

public String getNama(){ return this.nama; }

public void HitungEntropy() {

if (sumYa == 0 || sumTidak == 0) { this.Entropy = 0.0;

} else {

this.Entropy = (-(sumYa / sumNilai.doubleValue()) * (Math.log(sumYa / sumNilai.doubleValue()) / Math.log(2))) + (-(sumTidak / sumNilai.doubleValue()) * (Math.log(sumTidak / sumNilai.doubleValue()) / Math.log(2))); }

}

public void AmbilDariDataSet(SQLiteDatabase database, List<String> field, List<String> value){

String query = "SELECT " + namaAtribut + " FROM " + NAMA_TABEL + " WHERE ";

List<String> _value = new ArrayList<String>(); _value.addAll(value);

List<String> _field = new ArrayList<String>(); _field.addAll(field);

for(int i = 0; i < _field.size(); i++){ query += _field.get(i) + " = ? AND "; }

if(!namaAtribut.equals("*")) {

query += " " + namaAtribut + " = ? AND "; _value.add(nama);

}

query += " Keterangan = ? "; List<String> valueYes, valueNo; valueYes = new ArrayList<String>(); valueYes.addAll(_value);

valueYes.add(LULUS);

valueNo = new ArrayList<String>(); valueNo.addAll(_value);

valueNo.add(TIDAK_LULUS);

Cursor cursor = database.rawQuery(query, valueYes.toArray(new

String[valueYes.size()]));

sumYa = cursor.getCount();

cursor = database.rawQuery(query, valueNo.toArray(new

String[valueNo.size()]));

sumTidak = cursor.getCount(); this.sumNilai = sumYa + sumTidak; }

}

(12)

//Source Code Atribut.java

package com.kurniawan.apptes.c45Algorithm;

import java.util.ArrayList;

import java.util.List;

public class Atribut { public String nama; public List<Nilai> nilai; public Double gain; public Atribut(){ }

public Atribut(String nama){ this.nama = nama;

this.nilai = new ArrayList<Nilai>(); }

public void HitungGain(Double totalEntropy, Integer S){ this.gain = totalEntropy;

for(Nilai n : nilai){

this.gain -= ((n.sumNilai / S.doubleValue()) * (Math.log(n.sumNilai / S.doubleValue()) / Math.log(2))); }

} }

//Source Code DatabaseOpenHelper.java

package com.kurniawan.apptes;

import android.content.Context;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

public class DatabaseOpenHelper extends SQLiteAssetHelper { private static final int DATABASE_VERSION = 1;

private static final String DATABASE_NAME = "DataPelamar (2)"; public DatabaseOpenHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION); }

}

//Source Code Hasil.java

package com.kurniawan.apptes;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;

import java.util.List;

public class DatabaseHandler {

private SQLiteOpenHelper openHelper; public SQLiteDatabase database;

private static DatabaseHandler instance;

(13)

this.openHelper = new DatabaseOpenHelper(context); }

public static DatabaseHandler getInstance(Context context){ if (instance == null){

instance = new DatabaseHandler(context); }

return instance; }

public void open() {

this.database = openHelper.getWritableDatabase(); }

}

//Source Code Help.java

package com.kurniawan.apptes;

import android.app.Activity;

import android.os.Bundle;

public class Help extends Activity{ @Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.help); }

}

// Source Code About.java

package com.kurniawan.apptes;

import android.app.Activity;

import android.os.Bundle;

public class About extends Activity { @Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.about); }

(14)

CURRICULUM VITAE

Nama : Kurniawan Wardani AP. Hutagaol NIM : 101401050

Alamat Sekarang : Jln. Pasar III No. 103 Kel. Tegal Rejo, Kec. Medan Perjuangan

Alamat Orangtua : Jln. Pasar III No. 103 Kel. Tegal Rejo, Kec. Medan Perjuangan

Telp/Hp : 082276336927

Email : hutagaol.kurniawan@gmail.com

Riwayat Pendidikan

2010 – 2017 : S-1 Ilmu Komputer Universitas Sumatera Utara, Medan 2007 – 2010 : SMA Negeri 3 Medan

2004 – 2007 : SMP Swasta Budi Murni 1 Medan 1998 – 2004 : SD Swasta Budi Murni 6 Medan

Keahlian

Bahasa Pemrograman : Java.

(15)

DAFTAR PUSTAKA

Adyatama, A. 2013. Pemanfaatan data mining pada sistem pengambilan keputusan penerimaan karyawan baru dengan metode decision tree dan C4.5. Skripsi. Universitas Sumatera Utara.

Astuti, Y.A. 2011. Analisis perbandingan teknik Support Vector Regression (SVR) dan decision tree C4.5 dalam data mining. Tesis. Universitas Sumatera Utara.

Bentley, Lonnie D. & Whitten, Jeffrey L. 2007. Systems Analysis and Design for the Global Enterprise, McGraw-Hill Education.

Florence, A.M.T. & Savithri, R. 2013. Talent knowledge acquisition using C4.5 classification algorithm. Int. J. of Emerging Technologies in Computational and Applied Sciences 4(4) : 406 – 410.

Jao, C.S. 2010. Decision Support System. Intech : Vukovar.

Kadir, A. 2003. Pengenalan Sistem Informasi. Andi : Yogyakarta.

Kusrini. 2007. Konsep dan Aplikasi Sistem Pendukung Keputusan. CV. Andi Offset : Yogyakarta.

Kusrini & Luthfi, E. H. 2009. Algoritma Data Mining. CV. Andi Offset : Yogyakarta.

Larose, D.T. & Larose, C. D. 2014. Discovering Knowledge in Data : An introduction to data mining. 2nd Edition. John Wiley & Sons, Inc. : Hoboken.

Purwanti, D. 2008 Kebijakan DOWNSIZING; Penyebab dan Dampak yang Ditimbulkannya. Jurnal Bisnis & Manajemen Vol. 4, No. 2

Quinlan, J.R. 1993. C4.5 :Programs for Machine Learning. Morgan Kaufmann Publisher : San Mateo.

Rokach, L. & Maimon, O. 2014. Data Mining with Decision Trees : Theory and application. 2nd Edition. World Scientific Publishing Co. Pte. Ltd. : Singapura.

(16)

Sauter, V. L. 2010. Decision Support Systems for Business Intelligence. 2nd Edition. John Wiley & Sons. Inc : Hoboken

Supardi, Y. 2014. Semua Bisa Menjadi Programmer Android. PT. Elex Media Komputindo. Jakarta.

(17)

BAB 3

ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem

Di dalam perancangan suatu sistem, diperlukan satu tahap awal yang penting untuk

dilakukan. Tahap ini disebut dengan analisis sistem yang mendeskripsikan tahap-tahap

awal perancangan ataupun pengembangan suatu sistem. Tahap pertama dari analisis

sistem adalah analisis masalah. Adapun tahap ini adalah untuk mempelajari dan

memahami masalah yang akan diselesaikan dengan menggunakan sistem ini.

Selanjutnya adalah analisis kebutuhan sistem yang bertujuan untuk membuat

persyaratan yang akan memenuhi kebutuhan dan permintaan pengguna. Pada tahap

akhir adalah pemodelan sistem.

3.1.1. Analisis Masalah

Dalam perspektif manajemen sumber daya manusia, karyawan atau orang-orang yang

bekerja dalam perusahaan merupakan salah satu sumber keunggulan kompetitif dan

elemen kunci yang penting untuk meraih kesuksesan dalam bersaing dan mencapai

tujuan (Purwanti, 2008). Oleh karena itu, perekrutan karyawan dapat dikatan sebagai

salah satu faktor penentu kesuksesan suatu perusahaan. Penentuan orang yang tepat

pada posisi yang tepat harus lebih diperhatikan pihak pengambil keputusan. Masih

banyak perusahaan yang menggunakan cara manual untuk melakukan perekrutan

karyawan dimana pihak pengambil keputusan seringkali salah dalam menentukan

kelulusan karyawan. Hal ini tentu dapat berpengaruh kepada kinerja perusahaan

secara keseluruhan.

Sistem Pendukung Keputusan (SPK) dapat digunakan untuk membantu pihak

pengambil keputusan dalam membuat suatu keputusan atas masalah perekrutan

(18)

dan akurat karena akan dilakukan perhitungan secara otomatis terhadap sistem yang

ada.

Untuk mengidentifikasi masalah tersebut digunakan diagram Ishikawa

(fishbone diagram). Diagram Ishikawa adalah sebuah alat grafis yang digunakan

untuk mengeksplorasi dan menampilkan pendapat tentang komponen inti suatu

kondisi di dalam organisasi. Diagram ini juga dapat menyusuri sumber-sumber

penyebab atas suatu masalah (Russel, Stuart J. & Norvig, P. 2003). Pada Gambar 3.1

akan ditampilkan masalah yang terjadi di dalam perekrutan karyawan pada Blackberry

Service Center Medan.

Masalah Perekrutan Karyawan Blackberry Service Center Medan Metode Material Man Machine Proses seleksi masih dilakukan secara manual Data yang tidak terkomputerisasi Proses seleksi tidak efisien Data tidak tersimpan secara baik Membutuhkn

sistem yang bekerja secara otomatis

Dibutuhkan alat untuk menyimpan data terkomputerisasi

Gambar 3.1 Diagram Ishikawa analisis masalah sistem

Adapun algoritma yang dapat digunakan untuk pemecahan masalah ini adalah

algoritma C4.5. Algoritma ini akan mengklasifikasikan kriteria yang ada untuk

dibentuk menjadi pohon keputusan. Selanjutnya pohon keputusan tersebut akan

menghasilkan rules yang digunakan untuk menentukan kelulusan seorang pelamar.

3.1.2. Analisis Persyaratan

Analisis persyaratan terdiri dari persyaratan fungsional dan non-fungsional.

Persyaratan fungsional berisi persyaratan pokok dari suatu sistem yang wajib ada atau

disediakan dalam sistem tersebut. Sedangkan persyaratan non-fungsional berupa

(19)

1. Persyaratan Fungsional

Adapun yang menjadi persyaratan fungsional dari sistem ini adalah sebagai berikut:

a. Aplikasi menghasilkan pilihan keputusan atas masalah perekrutan karyawan

dengan menggunakan algoritma C4.5.

b. Data yang dimasukkan ke dalam aplikasi adalah biodata pelamar dan penilaian

yang termasuk ke dalam kategori yang akan digunakan algoritma C4.5.

2. Persyaratan Non-fungsional

Adapun persyaratan non-fungsional pada sistem ini adalah sebagai berikut :

a. Aplikasi harus mudah digunakan dan dipelajari.

b. Aplikasi tidak memerlukan peralatan tambahan ataupun perangkat pendukung

dalam proses eksekusinya.

c. Aplikasi dapat digunakan sebagai media penyimpanan data pelamar (sebagai

database)

3.1.3. Pemodelan

Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang

objek apa saja yang akan berinteraksi dengan sistem, serta hal-hal apa saja yang harus

dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan baik sesuai

dengan kegunaannya.

Pada penelitian ini digunakan UML (Unified Modeling Language) sebagai

bahasa pemodelan untuk mendesain dan merancang Sistem Pendukung Keputusan

dalam menentukan kelulusan pelamar. Model UML yang digunakan antara lain use

case diagram, activity diagram, dan sequence diagram.

1. Use Case Diagram

Diagram ini menggambarkan interaksi antara sistem dan sistem eksternal dan para

pengguna. Dengan kata lain, diagram ini secara visual menjelaskan siapa yang akan

menggunakan sistem dan dengan cara apa pengguna mengharapkan untuk berinteraksi

dengan sistem. Naratif use case digunakan sebagai tambahan menjelaskan

langkah-langkah dari setiap interaksi secara tertulis (Bentley & Whitten, 2007). Pada Gambar

3.2 di bawah ini digambarkan use case sistem pendukung keputusan dalam

(20)

Gambar 3.2 Use case diagram sistem

Pada Gambar 3.2 dapat dilihat terdapat aktor yaitu HRD yang dapat melihat data

pelamar dan memasukkan data pelamar baru. Pada saat melihat data pelamar,

Pengguna dapat melakukan manipulasi terhadap data yang dipilih. Manipulasi Data

adalah use case pilihan yang dapat dipilih setelah dilakukan Lihat Data, sehingga

Manipulasi Data merupakan perluasan dari Lihat Data. Pada use case Masukkan Data

Baru terdapat use case yang akan dikerjakan selanjutnya yaitu melakukan Perhitungan

Algoritma C4.5 dan melakukan Simpan Data, sehingga hubungan antar use case

menggunakan relasi include.

2. Activity Diagram

Activity diagram adalah suatu diagram yang digunakan untuk menggambarkan aliran

proses usaha secara grafis, langkah-langkah dari suatu use case, atau logika dari suatu

tingkah laku objek (method) (Bentley & Whitten, 2007). Nodes bulat berwarna hitam

menunjukkan awal proses sedangkan nodes bulat berwarna hitam ditengah

menunjukkan akhir proses. Sistem ini dibagi menjadi dua bagian terpisah untuk

menunjukkan atau menyederhanakan proses-proses yang terjadi pada user maupun

pada sistem. Pada kasus ini activity diagram dibagi menjadi dua, yaitu diagram untuk

melihat hasil pengujian dan pengujian data baru. Adapun diagram untuk melihat hasil

pengujian dapat dilihat pada Gambar 3.3.

Aplikasi SPK Perekrutan Karyawan

HRD

Lihat Data <<extend>> Manipulasi Data

Masukkan Data Baru

Perhitungan Algoritma C4.5

Simpan Data

<<include>>

(21)

Gambar 3.3 Activity Diagram Lihat Data

Dari Gambar 3.3 HRD pertama kali akan memilih untuk menampilkan

database pelamar. Lalu oleh sistem, data akan ditampilkan. HRD akan memilih untuk

melakukan manipulasi hasil pengujian pelamar atau keluar dari menu menampilkan

data. Jika HRD memilih data pelamar, data yang sudah dimanipulasi akan disimpan ke

dalam database oleh sistem. Kemudian sistem akan kembali ke menu utama.

HRD Aplikasi SPK

Memilih Lihat Data

Menampilkan Database Pelamar

Memilih Data Pelamar

Manipulasi Data Pelamar

(22)

Gambar 3.4 Activity Diagram pengujian data baru

Diagram 3.4 adalah activity yang menunjukkan alur proses untuk pengujian data baru.

Pengguna memasukkan biodata kemudian hasil tes pelamar ke dalam sistem. Lalu

sistem akan melakukan pengujian terhadap data yang sudah dimasukkan untuk

menentukan lulus atau tidaknya pelamar tersebut. Kemudian setelah hasil didapatkan,

sistem akan menampilkan database pelamar untuk melihat bahwa benar data telah

tersimpan ke dalam database sistem.

HRD Aplikasi SPK

Memilih Memasukkan Data Baru

Menampilkan Form Isi Biodata

Mengisi Form Biodata Pelamar

Simpan Data Pelamar

Menampilkan Form Isi Nilai Mengisi Form Nilai

Pelamar

Perhitungan C4.5

Simpan Nilai dan Hasil Menampilkan Hasil

(23)

3. Sequence Diagram

Sequence diagram adalah suatu diagram yang menggambarkan interaksi antara actor

dan sistem pada use-case scenario. Diagram ini juga membantu melihat pesan

high-level yang masuk dan keluar dari sistem (Bentley & Whitten, 2007). Garis penuh

menunjukkan input yang dilakukan oleh user menuju sistem sedangkan garis

putus-putus yang mengarah ke bagian user menunjukkan output yang dihasilkan oleh sistem.

Tiap input dan output yang terjadi memiliki activation bars yang menunjukkan

periode waktu dimana proses dilakukan.

Gambar 3.5 Sequence Diagram lihat, ubah, dan hapus data

Gambar 3.5 menampilkan interaksi antara pengguna terhadap sistem dan database.

Pengguna dapat melihat, mengubah, dan menghapus data pelamar. Penggun

a

Melihat Hasil Pelamar

Menampilkan hasil kelulusan

pelamar

Database

Buka Tabel Pelamar Sistem

Ubah Data

Form Ubah Biodata dan

Nilai

Buka Tabel Pelamar

Ubah Biodata

dan Nilai Simpan Biodata

dan Nilai Baru

Hapus Data

Menampilkan hasil kelulusan

pelamar

(24)

Gambar 3.6 Sequence Diagram pengujian data baru

Gambar 3.6 menampilkan bagaimana proses menguji data baru. Terlihat bahwa

pertama pengguna harus memasukkan data dan nilai pelamar. Dari situ, sistem akan

menentukan kelulusan pelamar untuk disimpan di database dan ditampilkan kepada

pengguna.

4. Flowchart Algoritma C4.5

Flowchart yang menggambarkan langkah-langkah perhitungan Algoritma C4.5 dapat

dilihat pada Gambar 3.7

Gambar 3.7 Flowchart Algoritma C4.5

Penggun a

Input data pelamar

Input nilai pelamar

Menampilkan hasil kelulusan

pelamar

Database

Simpan Data Sistem

M ulai

Inp ut nilai masing-masing atribut

Tentukan Entrop i dan Gain atribut

maxGain = node(i)

Cek nilai atribut untuk menjadi cabang node(i)

Nilai atribut = cabang

(25)

Pada Gambar 3.7 terdapat beberapa proses yang terjadi ketika algoritma berjalan.

Pertama user akan menginputkan nilai yang menjadi kriteria perhitungan. Proses

berikutnya adalah, sistem akan membagi atribut tersebut untuk ditentukan entropy dan

gainnya masing-masing. Setelah dilakukan pembandingan, sistem akan mengambil

atribut dengan gain tertinggi untuk dijadikan root tree. Selanjutnya, sistem akan

melakukan pengecekan untuk nilai atribut root tersebut untuk dibagi menjadi cabang

dari tree. Jika nilai atribut memenuhi kriteria menjadi cabang, maka akan dilakukan

pengulangan perhitungan entropy dan gain. Jika tidak, proses akan dianggap selesai.

3.2. Perancangan Antarmuka Sistem

Antarmuka pengguna (User Interface) merupakan mekanisme komunikasi antara

pengguna (user) dengan sistem. Antarmuka pemakai dapat menerima informasi dari

pengguna dan memberikan informasi kepada pengguna untuk membantu

mengarahkan alur penelusuran masalah sampai ditemukan suatu solusi. Dengan kata

lain antarmuka pemakai sebagai media antara pemakai dan komputer agar dapat saling

berinteraksi, sehingga pengguna merasakan adanya keramahan sistem.

3.2.1. Antarmuka Menu Utama

Antarmuka Menu Utama atau Menu Awal adalah antarmuka pertama yang tampil

pada saat aplikasi dijalankan seperti terlihat pada Gambar 3.8.

Gambar 3.8 Rancangan Menu Utama DATA

Aplikasi Perekrutan Karyawan

Blackberry Service Center Medan

TENTANG

a

PENGUJIAN

BANTUAN

b

c

(26)

Keterangan Gambar 3.8 :

a. Button Data

Adalah tombol yang berfungsi untuk mengantarkan pengguna ke antarmuka

Data

b. Button Pengujian

Adalah tombol yang berfungsi untuk mengantarkan pengguna ke antarmuka

Pengujian

c. Button Bantuan

Adalah tombol yang berfungsi untuk mengantarkan pengguna ke antarmuka

Bantuan

d. Button Tentang

Adalah tombol yang berfungsi untuk mengantarkan pengguna ke antarmuka

Tentang

3.2.2. Antarmuka Menu Data

Menu Data akan menampilkan database nama-nama pelamar yang sudah pernah

disimpan di dalam aplikasi. Nama tersebut ditampilkan dengan menggunakan sebuah

ListView. Adapun tampilan antarmuka Menu Data dapat dilihat pada Gambar 3.9.

Gambar 3.9 Rancangan Menu Data

Jika salah satu nama pada List View dipilih, pengguna akan dibawa ke halaman Hasil

Pengujian.

(27)

3.2.3. Antarmuka Menu Pengujian

Pada antarmuka ini, pengguna dapat memasukkan data pelamar baru dan nilai yang

diperlukan untuk pembentukan tree. Rancangan antarmuka ini dapat dilihat pada

Gambar 3.10.

Gambar 3.10 Rancangan Pengujian

Keterangan Gambar 3.10 :

a. Text Field Nama

Berfungsi sebagai kolom inputan nama pelamar

b. Text Field Alamat

Berfungsi sebagai kolom inputan alamat pelamar

c. Text Field No. Telepon

Berfungsi sebagai kolom inputan nomor telepon pelamar

d. Text Field Pend. Terakhir

Berfungsi sebagai kolom inputan pendidikan formal terakhir pelamar

e. Text Field Pengalaman

Berfungsi sebagai kolom inputan apakah pelamar memiliki pengalaman

bekerja

Nama

Alamat

No. Telp

Pend. Terakhir

Pengalaman

Psikotes

Intellegensi

HASIL

a

b

c

d

e

f

g

BIODATA PELAMAR

j CEK

h

(28)

f. Text Field Psikotes

Adalah kolom inputan nilai psikotes pelamar

g. Text Field Status Intellegensi

Adalah kolom inputan nilai intellegensi pelamar

h. Button Cek

Berfungsi untuk menguji kelulusan pelamar

i. Button Simpan

Adalah tombol untuk menyimpan biodata pelamar dan menampilkan hasil data

yang telah disimpan

j. Text View Hasil

Berfungsi untuk menampilkan hasil pengujian kelulusan pelamar

3.2.4. Antarmuka Menu Mengubah Data Pelamar

Adapun antarmuka ini berfungsi untuk mengubah data pelamar yang ada pada

ListView di antarmuka Menu Data. Rancangan menu ini dapat dilihat pada Gambar

3.11.

Gambar 3.11 Rancangan Mengubah Data Pelamar Nama

Alamat

No. Telp

Pend. Terakhir

Pengalaman

Psikotes

Intellegensi

HASIL

a

b

c

d

e

f

g

UBAH BIODATA PELAMAR

j CEK

h

(29)

Keterangan Gambar 3.11 :

a. Text Field Nama

Berfungsi sebagai kolom inputan nama pelamar

b. Text Field Alamat

Berfungsi sebagai kolom inputan alamat pelamar

c. Text Field No. Telepon

Berfungsi sebagai kolom inputan nomor telepon pelamar

d. Text Field Pend. Terakhir

Berfungsi sebagai kolom inputan pendidikan formal terakhir pelamar

e. Text Field Pengalaman

Berfungsi sebagai kolom inputan apakah pelamar memiliki pengalaman

bekerja

f. Text Field Psikotes

Adalah kolom inputan nilai psikotes pelamar

g. Text Field Status Intellegensi

Adalah kolom inputan nilai intellegensi pelamar

h. Button Cek

Berfungsi untuk menguji kelulusan pelamar

i. Button Simpan

Adalah tombol untuk menyimpan biodata pelamar dan menampilkan hasil data

yang telah disimpan

j. Text View Hasil

Berfungsi untuk menampilkan hasil pengujian kelulusan pelamar

3.2.5. Antarmuka Menu Hasil

Antarmuka ini adalah antarmuka yang menampilkan hasil kelulusan seorang pelamar.

(30)
[image:30.595.219.415.82.387.2]

Gambar 3.12 Rancangan Hasil

Keterangan Gambar 3.12 :

a. Text View Nama

Berfungsi untuk menampilkan nama pelamar

b. Text View No. Telepon

Berfungsi untuk menampilkan No. Telepon pelamar

c. Text View Alamat

Berfungsi untuk menampilkan alamat pelamar

d. Text View Pendidikan Terakhir

Berfungsi untuk menampilkan pendidikan terakhir pelamar

e. Text View Pengalaman Bekerja

Berfungsi untuk menampilkan apakah pelamar memiliki pengalaman bekerja

sebelum melamar

f. Text View Nilai Psikotes

Berfungsi untuk menampilkan nilai psikotes pelamar

g. Text View Nilai Intellegensi

Berfungsi untuk menampilkan nilai intellegensi pelamar Hasil Kelulusan

Nama

a

No. Telp

b

Alamat

c

Pendidikan Terakhir

d

Pengalaman Bekerja

e

Nilai Psikotes

f

Nilai Intellegensi

g

Hasil

(31)

h. Text View Kelulusan

(32)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1. Implementasi Sistem

Tahap implementasi merupakan tahapan yang dikerjakan setelah analisis dan

perancangan sistem selesai dilakukan sebagaimana telah diuraikan pada Bab 3.

Tahapan implementasi sistem ini harus dilalui dalam proses pengembangan perangkat

lunak dari suatu sistem karena merupakan proses pengubahan spesifikasi sistem

menjadi sistem yang dapat dijalankan.

Sistem perekrutan karyawan ini menggunakan algoritma C4.5 di dalam

perancangannya. Algoritma ini berfungsi untuk menghasilkan kelulusan seorang

pelamar yang melamar di Blackberry Service Center Medan. Sebelum melakukan

perhitungan algoritma, data pelamar yang digunakan untuk pengujian dijadikan

sebagai data training. Data tersebut adalah data pelamar yang ada antara tahun

2012-Januari 2015 yaitu sebanyak 144 data dengan rincian 19 pelamar dinyatakan lulus dan

125 pelamar tidak lulus. Dari data tersebut, didapat kriteria yang menjadi penilaian

pihak pengambil keputusan untuk menentukan kelulusan seorang pelamar. Kriteria

inilah yang akan menjadi atribut di dalam menghasilkan sebuah analisa untuk

membuat pohon keputusan dari masalah ini. Atribut itu adalah pendidikan terakhir,

pengalaman bekerja, nilai psikotes, dan nilai intellegensi. Berdasarkan data yang

diperoleh dari Blackberry Service Center, atribut tersebut memiliki nilainya

masing-masing.

1. Pendidikan terakhir

Atribut pendidikan terakhir memiliki nilai Strata I, Diploma III, Diploma I,

(33)

2. Pengalaman bekerja

Atribut ini dibagi atas pilihan Ya dan Tidak. “Ya” berarti memiliki

pengalaman bekerja, “Tidak” berarti belum memiliki pengalaman bekerja

(fresh graduate).

3. Nilai psikotes

Atribut ini berisi hasil dari ujian psikotes seorang pelamar. Nilai psikotes

pelamar berisi nilai antara 0-9, dibagi menjadi 2 kelas yaitu 0-4 dan 5-9.

4. Nilai intellegensi

Nilai intellegensi dibagi menjadi 0, 1, 2, 3.

Dalam perancangan pohon keputusan dengan algoritma C4.5, perlu dibuat Data

[image:33.595.104.531.504.755.2]

Atribut Target. Adapun Tabel Data Atribut seperti terlihat pada Tabel 4.1.

Tabel 4.1 Data Atribut Target

Atribut Target Deskripsi

Ya Pelamar Lulus

Tidak Pelamar Tidak Lulus

Selanjutnya, Data Atribut Target tersebut akan digunakan untuk menganalisis data set

yang ada berdasarkan variabel yang telah ditentukan seperti terlihat pada Tabel 4.2.

Tabel 4.2 Analisis Data Set

Atribut Nilai Sum

(Nilai)

Sum (Ya)

Sum (Tidak)

Pendidikan Terakhir SMA/SMK 39 5 34

D1 2 2 0

D3 41 2 39

S1 62 8 54

Pengalaman Ya 86 14 72

Tidak 58 5 53

Psikotes 0-4 105 0 105

5-9 39 19 20

(34)

1 35 0 35

2 50 10 40

3 30 9 21

Algoritma C4.5 ini menggunakan nilai entropy dan gain dari setiap atribut di dalam

penentuan root dan node pohon keputusan. Langkah pertama dalam mencari entropy

dan gain variabel adalah menghitung entropy total dari data set dengan menggunakan

rumus

� � = ∑ − × � �

�=

Maka didapat :

� � = (− 9 × � 9 ) + (− × � ) = ,

Untuk langkah selanjutnya, algoritma akan menentukan gain dan entropy dari

masing-masing atribut. Untuk menghitung gain masing-masing variabel, digunakan rumus :

�� �, � = � � − ∑�� × � �

�=

Adapun analisis entropy dan gain masing-masing variabel seperti terlihat pada Tabel

4.3.

Tabel 4.3 Perhitungan Entropy dan Gain

No-de

Variabel Nilai Sum

(Nilai) Sum (Ya)

Sum

(Tidak) Entropy

Gain

1 Pendidikan

Terakhir

SMA/SMK 39 5 34 0,552495114

D1 2 1 1 1

D3 41 4 37 0,461216041

S1 62 9 53 0,597597776

0,010606338

(35)

Tidak 58 5 53 0,423680572

0,009311589

Psikotes 0-4 105 0 105 0

5-9 39 19 20 0,999525689

0,292041944

Intellegensi 0 29 0 29 0

1 35 0 35 0

2 50 10 40 0,721928095

3 30 9 21 0,881290899

0,12847507

Dari tabel di atas dapat dilihat bahwa Psikotes adalah atribut dengan nilai gain

tertinggi, yaitu 0,292042. Psikotes diletakkan sebagai root tree. Atribut Psikotes

memiliki dua nilai yaitu 0-4 dan 5-9. Dari tabel dapat dilihat bahwa tidak ada data

yang lulus pada data set, sehingga menyebabkan salah satu cabang dari root psikotes

adalah atribut target “Tidak”. Sedangkan nilai 5-9 masih merupakan pencarian node

tree yang lebih dalam. Dengan hasil tersebut, didapat pohon keputusan awal seperti

terlihat pada Gambar 4.1.

1 Psikotes

1.1 ?

5-9

[image:35.595.82.554.83.306.2]

Tidak 0-4

Gambar 4.1 Pohon keputusan node 1

Data awal yang berisi 144 data difilter dengan mengambil data yang memiliki nilai

atribut Psikotes = 5-9, yaitu sebanyak 39 data dengan rincian 19 pelamar diterima dan

20 pelamar ditolak. Dari data tersebut, dihitung lagi entropy total dari data yang sudah

(36)

� � = − ( ) × � ( ) + − ( ) × � ( ) = ,

Lalu data tersebut dianalisis lagi untuk mencari nilai entropy dan gain dari

[image:36.595.82.551.177.526.2]

masing-masing atribut yang tersisa. Hasil analisis tersebut dapat dilihat pada Tabel 4.4.

Tabel 4.4 Analisis Atribut untuk Node 1.1

No-de

Atribut Nilai Sum

(Nilai) Sum (Ya)

Sum

(Tidak) Entropy

Gain

1.1 Pendidikan

Terakhir

SMA/SMK 9 5 4 0,99107606

D1 1 1 0 0

D3 10 4 6 0,970950594

S1 19 9 10 0,98000884

0,03564858

Pengalaman Ya 19 14 5 0,831474388

Tidak 20 5 15 0,811278124

0,17840836

Intellegensi 0 7 0 7 0

1 4 0 4 0

2 17 10 7 0,977417818

3 11 9 2 0,684038436

0,38053851

Berdasarkan hasil analisis di atas, diperoleh atribut intellegensi dengan nilai gain

paling tinggi, yaitu sebesar 0,380538. Selanjutnya, atribut intellegensi menjadi node

1.1 pada pohon keputusan. Dari tabel diperoleh bahwa atribut memiliki 4 nilai yaitu 0,

1, 2, dan 3. Data yang dihasilkan untuk nilai 0 dan 1 adalah nol, sehingga cabang

untuk nilai 0 dan 1 adalah “Tidak”. Untuk mendapat percabangan dari nilai 2 dan 3,

tabel sebelumnya difilter dan dilakukan analisis kembali dengan nilai intellegensi = 2

(37)

1 Psikotes 1.1 Intellegensi 5-9 Tidak 0-4 1.1.3 ? 2 1.1.4 ? 3 Tidak 1 Tidak 0

Gambar 4.2 Pohon Keputusan Node 1.1

Perhitungan pohon keputusan terbagi menjadi dua yaitu pencarian node 1.1.3 dan

1.1.4.

1. Node 1.1.3

Node ini merupakan percabangan dari nilai intellegensi = 2. Sehingga analisis data

yang dilakukan adalah data yang memiliki nilai psikotes = 5-9 dan nilai intellegensi =

2. Dari Tabel 4.4 dapat dilihat bahwa ada 17 data pelamar yang memiliki nilai

psikotes = 5-9 dan nilai intellegensi = 2, dengan rincian 10 pelamar lulus dan 7 lagi

tidak lulus. Sehingga nilai entropy untuk analisis data adalah :

� � = − ( ) × � ( ) + − ( ) × � ( ) = ,

[image:37.595.136.499.81.326.2]

Adapun hasil analisis untuk node 1.1.3 dapat dilihat pada Tabel 4.5.

Tabel 4.5 Analisis Atribut untuk Node 1.1.3

No-de

Variabel Nilai Sum

(Nilai) Sum (Ya)

Sum

(Tidak) Entropy

Gain

1.1.3 Pendidikan

Terakhir

SMA/SMK 4 3 1 0,811278

(38)

D3 6 3 3 1

S1 6 3 3 1

0,080646494

Pengalaman Ya 10 10 0 0

Tidak 7 0 7 0

0,977417818

Hasil analisis atribut menunjukkan bahwa atribut pengalaman memiliki nilai gain

yang lebih tinggi daripada atribut pendidikan terakhir. Dengan begitu, atribut

pengalaman dapat diterima sebagai node 1.1.3. Atribut pengalaman memiliki nilai Ya

dan Tidak. Dari hasil analisis terlihat bahwa semua data dengan nilai pengalaman =

Ya dinyatakan lulus dan data dengan nilai pengalaman = Tidak dinyatakan tidak lulus.

Sehingga pohon keputusan sementara dapat digambarkan seperti pada Gambar 4.3

1 Psikotes

1.1 Intellegensi

5-9

Tidak 0-4

1.1.3 Pengalaman 2

1.1.4 ? 3

Tidak 1

Tidak

0

Ya Ya

[image:38.595.136.498.384.717.2]

Tidak Tidak

(39)

2. Node 1.1.4

Ulangi lagi analisis dengan cara filter data yang memiliki nilai Psikotes = 5-9 dan

Intellegensi = 3 untuk mencari node 1.1.4. Hasilnya adalah didapat 11 data dengan

rincian 9 pelamar dinyatakan lulus dan 2 pelamar tidak lulus. Maka, didapat nilai

entropy untuk analisis data yang memiliki nilai Psikotes = 5-9 dan Intellegensi = 3

adalah :

� � = − ( ) × � ( ) + − ( ) × � ( ) = ,

Adapun hasil analisis data dengan nilai Psikotes = 5-9 dan Intellegensi = 3 terlihat

[image:39.595.86.552.317.556.2]

seperti pada Tabel 4.5.

Tabel 4.6 Analisis Atribut untuk Node 1.1.4

No-de

Atribut Nilai Sum

(Nilai) Sum (Ya)

Sum

(Tidak) Entropy

Gain

1.1.4 Pendidikan

Terakhir

SMA/SMK 3 2 1 0,918296

D1 0 0 0 0

D3 1 1 0 0

S1 7 6 1 0,591673

0,057075076

Pengalaman Ya 4 4 0 0

Tidak 7 0 7 0

0,684038436

Dari hasil analisis dapat dilihat bahwa atribut pengalaman memiliki nilai gain yang

lebih tinggi daripada pendidikan. Pengalaman dapat diterima sebagai node 1.1.4,

(40)

1 Psikotes

1.1 Intellegensi

5-9

Tidak 0-4

1.1.3 Pengalaman

2

1.1.4 Pengalaman 3

Tidak

1

Tidak

0

Ya Ya

Tidak Tidak

Ya Ya

[image:40.595.109.526.78.393.2]

Tidak Tidak

Gambar 4.4 Pohon Keputusan Node 1.1.4

Dari pohon keputusan diperoleh rules yang akan digunakan untuk penentuan

kelulusan pelamar, yaitu :

IF Psikotes < 5 THEN Kelulusan = Tidak

IF Psikotes > 4 ^ Intellegensi = 0-1 THEN Kelulusan = Tidak

IF Psikotes > 4 ^ Intellegensi = 2 ^ Pengalaman = Ya THEN Kelulusan = Ya

IF Psikotes > 4 ^ Intellegensi = 2 ^ Pengalaman = Tidak THEN Kelulusan = Tidak

IF Psikotes > 4 ^ Intellegensi = 3 ^ Pengalaman = Ya THEN Kelulusan = Ya

IF Psikotes > 4 ^ Intellegensi = 3 ^ Pengalaman = Tidak THEN Kelulusan = Tidak

4.2. Antarmuka Sistem

Ada beberapa antarmuka yang telah dirancang pada aplikasi ini. Adapun tujuan

pembuatan antarmuka ini adalah untuk memudahkan pengguna dalam penggunaan

(41)

4.2.1. Form Menu Utama

Form Menu Utama ini merupakan form yang pertama kali muncul ketika aplikasi ini

dijalankan. Seperti terlihat pada Gambar 4.5, form ini terdiri dari empat button, yaitu

Data, Pengujian, Bantuan, dan Tentang. Data berfungsi untuk mengantar pengguna

menuju form Data. Pengujian berfungsi untuk mengantar pengguna menuju form

Pengujian, Bantuan adalah button yang mengantar pengguna menuju form bantuan.

[image:41.595.271.365.252.410.2]

Tentang akan mengantar pengguna menuju form Tentang.

Gambar 4.5 Form Menu Utama

4.2.2. Form Menu Data

Form Menu Data akan menampilkan daftar nama-nama pelamar yang sudah pernah

dimasukkan ke dalam aplikasi seperti terlihat pada Gambar 4.6.

Gambar 4.6 Form Menu Data

[image:41.595.268.367.521.683.2]
(42)

4.2.3. Form Pengujian

Pada form ini, pengguna akan memasukkan biodata seorang pelamar baru untuk

kemudian disimpan ke dalam database. Pada Gambar 4.7 terlihat beberapa field yang

harus diisi oleh pengguna, yaitu Nama, Alamat, No. Telepon, Pendidikan Terakhir,

Pengalaman Bekerja, Nilai Psikotes, dan Nilai Intellegensi. Setelah semua field terisi,

pengguna dapat memilih button CEK untuk mendapatkan hasil pengujian. Setelah

diperoleh hasil pengujian, akan muncul button baru dengan nama SIMPAN yang

[image:42.595.256.375.250.438.2]

berfungsi untuk menyimpan data yang sudah diuji.

Gambar 4.7 Form Pengujian

4.2.4. Form Hasil

Form Hasil adalah form yang berfungsi untuk menampilkan biodata, nilai, dan hasil

kelulusan seorang pelamar yang dipilih dari listView yang ada pada form Menu Data.

Adapun tampilan form ini seperti terlihat pada Gambar 4.11.

[image:42.595.268.363.579.730.2]
(43)

Pada form ini terdapat dua button, yaitu UBAH dan HAPUS. Button UBAH berfungsi

untuk mengubah data yang dipilih, dan HAPUS untuk menghapus data yang dipilih.

4.2.5. Form Bantuan

Form Bantuan berisi petunjuk penggunaan aplikasi, yaitu fungsi menu utama. Berikut

ditampilkan form Bantuan pada Gambar 4.9

Gambar 4.9 Form Bantuan

4.2.6. Form Tentang

Form ini adalah form yang berisi judul skripsi, nama, dan NIM penulis. Tampilan dari

form ini dapat dilihat pada Gambar 4.10.

[image:43.595.249.384.546.748.2]
(44)

4.3. Pengujian Sistem

Pengujian sistem dilakukan untuk memeriksa kinerja antar komponen sistem yang

diimplementasikan. Tujuannya adalah untuk memastikan bahwa elemen atau

komponen dari sistem telah berfungsi sesuai dengan yang diharapkan. Pengujian akan

dilakukan dengan metode black box testing. Pengujian black box berfokus kepada

pengujian dengan melihat fungsi-fungsi yang ada di dalam sistem tanpa harus

mengetahui bagaimana fungsi tersebut dibuat programnya. Pada sistem perekrutan

karyawan ini, pengujian merujuk pada fungsi-fungsi yang dimiliki oleh sistem,

kemudian membandingkan hasil keluaran program dengan hasil yang diharapkan. Bila

hasil yang diharapkan sesuai dengan hasil pengujian, hal ini berarti perangkat lunak

sesuai dengan desain yang telah ditentukan sebelumnya. Bila belum sesuai, maka

perlu dilakukan pengecekan dan perbaikan lebih lanjut.

Pada Tabel 4.7, akan ditampilkan hasil pengujian 20 data yang diambil secara acak

dari total 144 data pelamar.

Tabel 4.7 Data Pengujian Sampel

Id Pendidikan Terakhir Pengalaman

Bekerja Psikotes Intellegensi Kelulusan

6 S1 Ya 4 3 Tidak

7 S1 Tidak 7 3 Ya

18 S1 Tidak 5 0 Tidak

20 D3 Tidak 5 2 Tidak

25 SMA Ya 3 0 Tidak

30 S1 Ya 3 3 Tidak

39 D3 Ya 4 1 Tidak

42 S1 Ya 2 3 Tidak

53 S1 Ya 0 2 Tidak

57 S1 Ya 3 2 Tidak

61 SMA Ya 4 2 Tidak

(45)

83 D3 Ya 2 1 Tidak

96 SMA Ya 6 2 Ya

107 D3 Ya 4 2 Tidak

110 S1 Ya 3 0 Tidak

114 SMA Tidak 3 2 Tidak

121 D3 Ya 3 0 Tidak

126 D3 Tidak 3 2 Tidak

133 S1 Tidak 1 1 Tidak

4.3.1. Pengujian Perhitungan Algoritma

Hasil pengujian data pelamar dengan menggunakan aplikasi dapat dilihat pada Tabel

4.8.

Tabel 4.8 Tabel Hasil Pengujian Aplikasi Penentuan Kelulusan Karyawan Blackberry Service Center Medan

Id

Pelamar Kelulusan Gambar Hasil Pengujian Aplikasi

6 Tidak

[image:45.595.101.529.397.685.2]
(46)
[image:46.595.104.532.80.555.2]

7 Ya

Gambar 4.12 Hasil Uji Sampel 2

18 Tidak

(47)
[image:47.595.104.532.81.557.2]

20 Tidak

Gambar 4.14 Hasil Uji Sampel 4

25 Tidak

(48)
[image:48.595.104.532.81.558.2]

30 Tidak

Gambar 4.16 Hasil Uji Sampel 6

39 Tidak

(49)
[image:49.595.104.532.81.556.2]

42 Tidak

Gambar 4.18 Hasil Uji Sampel 8

53 Tidak

(50)
[image:50.595.104.532.81.558.2]

57 Tidak

Gambar 4.20 Hasil Uji Sampel 10

61 Tidak

(51)
[image:51.595.104.532.80.557.2]

68 Ya

Gambar 4.22 Hasil Uji Sampel 12

83 Tidak

(52)
[image:52.595.104.532.80.557.2]

96 Ya

Gambar 4.24 Hasil Uji Sampel 14

107 Tidak

(53)
[image:53.595.105.531.81.557.2]

110 Tidak

Gambar 4.26 Hasil Uji Sampel 16

114 Tidak

(54)
[image:54.595.105.532.81.557.2]

121 Tidak

Gambar 4.28 Hasil Uji Sampel 18

126 Tidak

(55)

133 Tidak

Gambar 4.30 Hasil Uji Sampel 20

<

Gambar

Gambar 3.12 Rancangan Hasil
Tabel 4.1 Data Atribut Target
Gambar 4.1 Pohon keputusan node 1
Tabel 4.4 Analisis Atribut untuk Node 1.1
+7

Referensi

Dokumen terkait

dengan panjang gelombang berwarna hijau dan sampel pada plat KLT berlabel B dengan panjang gelombang berwarna merah memiliki spectrum dengan panjang gelombang yang sama

Studi pendahuluan merupakan studi awal yang dilakukan untuk mengidentifikasi implementasi PPK MAN 2 Cirebon dan MAN 1 Brebes, sebagai bahan pertimbangan dalam

ADI SARANA LELANG BLOK E N0 2 KEL SUKAPURA KEC CILINCING JAKARTA UTARA

a) Definisi Konseptual : Minat Mahasiswa Fakultas Ekonomi dan Bisnis Universitas Muhammadiyah Metro berinvestasi adalah mendorong atau keinginan mahasiswa untuk

Bahan – bahan yang digunakan Bahan yang akan digunakan untuk pembuatan kartu adalah dari bahan kertas, untuk bahan papan permainan juga akan menggunakan kertas

The purpose of this research is to examine the influence of capital adequacy ratio, non performing loan, operational income operational cost, loan to deposit ratio, net

Berdasarkan hal tersebut, maka penulis memilih judul : “Metode Penetapan Pajak Hotel Pada Dinas Pengelola Kekayaan dan Asset Daerah Kota Sibolga .“... Tujuan Dan Manfaat

Pasangan yang ingin hamil harus mencoba minimal 1 tahun sebelum menerima konseling atau pengobatan (perempuan usia lebih dari 35 tahun perlu pengobatan segera). Saat paling