Pada alogoritma ID3 goal atau tujuan adalah pohon keputusan yang berisi aturan dalam penentuan hasil keputusan.
Tahap-tahap yang harus dilakukan untuk mencapai tujuan:
- Menentukan tujuan, kriteria dan alternatif
Dalam ID3 yang menjadi tujuan adalah pohon keputusan yang berisi aturan untuk kelayakan jalan.
Kriteria untuk kelayakan jalan adalah
1. Fungsi jalan yang meliputi arteri primer, kolektor primer, kolektor sekunder, lokal primer, lokal sekunder dan lingkungan.
2. Pengaju yang meliputi perorangan, masyarakat dan dewan.
3. Kondisi jalan yang meliputi baik, rusak ringan dan rusak berat.
- Menentukan patokan kriteria
Patokan yang ditentukan pada kriteria didapat melalui hasil wawancara yang dilakukan di Bappeda Salatiga.
Penilaian kriteria kelayakan jalan yang didapatkan dari hasil wawancara yaitu dapat dilihat pada Tabel 3.3.
Tabel 3.3. Penilaian Kelayakan Jalan
Atribut Value Ket
Fungsi Jalan Arteri Primer Jenis Kolektor Primer Jalan Kolektor Sekunder
Lokal Primer Lokal Sekunder
Lingkungan
Pengaju Perorangan Jenis
Masyarakat Pengaju
Dewan
Kondisi Jalan Baik Tingkat Rusak Ringan Kerusakan
Rusak Berat
Dalam penentuan kondisi jalan digunakan penilaian terglobal (berdasarkan nama jalan) dengan disertakan komentar untuk penjelasan persepsi, posisi dan tingkat kerusakan bagi tiap pengajuan jalan.
- Mencari sample data
Sample data diperoleh dari hasil penelaahan wawancara yang dilakukan di Bappeda Salatiga.
- Perhitungan entropy
Perhitungan nilai entropy dihitung dengan menggunakan rumus pada Persamaan 2.1.
- Perhitungan information gain untuk tiap kriteria
Perhitungan nilai information gain digunakan untuk menentukan kriteria terbaik. Perhitungan nilai information gain dihitung dengan menggunakan rumus pada Persamaan 2.2.
- Pembentukan tabel baru
Tahap perhitungan ID3 setelah memperoleh kriteria terbaik adalah pembuatan tabel baru. Tabel baru tersebut dibuat berdasarkan kriteria terbaik dari perhitungan nilai information gain. Apabila data tabel sample baru telah dibuat proses berikutnya melakukan perhitungan nilai entropy dan information gain serta membuat tabel sample baru. Proses ini dilakukan
sampai kriteria habis atau data tabel sample telah
diklasifikasikan.
- Pembuatan pohon keputusan
Tahap akhir dalam perhitungan ID3 adalah membuat pohon keputusan yang nantinya akan digunakan sebagai acuan dalam pembentukan aturan dalam penentuan kelayakan jalan.
3.6. Perhitungan ID3
Analisa dilakukan dengan data yang diperoleh dari hasil wawancara dengan Bappeda Salatiga. Pembahasan dilakukan dengan menggunakan 15 data sample dari pengajuan perbaikan jalan.
Tabel 3.4 merupakan 15 data sample kelayakan jalan yang akan dijadikan patokan dalam penentuan aturan kelayakan jalan.
Tabel 3.4. Tabel Data Sample Kelayakan Jalan
S Fungsi Jalan Pengaju Kondisi Jalan Hasil S1 Arteri Primer Masyarakat Baik True
S2 Kolektor Primer Masyarakat Rusak Ringan True
S3 Lokal Primer Perorangan Rusak Ringan False
S4 Kolektor Sekunder Dewan Rusak Ringan True
S5 Lokal Sekunder Perorangan Rusak Berat False
S6 Kolektor Sekunder Masyarakat Rusak Berat True
S7 Arteri Primer Perorangan Rusak Ringan False
S8 Lokal Sekunder Masyarakat Rusak Ringan False
S9 Kolektor Primer Dewan Rusak Ringan True
S10 Lokal Primer Masyarakat Rusak Ringan True
S11 Lingkungan Masyarakat Rusak Ringan False
S12 Lingkungan Masyarakat Rusak Berat True
S13 Lingkungan Masyarakat Baik False
S14 Lokal Sekunder Dewan Rusak Ringan True
Perhitungan Entropy S.
Entropy(S)[8+, 7-] = – (8/15) log2(8/15) – (7/15) log2 (7/15)
= – (0,533)(log (0,533)/log 2) – (0,466)((log 0,466)/log 2)
= – (0,533)(–0,906) – (0,466)(– 1,099) = 0,483 + 0,512
= 0,995
Perhitungan information gain untuk atribut fungsi jalan.
Value(Fungsi Jalan)=Arteri Primer, Kolektor Primer, Kolektor Sekunder, Lokal Primer, Lokal Sekunder, Lingkungan
SArteri Primer = [1+, 1-] Entropy(SArteri Primer)=1
SKolektor Primer = [2+, 0-] Entropy(SKolektor Primer)=0
SKolektor Sekunder = [2+, 0-] Entropy(SKolektor Sekunder)=0
SLokal Primer = [1+, 1-] Entropy(SLokal Primer)=1
SLokal Sekunder = [1+, 2-]
Entropy(SLokal Sekunder)= -(1/3)log2(1/3)-(2/3)log2(2/3)
=-0,33(log(0,33)/log2)-(0,667)(log(0,667)/log2) = -0,33(-1,58)-0,667(0,58) = 0,521+0,386 = 0,907 SLingkungan = [1+, 3-]
Entropy(SLokal Sekunder)=-(1/4)log2(1/4)-(3/4)log2(3/4)
=0,5 + 0,311 = 0,811
Gain(S, Fungsi Jalan) = Entropy(S) – (2/15)Entropy(SArteri
Primer) – (2/15)Entropy(SKolektor Primer) –
(2/15)Entropy(SKolektor Sekunder) –
(2/15)Entropy(SLokal Primer) -
(3/15)Entropy(SLokal Sekunder) -
(4/15)Entropy(SLingkungan) = 0,995 – (0,133)1 – (0,133)0 – (0,133)0 – (0,133)1–(0,2)0,907 – (0,266)0,811 = 0,995 – 0,133 – 0 – 0 – 0,133 – 0,181 – 0,216 =0,332
Perhitungan information gain untuk atribut pengaju. Value(Pengaju) = Perorangan, Masyarakat, Dewan
SPerorangan = [0+, 4-] Entropy(SPerorangan)=0
SMasyarakat = [5+, 3-]
Entropy(SMasyarakat)=-(5/8)log2(5/8)-(3/8)log2(3/8)
=-(0,625(log(5/8)/log2) –
(0,375)(log(5/8)/log2)
=-(0,625)(-0,678) – (0,375)(-1,415) = 0,423 + 0,531
=0,953
Gain(S, Pengaju) = Entropy(S) – (4/15)Entropy(SPerorangan) –
(8/15)Entropy(SMasyarakat) –
(3/15)Entropy(SDewan)
= 0,995 – (0,266)0 – (0,533)0,953 – (0,2)0 = 0,487
Perhitungan information gain untuk atribut kondisi jalan. Value(Kondisi jalan) = Baik, Rusak Ringan, Rusak Berat
SBaik = [1+, 1-] Entropy(SBaik)=1
SRusak Ringan = [5+, 4-]
Entropy(SRusak Ringan)= -(5/9)log2(5/9) –(4/9)log2(4/9)
=-(0,556)(log(5/9)/log2)-(0,444)(log(4/9)/log2)
= -(0,556)(-0,848)-(0,444)(-1,17) = 0,471 + 0,519
= 0,990
SRusak Berat = [2+, 2-] Entropy(SRusak Berat)=1
Gain(S, Kondisi jalan) = Entropy(S) – (2/15)Entropy(SBaik) –
(9/15)Entropy(SRusak Ringan) –
(4/15)Entropy(SRusak Berat)
= 0,995 – (0,133)1 – (0,6)0,990 – (0,266)1
= 0,002
Berdasarkan hasil perhitungan information gain, tampak bahwa atribut pengaju akan menyediakan prediksi terbaik untuk target hasil.
Pengaju
True Fungsi Jalan False
Dewan Masyarakat Perorangan S3, S5, S7, S15 [0+, 4-] S1, S2, S6, S8, S10, S11, S12, S13 [5+, 3-] S4, S9, S14 [3+, 0-]
Gambar 3.12. Pohon Keputusan Tahap Pertama
Gambar 3.12 menjelaskan bahwa kriteria pengaju menjadi prioritas utama dalam menentukan hasil keputusan kelayakan jalan. Melalui Gambar 3.12 juga diketahui jika pengaju adalah perorangan maka hasilnya jalan tidak akan diperbaiki. Jika pengaju adalah masyarakat maka akan dilanjutkan perhitungan ID3 lebih dalam lagi untuk mencari kriteria yang menjadi penilaian. Apabila pengaju adalah dewan maka hasilnya jalan akan diperbaiki.
Tabel 3.5 menunjukan data sample kelayakan jalan dengan kriteria pengaju yang bernilai masyarakat. Data yang akan digunakan yaitu S1, S2, S6, S8, S10, S11, S12, S13.
Tabel 3.5. Tabel Data Sample Kelayakan Jalan Kriteria Pengaju Nilai
Masyarakat
S Fungsi Jalan Pengaju Kondisi Jalan Hasil S1 Arteri Primer Masyarakat Baik True
S2 Kolektor Primer Masyarakat Rusak Ringan True
S6 Kolektor Sekunder Masyarakat Rusak Berat True
S Fungsi Jalan Pengaju Kondisi Jalan Hasil S10 Lokal Primer Masyarakat Rusak Ringan True
S11 Lingkungan Masyarakat Rusak Ringan False
S12 Lingkungan Masyarakat Rusak Berat True
S13 Lingkungan Masyarakat Baik False
Perhitungan information gain untuk atribut fungsi jalan.
SArteri Primer = [1+, 0-] Entropy(SArteri Primer)=0
SKolektor Primer = [1+, 0-] Entropy(SKolektor Primer)=0
SKolektor Sekunder = [1+, 0-] Entropy(SKolektor Sekunder)=0
SLokal Sekunder = [0+, 1-] Entropy(SLokal Sekunder)=0
SLokal Primer = [1+, 0-] Entropy(SLokal Primer)=0
SLingkungan = [1+, 2-] Entropy(Slingkungan)=0,907
Gain(SMasyarakat, Fungsi Jalan) = Entropy(SMasyarakat) –
(1/8)Entropy(SArteri Primer) – (1/8)Entropy(SKolektor Primer) – (1/8)Entropy(SKolektor Sekunder) – (1/8)Entropy(SLokal Sekunder) – (1/8)Entropy(SLokal Primer) –
(3/8)Entropy(SLingkungan)
= 0,953 – (0,125)0 – (0,125)0 – (0,125)0 – (0,125)0 – (0,125)0 – (0,375)0,907
= 0,613
Perhitungan information gain untuk atribut kondisi jalan.
SRusak Ringan =[2+, 2-] Entropy(SRusak Ringan)=1
SRusak Berat =[2+, 0-] Entropy(SRusak Berat)=0
Gain(SMasyarakat, Kondisi Jalan) = Entropy(SMasyarakat) –
(2/8)Entropy(SBaik) –
(4/8)Entropy(SRusak Ringan) –
(2/8)Entropy(SRusak Berat)
= 0,953 – (0,25)1 – (0,5)1 – (0,25)0
= 0,203
Berdasarkan hasil perhitungan information gain, tampak bahwa atribut fungsi jalan akan menyediakan prediksi terbaik untuk target hasil setelah kriteria pengaju.
Pengaju
True Fungsi Jalan False
Dewan
Masyarakat
Perorangan
True True True False True ?
Arteri Primer
Kolektor Primer
Kolektor SekunderLokal SekunderLokal Primer Lingkungan S1 [1+, 0-] S2 [1+, 0-] S6 [1+, 0-] S8 [0+, 1-] S10 [1+, 0-] S11, S12, S13 [1+, 2-]
Gambar 3.13. Pohon Keputusan Tahap Kedua
Gambar 3.13 menjelaskan bahwa kriteria pengaju menjadi prioritas utama dalam menentukan hasil keputusan kelayakan jalan. Melalui Gambar 3.13 juga diketahui jika pengaju adalah masyarakat maka akan melihat dari hasil kriteria fungsi jalan. Jika nilai pengaju adalah masyarakat dan nilai fungsi jalan adalah
lingkungan maka belum dapat ditentukan hasilnya, harus dilanjutkan perhitungan lagi pada tahap ketiga.
Tabel 3.6 menunjukan data sample kelayakan jalan dengan kriteria pengaju yang bernilai masyarakat dan fungsi jalan yang bernilai lingkungan. Data yang akan digunakan yaitu S11, S12, S13.
Tabel 3.6. Tabel Data Sample Kelayakan Jalan Kriteria Pengaju Nilai
Masyarakat dan Fungsi Jalan Nilai Lingkungan
S Fungsi Jalan Pengaju Kondisi Jalan Hasil S11 Lingkungan Masyarakat Rusak Ringan False
S12 Lingkungan Masyarakat Rusak Berat True
S13 Lingkungan Masyarakat Baik False
Perhitungan information gain untuk atribut kondisi jalan
SBaik =[0+, 1-] Entropy(SBaik)=0
SRusak Ringan =[0+, 1-] Entropy(SRusak Ringan)=0
SRusak Berat =[1+, 0-] Entropy(SRusak Berat)=0
Gain(SLingkungan, Kondisi Jalan) = Entropy(SLingkungan) –
(1/3)Entropy(SBaik) –
(1/3)Entropy(SRusak Ringan) –
(1/3)Entropy(SRusak Berat)
= 0,918 – (0,333)0 – (0,333)0 – (0,333)0
Berdasarkan hasil perhitungan information gain dan ternyata sisa kriteria hanyalah satu, maka yang menjadi kriteria terbaik pada tahap ketiga ini adalah kondisi jalan.
Pengaju
True Fungsi Jalan False
Dewan
Masyarakat Perorangan
True True True False True Kondisi Jalan
Arteri Primer Kolektor Primer Kolektor Sekunder Lokal Sekunder Lokal Primer Lingkungan S11 [0+, 1-] True False False Rusak Ringan Rusak Berat Baik S12 [1+, 0-] S13 [0+, 1-]
Gambar 3.14. Pohon Keputusan Tahap Ketiga
Gambar 3.14 merupakan hasil pohon keputusan dari data sample kelayakan jalan. Dari pohon keputusan tersebut terlihat kriteria pengaju yang menjadi prioritas utama, dilanjutkan dengan fungsi utama dan kondisi jalan. Maka dapat dibuat aturan sebagai berikut :
IF pengaju = dewan THEN hasil true
IF pengaju = masyarakat AND fungsi jalan = arteri primer THEN hasil true
IF pengaju = masyarakat AND fungsi jalan = kolektor primer THEN hasil true
IF pengaju = masyarakat AND fungsi jalan = kolektor sekunder THEN hasil true
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)
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. ID3(Learning 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. Entropy(rootNode.subset) first
9. If Entropy(rootNode.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 Entropy(rootNode.subset)!=0, then
16. compute information gain for each
17. attribute left(have not been used in
18. splitting), find attribute A with Maximum(Gain(S,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. ID3(S,A,V) recursively until reach
23. node that has entropy=0 or reach
24. leaf node.
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 ID3(S, A, V) secara rekursif sampai mencapai simpul yang memiliki entropy 0 atau mencapai simpul daun.