BAB IV PERANCANGAN (Modelling Phase)
4.1
Desain Sistem yang Akan Dibangun Berdasarkan analisis yang telah dilakukan, maka sistem yang dibangun
diharapkan dapat memprediksi apakah pasien termasuk penderita penyakit liver atau bukan dengan membangun perangkat lunak data mining dengan algoritma C4.5 pada data pasien liver. Sistem berupa simulasi yang dapat menyimpan hasil penghitungan entropy dan gain serta hasil pembentukan pohon keputusan yang telah dilakukan.
4.2
Kebutuhan Fungsional Kebutuhan fungsional merupakan pernyataan layanan sistem yang harus
disediakan, sehingga hasil dari implementasi algoritma C4.5 pada klasifikasi data pasien liver ini harus dapat melakukan fungsi-fungsi sebagai berikut : 1) Fungsi Latih Data a) Fungsi Pengklasifikasian Atribut Fungsi ini untuk mengklasifikasi atribut-atribut dengan pilihan menggunakan pengklasifikasian berdasarkan referensi kesehatan atau menggunakan rumus GINI b) Fungsi Penghitungan Entropy dan Gain Fungsi ini untuk menghitung entropy dan gain yang akan menemukan simpul-simpul untuk membentuk pohon keputusan. 2) Fungsi Uji Data Fungsi ini meliputi dua pengujian data yaitu pengujian dengan memasukkan data masukan dan pengujian data dengan membandingkan hasil keputusan pasien liver antara data uji dengan data master. 3) Fungsi Menu Utama Fungsi ini untuk melihat keseluruhan menu yang ada pada sistem agar mempermudah pengguna dalam memilih opsi. 4) Fungsi Tampilan
IV-1
IV-2
Fungsi ini untuk menampilkan pohon keputusan dan daftar aturan yang terbentuk, serta menampilkan hasil penghitungan entropy dan gain.
4.3
Kebutuhan Nonfungsional Kebutuhan nonfungsional merupakan batasan layanan atau fungsi yang
ditawarkan sistem. Adapun kebutuhan fungsional dari hasil implementasi algoritma C4.5 pada data pasien liver sebagai berikut : 1) Sistem ini dirancang dengan tampilan yang sederhana sehingga pengguna mudah memahami maksud tampilan atau perintah yang diminta oleh sistem. 2) Sistem dapat melakukan proses latih data berkali-kali namun tidak dapat melakukannya secara bersamaan apabila input sample atau persentase datanya lebih dari satu kasus. 3) Sistem tidak menyediakan fungsi untuk memanipulasi data karena ada penghitungan yang sudah ditetapkan.
4.4
Pemodelan Sistem Menggunakan Data Flow Diagram (DFD)
4.4.1
Data Context Diagram (DCD) Data Context Diagram dibawah ini menjelaskan mengenai garis besar
proses yang dijalankan oleh sistem. DCD ini terdiri atas satu buah proses secara garis besar yang dinamakan Implementasi Algoritma C4.5 pada Data Pasien Liver serta satu buah external entity yaitu pengguna. DCD digambarkan pada Gambar 4.1 berikut :
IV-3
pesanLebihDari100 hasilUjiDataMaster, hasilBandingUji peringatanDataKosong peringatanHarusAngka pesanPraProsesSelesai hasilUjiDataMaster, persentaseAkurasi, persentaseKesalahan hasilUjiDataMasukan hasilPenghitungan daftarAturan pohonKeputusan Pesan_peringatan peringatanHapusData, pesanProsesDataSelesai
Pengguna
persentaseData opsiPraProsesRefKes opsiPraProsesGini opsiProsesData opsiTampilPohonKeputusan opsiTampilAturan
Implementasi Algoritma C4.5 pada Data Pasien Liver
opsiTampilHitung opsiUjiDataMasukan, dataMasukan opsiUjiDataMasterAkurasi opsiHasil
Gambar 4.1 Data Context Diagram (DCD)
4.4.2
Data Flow Diagram (DFD) Level 1 Proses utama yang terjadi pada DFD Level 1 adalah Melakukan Latih
Data, Menampilkan Pohon Keputusan, Menampilkan Aturan yang Terbentuk, Menampilkan Hasil Penghitungan, Pengujian dengan Data Masukan, Pengujian dengan Data Master dan Penghitungan Akurasi. Selain itu terdapat satu buah external entity, yaitu pengguna. Proses-proses tersebut melibatkan beberapa datastore, yaitu tbLiver, datastore Praproses (tbPra dan tbPraGini), datastore Pengujian (tbUji, tbhasilUji, tbBandingUji), datastore Atribut (tbAtribut, tbKlasAtribut) , datastore Pohon Keputusan (tbNodePohon, tbKlasPohonDetail, tbAturan), datastore Penghitungan (tbHitung, tbEntropi, tbGain). DFD level 1 digambarkan pada Gambar 4.2.
IV-4
peringatanHapusData, pesanProsesDataSelesai
Pengguna
persentaseData, opsiPraProsesGini, opsiPraProsesRefKes, opsiProsesData tbLiver
opsiTampilPohonKeputusan
1.0 Melakukan Latih Data
recordDataLatih
PRA PROSES (tbPra, tbPraGini)
recordDataUji hasilLatihData
Pesan_peringatan, pohonKeputusan
opsiTampilAturan
opsiTampilHitung
Pesan_peringatan, daftarAturan
Pesan_peringatan, hasilPenghitungan
opsiUjiDataMasukan, inputDataMasukan
Pesan_perignatan, hasilUjiDataMasukan
opsiUjiDataMasterAkurasi
Pesan_peringatan, hasilUjiDataMaster, persentaseAkurasi, persentaseKesalahan
recordDataLiver
hasilLatihData hasilLatihData
ATRIBUT (tbAtribut, tbKlasAtribut)
dataAtribut
2.0 Menampilkan Pohon Keputusan
dataAtribut dataPohonKeputusan POHON KEPUTUSAN (tbNodePohon, tbKlasPohonDetail, tbAturan)
3.0 Menampilkan Aturan yang Terbentuk
4.0 Menampilkan Hasil Perhitungan
PENGUJIAN (tbUji, tbHasilUji, tbBandingUji
dataDaftarAturan dataAtribut
PENGHITUNGAN (tbHitung, tbEntropi, tbGain)
hasilPenghitungan
5.0 Pengujian dengan Data Masukan
kdNode, kdAnakNode dataAtribut, dataKlasAtribut
6.0 Pengujian dengan Data Master dan Penghitungan Akurasi
hasilKeputusanPohon recordDataUji
Gambar 4.2 Data Flow Diagram (DFD) Level 1
4.4.3
Data Flow Diagram (DFD) Level 2 1) DFD Level 2 Proses 1.0 Melakukan Latih Data Proses latih data dikembangkan menjadi beberapa proses yang bisa dilakukan, yaitu Praproses Data dengan Rumus GINI, Pra proses Data Berdasarkan Referensi Kesehatan, Menghitung Entropy dan Gain, Membentuk Pohon Keputusan. External entity yang terlibat adalah pengguna. Datastore yang terlibat yaitu tbLiver, tbPra, tbPraGini, tbAtribut,
tbKlasAtribut,
tbUji,
tbHitung,
tbEntropi,
tbGain,
tbNodePohon, tbKlasPohonDetail, dan tbAturan. DFD untuk proses tersebut digambarkan pada Gambar 4.3.
IV-5
opsiProsesData peringatanHapusData, pesanProsesDataSelesai
pesanLebihDari100
peringatanHapusData
pesanPraProsesSelesai
persentaseData, opsiPraProsesRefKes
peringatanHapusData
pesanLebihDari100
pesanPraProsesSelesai
Pengguna
persentaseData, opsiPraProsesGini
tbPraGini
recordDataLatih 1.1 Pra Proses Data dengan Rumus Gini
recordDataLatih
recordDataLiver 1.3 Menghitung Entropi dan Gain
recordDataUji Ke Proses 6.0
gain kdNode, jmlKasus,jmlYes,jmlNo,entropi
tbLiver
recordDataLiver 1.2 Pra Proses Data Berdasarkan Referensi Kesehatan
recordDataLatih
tbPra
dataAtribut
tbAtribut
recordDataLatih
kdAtribut
dataAtribut
dataKlasAtribut
dataPenghitungan
tbUji recordDataUji
tbHitung
tbEntropi
kdKlasAtribut
kdAtribut nmAtribut tbKlasAtribut
tbGain dataKlasAtribut
kdKlasAtribut, nmKlasAtribut
kdNode, level, kdAtribut
kdNode, level nmAtribut, nmKlasAtribut
1.4 Membentuk Pohon Keputusan
hasilKelanjutanNode, hasilKeputusanPohon
hasilKelanjutanNode, level tbNodePohon tbAturan kdNode, kdKlasAtribut
tbKlasPohonDetail Ke Proses 3.0 Ke Proses 2.0 Ke Proses 5.0 Ke Proses 2.0
Ke Proses 4.0 Ke Proses 4.0 Ke Proses 4.0
Ke Proses 6.0
Gambar 4.3 DFD Level 2 Proses 1.0 Latih Data
2) DFD Level 2 Proses 5.0 Pengujian dengan Data Masukan Proses pengujian implementasi algoritma C4.5 pada klasifikasi data pasien liver dengan data masukan dikembangkan menjadi beberapa proses yang bisa dilakukan, yaitu Memasukkan Data Uji Masukan dan Menentukan Hasil Pasien Liver. External entity yang terlibat adalah pengguna. Datastore yang terlibat yaitu tbAtribut, tbKlasAtribut, dan tbKlasPohonDetail. DFD untuk proses tersebut digambarkan pada Gambar 4.4.
IV-6
opsiUjiDataMasukan, dataMasukan
peringatanHarusAngka opsiHasil
peringatanDataKosong, hasilUjiDataMasukan
Pengguna
5.1 Memasukkan Data Uji Masukan
Age, gender, total_bili, direct_bili, alkphos, sgpt, sgot, total_protein, albumin
5.2 Menentukan Hasil Pasien Liver
dataAtribut
tbAtribut
dataKlasAtribut
tbKlasAtribut
kdNode, kdAnakNode, kdKlasAtribut
tbKlasPohonDetail
Gambar 4.4 DFD Level 2 Proses 5.0 Pengujian dengan Data Masukan
3) DFD Level 2 Proses 6.0 Pengujian Data Master dan Akurasi Proses pengujian implementasi dengan data master dan penghitungan akurasi dikembangkan menjadi beberapa proses yang bisa dilakukan, yaitu Pengujian Data Master dan Menghitung Persentase Akurasi. External entity yang terlibat adalah pengguna. Datastore yang terlibat yaitu tbKlasPohonDetail, tbUji, tbHasilUji, tbBandingUji. DFD untuk proses tersebutdigambarkan pada Gambar 4.5.
IV-7
hasilKeputusanPohon
Pesan_peringatan hasilUjiDataMaster, hasilBandingUji
opsiUjiDataMasterAkurasi
tbKlasPohonDetail
6.2 Menghitung Persentase Akurasi
recordDataUji
recordDataUji, hasilKeputusanPohon
6.1 Pengujian Data Master
recordDataUji, pasienLiver, hasilKeputusanPohon
persentaseAkurasi, persentaseKesalahan
Pengguna
tbUji
tbHasilUji
tbBandingUji hasilKeputusanPohon, pasienLiver, ketKesesuaian
Gambar 4.5 DFD Level 2 Proses 6.0 Pengujian Data Master dan Akurasi
4.5
Process Spesification (PSPEC) PSPEC merupakan suatu pendeskripsian tentang apa yang terjadi pada
proses level paling bawah pada suatu diagram aliran data . Berikut adalah PSPEC dari implementasi algoritma C4.5 pada data pasien liver. 1) Proses 1.1 Praproses Menggunakan Rumus GINI Input
persentaseData, opsiPraProsesGini
Output
pesanLebihDari100, recordDataLiver, peringatanHapusData
Datastore
tbLiver, tbPraGini, tbUji, tbAtribut, tbKlasAtribut
Algoritma
1. Pengguna memasukan persentaseData 2. Pengguna memilih opsiPraProsesGini untuk melakukan pra proses data dengan rumus GINI 3. Sistem mengambil record data pasien liver dari tbLiver sejumlah (persentaseData*583)/100 4. Sistem menyimpan recordDataLatih di tbPraGini 5. Sistem menghitung GINI untuk mencari split atribut
IV-8
a) Sistem mengurutkan nilai-nilai setiap atribut mulai dari nilai terkecil sampai nilai terbesar b) Sistem menghitung rata-rata dari setiap nilai yang telah diurutkan c) Sistem menghitung GINI untuk semua nilai rata-rata d) Nilai GINI paling kecil menjadi split untuk atribut tersebut 6. Sistem memunculkan record data pasien liver yang telah di praproses
2) Proses 1.2 Praproses Berdasarkan Referensi Kesehatan Input
persentaseData, opsiPraProsesRefKes
Output
pesanLebihDari100, recordDataLiver, peringatanHapusData
Datastore
tbLiver, tbPra, tbUji, tbAtribut, tbKlasAtribut
Algoritma
1. Pengguna memasukan persentaseData 2. Pengguna memilih opsiPraProsesRefKes untuk melakukan praproses data berdasarkan referensi kesehatan 3. Sistem mengambil record data pasien liver dari tbLiver sejumlah (persentaseData*583)/100 4. Sistem menyimpan recordDataLatih di tbPra 5. Sistem melakukan kalsifikasi setiap atribut berdasarkan referensi kesehatan yang menjadi acuan. 6. Sistem memunculkan record data pasien liver yang telah di praproses
3) Proses 1.3 Proses Penghitungan Entropy dan Gain Input
opsiProsesData
Output
peringatanHapusData, pesanProsesDataSelesai, dataPenghitungan, entropi, gain
Datastore
tbPra, tbPraGini, tbAtribut, tbKlasAtribut, tbHitung, tbEntropi,
IV-9
tbGain, tbNodePohon, tbKlasPohonDetail Algoritma
1. Pengguna memilih opsiProsesData 2. Menghitung jmlKasus, jmlYes, jmlNo pada recordDataLatih yang disimpan pada tbPra atau tbPraGini 3. Menghitung entropi untuk baris penentu total Entropi (total) = (− jmlNo / jmlKasus * log 2 ( jmlNo / jmlKasus )) + (− jmlYes / jmlKasus * log 2 ( jmlYes / jmlKasus ))
4. Menghitung entropi untuk setiap atribut Entropi (klas atribut) = (− jmlNo( KlasAtr ) / jmlKasus ( Atr ) * log 2 ( jmlNo( KlasAtr ) / jmlKasus ( Atr )) + (− jmlYes( KlasAtr ) / jmlKasus ( Atr ) * log 2 ( jmlYes( KlasAtr ) / jmlKasus ( Atr )
5. Sistem menyimpan penghitungan entropi pada tbHitung dan tbEntropi 6. Menghitung nilai gain setiap atribut Gain (total, atribut=
entropi(total ) − (( jmlKasus ( KlasAtr1) / jmlKasus * entropi( KlasAtr1) + ( jmlKasus ( KlasAtr 2) / jmlKasus * entropi( KlasAtr 2) + ......... + jmlKasus ( KlasAtr (n)) / jmlKasus * entropi( KlasAtr (n))) 7. Sistem menyimpan nilai gain pada tbGain 8. Penghitungan entropy dan gain dilanjutkan sampai level yang tidak melebihi jumlah atribut penentu. 9. Jika : -nilai jmlKasus=jmlYes ,maka hasilKeputusanPohon =YES ; -nilai jmlKasus=jmlNo, maka hasilKeputusanrPohon= NO ; -nilai jmlKasus <> jmlYes atau jmlKasus <> jmlNo, maka penghitungan entropy dan gain dilanjutkan dengan kondisi baris penentu terakhir yang terbentuk.
IV-10
-jika penghitungan terus berlanjut sampai melebihi jumlah atribut yang terlibat dan tidak menghasilkan keputusan YES atau NO, maka hasilKeputusanPohon = UNCLASSIFIED -jika terdapat lebih dari satu atribut yang gain tertingginya bernilai sama, maka atribut yang diambil untuk dijadikan simpul adalah atribut yang tersimpan paling atas pada tbGain
4) Proses 1.4 Pembentukan Pohon Keputusan Input
kdNode, kdAnakNode, kdAtribut
Output
pohonKeputusan
Datastore
tbAtribut, tbKlasAtribut, tbNodePohon, tbKlasPohonDetail, tbEntropi, tbGain, tbAturan
Algoritma
1. kdAtribut dengan gain tertinggi pada tbGain menjadi simpul akar pada pohonKeputusan dengan kondisi baris penentu total atau level nol. 2. kdAtribut dengan gain tertinggi di level 1, menjadi simpul internal untuk simpul akar. Begitu seterusnya hingga menghasilkan keputusan akhir untuk pasien liver. 3. Silsilah
pohon
disimpan
pada
tbNodePohon,
tbKlasPohonDetail
5) Proses 2.0 Menampilkan Pohon Keputusan Input
opsiTampilPohonKeputusan
Output
pohonKeputusan, pesan_peringatan
Datastore
tbAturan, tbNodePohon, tbKlasPohonDetail
Algoritma
1. Pengguna memilih opsiTampilPohonKeputusan 2. Sistem memunculkan pohonKeputusan jika pengguna telah melakukan proses latih data atau sistem akan memunculkan pesan_peringatan apabila pengguna belum melakukan latih data
IV-11
6) Proses 3.0 Menampilkan Daftar Aturan Input
opsiTampilAturan
Output
daftarAturan, pesan_peringatan
Datastore
tbAtribut, tbNodePohon, tbKlasPohonDetail, tbKlasAtirbut, tbAturan
Algoritma
1. Pengguna memilih opsiTampilAturan 2. Sistem memunculkan daftarAturan jika pengguna telah melakukan
proses
latih
data
atau
sistem
akan
memunculkan pesan_peringatan apabila pengguna belum melakukan latih data
7) Proses 4.0 Menampilkan Hasil Penghitungan Input
opsiTampilHitung
Output
hasilPenghitungan, pesan_peringatan
Datastore
tbHitung, tbEntropi, tbGain
Algoritma
1. Pengguna memilih opsiTampilHitung 2. Sistem memunculkan hasilPenghitungan jika pengguna telah melakukan proses latih data atau sistem akan memunculkan pesan_peringatan apabila pengguna belum melakukan latih data
8) Proses 5.1 Memasukkan Data Uji Masukan Input
opsiUjiDataMasukan, dataMasukan
Output
peringatanHarusAngka, peringatanIsiSemua
Datastore
-
Algoritma
1. Pengguna memilih opsiUjiDataMasukan 2. Sistem akan memunculkan pesan_peringatan apabila pengguna belum melakukan latih data 3. Sistem akan masuk ke pengujian data dengan data masukan
IV-12
4. Pengguna menginput dataMasukan 5. Jika pengguna tidak memasukkan data numerik, maka sistem akan memunculkan peringatanHarusAngka 6. Jika pengguna tidak mengisi semua data yang diminta, sistem akan memunculkan peringatanIsiSemua
9) Proses 5.2 Menentukan Hasil Pasien Liver Input
dataMasukan
Output
hasilUjiDataMasukan, pesan_peringatan
Datastore
tbAtribut, tbNodePohon, tbKlasPohonDetail
Algoritma
1. Sistem akan melakukan pencarian hasil keputusan dari data yang telah dimasukkan oleh pengguna dengan silsilah pohon yang telah terbentuk 2. Sistem memunculkan hasilUjiDataMasukan
10) Proses 6.1 Pengujian Data Master Input
opsiUjiDataMasterAkurasi, hasilKeputusanPohon
Output
hasilUjiDataMaster, pesan_peringatan, hasilBandingUji
Datastore
tbUji, tbKlasPohonDetail
Algoritma
1. Pengguna memilik opsiUjiDataMasterAkurasi 2. Sistem memunculkan pesan_peringatan apabila pengguna belum melakukan proses latih data 3. Sistem memunculkan record data yang akan diuji dari tbUji 4. Sistem
memunculkan
hasilKeputusanPohon
dari
tbKlasDetail 5. Sistem membandingkan hasilKeputusanPohon dengan hasil
keputusan
data
master
dan
keterangan kesesuaian antara keduanya 6. Sistem memunculkan hasilUjiDataMaster
memunculkan
IV-13
11) Proses 6.2 Penghitungan Persentase Akurasi Input
hasilKeputusanPohon, pasienLiver, ketKesesuaian
Output
persentaseAkurasi, persentaseKesalahan
Datastore
tbBandingUji
Algoritma
1. Sistem melakukan penghitungan akurasi dengan melihat dari ketKesesuaian antara pasien liver berdasarkan hasilKeputusanPohon dengan data master 2. Sistem menghitung jumlah hasil sesuai dan jumlah hasil tidak sesuai 3. Sistem menghitung persentase akurasi : persentaseAkurasi =
jumlahHasilSesuai x100% jumlahDataUji
4. Sistem menghitung persentase kesalahan : persentaseKesalahan =
jumlahHasilTidakSesuai x100% jumlahDataUji
Atau persentaseKesalahan = 100 − persentaseAkurasi 5. Sistem
memunculkan
persentaseAkurasi
dan
persentaseKesalahan
4.6
Kamus Data Kamus data merupakan kumpulan daftar elemen data yang mengalir pada
sistem perangkat lunak sehingga masukan dan keluaran dapat dipahami secara umum. Berikut nama atau istilah yang disebutkan pada implementasi algoritma C4.5 pada data pasien liver adalah sebagai berikut : Tabel 4.1 Kamus Data No. 1
Istilah Pengguna
Penjelasan Seseorang yang melakukan implementasi algoritma C4.5 pada klasifikasi data pasien liver
2
persentaseData
Jumlah
data
yang
dimasukkan
untuk
IV-14
No.
Istilah
Penjelasan dilakukan proses latih data dan
uji data
(dalam persen) 3
opsiPraProsesRefKes
Opsi untuk memilih praproses berdasarkan referensi kesehatan
4
opsiPraProsesGini
Opsi untuk memilih praproses menggunakan rumus GINI
5
opsiProsesData
Opsi untuk melakukan proses data yang terdiri dari proses penghitungan entropy dan gain serta pembentukan pohon keputusan
6
opsiTampilPohonKeputusan
Opsi untuk menampilkan pohon keputusan
7
opsiTampilAturan
Opsi untuk menampilkan daftar aturan
8
opsiTampilHitung
Opsi untuk menampilkan hasil penghitungan
9
opsiUjiDataMasukan
Opsi
untuk
melakukan
pengujian
data
dengan data masukan 10
dataMasukan
Data yang digunakan untuk melakukan pengujian data dengan data masukan
11
opsiUjiDataMasterAkurasi
Opsi untuk melakukan pengujian data master dan penghitungan persentas akurasi
12
peringatanHapusData
Peringatan untuk menghapus semua data yang sebelumnya telah ada dan tersimpan pada basis data. Peringatan
berisi
,”Apakah
anda
akan
menghapus semua data yang telah tersimpan sebelumnya?” 13
opsiHasil
Opsi untuk mengetahui hasil keputusan pasien liver berdasarkan pohon keputusan pada pengujian data dengan data masukan
14
pesanProsesDataSelesai
Pesan yang menyampaikan bahwa proses data telah selesai.
IV-15
No.
Istilah
Penjelasan Pesan
berisi,”Proses
data
telah
selesai
dilaksanakan.” 15
Pesan_peringatan
Pesan yang memperingatkan bahwa opsi yang dipilih tidak dapat dieksekusi karena belum melakukan latih data. Pesan berisi,”Anda belum melakukan latih data. Silakan lakukan proses latih data terlebih dahulu.”
16
pohonKeputusan
Pohon
keputusan
yang telah
terbentuk
setelah dilakukan proses data 17
daftarAturan
Daftar aturan yang terbentuk setelah proses data dilakukan
18
hasilPenghitungan
Hasil penghitungan entropy dan gain saat proses data
19
hasilUjiDataMasukan
Hasil dari pengujian data dengan masukan yaitu berupa hasil keputusan apakah pasien termasuk penderita liver atau bukan
20
hasilUjiDataMaster
Hasil dari pengujian data master yang menampilkan jumlah data pasien liver yang terklasifikasi, jumlah data bukan pasien penderita liver, dan jumlah data yang tidak terklasifikasi
21
hasilLatihData
Hasil
dari
proses
latih
data
berupa
hasilPenghitungan, hasilKeputusanPohon 22
persentaseAkurasi
Persentase akurasi (dalam persen)
23
persentaseKesalahan
Persentase kesalahan (dalam persen)
24
pesanPraProsesSelesai
Pesan yang menyampaikan bahwa pra proses telah selesai dilaksanakan. Pesan berisi,”Pra Proses Telah Selesai.”
IV-16
No. 25
Istilah peringatanHarusAngka
Penjelasan Peringatan bahwa data yang diisi harus numerik. Pesan berisi,”Harus diisi angka.”
26
peringatanDataKosong
Peringatan bahwa masih ada data yang kosong dan meminta untuk melengkapi data kosong tersebut. Pesan berisi,”Lengkapi data yang masih kosong!”
27
hasilUjiDataMaster
Hasil pengujian data master
28
hasilBandingUji
Hasil
perbandingan
pengujian
hasil
keputusan pasien liver antara hasil keputusan berdasarkan pohon keputusan dengan data master 29
pesanLebihDari100
Pesan yang menyampaikan bahwa persentase data yang dimasukan saat praproses data, angkanya melebihi 100. Pesan berisi,”Angka yang diisi tidak boleh melebihi 100%.”
30
recordDataLiver
Seluruh record pada data liver (data master)
31
recordDataLatih
Record data liver yang dijadikan data latih
32
recordDataUji
Record data liver yang dijadikan data uji
33
dataAtribut
Data
atribut
yang
meliputi
kdAtribut,
nmAtribut, dan split 34
dataPohonKeputusan
Data
untuk
pohon
keputusanmeliputi
kdPohon,hasilKelanjutanNode, hasilKeputusanPohon 35
dataDaftarAturan
Data daftar aturan yang meliputi aturan dan hasilKeputusanPohon
36
hasilPenghitungan
Hasil penghitungan entropi dan gain
IV-17
No.
Istilah
37
Penjelasan
hasilKeputusanPohon
Hasil keputusan berdasarkan pohon yang terbentuk untuk hasil atribut target yaitu pasien liver
4.7
Perancangan Basis Data Perancangan basis data menjelaskan tabel-tabel yang terkait dengan
pembangunan simulasi algoritma C4.5 pada data liver. Tabel-tabel yang terdapat pada pembangunan perangkat lunak data mining menggunakan algoritma C4.5 pada data pasien liver diuraikan pada Tabel 4.2 sampai Tabel 4.15.
Tabel 4.2 Tabel Data Pasien Liver (tb_liver) Field
Type
Length
Key
Null
Keterangan
Age
integer
2
True
Usia Pasien
Gender
varchar
6
True
Jenis Kelamin
Total_bili
decimal
3,1
True
Bilirubin Total
Direct_bili
decimal
3,1
True
Bilirubin Langsung
Alkphos
integer
4
True
Alkaline Phosphatase
SGPT
integer
4
True
SGPT
SGOT
integer
4
True
SGOT
Total_protein
decimal
2,1
True
Protein Total
Albumin
decimal
2,1
True
Albumin
Liver_patient
integer
1
True
Status Pasien
Tabel 4.3 Tabel Atribut (tb_atribut) Field
Type
Length
Key
Null
Keterangan
Kode_Atribut
varchar
10
Primary
False
Kode Atribut
Nama_Atribut
varchar
15
False
Nama Atribut
Split
double
False
Klasifikasi dengan Rumus GINI
IV-18
Tabel 4.4 Tabel Perbandingan Pengujian (tb_comparetesting) Field
Type
Length
Key
Null
Keterangan
Age
integer
30
True
Usia Pasien
Gender
varchar
20
True
Jenis Kelamin
Total_bili
decimal
20
True
Bilirubin Total
Direct_bili
decimal
20
True
Bilirubin Langsung
Alkphos
integer
20
True
Alkaline Phosphatase
SGPT
integer
20
True
SGPT
SGOT
integer
20
True
SGOT
Total_protein
decimal
20
True
Protein Total
Albumin
decimal
20
True
Albumin
Liver_patient_ori
integer
3
True
Status Pasien Berdasarkan Data Asli
Hasil_tree
varchar
30
False
Status Pasien Berdasarkan Pohon Keputusan
Keterangan
varchar
30
False
Keterangan Kesesuaian
Tabel 4.5 Tabel Entropi (tb_entropy) Field
Type
Length
Key
Null
Keterangan
Node
varchar
50
Primary
False
Kode Node
Kode_Klas_Atribut
varchar
10
Foreign
False
Kode Klasifikasi Atribut
S
varchar
50
False
Jumlah Keputusan Pasien Liver
S1
varchar
50
False
Jumlah Keputusan Pasien Liver = Yes
IV-19
Field S2
Type
Length
varchar
50
Key
Null
Keterangan
False
Jumlah Keputusan Pasien Liver = No
Entropy
double
False
Nilai Entropy
Tabel 4.6 Tabel Gain (tb_gain) Field
Type
Length
Key
Null
Node
varchar
4
Primary
False
Kode Node
Level
varchar
50
False
Level Node
Kode_Atribut
varchar
50
False
Kode Atribut
Gain
double
False
Nilai Gain
Foreign
Keterangan
Tabel 4.7 Tabel Hasil Pengujian (tb_hasiltesting) Field
Type
Length
Key
Null
Keterangan
Age
varchar
30
True
Usia Pasien
Gender
varchar
20
True
Jenis Kelamin
Total_bili
varchar
20
True
Bilirubin Total
Direct_bili
varchar
20
True
Bilirubin Langsung
Alkphos
varchar
20
True
Alkaline Phosphatase
SGPT
varchar
20
True
SGPT
SGOT
varchar
20
True
SGOT
Total_protein
varchar
20
True
Protein Total
Albumin
varchar
20
True
Albumin
Liver_patient
varchar
15
True
Status Pasien Berdasarkan Pohon Keputusan/ Aturan
Tabel 4.8 Tabel Penghitungan (tb_hitung) Field Node
Type
Length
Key
Null
varchar
4
Primary
False
Keterangan Kode Node
IV-20
Field
Type
Length
Level
integer
100
Baris_Penentu
varchar
50
Key
Null
Foreign
Keterangan
False
Level Node
False
Kode Baris Penentu
Kondisi_Baris_Penentu
varchar
200
False
Kondisi Baris Penentu
S
varchar
50
False
Jumlah Keputusan Status Pasien
S1
varchar
50
False
Jumlah Keputusan Pasien Liver = Yes
S2
varchar
50
False
Jumlah Keputusan Pasien Liver = No
Entropy
double
False
Nilai Entropy
Tabel 4.9 Tabel Klasifikasi Atribut (tb_klas_atribut) Field
Type
Length
Key
Null
Kode_Klas_Atribut
varchar
10
Primary
False
Keterangan Kode Klasifikasi Atribut
Kode_Atribut
varchar
10
Klas_Atribut
varchar
30
Foreign
False
Kode Atribut
False
Klasifikasi Atribut
Tabel 4.10 Tabel Praproses Data (tb_pra) Field
Type
Length
Key
Null
Keterangan
Age
varchar
30
True
Usia Pasien
Gender
varchar
20
True
Jenis Kelamin
IV-21
Field
Type
Length
Key
Null
Keterangan
Total_bili
varchar
20
True
Bilirubin Total
Direct_bili
varchar
20
True
Bilirubin Langsung
Alkphos
varchar
20
True
Alkaline Phosphatase
SGPT
varchar
20
True
SGPT
SGOT
varchar
20
True
SGOT
Total_protein
varchar
20
True
Protein Total
Albumin
varchar
20
True
Albumin
Liver_patient
varchar
3
True
Status Pasien
Tabel 4.11 Tabel Pra-GINI (tb_pre_gini) Field
Type
Length
Key
Null
Keterangan
Age
integer
2
True
Usia Pasien
Gender
varchar
6
True
Jenis Kelamin
Total_bili
decimal
3,1
True
Bilirubin Total
Direct_bili
decimal
3,1
True
Bilirubin Langsung
Alkphos
integer
4
True
Alkaline Phosphatase
SGPT
integer
4
True
SGPT
SGOT
integer
4
True
SGOT
Total_protein
decimal
2,1
True
Protein Total
Albumin
decimal
2,1
True
Albumin
Liver_patient
integer
1
True
Status Pasien
Tabel 4.12 Tabel Aturan (tb_rules) Field
Type
Length
Key
Null
Keterangan
Rule
varchar
200
False
Uraian Aturan
Hasil
varchar
200
False
Hasil Status Pasien Liver
IV-22
Tabel 4.13 Tabel Pengujian (tb_testing) Field
Type
Length
Key
Null
Keterangan
Age
varchar
30
True
Usia Pasien
Gender
varchar
20
True
Jenis Kelamin
Total_bili
varchar
20
True
Bilirubin Total
Direct_bili
varchar
20
True
Bilirubin Langsung
Alkphos
varchar
20
True
Alkaline Phosphatase
SGPT
varchar
20
True
SGPT
SGOT
varchar
20
True
SGOT
Total_protein
varchar
20
True
Protein Total
Albumin
varchar
20
True
Albumin
Liver_patient
varchar
3
True
Status Pasien
Tabel 4.14 Tabel Simpul Pohon Keputusan (tb_tree_atribut) Field Kode_Tree
Type
Length
Key
Null
Keterangan
varchar
5
Primary
False
Kode Node pada Pohon
Level
varchar
50
False
Level Pohon Keputusan
Kode_Atribut
varchar
50
Foreign
False
Kode Atribut
Tabel 4.15 Tabel Simpul Pohon Detail (tb_trklasdetail) Field Kode_Tree
Type
Length
Key
Null
varchar
10
Primary
False
Keterangan Kode Node pada Pohon
Kode_Klas_Atribut
varchar
10
Foreign
False
Kode Klasifikasi Atribut
Result
varchar
15
False
Hasil Keberlanjutan Penghitungan dan
IV-23
Field
Type
Length
Key
Null
Keterangan Penentuan Node
Child
4.8
varchar
15
False
Node Cabang
Perancangan Arsitektural Dalam implementasi algoritma klasifikasi terhadap data dibuat sebuah
perancangan arsitektural yang merupakan definisi keterkaitan antara elemenelemen utama yang akan membentuk hasil dari implementasi tersebut. Berikut ini digambarkan mengenai perancangan arsitektural implementasi algoritma C4.5 pada data pasien liver : frmUtama MENU UTAMA
frmLatihData LATIH DATA
frmPohon POHON KEPUTUSAN
frmAturan ATURAN TERBENTUK
frmHitung PENGHITUNGAN ENTROPI DAN GAIN
frmUjiDataInput UJI DATA (INPUT DATA)
frmUjiDataMaster UJI DATA (MASTER DATA)
KELUAR
frmPraProses PRA PROSES DATA
frmProses PROSES DATA
Gambar 4.6 Perancangan Arsitektural
4.9
Perancangan Antarmuka Perancangan antarmuka merupakan proses membuat perancangan tampilan
layar dan menentukan bentuk serta isi dokumen sumber untuk memasukan data yang kemudian diolah menjadi keluaran yang dapat digunakan oleh pengguna. Rancangan-rancangan antarmuka pada Pembangunan Perangkat Lunak Data Mining Menggunakan Algoritma C4.5 dalam Klasifikasi Data Pasien Liver digambarkan pada Gambar 4.7 sampai Gambar 4.13.
IV-24
Form Utama Latih Data
Algoritma C4.5
Lihat Pohon Keputusan Lihat Aturan yang Terbentuk
pada Klasifikasi
Lihat Hasil Penghitungan
Data Pasien Liver
Pengujian Data (Data Pengujian Data (Data Master) Keluar
Gambar 4.7 Rancangan Tampilan Utama
Form Latih dan Proses Data Pengaturan Jumlah Data untuk Diproses Data Latih
% atau sebanyak
data
Data Uji
% atau sebanyak
data
Pra Proses Data (GINI)
Pra Proses Data (REFERENSI KESEHATAN)
Data Pasien Liver (Master) No
Age
Gender
Total_Bili
Direct_Bili
….
Liver Patient
1
65
Female
0.7
0.1
…
1
2
62
Male
10.9
5.5
…
1
…
…
…
…
…
…
…
583
38
Male
1
0.3
…
1
Data Pasien Liver (PraProses) No
Age
Gender
Total_Bili
Direct_Bili
….
Liver Patient
1
Old
Female
<=1
<=1.0
…
Yes
2
Old
Male
>9.0
>5.0
…
Yes
…
…
…
…
…
…
…
583
38
Male
<=1
<=1.0
…
No PROSES DATA
Gambar 4.8 Rancangan Tampilan Latih Data
IV-25
Form Pohon Keputusan Pohon Keputusan -Simpul Akar Klas 1 -Simpul Internal Klas 1 -Simpul Daun Klas 1 : (Hasil Keputusan) -Simpul Daun Klas 2 : (Hasil Keputusan) +Simpul Internal Klas 2 +Simpul Internal Klas 3 +Simpul Akar Klas 2 +Simpul Akar Klas 3 +Simpul Akar Klas 4 +Simpul Akar Klas 5
Gambar 4.9 Rancangan Tampilan Pohon Keputusan
Form Tampilan Daftar Aturan yang Terbentuk 4.___ Rancangan Tampilan Pohon Keputusan AturanGambar yang terbentuk berdasarkan pohon keputusan Aturan Kondisi 1 Kondisi 2 Kondisi 3 Kondisi …
Hasil Yes No Unclassified …
Gambar 4.10 Rancangan Tampilan Aturan yang Terbentuk
IV-26
Form Tampilan Hasil Penghitungan Hasil Penghitungan ENTROPI dan GAIN Hasil Penghitungan Entropi Kondisi Baris Penentu TOTAL Jumlah Kasus Jumlah Keputusan Yes Jumlah Keputusan No
<<
Rincian Penghitungan Entropi Nama_Atribut Klas_Atribut
Age Age …
Child Old …
Hasil Penghitungan Gain Nama_Atribut Age Gender …
Jmlh Kasus (S) 2 79 …
1
<
Kasus Yes (S1) 1 55 …
Kasus No (S2) 1 24 …
>
>>
Entropi
1 0.8858 …
Gain 0.00354645 0.000298767 …
Gambar 4.11 Rancangan Tampilan Hasil Penghitungan Form Pengujian Data dengan Data Masukan Pengujian Data Jenis Kelamin
Perempuan Laki-Laki
Usia
tahun
Total Bilirubin
mg/dL
Apakah pasien termasuk penderita
Direct Bilirubin
mg/dL
penyakit liver ?
Alkali Phosphatase
u/L
SGPT / ALT
u/L
SGOT / AST
u/L
Total Protein
g/dL
Albumin
g/dL
Hasil
YES/NO
Bersihkan
Gambar 4.12 Rancangan Tampilan Pengujian Data (Data Masukan)
IV-27
Form Pengujian Data (Data Master) Pengujian Berdasarkan Pohon Keputusan/ Aturan
Mulai Pengujian
Jumlah Terklasifikasi Pasien Liver
data
Jumlah Terklasifikasi Pasien Nonliver
data
Jumlah Kasus Tidak Terklasifikasi
data
Perbandingan Hasil Pengujian dengan Data Mater Age
Gender
….
Status Pasien
Status Pasien
Liver
Liver
(Data Master)
(Pohon/Aturan)
Keterangan
Young
Female
…
Yes
Yes
SESUAI
Old
Male
…
No
Yes
TIDAK SESUAI
Child
Male
…
No
Unclassified
TIDAK SESUAI
Tingkat Akurasi Jumlah Hasil Pengujian yang Sesuai
data
Jumlah Hasil Pengujian yang Tidak Sesuai
data
Persentase Akurasi
%
Gambar 4.13 Rancangan Tampilan Pengujian Data (Master Data)
4.10
Perancangan Algoritma Pada bagian ini akan dijelaskan mengenai algoritma-algoritma pada
“Pembangunan Perangkat Lunak Data Mining Menggunakan Algoritma C4.5 pada Data Pasien Liver.
4.10.1 Algoritma Praproses Menggunakan Rumus GINI Praproses Menggunakan Rumus GINI Deklarasi: persentaseDataLatih : number ArrayNamaAtribut [ ] , ArraySplit [ ] : array tbLiver, tbAtribut, tbKlasAtribut, tbPra, tbUji, tbPraGini : datastore Algoritma: Input PersentaseDataLatih Kosongkan Tabel tbAtribut, tbKlasAtribut, tbPra, tbUji, tbPraGini Isi Array Nama Atribut dengan nama-nama atribut yang terlibat StatusPraProses "Computing" ArrayNamaAtribut[0] "age"
IV-28
ArrayNamaAtribut[1] ArrayNamaAtribut[2] ArrayNamaAtribut[3] ArrayNamaAtribut[4] ArrayNamaAtribut[5] ArrayNamaAtribut[6] ArrayNamaAtribut[7] ArrayNamaAtribut[8]
"gender" "total_bili" "direct_bili" "alkphos" "sgpt" "sgot" "total_protein" "albumin"
For i = 0 To PersentaseDataLatih Copy record dari tabel tbLiver ke dalam tbPraGini Next For j = 0 To 8 Ambil seluruh nilai field atribut yang muncul sesuai isi ArrayNamaAtribut[j] kemudian urutkan If ArrayNamaAtribut(j) <> "age" And ArrayNamaAtribut(j) <> "gender" Then Lakukan Perhitungan Gini tiap atribut sesuai isi ArrayNamaAtribut[j] kemudian simpan hasil Nilai Split ke dalam ArraySplit[j] End If Next
For j = 0 To 8 If ArrayNamaAtribut(j) <> "age" And ArrayNamaAtribut(j) <> "gender" Then Simpan Atribut dan Split Ke Dalam tbAtribut, dan simpan Klas Atribut yang terbentuk dari Nilai Split ke dalam tbKlasAtribut Else If ArrayNamaAtribut(j) = "age" Then Simpan Atribut Age Ke Dalam tbAtribut dan Simpan Klas Atributnya ke dalam tbKlasAtribut Else Simpan Atribut Gender Ke Dalam tbAtribut dan Simpan Klas Atributnya ke dalam tbKlasAtribut End If End If Next For j = 0 To total_jumlah_data_tb_liver For k = 0 To 8 Lakukan Praproses terhadap setiap field dari record yang ada pada tbLiver Next If PersentaseDataLatih = total_jumlah_data_tb_liver Then Simpan hasil praproses record ke dalam tbPra dan tbUji Else
IV-29
If j < PersentaseDataLatih Then Simpan hasil praproses record ke dalam tbPra Else Simpan hasil praproses record ke dalam tbUji End If End If Next StatusPraProses "Done" If StatusPraProses = "Done" Then Output “Pra-Proses Telah Selesai Dilaksanakan" End If
4.10.2 Algoritma Praproses Klasifikasi Berdasarkan Referensi Kesehatan Pra Proses Berdasarkan Referensi Kesehatan Deklarasi: persentaseDataLatih : number tbLiver, tbAtribut, tbKlasAtribut, tbPra, tbUji, tbPraGini : datastore Algoritma: Input persentaseDataLatih Kosongkan Tabel tbAtribut, tbKlasAtribut, tbPra, tbUji, tbPraGini StatusPraProses "Computing" Isi Tabel Atribut dengan Seluruh Atribut yang terlibat Isi Tabel Klas Atribut dengan seluruh Klas Atribut yang telah ditentukan For i = 1 To total_jumlah_data_tb_liver Lakukan Praproses terhadap setiap field dari record yang ada pada tbLiver sesuai nama atribut dan klas atribut yang sudah disimpan pada tbAtribut dan tbKlasAtribut If persentaseDataLatih = total_jumlah_data_tb_liver Then Simpan hasil praproses record ke dalam tbPra dan tbUji Else If j <= persentaseDataLatih Then Simpan record hasil praproses ke dalam tbPra Else Simpan record hasil praproses ke dalam tbUji End If End If Next StatusPraProses "Done" If StatusPraProses = "Done" Then Output “Pra-Proses Telah Selesai Dilaksanakan" End If
IV-30
4.10.3 Algoritma Proses Data Proses Data (Penghitungan entropy, gain, pembentukan pohon keputusan) Deklarasi: tbLiver, tbAtribut, tbKlasAtribut, tbPra, tbUji, tbPraGini, tbHitung, tbEntropi, tbGain, tbNodePohon, tbKlasPohonDetail, tbAturan : datastore Algoritma: TreeSolved "False" Kosongkan tbHitung, tbEntropi, tbGain, tbNodePohon, tbKlasPohonDetail, dan tbAturan 'Tahapan Apabila Tabel Tree Masih Kosong Level 0 VBarisPenentu "TOTAL" KondisiBarisPenentu "" KondisiBarisPenentuSimpan "TOTAL" ExcludeAtribute "" ‘Lakukan Perhitungan Entropy dan Gain Call hitung(Level, VBarisPenentu, KondisiBarisPenentu, KondisiBarisPenentuSimpan, ExcludeAtribute) KodeBarisPenentu = kodehitung(Kode Perhitungan Yang DiGenerate Secara Otomatis) 'Membuat dan Menyimpan Row Pertama Pada Tabel Tree Atribut Ambil Kode Atribut Yang Memiliki Nilai Gain Tertinggi dari hasil perhitungan Buat Record Baru Yang Berisi Kode Tree, Level, dan Atribut Yang Terkait kemudian simpan pada tbNodePohon Parent kodetree(Kode Tree Yang Di-Generate Secara Otomatis) 'Menyelesaikan Node Pada Level 1 Ambil Semua Kode Klas Atribut Dari Atribut Yang Menjadi Node Root Level 1 For i = 0 To Jumlah_KdKlasAtribut - 1 Isi ArrayKlasAtribut[i, 0] dengan Kode Klas Atribut dari Atribut yang menjadi node Next For i = 0 To Jumlah_KdKlasAtribut - 1 kodeklasatribut = ArrayKlasAtribut(i, 0) Ambil NIlai S1, S2, dan Entropy untuk tiap record yang memiliki node = KodeBarisPenentu dan kode klas atribut = kodeklasatribut dari tbEntropi If S1 = 0 Then Result "No" Else If S2 = 0 Then Result "Yes" Else
IV-31
Result End If
"Next"
End If If Result = "Next" Then Buat Kode Tree Baru NewChild kodetree NextNode NewChild Simpan Record Berisi KdNode, KdKlasAtribut, Result, Child Ke Dalam tbKlasPohonDetail Buat Node Baru Yang bersangkutan
dan Kosongkan Field Atribut
Do Telusuri Mundur Hingga Ke Node Root Untuk Mendapatkan KondisiBarisPenentu dSelanjutnya, juga ExcludeAtribute(Nama Atribut yang akan dilibatkan untuk perhitungan selanjutnya) Loop While Root = False VBarisPenentu = NewChild ‘Lakukan Perhitungan Untuk Node Baru Call hitung(Level, VBarisPenentu, KondisiBarisPenentu, KondisiBarisPenentuSimpan, ExcludeAtribute) NodeBaru = kodehitung Ambil Kode Atribut Yang Memiliki Nilai Gain Tertinggi Update Record Pada tbNodePohon yang Field Kode_atributnya dikosongkan sebelumnya Else Simpan Record Berisi KdNode, KdKlasAtribut, Result, Child Ke Dalam tbKlasPohonDetail End If Next LevelKerja 1 Do NextLevel "False" Ambil seluruh record pada tb_tree atribut yang memiki Level = Level_Kerja If Jml_Record_Level_Kerja = 0 Then NextLevel = "False" Else jmlkodetree = Jml_Record_Level_Kerja -1
For i = 0 To Jml_Record_Level_Kerja -1 Isi ArrayTreeAtribut[i, 0] dengan KdNode Next
IV-32
For k = 0 To Jml_Record_Level_Kerja Ambil Node(Kode_Hitung) yang baris penentunya = ArrayTreeAtribut[k, 0] KodeBarisPenentu = Node
-1
Parent = ArrayTreeAtribut(k, 0) Ambil Kode_Atribut dari tbNodePohon yang memiliki KdNode = ArrayTreeAtribut[k, 0] AtributNode = Kode_Atribut Ambil Semua Kode Klas Atribut Dari Atribut Yang Menjadi Node Level = LevelKerja + 1 For i = 0 To Jumlah_KdKlasAtribut - 1 Isi ArrayKlasAtribut[i, 0] dengan Kode Klas Atribut dari Atribut yang menjadi node Next For i = 0 To Jumlah_KdKlasAtribut - 1 kodeklasatribut = ArrayKlasAtribut(i, 0) Ambil NIlai S1, S2, dan Entropy untuk tiap record yang memiliki node = KodeBarisPenentu dan kode klas atribut = kodeklasatribut dari tbEntropi If S1 = 0 And S2 = 0 Then Result "UNCLASSIFIED" Else If S2 = 0 And S1 <> 0 Then Result "Yes" Else If S1 = 0 And S2 <> 0 Then Result "No" Else Result "Next" End If End If End If If LevelKerja < 8 Then If Result = "Next" Then NextLevel "True" Buat Kode Tree Baru NewChild kodetree NextNode NewChild Simpan Record Berisi KdNode, KdKlasAtribut, Result, Child Ke Dalam tbKlasPohonDetail Buat Node Baru
dan
IV-33
Kosongkan Field Atribut Yang bersangkutan Do Telusuri Mundur Hingga Ke Node Root Untuk Mendapatkan KondisiBarisPenentu dSelanjutnya, juga ExcludeAtribute(Nama Atribut yang akan dilibatkan untuk perhitungan selanjutnya) Loop While Root = False VBarisPenentu = NewChild ‘Lakukan Perhitungan Untuk Node Baru Call hitung(Level, VBarisPenentu, KondisiBarisPenentu, KondisiBarisPenentuSimpan, ExcludeAtribute) NodeBaru = kodehitung Ambil Kode Atribut Yang Memiliki Nilai Gain Tertinggi If jmlgaintertinggi > 1 Then Gunakan Kode Atribut Paling Teratas Else Gunakan Kode Atribut Yang Memiliki Nilai Gain Tertinggi End If Ambil Kode Atribut Yang Memiliki Nilai Gain Tertinggi Update Record Pada tbNodePohon yang Field Kode_atributnya dikosongkan sebelumnya Else Simpan Record Berisi KdNode, KdKlasAtribut, Result, Child Ke Dalam tbKlasPohonDetail End If Else If Result = "Next" Then Simpan Record Berisi KdNode, KdKlasAtribut,
IV-34
Result, Child Ke Dalam tbKlasPohonDetail dengan isi Result = “UNCLASSIFIED” Else Simpan Record Berisi KdNode, KdKlasAtribut, Result, Child Ke Dalam tbKlasPohonDetail End If End If Next Next LevelKerja = LevelKerja + 1 If LevelKerja > 8 Then NextLevel = "False" End If End If Loop While NextLevel = "True" ‘Algoritma Rekonstruksi Rules Kosongkan Table tbAturan Ambil record dari tbKlasPohonDetail yang memiliki Result <> “Next” dan Child = “UNCLASSIFIED” For a = 0 To jumlah_record_tidak_kontinu Do Telusuri Mundur Hingga Ke Node Root Untuk Merekonstruksi Rules Berdasarkan Decision Tree Yang Sudah Terbentuk Loop While Root = "False" Simpan Rules Ke Dalam tbAturan Next TreeSolved "True" If TreeSolved = "True" Then Output “Proses Pembentukan Tree Selesai” End If Prosedur hitung(Level, VBarisPenentu, KondisiBarisPenentu, KondisiBarisPenentuSimpan, ExcludeAtribute) level_tree = Level Buat Kode_Hitung Baru Periksa apakah tbHitung kosong If tbHitung = Empty Then JmlS Jumlah_Total_Data_tb_pra JmlS Jumlah_Total_Data_tb_pra_Yes JmlS Jumlah_Total_Data_tb_pra_No Else JmlS Jumlah_Total_Data_tb_pra_Kondisi_Baris_Penentu
IV-35
JmlS Jumlah_Total_Data_tb_pra_Kondisi_Baris_Penentu _Yes JmlS Jumlah_Total_Data_tb_pra_Kondisi_Baris_Penentu _No End If If JmlS1 = 0 Or JmlS2 = 0 Then Entropy = 0 Else If JmlS1 = JmlS2 Then Entropy = 1 Else If JmlS = 0 Then LonS1 = 0 LonS2 = 0 PengaliS1 = 0 PengaliS2 = 0 Else LonS1 = Ln(JmlS1 / LonS2 = Ln(JmlS2 / PengaliS1 = (JmlS1 PengaliS2 = (JmlS2
JmlS) JmlS) / JmlS) / JmlS)
End If Entropy = ((-(PengaliS1)) * (LonS1 / Ln(2)) + ((-(PengaliS2)) * (LonS2 / Ln(2)))) End If End If Simpan Kode_Hitung, Level, JmlS, JmlS1, JmlS2, dan Entropy Baris Penentu kedalam tbHitung For i = 0 To Jumlah_Atribut_NonBarisPenentu Isi ArrayAtribut[i, 0] dengan kode atribut yang tidak terlibat baris penentu Isi ArrayAtribut[i, 1] dengan nama atribut yang tidak terlibat baris penentu Next For i = 0 To Jumlah_Atribut_NonBarisPenentu Gain = EntropyBarisPenentu PengurangGain = 0 For j = 0 To Jml_Kode_KlasAtribut_Array[i,0] Isi ArrayKlasAtribut[j, 0] dengan kode klas atribut dari atribut pada ArrayAtribut[i,0] Isi ArrayKlasAtribut[j, 1] dengan Nilai klas atribut dari atribut pada ArrayAtribut[i,0] JmlS Jumlah_Total_Data_tb_pra_ArrayAtribut[i,1] = ArrayKlasAtribut[j,1] JmlS Jumlah_Total_Data_tb_pra_ArrayAtribut[i,1] =
IV-36
ArrayKlasAtribut[j,1]_Yes JmlS Jumlah_Total_Data_tb_pra_ArrayAtribut[i,1] = ArrayKlasAtribut[j,1]_No If JmlS1 = 0 Or JmlS2 = 0 Then Entropy = 0 Else If JmlS1 = JmlS2 Then Entropy = 1 Else If JmlS = 0 Then LonS1 = 0 LonS2 = 0 PengaliS1 = 0 PengaliS2 = 0 Else LonS1 = Ln(JmlS1 / JmlS) LonS2 = Ln(JmlS2 / JmlS) PengaliS1 = (JmlS1 / JmlS) PengaliS2 = (JmlS2 / JmlS) End If Entropy = ((-(PengaliS1)) * (LonS1 / Ln(2)) + (((PengaliS2)) * (LonS2 / Ln(2)))) End If End If 'Menyimpan Hasil Perhitungan Entropy Ke Dalam Tabel Entropy Simpan Kode_Hitung, Level, JmlS, JmlS1, JmlS2, dan Entropy Atribut kedalam tbHitung 'Menghitung Pengurang Gain If JmlS = 0 Or SBarisPenentu = 0 Then SubKali = 0 Else SubKali = (JmlS / SBarisPenentu) End If PengurangGain = PengurangGain + (SubKali * Entropy) Next 'Menghitung Gain Gain = Gain - PengurangGain Simpan Nilai Gain Tiap Atribut Ke Dalam tbGain Next
4.10.4 Algoritma Menampilkan Pohon Keputusan Menampilkan Pohon Keputusan Deklarasi :
IV-37
tbNodePohon, tbKlasPohonDetail., tbAtribut, tbKlasAtribut Algoritma: For i = 0 To Level_Maximum_DesicionTree Tampilkan Semua Node Beserta Informasinya Berdasarkan Level menggunakan data dari tbNodePohon, tbKlasPohonDetail, tbAtribut, dan tbKlasAtribut Next
4.10.5 Algoritma Menampilkan Aturan Menampilkan Daftar Aturan Deklarasi: tbAtribut, tbKlasAtribut, tbAturan : datastore Algoritma: Open tbAturan
4.10.6 Algoritma Menampilkan Hasil Penghitungan Menampilkan Hasil Penghitungan Deklarasi: tbHitung, tbEntropi, tbGain : datastore Algoritma: Open tbHitung Open tbEntropi Open tbGain OUTPUT hasilPenghitungan
4.10.7 Algoritma Pengujian Data (Data Masukan) Pengujian Data dengan Data Masukan Deklarasi: dataMasukan : age, total_bili, direct_bili, sgpt, sgot, total_protein, albumin : number gender : Boolean Algoritma: INPUT dataMasukan Memeriksa silsilah pohon keputusan OUTPUT hasilKeputusanPohon
4.10.8 Algoritma Pengujian Data (Data Master) Pengujian Data Master dan Penghitungan Akurasi Deklarasi: tbAtribur, tbKlasAtribut, tbAturan Algoritma: ‘Pengujian Data Master For i = 0 To Jumlah_Total_Data_Testing-1
IV-38
Solved = "False" Do Periksa tiap field dari record data testing menggunakan decision tree yang sudah terbentuk hingga ditemukan hasil diagnosa berdasarkan decision tree Loop While Solved = "False" Simpan Hasil Testing Ke Dalam tbHasilUji Next For i = 0 To Jumlah_Total_Data_Testing-1 Bandingkan Tiap Record dari tbHasilUji dan tbUji. Simpan Kesesuaian antara tbUji dengan tbHasilUji ke dalam tbBandingUji Next ‘Penghitungan Akurasi Hitung jumlahKetSesuai Hitung persentaseAkurasi = jumlahKetSesuai/recordDataUji OUTPUT persentaseAkurasi