BAB IV IMPLEMENTASI SISTEM
B. Jalannya Program
Tampilan form pada saat program dijalankan pertama kali adalah sebagai berikut :
Gambar 4.1 Form Awal
Form awal berisi informasi tentang nama program, nama pembuat program, waktu dan tanggal saat program dijalankan. Dalam Form Awal terdapat tombol OK yang berfungsi untuk menampilkan form selanjutnya, yaitu Form Tampil Data.
Berikut ini tampilan Form Tampil Data Training Set:
Gambar 4.2 Form Tampil Data Training Set
Pada form ini, pengguna dapat memilih data dari tabel yang ingin ditampilkan. Dalam radio group Tampil Data terdapat dua tombol pilihan untuk tabel yang ingin ditampilkan yaitu Training Set dan Test Set. Jika pengguna menekan tombol Training Set maka form akan menampilkan tabel
Pada form ini terdapat dua tombol, yaitu : a. Detail
Jika pengguna memilih untuk menampilkan tabel Training Set
maka tombol Detail berfungsi untuk menampilkan Form Detail
Training Set.
b. Unprunned Tree
Tombol ini berfungsi untuk menampilkan FormUnprunned Tree.
Jika pengguna menekan tombol Test Set pada radio group Tampil Data maka form akan menampilkan tabel Test Set dalam komponen dbGrid.
Berikut ini tampilannya :
Pada form Tampil Data Test Set ini terdapat dua tombol, yaitu : a. Detail
Jika pengguna memilih untuk menampilkan tabel Test Set maka tombol Detail berfungsi untuk menampilkan Form Detail Test Set.
b. Unprunned Tree
Tombol ini berfungsi untuk menampilkan FormUnprunned Tree. Berikut ini tampilan Form Detail Data Training Set jika pengguna menekan tombol Detail pada saat Form Tampil Data menampilkan tabel
Training Set:
Gambar 4.4 Form Detail Data Training Set
Form ini berfungsi untuk memberikan informasi kepada pengguna mengenai detail data training set dengan menampilkan tabel training set dan
jumlah record data. Dalam program ini, tabel training set terdiri dari 310
records.
Untuk mengetahui detail data dari setiap atribut kondisi training set, pengguna dapat memilih atribut yang terdapat dalam combo box Atribut Kondisi. Pengguna tidak dapat memilih Atribut Keputusan karena program telah mengatur default Atribut Keputusan adalah TARGET_B. Setelah memilih Atribut Kondisi, pengguna dapat menekan tombol Kejadian Atribut untuk mengetahui detail kejadian berdasarkan Atribut Kondisi. String grid
Detail Data akan menampilkan nama kejadian dan jumlah data kejadian tersebut berdasarkan atribut keputusan, yaitu TARGET_B = YES dan TARGET_B = NO.
Jika pengguna belum memilih Atribut Kondisi dan menekan tombol Kejadian Atribut maka akan program akan menampilkan pesan di bawah ini:
Gambar 4.5 Kotak Pesan 1
Jika pengguna menekan tombol Unprunned Tree maka program akan menampilkan form selanjutnya, yaitu FormUnprunned Tree.
Berikut ini tampilan Form Detail Data Test Set jika pengguna menekan tombol Detail pada saat Form Tampil Data menampilkan tabel
Gambar 4.6 Form Detail Data Test Set
Form Detail Data Test Set berfungsi untuk memberikan informasi kepada pengguna mengenai detail data test set dengan menampilkan tabel
test set dan jumlah record data. Dalam program ini, tabel test set terdiri dari 40 records.
Untuk mengetahui detail data dari setiap atribut kondisi test set, pengguna dapat memilih atribut yang terdapat dalam combo box Atribut Kondisi. Pengguna tidak dapat memilih Atribut Keputusan karena program telah mengatur default Atribut Keputusan adalah TARGET_B. Setelah memilih Atribut Kondisi, pengguna dapat menekan tombol Kejadian Atribut untuk mengetahui detail kejadian berdasarkan Atribut Kondisi. String grid
Detail Data akan menampilkan nama kejadian dan jumlah data kejadian tersebut berdasarkan atribut keputusan, yaitu TARGET_B = YES dan TARGET_B = NO.
Jika pengguna belum memilih Atribut Kondisi dan menekan tombol Kejadian Atribut maka akan program akan menampilkan pesan di bawah ini:
Gambar 4.7 Kotak Pesan 2
Jika pengguna menekan tombol Unprunned Tree pada Form Detail Data Training Set dan Form Detail Data Test Set maka program akan menampilkan FormUnprunned Tree.
Berikut ini tampilannya:
Gambar 4.8 Form Unprunned Tree
Pada saat pengguna menekan tombol Hitung Gain, program akan menghitung nilai gain semua atribut dengan memanggil procedure
cari_node, function HitungInfo, procedure hitung dan function
homogen yang tersimpan dalam Unit_Hitung_Gain. Procedure cari_node merupakan procedure pertama yang diproses dalam
Unit_Hitung_Gain. Dalam procedure ini dilakukan proses pencarian atribut yang menjadi simpul awal sekaligus atribut yang menjadi simpul internal untuk setiap percabangan pohon keputusan.
Berikut ini listing program procedure cari_node:
procedure TF_Gain.CariNode(T:tdataset; var Node:String); Var InfoAwal:real; JmlData,JmlYes,JmlNo:integer; Entropi:array[1..maxkej] of real; Info:array[1..maxkej] of real; S1,S2:array[1..maxkej] of integer; i,j,NA:integer; nKolom:integer; jmlKej:integer; sama:boolean;
DataKej:array [1..maxkej] of TrecKej; begin
JmlYes:=0; JmlNo:=0; JmlData:=0; T.First;
while not T.Eof do begin if (T['TARGET_B'])='YES' then Inc(JmlYes) else Inc(JmlNo); T.next; end; JmlData:=JmlYes+JmlNo; InfoAwal:=HitungInfo(JmlYes,JmlNo);
nKolom:= T.FieldCount-2; //hitung jumlah atribut for i:=1 to nKolom do //i utk looping atribut begin
for j:=1 to maxkej do begin
DataKej[j].nama:='';
DataKej[j].frek[1]:=0; // 1 utk Yes DataKej[j].frek[2]:=0; // 2 utk No end; //for j:=1 to maxkej
T.First;
if (T['TARGET_B'])='YES' then DataKej[1].frek[1]:=1 else
DataKej[1].frek[2]:=1;
jmlKej:=1; // counter jml kejadian T.Next;
while not T.Eof do begin
sama:=False;
for j:=1 to jmlKej do begin
if (DataKej[j].nama = T.Fields[i].AsString) then begin sama:=True; if (T['TARGET_B'])='YES' then begin inc(DataKej[j].frek[1]); end else begin inc(DataKej[j].frek[2]); end; break; end end;
if not sama then begin inc(jmlKej); DataKej[jmlKej].nama:=T.Fields[i].AsString; if (T['TARGET_B'])='YES' then DataKej[jmlkej].frek[1]:=1 else DataKej[jmlkej].frek[2]:=1; end; T.next; end; Entropi[i]:=0;
//hitung info utk tiap2 kejadian for j:=1 to jmlKej do begin S1[j]:=DataKej[j].frek[1]; S2[j]:=DataKej[j].frek[2]; Info[j]:=HitungInfo(S1[j],S2[j]); DataKej[j].info:=info[j]; StatKej[i].Kej[j]:=DataKej[j]; //hitung entropi utk tiap2 atribut
Entropi[i]:=Entropi[i]+((S1[j]+S2[j])/JmlData)*Info[j]; Gain[i]:=InfoAwal-Entropi[i];
end;//for j:=1 to jmlKej StatKej[i].jml:=jmlKej; end; //for i:=1 to nKolom do //Mencari Gain terbesar
GainMax:=0; NA:=0;
for i:=1 to nKolom do begin F_Detail_Gain.ComboBox1.Items.Add(T.Fields[i].DisplayName); if Gain[i]>GainMax then begin GainMax:=Gain[i];
NA:=i;//Var utk menampilkan Gain Max end;
end;
Node:= T.Fields.Fields[NA].DisplayName; end;
Data kejadian dari setiap atribut dideklarasikan dalam sebuah tipe data
record sebagai berikut :
Type TrecKej=record nama: string;
frek: array [1..2] of integer; info:real;
end;
Deklarasi tipe data record TrecKej terdiri dari beberapa field dengan tipe data yang berbeda-beda yaitu :
o Nama : variabel untuk menyimpan nama kejadian dengan tipe string.
o Frek : variabel array untuk menyimpan jumlah kejadian berdasarkan konsekuen TARGET_B = YES dan TARGET_B = NO.
o Info : variabel untuk menyimpan nilai info tiap-tiap kejadian dengan tipe real.
Berikut ini struktur tabel tipe data record TrecKej :
Tabel 4.1 Struktur Tabel Tipe Data Record TrecKej
Frek Nama
Untuk mendapatkan simpul awal dan simpul internal dilakukan perhitungan entropi, nilai rata-rata entropi dan gain untuk setiap atribut.
Proses perhitungan entropi berlangsung saat pemanggilan function HitungInfoberikut ini:
function HitungInfo(S1,S2:integer):Real; Var Jml:integer; Begin Jml:=S1+S2; If (S1=0) or (S2=0) then Result:=0 Else Result:=(-(S1/Jml)*log2(S1/Jml))-(S2/Jml)*Log2(S2/Jml)); End;
Pada saat procedure cari_node menemukan simpul awal maupun simpul internal, proses mining berlanjut ke procedure hitung dengan listing sebagai berikut: (listing program selengkapnya dapat dilihat pada file listing.pdf)
procedureTF_Gain.hitung(h1,h2,str1,cnode:string; kolom:string; dftKej:TarrKej; jmlKej:integer); var xxx,str2,jenis,cnode1:string; jmlYes,jmlNo:integer; i,j,jmlKej1:integer; q:TQuery; H1A,H2A:string; dftKej1:TarrKej; begin q:=Tquery.create(self); q.DatabaseName:='..\prog_mining\basisdata'; //proses mining... for j:=1 to jmlKej do begin q.sql.Clear;
xxx:='select ' +kolom+ ' from member where ' +cnode+ '=' + QuotedStr(DftKej[j])+ ' '+str1;
q.sql.Add(xxx); q.open;
q.Last; q.First;
if q.RecordCount > 0 then //hitung jml yes no pd dataset begin
if homogen(q,jenis) then begin
DataSource1.DataSet := q; h1a:=h1+','+cnode;
h2a:=h2+','+QuotedStr(DftKej[j]);
memo2.Lines.Add(cnode+'=' + QuotedStr(DftKej[j])+ ' '+str1+' --> Homogen '+jenis);//cnode:rootnode tingkat ke 2, dst
h1a:=copy(h1a,2,length(h1a)-1); h2a:=copy(h2a,2,length(h2a)-1); Q1.SQL.Clear;
Q1.SQL.Add('INSERT INTO ATURAN ('+h1a+',TARGET_B)'); Q1.SQL.Add('VALUES ('+h2a+',"'+jenis+'")');
//tampil jml aturan Yes&No pd form Pohon Q2.SQL.Clear;
Q2.sql.add('select count(*) as jumlah from aturan where TARGET_B="YES"'); Q2.Open; Q2.Last; Q2.First; JmlYes:=Q2.RecordCount; F_Pohon.Edit1.Text:=InttoStr(JmlYes); Q2.SQL.Clear;
Q2.sql.add('select count(*) as jumlah from aturan where TARGET_B="NO"'); Q2.Open; Q2.Last; Q2.First; JmlNo:=Q2.RecordCount; F_Pohon.Edit2.Text:=InttoStr(JmlNo); Q1.ExecSQL; end
else //jika TIDAK homogen kerjakan yg ini begin if q.FieldCount > 1 then begin cnode1:=''; carinode(q,cnode1);
//cari kolom tanpa cnode1
//baca nama kolom tanpa kolom yg sdh jadi root node kolom:='';
for i:=0 to q.FieldCount-1 do
if(q.FieldDefs[i].DisplayName <> cnode1) and (q.FieldDefs[i].DisplayName <> cnode) then
kolom:=kolom+','+q.FieldDefs[i].DisplayName;
//hitung jml kejadian & buat daftar kejadian Q1.SQL.Clear;
Q1.SQL.Add('Select '+cNode1 +' from member Group by ' +cNode1);
Q1.open; Q1.First;
jmlKej1:=Q1.RecordCount; for i:=1 to jmlKej1 do
begin dftKej1[i]:=Q1.Fields[0].AsString; Q1.Next; end; kolom:=copy(kolom,2,length(kolom)-1); str2:=str1+ ' and ' +cnode+ '=' + QuotedStr(dftKej[j]); h1:=h1+','+cnode; h2:=h2+','+QuotedStr(dftKej[j]); hitung(h1,h2,str2,cnode1,kolom,dftKej1,jmlKej1); end; end; end;
end; //for j:=1 to jmlKej do q.Destroy;
end;
Pada saat melakukan proses pembentukan pohon, program akan menampilkan form pesan yang dilengkapi dengan komponen animasi penghitung waktu sebagai berikut :
Gambar 4.9 Form PesanSaat Proses Mining Sedang Berlangsung
Setelah memperoleh simpul awal dan nilai gain, program akan menampilkan pesan di bawah ini :
Nama atribut dan nilai gain atribut yang menjadi simpul awal ditampilkan dalam komponen edit Node Awal dan komponen edit Nilai Gain. Pada program ini yang menjadi simpul awal adalah atribut RFA_2F dengan nilai gain sebesar 0.0283. Tabel aturan yang membentuk pohon keputusan dalam program ini disimpan dalam deklarasi variabel berikut :
Const maxkej=250;
T:array [1..maxkej] of TDataSet;
Variabel T merupakan variabel berbentuk tabel dinamis yang disusun dalam bentuk array dengan kapasitas maksimum sebanyak 250 elemen. Struktur array variabel T dapat berubah-ubah sesuai dengan banyaknya kejadian dari atribut simpul awal maupun simpul internal yang membentuk percabangan pohon. Struktur array yang berubah-ubah ini dikarenakan jumlah kejadian untuk setiap atribut berbeda-beda. Misalnya, diperoleh atribut RFA_2F sebagai simpul awal (tingkat pertama) dengan jumlah kejadian pada atribut RFA_2F sebanyak 4 kejadian yaitu 1, 2, 3 dan 4. Untuk tingkat pertama dari pohon keputusan terbentuk 4 percabangan sesuai kejadian atribut RFA_2F.
Variabel T akan membuat tabel baru yang bersifat temporer dengan menyimpan atribut tersisa (tanpa mengikutsertakan atribut RFA_2F). Atribut-atribut dalam tabel baru ini kemudian dihitung nilai entropi, nilai rata-rata entropi dan nilai gainnya untuk mendapatkan simpul internal selanjutnya (tingkat kedua). Begitu seterusnya proses yang terjadi dalam
deklarasi variabel T dimana percabangan pohon keputusan tidak sama pada setiap tingkatan simpul.
Selain variabel T, ada beberapa variabel yang juga merupakan variabel dinamis, yaitu:
• Entropi:array[1..maxkej] of real;
• Info:array[1..maxkej] of real;
• S1,S2:array[1..maxkej] of integer;
Pendeklarasian variabel dinamis ini dimaksudkan agar program memiliki kemampuan yang fleksibel untuk menyimpan data sehingga dapat menangani percabangan pohon keputusan.
Setelah pengguna menekan tombol OK pada form Kotak Pesan 3, program melanjutkan proses pembentukan pohon keputusan dengan membuat percabangan dari simpul awal berdasarkan banyaknya kejadian pada simpul awal (RFA_2F). Proses pembentukan pohon keputusan selanjutnya dilakukan dengan memanggil kembali procedure cari_node,
function HitungInfo, procedure hitung dan function homogen dalam
Unit_Hitung_Gain. Pada saat program mengeksekusi function homogen
dan menemukan sampel data yang homogen maka sampel data tersebut ditampilkan dalam komponen memo.
Berikut ini listing function homogen untuk mengecek sampel data
yang homogen: FunctionTF_Gain.homogen(t:tdataset;var jenis:string):boolean; var jmlya,jmltdk,jml:integer; begin jmlya:=0; jmltdk:=0;
jml:=0; T.First;
while not T.Eof do begin
if T['TARGET_B']='YES' then jmlya:=jmlya+1; if T['TARGET_B']='NO' then jmltdk:=jmltdk+1; jml:=jml+1;
T.Next;
end;//while not T.Eof do if jml=jmlya then
begin
homogen:=true; Jenis:='YES';
end; // if jml=jmlya then if jml=jmltdk then begin homogen:=true; jenis:='NO'; end;// if jml=jmltdk then end;
Pemanggilan procedure dan function dalam tombol Hitung Gain dilakukan secara rekursif sampai proses pembentukan pohon keputusan selesai.
Sampel data homogen yang terbentuk dari hasil perhitungan gain merupakan suatu aturan pembentuk pohon keputusan. Di bawah ini merupakan contoh sampel data homogen:
Tabel 4.2 Sampel Data Homogen
No Aturan Homogen
1 AGE='OLD' and RFA_2F='1' and TCODE='1002' YES
2 AGE='OLDER' and RFA_2F='1' and TCODE='1002' NO
Penjelasan : Dari aturan di atas dapat diketahui bahwa anggota organisasi yang memiliki profil:
1. AGE='OLD' dan RFA_2F='1' dan TCODE='1002'
2. AGE='OLDER' dan RFA_2F='1' dan TCODE='1002' tidak memberikan respon terhadap layanan NK (Target_B=NO). Aturan-aturan tersebut disimpan dalam tabel aturan.db melalui
statement dalam listing program berikut:
memo2.Lines.Add(cnode+'='+QuotedStr(DftKej[j])+''+str1+'-->Homogen'+jenis);
h1a:=copy(h1a,2,length(h1a)-1); h2a:=copy(h2a,2,length(h2a)-1); Q1.SQL.Clear;
Q1.SQL.Add('INSERT INTO ATURAN ('+h1a+',TARGET_B)'); Q1.SQL.Add('VALUES ('+h2a+',"'+jenis+'")');
Q1.ExecSQL;
Susunan dan jumlah field pada tabel aturan diharuskan sama dengan tabel training. Hal ini bertujuan untuk memudahkan program membaca isi tabel aturan pada saat pengujian aturan ke dalam tabel tes. Isi record dalam tabel aturan diurutkan sesuai dengan nomor aturan yang terbentuk. Misalnya, sampel data homogen yang pertama diperoleh adalah :
INCOME='HIGH' and RFA_2F='1' and TCODE='0' and WEALTH='0' and PEPSTRFL='B' and GENDER='F' --> Homogen YES
Berikut ini tampilan form setelah program memperoleh pohon keputusan:
Gambar 4.11 Tampilan Form Unprunned Tree Setelah Program Memperoleh Pohon Keputusan
Jika program telah menyelesaikan proses pembentukan pohon, program akan menampilkan sampel data homogen pada komponen memo
dan kotak pesan tentang lamanya proses berlangsung. Berikut ini tampilan kotak pesan tersebut :
Jika pengguna menekan tombol Detail Gain pada Form Unprunned Tree maka program akan menampilkan Form Detail Gain seperti di bawah ini:
Gambar 4.13 Form Detail Gain
Form ini berfungsi menampilkan nama kejadian, jumlah kejadian dengan TARGET_B = YES dan TARGET_B = NO serta jumlah info setiap atribut berdasarkan nama atribut yang dipilih oleh pengguna. Informasi di atas ditampilkan dalam string grid Detail Statistik Atribut. Informasi yang ditampilkan dalam string grid Detail Gain Atribut merupakan informasi nilai gain untuk keseluruhan atribut. Tombol Unprunned Rule pada Form
Jika pengguna menekan tombol Lihat Aturan pada Form Unprunned Tree maka program akan menampilkan Form Unprunned Rule seperti di bawah ini:
Gambar 4.14 Form Unprunned Rule
Pada form ini pengguna dapat melihat aturan yang terbentuk dari pohon keputusan dimana aturan-aturan yang ada ditampilkan dalam bentuk
string grid dengan contoh struktur sebagai berikut:
Tabel 4.3 Struktur String Grid Pada Form Unprunned Rule
No Anteseden Konsekuen
1
INCOME='HIGH' and RFA_2F='1' and TCODE='0' and WEALTH='0' and PEPSTRFL='B' and GENDER='F'
Jumlah aturan dengan Target_B=’YES’ dan Jumlah aturan dengan Target_B=’NO’ ditampilkan dalam group box Summary. Tombol ALL berfungsi menampilkan semua aturan pada string grid. Tombol Lihat Aturan YES berfungsi menampilkan aturan-aturan dengan konsekuen Target_B=’YES’ pada string grid. Berikut ini tampilan Form Unprunned Rule dengan konsekuen ‘YES’:
Gambar 4.15 Form Unprunned Rule dengan Konsekuen ‘YES’
Tombol Lihat Aturan NO berfungsi menampilkan aturan-aturan dengan konsekuen Target_B=’NO’ pada string grid.
Berikut ini tampilan FormUnprunned Rule dengan konsekuen ‘NO’:
Gambar 4.16 Form Unprunned Rule dengan Konsekuen ‘NO’
Jika pengguna menekan tombol Kamus Atribut pada FormUnprunned Rule maka program akan menampilkan Form Keterangan Anteseden seperti gambar di bawah ini :
Pada form di atas pengguna dapat melihat keterangan dari setiap atribut dan kejadian-kejadiannya yang menjadi anteseden dalam sebuah aturan. Tombol Lanjut pada FormUnprunned Rule dan tombol Lanjut pada
Form Keterangan Anteseden berfungsi untuk melanjutkan proses ID3 dengan menampilkan Form Uji Aturan seperti di bawah ini:
Gambar 4.18 Form Uji Aturan
Untuk melakukan pengujian aturan ke dalam tabel test set pengguna terlebih dahulu membuka tabel tes dengan menekan tombol Buka Tabel Tes.
Program akan membuka kotak dialog dan menampilkan pilihan tabel
test set yang ada seperti pada form di bawah ini :
Gambar 4.19 Form Uji Aturan Saat Pengguna Menekan Tombol Buka Tabel Tes
Tabel test set yang diuji diharuskan memenuhi syarat-syarat berikut, yaitu:
o Memiliki susunan field yang sama dengan tabel training set.
o Memiliki satu field tambahan setelah atribut keputusan (TARGET_B) untuk menyimpan hasil pengujian aturan. Dengan kata lain jumlah
field tabel test set adalah jumlah field tabel training set + 1. Pada program ini field tambahan tersebut diberi nama PREDIKSI.
Jika pengguna memilih tabel test set yang tidak memenuhi syarat-syarat di atas maka program akan menampilkan pesan-pesan di bawah ini :
Gambar 4.20 Kotak Pesan 5
Gambar 4.21 Kotak Pesan 6
Jika pengguna memilih tabel yang memenuhi syarat untuk menjadi tabel test set maka program akan menampilkan kotak pesan di bawah ini:
Gambar 4.22 Kotak Pesan 7
Selanjutnya, untuk melakukan pengujian aturan pengguna harus menekan tombol Uji Aturan. Selanjutnya, tombol Uji Aturan melakukan pengujian aturan dengan menjalankan procedureTF_Uji.
Sebelum melakukan pengujian, program akan menampilkan kotak pesan di bawah ini :
Gambar 4.23 Kotak Pesan 8
Dalam pengujian aturan, program tidak menggunakan uji statistik (uji Chi-Square) karena data-data yang ada tidak memenuhi syarat untuk melakukan uji Chi-Square. Pengujian aturan dilakukan dengan menyederhanakan aturan (Unprunned Rule) menggunakan default rule.
Default rule diperoleh dari konsekuen terbanyak dalam tabel aturan. Kemudian program akan menampilkan kotak pesan berikut:
Gambar 4.24 Kotak Pesan 9
Program akan melakukan pengujian aturan dan mengeliminasi aturan-aturan berdasarkan default rule = NO.
Pada saat melakukan proses pengujian aturan, program akan menampilkan form pesan yang dilengkapi dengan komponen animasi penghitung waktu sebagai berikut :
Gambar 4.25 Form PesanSaat Proses Mining Sedang Berlangsung Di bawah ini tampilan form setelah program memperoleh hasil pengujian aturan :
Gambar 4.26 Form Uji Aturan Setelah Memperoleh Hasil Uji Aturan
Hasil pengujian aturan memperoleh tingkat persentase keberhasilan sebesar 77.5000 % atau 77.5 %. Total aturan dengan prediksi benar sebanyak 31 aturan dan total aturan dengan prediksi salah sebanyak 9 aturan.
Jika pengguna menekan tombol Dialog pada form uji aturan maka program akan menampilkan Form Uji Sampel Data Pengguna seperti di bawah ini :
Gambar 4.27 Form Uji Sampel Data Pengguna
Form Uji Sampel Data Pengguna berfungsi untuk melakukan pengujian aturan berdasarkan input aturan dari pengguna. Sebelum melakukan pengujian aturan, pengguna terlebih dahulu memasukkan nama dan nilai atribut yang terdapat dalam menu pilihan combo box Nama Atribut dan combo box Nilai Atribut. Setelah nama dan nilai atribut dipilih,
pengguna harus menekan tombol Tambah Aturan untuk menampilkan pilihan atribut tersebut ke dalam string grid data.
Jika pengguna belum memilih nama atribut tetapi langsung memilih nilai atribut maka program akan menampilkan kotak pesan di bawah ini:
Gambar 4.28 Kotak Pesan 10
Setelah memasukkan aturan yang ingin diuji, pengguna diharuskan menekan tombol Uji Aturan untuk mengetahui hasil uji aturan. Sampel aturan yang dimasukkan pengguna kemudian dicek dengan aturan yang tersimpan dalam tabel aturan.
Jika ada aturan yang sesuai dengan sampel aturan pengguna maka nomor aturan dan nilai konsekuen Target_B ditampilkan. Dimisalkan, pengguna memasukkan sampel data sebagai berikut :
Tabel 4.4 Contoh Sampel Data Pada Form Uji Sampel Data Pengguna No Nama Atribut Nilai Atribut
1 TCODE 3
2 RFA_2F 1
Berdasarkan tabel aturan, contoh sampel data tersebut mengindikasikan bahwa anggota dengan profil TCODE ='3' dan RFA_2F ='1' akan memberikan respon terhadap layanan NK (Target_B = YES). Aturan yang sesuai dengan contoh profil tersebut adalah aturan nomor 58 pada tabel aturan (TCODE ='3' and RFA_2F ='1' --> Target_B = YES).
Berikut ini tampilan Form Uji Sampel Data Pengguna:
Gambar 4.29 Form Uji Sampel Data Pengguna Setelah Pengguna Memasukkan Sampel Aturan
Jika tidak ada aturan yang sesuai dengan sampel aturan pengguna maka nilai konsekuen TARGET_B tidak dapat diprediksikan.
Berikut ini tampilannya :
Gambar 4.30 Form Uji Sampel Data Pengguna Dengan Nilai Konsekuen TARGET_B Tidak Dapat Diprediksi
Hasil uji aturan berupa nomor aturan dan konsekuen (TARGET_B) ditampilkan dalam string grid Hasil Uji Aturan. Tombol Reset berfungsi bagi pengguna untuk memasukkan daftar aturan baru yang ingin diuji. Tombol Selesai berfungsi untuk mengakhiri program dengan menampilkan kotak pesan di bawah ini :
Main menu yang terdapat dalam setiap form berisi informasi berikut:
o Program, berisi sub menu
a. Tutup, yang berfungsi untuk menutup form yang sedang aktif.
o Bantuan, berisi sub menu : a. Tentang Program.
Jika pengguna memilih sub menu ini maka program akan menampilkan penjelasan tentang program dengan tampilan sebagai berikut:
Gambar 4.32 Form Tentang Program
Tombol Ke Awal berfungsi untuk menampilkan Form
Tampil Data (Training Set / Test Set). Tombol Keluar berfungsi untuk menutup form ini.
b. Tentang Pembuat Program
Jika pengguna memilih sub menu ini maka program akan menampilkan penjelasan tentang pembuat program dengan