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