56
IF pengaju = masyarakat AND fungsi jalan = lokal sekunder THEN hasil false
IF pengaju = masyarakat AND fungsi jalan = lokal primer THEN hasil true
IF pengaju = masyarakat AND fungsi jalan = lingkungan AND kondisi jalan = rusak ringan THEN hasil false
IF pengaju = masyarakat AND fungsi jalan = lingkungan AND kondisi jalan = rusak berat THEN hasil true
IF pengaju = masyarakat AND fungsi jalan = lingkungan AND kondisi jalan = baik THEN hasil false
IF pengaju = perorangan THEN hasil true
3.7. Algoritma ID3
Dalam penerapan metode ID3 terhadap suatu aplikasi, diperlukan algoritma agar dapat diterapkan ke bahasa
pemrograman. Algoritma dalam metode ID3 adalah sebagai berikut: Peng, 2009
57
Kode Program 3.1. Algoritma ID3
Kode program 3.1 menunjukkan algoritma ID3 agar alur kode program untuk implementasi ID3 dapat berjalan
sebagaimana mestinya. Penjelasan untuk algoritma ID3 adalah sebagai berikut. Baris 1 dan 2 menunjukkan kelas yang dibuat
dengan nama ID3 dengan 3 parameter yaitu sample sebagai S, Kumpulan atribut sebagai A, dan nilai dari tiap atribut sebagai V
dengan nilai kembalian adalah pohon keputusan. Baris 4 sampai 6, muat seluruh data sample S dan buat pohon keputusan
rootNode dan data sample S dimasukkan ke rootNode sebagai subsetnya. Baris 7 sampai 25 dilakukan dalam looping. Baris 8
lakukan hitung entropy untuk rootNode.subset. Baris 9 sampai 13 jika entropy dari rootNode.subset adalah 0 maka kembalikan
pohon keputusan dengan simpul sesuai dengan nilai keputusan.
1. ID3Learning Sets S, Attributes Sets A, Attributesvalues V
2. Return Decision Tree.
3. Begin
4. Load learning sets first, create decision tree root
5. node rootNode, add learning set S into root node
6. as its subset.
7. For rootNode, we compute
8. EntropyrootNode.subset first
9. If EntropyrootNode.subset==0, then
10. rootNode.subset consists of records
11. all with the same value for the
12. categorical attribute, return a leaf
13. node with decision
14. attribute:attribute value;
15. If EntropyrootNode.subset=0, then
16. compute information gain for each
17. attribute lefthave not been used in
18. splitting, find attribute A with MaximumGainS,A.
19. Create child nodes of this rootNode and add to
20. rootNode in the decision tree.
21. For each child of the rootNode, apply
22. ID3S,A,V recursively until reach
23. node that has entropy=0 or reach
24. leaf node.
25. End ID3.
58
Baris 15 sampai 18 jika entropy dari rootNode.subset tidak sama dengan 0 maka hitung nilai Gain tiap atribut yang tersisa dan cari
atribut dengan nilai Gain terbesar. Baris 19 sampai 20 buat childnode untuk rootNode dan tambahkan rootNode pada pohon
keputusan. Baris 21 sampai 23 untuk setiap anak rootNode, lakukan ID3S, A, V secara rekursif sampai mencapai simpul
yang memiliki entropy 0 atau mencapai simpul daun.
3.8. Perancangan Aplikasi