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

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

Intent intent = new Intent(MainActivity.this, About.class); startActivity(intent); } }); } } // Source Code Data.java


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

public class Pengujian extends AppCompatActivity { DatabaseOpenHelper dbHelper;


(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);

nama.setText(cursor.getString(1).toString()); alamat.setText(cursor.getString(2).toString()); telp.setText(cursor.getString(3).toString()); pend.setText(cursor.getString(4).toString());


(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() +"'," +

" Keterangan = '"+ ket.getText().toString() +"' WHERE No = '"+ namaIntent +"'");


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

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


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

public Integer getSumYa(){ return this.sumYa;


(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; public DatabaseHandler(Context context) {


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

Multimedia : Adobe Illustrator, Adobe Photoshop. Database : Microsoft Access, MySQL.


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

Russel, Stuart J. & Norvig, P. 2003. Artificial Intelligence: A Modern Approach. New Jersey: Prentice Hall.


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

Turban, E. & Jay, E.A. 1998. Decision Support System and Intelligent System, Fifth Edition. Prentice Hall International : New Jersey.


(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 karyawan ini. Dengan adanya SPK, proses pengambilan keputusan akan lebih mudah


(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 persyaratan tambahan yang dapat menunjang kinerja dari persyaratan fungsional.


(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 menentukan perekrutan karyawan Blackberry Service Center Medan.


(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

Simpan Data yang Diubah


(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

Berhenti Tidak Ya


(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

SIMPAN i


(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

SIMPAN i


(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. Rancangan antarmuka ini terlihat pada Gambar 3.12.


(30)

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, SMA/SMK.


(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 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 Pengalaman Ya 86 14 72 0,640944185


(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

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


(36)

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

Lalu data tersebut dianalisis lagi untuk mencari nilai entropy dan gain dari 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 dan nilai intellegensi = 4. Maka, bentuk tree sementara dapat dilihat pada Gambar 4.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 :

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

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

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 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, sehingga pohon keputusan akhir dapat digambarkan seperti pada Gambar 4.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

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 aplikasi ini.


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


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


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


(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


(46)

7 Ya

Gambar 4.12 Hasil Uji Sampel 2

18 Tidak


(47)

20 Tidak

Gambar 4.14 Hasil Uji Sampel 4

25 Tidak


(48)

30 Tidak

Gambar 4.16 Hasil Uji Sampel 6

39 Tidak


(49)

42 Tidak

Gambar 4.18 Hasil Uji Sampel 8

53 Tidak


(50)

57 Tidak

Gambar 4.20 Hasil Uji Sampel 10

61 Tidak


(51)

68 Ya

Gambar 4.22 Hasil Uji Sampel 12

83 Tidak


(52)

96 Ya

Gambar 4.24 Hasil Uji Sampel 14

107 Tidak


(53)

110 Tidak

Gambar 4.26 Hasil Uji Sampel 16

114 Tidak


(54)

121 Tidak

Gambar 4.28 Hasil Uji Sampel 18

126 Tidak


(55)

133 Tidak

Gambar 4.30 Hasil Uji Sampel 20

Setelah dilakukan pengujian terhadap keseluruhan data (144 data), didapatkan hasil pengujian seperti terlihat pada Tabel 4.9 berikut ini.

Tabel 4.9. Perbandingan Data Set dan Hasil Pengujian

Data Set Hasil Pengujian

Lulus 19 14

Tidak Lulus 125 130

Total 144 144

Berdasarkan Tabel 4.9, didapat persentase keakuratan kelulusan hasil pengujian aplikasi :

� �ℎ � �� � �

� �ℎ � � � �� × % = × % = , %

Dari hasil perhitungan di atas, dapat dilihat bahwa algoritma C4.5 cukup efektif untuk membantu manajer dalam menentukan kelulusan pelamar dengan tingkat keakuratan sebesar 73,68%.


(56)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil dari implementasi dan pengujian, dapat disimpulkan bahwa :

1. Dengan menggunakan aplikasi ini, pengguna dapat lebih efektif dan efisien dalam menentukan kelulusan pelamar pada Blackberry Service Center Medan.

2. Algoritma C4.5 dapat digunakan untuk memecahkan masalah perekrutan karyawan dengan persentase keakuratan sebesar 73,68%.

3. Hasil yang diperoleh dari pengujian ini hanya sebagai alat bantu bagi pengambil keputusan. Keputusan kelulusan akhirnya akan ditentukan oleh pengambil keputusan juga.

5.2. Saran

Adapun saran yang dapat diberikan untuk mengembangkan penelitian ini adalah sebagai berikut :

1. Peneliti selanjutnya dapat menambah sampel pengujian yang digunakan pada perhitungan algoritma C4.5 untuk mendapatkan hasil yang lebih bervariasi.

2. Penelitian dapat dilakukan dengan melakukan pembandingan terhadap algoritma lain untuk mencari efektifitas yang lebih baik dalam menyelesaikan masalah perekrutan karyawan.

3. Pengujian sistem merupakan salah satu proses yang harus diperhatikan untuk mendapatkan hasil yang optimal dan sesuai dengan tujuan sebuah sistem pendukung keputusan dibuat.


(57)

BAB 2

TINJAUAN PUSTAKA

2.1. Sistem Pendukung Keputusan

Sistem Pendukung Keputusan (SPK) atau dikenal Decision Support System(DSS) adalah sistem informasi interaktif yang menyediakan informasi, pemodelan dan pemanipulasian data yang digunakan untuk membantu pengambilan keputusan pada situasi yang semiterstruktur dan situasi yang tidak terstruktur dimana tak seorangpun tahu secara pasti bagaimana keputusan seharusnya dibuat (Kadir, 2003).

2.1.1 Karakteristik Sistem Pendukung Keputusan

Adapun yang menjadi karakteristik SPK (Kadir, 2003) :

1. Menawarkan keluwesan, kemudahan beradaptasi, dan tanggapan yang cepat. 2. Memungkinkan pemakai memulai dan mengendalikan masukan dan keluaran. 3. Dapat dioperasikan dengan sedikit atau tanpa bantuan pemrogram profesional. 4. Menyediakan dukungan untuk keputusan dan permasalahan yang solusinya tak

dapat ditentukan di depan.

5. Menggunakan analisis data dan perangkat pemodelan yang canggih.

2.1.2 Arsitektur Sistem Pendukung Keputusan

Menurut Kusrini (2009), aplikasi SPK bisa terdiri dari beberapa subsistem, yaitu : 1. Subsistem manajemen data

Subsistem ini memasukkan satu database yang berisi data yang relevan untuk suatu situasi dan dikelola oleh perangkat lunak yang disebut sistem manajemen database (Data Base Management System/DBMS).


(58)

2. Subsistem manajemen model

Merupakan paket perangkat lunak yang memasukkan model keuangan, statistik, ilmu manajemen, atau model kuantitatif lain yang memberikan kapabilitas analitik dan manajemen perangkat lunak yang tepat.

3. Subsistem antarmuka pengguna

Pengguna berkomunikasi dengan dan memerintahkan sistem pendukung keputusan melalui subsistem tersebut. Pengguna adalah bagian yang dipertimbangkan dari sistem.

4. Subsistem manajemen berbasis pengetahuan

Subsistem tersebut mendukung semua subsistem lain atau bertindak langsung sebagai suatu komponen independen dan bersifat opsional.

2.1.3 Pandangan Pengguna Sistem Pendukung Keputusan

Pandangan pengguna SPK adalah salah satu yang mempengaruhi motivasi penggunaan SPK. Hubungan antara pandangan pengguna SPK dan motivasi penggunaan SPK diharapkan haruslah positif. Karena itu, motivasi untuk menggunakan SPK diharapkakn meningkat ketika SPK dirasakan menjadi lebih efektif ataupun efisien, atau lebih mudah penggunaannya. (Jao, 2010). Adapun yang menjadi pandangan pengguna tersebut adalah :

1. Keefektifan

Pengguna mungkin memposisikan keefektifan dan penggunaan lebih sedikit usaha untuk mencapai target mereka ketika sadar akan keuntungan dari meningkatkan hasil keputusan. Akibatnya, pertimbangan pengguna terhadap hasil keputusan akan menuju kepada peningkatan penggunaan SPK.

2. Efisiensi

Sebuah SPK dikatakan efisien jika dapat membantu pengguna dalam membuat keputusan dalam waktu yang singkat.

3. Usaha

Penelitian menunjukkan bahwa peningkatan penggunaan SPK meningkat ketika sebuah SPK mengurangi usaha yang digunakan untuk mengimplementasi strategi yang membutuhkan usaha penuh, dan ketika penggunaan SPK meningkatkan kualitas dan akurasi keputusan.


(59)

2.2 Android

Android merupakan sebuah sistem operasi perangkat mobile berbasis linux yang mencakup sistem operasi, middleware, dan aplikasi. Untuk mengembangkan Android, dibentuk OHA (Open Handset Aliance), konsorsium dari 34 perusahaan peranti keras (Hardware), peranti lunak (Software), dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Pada tanggal 5 November 2007, Android dirilis pertama kali. Android bersama OHA menyatakan mendukung pengembangan open source pada perangkat mobile.

Sekitar bulan September 2007, Google mengenalkan Nexus One, salah satu jenis smartphone yang menggunakan Android sebagai sistem operasinya yang diproduksi oleh HTC Corp. dan tersedia di pasaran pada tanggal 5 Januari 2008. Sejak saat itu, Android berkembang pesat dan bersaing dengan Apple dalam sistem operasi untuk PC Tablet. Terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat dukungan penuh dari Google atau GMS (Google Mail Services), dan kedua adalah yang benar-benar bebas distribusinya, tanpa dukungan langsung Google, atau dikenal sebagai OHD (Open Handset Distribution). Hingga 14 Oktober 2013, Android sudah merilis 31 versi mulai dari versi Beta yang belum memakai versi angka sampai Kitkat versi 4.4. Semakin versi tinggi, fiturnya semakin canggih dan banyak.

2.3 Algoritma C4.5

Algoritma C4.5 adalah perluasan dari algoritma ID3 yang diciptakan Quinlan untuk menghasilkan decision tree. Algoritma ini menggunakan konsep information gain atau entropy reduction untuk memilih optimal split. C4.5 secara rekursif memeriksa setiap decision node, memilih optimal split, sampai tak ada lagi kemungkinan melakukan split (Larose & Larose, 2014).

Algoritma C4.5 adalah salah satu metode untuk membuat decision tree berdasarkan data training yang telah disediakan (Adyatama, 2013). Teknik pengklasifikasian C4.5 menggunakan entropy dan information gain untuk perluasan pohon(tree) (Florence & Savithri, 2013). Secara umum proses algoritma C4.5 untuk membangun pohon keputusan adalah sebagai berikut (Kusrini, 2009) :

1. Pilih atribut sebagai akar

2. Buat cabang untuk masing-masing nilai 3. Bagi kasus ke dalam cabang


(60)

4. Ulangi proses untuk masing-masing cabang sampai semua kasus selesai. Untuk memilih atribut sebagai akar, didasarkan pada nilai gain tertinggi dari atribut-atribut yang ada. Untuk menghitung gain digunakan rumus :

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

� �=

Keterangan :

S : Himpunan Kasus A : Atribut

n : Jumlah Partisi Atribut A Si : Jumlah Kasus pada Partisi ke-i S : Jumlah Kasus dalam S

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

� �=

Keterangan :

S : Himpunan Kasus A : Fitur

N : Jumlah partisi S

pi : Proporsi dari Si terhadap S

Contoh kasus yang terjadi adalah untuk menyelesaikan kasus pertandingan tenis akan dilakukan atau tidak, berdasarkan keadaan cuaca, suhu, kelembapan, dan angin seperti pada Tabel 2.1.


(61)

Tabel 2.1 Data Set Kasus Penentuan Pelaksanaan Pertandingan No Cuaca Suhu Kelembapan Berangin Main

1 Cerah Panas Tinggi Salah Tidak

2 Cerah Panas Tinggi Benar Tidak

3 Berawan Panas Tinggi Salah Ya

4 Hujan Sejuk Tinggi Salah Ya

5 Hujan Dingin Normal Salah Ya

6 Hujan Dingin Normal Benar Ya

7 Berawan Dingin Normal Benar Ya

8 Cerah Sejuk Tinggi Salah Tidak

9 Cerah Dingin Normal Salah Ya

10 Hujan Sejuk Normal Salah Ya

11 Cerah Sejuk Normal Benar Ya

12 Berawan Sejuk Tinggi Benar Ya

13 Berawan Panas Normal Salah Ya

14 Hujan Sejuk Tinggi Benar Tidak

Kemudian hitung entropy dengan rumus :

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

� �=

Maka didapat :

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

Tabel 2.2 Hasil Perhitungan Entropy pada Data Set

Total Kasus Sum(Ya) Sum(Tidak) Entropy Total


(62)

Setelah mendapatkan entropy dari keseluruhan kasus pada Tabel 2.2, lakukan analisis pada setiap atribut dan nilai-nilainya dan hitung entropynya.

Hitung gain setiap atribut dengan rumus :

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

� �=

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

��� � ��� = ,

Kemudian, hitung gain masing-masing atribut suhu, kelembapan, dan berangin. Hasil perhitungan dari masing-masing atribut terlihat pada Tabel 2.3.

Tabel 2.3 Analisis Atribut, Nilai, Banyaknya Kejadian Nilai, Entropy dan Gain

No-de Atribut Nilai

Sum (Nilai)

Sum (Ya)

Sum

(Tidak) Entropy Gain

1 Cuaca Berawan 4 4 0 0

Hujan 5 4 1 0,721928095 Cerah 5 2 3 0,970950594

0,258521037

Suhu Dingin 4 4 0 0

Panas 4 2 2 1

Sejuk 6 4 2 0,918295834

0,183850925 Kelembapan Tinggi 7 3 4 0,985228136

Normal 7 7 0 0

0,370506501 Berangin Salah 8 6 2 0,811278124

Benar 6 2 4 0,918295834


(1)

DAFTAR ISI

Hal.

PERSETUJUAN ii

PERNYATAAN iii

UCAPAN TERIMA KASIH iv

ABSTRAK vi

ABSTRACT vii

DAFTAR ISI viii

DAFTAR TABEL x

DAFTAR GAMBAR xi

DAFTAR LAMPIRAN xiii

BAB I PENDAHULUAN

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika Penulisan 4

BAB II TINJAUAN PUSTAKA

2.1 Sistem Pendukung Keputusan 5

2.1.1 Karakteristik Sistem Pendukung Keputusan 5 2.1.2 Arsitektur Sistem Pendukung Keputusan 5 2.1.3 Pandangan Pengguna Sistem Pendukung Keputusan 6

2.2 Android 7

2.3 Algoritma C4.5 7

BAB III ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem 15

3.1.1 Analisis Masalah 15

3.1.2 Analisis Persyaratan 16

3.1.3 Pemodelan 17

3.2 Perancangan Antarmuka Sistem 23

3.2.1 Antarmuka Menu Utama 23

3.2.2 Antarmuka Menu Data 24

3.2.3 Antarmuka Menu Pengujian 25 3.2.4 Antarmuka Menu Mengubah Data Pelamar 26


(2)

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem 30

4.2 Antarmuka Sistem 38

4.2.1 Form Menu Utama 39 4.2.2 Form Menu Data 39 4.2.3 Form Pengujian 40

4.2.4 Form Hasil 40

4.2.5 Form Bantuan 41 4.2.6 Form Tentang 42

4.3 Pengujian Sistem 42

4.3.1 Pengujian Perhitungan Algoritma 43

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan 54

5.2 Saran 54

DAFTAR PUSTAKA 55


(3)

DAFTAR TABEL

Hal.

Tabel 2.1 Data Set Kasus Penentuan Pelaksanaan Pertandingan 9 Tabel 2.2 Hasil Perhitungan Entropy pada Data Set 9 Tabel 2.3 Analisis Atribut, Nilai, Banyaknya Kejadian Nilai, Entropy dan Gain 10

Tabel 2.4 Data dengan Kelembapan Tinggi 11

Tabel 2.5 Hasil Perhitungan Entropy Atribut Kelembapan Tinggi 11

Tabel 2.6 Analisis Atribut untuk Node 1.1 12

Tabel 2.7 Hasil Analisis Node 1.1.2 13

Tabel 2.8 Hasil Perhitungan Entropy Atribut Kelembapan Tinggi dan Hujan 13

Tabel 2.9 Analisis Atribut untuk Node 1.1.2 13

Tabel 4.1 Data Atribut Target 31

Tabel 4.2 Analisis Data Set 31

Tabel 4.3 Perhitungan Entropy dan Gain 32

Tabel 4.4 Analisis Atribut untuk Node 1.1 34

Tabel 4.5 Analisis Atribut untuk Node 1.1.3 35

Tabel 4.6 Analisis Atribut untuk Node 1.1.4 37

Tabel 4.7 Data Pengujian Sampel 42

Tabel 4.8 Tabel Hasil Pengujian Aplikasi Penentuan Kelulusan Karyawan 43 Tabel 4.9 Perbandingan Data Set dan Hasil Pengujian 50


(4)

DAFTAR GAMBAR

Hal.

Gambar 2.1 Pohon Keputusan Node 1 (root node) 11

Gambar 2.2 Pohon Keputusan Analisis Node 1.1 12

Gambar 2.3 Pohon Keputusan Akhir 14

Gambar 3.1 Diagram Ishikawa Analisis Masalah Sistem 16

Gambar 3.2 Use Case Diagram Sistem 18

Gambar 3.3 Activity Diagram Lihat Data 19

Gambar 3.4 Activity Diagram Pengujian Data Baru 20 Gambar 3.5 Sequence Diagram Lihat, Ubah, dan Hapus Data 21 Gambar 3.6 Sequence Diagram Pengujian Data Baru 22

Gambar 3.7 Flowchart Algoritma C4.5 22

Gambar 3.8 Rancangan Menu Utama 23

Gambar 3.9 Rancangan Menu Data 24

Gambar 3.10 Rancangan Pengujian 25

Gambar 3.11 Rancangan Mengubah Data Pelamar 26

Gambar 3.12 Rancangan Hasil 28

Gambar 4.1 Pohon Keputusan Node 1 33

Gambar 4.2 Pohon Keputusan Node 1.1 35

Gambar 4.3 Pohon Keputusan Node 1.1.3 36

Gambar 4.4 Pohon Keputusan Node 1.1.4 38

Gambar 4.5 Tampilan Form Menu Utama 39

Gambar 4.6 Tampilan Form Menu Data 39

Gambar 4.7 Tampilan Form Pengujian 40

Gambar 4.8 Tampilan Form Hasil 40

Gambar 4.9 Tampilan Form Bantuan 41

Gambar 4.10 Tampilan Form Tentang 41

Gambar 4.11 Hasil Uji Sampel 1 43

Gambar 4.12 Hasil Uji Sampel 2 44

Gambar 4.13 Hasil Uji Sampel 3 44

Gambar 4.14 Hasil Uji Sampel 4 45

Gambar 4.15 Hasil Uji Sampel 5 45

Gambar 4.16 Hasil Uji Sampel 6 46

Gambar 4.17 Hasil Uji Sampel 7 46

Gambar 4.18 Hasil Uji Sampel 8 47

Gambar 4.19 Hasil Uji Sampel 9 47

Gambar 4.20 Hasil Uji Sampel 10 48

Gambar 4.21 Hasil Uji Sampel 11 48

Gambar 4.22 Hasil Uji Sampel 12 49

Gambar 4.23 Hasil Uji Sampel 13 49

Gambar 4.24 Hasil Uji Sampel 14 50

Gambar 4.25 Hasil Uji Sampel 15 50


(5)

Gambar 4.26 Hasil Uji Sampel 16 51

Gambar 4.27 Hasil Uji Sampel 17 51

Gambar 4.28 Hasil Uji Sampel 18 52

Gambar 4.29 Hasil Uji Sampel 19 52


(6)

DAFTAR LAMPIRAN

Hal.

LISTING PROGRAM A-1

CURRICULUM VITAE B-1