1, 2, 3, 4, 5, 6, 7, 1, 2, 3 Implementasi Algoritma C4.5 Untuk Perekrutan Karyawan Berbasis Android (Studi Kasus : Blackberry Service Center Medan)
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;
ListAtribut listAtribut;
ListString
field;
ListString value;
MapString, String inputanUser;
private Button btnCek, btnSave, btnClear; private EditText etNama, etAlamat, etTelp, etPendidikan, etPengalaman,
etIntellegensi, etPsikotes; private TextView tvHasil;
SQLiteDatabase
database; Override
protected void onCreateBundle savedInstanceState { super.onCreatesavedInstanceState;
setContentViewR.layout.pengujian; btnCek = Button findViewByIdR.id.btn_cek;
btnSave = Button findViewByIdR.id.btn_save; btnClear = Button findViewByIdR.id.btn_clr;
etNama = EditText findViewByIdR.id.et_nama; etAlamat = EditText findViewByIdR.id.et_alamat;
etTelp = EditText findViewByIdR.id.et_telp; etPendidikan = EditText findViewByIdR.id.et_pendidikan;
etPengalaman = EditText findViewByIdR.id.et_pengalaman; etIntellegensi = EditText findViewByIdR.id.et_intellegensi;
etPsikotes = EditText findViewByIdR.id.et_psikotes; tvHasil = TextView findViewByIdR.id.tv_hasilProses;
dbHelper = new DatabaseOpenHelperthis;
DatabaseHandler dbHandler = DatabaseHandler.getInstance
this;
dbHandler.open;
database = dbHandler.database; btnCek.setOnClickListenernew View.OnClickListener {
Override public void onClickView v {
try {
clear;
inputanUser.putPendidikan_Terakhir, etPendidikan.getText.toString;
inputanUser.putPengalaman_Bekerja, etPengalaman.getText.toString;
inputanUser.putPsikotes, etPsikotes.getText.toString;
inputanUser.putIntellegensi, etIntellegensi.getText.toString;
forString field : listField{
Universitas Sumatera Utara
Atribut n = new Atributfield;
listAtribut.addn;
}
forint i = 0; i constNilai.length; i++{ try {
Nilai n =
new NilailistField[constAtribut[i]],
constNilai[i]; n.AmbilDariDataSet
database, field, value;
n.HitungEntropy;
listAtribut.getconstAtribut[i].nilai.addn;
} catch Exception e{
} }
c45Algorithm;
btnSave.setVisibilityView.VISIBLE; btnClear.setVisibilityView.VISIBLE;
} catch Exception e{
Log.d Exception, e.toString;
} }
};
btnSave.setOnClickListenernew View.OnClickListener { Override
public void onClickView 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 MAXNo FROM DataPelamar, null; if cursor.moveToFirst {
nomor = cursor.getInt0; }
return nomor + 1;
}
void clear{ inputanUser = new HashMapString, String;
field = new ArrayListString; value = new ArrayListString;
listAtribut = new ArrayListAtribut;
}
void c45Algorithm{ keterangan = new Nilai, ;
keterangan.AmbilDariDataSetdatabase, field, value; keterangan.HitungEntropy;
iflistAtribut.size == 0{
Universitas Sumatera Utara
ifketerangan.getSumYa 0{ tvHasil.setTextLULUS;
return;
}
else ifketerangan.getSumTidak 0{ tvHasil.setTextTIDAK LULUS;
return;
} }
Atribut bestGain =
new Atribut;
Double maxGain = new DoubleDouble.MIN_VALUE;
forAtribut n : listAtribut{
n.HitungGain keterangan.getEntropy, keterangan.getSumNilai;
ifmaxGain n.gain || listAtribut.indexOfn == 0{
maxGain = n. gain;
bestGain = n; }
Log.d
TRACE, n.nama + GAIN : + n.gain;
} String userValue =
inputanUser.getbestGain.nama;
Nilai userNilai =
new Nilai; forNilai n : bestGain.nilai{
ifn.getNama.equalsuserValue{
userNilai = n; }
}
ifuserNilai.getEntropy = 0{ field.addbestGain.nama;
value.adduserValue; int i = 0;
forint index = 0; index listAtribut.size; index++{ iflistAtribut.getindex.nama.equalsbestGain.nama{
i = index; }
}
listAtribut.removei;
c45Algorithm; }
else { ifuserNilai.getSumYa 0{
tvHasil.setTextDATA TERSEBUT LULUS;
}
else ifuserNilai.getSumTidak 0{ tvHasil.setTextDATA 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; import android.widget.TextView;
Universitas Sumatera Utara
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