i Kode/Nama Rumpun Ilmu : 458/Teknik LAPORAN AKHIR PENELITIAN DOSEN PEMULA PENERAPAN DEEP LEARNING PADA APLIKASI PREDIKSI PENYAKIT PNEUMONIA BERBASIS CONVOLUTIONAL NEURAL NETWORKS Tahun ke 1 dari rencana 1 tahun TIM PENGUSUL Agung Pedananto, S.Kom., M.Kom. 0428088701 (Ketua) Achmad Udin Zailani, S.Kom., M.Kom 0429058303 (Anggota) Dibiyai oleh : Direktorat Riset Dan Pengabdian Masyarakat Direktorat Jendral Penguatan Riset Dan Pengembangan Kementrian Riset, Teknologi, dan Pendidikan Tinggi Sesuai Dengan Kontrak Penelitian Nomer : 189/A5/SPKP/LPPM/UNPAM/III/2019 UNIVERSITAS PAMULANG TANGERANG SELATAN November, 2019
Text of Kode/Nama Rumpun Ilmu : 458/Teknik LAPORAN AKHIR
PENYAKIT PNEUMONIA BERBASIS CONVOLUTIONAL NEURAL
NETWORKS
TIM PENGUSUL
Achmad Udin Zailani, S.Kom., M.Kom 0429058303 (Anggota)
Dibiyai oleh :
Direktorat Jendral Penguatan Riset Dan Pengembangan
Kementrian Riset, Teknologi, dan Pendidikan Tinggi
Sesuai Dengan Kontrak Penelitian
dunia. Badan Kesehatan Dunia (WHO) memperkirakan bahwa penyakit ini
memicu
15% dari seluruh kematian anak-anak di bawah usia 5 tahun (WHO,
2015). Dalam
mengenali foto rontgen terdapat banyak metode yang bisa
diimplementasikan.
Salah satu dari implementasinya adalah dengan menggunakan
Convolutional
Neural Network (CNN). Convolutional Neural Network atau yang biasa
disebut
CNN merupakan bagian dari Deep Learning yang melakukan proses
pembelajaran
untuk mencari representasi terbaik. Dengan Menggunakan model
tersebut yang
diimplementasikan dengan aplikasi web didapatkan hasil akurasi
sebesar 75% dari
uji acak yang dilakukan dengan menggunakan data yang berbeda dari
data training.
Kata kunci: Pneumonia, Deep Learning, Convolutional Neural
Networks, Pooling
iv
KATA PENGANTAR
Puji dan syukur penulis panjat kepada Allah SWT yang telah
memberikan rahmat
dan hidayah-Nya sehingga penulis dapat menyelesaikan Penelitian
Dosen Pemula
berjudul “PENERAPAN DEEP LEARNING PADA APLIKASI PREDIKSI
PENYAKIT PNEUMONIA BERBASIS CONVOLUTIONAL NEURAL
NETWORKS”. Penulis menyadari bahwa penulisan Penelitian Dosen
Pemula
dengan Hibah Ristekdikti ini tidak lepas dari bimbingan, dorongan
dan bantuan dari
berbagai pihak. Pada kesempatan ini penulis menyampaikan banyak
terima kasih
dan penghargaan yang setinggi-tingginya kepada:
1. Dr. HC. Drs. H. Darsono, selaku Ketua Yayasan Sasmita
Jaya.
2. Dr. H. Dayat Hidayat, M.M. selaku Rektor Universitas
Pmulang.
3. Dr. Ali Maddinsyah, S.E., M.M. Selaku ketua LPPM
4. Semua pihak yang telah membantu penulis yang tidak bisa penulis
sebutkan
satu persatu, terima kasih atas bantuan, dorongan dan
semangatnya.
Penulis menyadari sepenuhnya bahwa dalam melakukan penulisan
laporam
penelitian ini masih banyak terdapat kekurangan dan
ketidaksempurnaan, untuk itu
penulis mengharapkan kritik dan saran yang membangun demi
kesempurnaan
penulisan ini. Semoga tulisan ini bermanfaat bagi penulis khususnya
dan para
pembaca pada umumnya.
2.1 Kecerdasan Buatan
...................................................................................
4
2.1.1 Machine Learning
.............................................................................
6
2.1.2 Deep Learning
...................................................................................
9
2.1.3 Neural Network
...............................................................................
10
2.7.2 Teori Dasar Pengolahan Citra Digital
............................................. 30
vi
3.1 Tujuan Penelitian
....................................................................................
32
3.2 Manfaat Penelitian
.................................................................................
32
4.1 Analisa Kebutuhan
.....................................................................................
33
4.3 Model Yang Digunakan
.........................................................................
40
4.3.1 Model 1
...........................................................................................
40
4.3.2 Model 2
................................................................................................
42
5.1 Proses Pengolahan Citra
.........................................................................
43
5.2 Hasil Penelitian
.......................................................................................
43
5.3 Pembahasan
...............................................................................................
44
5.3.2 Training Model
....................................................................................
44
5.3.3 Testing Model
......................................................................................
45
BAB VI RENCANA TAHAP BERIKUTNYA
.................................................... 49
BAB VII KESIMPULAN DAN SARAN
.............................................................
50
7.1 Kesimpulan
.............................................................................................
50
Tabel 2.2 Frekuensi Gejala
...................................................................................
20
Tabel 4.1 Hardware
...............................................................................................
33
Tabel 4.2 Software
................................................................................................
33
Pneumonia merupakan pembunuh utama anak dibawah usia lima
tahun
(Balita) di dunia, lebih banyak dibandingkan dengan penyakit lain
seperti AIDS,
Malaria dan Campak. Namun, belum banyak perhatian terhadap penyakit
ini. Di
dunia, dari 9 juta kematian Balita lebih dari 2 juta Balita
meninggal setiap tahun
akibat pneumonia atau sama dengan 4 Balita meninggal setiap
menitnya. Dari lima
kematian Balita, satu diantaranya disebabkan pneumonia. Di
Indonesia
menunjukkan; prevalensi nasional ISPA: 25,5% (16 provinsi di atas
angka
nasional), angka kesakitan (morbiditas) pneumonia pada Bayi: 2.2 %,
Balita: 3%,
angka kematian (mortalitas) pada bayi 23,8%, dan Balita 15,5%
(Riset Kesehatan
Dasar, 2007) . Pneumonia merupakan salah satu penyebab kematian
anak-anak
tertinggi di dunia. Badan Kesehatan Dunia (WHO) memperkirakan bahwa
penyakit
ini memicu 15% dari seluruh kematian anak-anak di bawah usia 5
tahun (WHO,
2015). Pada tahun 2015, terdapat lebih dari 900.000 anak-anak yang
meninggal
akibat pneumonia. Di Indonesia sendiri, pneumonia diperkirakan
telah merenggut
sekitar 25.000 jiwa balita pada tahun 2013. Pneumonia sendiri bisa
jadi infeksi
paru-paru biasa tapi kadang kala bisa mematikan. Pneumonia bisa
terjadi karena
berbagai organisme, pneumonia karena bakteri atau virus. Upaya
pemerintah dalam
menekan angka kematian akibat pneumonia diantaranya melalui
penemuan kasus
pneumonia Balita sedini mungkin di pelayanan kesehatan dasar,
penatalaksanaan
kasus dan rujukan. Adanya keterpaduan dengan lintas program melalui
pendekatan
MTBS di Puskesmas serta penyediaan obat dan peralatan untuk
Puskesmas
Perawatan dan di daerah terpencil.
Menurut Menkes, pengendalian penyakit ISPA memiliki kendala
diantaranya cakupan penemuan masih sangat rendah akibat tingginya
mutasi tenaga
kesehatan. Selain itu pengendalian pneumonia bukan program
prioritas karena di
beberapa daerah anggaran untuk pneumonia jumlahnya tidak memadai
bahkan
tidak ada sama sekali. Untuk pneumonia karena bakteri kita punya
pilihan
2
pengobatan yang lebih banyak. Jadi dapat dikatakan bahwa lebih baik
terkena
pneumoia karena bakteri. Sedangkan pneumonia karena virus, kita
semua pernah
mendengar mengenai flu. Flu adalah proses infeksi sangat umum
yang
menyebabkan pneumonia. Dan kita tidak punya banyak pilihan
untuk
mengobatinya (Dr. Matthew Schreiber, spesialis penyakit paru-paru
di RS Medstar
Washington). Dengan melihat permasalahan yang ditemukan di atas,
penulis
tertarik untuk melaksanakan penelitian yang berjudul “Penerapan
deep learning
pada Aplikasi prediksi penyakit Pneumonia berbasis Convolutional
Neural
networks”. Dengan harapan penelitian ini memberikan solusi
pemecahan masalah
dan juga membantu mempercepat diagnosis.
1.2 Rumusan Masalah
Atas dasar latar belakang dan identifikasi masalah diatas, maka
dapat
dirumuskan “bagaimana kita bisa menerapkan deep learning pada
prediksi
penyakit pneumonia menggunakan convolutional neural networks
sehingga mampu
mengatasi permasalahan yang ada?
ketersediaan data, dana dan lebih terarah, maka penelitian hanya
menekankan pada:
a. Alat diagnostic yang berdasarkan kerangka kerja
b. Kerangka hanya memanfaatkan pembelajaran transfer
c. Pendekatan ke dataset
pneumonia dengan menggunakan algoritma convolutional neural
networks . Sistem
ini pada akhirnya dapat membantu mempercepat diagnosis dan rujukan
kondisi
yang dapat diobati ini, dengan demikian memfasilitasi pengobatan
lebih dini,
menghasilkan hasil klinis yang lebih baik
1.5 Metode Penelitian
Metode penelitian terdiri dari dua macam, yaitu metode pengumpulan
data
dan metode pengembangan sistem:
yang menjadi referensi, serta pencarian informasi lainnya yang
dapat
mendukung proses penelitian yang bersumber dari media
internet
guna memperoleh data-data tambahan.
cara melakukan pengamatan atau peninjauan langsung terhadap
obyek penelitian.
c. Evaluasi
dicapai dibandingkan dengan seperangkat keberhasilan yang
diharapkan. Perbandingan ini kemudian dilanjutkan dengan
pengidentifikasian faktor-faktor yang berpengaruh pada
kegagalan
dan keberhasilan.
adalah metode Algoritma Convolutional Neural Networks, yang
memiliki
tahaptahap sebagai berikut:
b. Validasi
c. Evaluasi
sistem yang bisa diatur dalam konteks ilmiah atau Intelegensi
Artifisial
(bahasa Inggris: Artificial Intelligence atau hanya disingkat AI)
didefinisikan
sebagai kecerdasan entitas ilmiah. Sistem seperti ini umumnya
dianggap
komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu
mesin
(komputer) agar dapat melakukan pekerjaan seperti yang dapat
dilakukan
manusia. Beberapa macam bidang yang menggunakan kecerdasan
buatan
antara lain sistem pakar, permainan komputer (games), logika fuzzy,
jaringan
saraf tiruan dan robotika.
Secara garis besar, AI terbagi ke dalam dua paham pemikiran yaitu
AI
Konvensional dan Kecerdasan Komputasional (CI, Computational
Intelligence). AI konvensional kebanyakan melibatkan metode-metode
yang
sekarang diklasifiksikan sebagai pembelajaran mesin, yang ditandai
dengan
formalisme dan analisis statistik. Dikenal juga sebagai AI
simbolis, AI logis,
AI murni dan AI cara lama (GOFAI, Good Old Fashioned
Artificial
Intelligence). Metodemetodenya meliputi:
kesimpulan. Sebuah sistem pakar dapat memproses sejumlah besar
informasi
yang diketahui dan menyediakan kesimpulan-kesimpulan berdasarkan
pada
informasi-informasi tersebut.
3. Jaringan Bayesian
4. AI berdasar tingkah laku: metode modular pada pembentukan sistem
AI secara
manual
pembelajaran iteratif (misalnya penalaan parameter seperti dalam
sistem
koneksionis. Pembelajaran ini berdasarkan pada data empiris
dan
diasosiasikan dengan AI nonsimbolis, AI yang tak teratur dan
perhitungan
lunak. Metode-metode pokoknya meliputi:
1. Jaringan Saraf: sistem dengan kemampuan pengenalan pola yang
sangat
kuat
telah digunakan secara meluas dalam industri modern dan sistem
kendali
produk konsumen.
3. Komputasi Evolusioner: menerapkan konsep-konsep yang
terinspirasi
secara biologis seperti populasi, mutasi dan “survival of the
fittest” untuk
menghasilkan pemecahan masalah yang lebih baik.
Metode-metode ini terutama dibagi menjadi algoritme
evolusioner
(misalnya algoritme genetik) dan kecerdasan berkelompok
(misalnya
algoritme semut)
menggabungkan kedua kelompok ini. Aturan inferensi pakar
dapat
dibangkitkan melalui jaringan saraf atau aturan produksi dari
pembelajaran
statistik seperti dalam ACT-R. Sebuah pendekatan baru yang
menjanjikan
disebutkan bahwa penguatan kecerdasan mencoba untuk mencapai
kecerdasan
buatan dalam proses pengembangan evolusioner sebagai efek samping
dari
penguatan kecerdasan manusia melalui teknologi.
Gambar 2.1 Contoh A.I.
memungkinkan komputer untuk mengembangkan perilaku yang
didasarkan
pada data empiris, seperti dari sensor data basis data. Sistem
pembelajar dapat
memanfaatkan contoh (data) untuk menangkap ciri yang diperlukan
dari
probabilitas yang mendasarinya (yang tidak diketahui). Data dapat
dilihat
sebagai contoh yang menggambarkan hubungan antara variabel yang
diamati.
Fokus besar penelitian pembelajaran mesin adalah bagaimana
mengenali
secara otomatis pola kompleks dan membuat keputusan cerdas
berdasarkan
data. Kesukarannya terjadi karena himpunan semua peri laku yang
mungkin,
dari semua masukan yang dimungkinkan, terlalu besar untuk diliput
oleh
himpunan contoh pengamatan (data pelatihan). Karena itu pembelajar
harus
merampatkan (generalisasi) perilaku dari contoh yang ada
untuk
menghasilkan keluaran yang berguna dalam kasus-kasus baru.
Mesin disini adalah mesin dalam pengertian lebih mendekati
‘sistem’
bukan mesin mekanik. Istilah pembelajaran pertama kali muncul
dalam
disiplin ilmu kecerdasan buatan. Pembelajaran berarti
menambah
pengetahuan, memahami dengan belajar, mengikuti perintah.
Pembelajaran
mesin merupakan salah satu cabang dari kecerdasan buatan yang
membahas
mengenai pembangunan sistem yang didapat berdasarkan pada
pembelajaran
data, atau sebuah studi yang mempelajari cara untuk memprogram
sebuah
komputer untuk belajar. Inti dari pembelajaran mesin adalah
representasi dan
generalisasi. Pada tahun 1959, Arthur Samuel mendefinisikan
bahwa
pembelajaran mesin adalah bidang studi yang memberikan kemampuan
untuk
belajar tanpa diprogram secara eksplisit. Kemampuan belajar yang
menjadi
dominan ditentukan oleh kemampuan perangkat lunak atau
alogaritmanya.
Implementasi kemampuan belajar dapat dicapai dengan berbagai
teknik, ada
yang menggunakan kaidah (rule), ada yang menggunakan statistika,
ada yang
menggunakan pendekatan fisiologi yaitu sistem saraf manusia atau
disebut
dengan ANN (Artificial Neural Network) atau jaringan saraf
tiruan.
1. Supervised Learning
dimana jika output yang diharapkan telah diketahui sebelumnya.
Biasanya
pembelajaran ini dilakukan dengan menggunakan data yang telah ada.
Pada
metode ini, setiap pola yang diberikan kedalam jaringan saraf
tiruan telah
diketahui outputnya. Satu pola input akan diberikan ke satu neuron
pada
lapisan input. Pola ini akan dirambatkan di sepanjang jaringan
syaraf hingga
sampai ke neuron pada lapisan output. Lapisan output ini akan
membangkitkan pola output yang nantinya akan dicocokkan dengan
pola
output targetnya. Nah, apabila terjadi perbedaan antara pola output
hasil
pembelajaran dengan pola output target, maka akan muncul error. Dan
apabila
nilai error ini masih cukup besar, itu berarti masih perlu
dilakukan
pembelajaran yang lebih lanjut. Contoh algoritma jaringan saraf
tiruan yang
mernggunakan metode supervised learning adalah hebbian (hebb
rule),
perceptron, adaline, boltzman, hapfield, dan backpropagation.
2. Unsupervised Learning
dimana tidak memerlukan target output. Pada metode ini tidak
dapat
ditentukan hasil seperti apa yang diharapkan selama proses
pembelajaran, nilai
bobot yang disusun dalam proses range tertentu tergantung pada
nilai output
yang diberikan. Tujuan metode uinsupervised learning ini agar kita
dapat
mengelompokkan unit-unit yang hampir sama dalam satu area
tertentu.
Pembelajaran ini biasanya sangat cocok untuk klasifikasi pola.
Contoh
algoritma jaringan saraf tiruan yang menggunakan metode
unsupervised ini
8
neocognitron.
apa yang dilakukan, dan sebagai umpan balik bagaimana
memetakan
perubahan situasi lingkungan terhadap aksi yang dilakukan
untuk
memaksimalkan keuntungan. Model proses pembelajar ini tidak
harus
mendikte aksi yang mana yang harus dilakukan dulu seperti umumnya
pada
model mesin learning. Tetapi sistem harus menjelajahi dulu seluruh
aksi yang
mana yang menghasilkan reward terbesar dengan cara mencobanya
dan
mengerjakannya, seperti yang dituliskan oleh Humphrys (1997).
Prinsip yang digunakan dalam metode ini didasarkan pada teori
reinforcement yang pada intinya adalah ‘konsekuensi
mempengaruhi
tindakan’. Ada 3 prinsip dasar pada teori reinforcement yakni
(Tadepalli et al,
1998;).
3. Konsekuensi yang tidak ada dampaknya tidak memperngaruhi
tindakan.
Dengan kata lain, setiap tindakan mengarah pada konsekuensi
baik,
buruk, atau tidak ada konsekuensi sama sekali. Dan konsekuensi
tersebut akan
menjadi penyebab terjadi atau tidaknya sebuah tindakan atau
kondisi.
Tindakan dan konsekuensi yang diterapkan berbeda-beda dan
harus
disesuaikan dengan kasus yang bersangkutan agar dapat berfungsi
secara
efektif.
learning dan Reinforcement learning sebagai berikut:
Tabel 2.1 Perbedaan Jenis-Jenis Learning
Perbedaan Supervised
9
tindakan yang dianggap alami oleh manusia, misalnya belajar dari
contoh.
Dalam Deep Learning, sebuah komputer belajar mengklasifikasi
secara
langsung dari gambar, teks atau suara.
Deep Learning adalah teknik dalam neural network yang
menggunakan
teknik tertentu seperti Restricted Boltzmann Machine (RBM)
untuk
mempercepat proses pembelajaran dalam Neural Network yang
menggunakan lapis yang banyak. Lapisan pada Deep Learning terdiri
atas
tiga bagian yaitu input layer, hidden layer dan output layer. Input
layer berisi
node-node yang masing-masing menyimpan sebuah nilai masukan yang
tidak
berubah pada fase latih dan hanya bisa berubah jika diberikan nilai
masukan
baru. Pada hidden layer dapat dibuat berlapis-lapis untuk
menemukan
komposisi algoritma yang tepat agar meminimalisir error pada
output.
Kemudian output layer berfungsi untuk menampilkan hasil
perhitungan
sistem oleh fungsi aktivasi pada lapisan hidden layer berdasarkan
input yang
diterima. Penambahan lebih banyak lapisan menjadikan model
pembelajaran
yang bisa mewakili citra berlabel dengan lebih baik. Aplikasi
konsep Jaringan
Saraf Tiruan yang lebih dalam atau yang memiliki banyak lapisan
dapat
ditangguhkan pada algoritma Machine Learning yang sudah ada
sehingga
komputer bisa belajar dengan skala yang besar, kecepatan, dan
akurasi.
10
data besar seperti pada Computer Vision, Speech Recognition, dan
Neural
Languange Processing.
Arsitektur di bawah ini biasa disebut sebagai Multi Layer
Perceptron
(MLP). Arsitektur pertama mempunyai 3 buah neuron pada input layer
dan 2
buah node output layer. Diantara input dan output, terdapat 1
hidden layer
dengan 4 buah neuron. Neuron-neuron tersebut akan terhubung
langsung
dengan neuron lain pada layer selanjutnya.
Gambar 2.2 Layer-layer pada Deep Learning
Deep Learning memungkinkan model komputasi yang terdiri
dari beberapa processing layer untuk mempelajari representasi data
dengan
berbagai tingkat abstraksi. Metode ini telah memperbaiki
state-of-the-art
dalam pengenalan suara (speech recognition), pengenalan objek
visual (visual
object recognition), deteksi objek (objek detection) dan banyak
lainnya.
Beberapa algoritma yang menerapkan konsep Deep Learning anata
lain
Convolutional Neural Networks (CNN) untuk klasifikasi gambar, Deep
Belief
Network – Deep Neural Network (DBN-DNN) untuk pengenalan
suara,
Recurrent Neural Network (RNN) untuk penerjemahan bahasa,
Query-
Oriented Deep Extraction (QODE) yang berbasis Restricted
Boltzmann
Machine (RBM) untuk mendeteksi Drug-Target Interaction (DTI), dan
Deep
Belief Network (DBN) untuk prediksi data sesuai waktu.
2.1.3 Neural Network
Network sebenarnya mengadopsi dari kemampuan otak manusia yang
mampu
memberikan stimulasi/rangsangan, melakukan proses, dan
memberikan
11
output. Output diperoleh dari variasi stimulasi dan proses yang
terjadi di dalam
otak manusia. Kemampuan manusia dalam memproses informasi
merupakan
hasil kompleksitas proses di dalam otak. Misalnya, yang terjadi
pada anak-
anak, mereka mampu belajar untuk melakukan pengenalan meskipun
mereka
tidak mengetahui algoritma apa yang digunakan. Kekuatan komputasi
yang
luar biasa dari otak manusia ini merupakan sebuah keunggulan di
dalam kajian
ilmu pengetahuan.
1. Pengklasifikasian pola
2. Memetakan pola yang didapat dari input ke dalam pola baru pada
output
3. Penyimpan pola yang akan dipanggil kembali
4. Memetakan pola-pola yang sejenis
5. Pengoptimasi permasalahan
Pada dasarnya untuk melakukan training pada neural network,
kita
melakukan proses pada diagram dibawah ini secara terus menerus
hingga loss
atau error yang didapatkan memiliki nilai yang relatif kecil.
Gambar 2.3 Neural Network Training
12
network dengan menggunakan semua bahasa pemrograman yang kita
bisa.
Masalah yang akan kita selesaikan itu adalah permasalahan yang
sangat
kompleks atau mungkin kita membutuhkan arsitektur yang unik dan
kompleks
atau kita ingin menggunakan GPU untuk mempercepat training. Semua
itu
dapat diatasi dengan menggunakan sebuah framework. Sama halnya
seperti
semua framework, deep learning framework ada untuk memudahkan
kita
untuk menyelesaikan masalah menggunakan deep learning.
Sebenarnya ada banyak sekali framework untuk deep learning.
Bisa
dikatakan setiap tech company besar yang ada sekarang memiliki
framework
masing-masing. Google mempunyai TensorFlow, Facebook dengan
Caffe2,
Microsoft dengan CNTK dan masih banyak lagi framework lain
seperti
Theano dan PyTorch. Kali ini yang akan kita pakai TensorFlow (TF).
Ada lagi
satu package yang akan kita gunakan yaitu Keras. Sebenarnya
TensorFlow
sudah cukup jelas cara penggunaannya, tapi kadang dalam riset kita
sering
sekali untuk mencoba arsitektur lain, mencari optimizer yang paling
cepat dan
bagus, tweaking hyperparameter, dll.
Dengan menggunakan Keras kita bisa melakukan semua itu dengan
relatif
lebih cepat dari pada ‘pure’ TensorFlow. Karena jika dibandingkan
dengan
Keras, TensorFlow serasa lebih “low level” meskipun sudah ada
tf.layer yang
baru.
pembelajaran terarah untuk melakukan klasifikasi secara biner,
membedakan suatu
titik atau data masukan ke dalam dua jenis kelas yang
berbeda.
Perceptron termasuk salah satu bentuk jaringan yang cukup
sederhana.
Algoritma ini sering digunakan untuk mengklasifikasikan input yang
bersifat
linearly separable. Jaringan syaraf perceptron mempunyai satu layer
dan
bobot¬bobot sinaptik dan threshold yang bisa diatur. Selama proses
pembelajaran,
perceptron akan mengatur parameter secara continue selama iterasi,
dan akan
menghasilkan garis pemisah (Decision Boundar y) yang berfungsi
untuk
mengklasifikasikan himpunan stimulus yang diaplikasikan secara
eksternal x 1, x
2, ... , x nke dalam salah satu dari dua kelas C1 dan C2. Kelas C1
adalah daerah
positif dimana nilai = threshold (Φ), sedangkan kelas C2 adalah
daerah negatif
dimana nilai < threshold (Φ).
Secara teori, persamaan ini berfungsi untuk menciptakan decision
boundar y
yang membedakan kedua kelas secara akurat. Pengaturan threshold
dapat mengatur
pergeseran garis batasan keputusan.
Gambar 2.5 Klasifikasi Perceptron
kelas positif dan negatif.
Algoritma perceptron adalah proses pembelajaran yang melakukan
perbaikan
bobot-bobotnya pada setiap epoch (proses perulangan 1 kali untuk
setiap data set
input-output). Pada setiap epoch, jaringan akan mengkalkulasi error
yang terjadi,
kemudian nilai errorakan dijadikan parameter untuk proses perbaikan
bobot
sehingga tercipta nilai bobot yang baru. Proses ini akan berhenti
jika errorsudah
mencapai nilai minimum atau perulangan sudah mencapaimaximum epoch
yang
sudah ditentukan sebelumnya. Selain itu, proses pelatihan juga
dipengaruhi oleh
nilai laju pembelajaran(learning rate).
terdiri dari sejumlah neuron yang dihubungkan oleh bobot-bobot
penghubung.
Neuron-neuron tersebut disusun dalam lapisan-lapisan yang terdiri
dari satu lapisan
input (input layer), satu atau lebih lapisan tersembunyi (hidden
layer), dan satu
lapisan output (output layer). Lapisan input menerima sinyal dari
luar, kemudian
melewatkannya ke lapisan tersembunyi pertama, yang akan diteruskan
sehingga
akhirnya mencapai lapisan output.
Gambar 2.6 Multi-Layer Perceptron
Tidak ada batasan banyaknya hidden layer dan jumlah neuron pada
setiap
layernya. Setiap neuron pada input layer terhubung dengan setiap
neuron pada
hidden layer. Demikian juga, setiap neuron pada hidden layer
terhubung ke setiap
neuron pada output layer. Setiapneuron, kecuali pada layer input,
memiliki input
tambahan yang disebut bias. Bilangan yang diperlihatkan pada gambar
di atas
digunakan untuk mengidentifikasi setiap node pada masing-masing
layer.
Kemudian, jaringan dilatih agar keluaran jaringan sesuai dengan
pola
pasangan masukan-target yang telah ditentukan. Proses pelatihan
adalah proses
iteratif untuk mementukan bobot-bobot koneksi antara neuron yang
paling optimal.
Kata back propagation yang sering dikaitkan pada MLP merujuk pada
cara
bagaimana gradien perubahan bobot dihitung. Jaringan MLP yang sudah
dilatih
dengan baik akan memberikan keluaran yang masuk akal jika diberi
masukan yang
serupa (tidak harus sama) dengan pola yang dipakai dalam
pelatihan.
Berikut ini adalah tahap-tahapan dalam penyelesaian masalah
menggunakan
metode Jaringan Syarat Tiruan menggunakan Multilayer
Percepteron.
1. Identifikasi masalah
jaringan syaraf tiruan, meliputi identifikasi jenis dan jumlah
masukan serta
keluaran pada jaringan.
Training data set merupakan kumpulan pasangan data
masukan-keluaran
berdasarkan pengetahuan yang telah dikumpulkan sebelumnya.
Banyaknya
data set harus mencukupi dan dapat mewakili setiap kondisi yang
hendak
diselesaikan. Terbatasnya data set akan menyebabkan akurasi
jaringan menjadi
rendah.
Tahap inisialisasi meliputi penentuan topologi, pemilihan fungsi
aktivasi, dan
pemilihan fungsi pelatihan jaringan. Penentuan topologi adalah
penentuan
banyaknya hidden layer dan penentuan jumlah neuron pada input
layer, hidden
layer dan output layer.
masukan, bobot neuron dan fungsi aktivasinya.
5. Pelatihan / training jaringan
dahulu, seperti penentuan jumlah iterasi, learning rate, error yang
diijinkan.
Setelah itu dilakukan pelatihan yang merupakan proses iteratif
untuk
menentukan bobot koneksi antar neuron.
16
Setelah pelatihan dilakukan, jaringan siap untuk digunakan untuk
pengenalan
pola. Kemampuan jaringan dalam mengenal pola sangat bergantung
dari
bagaimana jaringan tersebut dilatih.
yang tidak linier, yang tidak dapat dimodelkan secara matematis.
Jaringan
cukup belajar dari pasangan data masukan dan target yang
diinginkan, setelah
itu jaringan dapat mengenali pola yang mirip dengan masukan
ketika
dilakukan pelatihan. Karena itu, kinerja jaringan pun ditentukan
oleh
banyaknya pasangan data set selama training.
Bila data training cukup banyak dan konsisten, akurasi jaringan
akan
tinggi, sebaliknya bila data training tidak memadai, akurasi
jaringan rendah.
Selain data training, akurasi jaringan juga ditentukan oleh
pemilihan topologi
yang tepat.
menerus hingga diperoleh jaringan yang paling baik. Tetapi setelah
jaringan
yang optimal ditemukan, proses pengenalan pola dapat dilakukan
secara cepat,
lebih cepat bila dibandingkan metoda lainnya.
Seperti yang telah disampaikan sebelumnya, bahwa metode MLP
merupakan salah satu metode dari Jaringan Syaraf Tirual (JST)
sangat cocok
untuk menyelesaikan masalah yang tidak linear dan non
deterministik. Contoh
aplikasinya antara lain adalah:
1. Untuk speech recognition
2. Untuk image recognition
3. Convolutional Neural Network
Convolutional Neural Network (CNN) adalah salah satu jenis neural
network
yang biasa digunakan pada data image. CNN bisa digunakan untuk
mendeteksi dan
mengenali object pada sebuah image.
Secara garis besar CNN tidak jauh beda dengan neural network
biasanya.
CNN terdiri dari neuron yang memiliki weight, bias dan activation
function.
17
Pada umumnya, manusia tidak membuat keputusan secara tunggal
setiap
saat. Kita akan selalu memperhitungkan masa lalu dalam membuat
sebuah
keputusan. Cara berpikir seperti ini adalah dasar dari pengembangan
Recurrent
Neural
Network. Sama seperti analogi tersebut, RNN tidak membuang begitu
saja
informasi dari masa lalu dalam proses pembelajarannya. Hal inilah
yang
membedakan RNN dari Artificial Neural Networkbiasa.
Gambar 2.8 Recurrent Neural Network
Secara singkat, RNN adalah salah satu bagian dari keluarga Neural
Network
untuk memproses data yang bersambung (sequential data). Cara yang
dilakukan
RNN untuk dapat menyimpan informasi dari masa lalu adalah dengan
melakukan
looping di dalam arsitekturnya, yang secara otomatis membuat
informasi dari masa
lalu tetap tersimpan.
Python merupakan salah satu contoh bahasa tingkat tinggi. Contoh
lain
bahasa tingkat tinggi adalah Pascal, C++, Pert, Java, dan
sebagainya. Sedangkan
bahasa tingkat rendah merupakan bahasa mesin atau bahasa assembly.
Secara
sederhana, sebuah komputer hanya dapat mengeksekusi program yang
ditulis
dalam bentuk bahasa mesin. Oleh karena itu, jika suatu program
ditulis dalam
bentuk bahasa tingkat tinggi, maka program tersebut harus diproses
dulu sebelum
bisa dijalankan dalam komputer. Hal. ini merupakan salah satu
kekurangan bahasa
tingkat tinggi yang memerlukan waktu untuk memproses suatu program
sebelum
program tersebut dijalankan. Akan tetapi, bahasa tingkat tinggi
mempunyai banyak
sekali keuntungan. Bahasa tingkat tinggi mudah dipelajari, mudah
ditulis, mudah
dibaca, dan tentu saja mudah dicari kesalahannya. Bahasa tingkat
tinggi juga mudah
diubah portabel untuk disesuaikan dengan mesin yang menjalankannya.
Hal ini
berbeda dengan bahasa mesin yang hanya dapat digunakan untuk mesin
tersebut.
Dengan berbagai kelebihan ini, maka banyak aplikasi ditulis
menggunakan bahasa
tingkat tinggi. Proses mengubah dad bentuk bahasa tingkat tinggi ke
tingkat rendah
datam bahasa pemrograman ada dua tipe, yakni interpreter dan
compiler. (Utami,
2004)
TensorFlow adalah perpustakaan perangkat lunak, yang dikembangkan
oleh
Tim Google Brain dalam organisasi penelitian Mesin Cerdas Google,
untuk tujuan
melakukan pembelajaran mesin dan penelitian jaringan syaraf dalam.
TensorFlow
kemudian menggabungkan aljabar komputasi teknik pengoptimalan
kompilasi,
mempermudah penghitungan banyak ekspresi matematis dimana
masalahnya
adalah waktu yang dibutuhkan untuk melakukan perhitungan. Fitur
utamanya
meliputi (TensorFlow):
matematisyang melibatkan array multi dimensi (tensors).
19
mesin
optimalisasi memori yang sama dan data yang digunakan. Tensorflow
bisa
menulis kode yang sama dan menjalankannya baik di CPU atau GPU.
Lebih
khusus lagi, TensorFlow akan mengetahui bagian perhitungan mana
yang
harus dipindahkan ke GPU.
4. Skalabilitas komputasi yang tinggi di seluruh mesin dan kumpulan
data
yang besar
2.4 Prediksi
di dalam sekumpulan data. Prediksi menggunakan beberapa variabel
atatu field-
field basis data untuk memprediksi nilai-nilai variabel masa
mendatang yang
diperlukan, yang belum diketahui saat ini.
2.5 Pneumonia
utamanya memengaruhi kantung-kantung udara mikroskopik yang dikenal
sebagai
alveolus. Kondisi ini biasanya disebabkan oleh infeksi virus atau
bakteri dan lebih
jarang mikroorganisme lainnya, obat-obatan tertentu, dan kondisi
lain seperti
penyakit autoimun.
Gejala khasnya meliputi batuk, nyeri dada, demam, dan kesulitan
bernapas.
Alat diagnostik mencakup rontgen dan pengambilan kultur dari
sputum. Vaksin
untuk mencegah jenis pneumonia tertentu kini sudah tersedia.
Pengobatan yang
dilakukan bergantung pada penyebab dasarnya. Dugaan pneumonia
bakterial
diobati dengan antibiotik. Jika pneumonianya parah, penderita
biasanya dirujuk ke
rumah sakit.
Setiap tahunnya, pneumonia menjangkiti sekitar 450 juta orang,
tujuh persen
dari total populasi dunia, dan menyebabkan sekitar 4 juta kematian.
Walaupun
pneumonia dijuluki oleh William Osler pada abad ke-19 sebagai "the
captain of the
20
men of death" (pemimpin kematian), penemuan terapi antibiotik dan
vaksin pada
abad ke-20 telah meningkatkan daya tahan hidup. Meskipun demikian,
di negara
berkembang, dan di antara orang-orang berusia sangat lanjut, sangat
muda, dan
penderita sakit kronis, pneumonia tetap menjadi penyebab kematian
yang utama
(Wikipedia).
Pasien pneumonia yang menular biasanya menderita batuk produktif,
demam
yang disertai menggigil bergetar, sulit bernapas, nyeri dada yang
tajam atau
menghunjam selama menarik napas dalam-dalam, dan peningkatan laju
respirasi.
Pada manula, adanya kebingungan menjadi tanda yang paling utama.
Tanda-tanda
dan gejala khusus pada anak-anak balita yaitu demam, batuk, dan
napas yang cepat
atau sulit.
21
Nyeri
Dada
39-49%
Demam tidak sangat spesifik, karena ini gejala yang umum timbul
pada
berbagai penyakit, dan mungkin tidak tampak pada penderita penyakit
parah atau
malagizi. Selain itu, gejala batuk sering tidak muncul pada
anak-anak berusia
kurang dari 2 bulan. Tanda-tanda dan gejala yang lebih parah
meliputi: kulit biru,
rasa haus berkurang, konvulsi, muntah-muntah yang menetap, suhu
ekstrem, atau
penurunan tingkat kesadaran.
Kasus pneumonia bakterial dan viral biasanya muncul dengan gejala
yang
serupa. Beberapa penyebabnya dikaitkan dengan karakteristik klinis
yang klasik
tetapi tidak spesifik. Pneumonia yang disebabkan oleh Legionella
dapat muncul
disertai nyeri perut, diare, atau kebingungan, sedangkan pneumonia
yang
disebabkan oleh Streptococcus pneumoniae dikaitkan dengan sputum
berwarna
karat, dan pneumonia yang disebabkan oleh Klebsiella dapat disertai
sputum
berdarah yang sering digambarkan sebagai "currant jelly" (lendir
merah). Sputum
berdarah (dikenal sebagaihemoptisis) juga dapat muncul pada
tuberkulosis,
pneumonia gram-negatif, dan abses paru serta umum dijumpai pada
bronkitis akut.
Pneumonia mikoplasma dapat timbul bersama pembengkakan nodus limfa
di leher,
nyeri sendi, atau infeksi telinga tengah. Pneumonia viral lebih
umum muncul
disertai mengi dibandingkan dengan pneumonia bakterial.
22
2. Penyebab
Pneumonia terutama disebabkan oleh infeksi dari bakteri atau virus
dan
jarang dijumpai disebabkan oleh fungi dan parasit. Walaupun
terdapat lebih dari
100 galur agen infeksi yang telah diidentifikasi, namun hanya
beberapa yang
bertanggungjawab atas mayoritas kasus yang ada. Infeksi bersama
dengan virus
beserta bakteri dapat muncul hingga sebanyak 45% infeksi pada
anak-anak dan
15% infeksi pada orang dewasa. Agen penyebabnya tidak dapat
diisolasi pada
sekitar setengah kasus yang ada walaupun pengujian yang cermat
telah dilakukan.
Istilah pneumonia terkadang digunakan secara lebih luas terhadap
berbagai
kondisi yang menyebabkan inflamasi paru-paru (misalnya yang
disebabkan oleh
penyakit autoimun, luka bakar kimia atau reaksi obat); namun
demikian, inflamasi
ini lebih tepat disebut sebagai pneumonitis. Menurut sejarahnya
agen penginfeksi
dibagi menjadi "khas" dan "tidak khas" didasarkan pada aspek yang
diduga, tetapi
bukti-bukti yang ada tidak mendukung pembedaan ini, sehingga kini
tidak lagi
ditekankan.
23
Faktor risiko dan kondisi yang memengaruhi pneumonia
mencakup:
merokok, imunodefisiensi, alkoholisme, penyakit obstruktif paru
kronis, penyakit
ginjal kronis, dan penyakit hati. Penggunaan obat-obatan yang
bersifat menekan
asam seperti penghambat pompa proton atau antagonis H2 dikaitkan
dengan
peningkatan risiko pneumonia . Usia lanjut juga berpengaruh pada
pneumonia.
2.6 Informatika Kedokteran
pemanfaatan komputer dan teknologi komunikasi di bidang kedokteran.
Edward H.
Shortliffe mendefinisikan informatika kedokteran sebagai berikut:
"Disiplin ilmu
yang berkembang dengan cepat yang berurusan dengan penyimpanan,
penarikan
dan penggunaan data, informasi, serta pengetahuan biomedik secara
optimal untuk
tujuan pemecahan masalah dan pengambilan keputusan”. Pakar
informatika
kedokteran lainnya, Haux mengatakan dengan istilah "systematic
processing of
information in medicine".
dalam kedokteran dan terkait sangat erat dengan teknologi informasi
modern, yaitu
komputer dan komunikasi. Posisinya di kedokteran berada di
persilangan antara
berbagai disiplin ilmu dasar dan terapan di kedokteran serta
disiplin di luar
kedokteran, seperti ilmu informasi, komputer, statistika, dan
psikologi. Secara
terapan, aplikasi informatika kedokteran meliputi rekam medis
elektronik, sistem
pendukung keputusan medis, sistem penarikan informasi kedokteran,
hingga
pemanfaatan internet dan intranet untuk sektor kesehatan, termasuk
pengembangan
sistem informasi klinis. Informatika kedokteran sebagai disiplin
baru berkembang
terkelola (unmanageable) oleh metode berbasis kertas (paper-based
methods).
Menurut Shortliffe, subdomain dalam informatika kedokteran
(atau
kesehatan) adalah sebagai berikut:
Bioinformatika bekerja pada proses molekuler dan seluler. Riset dan
aplikasi
bioinformatika memfasilitasi upaya-upaya rekayasa genetik, penemuan
vaksin,
hingga ke riset besar tentang human genome project.
Medical imaging (informatika pencitraan) mengkaji aspek pengolahan
data
dan informasi digital pada level jaringan dan organ. Kemajuan pada
sistem
informasi radiologis, PACS (picture archiving communication
systems), sistem
pendeteksi biosignal adalah beberapa contoh terapannya.
Informatika klinis, yang menerapkan pada level individu (pasien),
mengkaji
mengenai berbagai inovasi teknologi informasi untuk mendukung
pelayanan
pasien, komunikasi dokter pasien, serta mempermudah dokter
dalam
mengumpulkan hingga mengolah data individu.
Informatika kesehatan masyarakat yang berfokus kepada populasi
untuk
mendukung pelayanan, pendidikan dan pembelajaran kesehatan
masyarakat.
Para ahli informatika kedokteran memiliki organisasi yang
menghimpun
tokoh, peneliti, organisasi (baik akademik, pendidikan, penelitian
maupun
pelayanan) serta industri yang memiliki aktivitas dalam informatika
kedokteran
yaitu International Medical Informatics Association (IMIA).
Organisasi ini
memiliki beberapa workgroup maupun special interest group yang
masing-masing
memiliki bidang kajian informatika kedokteran yang berbeda-beda
seperti aspek
pendidikan, standar, informatika kedokteran untuk negara berkembang
dan lain
sebagainya. Organisasi ini juga memiliki organisasi berdasarkan
region, misalnya
untuk Asia Pasifik terdapat Asia Pacific Medical Informatics
Association
(APAMI). Setiap tiga tahun sekali, IMIA mengadakan pertemuan
kongres yang
dikenal dengan tajuk MEDINFO. Pada tahun 2007 MEDINFO akan
dilaksanakan
di Brisbane.
Kesehatan merupakan pendekatan yang sangat berbeda dengan
kedokteran. Kita
kenal dalam kesehatan beberapa pendekatan, antara lain :
1. Promotif
2. Preventif,
dalam kajian ilmu terjadi pemisahan dari kedokteran. Berkembang
kemudian
Kesehatan masyarakat. Pada Informatika Kesehatan terdapat hal yang
prinsip yang
sangat berbeda dengan Informatika Kedokteran. Pada Informatika
Kesehatan
beberapa penelusuran masalah akan berawal dari eviden base. Karena
itu cakupan
informatika kesehatan merupakan cakupan massal bukan
individu.
Indikatorindikator kesehatan tidak terbentuk secara individu tetapi
merupakan
komulatif dari massa/public. pada informatika kesehatan tidak
dilakukan intervensi
secara personal tetapi secara public. Pada informatika Kesehatan
tidak berbasis
kuratif dan rehabilitatif tetapi menekankan pendekatan promotif dan
preventif.
Teknologi pada Informatika Kesehatan digunakan untuk melakukan
intervensi
secara publik dengan cakupan yang luas. Tahun 1995 Fakultas
Kesehatan
Masyarakat Universitas Indonesia melalui Departemen Biostatistik
memulai
mengkaji Informatika Kesehatan dengan membuka peminatan
Informatika
Kesehatan, hingga sekarang (2007) telah ada alumni yang berkiprah
dalam berbagai
bidang.
2.7 Citra Digital
Citra (image) adalah kombinasi antara titik, garis, bidang dan
warna untuk
menciptakan suatu imitasi dari suatu objek, biasanya objek fisik
atau manusia. Citra
bisa berwujud gambar (picture) dua dimensi, seperti lukisan, foto
dan berwujud tiga
dimensi, seperti patung. Citra terbagi 2 yaitu ada citra yang
bersifat analog dan ada
citra yang bersifat digital. Citra analog tidak dapat
direpresentasikan dalam
komputer, sehingga tidak bisa diproses oleh komputer secara
langsung. Citra
analog harus dikonversi menjadi citra digital terlebih dahulu agar
dapat diproses
di komputer (Sutojo, 2017).
Sebuah citra dapat didefinisikan sebagai fungsi f (x, y) berukuran
M baris dan
N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f
di titik
koordinat (x, y) dinamakan intensitas atau tingkat keabuan dari
citra pada titik
tersebut. Apabila nilai x, y dan nilai amplitudo f secara
keseluruhan berhingga
(finite) dan bernilai diskrit maka dapat dikatakan bahwa citra
tersebut adalah citra
digital (Putra, 2010). Gambar di bawah ini menunjukan posisi
koordinat citra
digital.
Sebuah citra sama seperti sebuah grid dengan masing-masing
kotak
persegi di dalam grid berisi satu warna atau piksel. Sebuah citra 8
dengan resolusi
1024 × 768 merupakan sebuah grid yang berisi 1024 kolom dan 768
baris, yang
mana berarti berisi 1024 × 768 = 786432 piksel.
27
2.7.1 Tipe Citra Digital
Dalam melakukan pengolahan citra terdapat empat tipe dasar citra
digital
yang paling sering digunakan saat melakukan penelitian. Keempat
citra tersebut
yaitu sebagai berikut:
1. Citra Biner
Pada citra digital dengan tipe biner, setiap piksel pada citra
hanya memiliki
dua nilai saja yaitu 0 dan 1. Nilai 0 mewakili warna hitam dan
nilai 1 mewakili
warna putih. Karena hanya memiliki 2 nilai yang mungkin untuk
setiap piksel, maka
setiap piksel hanya memiliki ukuran 1 bit saja. Citra dengan tipe
biner seperti ini
akan sangat efisien dalam proses penyimpanannya. Berikut adalah
contoh tipe
citra biner, dimana warna putih mewakili piksel tepi dan warna
hitam mewakili latar
belakang.
Pada citra dengan tipe grayscale, setiap piksel mewakili derajat
keabuan
dengan nilai antara 0 (hitam) sampai 255 (putih). Pada jangkauan
nilai 0 sampai
255, ini berarti bahwa setiap piksel memiliki ukuran 8 bit atau 1
byte. Berikut adalah
contoh citra bertipe grayscale.
Gambar 2.15 Citra Grayscale
3. Citra Warna RGB
Citra warna RGB biasanya juga disebut sebagai Citra True Color.
Pada citra
dengan tipe RGB, setiap piksel memiliki 3 komponen warna, yaitu
merah (R), hijau
(G) dan biru (B). Setiap komponen warna memiliki jangkauan nilai
antara 0 sampai
255 (8 bit). Warna pada piksel ditentukan dari kombinasi merah,
hijau dan biru.
Hal ini akan memberikan kemungkinan total warna sebanyak 2553
=
16.581.375. Jadi total ukuran bit untuk setiap piksel adalah 24 bit
(8 bit R,
8 bit G dan 8 bit B). Citra seperti ini biasanya juga disebut
dengan citra warna 24
bit.
29
4. Citra Warna Berindeks
Kebanyakan citra warna hanya memiliki sebagian kecil dari 16 juta
warna yang
mungkin. Untuk kenyamanan dalam menyimpan dan penanganan berkas
file, citra
warna bertipe indeks mempunyai sebuah peta warna yang terkait
indeks warna,
yang hanya menyimpan daftar semua warna yang digunakan pada citra
tersebut.
Setiap piksel pada citra warna berindeks mempunyai nilai yang tidak
mewakili
warna yang diberikan (seperti pada citra warna RGB), tetapi nilai
tersebut
hanya mewakili sebuah indeks warna, yang mana representasi warna
tersebut
tersimpan pada peta warna. Berikut contoh sebuah citra warna
berindeks.
Gambar 2.17 Citra Warna Berindeks
30
Citra digital dapat didefinisikan sebagai fungsi dua variabel,
f(x,y), dimana
x dan y adalah koordinat spasial dan nilai f(x,y) adalah intensitas
citra pada
koordinat tersebut, hal tersebut diilustrasikan pada gambar 2.2
Teknologi dasar
untuk menciptakan dan menampilkan warna pada citra digital
berdasarkan pada
penelitian bahwa sebuah warna merupakan kombinasi dari tiga warna
dasar, yaitu
merah, hijau, dan biru (Red, Green, Blue – RGB).
Gambar 2.18 Citra Digital
Sebuah citra diubah ke bentuk digital agar dapat disimpan dalam
memori
komputer atau media lain. Proses mengubah citra ke bentuk digital
bisa dilakukan
dengan beberapa perangkat, misalnya scanner, kamera digital, dan
handycam.
Ketika sebuah citra sudah diubah ke dalam bentuk digital
(selanjutnya disebut citra
digital), bermacam-macam proses pengolahan citra dapat diperlakukan
terhadap
citra tersebut.
1. Representasi dan permodelan citra
2. Peningkatan kualitas citra
Dalam tugas akhir ini, pengolahan citra digital difokuskan pada
teknik
kompresi citra.
Kompresi citra bertujuan untuk meminimalkan jumlah bit yang
diperlukan
untuk merepresentasikan citra. Apabila sebuah foto berwarna
berukuran 3 inci x 4
inci diubah ke bentuk digital dengan tingkat resolusi sebesar 500
dot per inch (dpi),
maka diperlukan 3 x 4 x 500 x 500 = 3.000.000 dot ( piksel). Setiap
piksel terdiri
dari 3 byte dimana masing-masing byte merepresentasikan warna
merah, hijau, dan
biru. sehingga citra digital tersebut memerlukan volume penyimpanan
sebesar
3.000.000 x 3 byte +1080 = 9.001.080 byte setelah ditambahkan
jumlah byte yang
diperlukan untuk menyimpan format (header) citra. Citra tersebut
tidak bisa
disimpan ke dalam disket yang berukuran 1.4 MB. Selain itu,
pengiriman citra
berukuran 9 MB memerlukan waktu lebih lama. Untuk koneksi internet
dial-up (56
kbps), pengiriman citra berukuran 9 MB memerlukan waktu 21 menit.
Untuk itulah
diperlukan kompresi citra sehingga ukuran citra tersebut menjadi
lebih kecil dan
waktu pengiriman citra menjadi lebih cepat. Citra yang belum
dikompres disebut
citra mentah (raw image). Sementara citra hasil kompresi disebut
citra
terkompresi(compressed image).
pneumonia dengan menggunakan algoritma convolutional neural
networks . Sistem
ini pada akhirnya dapat membantu mempercepat diagnosis dan rujukan
kondisi
yang dapat diobati ini, dengan demikian memfasilitasi pengobatan
lebih dini,
menghasilkan hasil klinis yang lebih baik
3.2 Manfaat Penelitian
1. Menyediakan informasi yang cepat, tepat dan akurat sehingga
dapat
dilakukan pertolongan bagi pengidap penyakit pneumonia.
2. Dapat memahami dan menganalisa faktor-faktor yang
mempengaruhi
keberhasilan suatu sistem informasi
3. Dapat mengaplikasikan teori deep learning dan neural networks
lebih
aplikatif
33
Perangkat sangat dibutuhkan sekali dalam proses program yang akan
kita
buat. Oleh itu yang digunakan dalam penelitian ini adalah:
a. Perangkat Hardware
Tabel 4.1 Hardware
2. Memori : 2 Gb
b. Perangkat Software
Tabel 4.2 Software
2. Bahasa Program : Python 3.6.5
- Tensor flow
- Open cv
Data yang digunakan pada penelitian ini adalah data-data yang
didapatkan
dari data training dan data test. Data training terdapat 5216 file
gambar yang terdiri
dari 1341 file gambar untuk normal dan 3875 file gambar untuk
pneumonia
sedangkan data test terdapat 624 file gambar yang terdiri dari 234
file gambar untuk
34
normal dan 390 file gambar untuk pneumonia. Jadi total seluruh
gambar untuk
training dan testing adalah 5840 file. Semua data tersebut dalam
format jpg dan
jpeg data diambil dari penelitian Kermany, Daniel; Zhang, Kang;
Goldbaum,
Michael (2018), “Labeled Optical Coherence Tomography (OCT)
and
Chest X-Ray Images for Classification”, Mendeley Data, v2. Dibawah
ini adalah
flowchart untuk preprocessing:
Membaca data gambar dan
baris
Mengubah tiap elemen data
Img data dalam bentuk
data pada masing folder
data
label
format csv
disimpan ke dalam dataframe
sebelumnya. Apabila pelaksanaan penelitian menghadapi suatu
kendala, maka
langkah penelitian perlu diperiksa untuk mengetahui proses mana
kira-kira yang
bisa diperbaiki atau dikembangkan guna mendapatkan hasil penelitian
yang
obyektif. Tahap pertama pada langkah penelitian adalah membuat 2
model
convolutional neural networks. Jadi pada setiap model ada
layer-layer. Layer-layer
yang digunakan digambarkan dalam bentuk bagan dan rangkuman. Lalu
tahap
kedua kita melakukan training dengan menggunakan data dan jumlah
epochs yang
sama, untuk didapatkan bobot yang tepat. Kemudian pada tahap ketiga
kita
melakukan testing dengan menggunakan data testing untuk dilihat
akurasi dan loss
pada masing-masing model. Dan tahap terakhir kita bandingkan dengan
akurasi dan
loss pada proses training.
menggunakan matlab. Referensi yang digunakan bersumber dari buku,
paper,
jurnal dan penelitian-penelitian yang sesuai dengan topik bahasan.
Setelah
mempelajari topik beberapa referensi didapatkan pengetahuan tentang
penelitian
yang pernah dilakukan berupa analisis kelebihan dan kekurangan.
Setelah
mendapatkan informasi tersebut, dilakukan analisis untuk
mendapatkan solusi dari
permasalahan yang diangkat.
Berikut macam-macam model convolutional neural networks:
1. Convolutional Layer
Gambar dibawah ini adalah RGB (Red, Green, Blue) image berukuran 32
x
32 pixels yang sebenarnya adalah multidimensional array dengan
ukuran 32 x 32 x
3 (3 adalah jumlah channel).
36
sehingga membentuk sebuah filter dengan panjang dan tinggi
(pixels). Sebagai
contoh, layer pertama pada feature extraction layer biasanya adalah
conv. Layer
dengan ukuran 5x5x3. Panjang 5 pixels, tinggi 5 pixels dan
tebal/jumlah 3 buah
sesuai dengan channel dari image tersebut.
Ketiga filter ini akan digeser keseluruh bagian dari gambar. Setiap
pergeseran
akan dilakukan operasi “dot” antara input dan nilai dari filter
tersebut sehingga
menghasilkan sebuah output atau biasa disebut sebagai activation
map atau feature
map.
sebelumnya. Layer tersebut adalah proses utama yang mendasari
sebuah CNN.
Convolution layer merupakan lapisan utama yang paling penting
untuk
digunakan. Konvolusi merupakan suatu istilah matematis yang dalam
pengolahan
citra berarti mengaplikasikan sebuah kernel (kotak kuning) pada
citra disemua
offset yang memungkinkan seperti yang ditunjukan pada Gambar 3.14,
sedangkan
37
kotak berwarna hijau secara keseluruhan merupakan citra yang akan
dikonvolusi
Kernel (kotak kuning) bergerak dari sudut kiri atas ke kanan bawah.
Sehingga
hasil konvolusi dari citra tersebut dapat dilihat pada gambar
disebelah kanannya
Gambar 4.3 Proses Convolution Layer
2. Pooling Layer
Pooling layer biasanya berada setelah conv. layer. Pada prinsipnya
pooling
layer terdiri dari sebuah filter dengan ukuran dan stride tertentu
yang akan bergeser
pada seluruh area feature map.
Pooling yang biasa digunakan adalah Max Pooling dan Average
Pooling.
Sebagai contoh jika kita menggunakan Max Pooling 2x2 dengan stride
2, maka
pada setiap pergeseran filter, nilai maximum pada area 2x2 pixel
tersebut yang akan
dipilih, sedangkan Average Pooling akan memilih nilai
rata-ratanya.
Gambar 4.4 Pooling Layer
Dimensi output dari Pooling layer juga menggunakan rumus yang
sama
seperti pada conv. Layer Tujuan dari penggunaan pooling layer
adalah mengurangi
dimensi dari feature map (downsampling), sehingga mempercepat
komputasi
karena parameter yang harus diupdate semakin sedikit dan mengatasi
overfitting.
Berikut adalah pooling yang biasa digunakan, yaitu:
1. Max Pooling
merupakan bentuk down-sampling non-linear. Max-pooling mempartisi
gambar
input ke dalam satu set persegi panjang yang tidak tumpang tindih
dan, untuk setiap
sub-wilayah tersebut, menghasilkan nilai maksimum.
Max-pooling berguna dalam penglihatan karena dua alasan:
1) Dengan menghilangkan nilai-nilai non-maksimal, itu
mengurangi
perhitungan untuk lapisan atas.
lapisan max-pooling dengan lapisan konvolusional. Ada 8 arah di
mana
orang dapat menerjemahkan gambar input dengan satu piksel.
Jika
penggabungan maksimum dilakukan di wilayah 2x2, 3 dari 8
konfigurasi
yang memungkinkan ini akan menghasilkan keluaran yang sama persis
pada
lapisan konvolusional. Untuk penggabungan maksimal melalui jendela
3x3,
ini melompat ke 5/8.
maksimal adalah cara "pintar" untuk mengurangi dimensi representasi
menengah.
Max-pooling dilakukan di Theano dengan cara
theano.tensor.signal.pool.pool_2d. Fungsi ini mengambil masukan
sebuah tensor
dimensi N (di mana N> = 2) dan faktor downscaling dan melakukan
pembungkusan
maksimum atas 2 trailing dimensi tensor.
2. Average Pooling
karena dibutuhkan semua untuk menghitung dan menghasilkan nilai
rata-rata yang
mungkin atau tidak penting untuk deteksi objek. Average pooling
membawa semua
ke dalam hitungan dan mengalirkannya ke lapisan berikutnya yang
berarti semua
nilai benar-benar digunakan untuk pemetaan fitur dan pembuatan
keluaran yang
merupakan perhitungan yang sangat umum. Jika tidak diperlukan semua
masukan
dari lapisan konvolusi maka akan mendapatkan akurasi yang buruk
untuk average
pooling. Pada klasifikasi objek pooling layer yang banyak digunakan
adalah
39
average pooling. Pemilihan pooling layer tergantung pada jenis
dataset yang
digunakan. (Rahman, 2017)
3. Dropout Layer
Secara sederhana, dropout mengacu pada mengabaikan unit (yaitu
neuron)
selama fase pelatihan set neuron tertentu yang dipilih secara acak.
Dengan
"mengabaikan", maksud saya unit-unit ini tidak dipertimbangkan
selama pass
depan atau mundur tertentu (Amar Budhiraja, 2016).
Lebih teknis, Pada setiap tahap pelatihan, node-node individu
dikeluarkan
dari internet dengan probabilitas 1-p atau disimpan dengan
probabilitas p , sehingga
jaringan yang berkurang dibiarkan; tepi masuk dan keluar ke node
drop-out juga
dihapus.
neuron mengembangkan ko-dependensi di antara satu sama lain selama
pelatihan
yang mengekang daya individu masing-masing neuron yang menyebabkan
overpas
dari data pelatihan.
kerugian. Dengan menambahkan penalti ini, model dilatih sedemikian
rupa
sehingga tidak belajar serangkaian fitur bobot yang saling
bergantung. Bagi Anda
yang tahu Logistic Regression mungkin akrab dengan hukuman L1
(Laplacian) dan
L2 (Gaussian).
4. Fully Connected Layer
Fully connected layer merupakan lapisan dimana semua neuron
aktivasi dari
lapisan sebelumnya terhubung semua dengan neuron di lapisan
selanjutnya. Fully
connected layer biasanya digunakan dalam penerapan Multi Layer
Perceptron
(MLP) dan bertujuan untuk melakukan transformasi pada dimensi data
agar dapat
diklasifikasikan secara linear.
Perbedaan antara fully connected layer dan convolution layer
biasanya adalah
neuron di convolution layer terhubung hanya ke daerah tertentu pada
input,
sedangkan fully connected layer mempunyai neuron yang secara
keseluruhan
terhubung. Namun, kedua lapisan tersebut masih mengoprasikan produk
dot,
sehingga fungsinya tidak begitu berbeda.
4.3 Model Yang Digunakan
Model yang digunakan dalam model CNN ada 2 macam, yaitu:
4.3.1 Model 1
Model 1 ini kita akan menguji memakai pooling menggunakan max
pooling,
max pooling mempartisi gambar input ke dalam satu set persegi
panjang yang tidak
41
maksimum.
1. Summary
Pada summary di model 1 terdapat 8 tahap layer yaitu Conv2D-1
MaxPool1 Conv2D-2 MaxPool-2 Flatten Dense_1 Dense_2
Output . dari hasil summary ini kita akan mendapatkan total params,
trainable
params dan non-trainable params, seperti gambar dibawah:
Gambar 4.6 Summary Model 1
2. Gambar Diagram
Dibawah ini adalah alur atau diagram bentuk model 1 dengan
beberapa
tahap layer yaitu Conv2D-1 MaxPool-1 Conv2D-2 MaxPool-2
Flatten
Dense_1 Dense_2 Output .
42
Model 2 ini kita akan menguji memakai pooling menggunakan
average
pooling dimana average hanya akan memilih nilai rata-ratanya.
1. Summary
Pada summary di model 1 terdapat 8 tahap layer yaitu Conv2D-1
AvgPool-1 Conv2D-2 AvgPool-2 Flatten Dense_1 Dense_2
Output . dari hasil summary ini kita akan mendapatkan total params,
trainable
params dan nontrainable params, seperti gambar dibawah:
Gambar 4.8 Summary Model 2
2. Gambar Diagram
Dibawah ini adalah alur atau diagram bentuk model 2 dengan
beberapa
tahap layer yaitu Conv2D-1 AvgPool-1 Conv2D-2 AvgPool-2
Flatten
Dense_1
43
Proses pengolahan citra yang akan dibahas yaitu mulai dengan
mengimport
os, numpy, matplotlib dan pandas. Kemudian kita mendefinisikan data
path, lalu
kita berikan data awal agar kita bisa mencari dan mendeteksi tiap
folder setelah itu
kita membaca data gambar dan mengubah ke biner. Kita juga mengubah
tiap
gambar menjadi format warna grayscale dan mengubah ukuran gambar
sesuai baris
dan kolom. Setelah itu kita ubah juga ukuran matriks menjadi satu
baris dan
kemudian menambahkan baris ke dalam data list. Disini kita juga
mengubah
img_data_list yang berbentuk list menjadi array lalu kitaubah juga
tiap elemen data
img_data menjadi float32. Img data ini kita bentuk dalam dataframe.
Setelah itu
semua, kita menentukan tabel pada data sesuai dengan jumlah data
pada masing
folder. Kemudian kita menambahkan label yang sudah dibuat ke dalam
data dan
menampilkan dalam bentuk dataframe data yang sudah diberi label,
serta kita
menambahkan header pada tiap-tiap kolom, dan jangan lupa convert ke
dalam
format csv. Akhirnya kita dapat membuka file csv yang sudah
disimpan ke dalam
dataframe.
Hasil penelitian yang akan dibahas merupakan hasil dari dua
perlakuan,
yang pertama adalah hasil dari image processing (preprocessing) dan
yang kedua
adalah hasil dari training dan testing data menggunakan jaringan
syaraf tiruan.
5.2.1 Hasil Image Processing (Preprocessing)
Hasil image processing ini kita dapatkan dari 2 tabel yaitu tabel
test
dan tabel train. Tabel test berasal dari csv yang terdiri dari 625
baris dan 784
kolom. Sedangkan tabel train berasal dari csv juga yang terdiri
dari 5218
baris dan 784 kolom.
5.3.1 Train / Test Split
Data yang di gunakan biasanya dibagi menjadi data pelatihan dan
data
uji. Set pelatihan berisi output yang diketahui dan model belajar
pada data
ini untuk digeneralisasikan ke data lain di kemudian hari. Kami
memiliki
dataset uji (atau subset) untuk menguji prediksi model kami pada
subset ini.
Gambar 5.1 Train / Test Split
5.3.2 Training Model
Training dilakukan menggunakan 2 model yang berbeda yaitu model 1
yang
dapat dilihat di gambar 3.6 dan model 2 yang dapat dilihat pada
gambar 3.8, kedua
model tersebut memiliki jumlah layer dan filter yang sama namun
perbedaan
mendasar adalah pada metode pooling yang digunakan masing masing
model
tersebut. Pada model 1 menggunakan max-pooling dan pada model 2
menggunakan
average pooling, training dilakukan pada 5216 gambar dengan label
pneumonia dan
normal. Dari proses training tersebut diharapkan dapat menghasilkan
bobot yang
tepat untuk dapat memprediksi penyakit pneumonia.
Pada training model akan menghasilkan grafik validasi akurasi dan
validasi
loss dengan cara epochs seperti gambar dibawah:
45
5.3.3 Testing Model
Pada testing model kita mendapatkan test loss dan test akurasi,
data yang
digunakan pada proses testing merupakan data yang berbeda dengan
data yang
digunakan pada proses training proses testing tidak menggunakan
data sebanyak
proses training, selain itu testing digunakan untuk mengevaluasi
bobot yang
dihasilkan pada proses training sehingga proses testing tidak kan
mengganti nilai
bobot seperti pada proses training. Hasil dari proses testing dapat
dilihat pada
gambar 5.3.
Gambar 5.3 Testing Model
Dari gambar 4.3 dapat dilihat hasil dari testing dengan menggunakan
data
test, didapatkan nilai akurasi untuk model 1 sebesar 0.7756 atau
77.56% dan untuk
model 2 sebesar 0.7676 atau 76.76 % dari hasil tersebut dapat
dilihat bahwa model
1 memiliki akurasi yang lebih baik ketimbang model 2 namun
perbedaannya tidak
signifikan. Sedangkan untuk perbandingan nilai loss untuk kedua
model tersebut
adalah 0.7369 atau 73.69 % untuk model 1 dan 0.7859 atau 78.59%
untuk model 2,
lagi-lagi dapat dilihat perbandingan kedua model tersebut yaitu
nilai loss dari model
2 lebih besar namun sama seperti akurasi perbedaannya tidak
signifikan.
5.3.4 Random Simple Testing
Dibawah ini adalah data first images dari test-set. Dimana data ini
belum
ada prediksi dan data ini terdiri dari 8 data pneumonia dan 8 data
normal:
47
A. Model 1
Pada model 1 dilakukan random sample sebanyak 16 foto dari data
test
dengan label masing-masing, yang menghasilkan 12 file foto dengan
tepat dapat
diprediksi dengan benar sesuai dengan label datanya dan 4
diprediksi tidak tepat
atau salah, bisa dilihat di gambar bawah berikut ini:
Gambar 5.5 Model 1
75%.
48
B. Model 2
Pada model 1 kita melakukan random sample yang menghasilkan 12
file
foto kesamaan pada true dan prediksi dan 4 yang tidak tepat antara
true dan prediksi,
bisa dilihat di gambar bawah berikut ini:
Gambar 5.6 Model 2
5.3.5 Analisa Dan Kesimpulan
Dari semua rangkaian yang kita lakukan mulai dari training data
yang akan
menghasilkan grafik validasi akurasi dan validasi loss dengan cara
epochs lalu kita
melakukan testing data sehingga kita mendapatkan test loss dan test
akurasi. Setelah
itu semua kita melakukan random simple testing dari data first
images dari test-set.
Dimana data ini belum ada prediksi dan data ini terdiri dari 8 data
pneumonia dan
8 data normal. Sehingga kita memperoleh data untuk model 1 yakni 12
file foto
kesamaan pada true dan prediksi dan 4 yang tidak tepat antara true
dan prediksi
sedangkan untuk model 2 sama hasilnya dengan model 1 yakni 12 file
foto
kesamaan pada true dan prediksi dan 4 yang tidak tepat antara true
dan prediksi.
Jadi, dapat disimpulkan dari semua rangkaian itu kita dapat
memperoleh
hasil prediksi yang benar sekitar 75% dari data yang sesuai dengan
hasil prediksi
pada sampel acak
Penelitian selanjutnya diharapkan menambahkan lebih banyak gambar
yang
digunakan sebagai data train dan data test dengan metode optimasi
yang lain.
Karena hal tersebut mungkin mampu menambah tingkat akurasi
dalam
memprediksi gambar.
Untuk keperluan publikasi, maka hasil penelitian yang ada sejauh
ini akan
dipublikasikan di Jurnal Ilmiah Nasional berISSN tidak
terakreditasi dan seminar
nasional dalam temu ilmiah
prediksi pneumonia dengan menggunakan algoritma convolutional
neural
networks, maka didapat dibuat kesimpulan yaitu :
a. Metode CNN dapat melakukan proses prediksi gambar
khususnya
klasifikasi dengan tinggat akurasi yang cukup tinggi.
b. Setelah dilakukan perbandingan dengan kedua model yang dirancang
pada
bab sebelumnya didapatkan hasil diatas 75% baik dengan
evaluasi
menggunakan data testing dan random sample, namun kendala
yang
ditemukan karena nilai akurasi masih dibawah angka 85% sehingga
masih
harus dilakukan penelitian kembali untuk meningkatkan nilai akurasi
dari
model tersebut..
7.2 Saran
disarankan untuk pengembangan selanjutnya yaitu :
a. Sistem ini memungkinkan untuk dikembangkan dengan
menggunakan
software lain selain software Python. Karena masih banyak software
lain
yang dapat digunakan untuk melakukan klasifikasi gambar.
b. Penelitian selanjutnya diharapkan menambahkan lebih banyak
gambar yang
digunakan sebagai data train dan data test karena hal tersebut
mungkin
mampu menambah tingkat akurasi dalam memprediksi gambar.
51
Network, dan Deep Learning. Jurnal Teknologi Indonesia.
Alodokter. (2018, Juli 20). Retrieved from Alodokter.
Ashby, B., & Turkington, C. (2007). The encyclopedia of
infectious diseases (edisi
ke-3rd). New York: Facts on File.
Danukusumo, K. P. (2017). Implementasi Deep Learning
Menggunakan
Convolutional Neural Network Untuk Klasifikasi Citra Candi
Berbasis
GPU. Yogyakarta : Universitas Atma Jaya.
E. P, I. W. (2016). Klasifikasi Citra Menggunakan Convolutional
Neural Network
(CNN). Surabaya : Institut Teknologi Sepuluh Maret.
Indonesia, U. (2013). UNICEF/WHO: New plan to address pneumonia
and
diarrhoea could save 2 million children a year.
J. Han, M. K. (2006). Data Mining: Concepts and Techniques. Morgan
Kaufmann.
Kusumaningrum, T. F. (2018). IMPLEMENTASI CONVOLUTION NEURAL
NETWORK (CNN) UNTUK KLASIFIKASI JAMUR KONSUMSI DI
INDONESIA MENGGUNAKAN KERAS.
INDONESIA MENGGUNAKAN KERAS. YOGYAKARTA:
UNIVERSITAS ISLAM INDONESIA YOGYAKARTA.
Leach, R. E. (2009). Acute and Critical Care Medicine at a
Glance.
WileyBlackwell.
Leach, R. E. (2009). Acute and Critical Care Medicine at a Glance.
pp.
WileyBlackwell. ISBN 1-4051-6139-6.
M. J. Zaki, W. M. (2014). Data Mining and Analysis: Fundamental
Concepts and
Algorithms. Cambridge: University Press.
McLuckie, A. (2009). Respiratory disease and its management. New
Yor: Springer.
Nasichuddin, M. A. (2017). Implementasi CNN Untuk Klasifikasi
Teks
Menggunakan Tensorflow.
Pommerville, J. C. (2010). Alcamo's Fundamentals of Microbiology.
Sudbury MA:
Jones & Bartlett.
Pommerville, J. C. (2010). Alcamo's Fundamentals of Microbiology.
Sudbury MA:
Jones & Bartlett.
Mada.
Suhartono, D. (2012). Dasar Pemahaman Neural Network.
Sutojo, T. E. (2017). Teori Pengolahan Citra Digital. Semarang :
Universitas Dian
Nuswantoro.
Tintinalli, J. E. (2010). Emergency Medicine: A Comprehensive Study
Guide
(Emergency Medicine (Tintinalli)). New York: McGraw-Hill
Companies.
Utami, E. d. (2004). Logika, Algoritma dan Impelementasinya dalam
Bahasa
Python di GNU/Linux. Yogyakarta : Andi Offset.
Z, H. (2006). "Pneumonia: update on diagnosis and management"
53
LAMPIRAN
54