Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes BAB III PERANCANGAN DAN PEMBUATAN PERANGKAT LUNAK 3.1 Deskripsi Kebutuhan Sistem Berikut ini akan dijelaskan tentang beberapa kebutuhan sistem yang menunjang dalam pembuatan Proyek Akhir yan terdiri dari hardware maupu software sebagai berikut ini : 1. Hardware Komputerminimal 1 buah dengan spesifikasi minimum sebagai berikut : 1. CPU : Processor Core 2 Duo 2. Harddisk : 120 Gb 3. Memory : 1 Gb 4. Monitor : Resolusi 1024 x 768 2. Software − Operating sistem yang digunakan yaitu Winddows Vista. − Tools pendukung VB.Net dan MySQL. 3.2 Perancangan Sistem 3.2.1 Diagram Sistem Proses kerja sistem pada Proyek Akhir ini adalah dimulai dari user kemudian menuju aokikasi dan selanjutnya akan kembali lagi ke user dengan hasil berupa keputussan atau diagnosis penyakit. Secara garis besar proses-proses yang terjadi di dalam perancangan sistem adalah sebagai berikut : Gambar 3. 1 Diagram Perancangan Sistem Sedangkan aliran data pada sistemnya digambarkan pada Data Flow Diagram dibawah ini 21 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Gambar 3. 2 Data Flow Diagram Level 0 Sedangkan untuk aliran data pada level 1 adalah Gambar 3. 3 Data Flow Diagram Level 1 3.2.2 Diagram Alir (Flowchart) Sistem Diagram alir ( flowchart ) sistem ini dapat digambarkan seperti berikut ini : 22 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes START Data gejala -gejala kanker kandungan Input gejala , hasil screen test N Ada Input Y Proses penggolahan data dengan naive bayes Keputusan apakah m enderita kanker apa tidak STO P Gambar 3. 4 Flowchart Sistem 3.2.3 Uraian Design Sistem Ketika aplikasi ini dijalankan maka pertama kali akan meminta input dari user. Inputannya berupa gejala – gejala yang menyertainya. Kemudian data tersebut diproses atau mengalami tahap preprocessing untuk diseleksi data yang tidak perlu serta ditangani missing valuenya. 23 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Selanjutnya barulah dilakukan pembelajaran terhadap data gejala dari data training yang sebelumnya telah tersimpan di database. Selanjutnya dilakukan proses klasifikasi untuk mengklasifikasikan gejala - gejala menjadi 2 kelompok yaitu yang sesuai dengan gejala penyakit dan yang tidak sesuai. Selanjutnya diadakan testing untuk menghasilkan keputusan mengenai jenis penyakit kankernya. 3.2.4 Design Database Perancangan database dilakukan dengan mebuat tabel-tabel untuk menampung data dari hasil preprocessing yang akan dibuat untuk data training. Data training ini nantinya akan diklasifikasikan dengan metode naive bayes sehingga dihasilkan keluaran berupa keputusan atau diagnosis apakah seseorang menderita kanker atau tidak. Tabel yang digunakan adalah • Tabel diagnosis Tabel ini berfungsi untuk menyimpan informasi mengenai semua riwayat pasien baik yang positif menderita penyakit kanker ataupun tidak. Data di sini telah mengalami proses preprocessing data. Sehingga missing value telah ditangani. Deskripsi dari tabel ini dapat dilihat pada Tabel 3.3. Tabel 3. 1 Struktur table diagnosa 24 Nama Kolom Id Tipe Data Integer Umur Integer Kawin Character varying (20) usia_reproduktif Character varying (30) tekanan_darah Character varying (30) Pola_haid Character varying (30) Nyeri_haid Character varying (30) Keterangan Primary Key Fungsi Menyimpan id pasien Menyimpan umur oasien Menyimpan data riwayat perkawinan Menyimpan keterangan menopause Menyimpan keterangan tekanan darah Menyimpan keterangan siklus haid Menyimpan keterangan nyeri haid Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Keputihan Benjolan_tumbu h Character varying (30) Character varying (30) Character varying (30) Character varying (30) Character varying (30) Benjolan_berger ak Character varying (30) pucat Character varying (30) Character varying (30) Character varying (30) Pendarahan Nyeri_perut Benjolan_perut mntah Panas_tubuh diagnosis Character varying (30) Menyimpan data keputihan Menyimpan data pendarahan Menyimpan data nyeri perut Menyimpan data benjolan perut Menyimpan data benjolan tumbuh pada perut Menyimpan data benjolan bergerak pada perut Menyimpan data gejala pucat Menyimpan data gejala muntah Menyimpan data gejala panas tubuh Hasil diagnosis 3.3 Pre-processing Pre-processing data merupakan proses untuk menyiapkan data mentah dengan tujuan agar data tersebut siap untuk diolah selanjutnya. Data mentah yang ada yaitu data kategorikal yang masih memiliki kekurangan yang harus dilakukan seleksi lagi sehingga menghasilkan informasi yang sama. Karena untuk metode bayes dan data kategorikal yang akan dipakai harus berupa data yang konkret sehingga dapat diproses dengan naive bayes. 3.3.1 Kodisi Data Awal Data yang digunakan pada sistem aplikasi ini merupakan data riil dari gejala-gejala penyakit kanker kandungan yang berasal dari Rumah Sakit Gambiran kota Kediri. Data-data tersebut merupakan data kategorikal , dimana terdapat data yang tidak konsisten atau hilang (missing value). Sehingga perlu dilakukan penanganan agar data dapat diproses lebih lanjut. Adapun preprocessing data yang akan dilakukan meliputi : 1. Adanya seleksi terhadap data yang tidak penting dalam proses pengklasifikasian. Terdapat beberapa field yang informasinya 25 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes 2. tidaklah begitu penting, sehingga perlu dihilangkan, seperti field nama pasien. Adanya penanganan missing value yang akan menangani adanya nilai dari field atau atribut yang hilang atau tidak ada dalam database. Solusi yang akan digunakan adalah dengan mengganti nilai tersebut berdasarkan frekuensi nilai yang sering muncul. Tabel 3. 2 Data riil yang digunakan Setiap data yang diperoleh perlu dilakukan penyesuaian dalam hal atribut yang dimiliki, sehingga tidak semua atribut akan digunakan. Jika dirinci, maka 1. id. Atribut untuk id pasien yang unik. 2. umur Atribut untuk menyimpan data umur pasien 3. kawin. Atribut untuk menyimpan data riwayat perkawinan pasien. Di sini menyimpan data apakah pasien menikah atau tidak. 4. Usia_reproduktif Atribut untuk menyimpan data pasien apakah masih dalam usia reproduktif atau tidak. 26 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Tekanan_darah Atribut untuk menyimpan data tekanan darah pasien. Apakah tensinya normal, rendah tau tinggi. Pola_haid Atribut untuk menyimpan data riwayat menstruasi pasien apakah teratur atau tidak teratur. Nyeri_haid Atribut untuk menyimpan data riwayat menstruasi pasien apakah mengalami nyeri haid atau tidak. Keputihan Atribut untuk menyimpan data riwayat keputihan pada pasien, apakah mengalami keputihan atau tidak. Pendarahan Atribut untuk menyimpan data gejala pendarahan pada pasien, apakah mengalami pendarahan atau tidak. Nyeri_perut Atribut untuk menyimpan data gejala nyeri perut pada pasien, apakah mengalami nyeri perut atau tidak. Benjolan_perut Atribut untuk menyimpan data gejala benjolan pada perut pasien, apakah mengalami benjolan pada perut atau tidak. Benjolan tumbuh Atribut untuk menyimpan data gejala benjolan pada perut pasien tersebut tumbuh membesar, apakah benjolannya tumbuh atau tidak. Benjolan bergerak Atribut untuk menyimpan data gejala benjolan yang bergerak pada perut pasien, apakah benjolannya bergerak atau tidak. Muntah Atribut untuk menyimpan data gejala muntah pada pasien , apakah mengalami muntah-muntah atau tidak. Pucat Atribut untuk menyimpan data gejala pucat pada pasien, apakah terlihat pucat atau tidak. Badan_panas Atribut untuk menyimpan data panas tubuh pada pasien, apakah pasien bersuhu tinggi atau tidak. 27 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Semua data yang akan dibuat ini digunakan sebagai data riil yang akan diproses lagi dengan dengan preprocessing data. Di mana beberapa telah dihilangkan karena tidak berpengaruh dalam proses pengklasifikasian. Umtuk lebih jelasnya data riil dapat dilihat pada lampiran. 3.3.2 Proses Preprocessing Data Pada tahap ini terjadi proses preprocessing sehingga dihasilkan data yang konsisten dan siap untuk diproses lebih lanjut. Adapun preprocessing data yang akan dilakukan meliputi : 1. Adanya seleksi terhadap data yang tidak penting dalam proses pengklasifikasian. Terdapat beberapa field yang informasinya tidaklah begitu penting, sehingga perlu dihilangkan. Dalam kasus ini dilakukan penghapusan data nama karena tidak mempengaruhi proses selanjutnya. 2. Adanya penanganan missing value yang akan menangani adanya nilai dari field atau atribut yang hilang atau tidak ada dalam database. Data yang diguynakan dalam sistem ini adalah data riil yang berupa data kategorikal. Sehingga solusi yang akan digunakan adalah dengan mengganti nilai tersebut berdasarkan frekuensi nilai yang sering muncul. Sehingga data training yang telah mengalami preprocessing adalah Tabel 3. 3 Data Training 28 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes 3.4 Proses Naive Bayes Proses Naive Bayes dalam sistem ini merupakan proses yang utama. Metode ini cukup baik untuk proses pengklasifikasian data untuk menghasilkan keputusan sebagai hasil diagnosis dengan menggunakan data training sebagai data learning. Proses yang dilakukan oleh metode ini meliputi proses penghitungan probabilitas dari setiap inputan data dari user yang kemudian dilanjutkan dengan menbandingkan setiap hasilnya. Kemudian barulah dilakukan pengambilan kesimpulan atau keputusan untuk menentukan diagnosis pasien. 3.4.1 Algoritma Naive Bayes Algoritma Naive Bayes ini digunakan untuk mengetahui bagaimana proses dari metode ini berjalan sehingga menghasilkan keputusan pada aplikasi diagnosis kanker kandungan ini. Tahap-tahap dari pengambilan keputusan dengan Naive Bayes adalah 1. Memasukkan parameter atau input data yanga kan diproses. 2. Mencari nilai atribut hasil terakhir yang akan menjadi hasil diagnosis kelompokkan sesuai banyaknya yaitu yang kanker dan yang normal. 3. Mencari nilai probabilitas dari setiap atribut berdasarkan pengelompokan hasil akhir. 4. Melakukan pengelompokkan (dalam hal ini melakukan pengkalian) pada masing-masing probabilitas tiap-tiap atribut sesuai dengan jenis hasil diagnosis. 5. Dari langkah no 5 kemudian mencari nilai probabilitas terbesar sehingga dihasilkan kesimpulan atau keputusan diagnosisnya. 3.4.2 Proses Penghitungan Probabilitas Proses penghitungan dalam sistem ini menggunakan metode naive bayes yang meliputi beberapa tahap seperti pengklasifikasian hasil diagnosis, mencari probabilitas tiap atribut, serta mencari nilai terbesar untuk menghasilkan keputusan sebagai diagnosis. Untuk menghitung probabilitas bersyarat untuk menghasilkan keputusan dapat dimisalkan dengan menggunakan tabel berikut ini 29 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Tabel 3. 4 Tabel Data Traning Kemudian dimisalkan terdapat data tes sebagai berikut ini : • umur : 36 • kawin : ya • usia_reproduktif : ya • pola_haid : tidak teratur • nyeri_haid : ya • keputihan : ya • pendarahan : ya • nyeri_perut : ya • benjolan_perut : ya • benjolan_tumbuh : tidak • benjolan_bergerak : tidak • muntah : tidak • pucat : tidak • badan_panas : tidak Maka : P(cervix) = P(C1) = 17/20 P(tidak) = P(C2) = 3/20 P(X1 = kawin/C1) = 15/17 P(X1 = kawin/C2) = 3/3 P(X2 = reproduksi /C1) = 12/17 P(X2 = reproduksi /C2) = 3/3 P(X3 = pola_haid /C1) = 8/17 P(X3 = pola_haid/C2) = 1/3 30 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes P(X4 = nyeriHaid /C1) = 9/17 P(X4 = nyeriHaid /C2) = 1/3 P(X5 = keputihan/C1) = 14/17 P(X5 = keputihan/C2) = 1/3 P(X6 = pendarahan/C1) = 17/17 P(X6 = pendarahan/C2) = 0/3 P(X7 = nyeriperut /C1) = 9/17 P(X7 = nyeriperut /C2) = 0/3 P(X8 = benjolan perut /C1) = 9/17 P(X8 = benjolan perut /C2) = 3/3 P(X9 = benjolan tdk tumbuh /C1) = 1/17 P(X9 = benjolan tdk tumbuh /C2) = 0/3 P(X10 = benjolan tdk bergerak /C1) P(X10 = benjolan tdk bergerak /C2) = 1/17 = 0/3 P(X11 = muntah /C1) = 17/17 P(X11 = muntah /C2) = 3/3 P(X12 = pucat /C1) = 1/17 P(X12 = pucat/C2) = 1/3 P(X13 = badan_panas /C1) = 1/17 P(X13 = badan_panas /C2) = 1/3 P(X(36, ya, ya, tidak teratur, ya, ya, ya, ya, ya, tidak, tidak, tidak, tidak, tidak)/C1) = P(X1/C1). P(X2/C1). P(X3/C1). P(X3/C1). P(X4/C1). P(X5/C1). P(X6/C1). P(X7/C1). P(X8/C1). P(X9/C1). P(X10/C1). P(X11/C1). P(X12/C1). P(X13/C1). =15/17 x 12/17 x 8/17 x 9/17 x 14/17 x 17/17 x 9/17 x 9/17 x 1/17 x 1/17 x 17/17 x 1/17 x 1/17 31 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes P(C1/X) = P ( X / C1).P(C1) P( X ) = 2 98415 = 0,000020322 P(X(36, ya, ya, tidak teratur, ya, ya, ya, ya, ya, tidak, tidak, tidak, tidak, tidak)/C2) = P(X1/C2). P(X2/C2). P(X3/C2). P(X3/C2). P(X4/C2). P(X5/C2). P(X6/C2). P(X7/C2). P(X8/C2). P(X9/C2). P(X10/C2). P(X11/C2). P(X12/C2). P(X13/C2). = 3/3 x 3/3 x 1/3 x 1/3 x 1/3 x 0 x 1/3 x 0 x 3/3 P(C2/X) = P( X / C 2).P(C 2) P( X ) =0 Sehingga P(C1/X) > P(C2/X) maka tupel tersebut terkena kanker 3.5 Pembuatan Aplikasi Semua data yang ada pada database akan ditampilkan pada aplikasi sebagai data training. Data ini sebagai acuan dalam pengambilan keputusan tentang diagnosis dini penyakit kanker kandungan. Di mana data training tersebut kan mengalami pengklasifikasian dengan metode naive bayes. 3.5.1 Design User Interface Graphical User Interface atau yang sering disebut sebagai GUI adalah tampilan dari program yang bisa dinikmati oleh user. Perancangan User Interface harus dibuat semenarik dan seindah mungkin dengan tetap mengutamakan kenyamanan dalam mengoperasikan program (user friendly). Tampilan User Interface dituangkan dalam sebuah web site yang dibangun dengan menggunakan bahasa pemrograman VB.Net Dalam proses perancangan ini, tampilan web akan dibagi menjadi beberapa menu. 32 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes • • • Tampilan utama aplikasi Berikut ini adalah tampilan utama dari aplikasi dengan berbagai menu yang disediakan. Gambar 3. 5 Interface utama Halaman untuk login user Halaman ini akan dioperasikan oleh user untuk melakukan login terhadap aplikasi. Di sini disediakan beberapa user dengsn hak akses sendiri-sendiri. Di sini dimisalkan terdapat user admin sebagai administrator serta paramedis sebagai user biasa. Gambar 3. 6 Tampilan Login user Halaman untuk data training Halaman ini merupakan tempat untuk melakukan manipulasi terhadap data training. Disini terdapat beberapa menu untuk mengolah databse seperti add, edit, delete ataupun save. 33 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Gambar 3. 7 Tampilan Halaman Data Training • Halaman untuk proses diagnosis Halaman ini adalah halaman untuk melakukan proses Naive Bayes. Disini merupakan inti aplikasi dimana akan diketahui apakah pasien atau seseorang menderita kanker atau tidak. Diawali dengan menginputkan data sesuai gejala-gejala yang telaha ditentukan, kemudian menekan tombol proses maka akan didapatkan diagnosis awal Gambar 3. 8 Tampilan Halaman Diagnosis 34 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes 3.5.2 Implementasi Pada bagian ini akan dibahas mengenai implementasi sistem berdasarkan hasil perancangan yang telah ditetapkan sebelumnya. Implementasi sistem meliputi lingkungan implementasi dan implementasi program. Adapun tahapan uji cobanya adalah 1. Melakukan login sesuai dengan hak akses user. Admin atau dokter mempunyai hak akses penuh terhadap aplikasi. Hak aksesnya meliputi dapat melakukan perubahan pada data training dan juga melakukan diagnosis. Sedangkan paramedis yang lain seperti perawat hanya dapat mengakses form diagnosis saja. User dokter (administrator) Gambar 3. 9 Login dokter User perawat Gambar 3. 10 Login perawat 35 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Adapun potongan programnya adalah Pada baris ke 3 sampai ke 16 adalah fungsi untuk menginputkan semua user. Dimana untuk login username dan password harus sesuai. Dan apabila tidak maka user harus kembali menginputkan username dan passwordnya yang benar. Setelah itu barulah masuk ke halaman yang dituju. 2. 36 Melakukan input data training Setelah melakukan login dokter maka user akan masuk pilihan menu apakah ke form data training atau langsung ke form diagnosis. Apabila memilih data training maka akan masuk ke form ini. Disini terdapat beberapa menu untuk mengolah databse seperti add, edit, delete ataupun save. Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Gambar 3. 11 Halaman Data Training • Melakukan penambahan data 37 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Gambar 3. 12 Menginputkan Data Gambar 3. 13 Data berhasil ditambahkan • 38 Melakukan pengeditan data Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Gambar 3. 14 Melakukan pengeditan data Gambar 3. 15 Data berhasil diupdate • Melakukan penghapusan data 39 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Gambar 3. 16 Melakukan pengeditan Data Potongan fungsi untuk halaman manipulasi data training adalah 40 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Perintah insert data baru ke dalam database tampak pada baris ke 180 – 203. Sedangkan untuk edit data tampak pada baris ke 218-242 Gambar 3. 17 Form Diagnosis 3. Mendapatkan hasil diagnosis dini Inilah hasil dignosis dari proses pengklasifikasian dengan metode naive bayes. Hasil diagnosis akan muncul setelah semua data dinputkan dan button proses diklik. Maka dari inputan gejala didapatkan seseorang menderita penyakit kanker cervix. 41 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Gambar 3. 18 Hasil diagnosis muncul Potongan fungsi untuk halaman diagnosis Private Sub banding() Dim tmp Dim inisial inisial = 0 tmp = 0 If totalCancer >= tmp Then tmp = totalCancer inisial = 1 End If If totalNormal >= tmp Then tmp = totalNormal inisial = 2 End If hasil = tmp If inisial = 1 Then MsgBox("P(C1/X1) > P(C2/X2)") txtHasil.Text = "cancer" ElseIf inisial = 2 Then MsgBox("P(C1/X1) < P(C2/X2)") txtHasil.Text = "normal" End If End Sub 42 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes Potongan program diatas menunjukkan proses penghitungan dari proses naive bayes. Dimana terdapat pembandingan nilai dari hasil probabilitas dari setiap pengklasifikasian untuk mendapatkan keputusan berupa hasil diagnosis. Apabila P(C1/X1) > P(C2/X2) maka hasilnya adalah terkena kanker kandungan. Sedangkan apabila kebalikkannnya maka hasilnya normal atau tidak terkena kanker. 43 Aplikasi Diagnosis Kanker Kandungan dengan Naive Bayes **Halaman ini sengaja dikosongkan** 44