Rancang Bangun Aplikasi Klasifikasi Penyakit Jantung dengan Metode Algoritma Binary Logistic Regression
Dharmayanti 1), Ersya Dharmawan 2) Faculty of Industry Techonology
Gunadarma University Indonesia
Email : dharmayanti @staff.gunadarma.ac.id, [email protected]
Abstrak Pemanfaatan machine learning pada era modern sangat besar. Penerapan algoritma cerdas dapat mengatasi masalah klasifikasi dengan dataset yang sudah tersedia termasuk untuk penyakit jantung. Penelitian menggunakan proses latih dengan algoritma Binary Logistic Regression.
Data latih yang digunakan sebanyak 242 merupakan 80% dari datasets latih dan dilakukan proses validasi dengan 61 data yang dihasilkan dari 20% data latih Hasil akurasi dari penelitian ini adalah 83% dengan error/loss sebesar 16%, precision 84%, recall 83%, dan F-1Score 84%. Penelitian menghasilkan rancangan antarmuka aplikasi klasifikasi penyakit jantung.
Keywords— machine learning, klasifikasi, binary logistic regression
I. PENDAHULUAN
Berdasarkan data World Health Organization (WHO) tahun 2017 menunjukkan 17,5 juta orang di dunia meninggal akibat penyakit jantung atau 31% dari 56,5 juta kematian di seluruh dunia. Banyak hal yang menjadi faktor utama penyebab penyakit jantung, antara lain faktor tekanan darah, gula darah, dan kolesterol. Faktor lain seperti nyeri dada, EKG dalam keadaan istirahat, dan thallium juga da-pat digunakan sebagai tolak ukur untuk mengidentifikasi penyakit jantung[10].
Penyakit jantung dapat dideteksi dengan memanfaatkan teknologi informasi seperti membaca pola citra dengan Electrocardiograph atau dengan Electrocardiogram yang dapat menampilkan ukuran, bentuk dan kelainan pada jantung.
Penelitian ini mengkhususkan pendeteksian penyakit jantung dengan memanfaatkan teknologi machine learning.
Penerapan algoritma cerdas dapat melakukan klasifikasi menggunakan dataset medis jantung. Dataset berasal dari situs kaggle atau UCI machine learning.
Penelitian ini menggunakan algoritma Binary Logistic Regression(BLR) dengan data Heart Disease UCI yang dibagi menjadi dua yaitu data training dan data testing kemudian dilakukan analisis dan prediksi, sehingga mendapatkan in- formasi berupa klasifikasi penyakit jantung. Hasil prediksi awal yang dida-patkan dapat digunakan oleh para petugas medis sebagai alat bantu dalam penentuan dini pada penyakit jantung.
Binary Logistic Regression adalah sebuah pendekatan untuk membuat model prediksi seperti halnya regresi lin-ear atau yang biasa disebut dengan istilah Ordinary Least Squares (OLS) regression. Perbedaannya adalah pada Binary Logistic Regression, peneliti memprediksi variabel terikat yang berskala dikotomi. Skala dikotomi yang dimaksud adalah skala data nominal dengan dua kategori, misalnya: Ya dan Tidak, Baik dan Buruk, atau Tinggi dan Rendah. Model regresi logistik biner digunakan jika variabel responnya menghasilkan dua kategori bernilai 0 dan [11].
Regresi logistik biner merupakan suatu metode analisis data yang digunakan untuk mencari hubungan antara variabel respon (y) yang bersifat biner atau dikotomus dengan variabel prediktor (x) yang bersifat polikoto-mus (Hosmer dan Lemeshow, 2000).
Selain metode untuk klasifikasi, dikembangkan pula antarmuka untuk pendeteksi penyakit jantung dengan memnfaatkan GUI python.
II. KERANGKAPENELITIAN
Tahapan dalam melakukan klasifikasi pendeteksi penyakit jantung dengan algoritma BLR dapat dilihat pada Gambar 1.
Gambar 1. Kerangka Penelitian
Tahap awal adalah melakukan analisa kebutuhan, untuk menentukan perangkat keras dan perangkat lunak yang digunakan. Tahap perencanaan adalah tahap untuk merencanakan dataset, GUI dari aplikasi yang akan dibuat.
Tahap berikutnya adalah perancangan aplikasi, untuk merancang antarmuka aplikasi yang dapat digunakan oleh pengguna. Pengembangan dilanjutkan dengan membuat kode program menggunakan python. Tahap akhir adalah melakukan uji coba aplikasi yang dibangun.
.
III. PEMBAHASAN
3.1 Perencanaan Rancang Bangun Aplikasi
Dalam penelitian ini berisi perencanaan aplikasi yang dapat melakukan im-plementasi metode Binary Logistic Regression untuk masalah heart disease detection system, karena algoritma Binary Logistic Regression mempunyai ke- mampuan mengklasifikasikan data dalam jumlah yang cukup besar dengan waktu yang komputasi yang relatif cepat dan efisien. Sehingga dapat digu-nakan dalam deteksi penyakit jantung dan pemilihan variabel independent adalah salah satu faktor yang paling penting yang dapat mempengaruhi kin-erja klasifikasi. Data yang digunakan adalah Heart Disease UCI dataset yang mengklasifikasikan 2 kondisi yaitu 0 untuk sehat dan 1 untuk sakit menggu-nakan bahasa pemrograman python.
3.2 Analisa Kebutuhan
Analisa kebutuhan sangat diperlukan dalam pembuatan program aplikasi, agar saat program dijalankan dapat bekerja dengan baik. Berikut bebe-rapa kebutuhan perangkat keras (hardware), perangkat lunak (software), dan dataset.
Spesifikasi perangkat keras yang dibutuhkan untuk mebangun aplikasi dapat dilihat pada tabel 1.
Tabel 1 Spesifikasi Perangkat Keras
Prosesor AMD® E-300 apu with radeon(tm) hd graphics × 2
Memori 1,6 GiB
Harddisk 314,0 GB
Graphics AMD® Palm
Perangkat lunak yang digunakan untuk pembuatan aplikasi ini sebagai berikut :
Ubuntu 18.04.2 LTS
Bahasa Pemrograman Python
Jupyter Book Editor
Kebutuhan yang penting lainnya adalah dataset. Data penelitian yang digunakan bersumber dari portal
https://www.kaggle.com/ atau portal
http://archive.ics.uci.edu/ml/index.php yaitu Cleveland Clinic Foundation yang telah diadopsi oleh instansi Hungar-ian Institute of Cardiology di Budapest. Sebanyak 303 baris dan 13 kolom yang disebut atribut (sex, chest pain type, resting blood pressure, serum choles-terol in mg/dl, fasting blood sugar > 120 mg/dl, resting electrocardiographic results, maximum heart rate achieved, exercised induced angina, oldpeak, the slope of the peak exercise ST segment, number of major vessels, thalium, target/label).
Tabel 2 memperlihatkan fitur dataset yang digunakan pada proses klasifikasi penyakit jantung.
Tabel 2 Fitur Dataset
3.3 Perancangan Aplikasi
Tahap pertama yang dilakukan adalah mengumpulkan dataset yang terdiri dari data training dan data test. Setelah mengumpulkan dataset, kemudian dilakukan pembagian atribut. Atribut terbagi menjadi dua, yaitu terdapat fitur dan target. Proses kerja dari dataset sampai dengan klasifikasi dapat terlihat pada Gambar 2.
3.3.1 Rancangan Tampilan Halaman Utama
Pada rancangan ini adalah tampilan halaman utama dari aplikasi yang tam-pak setelah masuk ke dalam aplikasi.
Rancangan tampilan dapat dilihat pada Gambar 3.
Pada rancangan halaman utama langsung diarahkan pada form. Pada aplikasi ini terdapat satu buah button untuk mengolah data dari beberapa inputan yang disediakan.
Gambar 2 Alur Kerja Klasifikasi
Gambar 3 Tampilan Halaman Utama 3.3.2 Rancangan Tampilan Hasil Diagnosa
Pada rancangan ini adalah tampilan hasil diagnosa dari aplikasi yang tam-pak setelah proses pengisian form. Jika pasien terdiagnosa kondisi sehat maka akan tampil seperti pada Gambar 4, tetapi jika kondisi pasien terdiagnosa sakit jantung maka tampil seperti Gambar 5.
Gambar 5 Hasil Diagnosa Sehat
Gambar 6 Hasil Diagnosa Terindikasi Sakit Jantung
3.4 Pengkodean
Library adalah koleksi dari rutin-rutin program yang digunakan untuk mem-bangun dan mengembangkan perangkat lunak. Library, umumnya mengan-dung kode program dan data pembantu (banyak programmer menyebut-nya sebagai helper), yang menyediakan layanan-layanan kepada program- program independen.
Pandas adalah library berlisensi open source yang menyediakan struktur data dan analisis data yang mudah digunakan dan berkinerja tinggi untuk bahasa pemrograman python. Sangat kita perlukan untuk membersihkan data mentah ke dalam sebuah bentuk yang cocok untuk analisis (yaitu tabel seperti dataset). Penting untuk dicatat di sini bahwa pandas melakukan tugas penting seperti menyelaraskan
data untuk perbandingan dan penggabungan set data, penanganan data yang hilang, dll, itu telah menjadi sebuah library nyata untuk pemrosesan data tingkat tinggi dalam python (yaitu statistik).
Dataframe adalah struktur data pandas yaitu sebuah data yang berisi koleksi kolom dengan nama dan jenisnya.
Pemanggilan dataset Heart Disease UCI diberi nama heart_disease yang berekstensi csv dan akan disimpan oleh pan-das yang didefinisikan sebagai pd, dan ditampung oleh variabel df.
Sebelum menentukan variabel, sebaiknya tentukan dulu fitur yang digunakan dalam pengelompokkan yang mempengaruhi penyakit jantung agar mendapatkan hasil yang maksimal dengan metode Binary Logistic Regression (BLR).
Penggunaan fitur pada program ini adalah fitur 2 – 11 kecuali fitur ke 1 (sex) karena fitur tersebut bertipe karakter atau alfabet sehingga proses pengelom-pokkan terhadap yang mempengaruhi penyakit jantung tidak dapat dihitung menggunakan metode Binary Logistic Regression. Dengan adanya hal seperti itu total fitur yang digunakan peneliti hanya 11 fitur agar mencapai hasil yang maksimal.
Metode yang dilakukan untuk modelling data training sebagai latihan dan data test sebagai pengujian dalam machine learning adalah metode Binary Logistic Regression. Berikut cara penyelesaian metode Binary Logistic Regression dapat dilihat pada Gambar 7.
Gambar 7 Pseducode Algoritma Binary Logistic Regression
3.5 Uji Coba Aplikasi
Proses pelatihan model Binary Logistic Regression terdiri atas load data ke-mudian membagi data dan selanjutnya proses latih. Data latih yang digunakan 242 dan data uji sebanyak 61 atau 80:20.
Pelatihan dengan datasets yang telah di muat dan dipisahkan terhadap model yang telah dibuat dapat dilihat kode programnya seperti pada Gambar 8.
Gambar 8 Memanggil Model Binary Logistic Regression
Hasil akurasi sebesar 83,6 % dan loss sebesar 16,4% pada model dapat dilihat pada Tabel 3.
Tabel 3 Hasil Loss dan Akurasi
Loss Loss Akurasi Akurasi
dalam dalam
persen persen
0.16393442622950816 16.4% 0.8360655737704918 83.6%
Kemudian dilakukan pengujian terhadap data menggunakan confusion matrix untuk kelas 1 dapat dilihat pada Gambar 9 dan untuk kelas 0 pada Gambar 10.
Gambar 9 Confusion matrix untuk kelas 1
Gambar 10 Gambar 9 Confusion matrix untuk kelas 0
Hasil pengukuran confusion matrix menggunakan data test dapat dilihat pada Tabel 4.
Tabel 4 Hasil Confusion Matrix
Accuracy ErrorRate Precision Recall F1-Score
83% 16% 84% 83% 84%
Hasil untuk tampilan dari aplikasi klasifikasi penyakit jantung dapat dilihat pada Gambar 11.
Gambar 11 Output aplikasi GUI
Untuk menampilkan hasil kesimpulan klasifikasi dapat dilihat pada Gambar 12
Gambar 12 Hasil Kesimpulan Pendeteksi Penyakit Jantung
IV. KESIMPULAN
Berdasarkan pada penulisan ini, dapat ditarik kesimpulan bahwa pembu-atan Aplikasi Klasifikasi Penyakit Jantung telah berhasil dibuat dan klasifikasi penyakit jantung berhasil didapatkan dengan menerapkan algoritma Binary Logistic Regression, data yang diambil sebanyak 303 data dimana 207 pria dan 96 wanita, kemudian dibagi menjadi data test
sebanyak 61 dan data train sebanyak 242. Nilai yang didapatkan adalah akurasi = 83%, error / loss = 16%, akurasi yang didapatkan lebih dari 80% dari total seluruh data yang di uji sehingga dapat digunakan / diimplementasikan untuk melakukan klasifikasi terhadap penyakit jantung. Setelah membangun model kemudian diimplementasikan ke dalam aplikasi GUI menggunakan pustaka dari python yaitu Tkinter.
Aplikasi ini sekiranya dapat digunakan dalam melakukan klasi-fikasi adanya sakit jantung atau tidak secara dini. Pada aplikasi yang telah dibuat diharapkan dapat membantu dokter atau petugas kesehatan dalam melakukan pendeteksian dini terhadap pasien.
ACKNOWLEDGMENT
We would like to thank the Gunadarma University for facilitating research in the form of laboratories and other supporting device.
REFERENCES
[1] International Journal of Data Mining &
Knowledge Management Process (IJDKP) Vol.5,No.2. March 2015.
[2] R. Severance. Charles. Python for Every Body.
2009.
[3] P. Harrington. Machine Learning in Action.
Manning Publications Co, 2012.
[4] J. M. Hilbe. Logistic Regression model. USA:
Chapman & Hall Book, 2009.
[5] D. W Hosmer and S. Lemeshow. Applied Logistic Regression, 2nd edn. New York: John Wiley & Sons, 2009.
[6] E. Grayson John. Python and Tkinter Programming. Manning Publica-tions Co, 2000.
[7] Hearty John. Advanced Machine Learning with Python. Packt Publshing, 2016.
[8] Zhou Q. Qian P. Z. & Zhou S. simple approach to emulation for computer models with qualitative and quantitative factors.
Technometrics, 53(3). 2011.
[9] C. Muller Andreas & Guido Sarah. Introduction to Machine Learning with Python. O’Reilly Media. Inc, 2017.
[10] WHO. Cardiovascular Disease Fatcsheets. WHO Media Centre, 2017.
[11] Hosmer D. W. Lemeshow S & Sturdivant R. X.
Logistic Regression Third Edition. USA: John Wiley & Sons. Inc, 2013.