15. bab iv.pdf
TRANSCRIPT
IV-1
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-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
Implementasi Algoritma C4.5 pada Data Pasien
Liver
Pengguna
persentaseData
opsiProsesDataopsiTampilPohonKeputusan
opsiTampilAturan
opsiTampilHitung
opsiUjiDataMasukan, dataMasukan
opsiUjiDataMasterAkurasi
peringatanHapusData, pesanProsesDataSelesai
Pesan_peringatan
pohonKeputusan
daftarAturan
hasilPenghitungan
hasilUjiDataMasukan
hasilUjiDataMaster, persentaseAkurasi, persentaseKesalahan
pesanPraProsesSelesai
peringatanHarusAngka
peringatanDataKosong
hasilUjiDataMaster, hasilBandingUji
pesanLebihDari100
opsiPraProsesGini
opsiPraProsesRefKes
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
1.0MelakukanLatih Data
2.0Menampilkan
Pohon Keputusan
3.0Menampilkan Aturan yang Terbentuk
4.0Menampilkan
Hasil Perhitungan
5.0Pengujian
dengan Data Masukan
6.0Pengujian dengan Data Master dan
PenghitunganAkurasi
Pengguna
Pes
an_p
erin
gata
n, p
ohon
Kep
utus
an
Pes
an_p
erin
gata
n, d
afta
rAtu
ran
Pes
an_p
erig
nata
n, h
asilU
jiDat
aMas
ukan
Pes
an_p
erin
gata
n, h
asilP
engh
itung
an
Pes
an_p
erin
gata
n, h
asilU
jiDat
aMas
ter,
pers
enta
seA
kura
si, p
erse
ntas
eKes
alah
antbLiver
POHON KEPUTUSAN(tbNodePohon,
tbKlasPohonDetail, tbAturan)
PENGHITUNGAN(tbHitung, tbEntropi,
tbGain)
PRA PROSES(tbPra, tbPraGini)
ATRIBUT(tbAtribut, tbKlasAtribut)
PENGUJIAN(tbUji, tbHasilUji,
tbBandingUji
recordDataLiver
recordDataLatih
dataAtribut
dataPohonKeputusan
persentaseData, opsiPraProsesGini,
opsiPraProsesRefKes,opsiProsesData
hasilPenghitungan
recordDataUji
dataDaftarAturan
recordDataUji
opsi
UjiD
ataM
aste
rAku
rasi
opsi
UjiD
ataM
asuk
an, i
nput
Dat
aMas
ukan
opsi
Tam
pilH
itung
opsi
Tam
pilA
tura
n opsi
Tam
pilP
ohon
Kep
utus
an
peringatanHapusData,pesanProsesDataSelesai
hasilLatihData
kdNode, kdAnakNode
hasilKeputusanPohon
dataAtribut
dataAtribut, dataKlasAtribut
dataAtribut
hasi
lLat
ihD
ata
hasilLatihData
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
tbLiver
tbAtribut
tbPra
tbUji
tbKlasAtribut
1.2Pra Proses Data
Berdasarkan Referensi Kesehatan
tbEntropi
tbHitung
tbGain
tbAturan
tbNodePohon
tbKlasPohonDetail
1.3Menghitung Entropi dan
Gain
Pengguna
pers
enta
seD
ata,
op
siP
raP
rose
sRef
Kes
tbPraGini
recordDataLiver
recordDataLatih
dataAtribut
data
Pen
ghitu
ngan
opsiProsesData
perin
gata
nHap
usD
ata
pesa
nPra
Pro
sesS
eles
ai
peringatanHapusData, pesanProsesDataSelesai
1.4Membentuk
Pohon Keputusan
kdN
ode,
jmlK
asus
,jmlY
es,jm
lNo,
entro
piga
in
data
Kla
sAtri
but
kdAtribut
kdKlasAtribut
kdNode, level
kdAtributnmAtribut
kdNode, level, kdAtribut
kdNode, kdKlasAtribut
kdKlasAtribut, nmKlasAtribut
nmAtribut, nmKlasAtribut
hasilKelanjutanNode,level
hasilKelanjutanNode, hasilKeputusanPohon
Ke Proses 4.0
Ke Proses 4.0
Ke Proses 4.0
Ke Proses 3.0Ke Proses 2.0
Ke Proses 2.0
Ke Proses 6.0
Ke Proses 5.0
pesa
nLeb
ihD
ari1
00 1.1Pra Proses
Data dengan Rumus Gini
recordDataLiverpe
sanP
raP
rose
sSel
esai
perin
gata
nHap
usD
ata
pesa
nLeb
ihD
ari1
00 persentaseData, opsiPraProsesGini
recordDataLatih
recordDataLatihrecordDataLatih
recordDataUji
recordDataUji
Ke Proses 6.0
dataKlasAtribut
dataAtribut
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
tbAtribut
tbKlasAtribut
5.1Memasukkan
Data Uji Masukan
tbKlasPohonDetail
Pengguna
perin
gata
nHar
usA
ngka
opsi
UjiD
ataM
asuk
an,
data
Mas
ukan
5.2MenentukanHasil Pasien
Liver
perin
gata
nDat
aKos
ong,
has
ilUjiD
ataM
asuk
an
kdNode, kdAnakNode, kdKlasAtribut
dataKlasAtribut
dataAtribut
Age, gender, total_bili, direct_bili, alkphos, sgpt,
sgot, total_protein, albumin
opsi
Has
il
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
6.1 Pengujian
Data Master
Pesan_peringatan hasilUjiDataMaster,
hasilBandingUji
tbUji
tbHasilUji
tbBandingUji
hasilKeputusanPohon, pasienLiver, ketKesesuaian
opsi
UjiD
ataM
aste
rAku
rasi
Pengguna
6.2Menghitung Persentase
Akurasipe
rsen
tase
Aku
rasi
, per
sent
aseK
esal
ahan
tbKlasPohonDetail
recordDataUji
hasi
lKep
utus
anP
ohon
reco
rdD
ataU
ji,
hasi
lKep
utus
anP
ohon
reco
rdD
ataU
ji, p
asie
nLiv
er,
hasi
lKep
utus
anP
ohon
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) =
))/(log*/())/(log*/(
2
2
jmlKasusjmlYesjmlKasusjmlYesjmlKasusjmlNojmlKasusjmlNo
−+−
4. Menghitung entropi untuk setiap atribut
Entropi (klas atribut) =
)(/)((log*)(/)((
))(/)((log*)(/)((
2
2
AtrjmlKasusKlasAtrjmlYesAtrjmlKasusKlasAtrjmlYes
AtrjmlKasusKlasAtrjmlNoAtrjmlKasusKlasAtrjmlNo
−+
−
5. Sistem menyimpan penghitungan entropi pada tbHitung dan
tbEntropi
6. Menghitung nilai gain setiap atribut
Gain (total, atribut=
)))((*/))((.........)2(
*/)2(()1(*/)1((()(
nKlasAtrentropijmlKasusnKlasAtrjmlKasusKlasAtrentropi
jmlKasusKlasAtrjmlKasusKlasAtrentropijmlKasusKlasAtrjmlKasustotalentropi
+++
−
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 memunculkan
keterangan kesesuaian antara keduanya
6. Sistem memunculkan hasilUjiDataMaster
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 :
%100xUjijumlahData
lSesuaijumlahHasiAkurasipersentase =
4. Sistem menghitung persentase kesalahan :
%100xUjijumlahData
ailTidakSesujumlahHasiKesalahanpersentase =
Atau AkurasipersentaseKesalahanpersentase −= 100
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. Istilah Penjelasan
1 Pengguna 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. Istilah Penjelasan
25 peringatanHarusAngka 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 Penjelasan
37 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 Type Length Key Null Keterangan
S2 varchar 50 False Jumlah Keputusan
Pasien Liver = No
Entropy double False Nilai Entropy
Tabel 4.6 Tabel Gain (tb_gain)
Field Type Length Key Null Keterangan
Node varchar 4 Primary False Kode Node
Level varchar 50 False Level Node
Kode_Atribut varchar 50 Foreign False Kode Atribut
Gain double False Nilai Gain
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 Type Length Key Null Keterangan
Node varchar 4 Primary False Kode Node
IV-20
Field Type Length Key Null Keterangan
Level integer 100 False Level Node
Baris_Penentu varchar 50 Foreign 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 Keterangan
Kode_Klas_Atribut varchar 10 Primary False Kode Klasifikasi
Atribut
Kode_Atribut varchar 10 Foreign False Kode Atribut
Klas_Atribut varchar 30 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 Type Length Key Null Keterangan
Kode_Tree 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 Type Length Key Null Keterangan
Kode_Tree varchar 10 Primary False 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 varchar 15 False Node Cabang
4.8 Perancangan Arsitektural
Dalam implementasi algoritma klasifikasi terhadap data dibuat sebuah
perancangan arsitektural yang merupakan definisi keterkaitan antara elemen-
elemen utama yang akan membentuk hasil dari implementasi tersebut. Berikut ini
digambarkan mengenai perancangan arsitektural implementasi algoritma C4.5
pada data pasien liver :
frmUtamaMENU UTAMA
frmLatihDataLATIH DATA
frmPohonPOHON
KEPUTUSAN
frmAturanATURAN
TERBENTUK
frmHitungPENGHITUNGAN
ENTROPI DAN GAIN
frmUjiDataInputUJI DATA
(INPUT DATA)
frmUjiDataMasterUJI DATA
(MASTER DATA)KELUAR
frmPraProsesPRA PROSES
DATA
frmProsesPROSES 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
Gambar 4.7 Rancangan Tampilan Utama
Gambar 4.8 Rancangan Tampilan Latih Data
Form Utama
Algoritma C4.5
pada Klasifikasi
Data Pasien Liver
Latih Data
Lihat Pohon Keputusan
Lihat Aturan yang Terbentuk
Lihat Hasil Penghitungan
Pengujian Data (Data
Pengujian Data (Data Master)
Keluar
Form Latih dan Proses Data Pengaturan Jumlah Data untuk Diproses
Data Latih % atau sebanyak data
Data Uji % atau sebanyak data
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
Pra Proses Data (GINI) Pra Proses Data (REFERENSI KESEHATAN)
PROSES DATA
IV-25
Gambar 4.9 Rancangan Tampilan Pohon Keputusan
Gambar 4.___ Rancangan Tampilan Pohon Keputusan
Gambar 4.10 Rancangan Tampilan Aturan yang Terbentuk
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
Form Tampilan Daftar Aturan yang Terbentuk Aturan yang terbentuk berdasarkan pohon keputusan
Aturan Hasil Kondisi 1 Yes Kondisi 2 No Kondisi 3 Unclassified Kondisi … …
IV-26
Gambar 4.11 Rancangan Tampilan Hasil Penghitungan
Gambar 4.12 Rancangan Tampilan Pengujian Data (Data Masukan)
Form Tampilan Hasil Penghitungan Hasil Penghitungan ENTROPI dan GAIN Hasil Penghitungan Entropi Kondisi Baris Penentu Jumlah Kasus Jumlah Keputusan Yes Jumlah Keputusan No Rincian Penghitungan Entropi
Nama_Atribut Klas_Atribut Jmlh Kasus
(S)
Kasus Yes (S1)
Kasus No
(S2)
Entropi
Age Child 2 1 1 1 Age Old 79 55 24 0.8858 … … … … … …
Hasil Penghitungan Gain
Nama_Atribut Gain Age 0.00354645 Gender 0.000298767 … …
TOTAL
>> > < << 1
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 YES/NO SGOT / AST u/L
Total Protein g/dL
Albumin g/dL
Hasil Bersihkan
IV-27
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"
Form Pengujian Data (Data Master)
Pengujian Berdasarkan Pohon Keputusan/ Aturan
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
Liver
(Data Master)
Status Pasien
Liver
(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 %
Mulai Pengujian
IV-28
ArrayNamaAtribut[1] "gender" ArrayNamaAtribut[2] "total_bili" ArrayNamaAtribut[3] "direct_bili" ArrayNamaAtribut[4] "alkphos" ArrayNamaAtribut[5] "sgpt" ArrayNamaAtribut[6] "sgot" ArrayNamaAtribut[7] "total_protein" ArrayNamaAtribut[8] "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 Di-Generate 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 "Next" End If 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 dan 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
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 -1
Ambil Node(Kode_Hitung) yang baris penentunya = ArrayTreeAtribut[k, 0]
KodeBarisPenentu = Node
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 / 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
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