15. bab iv.pdf

38
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

Upload: vokhanh

Post on 18-Jan-2017

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 15. BAB IV.pdf

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

Page 2: 15. BAB IV.pdf

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 :

Page 3: 15. BAB IV.pdf

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.

Page 4: 15. BAB IV.pdf

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.

Page 5: 15. BAB IV.pdf

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.

Page 6: 15. BAB IV.pdf

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.

Page 7: 15. BAB IV.pdf

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

Page 8: 15. BAB IV.pdf

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,

Page 9: 15. BAB IV.pdf

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.

Page 10: 15. BAB IV.pdf

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

Page 11: 15. BAB IV.pdf

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

Page 12: 15. BAB IV.pdf

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

Page 13: 15. BAB IV.pdf

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

Page 14: 15. BAB IV.pdf

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.

Page 15: 15. BAB IV.pdf

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.”

Page 16: 15. BAB IV.pdf

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

Page 17: 15. BAB IV.pdf

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

Page 18: 15. BAB IV.pdf

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

Page 19: 15. BAB IV.pdf

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

Page 20: 15. BAB IV.pdf

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

Page 21: 15. BAB IV.pdf

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

Page 22: 15. BAB IV.pdf

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

Page 23: 15. BAB IV.pdf

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.

Page 24: 15. BAB IV.pdf

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

Page 25: 15. BAB IV.pdf

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 … …

Page 26: 15. BAB IV.pdf

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

Page 27: 15. BAB IV.pdf

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

Page 28: 15. BAB IV.pdf

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

Page 29: 15. BAB IV.pdf

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

Page 30: 15. BAB IV.pdf

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

Page 31: 15. BAB IV.pdf

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

Page 32: 15. BAB IV.pdf

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

Page 33: 15. BAB IV.pdf

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,

Page 34: 15. BAB IV.pdf

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

Page 35: 15. BAB IV.pdf

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] =

Page 36: 15. BAB IV.pdf

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 :

Page 37: 15. BAB IV.pdf

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

Page 38: 15. BAB IV.pdf

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