63
BAB IV IMPLEMENTASI PROGRAM
A. Jalannya Program dan Pembahasannya
Program ini meminta masukan berupa himpunan data pelatihan yang digunakan untuk membuat pohon keputusan dan aturan-aturan serta
himpunan data tes yang digunakan untuk menguji aturan-aturan yang telah dibuat. Dari pengujian tersebut dapat diketahui seberapa besar ketepatan
prediksi dari aturan-aturan yang telah dibuat. Berikut ini merupakan penjabaran proses jalannya program. Pada saat program dijalankan, form
yang pertama kali ditampilkan adalah form berikut ini :
Gambar 4.1 Form Menu dan Form Input Data Tabel
Pada form menu terdapat menu File, Window dan Help. Masing- masing menu memiliki fungsi sendiri-sendiri. Di dalam menu file terdapat
submenu-submenu yaitu Program Penambangan Data menu untuk melakukan proses penentuan data dan Keluar menu untuk keluar dari
program. Menu Window untuk menampilkan form yang aktif atau yang sudah ditampilkan. Menu Bantuan terdiri dari submenu Aturan yaitu menu
untuk menampilkan aturan-aturan tentang himpunan data pelatihan dan himpunan data tes dan submenu Tentang Program Penambangan Data
yaitu menu untuk menampilkan informasi tentang program ini. Untuk lebih jelasnya, lihat gambar berikut ini :
Gambar 4.2 Form Aturan Himpunan Tabel Pelatihan dan Tes
Gambar 4.3 Form Tentang Program Penambangan Data
Dalam form input data tabel, pertama-tama pemakai program diminta memilih tabel data pelatihan yang sudah ditampilkan dalam
combo box pelatihan sewaktu form ini aktif dan memilih tabel data tes.
Jika pemakai program belum memilih kedua tabel, maka program akan menampilkan kotak peringatan :
Gambar 4.4 Kotak Peringatan 1
Jika tabel data tes belum dipilih, maka program akan menampilkan kotak peringatan :
Gambar 4.5 Kotak Peringatan 2
Tombol Reset digunakan jika pemakai program ingin mengulang pemilihan tabel. Jika pemilihan tabel sudah selesai, maka untuk
melanjutkan ke proses selanjutnya pengguna dapat menekan tombol OK. Tombol ini akan menampilkan form Data Tabel, dimana dalam form ini
akan ditampilkan detail tabel data pelatihan dan tabel data tes yang telah dipilih sebelumnya. Pada program ini dipilih tabel training sebagai tabel
data pelatihan dan tabel test sebagai tabel data tes. Di bawah ini merupakan form data tabel Tabel Pelatihan :
Gambar 4.6 Form Data Tabel Tabel Pelatihan
Berikut ini merupakan form data tabel Tabel Tes :
Gambar 4.7 Form Data Tabel Tabel Tes
Jika pemakai program memilih tab control untuk Tabel Pelatihan, maka akan ditampilkan tabcontrol tabel pelatihan yang di dalamnya
terdapat tombol tampil tabel. Jika tombol ini ditekan, maka informasi detail tabel akan ditampilkan. Informasi ini berisi tentang jumlah atibut,
jumlah data, nama atribut keputusan, jumlah dan nama kejadian atribut PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
keputusan dan informasi tentang detail atribut yang lain beserta jumlah sampel setiap kejadian suatu atribut. Untuk menampilkan informasi
tentang detail atribut yang lain, pemakai program dapat memilih nama atribut yang sudah ditampilkan di combo box. Informasi yang ada pada
tabel tes sebagian besar sama dengan informasi yang ada pada tabel pelatihan. Yang membedakan adalah penambahan informasi tentang nama
atribut hasil. Tombol Tampil Tabel juga akan mengaktifkan tombol Proses ID3 yang berguna untuk menampilkan form penentuan node awal. Berikut
ini adalah form Penentuan Node Awal :
Gambar 4.8 Form Penentuan Node Awal
Jika tombol Cari Node Awal ditekan, maka proses pencarian node awal akan dilakukan. Proses ini memilih atribut dengan nilai gain paling
besar sebagai node awalnya. Dalam form ini juga terdapat progressbar PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
yang berfungsi untuk menunjukkan bahwa proses penentuan node awal sedang berlangsung. Konstruksi programnya adalah sebagai berikut :
entropi_awal = 0 For i = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1
q1 = select count MDI_utama.field_akhir from _ MDI_utama.tbl_training where
MDI_utama.field_akhir _ = MDI_utama.temp_sq1_akhir.Rowsi.Item0
Dim ambil_p As New MySqlDataAdapterq1, konek Dim temp As New DataTable
ambil_p.Filltemp PA = temp.Rows0.Item0 objDt.Rows.Count
PAlog = Math.LogPA, 2 ea_p = -1 PA PAlog
entropi_awal = entropi_awal + ea_p
Next
Fungsi di atas adalah untuk mencari nilai entropi total dari atribut keputusan untuk keseluruhan data sample.
atribut = 0 j = 0
Do While j = tempfields.Rows.Count - 3 qkejadian = select distinct arrkejj from
MDI_utama.tbl_training Dim ambil_kej As New MySqlDataAdapterqkejadian, konek
Dim tempkej As New DataTable ambil_kej.Filltempkej
Dim total_akhirtempkej.Rows.Count - 1, entropitempkej.Rows.Count - 1 As Double
rt_entropi = 0 For i = 0 To tempkej.Rows.Count - 1
tot_akhir = 0 Dim jum_target1
For x = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 q2 = select count from MDI_utama.tbl_training
where MDI_utama.field_akhir = MDI_utama.temp_sq1_akhir.Rowsx.Item0
and arrkejj = tempkej.Rowsi.Item0
Dim tot_entr1 As New MySqlDataAdapterq2, konek Dim qa1 As New DataTable
tot_entr1.Fillqa1 jum_targetx = qa1.Rows0.Item0
tot_akhir = tot_akhir + jum_targetx
Next total_akhiri = tot_akhir
etot_at = 0 For x = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1
If jum_targetx 0 Then
Ptot = jum_targetx tot_akhir logPtot = Math.LogPtot, 2
End If If jum_targetx = 0 Then
Ptot = 0 logPtot = 0
End If entrp = -1 Ptot logPtot
etot_at = etot_at + entrp Next
entropii = etot_at rt_entropi = rt_entropi + total_akhiri
objDt.Rows.Count entropii Next
gain = entropi_awal - rt_entropi gain_fieldj = gain
gain = 0 j = j + 1
Loop
Fungsi di atas adalah untuk menghitung nilai gain setiap atribut
besar = gain_field0 For i = 0 To tempfields.Rows.Count - 3
If besar = gain_fieldi Then besar = gain_fieldi
besar_i = i End If
Next MDI_utama.node_awal = tempfields.Rowsbesar_i + 1.Item0
menyimpan atribut yang menjadi node awal gain_awal = gain_fieldbesar_i
Fungsi ini adalah untuk mencari nilai gain yang paling besar dan memilih atribut dengan nilai gain ini sebagai node awal.
Tombol Cari Node Awal ini harus ditekan terlebih dahulu sebelum melanjutkan ke proses selanjutnya. Tombol ini juga akan mengaktifkan
tombol Lanjut yaitu tombol untuk melanjutkan ke form pembuatan pohon. Tombol ini menjadi tidak aktif ketika hasil penentuan node awal sudah
ditampilkan. Di bawah ini merupakan form Pembuatan Pohon : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.9 Form Pembuatan Pohon
Proses pembuatan pohon ini akan dilakukan ketika tombol Buat Pohon ditekan. Proses ini akan menampilkan informasi tentang nomor
akar, tingkat pohon, no akar atasnya, node, cabang dan hasil pohon. Konstruksi program untuk pembuatan pohon dapat dilihat di lampiran.
Pada konstruksi program tersebut proses yang dilakukan pertama adalah mencari kejadian-kejadian yang ada pada node awal, kemudian
menyimpannya dalam array. Dalam program ini digunakan arrayList untuk menyimpan nomor akar, tingkat pohon, nomor akar atasnya, node,
cabang dan hasil. Berikut ini pendeklarasian dari arrayList :
Public no, tingkat_phn, noakaratas_phn, node_phn, cabang_phn, _ hsl_phn As New ArrayList
Proses selanjutnya mencari sampel tiap cabang kejadian dari node awal tersebut. Dari pencarian tersebut dilakukan pengecekan
homogenitasnya. Jika sampel homogen, maka program akan menyimpan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
kejadiannya sebagai hasil. Jika sampel tidak ada, maka program akan menyimpan kejadian paling banyak pada atribut keputusan sebagai hasil.
Jika sampel masih heterogen, maka program akan mencari node lagi dan menyimpan sampel beserta nomor recordnya dalam arrayList sampel dan
menyimpan node ini sebagai atribut yang tidak diikutkan dalam proses penentuan node selanjutnya. Jika sudah selesai, maka program akan
melakukan pengecekan untuk mencari anak cabang. Jika
MDI_utama.hsl_phnjfor =
, maka program akan melakukan proses pembuatan anak cabang. Pada proses ini juga terdapat proses
penghitungan nilai gain untuk memperoleh atribut dengan nilai gain terbesar. Proses selengkapnya dapat dilihat dalam konstruksi programnya
di lampiran. Selama proses pembuatan pohon dilakukan, program akan menampilkan progress bar yang berfungsi sebagai indikator untuk
mengetahui proses pembuatan pohon sedang berlangsung. Berikut ini progress bar
tersebut :
Gambar 4.10 Progress Bar Proses Pembuatan Pohon
Jika dilakukan double klik pada salah satu cabang yang mempunyai hasil = “”, maka program akan menunjukkan anak
cabangnya. Jika hasil tidak sama dengan “”, maka program akan menampilkan kotak pesan :
Gambar 4.11 Kotak Pesan 1
Ketika tabel pohon ditampilkan dalam datagridview, maka tombol Buat Pohon menjadi tidak aktif sedangkan tombol Lanjut menjadi aktif.
Jika tombol Lanjut ditekan, maka form Unpruned Aturan akan ditampilkan. Berikut ini form Unpruned Aturan tersebut :
Gambar 4.12 Form Unpruned Aturan
Proses unpruned aturan dilakukan jika tombol Unpruned ditekan. Proses ini dimulai dari indeks yang sudah pasti tidak ada anak cabangnya
yaitu indeks yang terbesar sehingga program akan mencari indeks akar atasnya saja. Selanjutnya dilakukan pengecekan apakah hasil sama dengan
“”. Jika tidak, maka program akan menyimpan aturan dengan hasil sebagai konsekuennya sedangkan atribut dan cabang sebagai
antesedennya. Anteseden-anteseden akan terus dicari sampai akar paling atas atau indeks akar bernilai 0. untuk lebih jelasnya, berikut ini konstruksi
programnya :
fungsi untuk mencari rule menyimpan nomor rule
no_rule = 0 menyimpan anteseden
MDI_utama.i_rule = -1 indeks rule
MDI_utama.i_prediksi = -1 indeks data sampel
i_dtSampel = -1 dimulai dari indeks pohon paling besar
Dim awal = MDI_utama.indx_phn Dim xyz, q As Integer
Do While awal = 0
Dim hasilX = MDI_utama.hsl_phnawal Dim i_akar = MDI_utama.noakaratas_phnawal
Dim jml_Sampel = MDI_utama.sampelsisa_phnawal If hasilX = Then
Else
If i_akar 0 Then jika belum mrpk akar plg atas
menyimpan rule no_rule = no_rule + 1
MDI_utama.i_prediksi = MDI_utama.i_prediksi + 1 prediksi_A.InsertMDI_utama.i_prediksi, no_rule
prediksi_B.InsertMDI_utama.i_prediksi, hasilX prediksi_C.InsertMDI_utama.i_prediksi, jml_Sampel
mencari atribut cabang yg akan mjd anteseden sampai akar plg atas
Dim i_Phn = awal Do While i_akar 0
menyimpan anteseden2 MDI_utama.i_rule = MDI_utama.i_rule + 1
rule_A.InsertMDI_utama.i_rule, no_rule rule_B.InsertMDI_utama.i_rule, _
MDI_utama.node_phni_Phn rule_C.InsertMDI_utama.i_rule, _
MDI_utama.cabang_phni_Phn xyz = i_akar
menentukan akar atasnya
i_akar = MDI_utama.noakaratas_phnxyz i_Phn = xyz
Loop menyimpan anteseden2
yg mrpk atributakar plg atas MDI_utama.i_rule = MDI_utama.i_rule + 1
rule_A.InsertMDI_utama.i_rule, no_rule rule_B.InsertMDI_utama.i_rule, _
MDI_utama.node_phnxyz rule_C.InsertMDI_utama.i_rule, _
MDI_utama.cabang_phnxyz Else
jika sudah mrpk akar plg atas menyimpan rule
no_rule = no_rule + 1 MDI_utama.i_prediksi = MDI_utama.i_prediksi + 1
prediksi_A.InsertMDI_utama.i_prediksi, no_rule prediksi_B.InsertMDI_utama.i_prediksi, hasilX
prediksi_C.InsertMDI_utama.i_prediksi, jml_Sampel menyimpan anteseden
MDI_utama.i_rule = MDI_utama.i_rule + 1 rule_A.InsertMDI_utama.i_rule, no_rule
rule_B.InsertMDI_utama.i_rule, _
MDI_utama.node_phnawal rule_C.InsertMDI_utama.i_rule, _
MDI_utama.cabang_phnawal End If
menyimpan data sampel u suatu rule Dim sdsdsd = MDI_utama.indx_sampel2
For q = 0 To MDI_utama.indx_sampel2 If awal = MDI_utama.sampel2_Aq Then
i_dtSampel = i_dtSampel + 1 MDI_utama.dt_sampel_A.Inserti_dtSampel, _
prediksi_AMDI_utama.i_prediksi MDI_utama.dt_sampel_B.Inserti_dtSampel, _
MDI_utama.sampel2_Bq End If
Next End If
awal = awal - 1 Loop
Fungsi di atas adalah untuk mencari aturan dari tabel pohon yang telah dibuat sebelumnya
Selama proses unpruned aturan berlangsung, program akan menampilkan status progress bar :
Gambar 4.13 Status Progress Bar Unpruned Aturan
Pada saat hasil proses unpruned aturan ditampilkan, maka tombol Unpruned
menjadi tidak aktif dan tombol Lanjut menjadi aktif. Proses akan dilanjutkan dengan menekan tombol Lanjut dan form Aturan Default
akan ditampilkan. Berikut ini form Aturan Default:
Gambar 4.14 Form Aturan Default
Pada form tersebut proses pembuatan aturan default dapat dilakukan dengan menekan tombol aturan default. Jika pemakai program
menekan tombol ini, maka program akan menampilkan kotak pesan yang berisi konsekuen paling banyak yaitu :
Gambar 4.15 Kotak Pesan 2
Jika memilih tombol ‘Yes’, maka aturan-aturan dengan konsekuen tersebut akan dieliminasi atau dengan kata lain dijadikan aturan default.
Jika memilih tombol ‘No’, maka aturan-aturan dengan konsekuen tersebut tidak dieliminasi. Aturan-aturan dapat ditampilkan dengan memilih
konsekuen yang ada pada combo box klasifikasi. Jika konsekuen yang dipilih merupakan konsekuen yang menjadi aturan default, maka akan
ditampilkan kotak pesan :
Gambar 4.16 Kotak Pesan 3
Untuk melanjutkan ke proses selanjutnya, maka pengguna program dapat menekan tombol Lanjut. Tombol ini akan menampilkan form
Simulasi dan Pengujian Aturan. Dalam form ini, yang pertama kali ditampilkan adalah form simulasi :
Gambar 4.17 Form Simulasi
Pada form di atas proses pembuatan simulasi dapat dilakukan dengan menekan tombol Buat Simulasi. Proses pembuatan simulasi merupakan
proses dimana pengguna dapat membuat variasi simulasi aturan. Proses ini dilakukan dengan cara menghapus aturan yang tidak diinginkan. Simulasi
yang terbentuk memberikan hasil persentase keberhasilan prediksi yang bervariasi, sesuai dengan aturan-aturan yang dihapus sebelumnya. Jika
tombol Buat Simulasi ditekan maka, akan memunculkan tombol Pengujian Aturan, Lihat Sampel, Hapus Sampel dan Selesai. Untuk lebih jelasnya
dapat melihat gambar di bawah ini : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.18 Form Simulasi Setelah Tombol Buat Simulasi diklik
Tombol Lihat Sampel ditekan akan menampilkan form Detail Sampel lihat gambar di bawah
Gambar 4.19 Form Detail Sampel
Tombol Hapus Aturan ditekan, maka aturan yang terseleksi akan dihapus dan ditampilkan pada tabel Aturan yang Dihapus. Tombol Selesai ditekan,
maka akan ditampilkan kotak pesan :
Gambar 4.20 Kotak Pesan 4
Jika memilih tombol ‘Yes’, maka proses pembuatan simulasi telah selesai dan akan menampilkan tombol Pengujian Aturan. Jika memilih tombol
‘No’, maka akan kembali ke proses sebelumnya. Ada dua pilihan dalam proses ini, yaitu program memberikan fasilitas untuk melakukan
penghapusan terhadap aturan-aturan sederhana yang tidak diinginkan, kemudian melakukan pengujian aturan atau langsung melakukan
pengujian aturan terhadap himpunan data tes. Jika langsung melakukan pengujian aturan, maka dapat menekan tombol Pengujian Aturan. Tombol
ini akan menampilkan form selanjutnya, yaitu form Pengujian Aturan. Berikut ini form Pengujian Aturan :
Gambar 4.21 Form Pengujian Aturan
Pada form tersebut, tombol Data Test digunakan untuk menampilkan tabel tes dan detail atribut keputusan pada tabel tes. Pengguna dapat melakukan
pengujian aturan dengan menekan tombol Uji Aturan. Program akan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
menyimpan hasil pengujian aturan dan menampilkan hasil prediksi pada tabel Pengujian Aturan beserta persentase keberhasilan prediksi. Program
juga akan menampilkan Hasil Simulasi. Untuk lebih jelasnya dapat dilihat gambar di bawah ini :
Gambar 4.22 Form Pengujian Aturan Setelah Tombol Uji Aturan diklik
Pada tabel Hasil Simulasi terdapat tombol Aturan-Aturan, Pilih Simulasi, Hapus Simulasi dan Buat Simulasi. Untuk melihat aturan-
aturan yang ada pada suatu simulasi tekan tombol Aturan-Aturan lihat gambar di bawah ini.
Gambar 4.23 Form Detail Simulasi Aturan
Untuk membuat simulasi lagi tekan tombol Buat Simulasi. Tekan tombol Hapus Simulasi untuk menghapus simulasi yang diinginkan dan
menampilkan kotak pesan sebagai berikut :
Gambar 4.24 Kotak Pesan 5
Jika memilih tombol ‘Yes’, maka simulasi yang dipilih akan dihapus. Jika memilih tombol ‘No’, maka akan kembali ke proses sebelumnya. Tekan
tombol Pilih Simulasi untuk memilih simulasi yang diinginkan dan menampilkan kotak pesan :
Gambar 4.25 Kotak Pesan 6
Jika memilih tombol ‘Yes’, maka akan dilanjutkan ke form Aturan-Aturan Sederhana dan Prediksi Sampel. Jika memilih tombol ‘No’, maka akan
kembali ke proses sebelumnya. Berikut ini form Aturan-Aturan Sederhana:
Gambar 4.26 Form Aturan-Aturan Sederhana
Form di atas untuk mengetahui aturan-aturan yang paling sederhana
berdasarkan simulasi yang telah dipilih sebelumnya. Untuk melakukan prediksi terhadap suatu sampel, tekan tab control Prediksi Sampel lihat
gambar di bawah. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.27 Form Prediksi Sampel
Untuk melakukan prediksi suatu sampel tekan tombol prediksi, maka combo box
Nama Atribut akan aktif. Pemakai program dapat memilih atribut dari combo box tersebut. Setelah atribut dipilih maka combo box
Nama Kejadian akan aktif. Combo box ini akan menampilkan nama-nama kejadian sesuai atribut yang dipilih sebelumnya. Proses ini dilakukan terus
sampai nama atribut habis. Tombol Reset digunakan jika pengguna ingin mengulang pemilihan atribut yang sebelumnya telah dimasukkan.
Kemudian tekan tombol Hasil Prediksi untuk menampilkan hasil prediksi berdasarkan nama-nama atribut dan kejadian yang telah dimasukan lihat
gambar di bawah. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.28 Form Prediksi Sampel Setelah Proses Prediksi
Tekan tombol Prediksi untuk melakukan prediksi lagi dan tekan tombol Selesai untuk keluar dari program.
B. Analisa Hasil Program