PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI KLASIFIKASI PENENTUAN JENIS KANKER PAYUDARA DAN PARU-PARU BERDASARKAN SUSUNAN PROTEIN DENGAN ALGORITMA DECISION TREE SKRIPSI Ditujukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Program Studi Teknik Informatika Oleh : ANDHINI AYU SUSANTI 10 5314 097 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNVERSITAS SANATA DHARMA YOGYAKARTA 2016 i PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI THE CLASSIFFICATION OF BREAST CANCER AND LUNG CANCER TYPE BASED ON PROTEIN STRUCTURE USING DECISION TREE ALGORITM A THESIS Presented Partial Fulfillment of the Requirements To Obtain the Sarjana Komputer Degree In Informatics Engineering Department By: Andhini Ayu Susanti 10 5314 097 INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCINCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2016 ii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI iii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI iv PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI HALAMAN PERSEMBAHAN “By three methods we may learn wisdom: First, by reflection, which is noblest; Second, by imitation, which is easiest; and third by experience, which is the bitterest” _Confucius_ “Jangan mencari yang besar-besar, cukup mengerjakan yang kecil-kecil dengan cinta yang besar” _Mother Teresa_ “Scared is what you’re feeling. Brave is What you’re doing” _Emma Donoghue_ Skripsi ini kupersembahkan untuk : Tuhan Yang Maha Esa Keluargaku Sahabat dan Teman-teman v PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI PERNYATAAN KEASLIAN KARYA Saya yang bertanda tangan dibawah ini menyatakan bahwa, saya menyatakan dengan sungguh-sungguh bahwa skripsi yang saya tulis ini karya atau bagian dari karya orang lain, kecuali yang telah disebutkan dalam kutipan atau daftar pustaka, sebagaimana layaknya karya ilmiah Yogyakarta, 29 Februari 2016 Penulis, Andhini Ayu Susanti vi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI KLASIFIKASI PENENTUAN JENIS KANKER PAYUDARA DAN PARU-PARU BERDASARKAN SUSUNAN PROTEIN DENGAN ALGORITMA DECISION TREE ABSTRAK Angka kematian di Indonesia karena penyakit kanker menurut WHO pada tahun 2014 mencapai 195.300 orang dengan kematian terbanyak pada laki-laki sebanyak 103.100 dengan penyakit kanker paru-paru pada tingkat pertama sebesar 21,8% dan pada wanita sebanyak 92.200 dengan penyakit kanker payudara pada tingkat pertama sebesar 21.4%. Ilmu informatika dapat membantu menganalisa masalah ini dengan mengunakan cabang ilmu bioinformatika, yang merupakan penerapan teknis komputasional untuk mengolah dan menganalisa informasi biologi seperti data DNA, RNA dan Protein. Penelitian ini membahas tentang pendeteksian jenis kanker payudara dan paru-paru berdasarkan susunan protein berupa asam amino. Data protein yang digunkan berformat .fasta yang diambil dari database protein yaitu UniProt dan NCBI (National Center for Biotechnology Information). Metode klasifikasi digunakan untuk mendekteksi secara dini penyakit kanker berdasakan susunan protein. Algoritma yang digunakan pada penelitian ini adalah decision tree, yaitu salah satu algoritma yang digunakan dalam bidang bioinformatika. Sebelum tahap klasifikasi dilakukan tahap pre-processing data sekuen protein bertipe String ditransformasikan terlebih dahulu menggunakan EIIP (Electron-Ion Interaction Potential) based protein value. Data sekuen protein yang telah ditransformasikan menjadi numerik selanjutnya diektraksi ciri menjadi sinyal frequency based dengan menggunakan FFT (Fast Fourier Transform) dan LPC (Linear Prediction Coding) dan turunan dari LPC dengan order 8 dan 12. Klasifikasi dengan decision tree dilakukan setelah proses ekstraksi ciri selesai. Pada penelitian ini dilakukan pengujian kombinasi feature LPC pada saat proses ekstraksi ciri. Dari seluruh pengujian (16 pengujian) yang dilakukan, didapatkan hasil akurasi terbesar yaitu 79,85% dan waktu yang diperlukan untuk membuat tree 29,09 detik dengan akurasi rata-rata sebesar 74.82% pada feature LPC order 8. vii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI THE CLASSIFFICATION OF BREAST CANCER AND LUNG CANCER TYPE BASED ON PROTEIN STRUCTURE USING DECISION TREE ALGORITM ABSTRACT The death rate from cancer in Indonesia by WHO in 2014 reached 195.300 people with the number of death in men at 103.100 from lung cancer at the first level by 21.8% and in women at 92.200 from breast cancer at the first level by 21.4%. Science of Informatics can help analyze this problem by using a branch of bioinformatics, which is the computational technique application to process and analyze the data of biological information such as DNA, RNA and Protein. This research discusses the detection of breast cancer and lung cancer based on the composition of proteins in the form of amino acids. The protein data used the format of .fasta derived from the protein database UniProt and NCBI (National Center for Biotechnology Information). The classification method that used for early detection of cancer based on protein structure. The algorithm used in this study is a decision tree, which is one of the algorithms used in bioinformatics. Before classification phase, pre-processing phase of protein sequence data of String type are transformed beforehand using EIIP (Electron-Ion Interaction Potential) based on protein valueconducted. Protein sequence data that have been transformed into numeric, then the feature extracted to become frequency based signal by using FFT (Fast Fourier Transform) and LPC (Linear Prediction Coding) and a derivative of LPC with order of 8 and 12. Classification by decision tree is happened after the feature extraction process is complete. In this research, testing the combination of LPC feature during the process of feature extraction conducted. From all the tests (16 tests) were conducted, showed the greatest accuracy is 79.85% and time to bulid tree 29.09 second with an average accuracy of 74.82% in order 8 of LPC feature. viii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Andhini Ayu Susanti NIM : 105314097 Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Univesitas Sanata Dharma karya ilmiah saya yang berjudul : KLASIFIKASI PENENTUAN JENIS KANKER PAYUDARA DAN PARU-PARU BERDASARKAN SUSUNAN PROTEIN DENGAN ALGORITMA DECISION TREE Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikannya secara terbatas dan mempublikasikannya di internet atau media lain demi kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya. Dibuat di Yogyakarta, Pada tanggal : Yang menyatakan, Andhini Ayu Susanti ix PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI KATA PENGANTAR Puji syukur kepada Tuahn Yang Maha Esa atas karunia, berkat dan rahmat-Nya yang melimpah sehingga penulis dapat menyelesaikan skripsi dengan judul “Klasifikasi Penentuan Jenis Kanker Payudara dan Paru-Paru Berdasarkan Susunan Protein Dengan Algoritma Decision Tree”. Dalam kesempatan ini, penulis ingin mengucapkan terima kasih yang sebesar- besarnya kepada semua pihak yang turut memberikan semangat, dukungan dan bantuan sehingga selesainya skripsi ini : 1. Tuhan Yang Maha Esa atas segala berkat dan rahmatNya. 2. Romo Dr. Cyprianus Kuntoro Adi, S.J., M.A., M.Sc. selaku dosen pembimbing, terima kasih atas bimbingan, saran, waktu, dan kesabaranya dalam membimbing dan mengarahkan penulis dalam menyelesaikan tugas akhir ini. 3. Bapak Sudi Mungkasi, S.Si., M.Math. Sc., Ph.D selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta. 4. Ibu Dr. Anastasia Rita Widiarti M.Kom selaku Kaprodi dan Dosen Penguji 5. Bapak Eko Hari Parmadi, S.Si., M.Kom. selaku Dosen Penguji 6. Ibu P.H. Prima Rosa, S.Si., M.Sc. selaku dosen pembimbing akademik. 7. Seluruh staff pengajar Prodi Teknik Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta. 8. Kedua orang tua saya, Ganeshan dan Harjanti Kusumawati, terima kasih atas doa, semangat dan perhatian yang diberikan serta dukungan material selama perkulihan. 9. Keluarga besar saya, terima kasih atas semangat, doa dan motivasi yang diberikan. 10. Audris Evan Utomo, Romo Poldo atas tempat belajar bersama. x PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 11. Teman-teman seperjuangan skripsi, Lutgardis Festidita, Renny Nita dan Stella Filensia atas semangat dan segala waktu untuk belajar dan berdiskusi bersama. 12. Amelia Endah, Karl Haryo, Sepen Mulyani, dan Gregorius Airlangga atas motivasi dan dorongan semangat untuk penulis yang tak pernah lelah diberikan untuk menyelesaikan tugas akhir ini. 13. Temen-teman “second home” dan “ccp”, Maria Fernandez, Ria Regina, Fransisca Novia, Yovita Metty, Fa Febrian, Yohanes Teddy, Theodorus Adi Nugraha, I Nyoman Rama, Wisnu Yoga, Alfonsus Doni, Christan Ardy dan Eduardus Hardika yang berjuang bersama baik suka maupun duka dalam menyusun tugas akhir ini. 14. Ratna Yani, Reti Erwiyanti, Astrian, Leslie, Adita, Pradita Eka, Neva, Mario, Merry, Artha dan Ayu atas semangatnya. 15. Teman-teman Teknik Informatika angakatan 2010 atas kebersamaan dan dukungnya. 16. Terima kasih kepada semua pihak yang tidak dapat penulis sebutkan secara langsung dan tidak langsung. Penulis menyadari bahwa tugas akhir ini jauh dari sempurna, oleh karena itu kritik dan saran yang sifatnya membangun sangat penulis harapkan. Akhir kata, semoga skripsi ini bermanfaat bagi pembaca dan pikah yang membutuhkan. Yogyakarta, 29 Februari 2016 Penulis xi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR ISI HALAMAN JUDUL ..................................................................................................................... i HALAMAN PERSETUJUAN ................................................... Error! Bookmark not defined. HALAMAN PENGESAHAN ..................................................... Error! Bookmark not defined. HALAMAN PERSEMBAHAN ................................................................................................ v PERNYATAAN KEASLIAN KARYA .................................................................................. vi ABSTRAK ................................................................................................................................... vii ABSTRACT ............................................................................................................................... viii LEMBAR PERNYATAAN PERSETUJUAN ...................................................................... ix DAFTAR ISI ............................................................................................................................... xii BAB I ..............................................................................................................................................1 PENDAHULUAN ........................................................................................................................1 1.1 Latar Belakang ...............................................................................................................1 1.2 Rumusan Masalah ..........................................................................................................3 1.3 Tujuan Penelitian ...........................................................................................................3 1.4 Batasan Masalah .............................................................................................................3 1.5 Luaran yang Diharapkan ..............................................................................................3 1.6 Metodelogi ......................................................................................................................4 1.7 Sistematis Penulisan ......................................................................................................4 BAB II .............................................................................................................................................5 LANDASAN TEORI ...................................................................................................................5 2.1 2.2 Kanker .............................................................................................................................5 2.2.1. Kanker Payudara ....................................................................................................6 2.1.2. Kanker Paru - paru .................................................................................................7 Bioinformatika ................................................................................................................8 2.2.1. Protein ......................................................................................................................9 2.2.2. Asam Amino .........................................................................................................10 2.3 Pengenalan Pola ...........................................................................................................10 2.4 Preprocessing dan Ekstraksi Ciri ...............................................................................11 xii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.4.1. Electron- Ion Interaction Potential (EIIP) .........................................................11 2.4.2. Fast Fourier Transform (FFT) ............................................................................13 2.4.3. Linier Predictive Coding (LPC) .........................................................................14 2.5 Algoritma Decision Tree .............................................................................................15 2.6 K-Fold Cross Validation ............................................................................................17 BAB III .........................................................................................................................................19 METODOLOGI .........................................................................................................................19 3.1 Data ................................................................................................................................19 3.2 Metode Penelitian ........................................................................................................20 3.2.1 Preprocessing ........................................................................................................21 3.2.2 Ekstraksi Ciri ........................................................................................................22 3.2.3 Proses Training .....................................................................................................25 3.2.4 Tahap Klasifikasi Decision Tree ........................................................................26 3.2.5 Pengujian ...............................................................................................................28 BAB IV .........................................................................................................................................30 ANALISIS HASIL DAN IMPLEMENTASI SISTEM .....................................................30 4.1 Analisis Hasil ................................................................................................................30 4.2 Analisis Coding ....................................................................................................................32 4.2.1. Ekstraksi Ciri ........................................................................................................32 4.2.2. Algoritma Decision Tree .....................................................................................38 4.2.3. Akurasi Tree .........................................................................................................42 4.3 User interface .........................................................................................................................43 BAB V ...........................................................................................................................................47 KESIMPULAN DAN SARAN ................................................................................................47 5.1 Kesimpulan ...................................................................................................................47 5.2 Saran ..............................................................................................................................48 DAFTAR PUSTAKA ................................................................................................................49 LAMPIRAN I : Code Program ..................................................................................................51 xiii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR TABEL TABEL 2. 1EIIP VALUE AMINO ACID ...................................................................................................... 12 TABEL 2. 2 3-FOLD CROSS VALIDATION ................................................................................................ 18 xiv PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR GAMBAR GAMBAR 2. 1 GAMBAR PRESENTASE KANKER PAYUDARA.................................................... 7 GAMBAR 2. 2 MEKANISME PENGENALAN POLA ................................................................. 10 GAMBAR 2. 3 BLOK DIAGRAM PROSES PREPROCESSING DAN EKSTRAKSI CIRI .................. 11 GAMBAR 2. 4 BLOK DIAGRAM ANALISIS LPC .................................................................... 15 GAMBAR 2. 5 CONTOH POHON KEPUTUSAN ....................................................................... 16 GAMBAR 3. 1 DIAGRAM PROSES TRAINING DAN TESTING ................................................... 21 GAMBAR 3. 2 DIAGRAM PREPROCESSING ........................................................................... 22 GAMBAR 3. 3GRAFIK SEKUEN PROTEIN ASAM AMINO A2KUC3 ........................................ 22 GAMBAR 3. 4 DIAGRAM EKSTRAKSI CIRI ............................................................................ 23 GAMBAR 3. 5 SINYAL STEM EKSTRAKSI CIRI DENGAN ........................................................ 23 GAMBAR 3. 6 SINYAL STEM LPC, DELTA LPC, .................................................................. 24 GAMBAR 3. 7 SINYAL STEM LPC, DELTA LPC, .................................................................. 25 GAMBAR 3. 8 CONTOH DATA TRAINING 1 ........................................................................... 26 GAMBAR 3. 9 DECISION TREE KOSONG ................................................................................ 27 GAMBAR 3. 10 ENTROPY DARI VARIABEL BINARI .............................................................. 27 GAMBAR 3. 11 CONTOH LEVEL PERTAMA DECISION TREE ................................................... 28 GAMBAR 3. 12 HASIL TREE YANG TERBENTUK DARI TRAINING 3 ....................................... 28 GAMBAR 4. 1 TABEL HASIL PERBANDINGAN AKURASI DAN WAKTU ................................... 30 GAMBAR 4. 2 GRAFIK AKURASI RATA-RATA FEATURE LPC ............................................... 31 GAMBAR 4. 3 USER INTERFACE HALAMAN UTAMA ............................................................ 44 GAMBAR 4. 4 HALAMAN EKSTRAKSI CIRI .......................................................................... 44 GAMBAR 4. 5 PROSES PREPROSES DAN EKSTRAKSI CIRI ...................................................... 45 GAMBAR 4. 6 HALAMAN TREE ........................................................................................... 45 GAMBAR 4. 7 HALAMAN AKURASI TREE ........................................................................... 46 GAMBAR 4. 8 HALAMAN UJI TUNGGAL.............................................................................. 46 xv PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB I PENDAHULUAN 1.1 Latar Belakang Penyakit Kanker merupakan salah satu penyakit pembunuh teratas di dunia. Pada tahun 2012, sekitar 8,2 juta kematian disebabkan oleh kanker, dengan spesifikasi kanker paru, hati, perut, kolorektal, dan kanker payudara adalah penyebab terbesar kematian akibat kanker setiap tahunnya (INFODATIN, 2014). Berdasarkan data profil mortalitas Kanker (Cancer Mortality Profile) yang dirilis oleh WHO pada tahun 2014, menyebutkan angka kematian yang disebabkan oleh kanker di Indonesia mencapai 195.300 orang dengan prevalensi kematian terbanyak pada laki-laki sebanyak 103,100 dengan penyakit kanker paru-paru pada tingkat pertama sebesar 21,8% orang dan perempuan mencapai 92,200 orang dengan penyakit kanker payudara pada tingkat pertama sebesar 21,4 %. Penyakit kanker adalah penyakit yang timbul akibat pertumbuhan tidak normal sel jaringan tubuh yang berubah menjadi sel kanker, sedangkan tumor adalah kondisi dimana pertumbuhan sel tidak normal sehingga membentuk suatu lesi atau dalam banyak kasus, benjolan di tubuh. Tumor terbagi menjadi dua, yaitu tumor jinak dan tumor ganas. Tumor jinak memiliki ciri-ciri, yaitu tumbuh secara terbatas, memiliki selubung, tidak menyebar bila dioperasi,dapat dikeluarkan secara utuh sehingga dapat sembuh sempurna, sedangkan tumor ganas memiliki ciri-ciri, yaitu dapat menyusup ke jaringan sekitarnya, dan sel kanker dapat ditemukan pada pertumbuhan tumor. Penyakit kanker tidak dapat diketahui secara langsung dalam satu kali pemeriksaan yang dilakukan oleh dokter. Diperlukan serangkaian uji laboratorium yang berguna untuk mendeteksi sel-sel kanker tersebut dalam tubuh manusia (Infodatin,2015). Bioinformatika adalah ilmu yang mempelajari penerapan teknis komputasional untuk mengelola dan menganalisa informasi biologis. Bidang ini mencakup penerapan metode-metode matematika, statistika, dan informatika untuk memecahkan masalah-masalah biologis, terutama dengan menggunakan 1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2 sekuen DNA dan asam amino serta infomasi yang terkaitan. Peranan bioinformatika dalam penelitian ini untuk membantu dalam proses mendeteksi penyakit kanker payudara dan kanker paru-paru. Dengan menggunakan data sekuen protein dari tubuh manusia, maka mendeteksi secara dini penyakit kanker dan mengklasifikasikan jenis kanker dapat dilakukan. Pendeteksian penyakit kanker secara dini di dalam tubuh penderita salah satu data yang dapat digunakan adalah data sekuen protein. Protein yang digunakan dalam penelitian ini adalah asam amino. Data sekuen protein berformat .fasta dan bertipe String. Tahap awal dalam mengolah data sekuen protein yaitu asam amino dalam penelitian ini adalah tahap pre-processing yaitu data sekuen protein yang berupa string akan ditransformasikan menjadi data numerik untuk mempermudah perhitungan dan panjang sekuen protein tidak harus sama. Pada peneilitian ini jenis kanker yang diteliti berdasarkan susunan sekuen protein (asam amino) adalah kanker payudara dan kanker paru-paru yang dibandingkan dengan manusia sehat atau non-cancer. Data sekuen protein berasal dari bank protein dunia yang dapat diakses melalui website antara lain UniProt (www.UniProt.org) dan National Center for Biotechnology Information (www.ncbi.nlm.nih.gov). Tahap pre-processing data sekuen protein ditransformasikan terlebih dahulu menggunakan EIIP (Electron-Ion Interaction Potential) based protein value. Data sekuen protein yang telah ditransformasikan menjadi numerik selanjutnya diektraksi ciri menjadi sinyal frequency based dengan menggunakan FFT (Fast Fourier Transform) dan LPC (Linear Prediction Coding) dan turunan dari LPC dengan order 8 dan 12 untuk nyeragamkan panjang data dan mendapatkan ciri data. Berdasarkan pada penelitian sebelumnya yaitu menentukan jenis kanker berdasarkan susunan protein metode yang digunakan adalah pengelompokan menggunakan K-Means dan klasifikasi KNN. Metode yang digunakan merupakan gabungan antara pengelompokan dan klasifikasi yang bertujuan agar proses klasifikasi KNN dapat dilakukan dengan mudah dan optimal, namun pada kenyataannya error yang dihasilkan dalam penelitian tersebut masih cukup tinggi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3 yaitu sekitar 52,00% . Pada penelitian ini hanya menggunakan satu algoritma saja untuk proses Klasifikasi. Ada beberapa metode dan algoritma yang dapat digunakan untuk mengklasifikasi menentukan jenis kanker berdasarkan susunan protein. Algoritma yang digunakan dalam penelitian ini adalah algoritma decission tree. Algoritma decision tree akan menghasilkan tree atau pohon keputusan. Algoritma decision tree yang telah digunakan dalam beberapa penelitian lain dan menghasilkan tingkat keakurasian yang baik yaitu sekitar 70% - 85%. 1.2 Rumusan Masalah Masalah yang dirumuskan dalam penelitian ini adalah : Bagaimana klasifikasi dengan menggunakan algoritma decision tree mampu mengenal jenis kanker payudara dan kanker paru-paru cepat dan tepat? 1.3 Tujuan Penelitian Penelitian ini bertujuan untuk melakukan klasifikasi terhadap susunan protein yaitu asam amino untuk mendeteksi kanker payudara dan kanker paru-paru dengan cepat dan tepat. 1.4 Batasan Masalah Batasan-batasan dalam penelitian ini adalah : 1. Ekstrasi ciri yang digunakan FFT, LPC dan turunan LPC (delta LPC dan delta delta LPC) dengan order 8 dan 12. 2. Pre-processing yang digunakan adalah EIIP based value protein 3. Metode klasifikasi yang digunakan adalah greedy decision tree. 1.5 Luaran yang Diharapkan Luaran yang dihasilkan dari penelitian ini adalah prototype yang bisa menentukan apakah seseorang menderita penyakit kanker payudara, kanker paru-paru atau sehat. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4 1.6 Metodelogi Metodologi penelitian yang digunakan antara lain : 1. Studi literatur untuk mempelajari bioinformatika khususnya mengenai susunan asam amino. 2. Studi literatur untuk mempelajari mengenai EIIP ,FFT dan LPC. 3. Studi literatur untuk mempelajari data mining klasifikasi yaitu algoritma Decision Tree. 4. Analisis data untuk mengetahui bagaimana cara mendapatkan data susunan protein yang akan digunakan dalam penelitian ini. 5. Implementasi merupakan proses membuat model yang telah dibuat dalam bentuk yang dapat diesksekusi. Implementasi mengunakan MATLAB 2010. 6. Pengujian menggunakan k-fold cross validation untuk mengetahui akurasi dari algoritma decision tree yang digunakan. 1.7 Sistematis Penulisan BAB I PENDAHULUAN Bab ini berisi latar belakang, rumusan masalah, tujuan, batasan masalah, keluaran yang dihasilkan, metodologi dan sistematika penulisan. BAB II LANDASAN TEORI Bab ini berisi landasan teori yang dipakai untuk pembahasan tugas akhir. BAB III ANALISIS DAN PERANCANGAN SISTEM Bab ini berisi analisis dan perancangan sistem yang akan diimplementasikan. BAB IV IMPLEMENTASI SISTEM DAN ANALISIS HASIL Bab ini berisi tentang proses implementasi sistem dan analisis hasil Implementasi sistem. BAB V KESIMPULAN DAN SARAN Bab ini berisi kesimpulan dan saran. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB II LANDASAN TEORI Bab ini menjelaskan tentang dasar teori yang digunakan dalam penyusunan tugas akhir ini untuk memperjelas materi-materi yang sedikit sudah dijelaskan mulai dari kanker, bioinformatika, dan pengenalan pola yang meliputi ekstraksi fitur yaitu EIIP, FFT dan LPC, algoritma decision tree dan cross-validation. Teori –teori tersebut dijelaskan sebagai berikut : 2.1 Kanker Kanker atau neoplasma adalah suatu penyakit sel dengan ciri gangguan atau kegagalan mekanisme multiplikasi dan fungsi homeostasis lainnya pada organisme multiseluler sehingga terjadi pertumbuhan jaringan yang tak terkontrol (van Cauteren, et al,1996). Kadang istilah kanker sering di kacaukan dengan tumor, padahal ada perbedaan yang mendasar. Perbedaan utama yaitu kanker adalah neoplasma yang menyebar dan ganas (Malignant neoplasm) dan tumor adalah neoplasma yang tidak menyebar dan tidak ganas (benigh neoplasm). Kanker dapat menyerang berbagai sel pada seluruh organ dalam tubuh, dari kepala sampai ujung kaki. Dalam keadaan normal sel hanya akan membelah diri bila tubuh membutuhkan, misalnya ada sel-sel yang perlu diganti karena mati atau rusak. Sedangkan sel kanker akan membelah meskipun tidak diperlukan, sehingga terjadi sel-sel baru yang berlebihan. Sel-sel baru mempunyai sifat seperti induknya yang sakit yaitu tidak mempunyai daya atur. Dalam daftar Badan Kesehatan Dunia (WHO) penyakit kanker masuk dalam urutan teratas dari kelompok penyakit. Hal ini dapat dimengerti, karena penyakit ini merupakan penyakit yang paling mematikan di dunia. Kalau penyakit kanker di dunia menempati urutan kedua, setelah penyakit jantung , di Indonesia kanker termasuk urutan ke-6 sebagai penyakit kematian. Penyakit kanker diperkirakan diidap oleh 15 orang per 100.000 penduduk di dunia (Saffiot dalam Mulyadi,1997). 5 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 6 Jenis kanker yang sering terjadi pada kelompok pria adalah kanker paru-paru, prostat dan kolon (usus besar). Sedangkan pada kelompok wanita adalah kanker payudara, servix uteri, paru-paru dan kolon. Pada kelompok anak-anak jenis kanker yang paling sering adalah leukemia(kanker darah) (Sunarto,1997:82-84). 2.1.1. Kanker Payudara Kanker payudara adalah kanker yang banyak menyerang kaum wanita dan merupakan kanker penyebab kematian kedua bagi wanita di dunia. Kanker ini banyak menyerang wanita umur antara 35 – 50 tahun. Berdasarkan laporan dari Pathology of Breast Cancer in New South Wales Women pada tahun 1995 ditemukan bahwa 60% dari kaum wanita mempunyai benjolan pada payudaranya yang berdiameter kurang dari 2cm yang dikenal sebagai kanker panyudara stadium awal (dini). Kanker payudara umunnya terjadi pada kaum wanita namun dapat pula menyerang kaum pria, pria dengan Klinefelter Syndrome mempunyai resiko 60 kali lebih besar dibandingkan dengan pria normal(Sri Hartati Yuliani. 2000). Menurut data GLOBOCAN (IARC) pada tahun 2012 diketahui bahwa penyakit kanker payudara merupakan penyakit kanker dengan presentase kasus baru tertinggi pada wanita yaitu sebesar 43.3% dan presentase kematian akibat penyakit kanker payudara sebesar 12,9%. (IinfoDatin. 2015). PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 7 Gambar 2. 1 Gambar presentase kanker payudara pada tahun 2013 di provinsi- provinsi di Indonesia. 2.1.2. Kanker Paru - paru Kanker paru-paru adalah tumor mengancam (malignant tumour) pada paru-paru. Paling biasa adalah bronchogenic carcinoma (sekitar 90%).Kanker paru-paru adalah tumor mengancam yang paling bahaya di seluruh dunia, menyebabkan sampai 3 juta kematian setiap tahun. Pengungkapan kepada karsinogen, seperti diakibatkan asap tembakau, menyebabkan perubahan kecil pada selaput jaringan pada bronkus di paruparu (bronchial mucous membrane). Efek ini akan menyebabkan jaringan rusak sehingga tumor terbentuk. Jika tumor tumbuh ke dalam asap tembakau PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 8 akan menghalangi jalur udara menyebabkan sulit bernafas. Paru-paru akan runtuh dan akan terkena infeksi dan menyebabkan bisul paru-paru (lung abscess). Penderita akan mulai batuk dan mengeluarkan lendir berdarah. Namun jika tumor membesar ke luar paru-paru, penderita tidak menyadarinya sehingga mulai menginfeksi bagian tubuh yang lain[3]. Menurut data GLOBOCAN (IARC) pada tahun 2012 diketahui bahwa penyakit kanker paru- paru merupakan penyakit kanker dengan presentase kasus baru tertinggi pada laki-laki yaitu sebesar 34,2% dan presentase kematian akibat penyakit kanker paru-paru sebesar 30,0%. Penyakit kanker paru-paru tidak hanya diderita oleh kaum laki-laki saja namun kaum perempuan penderita penyakit kanker paru-paru dengan presentase kasus baru sebesar 13,6% dan presentase kematian akibat penyakit kanker paru-paru sebesar 11,1%. (infoDatin. 2015). Penyakit kanker payudara dan paru-paru dapat dideteksidengan menggunakan data sekuen protein yaitu data asam amino dari penderita penyakit tersebut cabang ilmu yang digunakan adalah Bioinfomatika adalah ilmu yang mempelajari penerapan teknis komputasional untuk mengelola dan menganalisa informasi biologis. Data yang digunakan biasanya berupa DNA dan asam amino. 2.2 Bioinformatika Bioinformatika merupakan bidang ilmu pengetahuan baru dimana biologi molekular dan ilmu komputer saling berhubungan untuk mengembangkan caradara yang lebih baik dalam mengeksplor, menganalisis dan memahami data-data genetis (St. Clair, Caroline dan Jonathan Visick. 2010).Data yang digunakan adalah data DNA dan protein atau asam amino. Data-data tersebut digunakan antara lain untuk mendapatkan informasi genetik, mengetahui struktur molekul, menentukan fungsi biokimia. Selanjutnya informasi-informasi yang ada digabungkan dan di analisis yang kemudian hasilnya digunakan untuk penemuan obat maupun prediksi suatu penyakit.Data dalam bioinformatika ini merupakan data yang sangat besar sehingga dibutuhkan database untuk menyimpannya. Database tersebut terletak di berbagai negara antara lain Amerika Serikat, Jepang PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 9 dan Inggris. Para peneliti sering mencari informasi dari database yang ada seperti susunan asam amino, struktur gen atau protein. Ada satu alat yang sering dalam bioinformatika yaitu The Basic Alignment Search Tool (BLAST). BLAST melakukan perbandingan antara input sekuen dengan seluruh sekuen yang ada dalam database untuk mendapatkan sekuen yang paling mirip. 2.2.1. Protein Protein merupakan komponen utama dalam semua sel hidup. Fungsinya terutama adalah sebagai unsur pembentuk struktur sel, misalnya dalam rambut, wol, kolagen, jaringan penghubung, membran sel dan lain-lain. Selain itu dapat pula berfungsi sebagai protein yang aktif, seperti misalnya enzim, yang berperan sebagai katalis segala proses biokimia dalam sel. Protein aktif selain enzim yaitu hormone, pembawa O2 (hemoglobin), protein yang terkait pada gen, toksin, antibodi/antigen, dan lain-lain. Beberapa ciri utama molekul protein yaitu: 1. Berat molekulnya besar, ribuan sampai jutaan, sehingga merupakan suatu markro molekul. 2. Umumnya terdiri atas 2 asam amino. Asam amino berikatan (secara kovalen) satu dengan yang lain dalam variasi urutan yang bermacammacam, membentuk suatu rantai polipeptida. Ikatan polipeptida merupakan ikatan antara gugus α-karboksil dari asam amino yang satu dengan gugus α-amino dari asam amino yang lain. 3. Terdapat ikatan kimia lain, yang menyebabkan terbentuknya lengkunganlengkungan rantai polipeptida menjadi struktur tiga dimensi protein. Sebagai contoh misalnya ikatan hidrofob (ikatan apolar), ikatan ion atau elektrostatik dan ikatan Van der Waals. 4. Strukturnya tidak stabil terhadap beberapa factor seperti pH, radiasi, temperature, medium pelarut organic dan deterjen. 5. Umumnya reaktif dan sangat spesifik, disebabkan terdapatnya gugus samping yang reaktif dan susunan khas struktur makro molekulnya.berbagai macam gugus samping yang biasa terdapat adalah gugus kation, anion, hidroksil alifatik, amin, amida, tiol, dan gugus PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 10 hoterosiklik. 2.2.2. Asam Amino Asam Amino merupakan bagian struktur protein dan menentukan banyak sifatnya yang penting. Gilisin merupakan asam amino pertama yang telah diisolasi dari hidrolisat protein, sedangkan teronin adalah asam amino pembentuk protein yang paling akhir dapat diisolasi, yaitu dari hidrolisat fibrin. Ke-20 macam amino berserta simbol kependekannya yaitu Alamin (A), Arginin (R), Asparagin (N), Asam Aspartat (D), Sistein (C), Glutamin (Q), Asam Glutamat (E), Glisin (G), Histidin (H), Isolesin (I), Lesin (L), Lisin (K), Metionim (M), Femilalanim (F), Prolin (P), Serin (S), Treonin (T), Triptofan (W), Tirosin (Y), Valin (V) (Muhamad Wirawadikusma. 1977). 2.3 Pengenalan Pola Secara umum pengenalan pola (pattern recognition) adalah ilmu untuk mengklasifikasikan atau menggambarkan sesuatu berdasarkan kuantitatif fitur (ciri) atau sifat utama dari suatu objek. Pola sendiri adalah suatu entitas yang terdefinisi dan didefinisikan serta dapat diberi nama. Sidik jari adalah suatu contoh pola. Pola biasanya merupakan hasil kumpulan hasil suatu pengukuran atau pemantauan dan bisa dinyatakan dalam notasi vector atau matrik. (Putra, 2010). Prapengolahan n Pencarian dan seleksi fitur Algoritma klasifikasi Gambar 2. 2 Mekanisme Pengenalan Pola Pengenalan pola berkaitan dengan menemukan algoritma dan metode atau alat yang bisa membuata implementasi komputer yang digunakan untuk berbagai macam tugas pengenalan yang biasa dilakukan oleh manusia. Tujuan dari mengerjakan apa yang tidak bisa dilakukan oleh manusia seperti membaca barcode, dan membuat proses pembuatan keputusan menjadi otomatis yang mengarah ke pengenalan klasifikasi. (Sankar K. Pal and Pabita Mitra. 2004). PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 11 Terdapat tiga tahapan dalam pengenalan pola yaitu yaitu pre-processing, ekstraksi ciri atau seleksi fitur dan klasifikasi. Pre-processing merupakan tahapan awal dalam mengolah data inputan sebelum masuk pada proses klasifiksi. Data pre-processing kemudian masuk pada tahap ekstraksi ciri. Ekstraksi ciri adalah suatu pengambilan ciri atau fitur dari suatu data, dimana nilai yang didapatkan dianalisis untuk proses klasifikasi. Tahap terakhir adalah klasifikasi, data yang sudah diekstrak akan digunakan untuk klasifikasi yang mengevaluasi informasi yang masuk dan menghasilkan keputusan akhir. 2.4 Preprocessing dan Ekstraksi Ciri Ekstraksi ciri merupakan proses mendapatkan ciri tertentu dari data yang sudah dikumpulkan. Tujuan dari proses ekstraksi ciri ini adalah mencari karakteristik penting yang berguna untuk proses pengenalan dan mengurangi dimesi (reduksi dimensi) pengukuran ruang sehingga efektif dan algoritma dengan komputasi yang mudah bisa digunakan untuk klasifikasi yang efektif. Data Sekuen Protein EIIP FFT LPC Gambar 2. 3 Blok diagram Proses Preprocessing dan Ekstraksi Ciri Langkah Pertama untuk mendapatkan ciri dari data sekuen protein adalah tahap pre-processing yaitu mengubah data .fasta yang bertipe String menjadi bertipe numerik dengan memberikan nilai Electron- Ion Interaction Potential (EIIP), lalu diproses menggunakan Fast Fourier Transform (FFT) untuk mengubah data dari numerik menjadi data sinyal dan Linier Predictive Coding (LPC) mendapatkan ciri dari setiap data. 2.4.1. Electron- Ion Interaction Potential (EIIP) EIIP adalah salah satu paremeter asam amino yang digunakan untuk mengubah data sekuen asam amino menjadi sekuen numerik dimana setiap PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 12 asam amino akan diberikan nilai konstanta berdasarkan EIIP value. Perhitungan dalam EIIP value adalah menggunakan energi dari elektron valensi dan dihitung untuk setiap asam amino menggunakan model umum dari pseudopotensial adalah sebagai berikut. W = 0.25 Z∗ sin(1.04πZ∗ ) (2.1) 2π Dimana Z* memwakili dari rata-rata nilai equevalensi, dengan rumus dibawah ini: 1 Z ∗ = N ∑m i=1 ni Zi (2.2) Dimana Zi adalah nomer valensi dari i-komponen atom, ni adalah nomer dari i-komponen atom, m adalah nomer komponen atom di monekul, dan N adalah total nomer atom. Seperti telah menunjukan bahwa perioditas dari EIIP disepanjang sekuen protein berkorelasi dengan biologis protein, terutama dengan interaksi spesifik dengan ligan dan protein lainnya. (Branislava Gemovic et al . 2013). Tabel 2. 1EIIP value amino acid Amino Acid 1-Letter code Numerical code EIIP Leucine L 0.0000 Isoluecine I 0.0000 Asparagine N 0.0036 Glycine G 0.0050 Valine V 0.0057 Glutamic Acid E 0.0058 Proline P 0.0198 Histidine H 0.0242 Lysine K 0.0371 Alanine A 0.0373 Tyrosine Y 0.0516 Trytophan W 0.0548 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.4.2. Glutamine Q 0.0761 Methionine M 0.0823 Serine S 0.0829 Cysteine C 0.0829 Threonine T 0.0941 Phenylalanine F 0.0954 Arginine R 0.0956 Aspartic Acid D 0.1263 13 Fast Fourier Transform (FFT) Algoritma Alihragam Fourier Cepat atau Fast Fourier Transform (FFT) merupakan prosedur penghitungan DFT yang efisien sehingga akan mempercepat proses penghitungan DFT. Bila diterapkan pada kawasan waktu maka algoritma ini disebut juga sebagai FFT penipisan dalam waktu atau decimation-in-time (DIT). Penipisan kemudian mengarah pada pengurangan yang signifikan dalam sejumlah perhitungan yang dilakukan pada data kawasan waktu. Persamaanya menjadi : nk H1 (k) = ∑N−1 n=0 h(n)WN , untuk 0 ≤ k ≤ (N − 1) (2.3) Dimana faktor π −π2π π akan ditulis sebagai : WN = e −j2π⁄ N = cos( 2π⁄N) − j sin(2π⁄N) (2.4) Akhiran n pada Persamaan (2.4) diperluas dari n=0 sampai dengan n=N-1, bersesuaian dengan nilai data h(0), h(1), h(2), h(3)...h(N-1). Runtun bernomor genap adalah h(0), h(2), h(4)....h(N-2) dan runtun bernomor ganjil adalah h(1), h(3)....h(N-1). Kedua runtun berisi N/2-titik. Runtun genap dapat ditandakan h(2n) dengan n=0 sampai n=N/2-1, sedangkan runtun ganjil menjadi h(2n-1). Kemudian Persamaan selanjutnya dapat ditulis ulang menjadi : N⁄ N⁄ 2−1 2−1 H1 (k) = ∑n=0 h(2n)WN2nk + ∑n=0 h(2n − 1)WN2(2n+1)k N⁄ N⁄ k 2nk 2−1 2−1 = ∑n=0 h(2n)W 2nk N + WN ∑n=0 h(2n − 1)W N , PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI untuk 0 ≤ k ≤ (N − 1) 14 (2.5) Selanjutnya dengan menganti π 2ππ menjadi π ππ π⁄ maka persamaan π 2 selanjutnya menjadi : (Nandra Pradipta. 2011) N⁄ N⁄ nk k 2−1 2−1 H1 (k) = ∑n=0 h(2n)W nk N⁄ + WN ∑n=0 h(2n − 1)W N⁄ 2 2 (2.6) Untuk melakukan analisis frekuensi di dalam MATLAB, telah tersedia command “Fast Fourier Transform” (FFT) sebagai berikut: y = fft(x) 2.4.3. (2.7) Linier Predictive Coding (LPC) Analisa Linear Predictive Coding (LPC) adalah salah satu cara untuk mendapatkan sebuah pendekatan mengenai spektrum bunyi. Prinsip dasar dari pemodelan sinyal dengan menggunakan LPC adalah bahwa pencuplikan sinyal ucapan s(n) pada waktu ke-n dapat diperkirakan sebagai kombinasi linear dari p cuplikan sinyal ucapan sebelumnya yaitu : s(n) ≈ a1 s(n − 1) + a2 s(n − 2) + β― + ap s(n − p), p < π (2.8) Dimana koefisien a1, a2,…,ap diasumsikan konstan selama analisi frame suara (Novi Aryanto, 2011). Secara umum metode yang digunakan utuk mendapatkan informasi dari ciri yang dinamis biasa disebut dengan delta-feature. Turunan watu dari ciri dapat dihitung dengan beberapa metode, hasil dari perhitungan delta akan ditambahkan ke vector ciri, sehingga menghasilkan vector ciri yang lebih besar. βyt = yt+D − yt−D (2.9) Dimana D mewakili jumlah dari frame untuk menutup kedua sisi frame saat ini dan dengan demikian dapat mengontrol window y dengan pembedaan operasi. D diset bernilai 1 atau 2. βyt adalah koefisien delta yang dihitung dari frame t untuk vektor fitur LPC (F.Z. Chelali, etc, 2015). Nilai dari delta akan diturunkan sekali lagi terhadpa waktu menjadi nilai delta delta pada beberapa kasus delta delta disebut dengan koefisien PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 15 percepatan, kerena nilai tersebut turunan dari kuadrat waktu dari koefisien. ββyt = βyt+D − βyt−D (2.10) Pengukuran energi merupakan salah satu cara untuk menambah nilai koefisien yang dihitung dari LPC, nilai tersebut merupakan log energy signal. Ini berarti pada setiap frame tredapat nilai energi yang ditambahkan, berikut rumus untuk menghitung nilai energi : 2 Em = log ∑k−1 k=0 x_windowed (k; m) (2.11) Dimana x_windowed adalah sinyal hasil windowing, k adalah jumlah frame dan m adalah panjang frame (Muslim Sidiq, etc, 2015). Analisis LPC pada dasarnya digunakan untuk mendapatkan koefisien LPC yang diperlihatkan pada gambar 2.4. Sinyal ucap diskret Pembingkian sinyal (Frame) Penjendelaan Metode Autokorelasi Parameter Keluaran Gambar 2. 4 Blok diagram analisis LPC 2.5 Algoritma Decision Tree Pohon keputusan (decision tree) merupakan metode penambangan data meodel klasifikasi. Salah satu metode data mining yang umum digunakan adalah decision tree. Konsep decision tree adalah suatu struktur flowcart yang menyerupain tree (pohon), dimana setiap simpul internal menandakan suatu tes pada atribut, setiap cabang mempresentasikan hasil tes dan simpul daun mempresentasikan kelas atau distribusi kelas. Alur pada decision tree di telusuri dari simpul akar ke simpil daun yang memegang prekdisi kelas untuk untuk contoh tersebut. (Jiawei Han dan Micheline Kamber. 2006). PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 16 Akar Daun caban g Kemungkinan Kejadian Daun Kemungkinan Kejadian Gambar 2. 5 Contoh Pohon Keputusan Decision tree digunakan untuk kasus-kasus yang menghasilkan output bernilai diskrit. Walaupun banyak variasi model decision tree dengan tingkat kemampuan dan syarat yang berbeda, pada umumnya beberapa ciri khusus yang cocok untuk diterapkan dengan metode decision tree : 1. Data dinyatakan dengan pasangan atribut dan nilainya. 2. Label /output data biasanya bernilai diskrit. 3. Data mempunyai missing value. Dalam decision tree setiap atribut ditanyakan disimpul. Jawaban dari atribut ini dinyatakan dalam cabang sampai akhirnya ditemukan kategori/jenis dari suatu objek disimpul akhir .Untuk membuat decision tree perlu diperhatikan beberapa syarat berikut : (Budi Santoso. 2007) 1. Atribut mana yang akan dipilih untuk memisahan objek 2. Urutan atribut mana yang akan dipilih terlebih dahulu 3. Struktur tree 4. Kriteria pemberhentian 5. Pruning Masalah pertama pada decision tree adalah atribut manakah yang digunakan sebagai akar atau root dari tree yang akan dibentuk. Akar yang dimaksud adalah pemisah pertama dari decision tree. Dikenal dengan istilah Bayesian Score yang menilai suatu atribut atau dalam decision tree disebut dengan entropy. Entropy dihitung dengan rumus sebagai berikut: (Prabowo, Rahmadya dan Herlawati. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 17 2013) Entropy (S) = − ∑ni=1 pi ∗ log 2 ( pi ) (2.12) Keterangan : S = Himpunan Kasus n = jumlah partisi atribut S pi = proporsi Si terhadap S Setelah mendapatkan nilai entropy untuk suatu kumpulan sampel data, maka dapat melakukan pengukuran efektoivitas suatu atribut dalam pengklasifikasikan data. Ukuran efektivitas ini yang disebut dengan information gain. Information Gain adalah salah satu alat ukur seleksi atribut yang digunakan untuk memilih data test atribut tiap node pada tree. Atribut dengan information Gain tertinggi dipilih sebagai data test atribut dari suatu node selanjutnya. Rumus untuk information Gain adalah: (Kantardzic. 2003) |S | Gain(S, A) = Entropy(S) − ∑ni=1 |S|i ∗ Entropy(S) (2.10) Keterangan : S = Himpunan Kasus A = Fiture n = jumlah partisi atributA βSiβ = proporsi Si terhadap S βSβ = jumlah kasus pada S 2.6 K-Fold Cross Validation Cross validation adalah metode statistic yang mengevaluasi dan membandingkan algoritma pembelajaran dengn membagi data menjadi dua yaitu data training dan data testing. Bentuk dari cross validation adalah k-fold cross validation. (Payam R., Lie Tang dan Huan Liu. 2008). Metode k-fold cross validation yang sering dipakai adalah 3-fold cross validation dan 5-fold cross validation. Dalam cross validation, tentukan nilai folds atau partisi untuk data. Prinsip dari k-fold cross validation adalah membagi tiap kelompok data menjadi k PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 18 bagian kelompok data yang selanjutnya, data tersebut secara bergantian akan digunakan untuk training dan testing sejumlah k pengujian. Tabel 2. 2 3-Fold cross validation Training Testing 2,3 1 1,3 2 1,2 3 Misalkan untuk 3-fold cross validation data dibagi menjadi 3 bagian. Setiap bagian yang akan digunakan unruk training dan testing secara bergantian. Dua dari tiga bagian data digunakan untuk training maka bagian data ketiga digunakan untuk testing (Ian H., Frank Eibe, Mark A. Hall . 2010). Jika bagian data pertama dan kedua digunakan untuk training maka data kedua digunakan untuk testing. Jiaka bagian data kedua dan ketiga yang digunakan untuk training maka bagian data pertama yang digunakan untuk testing. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB III METODOLOGI Bab metodologi ini berisi gambaran proses yang akan dilakukan dalam penilitian dan penjelasan cara kerja sistem, serta data sekuen protein yang digunakan dalam penilitian. 3.1 Data Dalam penelitian ini, data yang digunakan untuk klasifikasi kanker paruparu dan kanker payudara dengan algoritma decision tree adalah data sekuen protein yang berupa sekumpulan asam amino. Data sekuen protein diperoleh dari salah satu bank protein dunia yaitu Uniprot.org dan NCBI. Data sekuen protein yang digunakan berformat .fasta. Sekuen protein yang terdiri dari sekumpulan asam amino. Asam amino memiliki 20 macam yaitu Alamin (A), Arginin (R), Asparagin (N), Asam Aspartat (D), Sistein (C), Glutamin (Q), Asam Glutamat (E), Glisin (G), Histidin (H), Isolesin (I), Lesin (L), Lisin (K), Metionim (M), Femilalanim (F), Prolin (P), Serin (S), Treonin (T), Triptofan (W), Tirosin (Y), Valin (V). Data sekuen protein yang digunakan bertipe String dengan panjang sekuen yang beda-beda pada setiap data. Data sekuen protein yang digunakan dipre-processing dan diekstraksi ciri terlebih dahulu sebelum digunakan dalam proses klasifikasi dengan algoritma decision tree. Tahap pertama dilakukan adalah pre-prosesing yaitu dengan mentrasformasikan data asam amino yang bertipe String menjadi numerik menggunakan EIIP based protein value tahap kedua adalah ektraksi ciri yaitu mengubah data bertipe numeric yang berupa time based menjadi sinyal frequency based mengunakan FFT dan tahap yang terakhir ekstraksi ciri menggunakan LPC dan turunan LPC dengan order 8 dan 12 untuk mendapatkan ciri dari setiap data. Data yang telah diekstraksi ciri selanjutnya 19 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 20 dicleaning yaitu dengan menganti data yang memiliki missing value berupa nilai NaN dengan nilai 0. Untuk penelitian ini data yang digunakan sebanyak 417 sekuen protein asam amino yang terdiri dari : a. 37 sekuen protein asam amino manusia sehat b. 255 sekuen protein asam amino kanker paru-paru (lung cancer) c. 125 sekuen protein asam amino kanker payudara (breast cancer) Contoh data sekuen protein asam amino jenis lung cancer yang digunakan: Tabel 3 1 Contoh data sekuen protein >sp|O14672|ADA10_HUMAN Disintegrin and metalloproteinase domain-containing protein 10 OS=Homo sapiens GN=ADAM10 PE=1 SV=1 MVLLRVLILLLSWAAGMGGQYGNPLNKYIRHYEGLSYNVDSL HQKHQRAKRAVSHEDQFLRLDFHAHGRHFNLRMKRDTSLFSD EFKVETSNKVLDYDTSHIYTGHIYGEEGSFSHGSVIDGRFEGFIQ TRGGTFYVEPAERYIKDRTLPFHSVIYHEDDINYPHKYGPQGGC ADHSVFERMRKYQMTGVEEVTQIPQEEHAANGPELLRKKRTT SAEKNTCQLYIQTDHLFFKYYGTREAVIAQISSHVKAIDTIYQTT DFSGIRNISFMVKRIRINTTADEKDPTNPFRFPNIGVEKFLELNSE QNHDDYCLAYVFTDRDFDDGVLGLAWVGAPSGSSGGICEKSK LYSDGKKKSLNTGIITVQNYGSHVPPKVSHITFAHEVGHNFGSP HDSGTECTPGESKNLGQKENGNYIMYARATSGDKLNNNKFSL CSIRNISQVLEKKRNNCFVESGQPICGNGMVEQGEECDCGYSD QCKKRRRPPQPIQQPQRQRPRESYQMGHMRR 3.2 Metode Penelitian Metode penelitian menjelaskan urutan proses yang dilakukan dalam sistem dengan dataset masukan berupa data protein berformat .fasta. Proses pelatihan atau training bertujuan untuk membentuk model yang dalam penelitian ini PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 21 berupa tree. Proses pengujian sistem atau testing bertujuan sebagai pengenalan atau penentuan jenis kanker. Proses training terdiri dari ekstraksi ciri dan klasifikasi decision tree untuk membentuk model. Proses testing terdiri dari ekstraksi ciri, klasifikasi dan validasi sehingga terbentuk presentase akurasi. Alur proses dari sistem bisa dilihat pada block diagram pada gambar 3.1 : Training Testing Data Protein Data Protein Preprocessing Preprocessing Ekstraksi Ciri Ekstraksi Ciri Modeling Decision tree Klasifikasi Decision tree Model Jenis Kanker Validasi Output Jenis Kanker Gambar 3. 1 Diagram proses training dan testing 3.2.1 Preprocessing Tahap pre-processing merupakan tahapan awal dalam mengolahan data inputan sebelum masuk pada proses klasifikasi. Data yang dipreprocessing kemudian akan masuk dalam tahap ekstraksi ciri. Tahap preprocessing pada penelitian ini menggunakan Electron- Ion Interaction Potential (EIIP) yang merupakan based protein value. Data Sekuen Protein Electron- Ion Interaction Potential (EIIP) based protein value PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 22 Gambar 3. 2 Diagram Preprocessing Langkah pertama tahap pre-processing adalah data sekuen protein dengan format .fasta memilki dua bagian yaitu header dan sequence, bagian sequence yang berupa 1-latter code dari asam amino yang akan digunakan dalam tahap pre-processing menggunakan EIIP based protein value. Fungsi dari EIIP adalah mentransformasikan sequence yang bertipe String menjadi numerik berdasarkan nilai asam amino yang telah ditetapkan pada tabel 2. EIIP value amino acid. Berikut ini adalah contoh sequence yang telah ditransformasikan, yang divisualisasikan pada grafik seperti gambar 3.3 : Gambar 3. 3Grafik sekuen protein asam amino A2KUC3 yang telah ditrasformasikan dengan EIIP based protein value 3.2.2 Ekstraksi Ciri Ekstraksi ciri merupakan proses mendapatkan ciri dari data yang sudah dikumpulkan, tujuan ekstraksi ciri ini adalah mendapatkan ciri penting dari data sekuen protein. Data Hasil Preprocessing FFT LPC PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 23 Gambar 3. 4 Diagram ekstraksi ciri Sekuen protein asam amino yang telah ditransformasikan menjadi numerik menggunakan EIIP based protein value , selanjutnya masuk kedalam proses ekstraksi ciri dengan menggunakan Fast Fourier Transform (FFT) yaitu mengubah sinyal time base (hasil pre-processing) menjadi sinyal frequency based. Hasil dari proses FFT bisa dilihat pada grafik steam gambar dibawah ini : Gambar 3. 5 Sinyal stem ekstraksi ciri dengan FFT pada sekuen protein A2KUC3 Data yang telah diubah menjadi sinyal frequency based, selanjutnya ekstraksi ciri lagi dengan LPC. Fungsi LPC adalah untuk mendapatkan ciri dari setiap data yaitu dengan menghapus redundansi pada sinyal. Order yang digunakan dalam penelitian ini adalah order 8 dan order 12. Pemilihan order LPC berhubungan dengan pole, dimana pole yang berhubungan pada frekuensi. Pole yang biasa digunakan adalah pole 3 dan 4. Penelitian ini menggunakan pole 4 dengan order standar order 8 dan order 12 yang PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 24 merupakan nilai order pole kedua (8+4). Nilai order yang dipilih pada penelitian ini berpengaruh pada nilai turunan LPC. Jika nilai order semakin besar, maka nilai ciri pada turuanan dari LPC semakin kecil. Pada penelitian ini, menggunakan 3 feature LPC yaitu LPC, delta LPC dan delta delta LPC. Delta LPC adalah turunan pertama dari LPC dan delta delta LPC adalah turunan kedua dari LPC. Turunan LPC digunakan untuk mendapatkan informasi dari ciri yang dinamis dari fitur statis. Pada order 8, setiap feature menghasilkan 8 ciri dan 1 energi. Jika semua feature (LPC, deltaLPC, delta delta LPC) digabungkan menjadi satu, maka panjang data yang terbentuk sebanyak 27, dimana panjang data akan menjadi atribut dari data dalam proses klasifikasi. Hasil dari proses LPC dengan order 8 feature LPC, delta LPC dan delta delta LPC pada gambarr dibawah ini : Gambar 3. 6 Sinyal stem LPC, delta LPC, delta delta LPC order 8 sekuen protein A2KUC3 Sedangkan, untuk order 12, setiap feature LPC menghasilkan 12 ciri dan 1 energi. Jika semua feature (LPC, deltaLPC, delta delta LPC) digabungkan menjadi satu, maka panjang data yang terbentuk sebanyak 39, dimana panjang data akan menjadi atribut dari data dalam proses klasifikasi. Hasil dari proses LPC dengan order 12 dengan feature LPC, delta LPC dan delta delta LPC bisa dilihat pada grafik steam gambar 3.7 : PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 25 Gambar 3. 7 Sinyal stem LPC, delta LPC, delta delta LPC order 12 sekuen protein A2KUC3 Setelah proses ektraksi ciri selasai, maka dilakukan cleaning data dari hasil ekstraksi ciri yang memiliki missing value. Pada penelitian ini missing value berupa nilai NaN akan diberi nilai baru yaitu nilai 0, untuk menormalisasikan nilai data tanpa merubah nilai. Proses ini melooping semua data yang dimiliki nilai NaN pada setiap baris dan kolom. Pada proses ini juga penambahan label data berupa kelas 1 sampai 3. Dimana kelas 1 berupa data sehat, kelas 2 berupa data kanker paru-paru dan kelas 3 berupa data kanker payudara. Pemberian label dilakukan secara otomatis berdasarkan banyaknya data dari folder class (sehat, kanker paruparu, dan kanker payudara). Label ditaruh dibagian kolom pertama dari data dan kolom selanjutnya berupa atribut. 3.2.3 Proses Training Pada proses training, data dari tahap ekstraksi ciri akan diklasifikasi dengan menggunakan algoritma decision tree. Data sekuen protein yang telah dilakukan ekstraksi ciri akan disimpan dalam format .mat. K-fold cross validation yang digunakan pada penelitian ini adalah dengan menggunakan 3- PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 26 fold cross-validation. Proses pembagian data mengunakan cv partition milik matlab dimana data akan dipartisi sebanyak k, dimana nilai k adalah 3, data dipartisi menjadi 3 bagian untuk data training dan 3 bagian untuk data data testing. Data sebanyak 417 akan dibagi menjadi 3 bagian masing-masing 278 untuk training 1, 278 untuk training 2, dan 278 untuk training 3. Proses training digunakan untuk mendapatkan model dari klasifikasi dengan menggunakan algoritma decision tree yaitu berupa tree. Berikut ini contoh data training 1 pada feature LPC dengan order 8. Gambar 3. 8 Contoh data training 1 feature LPC dengan order 8 3.2.4 Tahap Klasifikasi Decision Tree Data sekuen protein yang sudah diekstraksi ciri, selanjutnya masuk dalam proses klasifikasikan menggunakan algoritma decision tree. Data yang telah dipartisi menjadi training 1, training 2, dan training 3, selanjutnya tiap training dan feature LPC dengan order 8 dan 12 akan dibuat model atau tree. Pada penelitian ini menghasilkan 18 tree yang terbentuk berdasarkan kombanasi feature LPC dan training. Algoritma decision tree yang digunakan adalah PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 27 greedy decision tree. Langkah membuat tree dengan algoritma greedy decision tree: a. Dimulai dari membuat decision tree kosong Gambar 3. 9 decision tree kosong b. Pisahkan pada yang memiliki atribut terbaik. 1. Hitung nilai entropy untuk semua atribut. Entropy (S) = − ∑ni=1 pi ∗ log 2 ( pi ) (3.1) Lalu cari nilai binari untuk setiap atribut terhadap kelas, nilai binary digunakan untuk perhitungan entropy terhadap komposisi kelas. Entropy (S) = −p log 2 p − ( 1 − p) log 2 (1 − p) (3.2) Dimana nilai p = 0.5 merupakan nilai p terbaik untuk variabel binary. Gambar 3. 10 entropy dari variabel binari 2. Hitung nilai entropy untuk semua data terhadap komposisi kelas |S | Entropy (S|A) = ∑ni=1 |S|i ∗ Entropy(S) 3. Hiitung nilai information gain untuk setiap atribut. (3.3) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI |S | Gain(S, A) = Entropy(S) − ∑ni=1 |S|i ∗ Entropy(Si ) 28 (3.4) Att b < 19,9 >= 19,9 Gambar 3. 11 Contoh level pertama decision tree c. Ulangi (rekursif) langkah 2 untuk setiap daun Gambar 3. 12 Hasil Tree yang terbentuk dari training 3 3.2.5 Pengujian Pengujian dilakukan untuk mengetahui akurasi dari proses klasifikasi. Akurasi merupakan presentase data yang terklasifikasi dengan benar. Dari tahap pengujian dapat dibuktikan bahwa jenis kanker paru-paru, kanker payudara dan sehat dapat dikenali dengan benar sesuai label. Pengujian dan training menggunakan 3-fold cross-validation yaitu dengan membagi data PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 29 menjadi tiga bagian. Data sebanyak 417 akan dibagi menjadi 3 bagian (untuk testing) masing-masing 139, 139, 139. Dua bagian data akan digunakan untuk training dan satu bagian digunakan untuk testing. Proses akurasi untuk menghitung nilai akurasi dengan mencocokan label kelas data testing dengan prediksi kelas, lalu hitung data yang sama antara label kelas data testing dengan prediksi lalu dibagi dengan jumlah data testing dan dikalikan 100 %. Berikut ini contoh tabel validasi yaitu data pencocokan data testing. Gambar3. 1 Contoh data pencocokan data testing Dari tabel validasi diatas, dapat dihitung akurasi dari percobaan yang telah dilakukan. Akurasi = ∑ data benar ∑ total data × 100% Keterangan : ∑ data benar = jumlah data yang benar pada kelas prediksi ∑ total data = jumlah total data yang digunakan (3.5) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB IV ANALISIS HASIL DAN IMPLEMENTASI SISTEM Pada bab ini akan dibahas hal-hal yang berkaitan dengan implentasi sistem, hasil yang akan didapatkan dari pengujian-pengujian yang akan dilakukan, serta analisis dari hasil pengujian. 4.1 Analisis Hasil Berdasarkan hasil pengujian yang dilakukan dengan menggunakan model dari klasifikasi yaitu berupa tree dengan kombinasi feature LPC dan kombinasi order dengan ketiga data training. Dari proses pengujian ini dihasilkan nilai akurasi, nilai akurasi rata-rata, waktu pembuatan tree dan nilai pembuatan tree rata-rata yang berbeda-beda pada setiap feature LPC. Hasil pengujian tree yang dilakukan dengan kombinasi feature LPC dan kombinasi order dihadirkan secara keseluruhan pada tabel yang ditunjukan pada gambar berikut ini. Gambar 4. 1 Gambar tabel hasil perbandingan akurasi dan waktu 30 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 31 Dari kedelapan belas pengujian feature LPC dengan data training yang berbeda didapatkan tree yang berbeda-beda, hasil akurasi rata-rata yang paling baik sebesar 74,82% dengan waktu rata-rata 28,34 detik dengan feature LPC order 8 dengan nilai akurasi training yang paling baik sebesar 79.85 % dengan waktu 29.09 detik dan feature LPC, Delta LPC order 8 memiliki nilai akurasi rata-rat terendah yaitu sebesar 68,70% dengan waktu rata-rata 33,64 detik dengan nilai akurasi training terrendah sebesar 64.02 dengan waktu 32,2 detik Grafik hasil akurasi rata-rata pengujian tree ditunjukan melalui grafik dibawah ini : Gambar 4. 2 Grafik akurasi rata-rata feature LPC Nilai akurasi tree merupakan pengaruh dari besarnya range data yang digunakan pada proses klasifikasi, dimana data berasal dari hasil ekstraksi ciri. Range nilai atribut yang besar berpengaruh pada perhitungan entrory dan information gain yang digunakan dalam perhitungan untuk membuat tree. Lamanya waktu pembuatan tree merupakan pengaruh dari banyaknya atribut yang digunakan pada proses klasifikasi, dimana banyaknya atribut berasal total panjang order dari kombinasi feature LPC. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 32 4.2 Analisis Coding 2.1.1. Ekstraksi Ciri Proses Ekstraksi ciri diawali dengan tahap pre-processing data sekuen protein, dan dilanjutkan dengan proses ekstraksi ciri. Proses ekstraksi ciri berjalan jika tombol proses diklik kemudian semua data sekuen yang akan digunakan dilooping satu persatu. Data sekuen protein yang tersimpan dalam sebuah folder, untuk melakukan looping nilai i diset untuk folder yang menunjukkan banyaknya kelas yang dimiliki, dalam penelilitian ini ada 3, dalam setiap folder terdapat data sekuen protein yang berbedabeda, untuk data sehat 37 data sekuen protein, data kanker paru-paru 254 data sekuen protein dan data kanker payudara 125 data sekuen protein. Data sekuen protein harus berformat .fasta, untuk proses looping ditunjukan pada potongan source code berikut. for i=1:3 folder=['C:\Users\quadran\Documents\MATLAB\decision tree\class ',num2str(n),'\']; j = 1; file = [folder,'class ',num2str(n),' (',num2str(j),').fasta']; Kode Program 4. 1 Looping data sekuen protein Proses pre-processing data sekuen protein menggunakan EIIP based protein value, yaitu mentransformasikan data sekuen protein berformat String menjadi berformat numerik, untuk proses pre-processing ditunjukan pada potongan source kode berikut. while exist(file, 'file') == 2 %ekstraksi ciri [f,databaru] = preprosses(file); Kode Program 4. 2 Pre-processing data sekuen protein Proses transformasi dengan EIIP based protein value. Tahap pertama yang dilakukan membaca data sekuen protein berformat .fasta dengan menggunakan fungsi fastaread milik matlab, bagian data yang digunakan adalah bagian sequence yang berisi single letter-code dari asam amino. Setiap single letter-code dari asam amino diberi nilai berdasarkan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 33 EIIP based protein value. Berikut ini potongan source code transformasi EIIP. a=fastaread(x); s=a.Sequence; l = length(s); ds = []; for i = 1:l hr = s(i); if hr == 'L' ds(i)=0.0000; elseif hr == 'I' ds(i)=0.0000; elseif hr == 'N' ds(i)=0.0036; elseif hr == 'G' ds(i)=0.0050; elseif hr == 'V' ds(i)=0.0057; elseif hr == 'E' ds(i)=0.0058; elseif hr == 'P' ds(i)=0.0198; elseif hr == 'H' ds(i)=0.0242; elseif hr == 'K' ds(i)=0.0371; elseif hr == 'A' ds(i)=0.0373; elseif hr == 'Y' ds(i)=0.0516; elseif hr == 'W' ds(i)=0.0548; elseif hr == 'Q' ds(i)=0.0761; elseif hr == 'M' ds(i)=0.0823; elseif hr == 'S' ds(i)=0.0829; elseif hr == 'C' ds(i)=0.0829; elseif hr == 'T' ds(i)=0.0941; elseif hr == 'F' ds(i)=0.0954; elseif hr == 'R' PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 34 ds(i) =0.0956; elseif hr == 'D' ds(i)=0.1263; end end f=ds; Kode Program 4. 3 Transformasi sekuen protein menggunakan EIIP based value protein Proses selanjutnya adalah ektraksi ciri menggunakan FFT. Data sekuen protein ditransformasikan menjadi data bertipe numerik diekstraksi ciri menjadi sinyal frequency based dengan menggunakan FFT. FFT berfungsi mengubah sinyal dari time-base menjadi frequency-base (Yan-Zhi GUO, Meng-Long L, et al. 2005). Proses ini menggunakan function FFT milik matlab, yang ditunjukan pada potongan source code berikut. %fft FreqBase = fft(ds); plot(1:l,abs(FreqBase(1:l)));figure(gcf); Kode Program 4. 4 Proses FFT data sekuen protein Data sekuen protein yang telah menjadi sinyal frequency-base selanjutnya diekstraksikan ciri kembali dengan mengunakan LPC dan turunan dari LPC (delta LPC dan delta delta LPC). LPC digunakan untuk menyeragamkan panjang sinyal yang ditentukan berdasarkan order dan mendapatkan ciri dari setiap data. Pada penelitian ini order yang digunakan adalah order 8 dan order 12. Berikut ini adalah potongan source code dari function dolpc.m dan deltas.m [nbands,nframes] = size(x); if nargin < 2 modelorder = 8; end % Calculate autocorrelation r = real(ifft([x;x([(nbands-1):-1:2],:)])); % First half only r = r(1:nbands,:); % Find LPC coeffs by durbin [y,e] = levinson(r, modelorder); % Normalize each poly by gain y = y'./repmat(e',(modelorder+1),1); end Kode Program 4. 5 LPC PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 35 if nargin < 2 w = 9; end [nr,nc] = size(x); if nc == 0 % empty vector passed in; return empty vector d = x; else % actually calculate deltas % Define window shape hlen = floor(w/2); w = 2*hlen + 1; win = hlen:-1:-hlen; % pad data by repeating first and last columns xx = [repmat(x(:,1),1,hlen),x,repmat(x(:,end),1,hlen)]; % Apply the delta filter d = filter(win, 1, xx, [], 2); % filter along dim 2 (rows) % Trim edges d = d(:,2*hlen + [1:nc]); end Kode Program 4. 6 Delta LPC Setiap data yang telah diolah menggunakan LPC dan deltaLPC dengan order tertentu selanjutnya digabungkan menjadi satu data. Setiap feature menghasilkan nilai sesuai order yang digunakan ditambah satu energi. Contoh feature LPC dengan order 8 menghasilkan 9 nilai pada setiap data yang terdiri dari 8 ciri dan 1 energi. Setiap feature digabungkan menjadi satu data baru yang ditampilkan dengan sinyal steam, yang ditunjukan pada potongan source code berikut. lpc =dolpc (FreqBase,8); % stem(dellpc,'DisplayName','dellpc');figure(gcf); deltalpc = deltas(lpc,8); % stem(deltalpc,'DisplayName','deltalpc');figure(gcf); deltadeltalpc = deltas(deltalpc,8); % stem(deltadeltalpc,'DisplayName','deltadeltalpc');figure(gcf); databaru = [lpc; deltalpc; deltadeltalpc]; plot(1:27,databaru); PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 36 stem(databaru,'DisplayName','databaru');figure(gcf) f=databaru; end Kode Program 4. 7 Penggabungan LPC, delta LPC, delta delta LPC Data feature LPC yang telah digabungkan selanjutnya ditampilkan pada halaman ekstraksi ciri menggunakan function axes milik matlab. Function axes digunakan untuk menampilkan data dalam bentuk grafik figure yang ditunjukan pada potongan source code berikut. axes(handles.axTotalLPC) stem(databaru,'DisplayName','databaru'); pause(0.01); Kode Program 4. 8 Menampilkan data pada halaman Ekstraksi Ciri Nilai hasil ekstraksi disimpan dalam suatu variabel dan dilakukan proses transpose matriks dengan memberikan (‘) pada variabel yang akan ditranspose. Transpose matriks digunakn untuk mengubah baris menjadi kolom atau sebaliknya. Tujuan dilakukannya transpose adalah untuk memepermudah pembacaan data pada proses klasifikas, yang ditunjukan pada potongan source code berikut. f = f'; Hasilf=[Hasilf;f] Kode Program 4. 9 Trasnpose hasil ekstraksi ciri Data hasil ekstraksi ciri yang telah tersimpan dalam suatu variabel selanjutnya diberi label sesuai dengan kelas dari setiap data. Pemberian label berdasakan folder data yang digunakan dalam proses pre-processing dan ekstraksi ciri. Pemberia label berguna pada proses klasifikasi dan akurasi untuk mencocokan data berada pada kelas mana. Berikut ini adalah potongan source code untuk pelabelan data. class(m)=n; m=m+1; j=j+1; file = [folder,'class ',num2str(n),' (',num2str(j),').fasta']; end n=n+1; end PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 37 class=class'; [m,n]=size(Hasilf); Kode Program 4. 10 Pemberian label kelas pada data Sebelum proses klasifikasi data yang telah diekstraksi ciri dilakukukan cleaning data yaitu data memiliki missing value diberi nilai baru. Pada peneleitian ini data yang memiliki nilai NaN diberikan nilai baru yaitu 0, yang ditunjukan pada potongan source code berikut. %missing value for i=1:m for j=1:n if isnan(Hasilf(i,j)) Hasilf(i,j)=0; end end end Kode Program 4. 11 Missing Value Sebelum masuk dalam proses klasifikasi data dipartisi menjadi n-bagian menggunakan k-fold cross validation. Pada penelitian ini menggunakan 3-fold cross validation. Partisi data menggunakan cvpartition milik matlab. Cvpartition mempartisi data training dan testing secara random, sehingga data yang telah diolah harus disimpan sebelum dilakukan proses klasifikasi. Berikut ini adalah potongan source code partisi data. [N] = size(Hasilf,1); k = 3; c1 = cvpartition(N,'kfold',k); Kode Program 4. 12 Partisi Data Data hasil pre-processing, ekstraksi ciri, pelabelan, missing value disimpan dalam variabel data Hasilf sedangkan hasil partisi berupa data training dan data testing disimpan didalam variabel data Training 1, Trainining 2, Training 3, Testing 1, Testing 2 dan Testing3. Semua data yang telah disimpan dijadikan satu. Data disimpan dengan format .mat untuk mempermudah pemanggilan data dalam proses klasifikasi. Berikut potongan source code menyimpan data. Hasilf=[class,Hasilf]; [Training1, Testing1, Training2, Testing2, Training3, Testing3] = foldSaya( PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 38 Hasilf ); save('hasilPre-processing.mat','Hasilf' , 'Training1', 'Testing1', 'Training2', 'Testing2', 'Training3', 'Testing3'); Kode Program 4. 13 Save Data 2.1.2. Algoritma Decision Tree Pengujian dilakukan dengan membuat pohon keputusan atau tree untuk setiap proses training. Untuk melakukan klasifikasi, langkah pertama adalah memanggil dataset dari pre-processing dan ekstraksi ciri yang telah dipartisi yang disimpan dalam format.mat dengan function load dari matlab. Pilih data training yang digunakan dalam proses klasifikasi. Pisah data training menjadi dua bagian yaitu data atribut dan data kelas. Beri nama untuk setiap atribut sesuai dengan panjang data. Untuk membuat tree dibutuhkan function bulid_tree.m dengan inputan berupa kelas, atribut, dan nama atribut, yang ditunjukan pada source code berikut ini. load('hasilPre-processing.mat'); Data = Training3; % We want to predict the first column... Y = Data(:,1); % ...based on the others X = Data(:,2:end); cols = {'att1','att2','att3','att4','att5','att6','att7','att8','att9','att10','att11','att12','a tt13','att14','att15','att16','att17','att18',... 'att19','att20','att21','att22','att23','att24','att25','att26','att27'}; t = build_tree(X,Y,cols); Kode Program 4. 14 Build decision tree Langkah pertama yang dilakukan dalam build tree adalah membuat root kosong lalu buat cabang pada root, yang ditunjukan pada source code berikut ini. [inds p labels bVal coloum] = split_node(X, Y, inds, p,labels, cols, 1, bVal,coloum); Kode Program 4. 15 Membuat root kosong PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 39 Untuk membuat cabang pada root, langkah pertama adalah cek nilai Y (kelas) yang memiliki nilai unique dan cek nilai X (atribut) pada baris yang memiliki nilai unique. Looping setiap atribut untuk mendapat nilai information gain terbaik dengan cara yaitu untuk setiap nilai yang unique dipisahakan jika nilai atribut pada saat itu tidak bisa membuat cabang (jumlah nilai unique < 2) maka atribut tersebut akan dilewati. Untuk menghitung information gain perlu mencari nilai biner dari setiap nilai split. Hitung information gain dengan menghitung nilai entropy semua data pada komposisi kelas dan nilai entropy kondisi kelas pada setiap nilai atribut, jika nilai entropy sudah dihitung maka nilai Informatin gain merupakan hasil dari entropy semua data terhadap kompisis kelas dikurangi entropy kondisi kelas pada setiap nilai atribut. Cari information gain terbaik pada nilai atribut yang unique lalu proses information gain terbesar antar atribut untuk mendapatkan nilai pemisah, yang ditampilkan pada source code berikut Function [inds p labels bVal coloum] = split_node(X, Y, inds, p, labels, cols, node, bVal, coloum) % Recursively splits nodes based on information gain % Check if the current leaf is consistent if numel(unique(Y(inds{node}))) == 1 return; end if size(unique(X(inds{node},:),'rows'),1) == 1 return; end best_ig = -inf; %best information gain best_feature = 0; %best feature to split on best_val = 0; % best value to split the best feature on curr_X = X(inds{node},:); curr_Y = Y(inds{node}); % Loop over each feature for i = 1:size(X,2) feat = curr_X(:,i); % Deterimine the values to split on vals = unique(feat); PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 40 splits = 0.5*(vals(1:end-1) + vals(2:end)); if numel(vals) < 2 continue end % Get binary values for each split value bin_mat = double(repmat(feat, [1 numel(splits)]) < repmat(splits', [numel(feat) 1])); % Compute the information gains H = ent(curr_Y); H_cond = zeros(1, size(bin_mat,2)); for j = 1:size(bin_mat,2) H_cond(j) = cond_ent(curr_Y, bin_mat(:,j)); end IG = H - H_cond; % Find the best split [val ind] = max(IG); if val > best_ig best_ig = val; best_feature = i; best_val = splits(ind); end end Kode Program 4. 16 Split node Hal yang pertama dilakukan dalam membuat node adalah siapkan cabang terlebih dahulu, lalu cari nilai atribut terbaik pada saat itu yang lebih kecil dari nilai pemisah terbaik, cabang kiri untuk cabang yang memiliki nilai lebih kecil sedangkan cabang kanan untuk cabang yang memiliki nilai yang lebih besar. Beri label untuk cabang kiri dan kanan berupa nama atribut dan nilai terbaik dari pemisah terbaik. Ulangi untuk membuat node baru yaitu mencari split node (Kode Program 4. 17). Berikut ini source code yang digunakan. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 41 % Split the current node into two nodes feat = curr_X(:,best_feature); feat = feat < best_val; inds = [inds; inds{node}(feat); inds{node}(~feat)]; inds{node} = []; p = [p; node; node]; labels = [labels; sprintf('%s < %2.2f', cols{best_feature}, best_val); sprintf('%s >= %2.2f', cols{best_feature}, best_val)]; bVal = [bVal; best_val; best_val]; coloum = [coloum;best_feature;best_feature]; % Recurse on newly-create nodes n = numel(p)-2; [inds p labels bVal coloum] = split_node(X, Y, inds, p, labels, cols, n+1, bVal,coloum); [inds p labels bVal coloum] = split_node(X, Y, inds, p, labels, cols, n+2, bVal,coloum); Kode Program 4. 18 Membuat cabang Tree yang sudah terbentuk ditampikan dalam sebuah figure baru (terlepas dari halaman tree) agar tree dapat lebih mudah dilihat. Untuk menampilkan tree menggunakan treeplot dan treelayout. Treeplot digunakan untuk menampilkan kerangka tree berupa node-node dan cabang, sedangkan treelayout untuk membuat koordinasi dari tree. Setelah tree ditampilkan niali dari tree akan disimpan sebagai model utuk proses akurasi. Berikut ini source code yang digunakan. h1 = figure; %% Display the tree treeplot(t.p'); title('Decision tree (Visual Tree)'); [xs,ys,h,s] = treelayout(t.p'); for i = 2:numel(t.p) % Get my coordinate my_x = xs(i); my_y = ys(i); % Get parent coordinate parent_x = xs(t.p(i)); parent_y = ys(t.p(i)); % Calculate weight coordinate (midpoint) mid_x = (my_x + parent_x)/2; mid_y = (my_y + parent_y)/2; PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 42 % Edge label text(mid_x,mid_y,t.labels{i-1}); % Leaf label if ~isempty(t.inds{i}) val = Y(t.inds{i}); if numel(unique(val))==1 text(my_x, my_y, sprintf('y=%2.2f\nn=%d', val(1), numel(val))); else %inconsistent data text(my_x, my_y, sprintf('**y=%2.2f\nn=%d', mode(val), numel(val))); end end end save ('tree.mat','t'); Kode Program 4. 19 Menampilkan Tree 2.1.3. Akurasi Tree Proses akurasi dilakukan dengan testing tree terlebih dahulu. Proses testing dilakukan pada setiap baris dengan cara mencari cabang node yang memiliki parent yang berupa root. Proses berikut ini berlangsung selama tree masih memiliki cabang. Tentukan nilai atribut node berada pada cabang kanan (lebih besar) atau kiri (lebih kecil). Setelah ditentukan atribut masuk dalam cabang kiri atau kanan, maka cabang tesebut akan menjadi node berikutnya. Tahap selanjutnya adalah mencari cabang node yang memiliki parent dari cabang node yang telah ditentukan sebelumnya. Setelah menemukan node terakhir (tidak memiliki cabang), didapatkan lah prediksi kelas. Data prediksi kelas di simpan dalam sebuah array. Berikut ini source code yang digunakan. for i = 1 : size(att, 1) curr = 1; idx = find(tree.p == curr); while isempty(tree.inds{curr}) if(att(i, tree.coloum{idx(1) - 1}) < tree.bVal{idx(1) - 1}) curr = idx(1); else curr = idx(2); PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 43 end idx = find(tree.p == curr); end tree.inds{curr}; val = X(tree.inds{curr}); class = [class unique(val)]; end Kode Program 4. 20 Testing tree Langkah pertama untuk menghitung nilai akurasi dengan mencocokan label kelas data testing dengan prediksi kelas yang didapatkan dari proses Testing tree, lalu hitung rata-rata data yang sama antara label kelas data testing dengan prediksi kelas, yang ditampilkan pada source code dibawah ini. for i = 1 : size(result, 1) if(result(i, 1) == result(i, 2)) equ = equ + 1; end tot = tot + 1; end acc = equ * 100 / tot; Kode Program 4. 21 Menghitung akurasi 4.3 User interface Untuk mempermudah dalam melakukan tahap klasifikasi pada penelitian ini dibuat user interface. User interface ini dibuat untuk membantu dalam preprocessing, ekstraksi fitur sehingga mendapatkan hasil klasifikasi berupa tree, akurasi dan pengujian dengan data uji tunggal. Pada halaman utama terdiri dari beberapa menu untuk ekstraksi ciri, klasifikasi, akurasi dan pengujian dengan data tunggal. Berikut merupakan halaman utama dalam penelitian ini : PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 44 Gambar 4. 3 User Interface Halaman Utama Halaman ekstraksi ciri digunakan untuk menampilkan bagian tahap pre-processing dan ekstraksi ciri. Implementasi menu ekstraksi ciri dapat dilihat pada gambar di bawah ini : Gambar 4. 4 Halaman Ekstraksi ciri Pada halaman ekstraksi ciri menunjukan bahwa data sekuen protein yang sedang mengalami proses pre-processing dan ekstraksi ciri, data PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 45 sekuen protein yang ditampilkan pada halaman tersebut akan berubah sesuai dengan data yang sedah diproses. Gambar 4. 5 Proses preproses dan ekstraksi ciri pada halaman ekstraksi ciri Halaman tree merupakan halaman yang menampilkan hasil klasifikasi (tree) dengan algoritma decision tree. Dataset yang digunakan sebanyak 278 data sekuen protein untuk training 1, 278 data sekuen protein untuk training 2 dan 278 data sekuen protein untuk training 3. Gambar 4. 6 Halaman Tree Halaman akurasi tree merupakan halaman yang menampilkan hasil akurasi dari tree yang terbentuk pada tahap klasifikasi. Nilai akurasi tree yang ditunjukan didapatkan dari perhitungan jumlah data yang bener dibagi dengan seluruh data yang digunakan. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 46 Gambar 4. 7 Halaman Akurasi Tree Halaman uji tunggal digunakan untuk menguji satu data sekuen protein. Pada halaman ini masukan berupa nomor indek data sekuen protein yang telah di pre-processing dan diekstraksi ciri, data yang digunakan adalah testing. Keluaran dari proses uji tunggal adalah kelas dan nama kanker dari data yang diolah. Gambar 4. 8 Halaman Uji Tunggal PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan Berdasarkan percobaan dan penelitian yang telah dilakukan untuk klasifikasikan jenis kanker paru- paru dan payudara berdasarkan susunan protein dengan algoritma decision tree ini dapat ditarik kesimpulan sebagai berikut : 1. Metode ekstraksi ciri dengan mengunakan LPC dapat meyeragamkan panjang data dan mendapatkan ciri dari setiap data yang diolah dengan pada proses klasifikasi. 2. Proses cleaning data dengan mengganti nilai data yang memiliki missing value (NaN) dapat membantu pada proses klasifikasi. 3. Pada klasifikasi jenis kanker paru- paru dan payudara berdasarkan susunan protein dengan algoritma decision tree, data sekuen protein yang gunakan sejumlah 417, yang terdiri dari 37 data sekuen protein sehat, 255 data sekuen protein kanker paru-paru dan 125 data sekuen protein kanker payudara. Data sekuen protein di bagi menggunakan 3-fold cross validation dengan nilai training 278,278 dan 278 dan nilai testing 139,139 dan 139 menghasilkan akurasi paling tinggi sebesar 79,85% pada feature LPC order 8 dan akurasi paling rendah sebesar 64,02% pada pada feature LPC, delta LPC order 8. 4. Klasifikasi dilakukan dengan memodifikasi kombinasi feature LPC, delta LPC dan delta delta LPC deng order 8 dan 12 pada proses ekstraksi ciri. Dari keenam pengujian didapatkan ketepatan dan kecepatan klasifikasi terbaik pada feature LPC order 8 dengan akurasi rata-rata sebesar 74,82% dan waktu rata-rata pembuatan tree 28.34 detik dengan akurasi tertinggi dari training 1 sebesar 79,85 % dan waktu pembuatan tree 29.09 detik. 47 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 48 5.2 Saran Saran untuk penelitian akhir ini adalah : 1. Data sekuen protein ditambah lebih banyak terutama untuk data sekuen protein sehat dan penambahan tingkat stadium untuk setiap data sekuen protein kanker payudara dan paru-paru. 2. Range nilai dalam atribut disederhanakan dengan interval nilai atau kategorisasi. 3. Menggunakan pre-processing dan ekstraksi ciri yang berbeda untuk penelitian selanjutnya. 4. Pada algoritma decision tree dapat ditambah method prune untuk menambah peningkatan akurasi. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR PUSTAKA Branslava Gemovic, Vladimir Perovic, et al. Feature –Base Classification of Amino Acid Subtantions outside Conserved Functional Protein Domains. Hindawai Publishing Corporation The Scientific Word Journal. F.Z. Chelali, K. Sadeddine, et al. Speaker indetification system using LPCApplication on Berber language.HD-SKD Internasional Jurnal. Han, Jiawei and Micheline Kamber. Data Mining : Concepts and techniques 2nd edition. 2006. Morgan Kaufmann. Sanfrancisco, CA. http://labrosa.ee.columbia.edu/matlab/rastamat/dolpc.m. Diakses pada tanggal 5 Mei 2014. http://www.uniprot.org/uniprot/. Diakses pada tanggal 20 november 2013 Kementerian Kesehatan RI. infoDatin, Pusat Data dan Informasi Kementrian Kesehatan RI, STOP KANKER. 2015. Jakarta. Luciana Kuswibawati. Kanker. 2000. Universitas Sanata Dharma. Yogyakarta. Mining. 2004. CRC Press LLC. USA. Mitra, Sushmita dan Tinku Acharya. Data Mining : multimedia, soft computing, and bioinformatics. 2003. John Wiley & Sons, Inc.. New Jersey. Nandra Pradipta. Implementasi Algoritma FFT (Fast Fourier Transform) Pada Digital Signal Processor (DSP) TMS320C542. Jurnal Universitas Diponegoro Novi Arya Kurnianto. Pententuan Jenis Kelamin Itik dengan Metode Dinamic Time Warping (DWT). Jurnal Universitas Diponegoro. Pal, Sankar K. dan Pabitra Mitra. Pattern Recognition Algorithms for Data Mining. 2004. CRC Press LLC.USA. 49 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 50 Prabowo pudjo Widodo, et al. Penerapan Data Mining dengan Matlab.2013. Rekayasa Sains. Bandung. Putra, dharma .Pengolahan Citra Digital . 2010.Andi Offset. Yogyakarta Ria K., Marji, Widodo. Penggunaan Metode Pengelompokkan K-Means pada Klasifikasi KNN Untuk Penentuan Jenis Kanker Berdasarkan Susunan Protein. Jurnal Universitas Brawijaya. Rizki., 1 desemeber 2008., Bioinformatika. http://bioinformatika-q.blogspot.co.id. Diakses pada tanggal 28 November 2013. Santoso, Budi. DATA MINING : Teknik Pemanfaatan Data untuk Keperluan Bisnis. 2007. Graha Ilmu. Yogyakarta. Sri Hartanti Yuliana. Kanker. 2000. Universitas Sanata Dharma. Yogyakarta. St. Clair, Caroline dan Jonathan Visick. Exploring Bioinformatics : A Projectbased Approach. 2010. Jones and Bartlett Publishers. USA. Tim kumpulan isitilah .2013. Pengertian http://www.kumpulanistilah.com. Diakses pada kanker paru-paru tanggal 28 November 2013 Wahab Naira S., 25 agustus 2015., Mengapa Kanker Paru dan Kanker Payudara tertinggi diindonesia?. http://www.kompasiana.com. Diakses pada tanggal 8 November 2015 Wirahadikusuma, Muhamad. Biokimia “protein, enzim dan asam nukleat”. 1977. ITB Bandung. Bandung. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 51 LAMPIRAN I : Code Program 1. File Preprosesing.mat function [f,databaru] = preprosses(x) %UNTITLED4 Summary of this function goes here % Detailed explanation goes here %membaca fasta% %x = 'C:\Users\quadran\Documents\MATLAB\program\databaru\kelas1\kelas1 (1).fasta'; a=fastaread(x); %hanya mengambil sequence% s=a.Sequence; l = length(s); ds = []; for i = 1:l hr = s(i); if hr == 'L' ds(i)=0.0000; elseif hr == 'I' ds(i)=0.0000; elseif hr == 'N' ds(i)=0.0036; elseif hr == 'G' ds(i)=0.0050; elseif hr == 'V' ds(i)=0.0057; elseif hr == 'E' PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI ds(i)=0.0058; elseif hr == 'P' ds(i)=0.0198; elseif hr == 'H' ds(i)=0.0242; elseif hr == 'K' ds(i)=0.0371; elseif hr == 'A' ds(i)=0.0373; elseif hr == 'Y' ds(i)=0.0516; elseif hr == 'W' ds(i)=0.0548; elseif hr == 'Q' ds(i)=0.0761; elseif hr == 'M' ds(i)=0.0823; elseif hr == 'S' ds(i)=0.0829; elseif hr == 'C' ds(i)=0.0829; elseif hr == 'T' ds(i)=0.0941; elseif hr == 'F' ds(i)=0.0954; elseif hr == 'R' ds(i) =0.0956; elseif hr == 'D' ds(i)=0.1263; end 52 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI end f=ds; timeBase = fft(ds); % % fs = 100; % l = length(ds); % w =(1:l)/l*(fs/2); plot(1:l,abs(timeBase(1:l)));figure(gcf); % satulpc = lpc (timeBase,8); % stem(satulpc,'DisplayName','satulpc');figure(gcf) lpc =dolpc (timeBase,8); % stem(dellpc,'DisplayName','dellpc');figure(gcf); deltalpc = deltas(lpc,8); % stem(deltalpc,'DisplayName','deltalpc');figure(gcf); deltadeltalpc = deltas(deltalpc,8); % stem(deltadeltalpc,'DisplayName','deltadeltalpc');figure(gcf); databaru = [lpc; deltalpc; deltadeltalpc]; %databaru = [lpc; deltalpc]; %databaru = [lpc]; %plot(1:39,databaru); plot(1:27,databaru); stem(databaru,'DisplayName','databaru');figure(gcf) f=databaru; %f=databaru; 53 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 54 end 2. foldSaya.mat function [Training1, Testing1, Training2, Testing2, Training3, Testing3] = foldSaya( Hasilf ) %UNTITLED Summary of this function goes here [N] = size(Hasilf,1); k = 3; c1 = cvpartition(N,'kfold',k); Training1 = Hasilf(find(c1.training(1) == 1), :); Testing1 = Hasilf(find(c1.test(1) == 1), :); Training2 = Hasilf(find(c1.training(2) == 1), :); Testing2 = Hasilf(find(c1.test(2) == 1), :); Training3 = Hasilf(find(c1.training(3) == 1), :); Testing3 = Hasilf(find(c1.test(3) == 1), :); end 3. doLPC.mat function y = dolpc(x,modelorder) %y = dolpc(x,modelorder) % % compute autoregressive model from spectral magnitude samples % % rows(x) = critical band % col(x) = frame % % row(y) = lpc a_i coeffs, scaled by gain % col(y) = frame % % modelorder is order of model, defaults to 8 % 2003-04-12 [email protected] after [email protected] PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 55 [nbands,nframes] = size(x); if nargin < 2 modelorder = 8; end % Calculate autocorrelation r = real(ifft([x;x([(nbands-1):-1:2],:)])); % First half only r = r(1:nbands,:); % Find LPC coeffs by durbin [y,e] = levinson(r, modelorder); % Normalize each poly by gain y = y'./repmat(e',(modelorder+1),1); end 4. deltas.mat function d = deltas(x, w) % D = deltas(X,W) Calculate the deltas (derivatives) of a sequence % Use a W-point window (W odd, default 9) to calculate deltas using a % simple linear slope. This mirrors the delta calculation performed % in feacalc etc. Each row of X is filtered separately. % 2003-06-30 [email protected] if nargin < 2 w = 9; end PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI [nr,nc] = size(x); if nc == 0 % empty vector passed in; return empty vector d = x; else % actually calculate deltas % Define window shape hlen = floor(w/2); w = 2*hlen + 1; win = hlen:-1:-hlen; % pad data by repeating first and last columns xx = [repmat(x(:,1),1,hlen),x,repmat(x(:,end),1,hlen)]; % Apply the delta filter d = filter(win, 1, xx, [], 2); % filter along dim 2 (rows) % Trim edges d = d(:,2*hlen + [1:nc]); end 5. ent.mat function result = ent(Y) % Calculates the entropy of a vector of values % Get frequency table 56 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 57 tab = tabulate(Y); prob = tab(:,3) / 100; % Filter out zero-entries prob = prob(prob~=0); % Get entropy result = -sum(prob .* log2(prob)) 6. cond_ent.mat function result = cond_ent(Y, X) % Calculates the conditional entropy of y given x result = 0; tab = tabulate(X); % Remove zero-entries tab = tab(tab(:,2)~=0,:); for i = 1:size(tab,1) % Get entropy for y values where x is the current value H = ent(Y(X == tab(i,1))); % Get probability prob = tab(i, 3) / 100; % Combine result = result + prob * H; end 7. build_tree.mat function t = build_tree(X,Y,cols) % Builds a decision tree to predict Y from X. The tree is grown by % recursively splitting each node using the feature which gives the best % information gain until the leaf is consistent or all inputs have the same % feature values. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 58 % % X is an nxm matrix, where n is the number of points and m is the % number of features. % Y is an nx1 vector of classes % cols is a cell-vector of labels for each feature % % RETURNS t, a structure with three entries: % t.p is a vector with the index of each node's parent node % t.inds is the rows of X in each node (non-empty only for leaves) % t.labels is a vector of labels showing the decision that was made to get % to that node % Create an empty decision tree, which has one node and everything in it inds = {1:size(X,1)}; % A cell per node containing indices of all data in that node p = 0; % Vector contiaining the index of the parent node for each node labels = {}; % A label for each node bVal = {}; coloum = {}; % Create tree by splitting on the root [inds p labels bVal coloum] = split_node(X, Y, inds, p,labels, cols, 1, bVal,coloum); t.inds = inds; t.p = p; t.labels = labels; t.bVal = bVal; t.coloum = coloum; PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI function [inds p labels bVal coloum] = split_node(X, Y, inds, p, labels, cols, node, bVal, coloum) % Recursively splits nodes based on information gain % Check if the current leaf is consistent if numel(unique(Y(inds{node}))) == 1 return; end % Check if all inputs have the same features % We do this by seeing if there are multiple unique rows of X if size(unique(X(inds{node},:),'rows'),1) == 1 return; end % Otherwise, we need to split the current node on some feature best_ig = -inf; %best information gain best_feature = 0; %best feature to split on best_val = 0; % best value to split the best feature on curr_X = X(inds{node},:); curr_Y = Y(inds{node}); % Loop over each feature for i = 1:size(X,2) feat = curr_X(:,i); % Deterimine the values to split on vals = unique(feat); splits = 0.5*(vals(1:end-1) + vals(2:end)); 59 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI if numel(vals) < 2 continue end % Get binary values for each split value bin_mat = double(repmat(feat, [1 numel(splits)]) < repmat(splits', [numel(feat) 1])); % Compute the information gains H = ent(curr_Y); H_cond = zeros(1, size(bin_mat,2)); for j = 1:size(bin_mat,2) H_cond(j) = cond_ent(curr_Y, bin_mat(:,j)); end IG = H - H_cond; % Find the best split [val ind] = max(IG); if val > best_ig best_ig = val; best_feature = i; best_val = splits(ind); end end % Split the current node into two nodes feat = curr_X(:,best_feature); feat = feat < best_val; inds = [inds; inds{node}(feat); inds{node}(~feat)]; inds{node} = []; p = [p; node; node]; 60 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 61 labels = [labels; sprintf('%s < %2.2f', cols{best_feature}, best_val); sprintf('%s >= %2.2f', cols{best_feature}, best_val)]; bVal = [bVal; best_val; best_val]; coloum = [coloum;best_feature;best_feature]; % Recurse on newly-create nodes n = numel(p)-2; [inds p labels bVal coloum] = split_node(X, Y, inds, p, labels, cols, n+1, bVal,coloum); [inds p labels bVal coloum] = split_node(X, Y, inds, p, labels, cols, n+2, bVal,coloum); 8. MainGUI.mat function varargout = GUIAkhir(varargin) % MAINGUI M-file for MainGUI.fig % MAINGUI, by itself, creates a new MAINGUI or raises the existing % singleton*. % % to H = MAINGUI returns the handle to a new MAINGUI or the handle % the existing singleton*. % % MAINGUI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MAINGUI.M with the given input arguments. % % the MAINGUI('Property','Value',...) creates a new MAINGUI or raises % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before MainGUI_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to MainGUI_OpeningFcn via varargin. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help MainGUI % Last Modified by GUIDE v2.5 31-Jan-2016 23:01:37 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @MainGUI_OpeningFcn, ... 'gui_OutputFcn', @MainGUI_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT 62 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % --- Executes just before MainGUI is made visible. function MainGUI_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to MainGUI (see VARARGIN) % Choose default command line output for MainGUI handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes MainGUI wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = MainGUI_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in BtnProses. 63 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI function BtnProses_Callback(hObject, eventdata, handles) % hObject handle to BtnProses (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clc; warning off; set(handles.axTotalLPC,'Visible','on'); n=1; m=1; Hasilf=[]; class=[]; for i=1:3 folder=['C:\Users\quadran\Documents\MATLAB\decision tree\class ',num2str(n),'\']; j = 1; file = [folder,'class ',num2str(n),' (',num2str(j),').fasta']; while exist(file, 'file') == 2 [f,databaru] = preprosses(file); axes(handles.axTotalLPC) stem(databaru,'DisplayName','databaru'); pause(0.01); f = f'; Hasilf=[Hasilf;f]; class(m)=n; m=m+1; j=j+1; file = [folder,'class ',num2str(n),' (',num2str(j),').fasta']; end 64 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI n=n+1; end class=class'; [m,n]=size(Hasilf); for i=1:m for j=1:n if isnan(Hasilf(i,j)) Hasilf(i,j)=0; end end end for i=1:37 classAwal{i,1}='normal'; end for i=38:292 classAwal{i,1}='KPr'; end for i=293:416 classAwal{i,1}='KPy'; end Hasilf=[class,Hasilf]; [Training1, Testing1, Training2, Testing2, Training3, Testing3] = foldSaya( Hasilf ); % seedstruct = se_getseeds(foldsaya(Hasilf)); 65 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 66 save('hasilPre-processing.mat','Hasilf','classAwal' , 'Training1', 'Testing1', 'Training2', 'Testing2', 'Training3', 'Testing3'); uiwait(msgbox('Pre-processing sudah selesai.')); % --- Executes on button press in BtnAkurasi. function BtnAkurasi_Callback(hObject, eventdata, handles) % hObject handle to BtnAkurasi (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) load('hasilPre-processing.mat'); load('tree.mat','t'); class = testingTree(Testing3(:, 2:end), t, Training3(:, 1))'; result = [Testing3(:, 1), class]; acc = CalculateAcc(result); save('acc.mat', 'acc'); set(handles.HasilAkurasi, 'String', strcat(int2str(acc), '%')); function class = testingTree(att,tree,X) %% X = Class awal class = []; for i = 1 : size(att, 1) curr = 1; idx = find(tree.p == curr); while isempty(tree.inds{curr}) %att(tree.coloum(idx(1))) if(att(i, tree.coloum{idx(1) - 1}) < tree.bVal{idx(1) - 1}) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI curr = idx(1); else curr = idx(2); end idx = find(tree.p == curr); end tree.inds{curr}; %%mencocokan data val = X(tree.inds{curr}); class = [class unique(val)]; end function acc = CalculateAcc(result) equ = 0; tot = 0; for i = 1 : size(result, 1) if(result(i, 1) == result(i, 2)) equ = equ + 1; end tot = tot + 1; end acc = equ * 100 / tot; % --- Executes on button press in BtnTree. function BtnTree_Callback(hObject, eventdata, handles) % hObject handle to BtnTree (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB 67 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % handles 68 structure with handles and user data (see GUIDATA) %% Load the auto data load('hasilPre-processing.mat'); M = Training3; % We want to predict the first column... Y = M(:,1); % ...based on the others X = M(:,2:end); %%untuk orde 8 %cols = {'att1','att2','att3','att4','att5','att6','att7','att8','att9'}; %cols = {'att1','att2','att3','att4','att5','att6','att7','att8','att9','att10','att11','att12','att13', 'att14','att15','att16','att17','att18'}; cols = {'att1','att2','att3','att4','att5','att6','att7','att8','att9','att10','att11','att12','att13', 'att14','att15','att16','att17','att18',... 'att19','att20','att21','att22','att23','att24','att25','att26','att27'}; %%untuk orde 12 %cols = {'att1','att2','att3','att4','att5','att6','att7','att8','att9','att10','att11','att12','att13' }; %cols ={'att1','att2','att3','att4','att5','att6','att7','att8','att9','att10','att11',... %'att12','att13','att14','att15','att16','att17','att18','att19','att20','att21','att22',' att23','att24','att25','att26'}; %cols ={'att1','att2','att3','att4','att5','att6','att7','att8','att9','att10','att11',... % 'att12','att13','att14','att15','att16','att17','att18','att19','att20','att21',... %'att22','att23','att24','att25','att26','att27','att28','att29','att30','att31',.... %'att32','att33','att34','att35','att36','att37','att38','att39'}; %% Build the decision tree PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI t = build_tree(X,Y,cols); h1 = figure; %% Display the tree treeplot(t.p'); title('Decision tree (Visual Tree)'); [xs,ys,h,s] = treelayout(t.p'); for i = 2:numel(t.p) % Get my coordinate my_x = xs(i); my_y = ys(i); % Get parent coordinate parent_x = xs(t.p(i)); parent_y = ys(t.p(i)); % Calculate weight coordinate (midpoint) mid_x = (my_x + parent_x)/2; mid_y = (my_y + parent_y)/2; % Edge label text(mid_x,mid_y,t.labels{i-1}); % Leaf label if ~isempty(t.inds{i}) val = Y(t.inds{i}); if numel(unique(val))==1 text(my_x, my_y, sprintf('y=%2.2f\nn=%d', val(1), numel(val))); 69 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI else %inconsistent data text(my_x, my_y, sprintf('**y=%2.2f\nn=%d', mode(val), numel(val))); end end end save ('tree.mat','t'); % --- Executes on button press in UTbutton. function UTbutton_Callback(hObject, eventdata, handles) % hObject handle to UTbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) load('hasilPre-processing.mat'); load('tree.mat'); index =str2double(get(handles.IndexInputUT,'String')); dataIndex = Testing3(index, 2:end); hasilclass = testingTree(Testing3(index, 2:end), t, Training3(:, 1))'; save('UT.mat', 'hasilclass'); % a = hasilclass; % %check the boolean condition % if a == 1 % % if condition is true then print the following % fprintf('Normal' ); % elseif( a == 2) % % if else if condition is true % fprintf('Kanker Paru - paru)' ); % elseif a == 3 % % if else if condition is true 70 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % 71 fprintf('kanker payudara' ); % else % % if none of the conditions is true ' % fprintf('maaf anda salah'); % end set(handles.HasilUT, 'String', strcat(' ', int2str(hasilclass))); set(handles.UTData,'Data',dataIndex); function IndexInputUT_Callback(hObject, eventdata, handles) % hObject handle to IndexInputUT (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of IndexInputUT as text % str2double(get(hObject,'String')) returns contents of IndexInputUT as a double % --- Executes during object creation, after setting all properties. function IndexInputUT_CreateFcn(hObject, eventdata, handles) % hObject handle to IndexInputUT (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 72