Prediksi Penyakit Jantung SVM Web
Prediksi Penyakit Jantung SVM Web
Abstract
Heart disease is a disease whose cases often occur in society regardless of age, gender
and lifestyle. Most of these diseases can not be cured completely. Heart attacks that are
handled too late can cause dangerous complications with the most fatal risk, namely
death. With the rapid development of technology at this time, the world of medicine is
very helpful. One of the technological advances that exist today is a system that can
diagnose disease. One of the machine learning algorithms that can be used is the Support
Vector Machine. SVM can be used for regression and classification cases. The advantage
of this algorithm is its fast computation. Classification of heart disease with the SVM
algorithm results in an accuracy of 85%. The machine learning model that produces the
accuracy value is then carried out by deploying the model using the Streamlit framework.
Streamlit is a Python-based framework that is open source. This framework was created
to make it easier for developers to build web-based programs in the fields of interactive
data science and machine learning. The results of this study are web-based programs that
can diagnose heart disease with an accuracy value of 85%.
Abstract
Penyakit jantung merupakan penyakit yang kasusnya sering terjadi di masyarakat
tanpa memandang usia, jenis kelamin dan gaya hidup. Penyakit ini Sebagian besar tidak
dapat disembuhkan secara total. Seranga jantung yang terlambat dilakukan penanganan
dapat menyebabkan komplikasi berbahaya dengan resiko yang paling fatal yaitu
kematian. dengan adanya perkembangan teknologi yang sangat pesat saat ini, dunia
kedokteran menjadi sangat terbantu. Salah satu kemajuan teknologi yang ada saat ini
adalah sistem yang dapat mendiagnosa penyakit. Salah satu algoritma machine learning
yang dapat digunakan adalah Support Vector Machine. SVM dapat digunakan untuk
kasus regresi dan klasifikasi. Kelebihan dari algoritma ini adalah komputasinya yang
cepat. Klasifikasi penyakit jantung dengan algoritma SVM mendapatkan hasil akurasi
sebesar 85%. Model machine learning yang menghasilkan nilai akurasi tersebut
selanjutnya dilakukan deployment model menggunakan framework Streamlit. Streamlit
merupakan framework berbasis Python yang besifat open source. Framework ini dibuat
untuk memudahkan developer dalam membangun program berbasis web di bidang data
science dan machine learning yang interaktif. Hasil dari penelitian ini adalah program
berbasis web yang dapat mendiagnosa penyakit jantung dengan nilai akurasi sebesar
85%.
1. Pendahuluan
Penyakit jantung merupakan gangguan terhadap fungsi kerja jantung. Penyakit ini
memiliki banyak jenis seperti kardivaskuler, jantung coroner dan serangan jantung.
Penyakit jantung menjadi salah satu penyakit yang kasusnya sering terjadi di masyarakat
ISSN: 2720-992X
Copyright ⓒ KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
Terakreditasi Nomor 204/E/KPT/2022 | Vol. 4, No. 2, April (2023), pp. 442-452
tanpa memandang usia, jenis kelamin dan gaya hidup [1]. Adapun penyebab seseorang
terkena serangan jantung yaitu karena kurangnya aktivitas, merokok, stress berat,
tingginya kolesterol, obesitas dan lainnya. Beberapa hal yang dialami oleh seseorang yang
terkena serangan jantung ialah nyeri dada yang merambat hingga bahu, leher, rahang dan
punggung. Pernafasan juga terasa berat dengan diikuti keringat dingin, rasa mual dan
hilang kesadaran [2]. Sebagian besar penyakit jantung tidak dapat disembuhkan secara
total. Serangan jantung yang parah atau terlambat dilakukan penanganan dapat
menyebabkan komplikasi berbahaya dengan resiko yang paling fatal adalah kematian.
Pada tahun 2012, data kasus penyakit di Indonesia berdasarkan GLOBOCAN (IARC)
terdapat jumlah kasus baru serangan jantung sebanyak 43,30% dan jumlah kematan
sebesar 12,90%. Sedangkan pada tahun 2013 jumlah penderita penyakit jantung sebesar
61.682 orang, dengan penderita terbanyak berada di Jawa Tengah dengan jumlah kasus
sebesar 11.511 kasus. Berdasarkan data di atas, dapat diketahui bahwa banyak orang yang
belum menanggapi penyebab penyakit ini secara serius. Sehingga setelah melakukan
pemeriksaan, dokter mendeteksi adanya penyakit jantung dengan stadium yang tinggi [3].
Perkembangan teknologi yang kian pesat sangat membantu dunia kedokteran dalam
menangani berbagai macam penyakit. Saat ini telah ada teknologi yang biasa disebut
dengan kecerdasan buatan. Salah satu manfaat dari teknologi ini yaitu dapat memprediksi
penyakit dengan tingkat akurasi tertentu. Penelitian ini bertujuan untuk melakukan
prediksi dini terhadap indikasi penyakit jantung yang di deployment ke dalam sebuah
sistem berbasis web. Dengan memasukkan beberapa indikator yang menjadi penyebab
serangan jantung, program akan memprediksi apakah hasil masukan tersebut terindikasi
penyakit jantung atau tidak. Salah satu algoritma machine learning yang dapat diterapkan
untuk melakukan klasifikasi adalah Support Vector Machine (SVM).
Support Vector Machine merupakan salah satu algoritma machine learning yang
termasuk ke dalam kategori supervised learning. Metode ini biasanya digunakan untuk
kasus klasifikasi dan regresi [4]. Pada dasarnya SVM merupakan representasi dari kelas
yang berbeda dalam ruang multidimensi. Tujuannya adalah untuk membagi dataset ke
dalam kelas-kelas untuk menemukan hyperplane marginal maksimum. Adapun kelebihan
dari metode SVM adalah memiliki daya komputasi yang cepat.
Model machine learning yang telah dibuat dapat dimasukkan ke dalam program
berbasis web agar pengguna dapat dengan mudah melakukan klasifikasi. Adapun salah
satu framework yang mendukung untuk melakukan deployment model ke dalam program
berbasis web yaitu streamlit. Streamlit merupakan framework berbasis Python yang
besifat open source. Framework ini dibuat untuk memudahkan developer dalam
membangun program berbasis web di bidang data science dan machine learning yang
interaktif [5]. Salah satu kelebihan dari streamlit adalah developer tidak perlu mengatur
tampilan website dengan CSS, HTML dan javascript karena framework streamlit telah
menyediakannya melalui fungsi-fungsi yang terdapat pada framework tersebut.
Beberapa penelitian terdahulu telah melakukan penelitian terkait prediksi penyakit
jantung. Diantaranya penelitian yang berjudul “Analisa Komparasi Metode Klasifikasi
Data Mining dan Reduksi Atribut Pada Dataset Penyakit Jantung” yang dilakukan oleh
Dito Putro Utomo dan Mesran pada tahun 2020. Penelitian ini melakukan reduksi atribut
menggunakan metode PCA dengan membandingkan algoritma C5.0 dan Naïve Bayes
Classifier untuk klasifikasi. Hasil dari penelitian ini menyatakan bahwa algoritma Naïve
Bayes Classifier lebih baik daripada algoritma C5.0 [1].
Berdasarkan latar belakang dan penjelasan yang telah dijabarkan di atas, sehingga
penelitian ini akan melakukan prediksi dini terhadap penyakit jantung menggunakan
metode Support Vector Machine yang dimasukkan ke dalam program berbasis web
sehingga harapan dari penelitian ini yaitu dapat membantu dunia kedokteran untuk
melakukan diagnosa penyakit jantung sedini mungkin agar tingkat keparahan dapat
diminimalisir.
443
KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
Terakreditasi Nomor 204/E/KPT/2022 | Vol. 4, No. 2, April (2023), pp. 442-452
2. Metodologi Penelitian
2.1. Tahapan Penelitian
Tahapan penelitian merupakan gambaran umum terkait alur penelitian yang akan
dilakuan dalam pengerjaan penelitian ini dari awal hingga akhir. Tahapan yang dilakukan
dalam penelitian ini dapat dipaparkan melalui diagram alir seperti pada Gambar 1.
Seluruh tahapan pada penelitian ini dikerjakan menggunakan Bahasa pemrograman
python. dengan rincian untuk tahapan preprocessing hingga pemodelan menggunakan
software jupyter notebook dan untuk deployment dengan streamlit menggunakan software
pycharm.
2.2. Data
Data yang digunakan pada penelitian ini diambil dari
[Link] yang terdiri dari 918 rekaman.
Dataset ini terdiri dari 12 indikator penyebab penyakit jantung. Berikut merupakan rincian
indikator atau attribut dari dataset yang akan digunakan.
444
KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
Terakreditasi Nomor 204/E/KPT/2022 | Vol. 4, No. 2, April (2023), pp. 442-452
terindikasi penyakit jantung dan nilai 1 merupakan pasien yang terindikasi penyakit
jantung.
2.3. Preprocesssing
Tahapan awal penelitian yaitu preprocessing. Preprocessing dilakukan karena data
mentah tidak dapat digunakan langsung oleh sistem. Oleh karena itu, beberapa
preprocessing harus dilakukan untuk sedikit memodifikasi data guna meningkatkan
kualitas data yang digunakan.
2.3.1. Handling Outlier
Sebuah data biasanya terdapat outlier. Outlier merupakan objek pengamatan yang
memiliki nilai ekstrim yang terlalu rendah atau terlalu tinggi sehingga menyebabkan
masalah dalam penentuan hasil akhir analisis [10]. Terkadang outlier memiliki nilai yang
penting dan berpengaruh dalam kumpulan objek, sehingga tidak semua outlier dapat
dihilangkan. Oleh karena itu pada penelitian ini, peneliti melakukan handling outlier
menggunakan teknik Z-score. Z-score dapat digunakan untuk membantu menentukan
apakah sebuah data bernilai ekstrim, atau outlier [11]. Aturan umumnya adalah Z-
score dengan nilai kurang dari –3 atau lebih dari +3 menunjukkan bahwa nilai data adalah
nilai ekstrim. Sehingga data yang melebihi batas bawah dan batas atas akan dihapus.
berikut merupakan Langkah-langkah untuk memfilter outlier dengan Teknik zscore.
a) Menghitung nilai zscore di setiap kolomnya menggunakan library numpy dan
fungsi stats pada library scipy. nilai zscore di setiap kolomnya diabsolutkan dan
dimasukkan ke dalam variable z.
b) Tahap selanjutnya yaitu memfilter data yang nilai absolutnya kurang dari 3.
445
KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
Terakreditasi Nomor 204/E/KPT/2022 | Vol. 4, No. 2, April (2023), pp. 442-452
Berdasarkan tabel 2 di atas, pada penelitian ini koefisien korelasi data yang lemah akan
dihapus sehingga menyisakan korelasi data cukup, kuat dan sempurna.
2.4. Processing
Setelah data melalui tahapan preprocessing, selanjutnya adalah data dimasukkan ke
tahap pemrosesan sehingga mendapatkan hasil yang diharapkan.
2.4.1. Klasifikasi dengan Support Vector Machine
Support Vector Machine merupakan algoritma klasifikasi supervised learning dimana
algoritma ini dapat melakukan prediksi kelas berdasarkan pola yang dihasilkan dari proses
training [14]. Klasifikasi SVM menciptakan garis pembatas yang digunakan untuk
memisahkan antar kelas. Berikut merupakan Langkah-langkah dari klasifikasi dengan
SVM
a) Membagi data menjadi dua bagian yaitu data latih dan data uji dengan persentase
perbandingan 80% untuk data latih dan 20% untuk data uji.
b) Tuning parameter untuk mendapatkan parameter yang paling optimal menggunakan
Teknik GridSearch Cross Validation yang mana GridSearchCV adalah bagian dari
modul scikit-learn yang bertujuan secara otomatis dan sistematis melakukan validasi
beberapa model dan setiap hyperparameter [15]. Ketika proses running
GridSearchCV sudah selesai, maka akan didapatkan model beserta skor uji dan skor
latih. Adapun hyperparameter yang digunakan pada penelitian adalah sebagai
berikut.
Tabel 3. Hyperparameter Tuning
Parameter Value Keterangan
C 0.1, 1, 10, 100, 1000 Parameter yang bekerja untuk menghindari
misklasifikasi di setiap sampel
Gamma 1, 0.1, 0.01, 0.001, 0.0001 Digunakan untuk menentukan seberapa jauh
pengaruh dari satu sampel data latih
Kernel Polynomial Untuk memisahkan dataset yang bentuknya
non-linear
2.5. Evaluasi
Tahapan evaluasi digunakan untuk mengukur performa model yang dihasilkan.
Peneliti menggunakan confusion matrix untuk melakukan analisa performa dari model.
Confusion matrix merupakan tabel dengan 4 kombinasi berbeda dari nilai prediksi dan
nilai aktual [16]. Selanjutnya dari confusion matrix tersebut dapat dihitung nilai akurasi,
precision, recall dan F1 Score. Peneliti juga menggunakan Mean Absolute Error untuk
mengetahui prosentase kesalahan rata-rata mutlak [17]. Mean Absolute Error merupakan
dua diantara banyak metode yang digunakan untuk mengukur tingkat keakuratan suatu
model peramalan [18].
446
KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
Terakreditasi Nomor 204/E/KPT/2022 | Vol. 4, No. 2, April (2023), pp. 442-452
2.6 Deployment
Setelah melalui tahapan modeling dan evaluasi, selanjutnya yaitu tahapan deployment
model. Dimana model disimpan dalam ekstensi pickle untuk dimasukkan ke dalam
sistem. Framework yang digunakan pada pembuatan sistem adalah streamlit. berikut
merupakan desain sistem berbasis web beserta contoh pengisiannya.
447
KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
Terakreditasi Nomor 204/E/KPT/2022 | Vol. 4, No. 2, April (2023), pp. 442-452
3.2. Processing
Setelah melalui tahapan preprocessing, selanjutnya yaitu tahapan processing.
Berdasarkan kode sumber 1, dataset dibagi menjadi 80% untuk data latih dan 20% untuk
data uji. Selanjutnya dilakukan hyperparameter tuning menggunakan Grid Search Cross
448
KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
Terakreditasi Nomor 204/E/KPT/2022 | Vol. 4, No. 2, April (2023), pp. 442-452
Validation dengan list parameter yang terdapat pada tabel 3. Grid Search Cross Validation
merupakan bagian dari scikit-learn yang berfungsi secara otomatis dan sistematis dalam
melakukan validasi beberapa model dan setiap hyperparameter. Berdasarkan proses
tersebut, dihasilkan parameter terbaik sebagai berikut.
Parameter yang terdapat pada tabel 4 selanjutnya dilakukan fitting model dengan
memasukkan algoritma Support Vector Machine, berdasarkan uji coba tersebut dihasilkan
skor latih sebesar 85% dan skor uji sebesar 87%. Sehingga model yang dihasilkan fit.
Kernel terbaik yang dihasilkan oleh Grid Search Cross Validation yaitu poly atau
polynomial. Hal itu dikarenakan persebaran data yang divisualisasikan pada gambar 3
merupakan distribusi data yang tidak linear. Sehingga kernel polynomial memang cocok
digunakan untuk penelitian ini.
3.3. Evaluasi
Setelah tahapan processing, tahapan selanjutnya yaitu evaluasi terhadap model. Hal ini
bertujuan untuk mengukur kinerja dari model yang telah dibuat. pada penelitian ini,
peneliti menggunakan confusion matrix. Confusion matrix dapat memberikan informasi
perbandingan hasil prediksi dengan hasil klasifikasi yang sebenarnya [20]. Adapun hasil
visualisasi confusion matrix pada penelitian ini adalah sebagai berikut.
449
KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
Terakreditasi Nomor 204/E/KPT/2022 | Vol. 4, No. 2, April (2023), pp. 442-452
Berdasarkan rumusan di atas, dihasilkan nilai akurasi sebesar 85%, precision 78% dan
recall 89%. Sedangkan skor data latih yang dihasilkan adalah 87% dan skor uji yang
dihasilkan sebesar 85%. Berdasarkan hasil tersebut dapat disimpulkan bahwa model yang
dihasilkan pada penelitian ini adalah fit.
Gambar 10 merupakan uji coba sistem hasil dari deployment model. Peneliti
memasukkan inputan sesuai dengan indikator yang telah disediakan. Setelah memasukkan
semua indikator, peneliti menekan tombol prediksi penyakit jantung sehingga tampil hasil
klasifikasi yang terdapat pada gambar 8 yang menunjukkan bahwa pasien tidak terindikasi
penyakit jantung berdasarkan indikator yang telah dimasukkan.
450
KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
Terakreditasi Nomor 204/E/KPT/2022 | Vol. 4, No. 2, April (2023), pp. 442-452
Berdasarkan hasil pengujian sistem yang terdapat pada tabel 6 di atas, dapat dilihat
bahwa semua pengujian menghasilkan hasil pengujian sesuai dengan realisasi yang
diharapkan. Dimana sistem dapat menerima input dan menghasilkan output sesuai dengan
yang diharapkan.
4. Kesimpulan
Penelitian ini telah berhasil melakukan klasifikasi mulai dari preprocessing sampai
evaluasi dan deployment model. Berdasarkan penelitian yang telah dilakukan, sistem
dapat melakukan klasifikasi penyakit jantung dengan skor akurasi sebesar 85% dengan
hyperparameter yang dihasilkan yaitu gamma sebesar 0.01, Const sebesar 0.1, dan kernel
yang digunakan adalah polynomial karena bentuk dari dataset tidak linear. Adapun
precision yang dihasilkan sebesar 78%, dan recall sebesar 89%. Skor latih yang dihasilkan
pada penelitian ini adalah 85% dan skor ujinya adalah 87% sehingga jika dilihat dari gap
antara skor latih dan skor uji, model tidak mengalami overfitting maupun underfitting.
Dengan kata lain penelitian ini menghasilkan model yang fit. Sedangkan pada pengujian
sistem, berdasarkan pengujian blacbox pada sistem berbasis web mendapatkan hasil
pengujian sesuai dengan realisasi yang diharapkan.
Daftar Pustaka
[1] D. P. Utomo And M. Mesran, “Analisis Komparasi Metode Klasifikasi Data
Mining Dan Reduksi Atribut Pada Data Set Penyakit Jantung,” Jurnal Media
Informatika Budidarma, Vol. 4, No. 2, 2020, Doi: 10.30865/Mib.V4i2.2080.
[2] S. Agustin, “Ciri-Ciri Sakit Jantung Yang Harus Diwaspadai,”
Https://[Link]/Kenali-Ciri-Ciri-Sakit-Jantung, May 08, 2022.
[3] D. P. Utomo And M. Mesran, “Analisis Komparasi Metode Klasifikasi Data
Mining Dan Reduksi Atribut Pada Data Set Penyakit Jantung,” Jurnal Media
Informatika Budidarma, Vol. 4, No. 2, P. 437, Apr. 2020, Doi:
10.30865/Mib.V4i2.2080.
[4] Samsudiney, “Penjelasan Sederhana Tentang Apa Itu Svm?,”
Https://[Link]/@Samsudiney/Penjelasan-Sederhana-Tentang-Apa-Itu-
Svm-149fec72bd02, Jul. 25, 2019.
[5] A. F. Hidayatullah, “Membuat Aplikasi Web Sains Data Dengan Mudah
Menggunakan Streamlit,” Https://[Link]/2021/03/15/Streamlit-
Membuat-Aplikasi-Web-Sains-Data/, Mar. 15, 2021.
451
KESATRIA: Jurnal Penerapan Sistem Informasi (Komputer & Manajemen)
Terakreditasi Nomor 204/E/KPT/2022 | Vol. 4, No. 2, April (2023), pp. 442-452
452