BAB I PENDAHULUAN 1.1 Latar Belakang Haemodialisis merupakan salah satu bentuk terapi pengganti ginjal (renal replacement theraphy) di mana dalam prosesnya darah dialirkan keluar tubuh (extra corporeal circulation) dan darah masuk ke dalam ginjal buatan/dializer. Di dalam dializer ini darah dilakukan dialisis dan di ultrafiltrasi. Setelah darah melewati ginjal buatan darah masuk melalui akses darah. Proses haemodialisis rutin berlangsung selama empat jam. Pasien gagal ginjal yang menjalani haemodialisa, membutuhkan waktu 12-15 jam untuk dialisa setiap minggunya, atau paling sedikit 3-4 jam setiap kali terapi. Kegiatan ini akan berlangsung terusmenerus sepanjang hidupnya. [1] Diperkirakan bahwa ada lebih dari 100.000 pasien yang akhir-akhir ini menjalani Hemodialisa. Hemodialisa merupakan suatu proses pengobatan yang digunakan pada pasien dalam keadaan sakit akut dan memerlukan terapi dialisis jangka pendek (beberapa hari hingga beberapa minggu) atau pasien dengan penyakit ginjal stadium terminal (ESRD;end-stage renal disease) yang membutuhkanterapi jangka panjang atau terapi permanent.[2] Menurut data di Rumah Sakit Umum (RSUD) Kardinah Tegal tahun 2013 terdapat 57 pasien baru dengan 1.275 tindakan haemodialisa sedangkan tahun 2014 terdapat 86 pasien baru dengan 1.952 tindakan haemodialisa, sedangkan bulan Januari-Februari 2015 terdapat 16 pasien baru dengan 683 tindakan haemodialisa [3]. Keadaan ketergantungan pada mesin dialisa seumur hidupnya serta penyesuaian diri terhadap kondisi sakit mengakibatkan terjadinya perubahan dalam kehidupan pasien. Dampak psikologis pasien gagal ginjal kronik yang menjalani program terapi seperti haemodialisa dapat dimanifestasikan dalam serangkaian perubahan perilaku antara lain menjadi pasif, ketergantungan, merasa tidak aman, bingung, menderita dan cemas [2]. 1 2 Pada umumnya pendeteksian pasien harus dilakukan hemodialisa adalah dengan cara prognosis. Prognosis adalah“tebakan terbaik” tim medis dalam menentukan sembuhatau tidaknya pasien dari kanker payudara [4]. Selaindengan prognosis, cara lainnya adalah pemanfaatanbioinformatic dengan menggunakan teknik data mining [5][6], karena telah terbukti dapat memprediksi pasien unntu diberikan hemodialisa. Data Mining merupakan penambangan atau penemuan informasi baru dengan mencari pola atau aturan tertentu dari sejumlah data dalam jumlah besar yang diharapkan dapat mengatasi kondisi tersebut. Data Mining sendiri memiliki beberapa teknik salah satunya klasifikasi. Teknik klasifikasi terdiri beberapa metode, dan dicision tree adalah bagian dari metode klasifikasi. Kemudian metode dicision tree memiliki algoritma, algoritma C4.5 adalah salah satu dari algoritma yang memiliki dicisiontree. Data mining mempunyai beberapa algoritma, salahsatunya yaitu algoritma C4.5 atau disebut juga algoritmadecision tree [7]. Data mining adalah proses menemukanpola dengan memilah-milah sejumlah data yang besarmenggunakan teknologi pengenalan pola [8]. Sedangkanalgoritma C4.5 atau disebut juga algoritma decision treemerupakan metode klasifikasi dan prediksi yang sangat kuat dan terkenal [7]. Berikut beberapa kelebihan dari decision tree, antara lain [9] : a. Hasil analisa berupa diagram pohon yang mudah dimengerti. b. Mudah untuk dibangun, serta membutuhkan data percobaan yang lebih sedikit dibandingkan algoritma klasifikasi lainnya. c. Mampu mengolah data nominal dan kontinyu. d. Model yang dihasilkan dapat dengan mudah dimengerti. e. Menggunakan teknik statistik sehingga dapat divalidasikan. f. Waktu komputasi relatif lebih cepat dibandingkan teknik klasifikasi lainnya. g. Akurasi yang dihasilkan mampu menandingi teknik klasifikasi lainnya. Berdasarkan latar belakang diatas, maka penelitian iniakan menerapkan algoritma C4.5 untuk memprediksi pasien hemodialisa. 3 1.2 Perumusan Masalah Permasalahan-permasalahan yang berkaitan dengan pembangunan aplikasi ini sendiri adalah : 1) Bagaimana membangun perangkat lunak dengan algoritma C4.5 pada data pasien hemodialisa? 2) Bagaimana mengklasifikasikan data pasienuntuk menghasilkan keputusan apakah pasien termasuk yang harus hemodialisa atau tidak? 3) Bagaimana menganalisis kinerja dari algoritma C4.5 menggunakan skenario praproses dalam mengklasifikasi data pasien hemodialisa? 1.3 Pembatasan Masalah Agar pembahasan penelitian ini tidak menyimpang dari apa yang telah dirumuskan, maka diperlukan batasan-batasan. Batasan-batasan dalam penelitian ini adalah: 1) Aplikasi data mining dibuat berupa simulator. 2) Data training diambil dari rekam medik hemodialisa RSUD Kardinah (2015) 3) Pohon keputusan untuk menentukan apakah pasien yang harus melakukan hemodialisa atau tidak adalah dengan melihat hasil tes darah dengan atribut sebagai berikut : a) Age (Usia) b) Gender (Jenis Kelamin) c) Diagnosa Penyekit Ginjal d) Ureum e) Kreatinin f) Kalium g) Calsium h) Hipertensi 4) Algoritma data mining yang digunakan adalah C4.5. 5) Bahasa scripting yang digunakan adalah PHP dan database yang digunakan adalah MYSQL. 4 6) Teknik pengumpulan data yang digunakan adalah cleaning, mining, pattern evaluation, dan knowledge presentation. 1.4 Tujuan Penelitian Adapun tujuan dari penelitian ini adalah sebagai berikut : 1) Membangun perangkat lunak dengan algoritma C4.5 pada data pasien yang harus melakukan hemodialisa. 2) Mengklasifikasikan data pasien untuk menghasilkan keputusan apakah pasien yang harus melakukan hemodialisaatau tidak. 3) Menganalisis kinerja dari algoritma C4.5 menggunakan skenario praproses dalam mengklasifikasi data pasien yang harus melakukan hemodialisa. 1.5 Manfaat Penelitian Manfaat yang diharapkan akan diperoleh dari penelitian ini adalah: 1) Bagi Mahasiswa Menambah pengetahuan dan pengalaman bagi mahasiswa. Selain itu menerapkan ilmu yang telah diperoleh di bangku kuliah mengenai data mining dan metode klasifikasi yang digunakan. 2) Bagi Akademik Universitas Dian Nuswantoro Semarang Sebagai bahan evaluasi akademik guna peningkatan mutu pendidikan serta dapat dijadikan rujukan tentang pembuatan aplikasi yang berkaitan. 3) Bagi Pembaca Diharapkan dapat digunakan sebagai tambahan pengetahuan dan dapat menyelesaikan masalah yang sama yaitu dalam menentukan pasien yang harus dilakukan terapi hemodialisa. BAB 2 TINJAUAN PUSTAKA DAN LANDASAN TEORI 2.1 Tinjauan Studi Berikut ini adalah beberapa penelitian yang terkait yang penulis temukan: 1. PENERAPAN ALGORITMA C4.5 UNTUK KLASIFIKASITINGKAT KEGANASAN KANKER PAYUDARA[10] Pada penelitian ini bertujuan untuk menerapkan algoritma C4.5 untuk mengklasifikasitingkat keganasan kanker payudara. Berdasarkan hasil penelitian ini dapat disimpulkan bahwaklasifikasi tingkat keganasan kanker payudara dapatdiselesaikan menggunakan teknik data mining, yaitualgoritma C4.5, karena rules yang terbentuk sederhana.Akurasi yang dihasilkan dari pemodelan algoritma C4.5dengan pembobotan atribut, yaitu sebesar 98,57%. Akurasitersebut diperoleh dari kesesuaian antara prediksi klasifikasidan hasil klasifikasi.Data yang digunakan dalam penelitian ini adalah datasampel dari public dataset UCI, karena data dari pasienkanker payudara merupakan data yang private dan sulituntuk didapatkan.Beberapa ide yang dapat digunakan untuk penelitianselanjutnya adalah sebagai berikut:1. Program inputan data ini akan lebih bermanfaat jikadata yang digunakan adalah data valid yang bersumberdari pasien kanker payudara.2. Menambahkan visualisasi pohon keputusan dari rulesyang terbentuk.3. Penelitian selanjutnya dapat dikembangkan denganmenggabungkan beberapa metode data mining, sepertialgoritma C4.5 yang digabungkan dengan ParticleSwarm Optimization (PSO). 2. IMPLEMENTASI TEKNIK DATA MINING DIDALAM ANALISIS PENYAKIT DIABETES MELLITUS TIPE II MENGGUNAKAN DECISION TREE [11] Penelitian ini bertujuan untuk menemukaninformasi yang berharga dari datamenggunakan teknik data mining untukmembantu pihak pengambilkeputusan dibidang kesehatan dalam memahami rulesyang mungkin terjadi didalam diagnosapenyakit DM tipe II. Analisis data 5 6 terhadaprecord pasien di salah satu rumah sakit inimemungkinkan pula diagnosa penyakit yang benar dan tepat. Hasil penelitian berhasil mengumpulkan danmenganalisa data rekam medis pasiendiabetes mellitus tipe II, dan menghasilkanbeberapa rules yang dapat digunakan pihakrumah sakit dalam pengambilan keputusan dibidang kesehatan, khususnya dalammendiagnosa penyakit diabetes mellitus tipe II. 3. PEMBANGUNAN PERANGKAT LUNAK DATA MININGMENGGUNAKAN ALGORITMA C4.5PADA DATA PASIEN LIVER[12] Berdasarkan hasil penelitian menunjukan bahwa sebagai berikut : 1) Perangkat lunak dengan algoritma C4.5 dapat dibangun pada data pasien liver. 2) Algoritma C4.5 dapat mengklasifikasikan data pasien liver yang menghasilkan keputusan apakah pasien termasuk penderita liver atau bukan dengan menguji data dengan data masukan dan menguji data master dengan membandingkannya dengan hasil pengujian data berdasarkan pohon keputusan. 3) Dengan menggunakan skenario praproses, kinerja dari algoritma C4.5 dalam mengklasifikasi data penderita liver adalah sebagai berikut: a. Rata-rata persentase akurasi pengujian data menggunakan praproses berdasarkan referensi kesehatan adalah 54,89% dengan akurasi tertinggi sebesar 67,75% dan akurasi terendah yaitu 45,92%. b. Rata-rata persentase akurasi pengujian data menggunakan rumus GINI adalah 39,00% dengan akurasi tertinggi sebesar 56,22% dan akurasi terendah yaitu 22,41%. 2.2 Haemodalisa Haemodialisa adalah prosedur pembersihan darah melalui suatu ginjal buatan dan dibantu pelaksanaannya oleh semacam mesin Haemodialisa sebagai terapi yang dapat meningkatkan kualitas hidup dan memperpanjang usia. Haemodialisa merupakan metode pengobatan yang sudah dipakai secara luas dan rutin dalam program penanggulangan gagal ginjal akut maupun gagal ginjal kronik[13] 7 Haemodialisa merupakan suatu proses yang digunakan pada pasien dalam keadaan sakit akut dan memerlukan terapi dialisis jangka pendek (beberapa hari hingga beberapa minggu) atau pasien dengan penyakit ginjal stadium terminal yang membutuhkan terapi jangka panjang atau terapi permanen. Sehelai membran sintetik yang semi-permeable menggantikan glomerulus serta tubulus renal dan bekerja sebagai filter bagi ginjal yang terganggu fungsinya itu bagi penderita gagal ginjal kronis, haemodialisa akan mencegah kematian. Namun demikian, haemodialisa tidak menyembuhkan atau memulihkan penyakit ginjal.[14] 2.1.1 Prinsip yang Mendasari Haemodialisa Tujuan haemodialisa adalah untuk mengambil zat-zat nitrogen yang toksik dari dalam darah dan mengeluarkan air yang berlebihan. Ada tiga prinsip yang mendasari kerja haemodialisa yaitu difusi, osmosis dan ultrafiltrasi. Toksin dan zat limbah di dalam darah dikeluarkan melalui proses difusi dengan cara bergerak dari darah, yang memiliki konsentrasi lebih tinggi ke cairan dialisat yang konsentrasinya rendah[14] Air yang berlebihan dikeluarkan dari dalam tubuh melalui proses osmosis. Pengeluaran air dapat dikendalikan dengan menciptakan gradien tekanan: dengan kata lain, air bergerak dari daerah dengan tekanan yang lebih tinggi (tubuh pasien) ke tekanan yang lebih rendah (cairan dialisat). Gradien ini dapat ditingkatkan melalui penambahan tekanan negatif yang dikenal dengan ultrafiltrasi pada mesin dialisis. Tekanan negatif diterapkan pada alat ini sebagai kekuatan pengisap pada membran dan memfasilitasi pengeluaran air. Karena pasien tidak dapat meng-ekskresikan air, kekuatan ini diperlukan untuk mengeluarkan cairan hingga tercapai isovolemia (keseimbangan cairan).[14] 2.1.2 Indikasi Haemodalisa Terapi hemodialisa akan dilakukan jika penderita mengalami beberapa indikasi seperti dibawah ini:[13] 1) Hiperkalemia ( K > 6 mEq/l) 8 Hyperkalemia (kadar kalium darah yang tinggi) adalah suatu keadaan dimana konsentrasi kalium darah lebih dari 6 mEq/L. Selain itu, Hyperkalemia adalah suatu kondisi di mana terlalu banyak kalium dalam darah. Sebagian besar kalium dalam tubuh (98%) ditemukan dalam sel dan organ. Hanya jumlah kecil beredar dalam aliran darah. Kalium membantu sel-sel saraf dan otot, termasuk fungsi, jantung. Ginjal biasanya mempertahankan tingkat kalium dalam darah, namun jika memiliki penyakit ginjal merupakan penyebab paling umum dari hiperkalemia. 2) Asidosis Dalam keadaan normal, ginjal menyerap asam sisa metabolisme dari darah dan membuangnya ke dalam urin. Pada penderita penyakit ini, bagian dari ginjal yang bernama tubulus renalis tidak dapat berfungsi sebagaimana mestinya, sehingga hanya sedikit asam yang dibuang ke dalam urin. Akibatnya terjadi penimbunan asam dalam darah, yang mengakibatkan terjadinya asidosis, yakni tingkat keasamannya menjadi di atas ambang normal. 3) Kegagalan terapi konservatif 4) Kadar ureum/kreatinin tinggi dalam darah Peningkatan kadar urea disebut uremia. Azotemia mengacu pada peningkatan semua senyawa nitrogen berberat molekul rendah (urea, kreatinin, asam urat) pada gagal ginjal. Penyebab uremia dibagi menjadi tiga, yaitu penyebab prarenal, renal, dan pascarenal. Uremia prarenal terjadi karena gagalnya mekanisme yang bekerja sebelum filtrasi oleh glomerulus. Mekanisme tersebut meliputi : 1) penurunan aliran darah ke ginjal seperti pada syok, kehilangan darah, dan dehidrasi; 2) peningkatan katabolisme protein seperti pada perdarahan gastrointestinal disertai pencernaan hemoglobin dan penyerapannya sebagai protein dalam makanan, perdarahan ke dalam jaringan lunak atau rongga tubuh, hemolisis, leukemia (pelepasan protein leukosit), cedera fisik berat, luka bakar, demam. 9 Uremia renal terjadi akibat gagal ginjal (penyebab tersering) yang menyebabkan gangguan ekskresi urea. Gagal ginjal akut dapat disebabkan oleh glomerulonefritis, hipertensi maligna, obat atau logam nefrotoksik, nekrosis korteks glomerulonefritis, ginjal. Gagal pielonefritis, ginjal diabetes kronis disebabkan mellitus, oleh arteriosklerosis, amiloidosis, penyakit tubulus ginjal, penyakit kolagen-vaskular. 5) Perikarditis dan konfusi yang berat. Perikarditis adalah peradangan lapisan paling luar jantung baik pada parietal maupun viseral. Sedangkan konfusi adalah suatu keadaan ketika individu mengalami atau beresiko mengalami gangguan kognisi, perhatian, memori dan orientasi dengan sumber yang tidak diketahui. 6) Hiperkalsemia dan Hipertensi. Hiperkalsemia (kadar kalsium darah yang tinggi) adalah penyakit dimana penderitanya mengalami keadaan kadar kalsium darahnya melebihi takaran normal ilmu kesehatan. Penyebab penyakit ini karena meningkatnay penyerapan pada saluran pencernaan atau juga dikarenakan asupan kalsium yang berlebihan. Seain itu juga mengkonsumsi vitamin D secara berlebihan juga dapat mempengaruijumlah kalsium darah dalam tubuh.Hipertensi atau tekanan darah tinggi merupakan gangguan pada sistem peredaran darah yang dapat menyebabkan kenaikan tekanan darah di atas nilai normal, yaitu melebihi 140 / 90 mmHg. 2.1.3 Penatalaksanaan Jangka Panjang Pasien yang Menjalani Haemodialisa Penatalaksanaan jangka panjang pasien yang menjalani haemodialisa dilakukan dengan diet, masalah cairan. Diet merupakan faktor penting bagi pasien yang menjalani haemodialisa mengingat adanya efek uremia. Apabila ginjal tidak mampu mengekskresikan produk akhir metabolisme, substansi yang bersifat asam ini akan menumpuk dalam serum pasien dan bekerja sebagai racun. Gejala yang terjadi akibat penumpukan tersebut secara kolektif dikenal dengan gejala uremik dan akan mempengaruhi setiap sistem tubuh. Lebih banyak toksin yang menumpuk, lebih berat gejala yang timbul. Diet rendah protein akan mengurangi penumpukan limbah nitrogen dan 10 dengan demikian meminimalkan gejala. Penumpukan cairan juga dapat terjadi dan dapat mengakibatkan gagal jantung kongestif serta edema paru. Dengan demikian pembatasan cairan juga merupakan bagian dari resep diet untuk pasien ini. Dengan penggunaan haemodialisa yang efektif, asupan makanan pasien dapat diperbaiki meskipun biasanya memerlukan beberapa penyesuaian atau pembatasan pada asupan protein, natrium, kalium dan cairan. Pembatasan asupan cairan sampai 1 liter perhari sangat penting karena meminimalkan resiko kelebihan cairan antar sesi haemodialisa. Jumlah cairan yang tidak seimbang dapat menyebabkan terjadinya edema paru ataupun hipertensi pada 2-3 orang pasien haemodialisa. Ketidakseimbangan cairan juga dapat menyebabkan terjadinya hipertropi pada ventrikel kiri. Beberapa laporan menyatakan bahwa pembatasan cairan pada pasien haemodialisa sangat dipengaruhi oleh perubahan musim dan masa-masa tertentu dalam hidupnya. Seperti penelitian Argiles (2004) menyatakan bahwa asupan cairan pasien akan sangat tidak terkontrol pada musim panas dan pada masa liburan Natal dan Tahun Baru karena pada musim panas merangsang rasa haus dan pada masa liburan natal dan tahun baru banyak mengonsumsi makanan ringan yang kering dan mengandung garam sehingga memacu keinginan untuk minum.[15] Jumlah asupan cairan pasien baik cairan yang diminum langsung ataupun yang dikandung oleh makanan dapat dikaji secara langsung dengan mengukur kenaikan berat badan antar sesi haemodialisa (Interdialytic weight gain/IDWG). IDWG adalah peningkatan berat badan antar haemodialisa yang paling utama dihasilkan oleh asupan garam dan cairan. Secara teori, konsekuensi dari asupan tersebut terdiri atas dua bagian yaitu on the one hand yang artinya asupan air dan salin dapat bekerja sama dengan kalori dan protein dalam makanan, yang akan disatukan untuk memperoleh status nutrisi yang lebih baik. Tetapi on the other hand, asupan air dan garam dapat menimbulkan peningkatan cairan tubuh. Yang menjadi kunci untuk kejadian hipertensi dan hipertropi ventrikel kiri. IDWG yang dapat ditoleransi oleh tubuh adalah tidak lebih dari 1,0-1,5 kg atau tidak lebih dari 3 % dari berat badan kering.[16] Berat kering adalah berat tubuh tanpa adanya kelebihan cairan yang 11 menumpuk diantara dua terapi haemodialisa. Berat kering ini dapat disamakan dengan berat badan orang dengan ginjal sehat setelah buang air kecil. Berat kering adalah berat terendah yang dapat ditoleransi oleh pasien sesaat setelah terapi dialysis tanpa menyebabkan timbulnya gejala turunnya tekanan darah, kram atau gejala lainnya yang merupakan indikasi terlalu banyak cairan dibuang. Berat kering ditentukan oleh dokter dengan mempertimbangkan masukan dari pasien. Dokter akan menentukan berat kering dengan mempertimbangkan kondisi pasien sebagai berikut: tekanan darah normal, tidak adanya edema atau pembengkakan, tidak adanya indikasi kelebihan cairan saat pemeriksaan paru–paru, tidak ada indikasi sesak nafas. Dengan demikian pembatasan cairan juga merupakan bagian dari resep diet untuk pasien ini. Cairan dibatasi, yaitu dengan menjumlahkan urin/24jam ditambah 500-750 ml. Urin 24 jam ditambah 500-750 ml adalah jumlah cairan yang dapat dikonsumsi pasien dan masih dapat ditoleransi oleh ginjal pasien.[13] 2.3 Data Mining 2.3.1 Pengertian Data Mining Data Mining adalah proses menemukan korelasi baru yang memiliki makna, pola, dan tren dengan cara memilah-milah data dalam jumlah yang besar yang disimpan dalam repositori, menggunakan teknologi pengenalan pola, serta teknik-teknik statistik dan matematik. [17] Data Mining adalah proses analisis dari data set observasional (yang sering kali dalam ukuran besar) untuk menemukan relasi explisit dan membuat ringkasan data dengan teknik-teknik tertentu yang dapat dimengerti dan berguna bagi pemilik data. [18] Interdisipliner yang mempertemukan teknik-teknik machine learning, pengenalan pola, statistik, basis data, dan visualisasi untuk mengatasi permasalahan ekstraksi informasi dari basis data dengan ukuran yang besar.[19] Kemajuan luar biasa yang terus berlanjut dalam bidang data mining didorong oleh beberapa faktor, antara lain: [20] 1) Pertumbuhan yang cepat dalam kumpulan data. 12 2) Penyimpanan data dalam data warehouse, sehingga seluruh perusahaan memiliki akses ke dalam database yang andal. 3) Adanya peningkatan akses data melalui navigasi web dan intranet. 4) Tekanan kompetisi bisnis untuk meningkatkan penguasaan pasar dalam globalisasi ekonomi. 5) Perkembangan teknologi perangkat lunak untuk data mining (ketersediaan teknologi). 6) Perkembangan yang hebat dalam kemampuan komputasi dan pengembangan kapasitas media penyimpanan. Berdasarkan beberapa pengertian tersebut dapat ditarik kesimpulan bahwadata mining adalah suatu teknik menggali informasi berharga yang terpendam atau tersembunyi pada suatu koleksi data (database) yang sangat besar sehingga ditemukan suatu pola yang menarik yang sebelumnya tidak diketahui. Kata mining sendiri berarti usaha untuk mendapatkan sedikit barang berharga dari sejumlah besar material dasar. Karena itu data mining sebenarnya memiliki akar yang panjang dari bidang ilmu seperti kecerdasan buatan (artificial intelligent),machine learning, statistik dan database. Beberapa metode yang sering disebutsebut dalam literatur data mining antara lain clustering, classification, associationrules mining, neural network, genetic algorithm dan lain-lain.[21] 2.3.2 Pengenalan Pola, Data Mining, dan Machine Learning Pengenalan pola adalah suatu disiplin ilmu yang mempelajari cara-cara mengklasifikasikan obyek ke beberapa kelas atau kategori dan mengenali kecenderungan data. Tergantung pada aplikasinya, obyek-obyek ini bisa berupa pasien, mahasiswa, pemohon kredit, image atau signal atau pengukuran lain yang perlu diklasifikasikan atau dicari fungsi regresinya.[22] Data mining, sering juga disebut knowledge discovery in database (KDD), adalah kegiatan yang meliputi pengumpulan, pemakaian data historis untuk menemukan keteraturan, pola atau hubungan dalam set data berukuran besar. Keluaran dari data mining ini bisa dipakai untuk memperbaiki 13 pengambilan keputusan di masa depan. Sehingga istilah pattern recognition jarang digunakan karena termasuk bagian dari data mining. [22] Machine Learning adalah suatu area dalam artificial intelligence atau kecerdasan buatan yang berhubungan dengan pengembangan teknik-teknik yang bisa diprogramkan dan belajar dari data masa lalu. Pengenalan pola, data mining dan machine learning sering dipakai untuk menyebut sesuatu yang sama. Bidang ini bersinggungan dengan ilmu probabilitas dan statistik kadang juga optimasi. Data mining bukanlah suatu bidang yang sama sekali baru. Salah satu kesulitan untuk mendefinisikan data mining adalah kenyataan bahwa data mining mewarisi banyak aspek dan teknik dari bidang- bidang ilmu yang sudah mapan terlebih dulu. Gambar 2.1 menunjukkan bahwa data mining memiliki akar yang panjang dari bidang ilmu seperti kecerdasan buatan (artificial intelligence),machine learning, statistic, database, dan juga information retrieval. [23] Pencarian Informasi Pembelajaran (neural network, pohon keputusan, fuzzy) Ektraksi Data (bahasa alami, web, penstrukturan) DATA MINING Statistik Dasar (seleksi, hasil presentasi) Artificial Intelligent Data yang Besar (normalisasi data/transformasi, OLAP) Database Gabar 2.1 Bidang Ilmu Data Mining [23] 2.3.3 Tahap-Tahap Data mining 14 Sebagai suatu rangkaian proses, data mining dapat dibagi menjadi beberapa tahap yang diilustrasikan di Gambar 2.2. Tahap-tahap tersebut bersifat interaktif, pemakai terlibat langsung atau dengan perantaraan knowledge base. Gambar 2.2 Tahap-Tahap Data Mining [23] Tahap-tahap data mining ada 6 yaitu : 1) Pembersihan data (data cleaning) Pembersihan data merupakan proses menghilangkan noise dan data yang tidak konsisten atau data tidak relevan. Pada umumnya data yang diperoleh, baik daridatabase suatu perusahaan maupun hasil eksperimen, memiliki isian-isian yang tidak sempurna seperti data yang hilang, data yang tidak valid atau juga hanya sekedar salah ketik. Selain itu, ada juga atribut-atribut data yang tidak relevan dengan hipotesa data mining yang dimiliki. Data-data yang tidak relevan itu juga lebih baik dibuang. Pembersihan data juga akan mempengaruhi performasi dari teknik data mining karena data yang ditangani akan berkurang jumlah dan kompleksitasnya. 2) Integrasi data (data integration) Integrasi data merupakan penggabungan data dari berbagai database ke dalam satu database baru. Tidak jarang data yang diperlukan untuk data mining tidak hanya berasal dari satu database tetapi juga berasal dari beberapa database atau file teks. Integrasi data dilakukan pada atribut- 15 aribut yang mengidentifikasikan entitas-entitas yang unik seperti atribut nama, jenis produk, nomor pelanggan dan lainnya. Integrasi data perlu dilakukan secara cermat karena kesalahan pada integrasi data bisa menghasilkan hasil yang menyimpang dan bahkan menyesatkan pengambilan aksi nantinya. Sebagai contoh bila integrasi data berdasarkan jenis produk ternyata menggabungkan produk dari kategori yang berbeda maka akan didapatkan korelasi antar produk yang sebenarnya tidak ada. 3) Seleksi Data (Data Selection) Data yang ada pada database sering kali tidak semuanya dipakai, oleh karena itu hanya data yang sesuai untuk dianalisis yang akan diambil dari database. Sebagai contoh, sebuah kasus yang meneliti faktor kecenderungan orang membeli dalam kasus market basket analysis, tidak perlu mengambil nama pelanggan, cukup dengan id pelanggan saja. 4) Transformasi data (Data Transformation) Data diubah atau digabung ke dalam format yang sesuai untuk diproses dalamdata mining. Beberapa metode data mining membutuhkan format data yang khusus sebelum bisa diaplikasikan. Sebagai contoh beberapa metode standar seperti analisis asosiasi dan clustering hanya bisa menerima input data kategorikal. Karenanya data berupa angka numerik yang berlanjut perlu dibagibagi menjadi beberapa interval. Proses ini sering disebut transformasi data. 5) Proses mining Merupakan suatu proses utama saat metode diterapkan untuk menemukan pengetahuan berharga dan tersembunyi dari data. 6) Evaluasi pola (pattern evaluation) Untuk mengidentifikasi pola-pola menarik kedalam knowledge based yang ditemukan. Dalam tahap ini hasil dari teknik data mining berupa pola-pola yang khas maupun model prediksi dievaluasi untuk menilai apakah hipotesa yang ada memang tercapai. Bila ternyata hasil yang diperoleh tidak sesuai hipotesa ada beberapa alternatif yang dapat 16 diambil seperti menjadikannya umpan balik untuk memperbaiki proses data mining, mencoba metode data mining lain yang lebih sesuai, atau menerima hasil ini sebagai suatu hasil yang di luar dugaan yang mungkin bermanfaat. 7) Presentasi pengetahuan (knowledge presentation), Merupakan visualisasi dan penyajian pengetahuan mengenai metode yang digunakan untuk memperoleh pengetahuan yang diperoleh pengguna. Tahap terakhir dari proses data mining adalah bagaimana memformulasikan keputusan atau aksi dari hasil analisis yang didapat. Ada kalanya hal ini harus melibatkan orang-orang yang tidak memahami data mining. Karenanya presentasi hasil datamining dalam bentuk pengetahuan yang bisa dipahami semua orang adalah satu tahapan yang diperlukan dalam proses data mining. Dalam presentasi ini, visualisasi juga bisa membantu mengkomunikasikan hasil data mining.[23] 2.3.4 Komponen Data Mining Secara alami, material data miningsebenarnya sudah terbentuk karena faktor rutinitasdan waktu seraya perusahaan melakukanaktivitasnya. Tanpa disadari perusahaan berinvestasidengan menggunakan bugdetnya untuk penggunaanteknologi informasi atau computer. [24] Tetapi, tanpa penanganan yang seksama,perusahaan tidak dapat memanfaatkan investasinya dilevel yang lebih tinggi, maka dari itu sebelum benar-benar melakukan mining, perusahaan harusmengeluarkan sedikit effort lagi untuk realokasi danpengadaan tools seperti layaknya seseorang yang melakukan penambangan. 17 Gambar 2.3Aliran Data PadaPembentukan Data Warehouse [23] Sebuah perusahaan membangun data warehouse dan data mart menggunakan sumber daya informasi internal dan (mungkin juga) eksternal,kelola data warehouse dengan mining tools akan meng-generate laporan-laporan orientasi strategi dantaktis, dengan view yang dimengerti para pemegang keputusan yang melibatkan pula statistik, pekerja ahli dan menager-menager yang ada setiap liniperusahaan. 2.3.5 Metode Data mining Dengan definisi data mining yang luas, ada banyak jenis metode analisis yang dapat digolongkan dalam data mining. 1) Association rules Association rules (aturan asosiasi) atau affinity analysis (analisis afinitas) berkenaan dengan studi tentang “apa bersama apa”. Sebagai contoh dapat berupa berupa studi transaksi di supermarket, misalnya seseorang yang membeli susu bayi juga membeli sabun mandi. Pada kasus ini berarti susu bayi bersama dengan sabun mandi. Karena awalnya berasal dari studi tentang database transaksi pelanggan untuk menentukan kebiasaan suatu produk dibeli bersama produk apa, maka aturan asosiasi juga sering dinamakan market basket analysis. Aturan asosiasi ingin memberikan informasi tersebut dalam bentuk hubungan “if-then” atau “jika-maka”. Aturan ini dihitung dari data yang sifatnya probabilistik [22] 18 Analisis asosiasi dikenal juga sebagai salah satu metode data mining yang menjadi dasar dari berbagai metode data mining lainnya. Khususnya salah satu tahap dari analisis asosiasi yang disebut analisis pola frekuensi tinggi (frequentpattern mining) menarik perhatian banyak peneliti untuk menghasilkan algoritma yang efisien. Penting tidaknya suatu aturan assosiatif dapat diketahui dengan dua parameter, support (nilai penunjang) yaitu prosentase kombinasi item tersebut. dalam database dan confidence (nilai kepastian) yaitu kuatnya hubungan antar item dalam aturan assosiatif. Analisis asosiasi didefinisikan suatu proses untuk menemukan semua aturan assosiatif yang memenuhi syarat minimum untuk support (minimum support) dan syarat minimum untuk confidence (minimum confidence).[23] Ada beberapa algoritma yang sudah dikembangkan mengenai aturan asosiasi, namun ada satu algoritma klasik yang sering dipakai yaitu algoritma apriori. Ide dasar dari algoritma ini adalah dengan mengembangkan frequent itemset. Dengan menggunakan satu item dan secara rekursif mengembangkan frequent itemset dengan dua item, tiga item dan seterusnya hingga frequent itemset dengan semua ukuran. Untuk mengembangkan frequent set dengan dua item, dapat menggunakanfrequent set item. Alasannya adalah bila set satu item tidak melebihi supportminimum, maka sembarang ukuran itemset yang lebih besar tidak akan melebihisupport minimum tersebut. Secara umum, mengembangkan set dengan fc-item menggunakan frequent set dengan k – 1 item yang dikembangkan dalam langkah sebelumnya. Setiap langkah memerlukan sekali pemeriksaan ke seluruh isidatabase. Dalam asosiasi terdapat istilah antecedent dan consequent, antecedent untuk mewakili bagian “jika” dan consequent untuk mewakili bagian “maka”. Dalam analisis ini, antecedent dan consequent adalah sekelompok item yang tidak punya hubungan secara bersama.[22] Dari jumlah besar aturan yang mungkin dikembangkan, perlu memiliki aturan-aturan yang cukup kuat tingkat ketergantungan antar item 19 dalam antecedent dan consequent. Untuk mengukur kekuatan aturan asosiasi ini, digunakan ukuransupport dan confidence. Support adalah rasio antara jumlah transaksi yang memuatantecedent dan consequent dengan jumlah transaksi. Confidence adalah rasio antara jumlah transaksi yang meliputi semua item dalam antecedent dan consequent dengan jumlah transaksi yang meliputi semua item dalam antecedent. Langkah pertama algoritma apriori adalah, support dari setiap item dihitung dengan men-scan database. Setelah support dari setiap item didapat, item yang memiliki support lebih besar dari minimum support dipilih sebagai pola frekuensi tinggi dengan panjang 1 atau sering disingkat 1-itemset. Singkatan k-itemset berarti satu set yang terdiri dari k item. Iterasi kedua menghasilkan 2-itemset yang tiap set-nya memiliki dua item. Pertama dibuat kandidat 2-itemset dari kombinasi semua 1 -itemset. Lalu untuk tiap kandidat 2-itemset ini dihitung support-nya dengan menscan database. Support artinya jumlah transaksi dalam database yang mengandung kedua item dalam kandidat 2-itemset. Setelah support dari 20 semua kandidat 2-itemset didapatkan, kandidat 2-itemset yang memenuhi syarat minimum support dapat ditetapkan sebagai 2-itemset yang juga merupakan pola frekuensi tinggi dengan panjang 2.[23] Untuk selanjutnya iterasi iterasi ke-k dapat dibagi lagi menjadi beberapa bagian : 1. Pembentukan kandidat itemset Kandidat k-itemset dibentuk dari kombinasi (k-1)-itemset yang didapat dari iterasi sebelumnya. Satu ciri dari algoritma apriori adalah adanya pemangkasan kandidat k-itemset yang subset-nya yang berisi k-1 item tidak termasuk dalam pola frekuensi tinggi dengan panjang k-1. 2. Penghitungan support dari tiap kandidat k-itemset Support dari tiap kandidat k-itemset didapat dengan men-scan database untuk menghitung jumlah transaksi yang memuat semua item di dalam kandidat k-itemset tersebut. Ini adalah juga ciri dari algoritma apriori yaitu diperlukan penghitungan dengan scan seluruh database sebanyak k-itemset terpanjang. 3. Tetapkan pola frekuensi tinggi Pola frekuensi tinggi yang memuat k item atau k-itemset ditetapkan dari kandidat k-itemset yang support-nya lebih besar dari minimum support. Kemudian dihitung confidence masing-masing kombinasi item. Iterasi berhenti ketika semua item telah dihitung sampai tidak ada kombinasi item lagi. [23](Pramudiono, 2007) Secara ringkas algoritma apriori sebagai berikut : Selain algoritma apriori, terdapat juga algoritma lain seperti FPGrwoth. Perbedaan algoritma apriori dengan FP-Growth pada 21 banyaknya scan database. Algoritma apriori melakukan scan database setiap kali iterasi sedangkan algoritmaFP-Growth hanya melakukan sekali di awal.[25] 2) Decision Tree Dalam decision tree tidak menggunakan vector jarak untuk mengklasifikasikan obyek. Seringkali data observasi mempunyai atributatribut yang bernilai nominal. Seperti yang diilustrasikan pada gambar 2.6, misalkan obyeknya adalah sekumpulan buah-buahan yang bisa dibedakan berdasarkan atribut bentuk, warna, ukuran dan rasa. Bentuk, warna, ukuran dan rasa adalah besaran nominal, yaitu bersifat kategoris dan tiap nilai tidak bisa dijumlahkan atau dikurangkan. Dalam atribut warna ada beberapa nilai yang mungkin yaitu hijau, kuning, merah. Dalam atribut ukuran ada nilai besar, sedang dan kecil. Dengan nilai-nilai atribut ini, kemudian dibuat decision tree untuk menentukan suatu obyek termasuk jenis buah apa jika nilai tiap-tiap atribut diberikan.[22] Gambar 2. 6 Decision Tree[22] Ada beberapa macam algoritma decision tree diantaranya CART dan C4.5. Beberapa isu utama dalam decision tree yang menjadi perhatian yaitu seberapa detail dalam mengembangkan decision tree, bagaimana 22 mengatasi atribut yang bernilai continues, memilih ukuran yang cocok untuk penentuan atribut, menangani data training yang mempunyai data yang atributnya tidak mempunyai nilai, memperbaiki efisiensi perhitungan.[22] Decision tree sesuai digunakan untuk kasus-kasus yang keluarannya bernilai diskrit. Walaupun banyak variasi model decision tree dengan tingkat kemampuan dan syarat yang berbeda, pada umumnya beberapa ciri yang cocok untuk diterapkannya decision tree adalah sebagai berikut: 1. Data dinyatakan dengan pasangan atribut dan nilainya 2. Label/keluaran data biasanya bernilai diskrit 3. Data mempunyai missing value (nilai dari suatu atribut tidak diketahui) Dengan cara ini akan mudah mengelompokkan obyek ke dalam beberapa kelompok. Untuk membuat decision tree perlu memperhatikan hal-hal berikut ini: 1. Atribut mana yang akan dipilih untuk pemisahan obyek 2. Urutan atribut mana yang akan dipilih terlebih dahulu 3. Struktur tree 4. Kriteria pemberhentian 5. Pruning [22] 3) Clustering Clustering termasuk metode yang sudah cukup dikenal dan banyak dipakai dalam data mining. Sampai sekarang para ilmuwan dalam bidang data mining masih melakukan berbagai usaha untuk melakukan perbaikan model clustering karena metode yang dikembangkan sekarang masih bersifat heuristic. Usaha-usaha untuk menghitung jumlah cluster yang optimal dan pengklasteran yang paling baik masih terus dilakukan. Dengan demikian menggunakan metode yang sekarang, tidak bisa menjamin hasil pengklasteran sudah merupakan hasil yang optimal. Namun, hasil yang dicapai biasanya sudah cukup bagus dari segi praktis. 23 Gambar 2.7 Clustering[22] Tujuan utama dari metode clustering adalah pengelompokan sejumlah data/obyek ke dalam cluster (group) sehingga dalam setiap cluster akan berisi data yang semirip mungkin seperti diilustrasikan pada gambar 2.7. Dalam clustering metode ini berusaha untuk menempatkan obyek yang mirip (jaraknya dekat) dalam satu klaster dan membuat jarak antar klaster sejauh mungkin. Ini berarti obyek dalam satu cluster sangat mirip satu sama lain dan berbeda dengan obyek dalamcluster-cluster yang lain. Dalam metode ini tidak diketahui sebelumnya berapa jumlah cluster dan bagaimana pengelompokannya. [22] 2.4 Decision Tree 2.4.1 Konsep Decision Tree Salah satu metode data mining yang umum digunakan adalah decision tree. Decision tree adalah struktur flowchart yang menyerupai tree (pohon), dimana setiap simpul internal menandakan suatu tes pada atribut, setiap cabang hasil tes, dan simpul daun merepresentasikan kelas atau distribusi kelas. Alur padadecision tree di telusuri dari simpul akar ke simpul daun yang memegang prediksi kelas untuk contoh tersebut. Decision tree mudah untuk dikonversi ke aturan klasifikasi (classification rules) [26] Konsep decision tree adalah mengubah data menjadi pohon keputusan (decision tree) dan aturan-aturan keputusan (rule) 24 Data Decision Tree Rule Gambar 2.5 Konsep Decision Tree[26] 2.4.2 Tipe Simpul Pada Tree Tree mempunyai 3 tipe simpul yaitu [26] 1) Simpul akar dimana tidak ada masukan edge dan 0 atau lebih keluaranedge (tepi) 2) Simpul internal, masing-masing 1 masukan edge dan 2 atau lebih edge keluaran 3) Simpul daun atau simpul akhir, masing-masing 1 masukan edge dan tidak ada edge keluaran. Pada decision tree setiap simpul daun menandai label kelas. Simpul yang bukan simpul akhir terdiri dari akar dan simpul internal yang terdiri dari kondisi tes atribut pada sebagian record yang mempunyai karakteristik yang berbeda. Simpul akar dan simpul internal ditandai dengan bentuk oval dan simpul daun ditandai dengan bentuk segi empat [22] Banyak algoritma yang dapat dipakai dalam pembentukan pohon keputusan, salah satunya ada algoritma C4.5. Data dalam pohon keputusan biasanya dinyatakan dalam bentuk tabel dengan atribut dan record. Atribut menyatakan suatu parameter yang dibuat sebagai kriteria dalam pembentukan pohon. Decision tree tergantung pada aturan if-then, tetapi tidak membutuhkan parameter dan metrik. Strukturnya yang sederhana dan dapat ditafsirkan memungkinkan decision tree untuk memecahkan masalah atribut multi-type. Decision tree juga dapat mengelola nilai-nilai yang hilang atau data noise. Gambar 2 menunjukkan contoh struktur decision tree [22]. 25 Gambar 2. Contoh Struktur Decision Tree[22] 2.4.3 Konsep Data dalam Decision Tree Ada beberapa konsep dalam decision tree, antara lain: 1) Data dinyatakan dalam bentuk tabel dengan atribut dan record. 2) Atribut menyatakan suatu parameter yang dibuat sebagai kriteria dalam pembentukan tree. Misalkan untuk menentukan main tenis, kriteria yang diperhatikan adalah cuaca, angin dan temperatur. Salah satu atribut merupakan atribut yang menyatakan data solusi per-item data yang disebut dengan target atribut. 3) Atribut memiliki nilai-nilai yang dinamakan dengan instance. Misalkan atribut cuaca mempunyai instance berupa cerah, berawan dan hujan.[26] Nama Cuaca Angin Temperatur Main Ali Cerah Keras Panas Tidak Budi Cerah Lambat Panas Ya Heri Berawan Keras Sedang Tidak Irma Hujan Keras Dingin Tidak Sample Atribut Target Atribut 26 2.4.4 Algoritma C4.5 Algoritma C4.5 adalah algoritma yang digunakan untuk menghasilkan pohon keputusan yang dikembangkan oleh Ross Quinlan. Pohon keputusan yang dihasilkan oleh C4.5 dapat digunakan untuk klasifikasi. Oleh karena itu, algoritma C4.5 sering disebut sebagai statistical classifier [27] Algoritma ini memiliki input berupa data training samples dan samples.Training samples berupa data contoh yang akan digunakan untuk membangun sebuah tree yang telah diuji kebenarannya. Sedangkan samples adalah field-field data yang nantinya akan kita gunakan sebagai parameter dalam melakukan klasifikasi data [26] Algoritma C4.5 dan pohon keputusan merupakan dua model yang tak terpisahkan, karena untuk membangun sebuah pohon keputusan dibutuhkan algoritma C4.5. Algoritma C4.5 merupakan pengembangan dari algoritma ID3. Algoritma C4.5 dan ID3 diciptakan oleh seorang peneliti di bidang kecerdasan buatan bernama J. Rose Quinlan pada akhir tahun 1970-an. Algoritma C4.5 membuat pohon keputusan dari atas ke bawah, di mana atribut paling atas merupakan akar (root), dan yang paling bawah dinamakan daun (leaf). Secara umum alur proses algoritma C4.5 untuk membangun pohon keputusan dalam data mining adalah [25]: 1) Pilih atribut sebagai simpul akar. 2) Buat cabang untuk tiap-tiap nilai. 3) Bagi kasus dalam cabang. 4) Ulangi proses untuk setiap cabang sampai semua kasus pada cabang memiliki kelas yang sama. Pemilihan atribut sebagai simpul, baik akar (root) atau simpul internal didasarkan pada nilai Gain tertinggi dari atribut-atribut yang ada. Setelah membagi data set berdasarkan sebuah atribut kedalam subset yang lebih kecil, entropydari data tersebut akan berubah. Perubahanentropy ini dapat digunakan untuk menentukan bagus tidaknya pembagian data yang telah dilakukan. Perubahan entropi ini disebut dengan information gain dalam 27 algoritma C4.5. Information gain ini diukur dengan menghitung selisih antara entropi data set sebelum dan sesudah pembagian (splitting) dilakukan. Pembagian yang terbaik akan menghasilkan entropi subset yang paling kecil, dengan demikian berdampak pada information gain yang terbesar.Perhitungan nilai Gain digunakan rumus seperti dalam Persamaan 1. |𝑆 | 𝐺𝑎𝑖𝑛(𝑆, 𝐴) = 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑆) − ∑𝑛𝑖=1 |𝑆|𝑖 ∗ 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑆𝑖 ) (1) di mana: S : Himpunan kasus A : Atribut n : Jumlah partisi atribut A |Si| : Jumlah kasus pada partisi ke-i |S| : Jumlah kasus dalam S Entropy merupakan distribusi probabilitas dalam teori informasi dan diadopsi ke dalam algoritma C4.5 untuk mengukur tingkat homogenitas distribusi kelas dari sebuah himpunan data (data set). Sebagai ilustrasi, semakin tinggi tingkat entropy dari sebuah data set maka semakin homogen distribusi kelas pada data set tersebut.Untuk menghitung nilai Entropy dapat dilihat pada Persamaan 2. 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑆) = ∑𝑛𝑖=1 −𝑝𝑖 ∗ 𝑙𝑜𝑔2 𝑝𝑖 di mana: S : Himpunan kasus n : Jumlah partisi S pi : Proporsi dari Siterhadap S (2) 2.5 HTML HyperText Markup Language (HTML) adalah merupakan salah satu varian dari SGML yang dipergunakan dalam pertukaran dokumen melalui protocolHTTP. Tata penulisan yang digunakan dalam dokumen web. Dokumen ini akan dieksekusi oleh browser, sehingga browser mampu menghasilkan sesuatu dokumen sesuai dengan keinginan mendesain page. [27] HyperText Markup Language (HTML) adalah bahasa pengkodean yang digunakan untuk membuat dokumen hypertext untuk digunakan dalam world 28 wideweb. Istilah hyper dalam hypertext diartikan bahwa dalam HTML kita bisa menentukan bahwa sebuah blok teks atau gambar terhubung dengan file lain di internet. Dari dua pendapat diatas dapat disimpulkan bahwa HyperText MarkupLanguage (HTML) dikatakan sebagai bahasa penghubung untuk menerbitkanhypertext pada dunia web, ini merupakan suatu format ketidak pemilikan berdasarkan pada SGML, dan dapat diciptakan dan diproses oleh suatu cakupan luas tools, dan teks data dari program editor sederhana pada saat kita mengetiknya. 2.6 HTTP HyperText Transfer Protocol (HTTP) merupakan protokol yang berfungsi untuk mendesain dan menjelaskan bagaimana server dan client berinteraksi dalam mengirim dan menerima dokumen web, protokol ini didisain untuk mentrasfer berkas yang berisi hypertext seperti berkas yang berisi HTML yang digunakan diword wide web. [27] HyperText Transfer Protocol (HTTP) adalah protokol untuk memindahkanfile hypertext di internet. Hal ini memerlukan HTTP client program di suatu ujung dan HTTP server program di ujung yang lain. Kesimpulan dari dua pendapat diatas adalah HyperText Transfer Protocol (HTTP) adalah protokol yang digunakan untuk mentrasfer dokumen dalam wordwide word (www). Protokol ini adalah protokol jaringan, protokol yang berfungsi untuk mendesain dan menjelaskan bagaimana server dan client berinteraksi dalam mengirim dan menerima dokumen web. 2.7 Apache Apache adalah server web yang tersedia secara gratis dan disebarkan dengan lisensi (open source). Apache tersedia bagai bermacam-macam sistem operasi, seperti UNIX (FreeBSD, Linux, Solaris dan lainnya) dan Windows.Apache mengikuti standar protokol hypertext transport protokol hypertext transportasi protokol yaitu HTTP 1.1 [27] 29 Apache adalah suatu program server web yang paling umum (serverHTTP) dalam internet. Apache merupakan aplikasi terbuka yang awalnya diciptakan dari serangkaian perubahanyang dilakukan terhadap server web, dibuat. (Sudarmo, 2006:19). Dari pendapat diatas apache dapat disimpulkan bahwa server web yangtersedia secara gratis dan disebarkan dengan lisensi ”open source”. Apache merupakan aplikasi terbuka yang awalnya diciptakan dari serangkaian perubahanyang dilakukan terhadap server web. 2.8 PHP Hypertext Preprocessor (PHP) adalah bahasa scripting yang dapat menyatu (embedded) dengan kode-kode HTML dan dieksekusi di sisi server (Server Side Scripting). Semua perintah yang ditulis akan dieksekusi oleh server dan hasil jadinya kode HTML dapat dilihat di browser web. [27] PHP adalah pemrograman yang digunakan untuk membuat software yang merupakan bagian dari sebuah situs web. PHP dirancang untuk berbaur denganHTML yang digunakan untuk membuat halaman web. Kesimpulan dari pendapat diatas adalah Hypertext Preprocessor (PHP) adalah bahasa scripting open source yang ditulis menggunakan sintkas bahasa C,java dan perl. Script PHP menyatu dengan file HTML. PHP dirancang untuk berbaur dengan HTML yang digunakan untuk membuat halaman web. 2.9 MySQL MySQLadalah software sistem manajemen basis data. Basis data adalah suatu koleksi data yang terstruktur. Basis data ini bisa berupa daftar belanja sederhana sampai informasi yang sangat besar dari suatu perusahaan internasional. Untuk menambahkan, mengakses dan memproses data disimpan di computer.[27] MySQL adalah suatu basis data populer dengan pengembangan webdevelopers. Kecepatan dan ukuran yang kecil membuatnya ideal untuk website. Ditambah lagi dengan fakta bahwa MySQL adalah open source yang artinya gratis. Dari dua pendapat di atas bahwa MySQL adalah software sistem 30 manajemen basis data. Basis data ini bisa berupa daftar belanja sederhana sampai informasi yang sangat besar dari suatu perusahaan internasional. 2.10 Kerangka Pemikiran Penulis perlu membuat gambara singkat sebagai alur penyusunan laporan ini dengan kerangka pemikiran sebagai berikut: Masalah Mencari penyebab terapi Haemodalisa Tinjauan Pustaka Buku dan Jurnal Metode Algoritma C4.5 Decision Tree Penerapan Data Pasien RSUD Kardinah Pengembangan PHP & My SQL Hasil Akurasi Penyebab Terapi Haemodalisa Gambar 4: Kerangka Pemikiran BAB 3 METODOLOGI PENELITIAN Dalam penelitian ini menggunakan metode penelitian eksperimen. Dimana penelitian ini bertujuan untukmemecahkan fenomena (masalah) yang ada pada saat ini, pada kasus yang diambil adalah pemberia terapi haemodalisa. Metode eksperimen mempunyai ciri-ciri berpusat pada penyelesaian masalah pada masa sekarang dan pada masalah yang aktual dengan cara data yang terkumpul terlebih dahulu disusun, diolah, diuji dan dievaluasi tentang validasi model. 3.1 Objek Penelitian Penelitian ini mengedepankan penentuan tujuan proyek dan kebutuhan secara detail dalam lingkup bisnis atau unit penelitian secara keseluruhan, serta juga menerjemahkan tujuan dn batasan dari data yaag diambil dari rumah sakit menjadi formula dan permasalahan data mining mulai dari menyiapkan strategi awal hingga metode yang dibutuhkan mencapai tujuan. Dalam penelitian ini, dilakukan dengan mengambil obyek pasien gagal ginjal tahun 2015 di Rumah Sakit Umum Daerah Kardinah Tegal. 3.2 Prosedur Pengumpulan Data Data yang diperoleh dalam penelitian ini merupakan data primer yaitu data yang didapatkan secara langsung dari sumber data dan dibuktikan dengan surat selesai penelitian yang ada pada lampiran tugas akhir ini, dalam hal ini data diperoleh melalui softcopy maupun hardcopy yang tersedia dari RSUD Kardinah pada bagian rekam medik. Pada tahap ini penulis mengumpulkan data dari data rekam medik kemudian menggunakan analisis penyelidikan data untuk mengenali lebih lanjut data dan pencarian pengetahuan awal dan mengevaluasi kualitas data, jika diinginkan, pilih sebagian kecil grup data yang mungkin mengandung pola dari permasalahan. 31 32 Data yang dikumpulkan adalah pasien gagal ginjal pada tahun 2014 dengan atribut usia, jenis kelamin, diagnosa penyakit ginjal, Ureum, Kreatinin, Kalium, Kalsium, hipertensi, haemodalisa. Selain itu dalam membantu penyusunan tugas akhir ini digunaka studi pustaka yang merupakan data sekunder yaitu: 1. Buku yang membahas tentang data mining khsusunya algoritma C4.5 2. E-book mengenai data mining dan algoritmannya 3. Jurnal mengenai terapi haemodalisa. 3.3 Analisis data Dalam penulisan penelitian ini menggunakan analisis data kualitatif yaitu analisis yang dilakukan dengan mengelompokan data untuk mencari suatu poladari hal-hal yang dipelajari dan membandingkanya dalam konsep yang ada didalam sumber. Data yang dikumpulkan adalah pasien gagal ginjal pada tahun 2014 dengan atribut usia, jenis kelamin, diagnosa penyakit ginjal, Ureum, Kreatinin, Kalium, Kalsium, hipertensi, haemodalisa. Sehingga untuk penggunaan algoritma untuk memprediksi terapi haemodalisa dengan menggunkan algoritma C45 hal digunakan untuk klasifikasi pemberian terapi hemodalisa atau tidak. 3.3.1 Fase Pemahaman Data (Data Understanding Phase) Contoh pemodelan data dapat dilihat pada tabel 3.1 dibawah ini: Tabel 3.1. Sampel Data Understanding ID Usia JK Ureum Kreatinin Kalium Calsium Na 1 40 L 34 1,23 0 0 2 50 P 25 1,34 3,43 110,2 3 35 L 18 1,13 .. .. 55 .. P .. .. 124 11,46 106 TD HD 130/90 Ya 144,9 130/90 Tdk 0 0 130/90 Ya .. .. .. .. 6,02 98,5 129,4 140/90 .. Ya 33 Data yang didapat tidak disertai keterangan yang menjelaskan maksud secara rinci mengenai maksud dari data, sehingga peneliti harus menganalisis dengan langkah awal melakukan pencarian informasi mengenai haemodalisa. Setelah melakukan pencarian tersebut, maka didapat beberapa informasi dan keterangan yang dapat membuat peneliti lebih memahami mengenai data pasien yang diberikan terapi haemodalisa tersebut. Variabel-variabel tersebut merupakan komponen yang mempengaruhi seseorang memiliki indikasi harus diberikan terapi haemodalisa. Beberapa atribut merupakan istilah-istilah dalam kedokteran atau kesehatan yang terkait dengan terapi haemodalisa. Untuk keterangan lebih lanjut, pada Tabel 3.2 dijelaskan definisi dari istilahistilah tersebut dari setiap komponen. Tabel 3.2 Definisi Istilah ID Atribut yang menginformasikan nomor identitas pasien Usia Atribut yang menginformasikan umur pasien Jenis Kelamin (JK) Atribut yang menginformasikan jenis kelamin pasien Ureum Atribut yang menginformasikan satu molekul kecil yang mudah mendifusi ke dalam cairan ekstrasel, tetapi pada akhirnya ia dipekatkan dalam urin dan diekskresi. Kreatinin Atribut yang menginformasikan hasil perombakan keratin, semacam senyawa berisi nitrogen yang terutama ada dalam otot Kalium Atribut yang menginformasikan elektrolit tubuh yang terdapat pada cairan vaskuler (pembuluh darah) Calsium Atribut yang menginformasikan elektrolit dalam serum, berperan dalam keseimbangan elektrolit, pencegahan tetani, dan dapat dimanfaatkan untuk mendeteksi gangguan hormon tiroid dan paratiroid Hipertensi Atribut yang menginformasikan penyakit darah tinggi 34 Haemodialisa 3.3.2 Atribut yang menginformasikan terapi cuci darah Fase Pengolahan Data (Data Preparation Phase) Pada tahap ini, penulis melakukan pemilihan atribut data yang digunakan, serta pembagian data menjadi dua kelompok yaitu data testing dan data training yang akan diimplementasikan pada analisa dan pembahasan seperti pada tabel berikut: Tabel 3.3 Atribut Pengolahan Data Atribut Detail penggunaan ID √ Nilai unique Usia √ Nilai Model Jenis Kelamin (JK) √ No Ureum √ Nilai Model Kreatinin √ Nilai Model Kalium √ Nilai Model Calsium √ Nilai Model Hipertensi √ No Haemodialisa √ Label Target Setelah dilakukan pemilihan atribut pada proses pengolahan data dengan berdiskusi pakar dibidangnya yaitu kepala rekam medik rumah sakit tempat melaksanakan penelitian sebagai perwakilan dari pakar bidang kesehatan pada rumah sakit umum Kardinah tersebut, apa sajakah variabel pendukung yang lebih mempengaruhi tingkat keakuratannya dalam pengaruh terapi haemodialisa, pengkonversian atribut ini berguna untuk memudahkan dalam melakukan perhitungan dan analisa dalam tahap data mining atribut maka hasil tabel akan dikonversi seperti dibawah ini: 35 Tabel 3.4 Ilustrasi Atribut yang akan digunakan dalam Pemodelan ID Ureum Kreatinin Kalium Calsium Na TD HD 1 Normal Normal Rendah Rendah Rendah Normal Ya 2 Normal Normal Normal Tinggi Normal Normal Tdk 3 Normal Normal Rendah Rendah Rendah Normal Ya Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya .. 106 Data dengan atribut yang telah dipilih kemudian dikonversikan untuk memudahkan proses data mining. Batas normal setiap komponen-komponen yang terkait terapi haemodalisa tersebut ditentukan oleh nilai laboratorium normal. Berikut data atribut yang akan dikonversi: 1. Ureum Ureum merupakan keterangan kadar ureum pasien dalam satuan mg/dL dan bertipe integer akan dikonversikan menjadi tiga kategori yaitu rendah (< 15 mg/dL), normal (15-40 mg/dL) dan tinggi (>40 mg/dL) 2. Kreatinin Kreatinin merupakan keterangan kadar kreatin darah pasien dalam satuan mg/dL dan bertipe integer akan dikonversikan menjadi tiga kategori yaitu rendah (< 0,5 mg/dL), normal (0,5-1,5 mg/dL) dan tinggi (>1,5 mg/dL) 3. Kalium Kalium merupakan keterangan kadar kalium pasien dalam satuan mEq/L dan bertipe integer akan dikonversikan menjadi tiga kategori yaitu rendah (< 3,5 mEq/L), normal (3,5-5 mEq/L) dan tinggi (>5 mEq/L) 4. Clorida Clrorida merupakan keterangan kadar cairan anion ekstraseluler ditemukan di darah pasien dalam satuan mEq/L dan bertipe integer akan dikonversikan menjadi tiga kategori yaitu rendah (< 95 mEq/L), normal (95-105 mEq/L) dan tinggi (>105 mEq/L) 5. Natrium Natrium merupakan keterangan kadar satu mineral yang banyak terdapat pada cairan elektrolit ekstraseluler darah pasien dalam satuan mEq/L dan bertipe 36 integer akan dikonversikan menjadi tiga kategori yaitu rendah (<135 mEq/L), normal (135-145 mEq/L) dan tinggi (>145 mEq/L) 6. Tekanan Darah Tekanan darah merupakan keterangan tekanan darah pasien dalam satuan mmHg, tekanan darah yang diambil adalah sisi atas atau tekanan darah sistolik dan bertipe integer akan dikonversikan menjadi tiga kategori yaitu rendah (< 100 mmHg), normal (100-120 mmHg) dan tinggi (>120 mmHg) 3.3.3 Fase Pemodelan (Modelling Phase) Metode yang akan digunakan dalam penelitian ini adalah Algoritma C4.5 untuk melakukan pengukuran akurasi dalam penelitian ini. Pemodelan fungsi digambarkan dengan bahsa pemrograman PHP dan MySql. Berikut adalah gambaran pemodelan penelitian: Data Set Processing: - Konvertion Data - Replacing Data New Dataset Modelling Algoritma C4.5 Training data Evaluating Confucsion Matrix Training Data Gambar 3.1 Model Penelitian yang diusulkan 3.3.4 Evaluasi (Evaluation Phase) Dalam tahapan ini akan dilakukan validasi serta pengukuran keakuratan hasil yang dicapai oleh model menggunakan beberapa teknik presisi dan recall dan accuracy. Precisionadalah tingkat ketepatan antara informasi yang diminta oleh pengguna dengan jawaban yang diberikan oleh sistem. recall adalah tingkat keberhasilan sistem dalam menemukan kembali sebuah informasi.Sedangkan Accuracy didefinisikan sebagai tingkat kedekatan antara nilai prediksi dengan nilai aktual. Ilustrasi berikut ini memberikan gambaran perbedaan antara accuracy, recall dan precision. 37 3.3.5 Fase Penyebaran (Deployment Phase) Hasil dari penelitian ini berupa analisis yang mengarahkan ke decision support system (DSS) yang diharapkan dapat digunakan oleh masyarakat secara luas sebagai bahan pertimbangan dalam menentukan langkah guna mengantisipasi terapi haemodialisa dengan atribut yang telah dijabarkan, serta juga sebagai pengetahuan masyarakat tentag potensi yang menyebabkan terapi haemodialisa. Selain itu hasil dari analisa ini juga akan digunakan dasar perancagan sebuah sistem pengambil keputusan guna melakukan identifikasi pasien diberikan terapi haemodialisa. BAB IV PERANCANGAN (Modelling Phase) 4.1 Studi kasus Algoritma C4.5 Berikut ini adalah tahapan Decision Tree (pohon keputusan) dengan algoritma C4.5 menggunakan studi kasus sebagai berikut: Menentukan klasifikasi terapi haemodialisa dan tidak terapi haemodialisa dalam sata pasien suatu rumah sakit dengan atribut yaitu kadar ureum, kreatinin, kalium, Klorida, Natrium dan Tekanan Darah, menggunakan dataset pasien rumah sakit. Siapkan data training, data ini biasanya didapat dari data histori yang pernah terjadi dan terekam sebelumnya yaitu ada 200 pasien dan telah dimasukan kedalam kelompok-kelompok tertentu: Tabel 4.1. Studi Kasus Pasien dengan terapi haemodialisa Ureum (mg/dL) Id Kreatinin (mg/dL) Kalium (mEq/L) Calsium (mg/dl) Natrium (mEq/L) tekanan darah (mmHg) 1 15 1,3 1,3 15 15 130 2 16 1,2 1,2 16 16 130 3 20 1 1 20 20 130 4 45 6 6 45 45 130 5 47 6 6 47 47 130 6 110 4 4 110 110 110 7 112 1 1 112 112 130 8 54 2 2 54 54 130 9 67 3 3 67 67 130 10 15 1,3 1,3 15 15 130 11 16 1,2 1,2 16 16 130 12 30 1 1 30 30 30 13 30 1,3 1,3 30 30 30 14 34 1,2 1,2 34 34 34 15 24 1 1 24 24 24 16 27 1,3 1,3 27 27 140 17 24 1,2 1,2 24 24 140 18 23 1 1 23 23 140 19 67 4 4 67 67 140 20 87 5 5 87 87 140 38 39 21 66 4 4 66 66 66 22 56 2 2 56 56 56 23 100 1,3 1,3 100 100 140 24 99 4 4 99 99 140 25 80 3 3 80 80 140 26 78 3 3 78 78 78 27 78 1 1 78 78 140 28 66 4 4 66 66 140 29 67 3 3 67 67 140 30 16 1,3 1,3 16 16 140 31 16 1,2 1,2 16 16 140 32 18 1 1 18 18 140 33 100 4 4 100 100 140 34 99 4 4 99 99 140 35 89 4 4 89 89 89 36 98 1 1 98 98 140 37 89 4 4 89 89 140 38 60 4 4 60 60 140 39 16 1,3 1,3 16 16 140 40 30 1,2 1,2 30 30 140 41 30 1 1 30 30 30 42 20 1,3 1,3 20 20 20 43 25 1,2 1,2 25 25 25 44 25 1 1 25 25 25 45 25 1,3 1,3 25 25 140 46 25 1,2 1,2 25 25 140 47 27 1 1 27 27 140 48 100 4 4 100 100 140 49 99 4 4 99 99 140 50 89 4 4 89 89 89 51 98 4 4 98 98 98 52 100 1 1 100 100 140 53 99 5 5 99 99 140 54 89 5 5 89 89 140 55 98 5 5 98 98 98 56 100 1 1 100 100 140 57 99 5 5 99 99 140 58 78 5 5 78 78 140 59 98 1,3 1,3 98 98 140 60 16 1,2 1,2 16 16 140 61 30 1 1 30 30 140 40 62 98 5 5 98 98 140 63 100 5 5 100 100 140 64 99 4 4 99 99 99 65 98 1 1 98 98 140 66 100 4 4 100 100 140 67 99 3 3 99 99 140 68 16 1,3 1,3 16 16 140 69 30 1,2 1,2 30 30 140 70 16 1 1 16 16 16 71 30 1,3 1,3 30 30 30 72 16 1,2 1,2 16 16 16 73 30 1 1 30 30 30 74 16 1,3 1,3 16 16 140 75 30 1,2 1,2 30 30 140 76 16 1 1 16 16 140 77 30 4 4 30 30 140 78 98 4 4 98 98 140 79 100 4 4 100 100 100 80 99 4 4 99 99 99 81 98 1 1 98 98 140 82 100 2 2 100 100 140 83 99 2 2 99 99 140 84 98 2 2 98 98 98 85 100 1 1 100 100 140 86 99 3 3 99 99 140 87 76 3 3 76 76 140 88 79 3 3 79 79 79 89 99 1 1 99 99 140 90 98 3 3 98 98 140 91 90 3 3 90 90 140 92 99 3 3 99 99 99 93 98 1 1 98 98 140 94 100 3 3 100 100 140 95 99 3 3 99 99 140 96 30 1 1 30 30 140 97 16 1 1 16 16 140 98 30 1 1 30 30 140 99 16 2 2 16 16 16 100 99 1 1 99 99 140 101 76 2 2 76 76 140 102 79 2 2 79 79 140 41 103 99 2 2 99 99 99 104 98 1 1 98 98 140 105 90 3 3 90 90 140 106 99 2 2 99 99 140 107 30 1 1 30 30 140 108 16 1,3 1,3 16 16 140 109 30 1,2 1,2 30 30 140 110 16 1 1 16 16 140 111 30 1,3 1,3 30 30 140 112 16 1,2 1,2 16 16 140 113 30 1 1 30 30 140 114 16 1 1 16 16 140 115 17 1 1 17 17 140 116 99 3 3 99 99 140 117 100 3 3 100 100 140 118 30 1 1 30 30 140 119 16 1 1 16 16 140 120 17 1 1 17 17 140 121 120 3 3 120 120 120 122 30 1 1 30 30 140 123 16 1 1 16 16 140 124 17 1 1 17 17 140 125 79 3 3 79 79 79 126 88 1 1 88 88 140 127 30 1 1 30 30 140 128 16 1 1 16 16 140 129 17 1 1 17 17 140 130 16 1 1 16 16 140 131 17 1 1 17 17 140 132 99 1,2 1,2 99 99 140 133 98 3 3 98 98 140 134 90 3 3 90 90 140 135 17 1,1 1,1 17 17 140 136 16 1,3 1,3 16 16 140 137 17 1,3 1,3 17 17 140 138 120 3 3 120 120 120 139 130 1 1 130 130 130 140 98 2 2 98 98 140 141 79 2 2 79 79 140 142 80 3 3 80 80 80 143 100 1 1 100 100 140 42 144 130 2 2 130 130 140 145 140 2 2 140 140 140 146 17 2 2 17 17 140 147 16 2 2 16 16 140 148 17 2 2 17 17 140 149 79 3 3 79 79 79 150 80 1 1 80 80 140 151 100 5 5 100 100 140 152 130 5 5 130 130 140 153 140 5 5 140 140 140 154 17 1,1 1,1 17 17 140 155 16 1,3 1,3 16 16 140 156 17 1,3 1,3 17 17 140 157 79 3 3 79 79 140 158 80 3 3 80 80 140 159 100 3 3 100 100 100 160 130 1 1 130 130 140 161 140 3 3 140 140 140 162 102 3 3 102 102 140 163 17 1,1 1,1 17 17 140 164 16 1,3 1,3 16 16 140 165 17 1,3 1,3 17 17 17 166 17 1,1 1,1 17 17 17 167 16 1,3 1,3 16 16 16 168 17 1,3 1,3 17 17 17 169 17 1,1 1,1 17 17 140 170 16 1,3 1,3 16 16 140 171 17 1,3 1,3 17 17 140 172 17 1,1 1,1 17 17 140 173 16 1,3 1,3 16 16 140 174 17 1,3 1,3 17 17 140 175 67 3 3 67 67 140 176 17 1,1 1,1 17 17 140 177 16 1,3 1,3 16 16 140 178 17 1,3 1,3 17 17 140 179 80 3 3 80 80 140 180 70 3 3 70 70 140 181 17 1,1 1,1 17 17 140 182 16 1,3 1,3 16 16 140 183 17 1,3 1,3 17 17 17 184 17 1,1 1,1 17 17 17 43 185 16 1,3 1,3 16 16 16 186 17 1,3 1,3 17 17 17 187 17 1,1 1,1 17 17 140 188 16 1,3 1,3 16 16 140 189 17 1,3 1,3 17 17 140 190 17 1,1 1,1 17 17 140 191 16 1,3 1,3 16 16 140 192 17 1,3 1,3 17 17 140 193 90 3 3 90 90 140 194 98 3 3 98 98 140 195 17 1,1 1,1 17 17 17 196 16 1,3 1,3 16 16 16 197 17 1,3 1,3 17 17 140 198 17 1,1 1,1 17 17 140 199 16 1,3 1,3 16 16 140 200 120 2 2 120 120 140 Berdasarkan data asli tersebut kemudian dilakukan mengkategorian berdasarkan acuan dari kesehatan, adapun hasilnya adalah sebagai berikut: Tabel 4.2. Studi Kasus Pasien dengan terapi haemodialisa id ureum kreatinin kalium clorida natrium tekanan_darah class 1 Normal Normal Rendah Rendah Rendah Tinggi Tidak 2 Normal Normal Normal Tinggi Normal Tinggi Tidak 3 Normal Normal Rendah Rendah Rendah Tinggi Tidak 4 Tinggi Tinggi Normal Tinggi Normal Tinggi Ya 5 Tinggi Tinggi Normal Normal Normal Tinggi Tidak 6 Tinggi Tinggi Normal Normal Rendah Rendah Ya 7 Tinggi Normal Normal Normal Normal Tinggi Ya 8 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 9 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 10 Normal Normal Normal Normal Normal Tinggi Tidak 11 Normal Normal Rendah Tinggi Normal Tinggi Tidak 12 Normal Normal Normal Rendah Normal Normal Tidak 13 Normal Normal Rendah Normal Normal Normal Tidak 14 Normal Normal Normal Normal Normal Normal Tidak 15 Normal Normal Rendah Normal Normal Normal Tidak 16 Normal Normal Rendah Rendah Rendah Tinggi Tidak 17 Normal Normal Normal Tinggi Normal Tinggi Tidak 18 Normal Normal Rendah Rendah Rendah Tinggi Tidak 19 Tinggi Tinggi Normal Tinggi Normal Tinggi Ya 44 20 Tinggi Tinggi Normal Normal Normal Tinggi Tidak 21 Tinggi Tinggi Normal Normal Rendah Rendah Ya 22 Tinggi Tinggi Normal Normal Rendah Rendah Ya 23 Tinggi Normal Normal Normal Normal Tinggi Ya 24 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 25 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 26 Tinggi Tinggi Normal Normal Rendah Rendah Ya 27 Tinggi Normal Normal Normal Normal Tinggi Ya 28 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 29 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 30 Normal Normal Rendah Rendah Rendah Tinggi Tidak 31 Normal Normal Normal Tinggi Normal Tinggi Tidak 32 Normal Normal Rendah Rendah Rendah Tinggi Tidak 33 Tinggi Tinggi Normal Tinggi Normal Tinggi Ya 34 Tinggi Tinggi Normal Normal Normal Tinggi Tidak 35 Tinggi Tinggi Normal Normal Rendah Rendah Ya 36 Tinggi Normal Normal Normal Normal Tinggi Ya 37 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 38 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 39 Normal Normal Normal Normal Normal Tinggi Tidak 40 Normal Normal Rendah Tinggi Normal Tinggi Tidak 41 Normal Normal Normal Rendah Normal Normal Tidak 42 Normal Normal Rendah Normal Normal Normal Tidak 43 Normal Normal Normal Normal Normal Normal Tidak 44 Normal Normal Rendah Normal Normal Normal Tidak 45 Normal Normal Rendah Rendah Rendah Tinggi Tidak 46 Normal Normal Normal Tinggi Normal Tinggi Tidak 47 Normal Normal Rendah Rendah Rendah Tinggi Tidak 48 Tinggi Tinggi Normal Tinggi Normal Tinggi Ya 49 Tinggi Tinggi Normal Normal Normal Tinggi Tidak 50 Tinggi Tinggi Normal Normal Rendah Rendah Ya 51 Tinggi Tinggi Normal Normal Rendah Rendah Ya 52 Tinggi Normal Normal Normal Normal Tinggi Ya 53 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 54 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 55 Tinggi Tinggi Normal Normal Rendah Rendah Ya 56 Tinggi Normal Normal Normal Normal Tinggi Ya 57 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 58 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 59 Normal Normal Rendah Rendah Rendah Tinggi Tidak 60 Normal Normal Normal Tinggi Normal Tinggi Tidak 45 61 Normal Normal Rendah Rendah Rendah Tinggi Tidak 62 Tinggi Tinggi Normal Tinggi Normal Tinggi Ya 63 Tinggi Tinggi Normal Normal Normal Tinggi Tidak 64 Tinggi Tinggi Normal Normal Rendah Rendah Ya 65 Tinggi Normal Normal Normal Normal Tinggi Ya 66 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 67 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 68 Normal Normal Normal Normal Normal Tinggi Tidak 69 Normal Normal Rendah Tinggi Normal Tinggi Tidak 70 Normal Normal Normal Rendah Normal Normal Tidak 71 Normal Normal Rendah Normal Normal Normal Tidak 72 Normal Normal Normal Normal Normal Normal Tidak 73 Normal Normal Rendah Normal Normal Normal Tidak 74 Normal Normal Rendah Rendah Rendah Tinggi Tidak 75 Normal Normal Normal Tinggi Normal Tinggi Tidak 76 Normal Normal Rendah Rendah Rendah Tinggi Tidak 77 Tinggi Tinggi Normal Tinggi Normal Tinggi Ya 78 Tinggi Tinggi Normal Normal Normal Tinggi Tidak 79 Tinggi Tinggi Normal Normal Rendah Rendah Ya 80 Tinggi Tinggi Normal Normal Rendah Rendah Ya 81 Tinggi Normal Normal Normal Normal Tinggi Ya 82 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 83 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 84 Tinggi Tinggi Normal Normal Rendah Rendah Ya 85 Tinggi Normal Normal Normal Normal Tinggi Ya 86 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 87 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 88 Tinggi Tinggi Normal Normal Rendah Rendah Ya 89 Tinggi Normal Normal Normal Normal Tinggi Ya 90 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 91 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 92 Tinggi Tinggi Normal Normal Rendah Rendah Ya 93 Tinggi Normal Normal Normal Normal Tinggi Ya 94 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 95 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 96 Normal Normal Rendah Rendah Rendah Tinggi Tidak 97 Normal Normal Normal Tinggi Normal Tinggi Tidak 98 Normal Normal Rendah Rendah Rendah Tinggi Tidak 99 Tinggi Tinggi Normal Normal Rendah Rendah Ya 100 Tinggi Normal Normal Normal Normal Tinggi Ya 101 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 46 102 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 103 Tinggi Tinggi Normal Normal Rendah Rendah Ya 104 Tinggi Normal Normal Normal Normal Tinggi Ya 105 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 106 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 107 Normal Normal Rendah Rendah Rendah Tinggi Tidak 108 Normal Normal Normal Tinggi Normal Tinggi Tidak 109 Normal Normal Rendah Rendah Rendah Tinggi Tidak 110 Normal Normal Rendah Rendah Rendah Tinggi Tidak 111 Normal Normal Normal Tinggi Normal Tinggi Tidak 112 Normal Normal Rendah Rendah Rendah Tinggi Tidak 113 Normal Normal Rendah Rendah Rendah Tinggi Tidak 114 Normal Normal Normal Tinggi Normal Tinggi Tidak 115 Normal Normal Rendah Rendah Rendah Tinggi Tidak 116 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 117 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 118 Normal Normal Rendah Rendah Rendah Tinggi Tidak 119 Normal Normal Normal Tinggi Normal Tinggi Tidak 120 Normal Normal Rendah Rendah Rendah Tinggi Tidak 121 Tinggi Tinggi Normal Normal Rendah Rendah Ya 122 Normal Normal Rendah Rendah Rendah Tinggi Tidak 123 Normal Normal Normal Tinggi Normal Tinggi Tidak 124 Normal Normal Rendah Rendah Rendah Tinggi Tidak 125 Tinggi Tinggi Normal Normal Rendah Rendah Ya 126 Tinggi Normal Normal Normal Normal Tinggi Ya 127 Normal Normal Rendah Rendah Rendah Tinggi Tidak 128 Normal Normal Normal Tinggi Normal Tinggi Tidak 129 Normal Normal Rendah Rendah Rendah Tinggi Tidak 130 Normal Normal Normal Tinggi Normal Tinggi Tidak 131 Normal Normal Rendah Rendah Rendah Tinggi Tidak 132 Tinggi Normal Normal Normal Normal Tinggi Ya 133 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 134 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 135 Normal Normal Rendah Rendah Rendah Tinggi Tidak 136 Normal Normal Normal Tinggi Normal Tinggi Tidak 137 Normal Normal Rendah Rendah Rendah Tinggi Tidak 138 Tinggi Tinggi Normal Normal Rendah Rendah Ya 139 Tinggi Normal Normal Normal Normal Tinggi Ya 140 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 141 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 142 Tinggi Tinggi Normal Normal Rendah Rendah Ya 47 143 Tinggi Normal Normal Normal Normal Tinggi Ya 144 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 145 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 146 Normal Normal Rendah Rendah Rendah Tinggi Tidak 147 Normal Normal Normal Tinggi Normal Tinggi Tidak 148 Normal Normal Rendah Rendah Rendah Tinggi Tidak 149 Tinggi Tinggi Normal Normal Rendah Rendah Ya 150 Tinggi Normal Normal Normal Normal Tinggi Ya 151 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 152 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 153 Tinggi Tinggi Normal Normal Rendah Rendah Ya 154 Normal Normal Rendah Rendah Rendah Tinggi Tidak 155 Normal Normal Normal Tinggi Normal Tinggi Tidak 156 Normal Normal Rendah Rendah Rendah Tinggi Tidak 157 Tinggi Tinggi Normal Tinggi Normal Tinggi Ya 158 Tinggi Tinggi Normal Normal Normal Tinggi Tidak 159 Tinggi Tinggi Normal Normal Rendah Rendah Ya 160 Tinggi Normal Normal Normal Normal Tinggi Ya 161 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 162 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 163 Normal Normal Normal Normal Normal Tinggi Tidak 164 Normal Normal Rendah Tinggi Normal Tinggi Tidak 165 Normal Normal Normal Rendah Normal Normal Tidak 166 Normal Normal Rendah Normal Normal Normal Tidak 167 Normal Normal Normal Normal Normal Normal Tidak 168 Normal Normal Rendah Normal Normal Normal Tidak 169 Normal Normal Rendah Rendah Rendah Tinggi Tidak 170 Normal Normal Normal Tinggi Normal Tinggi Tidak 171 Normal Normal Rendah Rendah Rendah Tinggi Tidak 172 Normal Normal Rendah Rendah Rendah Tinggi Tidak 173 Normal Normal Normal Tinggi Normal Tinggi Tidak 174 Normal Normal Rendah Rendah Rendah Tinggi Tidak 175 Tinggi Tinggi Normal Tinggi Normal Tinggi Ya 176 Normal Normal Rendah Rendah Rendah Tinggi Tidak 177 Normal Normal Normal Tinggi Normal Tinggi Tidak 178 Normal Normal Rendah Rendah Rendah Tinggi Tidak 179 Tinggi Tinggi Tinggi Normal Rendah Tinggi Ya 180 Tinggi Tinggi Tinggi Tinggi Tinggi Tinggi Ya 181 Normal Normal Normal Normal Normal Tinggi Tidak 182 Normal Normal Rendah Tinggi Normal Tinggi Tidak 183 Normal Normal Normal Rendah Normal Normal Tidak 48 184 Normal Normal Rendah Normal Normal Normal Tidak 185 Normal Normal Normal Normal Normal Normal Tidak 186 Normal Normal Rendah Normal Normal Normal Tidak 187 Normal Normal Rendah Rendah Rendah Tinggi Tidak 188 Normal Normal Normal Tinggi Normal Tinggi Tidak 189 Normal Normal Rendah Rendah Rendah Tinggi Tidak 190 Normal Normal Rendah Rendah Rendah Tinggi Tidak 191 Normal Normal Normal Tinggi Normal Tinggi Tidak 192 Normal Normal Rendah Rendah Rendah Tinggi Tidak 193 Tinggi Tinggi Normal Tinggi Normal Tinggi Ya 194 Tinggi Tinggi Normal Normal Normal Tinggi Tidak 195 Normal Normal Normal Normal Normal Normal Tidak 196 Normal Normal Rendah Normal Normal Normal Tidak 197 Normal Normal Rendah Rendah Rendah Tinggi Tidak 198 Normal Normal Normal Tinggi Normal Tinggi Tidak 199 Normal Normal Rendah Rendah Rendah Tinggi Tidak 200 Tinggi Tinggi Normal Tinggi Normal Tinggi Ya 1. Tentukan akar dari pohon, akar atau node awal yang akan diambil dari atribut yang dipilih, dengan cara menghitung Gain kemudian memilih Gain tertinggi dari masing-masing atribut. Namun sebelum menghitung Gain dari atribut, harus dihitung dulu nilai entropy sebagai berikut: Tabel 4.2. Sampel jumlah kasus setiap atribut Atribut Nilai Sum (Nilai) Sum(Ya) Sum(Tidak) UR Rendah 100 0 100 Normal 0 0 0 Tinggi 100 92 8 CR Rendah 119 19 100 Normal 0 0 0 Tinggi 81 73 8 K Rendah 99 52 47 Normal 61 0 61 Tinggi 40 40 0 Cl Rendah 92 62 30 Normal 50 0 50 Tinggi 58 30 28 Na Rendah 92 29 63 Normal 88 43 45 Tinggi 20 20 0 49 TD Rendah Normal Tinggi 22 23 155 0 23 69 22 0 86 2. Kemudian lakukan perhitungan nilai Gain sesuai rumus 2.1 untuk menghitung Gain diwajibkan untuk mencari entropy dari setiap tupel atribut masing-masing, contohnya sebagai berikut 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑠𝑒𝑚𝑢𝑎𝐾𝑎𝑠𝑢𝑠) = (− ( 92 92 108 108 ) ∗ log 2 ) + (− ( ) ∗ log 2 ) 200 200 200 200 = 0, 9954 0 0 100 100 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑈𝑅 − 𝑅𝑒𝑛𝑑𝑎𝐻) = (− ( ) ∗ log 2 ) + (− ( ) ∗ log 2 ) 100 100 100 100 =0 0 0 0 0 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑈𝑅 − 𝑁𝑜𝑟𝑚𝑎𝑙) = (− ( ) ∗ log 2 ) + (− ( ) ∗ log 2 ) 0 0 0 0 =0 92 92 8 8 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑈𝑅 − 𝑇𝑖𝑛𝑔𝑔𝑖) = (− ( ) ∗ log 2 ) + (− ( ) ∗ log 2 ) 100 100 100 100 = 0.4022 Setelah itu menghitung Gain untuk setiap atribut terapi hemodialisa: 𝑛 |𝑆𝑖 | 𝐺𝑎𝑖𝑛(𝑆, 𝐴) = 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑆) − ∑ ∗ 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑆𝑖 ) |𝑆| 𝑖=1 100 0 100 𝐺𝑎𝑖𝑛 (𝑈𝑅) = 0,9954 − (( ∗ 0) + ( ∗ 0) + ( ∗ 0,4022)) 200 200 200 = 0.7943 119 0 81 𝐺𝑎𝑖𝑛 (𝐶𝑅) = 0,9954 − (( ∗ 0.6335) + ( ∗ 0) + ( ∗ 0.4651)) 200 200 200 = 0.4301 99 61 40 𝐺𝑎𝑖𝑛 (𝐾) = 0,9954 − (( ∗ 0.9982) + ( ∗ 0) + ( ∗ 0)) 200 200 200 = 0, 5013 92 50 58 𝐺𝑎𝑖𝑛 (𝐶𝑙) = 0,9954 − (( ∗ 0.9109) + ( ∗ 0) + ( ∗ 0.9991)) 200 200 200 = 0.2866 92 88 20 𝐺𝑎𝑖𝑛 (𝑁𝑎) = 0,9954 − (( ∗ 0.8991) + ( ∗ 0.9996) + ( ∗ 0)) 200 200 200 = 0.142 22 23 155 𝐺𝑎𝑖𝑛 (𝑇𝐷) = 0,9954 − (( ∗ 0) + ( ∗ 0) + ( ∗ 0.9913)) 200 200 200 = 0.2271 Adapun hasil entropy masing-masing atribut adalah sebagai berikut: 50 Tabel 4.3. Nilai Entropy setiap atribut Node 1 No Atribut Nilai Atribut Jumlah Kasus Total Jumlah Kasus Ya Jumlah Kasus Tidak Entropy Inform ation Gain Split Info Gain Ratio 1 Total Total 200 92 108 0.9954 0 2 ureum Normal 100 0 100 0 0.7943 1 0.7943 3 ureum Rendah 0 0 0 0 0.7943 1 0.7943 4 ureum Tinggi 100 92 8 0.4022 0.7943 1 0.7943 5 kreatinin Normal 119 19 100 0.6335 0.4301 0.9738 0.4417 6 kreatinin Rendah 0 0 0 0.4301 0.9738 0.4417 7 kreatinin Tinggi 81 73 8 0.4651 0.4301 0.9738 0.4417 8 kalium Normal 99 52 47 0.9982 0.5013 14.891 0.3366 9 kalium Rendah 61 0 61 0 0.5013 14.891 0.3366 10 kalium Tinggi 40 40 0 0 0.5013 14.891 0.3366 11 clorida Normal 92 62 30 0.2866 15.332 0.1869 12 clorida Rendah 50 0 50 0.2866 15.332 0.1869 13 clorida Tinggi 58 30 28 0.9991 0.2866 15.332 0.1869 14 natrium Normal 92 29 63 0.8991 0.142 13.687 0.1037 15 natrium Rendah 88 43 45 0.9996 0.142 13.687 0.1037 16 17 18 natrium tekanan_darah tekanan_darah Tinggi Normal Rendah 20 22 23 20 0 23 0 22 0 0.142 0.2271 0.2271 13.687 0.9941 0.9941 0.1037 0.2284 0.2284 19 tekanan_darah Tinggi 155 69 86 0.2271 0.9941 0.2284 0 0.9109 0 0 0 0 0.9913 3. Proses partisi pohon keputusan ini akan berhenti ketika tidak ada atribut didalam tupel yang dipartisi lagi, serta tidak ada tupel didalam cabang yang kosong. Dari tabel diatas dapat diketahui bahwa atribut dengan Gain tertinggi adalah Ureum yaitu sebesar 0,7943. Dengan demikian atribut Ureum dapat menjadi node akar. Ada 3 nilai varaibel dari atribut Ureum yaitu rendah, normal dan tinggi, akan tetapi variabel rendah tidak ada kasus, nilai varabel Normal sudah mengklasifikasika kasus menjadi 100 yaitu keputusannya Tidak Haemodialisa, sehingga tidak perlu dilakukan perhitungan lebih lanjut, tetapi untuk nilai vaiabel Tinggi masih perlu dilakukan perhitungan lagi. Dari hasil tersebut dapat digambarkan pohon keputusan sementara sebagai berikut: 51 1.Ureum Normal Tinggi Tidak HD ? Gambar 4.1 Pohon Keputusan Hasil Perhitungan Node 1 Menghitung jumlah kasus untuk keputusan HD dan untuk keputusan Tidak HD, dan entropy dari semua kasus dan kasus yang dibagikan berdasarkan atribut “Ureum-Tinggi” yang dapat menjadi node akar dari nilai variabel Normal dari atribut Ureum. Setelah itu lakukan perhitungan Gain untuk masing-masing atribut. Sebelum menghitung Gain lakukan perhitungan Entropy dari setiap atribut. Hasil Perhitungannya sebagai berikut: Tabel 4.4. Sampel jumlah kasus setiap atribut Node 1.1 No Atribut Nilai Atribut Jumlah Kasus Total Jumlah Kasus Ya Jumlah Kasus Tidak Entropy Inform ation Gain Split Info Gain Ratio 1 Total Total 100 92 8 0.4022 0 2 kreatinin Normal 19 19 0 0 0.0255 0.7015 0.0364 3 kreatinin Rendah 0 0 0 0 0.0255 0.7015 0.0364 4 kreatinin Tinggi 81 73 8 0.4651 0.0255 0.7015 0.0364 5 kalium Normal 60 52 8 0.5665 0.0623 0.971 0.0642 6 kalium Rendah 0 0 0 0 0.0623 0.971 0.0642 7 kalium Tinggi 40 40 0 0 0.0623 0.971 0.0642 8 clorida Normal 70 62 8 0.5127 0.0433 0.8813 0.0491 9 clorida Rendah 0 0 0 0 0.0433 0.8813 0.0491 10 clorida Tinggi 30 30 0 0 0.0433 0.8813 0.0491 11 natrium Normal 37 29 8 0.7532 0.1235 1.5187 0.0813 12 natrium Rendah 43 43 0 0 0.1235 1.5187 0.0813 13 natrium Tinggi 20 20 0 0 0.1235 1.5187 0.0813 14 tekanan_darah Normal 0 0 0 0 0.0317 0.778 0.0407 15 tekanan_darah Rendah 23 23 0 0 0.0317 0.778 0.0407 16 tekanan_darah Tinggi 77 69 8 0.4812 0.0317 0.778 0.0407 52 Dari tabel diatas dapat diketahui bahwa atribut dengan Gain tertinggi adalah Natrium yaitu sebesar 0.1235. Dengan demikian atribut Natrium dapat menjadi node akar. Ada 3 nilai varaibel dari atribut Natrium yaitu rendah, normal dan tinggi, nilai varabel Rendah dan Tinggi sudah mengklasifikasikan kasus menjadi 1 yaitu keputusannya Haemodialisa, sehingga tidak perlu dilakukan perhitungan lebih lanjut, tetapi untuk nilai vaiabel Normal masih perlu dilakukan perhitungan lagi. Dari hasil tersebut dapat digambarkan pohon keputusan sementara sebagai berikut: Ureum Normal Tinggi Tidak HD Natrium Rendah HD Tinggi Normal ? HD Gambar 4.2 Pohon Keputusan Hasil Perhitungan Node 1.1 Menghitung jumlah kasus untuk keputusan HD dan untuk keputusan Tidak HD, dan entropy dari semua kasus dan kasus yang dibagikan berdasarkan atribut “Natrium-Normal” yang dapat menjadi node akar dari nilai variabel Tinggi, Rendah dari atribut Natrium. Setelah itu lakukan perhitungan Gain untuk masing-masing atribut. Sebelum menghitung Gain lakukan perhitungan Entropy dari setiap atribut. Hasil Perhitungannya sebagai berikut: 53 Tabel 4.5. Nilai Entropy Setiap Atribut 1.1.1 No Atribut Nilai Atribut Jumlah Kasus Total Jumlah Kasus Ya Jumlah Kasus Tidak Entropy Inform ation Gain Split Info Gain Ratio 1 Total Total 37 29 8 0.7532 0 2 kreatinin Normal 19 19 0 0 0.271 0.9995 0.2711 3 kreatinin Rendah 0 0 0 0 0.271 0.9995 0.2711 4 kreatinin Tinggi 18 10 8 0.9911 0.271 0.9995 0.2711 5 kalium Normal 37 29 8 0.7532 0 0 0 6 kalium Rendah 0 0 0 0 0 0 0 7 kalium Tinggi 0 0 0 0 0 0 0 8 clorida Normal 27 19 8 0.8767 0.1134 0.8419 0.1347 9 clorida Rendah 0 0 0 0 0.1134 0.8419 0.1347 10 clorida Tinggi 10 10 0 0 0.1134 0.8419 0.1347 11 tekanan_darah Normal 0 0 0 0 0 0 0 12 tekanan_darah Rendah 0 0 0 0 0 0 0 13 tekanan_darah Tinggi 37 29 8 0.7532 0 0 0 Dari tabel diatas dapat diketahui bahwa atribut dengan Gain tertinggi adalah Creatinin (CR) yaitu sebesar 0.271. Dengan demikian atribut Kreatinin dapat menjadi node akar. Ada 3 nilai variabel dari atribut Kreatinin yaitu rendah, normal dan tinggi, akan tetapi nilai variabel rendah 0 dan variabel Normal dan Tinggi sudah mengklasifikasikan kasus menjadi 1 yaitu Normal keputusannya Tidak Haemodialisa dan Tinggi keputusannya Haemodialisa, sehingga tidak perlu dilakukan perhitungan lebih lanjut. Dari hasil tersebut dapat digambarkan pohon keputusan akhir sebagai berikut: 54 Ureum Normal Tinggi Tidak HD Natrium Rendah HD Normal Kreatinin Tinggi Tinggi HD Normal ? HD Gambar 4.3 Pohon Keputusan Hasil Perhitungan Node 1.1.1 Menghitung jumlah kasus untuk keputusan HD dan untuk keputusan Tidak HD, dan entropy dari semua kasus dan kasus yang dibagikan berdasarkan atribut “Natrium-Normal” yang dapat menjadi node akar dari nilai variabel Tinggi, Rendah dari atribut Natrium. Setelah itu lakukan perhitungan Gain untuk masing-masing atribut. Sebelum menghitung Gain lakukan perhitungan Entropy dari setiap atribut. Hasil Perhitungannya sebagai berikut: Tabel 4.6. Nilai Entropy Setiap Atribut 1.1.1.1 No Atribut Nilai Atribut Jumlah Kasus Total Jumlah Kasus Ya Jumlah Kasus Tidak Entropy Inform ation Gain Split Info Gain Ratio 1 Total Total 18 10 8 0.9911 0 2 kalium Normal 18 10 8 0.9911 0 0 0 3 kalium Rendah 0 0 0 0 0 0 0 4 kalium Tinggi 0 0 0 0 0 0 0 5 clorida Normal 8 0 8 0 0.9911 0.9911 1 6 clorida Rendah 0 0 0 0 0.9911 0.9911 1 7 clorida Tinggi 10 10 0 0 0.9911 0.9911 1 8 tekanan_darah Normal 0 0 0 0 0 0 0 9 tekanan_darah Rendah 0 0 0 0 0 0 0 10 tekanan_darah Tinggi 18 10 8 0.9911 0 0 0 Dari tabel diatas dapat diketahui bahwa atribut dengan Gain tertinggi adalah Crorida (CR) yaitu sebesar 0, 9911. Dengan demikian atribut clorida 55 dapat menjadi node akar. Ada 3 nilai variabel dari atribut Kreatinin yaitu rendah, normal dan tinggi, akan tetapi nilai variabel rendah 0 dan variabel Normal dan Tinggi sudah mengklasifikasikan kasus menjadi 1 yaitu Normal keputusannya Tidak Haemodialisa dan Tinggi keputusannya Haemodialisa, sehingga tidak perlu dilakukan perhitungan lebih lanjut. Dari hasil tersebut dapat digambarkan pohon keputusan akhir sebagai berikut: Ureum Normal Tinggi Tidak HD Natrium Rendah HD Normal Kreatinin Tinggi Normal HD Clorida Tinggi HD Normal Rendah Tidak HD Tinggi HD Tidak HD Gambar 4.4 Pohon Keputusan Hasil Perhitungan Node 1.1.1.1 4.2 Evaluasi (Evaluation Phase) Dalam tahapan ini akan dilakukan validasi serta pengukuran keakuratan hasil yang dicapai oleh model menggunakan beberapa teknik presisi dan recall dan accuracy. Precisionadalah tingkat ketepatan antara informasi yang diminta oleh pengguna dengan jawaban yang diberikan oleh sistem. recall adalah tingkat keberhasilan sistem dalam menemukan kembali sebuah informasi.Sedangkan Accuracy didefinisikan sebagai tingkat kedekatan antara nilai prediksi dengan nilai aktual. Ilustrasi berikut ini memberikan gambaran perbedaan antara accuracy, recall dan precision. 56 Sebagai contoh: Berdasarkan data diatas dari 200 kasus pasien gagal ginjal ditentukan sejumlah 50% (100 kasus) adalah sebagai training dan 100 kasus (50%) sebagai testing, sehingga didapatkan hasil adalah sebagai berikut Tabel 4.7. Confusion Matrix True Terapi HD True Non-Terapi HD Pred Terapi HD 54 0 Pred non-Terapi HD 0 46 Dari tabel diatas maka diperoleh tingkat akurasi dengan rumus sebagai berikut: 46 ) 𝑥100 = 100% 0 + 46 46 𝑟𝑒𝑐𝑎𝑙𝑙 = ( ) 𝑥100% = 100% 0 + 46 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = ( 𝐴𝑘𝑢𝑟𝑎𝑠𝑖 = ( 54 + 46 ) 𝑥100% = 100% 54 + 46 + 0 + 0 57 4.3 Desain Sistem yang Akan Dibangun Berdasarkan analisis yang telah dilakukan, maka sistem yang dibangun diharapkan dapat memprediksi apakah pasien penderita gagal ginjal akan dilakukan haemodialisa atau tidak haemodialisa dengan membangun perangkat lunak data mining dengan algoritma C4.5 pada data pasien gagal ginjal. Sistem berupa simulasi yang dapat menyimpan hasil penghitungan entropy dan gain serta hasil pembentukan pohon keputusan yang telah dilakukan. 4.4 Kebutuhan Fungsional Kebutuhan fungsional merupakan pernyataan layanan sistem yang harus disediakan, sehingga hasil dari implementasi algoritma C4.5 pada klasifikasi data pasien gagal ginjal ini harus dapat melakukan fungsi-fungsi sebagai berikut : 1) Fungsi Latih Data a) Fungsi Pengklasifikasian Atribut Fungsi ini untuk mengklasifikasi atributatribut 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 gagal ginjal 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 Fungsi ini untuk menampilkan pohon keputusan dan daftar aturan yang terbentuk, serta menampilkan hasil penghitungan entropy dan gain. 58 4.5 Kebutuhan Nonfungsional Kebutuhan nonfungsional merupakan batasan layanan atau fungsi yang ditawarkan sistem. Adapun kebutuhan fungsional dari hasil implementasi algoritma C4.5 pada data pasien gagal ginjal 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.6 Pemodelan Sistem Menggunakan Data Flow Diagram (DFD) 4.6.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 gagal ginjal diberikan terapi haemodialisa serta satu buah external entity yaitu pengguna. DCD digambarkan pada Gambar 4.1 berikut : 59 hasiUjDataMaster,hasilBandingUji hasiUjDataMaster,hasilBandingUji PeringatanDataKosong peringatanHapusANgka PeringtanpraProsesSelesai hapusDtaMasukan,persentaseAkurasi,persentaseKesalahan hasilPerhitungan daftarAturan PohonKeputusan pesanperingatan peringatanHapusData, pesanProsesDataSelesai Pengguna opsiUjiDataMasukan, dataMsk opsiPraPresesRefKesehatan persentaseData Implementasi ALgoritma C4.5 memprediksi Haemodialisa opsipraprosesGINI opsiProsesDta opsiTampilPohonKeputusam opsiTampilAturan opsiTampilHitung opsiUjiDataMasterAKurasi opsiHasil Gambar 4.5 Data Contecxt Diagram (DCD) 4.6.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 buahexternal entity, yaitu pengguna. Proses-proses tersebut melibatkan beberapadatastore, yaitu tbPasien, 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.6. 60 PeringatanHapusDta, pesanProsesDataSelesai Penguna tbPasien recordDtaPasien PraPoses (hdPra,HdPraGINI persentasiData opsiPraProses OpsiPraProsesRefKes opsiProsesData 1.0 PENGHITUNGAN (tblUji,tblHasilUji, tblBandingUji Melakukan Latih Data hasiLatihData opsiPohonkeputusan PraPoses (hdPra,HdPraGINI 2.0 Menampilka n Pohon Keputusan PesanPeringatan ,pohonkeputusan opsiTampilAturan ATRIBUT (hdAtribut, TblKlasAtribut 3.0 opsiUjiMasukan pesanPeringatan Menampilka aturan yangberlaku opsiTampilHitung pesanperingan hasilPerhitungan 4.0 Menampilkan hasil perhitungan opsiUjiDataMaster POHON KEPUTUSAN (hdNodePohon, tbKlasPohon, hdAturan pesan_peringatan 5.0 Pengujian data Masukan 6.0 pengujian dengan data master dan akurasi Gambar 4.6 Data Flow Diagram (DFD) Level 1 4.6.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 tbPasien, tbPra, tbPraGini, tbAtribut, tbKlasAtribut, tbUji, tbHitung, tbEntropi, tbGain, tbNodePohon, tbKlasPohonDetail, dan tbAturan. DFD untuk proses tersebut digambarkan pada Gambar 4.7. 61 opsiProsesData peringatanHapusData, pesanProsesDataSelesai Pengguna presentasiDta tbPraGINI pesanselesai peringatanhapusdata pesanlebhdari100 peringatanhapusdata 1.1 Pra Preses data dengan rumus GINI recordDataLatin recordDataPasien 1.3 Menghitung entropi dan Gain pesanPraprosesSelesai tbUji dataPenghitungan tbPasien KdNode 1.2 Pra Proses data berdasarkan ref Kesehatan presentasiDta pesanlebih100 tbPra recordDataLatih tbhitung pesanprosesselesai tbEntropi gain tbAtribut kdKlsAtribut tbGain 1.4 Membentuk Pohon Keputusan tbKlasAtribut nmAtribut hasilKelanjuttanNode tbAturan KdAtribut kdNode tbNodePohon tbPohonDetail Gambar 4.7 Data Flow Diagram (DFD) Level 1.1 2) DFD Level 2 Proses 5.0 Pengujian dengan Data Masukan Proses pengujian implementasi algoritma C4.5 pada klasifikasi data pasien gagal ginjal dengan data masukan dikembangkan menjadi beberapa proses yang bisa dilakukan, yaitu Memasukkan Data Uji Masukan dan Menentukan Hasil Pasien Gagal ginjal. External entity yang terlibat adalah pengguna. Datastore yang terlibat yaitu tbAtribut, tbKlasAtribut, dan tbKlasPohonDetail. DFD untuk proses tersebut digambarkan pada Gambar 4.8. 62 opsiUjiDataMasukan DataMasukan Pengguna peringatanHarusAngka 5.1 Memasukkan Data Uji Masukan tbAtribut dataAtribut tbKlasAtribut opsiHasil peringatanDataKosong HasilUjiDataMasukan dataKlasAtribut 5.2 Menentukan Hasil Pasien HD kdNode tbKlasPohonDEtail Gambar 4.8 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.9. 63 opsiUjiDataMasukan DataMasukan Pengguna tbKlasPohonDetail hasilputusanpohon 6.1 Pengujian recordDatauji Data Master pesanPeringatan tbUji recorddataUji tbHasilUji recorddatauji,recordpasien presentasi Akurasi persentaseKesalahan 6.2 Menghitung Prosentase AKurasi hislKeputusanPohon tbBandingUji Gambar 4.9 DFD Level 2 Proses 6.0 Pengujian data master dengan Akurasi 4.7 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 gagal ginjal. 1) Proses 1.1 Praproses Berdasarkan Kasus dan Training Input persentaseData Output Datastore Algoritma persentaseData, opsiPraProsesRefKes recordDataPasien, peringatanHapusData tbPasien, tbPra, tbUji, tbAtribut, tbKlasAtribut 1. Pengguna memasukan persentaseData 2. Pengguna memilih opsiPraProsesRefKes untuk melakukan praproses data berdasarkan referensi kesehatan 3. Sistem mengambil record data pasien dari tbPasien 4. Sistem menyimpan recordDataLatih di tbPra 5. Sistem melakukan kalsifikasi setiap atribut 64 berdasarkan referensi kesehatan yang menjadi acuan. 6. Sistem memunculkan record data pasienyang telah di praproses 2) Proses 1.2 Proses Penghitungan Entropy dan Gain Input persentaseData Output Datastore Algoritma opsiProsesData peringatanHapusData, pesanProsesDataSelesai, dataPenghitungan, entropi, gain tbPra, tbPraGini, tbAtribut, tbKlasAtribut,tbHitung, tbEntropi, tbGain, tbNodePohon, tbKlasPohonDetail 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) 4. Menghitung entropi untuk setiap atribut Entropi (klas atribut) 5. Sistem menyimpan penghitungan entropi pada tbHitung dan tbEntropi 6. Menghitung nilai gain setiap atribut Gain 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. - 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 65 adalah atribut yang tersimpan paling atas pada tbGain 3) Proses 1.3 Pembentukan Pohon Keputusan Input persentaseData Output Datastore Algoritma kdNode, kdAnakNode, kdAtribut pohonKeputusa tbAtribut, tbKlasAtribut, tbNodePohon, tbKlasPohonDetail, tbEntropi, tbGain, tbAturan 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 haemodialisa. 3. Silsilah pohon disimpan pada tbNodePohon, tbKlasPohonDetail 4) Proses 2.0 Menampilkan Pohon Keputusan Input persentaseData Output Datastore Algoritma opsiTampilPohonKeputusan pohonKeputusan, pesan_peringatan tbAturan, tbNodePohon, tbKlasPohonDetail 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 5) Proses 3.0 Menampilkan Daftar Aturan Input persentaseData Output Datastore Algoritma opsiTampilAturan daftarAturan, pesan_peringatan tbAtribut, tbNodePohon, tbKlasPohonDetail, tbKlasAtirbut, tbAturan 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 66 6) Proses 4.0 Menampilkan Hasil Penghitungan Input persentaseData Output Datastore Algoritma opsiTampilHitung hasilPenghitungan, pesan_peringatan tbHitung, tbEntropi, tbGain 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 7) Proses 5.1 Memasukkan Data Uji Masukan Input persentaseData Output Datastore Algoritma opsiUjiDataMasukan, dataMasukan peringatanHarusAngka, peringatanIsiSemua 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 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 8) Proses 5.2 Menentukan Hasil Pasien Haemodialisa Input persentaseData Output Datastore Algoritma dataMasukan hasilUjiDataMasukan, pesan_peringatan tbAtribut, tbNodePohon, tbKlasPohonDetail 1. Sistem akan melakukan pencarian hasil keputusan dari data yang telah dimasukkan oleh pengguna dengan silsilah pohon yang telah terbentuk 2. Sistem memunculkan hasilUjiDataMasukan 9) Proses 6.1 Pengujian Data Master Input persentaseData Output Datastore Algoritma opsiUjiDataMasterAkurasi, hasilKeputusanPohon hasilUjiDataMaster,pesan_peringatan,hasilBandingUji tbUji, tbKlasPohonDetail 1. Pengguna memilik opsiUjiDataMasterAkurasi 67 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 10) Proses 6.2 Penghitungan Persentase Akurasi Input persentaseData Output Datastore Algoritma hasilKeputusanPohon, pasien, ketKesesuaian persentaseAkurasi, persentaseKesalahan tbBandingUji 1. Sistem melakukan penghitungan akurasi dengan melihat dari ketKesesuaian antara pasien berdasarkan hasilKeputusanPohon dengan data master 2. Sistem menghitung jumlah hasil sesuai dan jumlah hasil tidak sesuai 3. Sistem menghitung persentase akurasi : jumlahDataUji x %100 jumlahHasilSesuai persentaseAkurasi = 4. Sistem menghitung persentase kesalahan : persentaseKesalahan = jumlahHasilTidakSesuai x %100 jumlahDataUji Atau persentaseKesalahan= 100−persentaseAkurasi 5. Sistem memunculkan persentaseAkurasi dan persentaseKesalahan 4.8 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 gagal ginjal adalah sebagai berikut : 68 Tabel 4.8 Kamus Data No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Istilah Pengguna Penjelasan Seseorang yang melakukan implementasi algoritma C4.5 pada klasifikasi data pasien persentaseData Jumlah data yang dimasukkan untukdilakukan proses latih data dan uji data (dalam persen) opsiPraProsesRefKes Opsi untuk memilih praproses berdasarkan referensi kesehatan opsiPraProsesGini Opsi untuk memilih praprosesmenggunakan rumus GINI opsiProsesData Opsi untuk melakukan proses data yang terdiri dari proses penghitungan entropy dangain serta pembentukan pohon keputusan opsiTampilPohonKeputusan Opsi untuk menampilkan pohon keputusan opsiTampilAturan Opsi untuk menampilkan daftar aturan opsiTampilHitung Opsi untuk menampilkan hasil penghitungan opsiUjiDataMasukan Opsi untuk melakukan pengujian data dengan data masukan dataMasukan Data yang digunakan untuk melakukan pengujian data dengan data masukan opsiUjiDataMasterAkurasi Opsi untuk melakukan pengujian data master dan penghitungan persentas akurasi 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?” opsiHasil Opsi untuk mengetahui hasil keputusan pasien berdasarkan pohon keputusan pada pengujian data dengan data masukan pesanProsesDataSelesai Pesan yang menyampaikan bahwa proses data telah selesai Pesan berisi,”Proses data telah selesai dilaksanakan.” 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.” pohonKeputusan Pohon keputusan yang telah terbentuk setelah dilakukan proses data daftarAturan Daftar aturan yang terbentuk setelah proses 69 18 hasilPenghitungan 19 hasilUjiDataMasukan 20 hasilUjiDataMaster 21 hasilLatihData 22 23 24 persentaseAkurasi persentaseKesalahan pesanPraProsesSelesai 25 peringatanHarusAngka 26 peringatanDataKosong 27 28 hasilUjiDataMaster hasilBandingUji 29 pesanLebihDari100 30 31 recordDataPasien Seluruh recordDataLatih 32 33 recordDataUji dataAtribut 34 dataPohonKeputusan 35 dataDaftarAturan data dilakukan Hasil penghitungan entropy dan gain saat proses data Hasil dari pengujian data dengan masukan yaitu berupa hasil keputusan apakah pasien terapi haemodialisa atau tidak Hasil dari pengujian data master yang menampilkan jumlah data pasien yang terklasifikasi, jumlah data bukan pasien penderita , dan jumlah data yang tidak terklasifikasi Hasil dari proses latih data berupa hasilPenghitungan, hasilKeputusanPohon Persentase akurasi (dalam persen) Persentase kesalahan (dalam persen) Pesan yang menyampaikan bahwa pra proses telah selesai dilaksanakan. Pesan berisi,”Pra Proses Telah Selesai.” Peringatan bahwa data yang diisi harus numerik. Pesan berisi,”Harus diisi angka.” Peringatan bahwa masih ada data yang kosong dan meminta untuk melengkapi data kosong tersebut. Pesan berisi,”Lengkapi data yang masih kosong!” Hasil pengujian data master Hasil perbandingan pengujian hasil keputusan pasien antara hasil keputusan berdasarkan pohon keputusan dengan data master Pesan yang menyampaikan bahwa persentase data yang dimasukan saat praproses data, angkanya melebihi 100. Pesan berisi,”Angka yang diisi tidak boleh melebihi 100%.” record pada data (data master) Record data pasien yang dijadikan data latih Record data pasien yang dijadikan data uji Data atribut yang meliputi kdAtribut, nmAtribut, dan split Data untuk pohon keputusanmeliputi kdPohon,hasilKelanjutanNode, hasilKeputusanPohon Data daftar aturan yang meliputi aturan dan hasilKeputusanPohon 70 36 37 hasilPenghitungan hasilKeputusanPohon Hasil penghitungan entropi dan gain Hasil keputusan berdasarkan pohon yang terbentuk untuk hasil atribut target yaitu pasien 4.9 Perancangan Basis Data Perancangan basis data menjelaskan tabel-tabel yang terkait dengan pembangunan simulasi algoritma C4.5 pada data gagal ginjal. Tabel-tabel yang terdapat pada pembangunan perangkat lunak data mining menggunakan algoritma C4.5 pada data pasien gagal ginjal diuraikan pada Tabel 4.2 sampai Tabel 4.15. Field Tabel 4.9 Tabel Atribut (tb_atribut) Type Length Key Id Atribut Nilai_atribut Field varchar varchar double 10 15 Primary False False False Tabel 4.10 Tabel Pasien (tbPasien) Type Length Key Id Nama_pasien Usia Jenis_kelamin Ureum Kreatinin Kalium Clorida Natrium Tekanan_darah Class Status_data varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 10 15 15 15 15 15 15 15 15 15 15 15 Null Null Primary False False False False False False False False False False False False Keterangan Kode Atribut Nama Atribut Klasifikasi Keterangan Kode Atribut Nama Atribut Usia Pasien Jenis Kelamin Kadar ureum Kadar Kreatinin Kadar Kalium Kadar clorida Kadar Natrium Tekanan darah Status Pasien Satus data training atau data testing 71 Tabel 4.11 Tabel data Keputusan (tbdata_keputusan) Field Type Length Key Null Id Nama_pasien Usia Jenis_kelamin Ureum Kreatinin Kalium Clorida Natrium Tekanan_darah Keputusan_c45 Id_rule_c45 int varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar int 10 100 100 100 100 100 100 100 100 100 100 5 Primary False False False False False False False False False False False False Keterangan Kode Atribut Nama Atribut Usia Pasien Jenis Kelamin Kadar ureum Kadar Kreatinin Kadar Kalium Kadar clorida Kadar Natrium Tekanan darah Tabel 4.12 Tabel data Keputusan Kinerja (tbdata_keputusan_kinerja) Field Type Length Key Null Id Nama_pasien Usia Jenis_kelamin Ureum Kreatinin Kalium Clorida Natrium Tekanan_darah Keputusan_asli Keputusan_c45 Id_rule_c45 int varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar int 10 100 100 100 100 100 100 100 100 100 100 100 5 Primary False False False False False False False False False False False False False Keterangan Kode Atribut Nama Atribut Usia Pasien Jenis Kelamin Kadar ureum Kadar Kreatinin Kadar Kalium Kadar clorida Kadar Natrium Tekanan darah Tabel 4.13 Tabel data Penentu Keputusan (tbdata_penentu_keputusan) Field Type Length Key Null Id Atribut Nilai_atribut int varchar varchar 5 255 255 Primary False False False Keterangan Kode Atribut Nama Atribut 72 Tabel 4.14 Tabel Iterasi C45 (tbiterasi_c45) Field Type Length Key Null Keterangan Id Iterasi Atribut_gain_ratio_max Atribut Nilai_atribut Jml_kasus_total Jml_kasus_tidak Jml_kasus_ya Entropy Inf_gain Split_info Gain_ratio varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 10 3 255 100 100 15 15 15 15 15 15 15 Primary False Kode urut False False False Atribut False Nilai atribut False False False False False False False Tabel 4.15 Tabel mining C45 (tbmining_c45) Field Type Length Key Null Id Atribut Nilai_atribut Jml_kasus_total Jml_kasus_tidak Jml_kasus_ya Entropy Inf_gain Inf_gain_temp Split_info Split_info_temp Gain_ratio Int varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 11 100 5 5 5 15 15 15 15 15 15 15 Primary False False False False False False False False False False False False Keterangan Kode urut Atribut Nilai atribut Tabel 4.16 Tabel Pohon Keputusan (tbPohon_keputusan) Field Type Length Key Null Id Atribut Nilai_atribut Id_parent Jml_kasus_tidak Jml_kasus_ya Keputusan Int varchar varchar char varchar varchar varchar 4 100 100 3 15 15 100 Primary False False False true False False False Keterangan Kode urut Atribut Nilai atribut 73 Diproses varchar Kondisi_atribut varchar Looping_kondisi varchar 15 255 15 False False False Tabel 4.17 Tabel Rule Penentu Keputusan (tbrule_penentu_keputusan) Field Type Length Key Null Keterangan Id Id_rule Atribut Nilai_atribut Keputusan Cocok Pohon varchar varchar 10 100 Primary False False varchar char varchar varchar 100 3 15 15 False true False False Nilai atribut Null Keterangan Kode urut Tabel 4.18 Tabel Rule C45 (tbrule_c45) Field Type Length Key Id Id_parent Rule Keputusan varchar varchar varchar varchar 10 100 255 25 Primary False False False False Kode urut Keterangan Tabel 4.19 Tabel User (tbuser) Field Type Length Key Null Id_user Password Level varchar varchar varchar 25 50 15 Primary False False False Kode urut 4.10 Diagram Entity-Relationship Diagram ER (ERD) adalah model konseptual yang mendeskripsikan hubungan antara penyimpanan dan didasarkan pada persepsi dari sebuah dunia nyata yang terdiri dari sekumpulan objek, disebut entiti & relasi diantar objekobjek tersebut Diagram ER digunakan untuk memodelkan struktur data dan hubungan antar data. 74 Gambar 4.10 Diagram Entity-Relationship 4.11 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 dalam memprediksi haemodialisa pasien gagal ginjal. Login Frm Utama Frm Data Input Frm c45 Proses mining Frm C45 perhitung an Frm c45 pohon perhitung an Frm kinerja proses Frm kinerja perbandin gan Frm Penilaian Frm Keputusa n 75 4.12 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 DataMining Menggunakan Algoritma C4.5 dalam Klasifikasi Data Pasien Gagal ginjal. Gambar 4.11 Rancangan Tampilan Utama Gambar4.12 Rancangan Input Data Haemodialisa 76 Gambar 4.13 Rancangan Proses Mining Gambar 4.14 Rancangan Perhitungan C4.5 77 Gambar 4.15 Rancangan Pohon Keputusan Gambar 4.16 Rancangan Tabel Perbandingan 78 Gambar 4.17 Rancangan Tabel Penilaian Gambar 4.18 Rancangan Penentu Keputusan 4.13 Perancangan Algoritma Pada bagian ini akan dijelaskan mengenai algoritma-algoritma pada “Pembangunan Perangkat Lunak Data Mining Menggunakan Algoritma C4.5 pada data Pasien Gagal ginjal yang dilakuan haemodialisa” 4.13.1 Algoritma Data Haemodialisa 79 Data Haemodialisa Deklarasi: dataMasukan : ageureumkreatininkaliumcalsiumnatriumhipertensihd_patient : number gender : Boolean Algoritma: INPUT dataMasukan Memeriksa silsilah pohon keputusan OUTPUT hasilKeputusanPohon 4.13.2 Algoritma Proses Mining Proses Data (Penghitungan entropy, gain, pembentukan pohon keputusan) Deklarasi: tbPasien, 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 kodetree(Kode Tree Yang Di-Generate Secara Otomatis)Parent 'Menyelesaikan Node Pada Level 1 Ambil Semua Kode Klas Atribut Dari Atribut Yang Menjadi Node Root Level 0 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 80 If S2 = 0 Then Result"Yes" Else Result "Next" End If End If If Result = "Next" Then Buat Kode Tree Baru kodetreeNewChild NewChildNextNode 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 1LevelKerja Do "False"NextLevel 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 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) 81 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 "Yes"Result Else If S1 = 0 And S2 <> 0 Then "No"Result Else "Next"Result End If End If End If If LevelKerja < 8 Then If Result = "Next" Then "True"NextLevel Buat Kode Tree Baru kodetreeNewChild NewChildNextNode 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 82 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, 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" 83 ‘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 "True"TreeSolved 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 Jumlah_Total_Data_tb_praJmlS Jumlah_Total_Data_tb_pra_YesJmlS Jumlah_Total_Data_tb_pra_NoJmlS Else JmlS Jumlah_Total_Data_tb_pra_Kondisi_Baris_Penentu 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 84 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] = 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 / 85 SBarisPenentu) End If PengurangGain = PengurangGain + (SubKali * Entropy) Next 'Menghitung Gain Gain = Gain - PengurangGain Simpan Nilai Gain Tiap Atribut Ke Dalam tbGain Next 4.13.3 Algoritma Perhitungan C4.5 Perhitungan C4.5 Deklarasi: tbHitung, tbEntropi, tbGain : datastore Algoritma: Open tbHitung Open tbEntropi Open tbGain OUTPUT hasilPenghitungan 4.13.4 Algoritma Pohon Keputusan Pohon Keputusan Deklarasi: 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.13.5 Algoritma Penilaian Penilain Data dengan Data Masukan Deklarasi: dataMasukan : ageureumkreatininkaliumcalsiumnatriumhipertensihd_patient : number gender : Boolean Algoritma: INPUT dataMasukan Memeriksa silsilah pohon keputusan OUTPUT hasilKeputusanPohon 4.13.6 Algoritma Penentu Keputusan Penentu Keputusan Deklarasi: tbAtribur, tbKlasAtribut, tbAturan 86 Algoritma: ‘Pengujian Data Master For i = 0 To Jumlah_Total_Data_Testing-1 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 BAB V PENUTUP 5.1 Kesimpulan Berdasarkan hasil dari pelaksanaan tugas akhir implementasi algoritma C4.5 untuk memprediksi pasien diberikan Haemodialisa, dapat diambil beberapa kesimpulan dari keseluruhan tahap penelitian. Kesimpulan tersebut adalah sebagai berikut : 1) Perangkat lunak dengan algoritma C4.5 dapat dibangun untuk memprediksi haemodialisa pada pasien gagal ginjal. 2) Algoritma C4.5 dapat memprediksi pasien diberikan Haemodialisa yang menghasilkan keputusan apakah pasien diberikan haemodialisa atau tidak dengan menguji data dengan data masukan dan menguji data master dengan membandingkannya dengan hasil pengujian data berdasarkan pohon keputusan. 3) Dengan menggunakan skenario praproses, kinerja dari algoritma C4.5 dalam memprediksi pasien diberikan Haemodialisa bahwa rata-rata persentase akurasi pengujian data adalah 100%. 6.2 Saran Implementasi algoritma C4.5 untuk memprediksi pasien diberikan Haemodialisa ini belum merupakan simulasi yang sempurna, sehingga dibutuhkan penyempurnaan implementasi sesuai dengan kebutuhan. Adapun beberapa saran diantaranya : 1) Untuk penelitian selanjutnya, diharapkan ada penambahan jumlah record data. 2) Untuk penelitian selanjutnya, diharapkan ada penghitungan apabila terdapat data yang missing values. 3) Untuk penelitian selanjutnya, diharapkan pada saat setelah pengaturan data, data yang akan dilatih atau diuji bisa diambil secara random dari data pasien gagal ginjal. 87 88 4) Untuk pengembangan selanjutnya, diharapkan pengujian data yang dilakukan lebih bervariasi, misalnya dengan menghapus beberapa data pada atribut tertentu, kemudian saat pengujian dilakukan apakah data yang terhapus tersebut akan diisi dengan tepat oleh sistem, sehingga pada penghitungan akurasinya pun lebih bervariasi caranya. 89