• Tidak ada hasil yang ditemukan

KLASIFIKASI TUMOR OTAK CT SCAN DENGAN ZONING MENGGUNAKAN LEARNING VECTOR QUANTIZATION TESIS

N/A
N/A
Protected

Academic year: 2021

Membagikan "KLASIFIKASI TUMOR OTAK CT SCAN DENGAN ZONING MENGGUNAKAN LEARNING VECTOR QUANTIZATION TESIS"

Copied!
65
0
0

Teks penuh

(1)

KLASIFIKASI TUMOR OTAK CT SCAN DENGAN ZONING MENGGUNAKAN LEARNING VECTOR QUANTIZATION

TESIS

OLEH

FITRIA PRIYULIDA NIM 167034005

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA MEDAN

2018

(2)

KLASIFIKASI TUMOR OTAK CT SCAN DENGAN ZONING MENGGUNAKAN LEARNING VECTOR QUANTIZATION

TESIS

Untuk Memperoleh Gelar Magister Teknik Dalam Program Studi Magister Teknik Elektro Pada Fakultas Teknik Universitas Sumatera Utara

OLEH :

FITRIA PRIYULIDA 167034005

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA MEDAN

2018

(3)
(4)

Telah diuji pada

Tanggal : 23 Agustus 2018

PANITIA PENGUJI TESIS

Ketua : Dr.Ir. Fahmi, M.Sc.IPM

Anggota : 1. Suherman, ST.M.Comp. Ph.D

2. Emerson P Sinulingga, ST.M.Sc. Ph.D

3. Dr. Ali Hanafiah Rambe, ST.MT

(5)

ABSTRAK

Klasifikasi tumor otak memiliki peranan penting pada bidang aplikasi biomedik dalam hal diagnosa rekam gambar medik. Pentingnya mengidentifikasi tumor otak telah meningkat beberapa tahun belakangan ini. Hal ini dilihat dari banyaknya aplikasi yang dapat melakukan pemrosesan hasil citra medis dari peralatan medis seperti neural networks dan artificial intelligence meskipun sudah demikian berbagai inovasi dan pengembangan pada tumor otak CT Scan masih terus dilakukan dengan berbagai metode. penelitian ini membahas tentang klasifikasi tumor otak CT Scan dengan mengkombinasikan Zoning dengan Learning Vector Quantization (LVQ).

Hasil matriks dari Zoning digunakan sebagai input pada metode Learning Vector Quantization (LVQ). Hasil penelitian dengan pengujian LVQ pada 10 otak normal dan 10 otak suspected memberikan tingkat keberhasilan 90% dan untuk otak normal diperoleh tingkat keberhasilan sebesar 80%.

Kata kunci : Otak normal, Suspected, Zoning, Learning Vector Quantization.

(6)

ABSTRACT

Image classification is increasingly important in medical field to diagnose recorded images. Brain tumour identification has been increasingly important area, mainly by using CT scan. Neural network and artificial intelligence methods dominate the processing algorithms; however, new methods are expected to emerge. This paper discusses brain tumour image classification by zoning combination using learning vector quantization (LVQ). The matrix results of the zoning are used as the LVQ inputs. As results from the assessment of the twenty normal and abnormal brain images, identification has been successfully carried out by 80% and 90%

subsequently for suspected and normal brain.

Keywords : Normal Brain, Suspected, Zoning, Learning Vector Quantization.

(7)

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan yang Maha Kuasa karena atas berkat dan rahmat-Nya, sehingga penulis diberikan kemampuan untuk dapat menyelesaikan Tesis yang berjudul “Klasifikasi Tumor Otak CT Scan Dengan

Zoning Menggunakan Learning Vector Quantization”.

Tesis ini merupakan salah satu syarat untuk memperoleh gelar magister pada Program Studi Magister Magister Teknik Elektro, Fakultas Teknik, Universitas Sumatera Utara. Penulis menyampaikan rasa bangga dan terimakasih sebesar- besarnya kepada orangtua saya, Ibunda Puspita Rahayu dan Ayahanda Yatiman, yang menyayangi saya, telah membesarkan, mendidik dan mendoakan saya. Dan juga rasa sayang kepada kakak dan adik saya.

Dalam kesempatan ini juga, saya mengucapakan terima kasih banyak kepada:

1. Bapak Prof. Dr Runtung Sitepu,SH., M.Hum., selaku Rektor Universitas Sumatera Utara Medan, yang telah memberikan kesempatan dan fasilitas kepada penulis untuk mengikuti dan menyelesaikan program studi Magister Teknik Elektro pada Fakultas Teknik Universitas Sumatera Utara Medan.

2. Ibu Seri Maulina,M.Si.Ph.D, selaku dekan Fakultas Teknik Elektro,

Universitas Sumatera Utara Medan, yang telah memberikan kesempatan dan

fasilitas kepada penulis untuk mengikuti dan menyelesaikan program studi

Magister Teknik Elektro pada Fakultas Teknik Universitas Sumatera Utara

Medan.

(8)

3. Bapak Suherman, Ph.D, selaku ketua Program Studi Magister Teknik Elektro, Fakultas Teknik, Universitas Sumatera Utara, yang telah memberikan arahan dan bantuan bagi penulis untuk menyelesaikan Magister Teknik Elektro pada Fakultas Teknik Universitas Sumatera Utara Medan.

4. Bapak Dr.Fahmi,ST.,MSc.,Ph.D, selaku dosen pembimbing I dan Bapak Suherman, Ph.D, sebagai pembimbing II, Bapak Emerson P.Sinulingga, ST.M.Sc.Ph.D, Bapak

Dr. Ali Hanafiah R, ST.MT,

sebagai Komisi Pembanding yang meluangkan waktunya untuk berdiskusi, memberikan masukan, bimbingan dan motivasi selama penulisan Tesis ini.

5. Seluruh mahasiswa, dosen, dan civitas akademika Program Studi Magister Teknik Elektro, Fakultas Teknik, Universitas Sumatera Utara.

Dengan Keterbatasan Pengalaman penulis menyadari bahwa Tesis ini jauh dari sempurna baik dari segi materi maupun cara penyajiannya. Oleh karena itu, penulis siap menerima saran dan kritik dari pembaca untuk menyempurnakan Tesis ini.

Medan, 06 Agustus 2018

Penulis

(9)

DAFTAR RIWAYAT HIDUP

Saya yang bertanda tangan dibawah ini,

Nama : Fitria Priyulida

Tempat/Tanggal Lahir : PS. Langkat/27 April 1992 Jenis Kelamin : Perempuan

Agama : Islam

Bangsa : Indonesia

Alamat : PS. Langkat AFD 3 Desa Banjar Jaya Kecamatan PD.Tualang Kabupaten Langkat – Sumatera Utara

Menerangkan dengan sesungguhnya riwayat hidup sebagai berikut:

PENDIDIKAN:

1. Tamatan SD Negeri No. 054903 Kebun Balok, Langkat Tahun 2004

2. Tamatan SMP Swasta Tenera, Langkat Tahun 2007

3. Tamatan SMA Swasta Persiapan 2 PD. Tualang, Langkat Tahun 2010 4. Tamatan Pendidikan Teknik Elektro Universitas Negeri Medan Tahun 2014

PEKERJAAN:

 Dosen Teknik Elektromedik Universitas Sari Mutiara Indonesia Medan.

Medan, 23 Agustus 2018 Penulis,

Fitria Priyulida

(10)

DAFTAR ISI

ABSTRAK ... i

ABSTRAC ... ii

KATA PENGANTAR ... iii

DAFTAR RIWAYAT HIDUP ... v

DAFTAR ISI ... vi

DAFTAR GAMBAR ... viii

DAFTAR TABEL... ix

BAB 1 PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Rumusan Masalah ... 3

1.3. Batasan Masalah ... 3

1.4. Tujuan Penelitian ... 4

1.5. Manfaat penelitian ... 4

BAB 2 TINJAUAN PUSTAKA ... 5

2.1. Tumor Otak ... 5

2.2. Computed Tomography ... 5

2.3. Definisi Pengolahan Citra ... 7

2.4. Pembentukan Matriks Biner (Binarization) ... 8

2.5. Ekstraksi Fitur (Feature Extraction)... 8

2.6. Metode Zoning ... 9

2.7. Pengertian LVQ (Learning Vektor Quantitation) ... 10

2.8. Training Dan Testing ... 12

BAB 3 METODOLOGI PENELITIAN ... 14

3.1. Tahapan Pelaksanaan Penelitian ... 14

3.2. Input Citra Otak ... 15

3.3. Preprocessing ... 15

3.4. Feature Extraction (Ekstraksi Ciri)... 16

3.5. Klasifikasi... 18

3.6. Proses Pelatihan... 19

3.7. Pengujian Sistem Dan Analisis ROC ... 19

(11)

BAB 4 HASIL DAN PEMBAHASAN ... 21

4.1. Persiapan Citra ... 21

4.2. Spesifkasi Pesawat CT-Scan yang digunakan ... 21

4.3. Proprocessing... 21

4.4. Proses Pelatihan... 22

4.5. Proses Pengujian Citra ... 22

4.6. Hasil Klasifikasi Menggunakan Metode Zoning Dengan Metode LVQ ... 29

BAB 5 PENUTUP ... 30

5.1. Kesimpulan... 30

5.2. Saran ... 30

DAFTAR PUSTAKA ... 31

LAMPIRAN

(12)

DAFTAR GAMBAR

Nomor Judul Halaman

2.1. Tumor Otak CT Scan ... 6

2.2. Otak Normal CT Scan ... 6

2.3. Proses Zoning ... 9

2.4. Arsitektur Jaringan LVQ ... 10

3.1. Diagram Tahapan Penelitian ... 14

3.2. Gambar Citra Binerisasi ... 15

3.3. Diagram Ekstraksi Fitur... 16

3.4. Hasil Zoning Citra ... 17

3.5. Nilai ekstraksi fitur dengan zoning ... 18

4.1. Proses Pembentukan Citra Biner ... 22

4.2. Proses Pelatihan Citra Otak ... 23

4.3. Proses Pengujian Citra Otak ... 27

(13)

DAFTAR TABEL

Nomor Judul Halaman

3.1. Tabel Kontigensi... 20

4.1. Data Latih ... 23

4.2. Hasil Pengujian Citra ... 28

4.3. Tabel Kontingensi Metode LVQ ... 29

(14)

BAB 1 PENDAHULUAN 1.1. Latar Belakang

Perkembangan sistem teknologi pada dunia medis sekarang semakin berkembang pesat. Hal ini dilihat dari banyaknya aplikasi yang dapat melakukan pemrosesan hasil citra medis dari peralatan medis seperti Computed Temography (CT), Magnetic Resonance Imaging (MRI), Positron Emission Temography (PET) dan sistem x-ray [1]. Pada dunia medis CT scan selalu digunakan untuk mendukung diagnosis suatu penyakit yang dapat menampilkan jaringan tubuh tanpa harus melalui proses pembedahan.

Klasifikasi tumor otak memiliki peranan penting pada bidang aplikasi biomedik dalam hal diagnosa rekam gambar medik. Pentingnya mengidentifikasi tumor otak telah meningkat beberapa tahun blakangan ini. Terlihat dengan meningkatnya bidang analisa seperti neural networks dan artificial intelligence dengan menggunakan berbagai metode. Klasifikasi tumor otak dikembangkan untuk membantu tenaga medis dalam mendiagnosa penyakit. Dalam klasifikasi terdapat beberapa proses yang perlu dilakukan, yakni preprocessing, feature extraction, dan classification. Preprocessing merupakan bagian untuk memproses citra sebelum dilakukan ekstraksi fitur untuk menentukan sebuah area ataupun objek. Proses ini terdiri dari penyaringan, normalisasi dan identifikasi objek sebelum tahap ekstraksi.

feature extraction merupakan sebuah tahapan untuk mengambil nilai inti (fitur) pada

citra CT-Scan untuk mendapatkan obyek yang akan dikenali atau dibedakan dengan

(15)

obyek lainnya [2]. Adapun beberapa fitur ekstrasi diantaranya menggunakan Gray Level Co-Occurrence Matrix (GLCM) dengan ukuran matrik 64 x 64 pixel[3], dengan Discrete Wavelet Transform menerapkan analisis komponen utama Principle Component Analysis (PCA) [4], Zoning [5].

Dari beberapa fitur ekstrasi untuk mengenali fitur diatas, penulis menggunakan ekstraksi ciri zoning. Metode ekstraksi ciri Zoning dikenal sebagai metode yang sangat sederhana, adapun kelebihan yang dimiliki zoning yaitu kompleksitasnya rendah dan memiliki perhitungan yang cepat dalam mengekstrak suatu karakter.

Klasifikasi merupakan proses untuk menentukan fungsi yang dapat membedakan konsep dengan tujuan untuk memperkirakan kelas yang tidak diketahui dari suatu objek [6]. Salah satu metode yang dapat digunakan dalam pengklasifikasian adalah Learning Vector Quantization (LVQ). LVQ merupakan sebuah metode klasifikasi yang dapat melakukan pelatihan pada lapisan-lapisan yang terawasi versi dari model kohonen yang memiliki algoritma pembelajaran yang sederhana yang terdiri dari satu lapisan input dan output [7].

Berikut beberapa penelitian yang pernah dilakukan sebelumnya yang

membahas tentang tumor otak diantaranya, Klasifikasi Berbasis Jaringan Lunak di

Otak CT Scan Berbasis Wavelet Dominant Gray level Run Length Fitur Tekstur

Dalam penelitian ini didapat akurasi otak normal dan otak teridentifkasi tumor

sebesar 98.00% [8]. Klasifikasi tumor otak berdasarkan Set Fitur Statistik

menggunakan Support Vector Machine dengan akurasi sebesar 68,1% [9].

(16)

Dari beberapa penelitian tersebut menjadi dasar bagi penulis untuk menggunakan ekstraksi ciri dengan metode zoning dan klasifikasi akan memanfaatkan teknik Learning Vector Quantization (LVQ). Untuk setiap data sampel yang telah melalui proses prapengolahan citra akan dilakukan ekstraksi fitur dan penentuan letak tumor.

1.2 Perumusan Masalah

Permasalahan dalam penelitian ini secara detail dirumuskan sebagai berikut:

a. Bagaimana menentukan letak tumor otak dengan zoning ?

b. Bagaimana tingkat akurasi mendeteksi daerah otak yang terdeteksi tumor dengan menggunakan zoning dan LVQ ?

c. Bagaimana hasil dari kombinasi antara zoning dan LVQ ? 1.3 Batasan Masalah

Dalam penelitian ini penulis melakukan beberapa batasan permasalahan, mengingat waktu dalam penelitian sangat singkat. Maka disini penulis membatasi antara lain :

a. Aplikasi yang dibuat tidak dapat mengklasifikasikan tumor jinak atau ganas b. Data yang digunakan adalah data yang tersimpan pada medical record RSUP

H.Adam Malik pada pasien berumur 40 sampai dengan 60 tahun dengan jenis

kelamin laki – laki 60% dan perempuan 40%.

(17)

1.4 Tujuan Penelitian

Tujuan yang ingin dicapai oleh peneliti adalah sebagai berikut :

a. Menghasilkan Computer Aided System sehingga mampu membantu tenaga radiologis untuk mengklasifikasikan jenis tumor otak yang diderita pasien secara cepat dan akurat.

b. Menghasilkan aplikasi yang dapat menentukan letak tumor otak dari citra CT Scan.

c. Mendapatkan hasil analisis dari rancangan sistem.

1.5 Manfaat Penelitian

Manfaat yang diperoleh dari penelitian ini adalah sebagai berikut :

a. Dapat membantu tenaga radiologis untuk diagnosis jenis tumor otak yang diderita pasien secara cepat dan akurat.

b. Menjadi salah satu referensi bagi peneliti yang fokus pada teknologi computer vision di bidang kedokteran.

(18)

BAB 2

TINJAUAN PUSTAKA

2.1. Tumor Otak

Tumor otak merupakan suatu masa yang tumbuh secara tidak terkendali dan bersifat menekan jaringan normal lainnya. Tumor otak dapat di Klasifikasi atas tumor otak jinak (benigna) dan tumor otak ganas (maligna). Secara klinis sukar membedakan antara tumor otak yang jinak atau yang ganas, karena gejala yang timbul ditentukan pula oleh lokasi tumor, kecepatan tumbuhnya dan efek masa tumor ke jaringan otak [10].

Diagnose awal dilakukan dengan memperoleh data riwayat kesehatan keluarga pasien dan pemeriksaan fisik. Setelah itu dilakukan pemeriksaan, neurologis untuk mengetahui status mental, memori, fungsi syaraf carnial, kekuatan otot dan respon terhadap rasa sakit. Langkah selanjutnya dilakukan pemeriksaan radiologis melalui CT-Scan ataupun MRI (Magnetic Resonance Imaging).

2.2. Computed Tomography

Computed Tomography (CT) Scan merupakan sebuah alat yang digunakan

untuk memeriksa pasien tanpa melakukan pembedahan langsung namun

menggunakan pancaran sinar-X dan computer untuk menghasilkan citra otak dalam

potongan aksial [11]. Jumlah potongan yang dihasil oleh CT-Scan ditentukan oleh

spesifikasi CT-Scan yang digunakan. untuk meningkatkan kualitas citra dalam

(19)

pemeriksaan radiologis pasien terkadang diinjeksi dengan zat kontras agar dapat meningkatkan kualitas citra dari organ yang diinginkan. Ukuran gambar yang terdapat pada CT-Scan berkisar antara skala -1024 Sampai +3071 pada skala housfield unit. Hounsfiled sendiri merupakan pengukuran densitas dari jaringan yang terdapat pada Gambar 2.1.

Gambar 2.1 Tumor Otak CT Scan [12].

Gambar 2.2 Otak Normal CT Scan

(20)

2.3. Definisi Pengolahan Citra

Pengolahan citra adalah sebuah proses untuk mengolah dan menganalisis citra sehingga menghasilkan citra sesuai dengan persepsi citra dan kebutuhan yang akan digunakan dengan menggunakan bantuan komputer. Citra dapat diartikan sebagai fungsi yang memiliki dua dimensi f(x,y), dimana x dan y adalah suatu kordinat dan f pada setiap titik (x,y) menyatakan intensitas, tingkat kecerahan dan derajat keabuan (grayscale) pada gambar.

Citra digital merupakan ilmu yang mempelajari tentang suatu matriks yang didalamnya terdapat elemen gambar yang dapat memberikan informasi dalam bentuk diskrit. Citra digital bersifat kontinu seperti pada x-ray dan monitor televisi. Dengan demikian perlu dilakukan proses konversi untuk mendapatkan informasi dari citra digital yang dibutuhkan. Untuk mendapatkan informasi fitur pada gambar dapat menggunakan berbagai aplikasi salah satunya computer vision yang telah dikembangkan dalam proses mengambil informasi gambar berupa fitur yang sudah diekstraksi secara otomatis dari gambar itu sendiri. Proses ini sering digunakan untuk menggabungkan beberapa teknologi seperti pengolahan citra dan sinyal, pengenalan pola dan multimedia, serta interaksi antara manusia dengan komputer. Proses ini sering disebut dengan istilah CBIR (Content-Based Image) dalam bidang pengolahan citra [13].

Beberapa tahapan yang terdapat dalam proses CBIR diantaranya:

1. Preprosesing bertujuan untuk menentukan sebuah objek yang akan

digunakan pada tahap ekstrasi.

(21)

2. Ekstraksi Fitur merupakan suatu proses untuk mendapatkan fitur baru berupa pola, bentuk, dan tekstur.

2.4. Pembentukan Matriks Biner (Binarization)

Pada tahap ini akan membentuk citra menjadi hitam putih dengan mengkonversi citra gray-level ke citra biner. Proses ini akan mengambil nilai rata-rata dari nilai setiap RGB, dimana jika nilai piksel yang dihasilkan lebih besar dari nilai threshold akan menghasilkan warna putih, dan jika nilai piksel yang dihasilkan kurang dari nilai threshold maka akan menghasilkan warna hitam [14].

Proses Thresholding digunakan untuk menentukan tingkat derajat keabuan pada citra dan menentukan nilai ambang batas. Proses untuk menentukan nilai ambang ini menggunakan Persamaan 2.1 sebagai berikut:

………...(2.1)

Keterangan :

T = Nilai threshold

fmaks = Nilai piksel maksimum fmin = Nilai piksel minimum

2.5 Ekstraksi Fitur (Feature Extraction)

Ekstraksi fitur merupakan proses untuk menentukan pola dengan

mendapatkan nilai pada karakter citra untuk membentuk nilai fitur. Pengklasifikasian

(22)

menggunakan nilai fitur untuk mengenali unit input dengan unit output sehingga dapat membedakan pengklasifikasian dengan mudah [15].

2.6 Metode Zoning

Metode zoning merupakan salah satu metode dari fitur ekstraksi yang dapat membagi karakter menjadi N x M zona dari setiap zona dilakukan perhitungan nilai fitur sehingga membentuk nilai fitur pada zona M x N. Dalam proses klasifikasi dan pengenalan metode zoning menghasilkan ekstraksi fitur yang baik dan efisien.

Zoning dapat digunakan untuk menghitung jumlah nilai pixel putih pada suatu zona tertentu nilai yang didapat dari proses zoning tersebut akan dijadikan nilai untuk input vektor. Hasil dari proses zoning adalah fitur vektor yang dapat dimasukkan ke tahap pengklasifikasian [16].

Gambar. 2.3 Proses Zoning

(23)

2.7. Pengertian LVQ (Learning Vektor Quantitation)

LVQ merupakan sebuah metode klasifikasi yang dapat melakukan pelatihan pada lapisan-lapisan yang terawasi pada lapisan kompetitif. Lapisan ini mampu melakukan klasifikasi secara otomatis terhadap vektor input yang diberikan.

Beberapa vektor input yang memiliki jarak bobot berdekatan maka bobot akan menghubungkan lapisan input dengan lapisan kompetitip. Lapisan kompetitif menghasilkan sebuah kelas yang dihubungkan pada lapisan output dengan fungsi aktivasi. Arsitektur dari jaringan LVQ dengan beberapa unit lapisan input dan unit pada lapisan output dapat dilihat pada Gambar 2.4 [17].

Gambar 2.4 Arsitektur Jaringan LVQ [17].

(24)

Keterangan :

W

1

,Wn = Data nilai inisialisasi

||X-W1||, ||X-W2|| = Vektor bobot

N = Data input

X

1

,X

2

,X

3

,…Xn = Nilai input

E

1

,E

2

= Lapisan output

D

1

,D

2

= Output

Pada Gambar 2.4 menjelaskan bahwa nilai X

1

sampai X

2

merupakan nilai inputan dimana nilai ini yang akan digunakan untuk proses training dan proses testing. Dengan (W

1

dan W

2

) sebagai vektor bobot yang dapat menghubungkan setiap lapisan input dengan lapisan output. W

1

dan Wn digunakan untuk mendapatkan jarak bobot terkecil dari vektor bobot yang didapatkan dari perhitungan nilai input. Untuk E

1

dan E

2

sebagai lapisan output untuk mewakili dari beberapa kelas. sedangkan D

1

dan D

2

sebagai nilai output pada lapisan output yang akan dipergunakan untuk proses pengujian.

Beberapa kelebihan dari LVQ adalah:

1. Menghasilkan nilai erorr yang sangat kecil.

2. Pada tahap klasifikasi dapat meringkas data set yang besar menjadi vektor kecil.

3. Dapat melakukan pembaharuan secara bertahap terhadap model yang

dihasilkan.

(25)

Sedangkan untuk kekurangan LVQ adalah:

1. Untuk menentukan jarak pada semua atribut harus menggunakan perhitungan yang akurat

2. Perhitungan inisialisasi dan parameter sangat diperlukan dalam menentukan akurasi pada model LVQ

3. Sulitnya menentukan jumlah vektor pada masalah baru

Sebelum masuk kedalam proses klasifikasi menggunakan metode LVQ terlebih dahulu dilakukan proses training proses ini digunakan untuk mempermudah proses pencarian kelas sehingga dapat dilakukan pengenalan pola input berdasarkan output yang diperoleh. LVQ dapat melakukan pengenalan pola input jika jarak antara vektor bobot dengan vektor input berdekatan.

2.8.

Training Dan Testing

Pada LVQ terdapat dua tahapan pelatihan dan pengujian sebagai berikut algoritma pelatihan dan pengujian jaringan saraf tiruan LQV yang digunakan untuk proses pelatihan dan pengujian adalah sebagai berikut:

1) Menetapkan bobot awal dari nilai input X

1

sampai Xn, menuju lapisan output yang mewakili seluruh kelas, maksimum epoch (MaxEpoch), Parameter learning rate (α), Pengurangan learning rate (Decα), error minimum (Eps).

2) Memasukkan : a. Data input : x(m,n)

b. Data target : T(1,n)

(26)

3) Menentukan nilai awal epoch = 0 ; Err = 1 4) Jalankan jika (epoch < MaxEpoch) dan (α > Eps)

a. Epoch = Epoch + 1

b. Masukkan untuk i = 1 sampai n

i. Tentukan J hingga ||X-Wj|| minimum

ii. Ulangi Wj dengan ketetapan pada persamaan berikut:

Jika T = Cj maka:

W

j

= W

j

+ α [X – W

j

]……….(2.2) Jika T ≠ C

j

maka:

W

j

= W

j

– α [X – W

j

]……….(2.3) T digunakan sebagai target pengenalan pada bobot Cj dengan jarak terkecil pada bobot ke j [18].

Keterangan:

T = Bobot input pembelajaran

X = Nilai input vektor latih (X

1

,X

2

,X

3

,…Xn) Cj = Output j

||X – Wj|| = Jarak bobot antara vektor output dengan vektor input

Pada tahap pelatihan hasil perhitungan LVQ digunakan untuk mendapatkan

nilai bobot yang akan disimpan dan digunakan dalam tahap pengujian. Pada tahap

pengujian, data input baru diklasifikasikan dengan cara menjumlahkan nilai pada

setiap bobot input dan memilih jarak terdekat pada kedua bobot yang sudah

tersimpan. Nilai pada jarak bobot terdekat akan menggantikan kelas pada citra

masukan.

(27)

BAB 3

METODOLOGI PENELITIAN

3.1. Tahapan Pelaksanaan Penelitian

Pada bab ini akan membahas metode zoning dan learning vektor quantization (LVQ) dengan melalui beberapa tahap untuk membuat sistem yang dibangun.

Aplikasi ini akan menggunakan citra potongan axial sebagai masukan kemudian citra akan melalui tahap preprocessing, feature extraction, dan classification. Tahapan tersebut ditunjukan pada Gambar 3.1.

Gambar 3.1 Diagram Tahapan Penelitian Input Citra Otak

Preprocessing Ekstraksi Fitur

Zoning Klasifikasi

LVQ Hasil Klasifikasi Citra Otak CT Scan

Normal Suspected

Analisis Dokter Hasil Klasifikasi Citra Otak CT Scan

Normal Suspected

Selesai

i

Mulaii

(28)

3.2.

Input Citra Otak

Proses input citra dilakukan sebelum proses klasifikasi citra. Data citra yang digunakan pada penelitian ini adalah data citra otak potongan axial yang didapat dari RSUP H.Adam Malik. Citra yang digunakan berupa citra grayscale berukuran 512x512.

3.3. Preprocessing

Pada tahapan preprocessing dilakukan beberapa tahapan untuk menentukan proses selanjutnya, tahapan preprocessing terdiri dari proses grayscale dan binerization. Pada tahapan binerization citra diubah kedalam bentuk grayscale selanjutnya akan dilakukan thresholding dimana citra grayscale akan diubah ke dalam bentuk biner yang bernilai 1 dan 0 (Putih dan hitam). Dalam tahapan ini digunakan nilai ambang untuk menentukan nilai biner pada setiap citra. Jika nilai yang dihasilkan diatas nilai ambang maka nilai pixel diubah menjadi warna putih, jika nilai yang dihasilkan kurang dari ambang maka nilai pixel akan diubah menjadi warna hitam. Hal ini ditunjukkan oleh Gambar 3.2.

a. Citra Original Tumor Otak b. Citra Binerisasi Tumor Otak

Gambar 3.2 Gambar Citra Binerisasi

(29)

Citra dibagi menjadi 8 kolom dan 8 baris

Menghitung jumlah piksel putih setiap zona

Nilai fitur = nilai zona, rata-rata zona Mencari zona dengan piksel putih tertinggi

Nilai fitur tiap zona = jumlah piksel zona/jumlah piksel putih

3.4. Feature Extraction (Ekstraksi Ciri)

Pada proses selanjutnya setelah melalui proses preprocessing maka dilakukan tahap ekstraksi ciri dengan menggunakan metode zoning untuk mendapatkan nilai fitur yang baik pada citra tumor otak. Selanjutnya nilai fitur yang didapatkan dari metode tersebut akan diklasifikasikan menggunakan metode LVQ (learning vektor quantization).

Zoning merupakan salah satu metode yang dapat membagi beberapa wilayah, dimana setiap wilayah akan menghasilkan nilai fitur dengan menghitung jumlah pixel putih tertinggi. Pada tahap ini citra yang berukuran 512 x 512 akan dibagi menjadi 8 kolom dan 8 baris sehingga mendapatkan 64 zona dan terdapat 64 nilai fitur didalamnya. Berikut proses dari fitur ekstraksi dapat dilihat pada Gambar 3.3, sementara pembagian zona dapat dilihat pada Gambar 3.4.

Gambar 3.3 Diagram Ekstraksi Fitur

(30)

8 kolom

Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8

Z9 Z10 Z11 Z12 Z13 Z14 Z15 Z16

Z17 Z18 Z19 Z20 Z21 Z22 Z23 Z24

Z25 Z26 Z27 Z28 Z29 Z30 Z31 Z32

Z33 Z34 Z35 Z36 Z37 Z38 Z39 Z40

Z41 Z42 Z43 Z44 Z45 Z46 Z47 Z48

Z49 Z50 Z51 Z52 Z53 Z54 Z55 Z56

Z57 Z58 Z59 Z60 Z61 Z62 Z63 Z64

Gambar 3.4 Hasil Zoning Citra

Langkah- Langkah dari metode zoning pada citra tumor otak CT Scan antara lain:

1. Menghitung jumlah pixel putih setiap zona dari Z1 sampai Z512.

2. Menentukan zona yang memiliki jumlah pixel putih paling tinggi.

3. Menghitung nilai fitur setiap zona dari Z1 sampai Z512.

Dengan menggunakan rumus :

Nilai Fitur Zn =

dimana 1 ≤ n ≤ 512

8 Baris

(31)

Nilai fitur ditentukan dengan perhitungan jumlah pixel putih dari satu zona dengan zona yang didapatkan dari proses no 2. berikut perhitungan metode zoning adalah :

1. Nilai pixel putih pada setiap zona Z4=40, Z12=30, Z40=70, Z53=50

2. Terdapat jumlah pixel putih paling tinggi pada zona Z40 = 70 3. Data fitur pada setiap zona diantaranya:

Z1 = 40/70 = 0.57 Z12 = 30/70 = 0.42 Z40 = 70/70 = 1 Z53 = 50/70 = 0.71 Z60 = 20/70 = 0.28

Untuk Proses ekstraksi fitur digunakan zoning yang menghasilkan 64 nilai fitur dimana nilai tersebut akan digunakan sebagai nilai input pada tahap selanjutnya yaitu proses klasifikasi menggunakan LVQ dan dapat dilihat pada Gambar 3.5.

1 0 1 1 0

Z1 Z12 Z40 Z53 Z60 64

Gambar 3.5 Data ekstraksi fitur dengan zoning 3.5. Klasifikasi

Klasifikasi merupakan proses untuk melatih dan menguji data fitur yang

didapatkan dengan proses ekstraksi fitur menggunakan metode zoning dan

diklasifikasikan dengan Learning Vektor Quantization (LVQ). Pada tahapan

klasifikasi terdapat dua proses yaitu proses training dan proses testing. Dimana

(32)

proses training digunakan untuk melatih memorisasi pada Learning Vector Quantization (LVQ) sedangkan Proses testing merupakan pengujian nilai fitur yang belum pernah dilatih.

3.6. Proses Pelatihan

Pada tahap pelatihan algoritma LVQ akan memproses nilai input dengan menerima vektor masukan sebanyak 64 fitur pada kelas fitur, selanjutnya vektor akan menghitung jarak semua vektor yang mewakili kelas.

3.7 Pengujian Sistem dan Analisis ROC

Proses pengujian menggunakan LVQ yang telah dilatih untuk mengenali data uji yang tidak pernah dilatih. Proses pengujian sama dengan proses pelatihan dimana klasifikasi menghitung nilai pada setiap bobot input dan memilih jarak terdekat antara kedua bobot. Ketika LVQ diuji dengan menggunakan data pelatihan, Pengujian dilakukan untuk melihat bagaimana pengembangan memorisasi pada LVQ setelah melalui proses training.

Hasil dari proses pengujian terhadap sample, akan disesuaikan pada tabel

kontingensi untuk mendapatkan sensitivity, specificity dan accuracy tabel kontingensi

dapat dilihat pada Tabel 3.1 . Peluang keberhasilan dari perhitungan memiliki empat

kemungkinan, berikut empat kemungkinan tersebut sebagai berikut:

(33)

1. Jika dokter mendiagnosa citra otak sebagi tumor dan citra otak tersebut diklasifikasikan postif teridentifikasi tumor maka dihitung true positive (TP).

2. Jika dokter mendiagnosa citra otak sebagai tumor dan citra otak tersebut diklasifikasikan negatif teridentifikasi tumor maka dihitung false negative (FN).

3. Jika dokter mendiagnosa otak normal dan citra otak tersebut diklasifikasikan negatif dihitung true negative (TN).

4. Jika dokter mendiagnosa citra otak normal dan citra otak tersebut diklasifikasikan positif tumor dihitung false positive (FP).

Tabel 3.1. Tabel Kontingensi

P N

Y TP (True Positive) FP (False Positive) N FN (False Negative) TN (True Negative)

Total P N

Dimana:

TPR =

= Recall ... (3.2)

FPR =

... (3.3)

Precision =

... (3.4)

Accuracy =

... (3.5)

Sensitivity

... (3.6)

(34)

BAB 4

HASIL DAN PEMBAHASAN

4.1. Persiapan Citra

Pada bab ini membahas tentang proses pengklasifikasian citra otak yang berjumlah 40 gambar. Pada proses training digunakan 10 otak yang teridentifikasi tumor dan 10 otak normal untuk proses latih terdiri dari 10 otak yang teridentifikasi tumor dan 10 normal. Data citra otak CT Scan didapatkan dari medical record RSUP H.Adam Malik pada pasien berumur 40 tahun sampai 60 tahun. Pada tahap ini, bertujuan untuk menampilkan hasil dari proses pengujian pada learning vektor quantization. Penulis membangun aplikasi ini menggunakan pemograman pada java.

4.2. Spesifikasi Pesawat CT-Scan Yang Digunakan

Adapun Spesifikasi pesawat CT-Scan yang digunakan ialah sebagai berikut:

- Merk : GE LightSpeed 16 Slice CT - Rotation : 0.5 Second

- Slice Thiknee : 5 mm - Kv : 120 Kv 4.3. Preprocessing

Proses awal yang dilakukan dalam klasifikasi tumor otak ini melalui tahapan

preprocessing dimana citra akan dikonversikan kedalam bentuk hitam putih sebelum

(35)

dilakukan proses binerisasi secara keseluruhan. Dalam penelitian ini menggunakan nilai threshold sebesar 128 penentuan nilai threshold ini digunakan untuk mendapatkan nilai keabuan pada citra tumor otak. Hasil dari proses tahapan ini dapat dilihat pada Gambar 4.1.

(a) Citra asli (b) Citra biner Gambar 4.1 Proses Pembentukan Citra Biner

Setelah citra biner didapatkan, tahap selanjutnya adalah ekstraksi fitur dengan menggunakan metode zoning. Selain untuk menentukan nilai fitur motode zoning ini juga digunakan untuk menentukan letak dari tumor. Untuk mendapatkan hasil dari nilai citra tumor otak CT scan maka dilakukan pembagian dari beberapa zona dengan ukuran yang sama. Tujuan dari tahapan ekstraksi fitur ini untuk menemukan kumpulan dari ciri-ciri yang terdapat pada karakter citra otak.

4.4. Proses Pelatihan

Proses pelatihan citra menggunakan data berupa 20 citra otak CT scan yang

terdiri dari 10 citra normal dan 10 citra suspected. Citra otak CT scan yang digunakan

berukuran 512 x 512 yang disimpan dalam hard disk lokal serta proses klasifikasi

(36)

menggunakan jaringan syaraf tiruan LVQ (Learning Vector Quantization). Pelatihan dapat dilihat pada Gambar 4.2 sedangkan data latih dari citra otak CT scan dapat dilihat pada Tabel 4.1.

Gambar 4.2 Proses pelatihan citra tumor otak Tabel 4.1. Data Latih

No Citra Otak Nilai Bobot

Jenis Otak 1

0.076161

Normal

2

2.304818

Normal

(37)

Tabel 4.1. Data Latih (Sambungan)

Citra Otak Nilai Bobot Jenis Otak

2.2668598

Normal

1.456988

Normal

2.9700592

Normal

1.6688762

Normal

1.6688761

Normal

2.9700592

Normal

(38)

Tabel 4.1. Data Latih (Sambungan)

Citra Otak Nilai Bobot Jenis Otak

2.769984

Normal

1.6688762

Normal

2.9779766

Suspected

2.9736168

Suspected

2.9230187

Suspected

(39)

Tabel 4.1. Data Latih (Sambungan)

Citra Otak Nilai Bobot Jenis Otak

2.800454

Suspected

3.2186778

Suspected

1.8768171

Suspected

2.3506687

Suspected

1.9752706

Suspected

3.0961044

Suspected

2.006145

Suspected

(40)

Dari Tabel.4.1, nilai bobot pada setiap data latih sudah dapat dilihat. Nilai bobot merupakan nilai akhir yang digunakan dalam proses pengujian dimana nilai bobot ini didapat dari proses perhitungan LVQ.

4.5. Proses Pengujian Citra

Pada tahap pengujian digunakan data input citra sebanyak 20 citra otak terdiri atas 10 citra otak normal dan 10 citra otak Suspected. Tampilan aplikasi dari klasifikasi tumor otak dengan zoning menggunakan learning vector quatization dapat dilihat pada Gambar 4.3, dan hasil pengujian dapat dilihat pada Tabel 4.2.

Gambar 4.3 Proses Pengujian Citra

(41)

Tabel 4.2 Hasil Pengujian Citra

No Nama Citra Bobot 1 Bobot 2 Inputan *

Hasil Pengujian

Keterangan Posisi

1 Data-5.png 3.489579 2.9736168 Suspected Suspected TP Kanan 2 Data-9.png 3.7573445 3.2186778 Suspected Suspected TP Kanan 3 Data-2.png 3.4895792 2.9779766 Suspected Suspected TP Kanan 4 Data-12.png 3.0037804 2.6869104 Normal Suspected FN Normal 5 Data-13.png 2.304818 2.9392818 Normal Normal TN Normal 7 Data-7.png 3.07729601 1.8768171 Suspected Suspected TP Kanan 9 Data-19.png 2.2668598 2.9678066 Normal Normal TN Normal 10 Data-11.png 2.305248 2.9393818 Normal Normal TN Normal 11 Data-13.png 2.304818 2.93938118 Normal Normal TN Normal 12 Data-8.png 3.4555268 2.9230187 Suspected Suspected TP Kiri 13 Data-18.png 2.9360542 2.8076556 Normal Suspected FN Normal 14 Data-4.png 3.5838966 2.800454 Suspected Suspected TP Kanan 15 Data-1.png 3.043977 2.006145 Suspected Suspected TP Kanan 16 Data-6.png 3.0350804 2.3506687 Suspected Suspected TP Kiri 17 Data-10.png 2.3829138 3.0961044 Suspected Normal FP Normal 18 Data-3.png 2.8869388 1.9752706 Suspected Suspected TP Kanan 19 Data-14.png 2.769984 2.9166098 Normal Normal TN Normal 20 Data-15.png 2.2493293 2.9494078 Normal Normal TN Normal

*Catatan : Dari Tabel 4.3, data input dapat dilihat pada lampiran 1. Inputan

merupakan data yang dipakai pada saat proses pengujian maupun

pelatihan, inputan ini didapat dari hasil diagnosa dokter. Inputan yang ada

pada data penelitian ini adalah suspected dan normal. dimana suspected

menunjukkan kondisi citra otak untuk kategori teridentifikasi tumor otak

dan normal menunjukkan citra untuk kategori tidak terdeteksi tumor.

(42)

Dari Tabel 4.3, nilai inputan pada data-12 menunjukkan kondisi citra untuk kategori normal namun pada sistem menunjukkan suspected, hal ini dikarenakan metode Learning Vector Quantization peka terhadap nilai bobot yang terinput. Jika data pada nilai input berubah maka nilai bobot juga akan berubah.

4.6. Hasil Klasifikasi Menggunakan Metode LVQ

Hasil dari uji data pada aplikasi klasifikasi tumor otak dengan metode learning vector quantization dengan rata - rata hasil klasifikasi 85 % sehingga hasil dari akurasi menggunakan learning vector quantization dapat dihitung dengan cara sederhana menggunakan Persamaan 4.1.

Untuk mendapatkan hasil yang akurat maka perlu dilakukan analisis ROC pada hasil klasifikasi berdasarkan metode LVQ, hasil untuk metode LVQ ditunjukkan pada Tabel 4.3.

Tabel 4.3 Tabel Kontingensi Metode LVQ Parameter Klasifikasi Klasifikasi LVQ

TP 9

TN 8

FP 2

FN 1

Sensitivity % 90

Specificity % 80

Accuray % 85

(43)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

1. Kombinasi dari algoritma Zoning dengan Learning Vector Quantization dapat meningkatkan kecepatan pada komputasi dan dapat mengklasifikasikan otak normal maupun otak abnormal dengan rata - rata akurasi 85 %.

2. Pengenalan data citra secara optimal dapat dicapai dengan metode Learning Vector Quantization yang memiliki perhitungan yang cepat dalam pengenalan suatu karakter yang sesuai sehingga tidak terjadi kesalahan pada saat pengujian data.

5.2. Saran

1. Membandingkan metode Learning Vector Quantization dengan metode Support Vector Machine sehinggah dapat menghasilkan metode terbaik untuk pengklasifikasian citra otak.

2. Penggunaan metode Zoning dan Learning Vector Quantization dapat

diterapkan pada penelitian selanjutnya dengan menambahkan metode PCA

untuk menentukan luas dari citra otak abnormal.

(44)

DAFTAR PUSTAKA

[1]. Pham N. H Tra, Nguyen T.Hai, Tran T Mai, “Image Segmentation for Detection of Benign and Malignant Tumors, IEEE, 2016.

[2]. Padma Nanthagopal, A.,Sukanesh Rajamony,R,„A region-based segmentation of tumour from brain CT images using Nonlinear Support Vector Machine classifier‟, J. Med. Eng. Technol., 2012, pp. 271–277.

[3]. Vinny Marita,

Identifikasi Tumor Otak Menggunakan Jaringan Syaraf Tiruan Propagasi Balik pada Citra CT-Scan Otak”, Prisma Fisika, 2014, pp.

117-121.

[4]. Abhishek Bargaje, Ameya Kulkarni, Shubham Lagad, Brain Tumor detection and classification using Adaptive boosting, International Research Journal of Engineering and Technology (IRJET) 2017, pp.1961-1965.

[5]. Kartar, S., Renu, D. & Rajneesh, R.

Handwritten Gurumukhi Character Recognition Using Zoning Density and Background Directional Distribution Features. International Journal of Computer Science and Information Technologies, 2011 pp:1036-1041.

[6]. Eka Miranda, Mediana Aryuni, E. Irwansyah “A Survey of Medical Image Classification Techniques”, International Conference on Information Management and Technology,2016

[7]. Azara, M., Fatayer, T., & Halees, A.E. “Arabic Text Classification Using Learning Vector Quantization”, The 8th International Conference on Informatics and System (INFOS2012).

[8]. Padma A, Sukanesh R. 2013. Based Classification of Soft Tissues in Brain CT Image Using Wavelat Based Dominant Gray level Run Legnth Texture Feature. Middle-East Jornal of Scientific Research , Madurai,India.

[9]. Mohana Priya K, Kavitha S, Bharathi B “Brain Tumor Types Grades Classification based on Statistical Feature Set Using Support Vektor

Machine”. International Conference on Intelligent Systems and

Control, 2016

(45)

[10]. R.Lavanyadevi, M.Machakowsalya. “Brain Tumor Classification and Segmentation in MRI Images Using PNN”, ICEICE, 2017, pp.1-6.

[11]. Kartar, S., Renu, D. & Rajneesh, R.

Handwritten Gurumukhi Character Recognition Using Zoning Density and Background Directional Distribution Features. International Journal of Computer Science and Information Technologies, 2011 pp:1036-1041.

[12].

Padma Nanthagopal, A.,Sukanesh Rajamony,R,„A region-based of tumour from brain CT images using Nonlinear Support Vector Machine classifier‟, J. Med. Eng. Technol., 2013, pp. 271–277.

[13]. Choras, R.S. 2007. Image Feature Extraction Techniques and Their

Applications for CBIR and Biometrics Systems. International Journal of Biology and Biomedical Engineering. Vol.1, No.1 : 6-16

[14] Sunil Kumar Khatri. “Recognizing Images Of Handwritten Digits Using Learning Vector Quantization Artificial Neural Network”, International Conference on Reliability, Infocom Technologies and Optimization, 2016.

[15]. Kartar, S., Renu, D. & Rajneesh, R. 2011. Handwritten Gurumukhi Character Recognition Using Zoning Density and Background Directional Distribution Features. International Journal of Computer Science and Information Technologies, 2011.

[16]. Gatos, B., Kesidis,A.L, & Papandreou, A.2011. Adaptive zoning features for character and word recognition. Di dalam: 11

th

International Conference on Document Analysis and Recognition; Beijing, 18-21 Sep 2011. Washington DC: IEEE Computer Society 2: 1160-1164.

[17]. Sunil Kumar Khatri. “Recognizing Images Of Handwritten Digits Using Learning Vector Quantization Artificial Neural Network”, International Conference on Reliability, Infocom Technologies and Optimization, 2015.

[18]. S. Kusumadewi, Komputasi dan Sistem cerdas, 2004th ed., vol. 1, GRAHA ILMU, 2004, p. 408.

[19]. Nicolas B, Karayiannis 1997.“ A Methdolog for Constructing Fuzzy

Algoritms for Learning Vector Quantization”, IEEE Transactions On

Neural Networks.

(46)
(47)
(48)
(49)
(50)

2.1 Code Program Metode Zoning Ekstraksi Fitur

package zoning_lvm;

import java.awt.Color;

import java.awt.image.BufferedImage;

import java.awt.image.ColorModel;

import java.awt.image.WritableRaster;

class Zoning {

//jadi (ZONA^2) zona private final int ZONA = 8;

private final int THRESHOLD = 128;

private final double THRESHOLDZONING = 0.5;

int[] getWhiteColor(BufferedImage img) { //deklarasi array untuk return

int[] hasilFinal = new int[ZONA*ZONA];

//copy buffered image

ColorModel cm = img.getColorModel();

boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();

WritableRaster raster = img.copyData(null);

BufferedImage hasil = new BufferedImage(cm, raster, isAlphaPremultiplied, null);

//ambil panjang dan lebar zona

int panjangZona = img.getWidth() / ZONA;

int lebarZona = img.getHeight() / ZONA;

//perulangan untuk hitung freq nilai 1 / 0 int nilai1 = 0;

int indexPanjang = 0;

int indexLebar = 0;

int batasPanjang = indexPanjang + panjangZona;

int batasLebar = indexLebar + lebarZona;

for(int zoning = 0; zoning < ZONA * ZONA; zoning++){

//perulangan per zona

for(int i = indexPanjang; i < batasPanjang; i++){

for(int j = indexLebar; j < batasLebar; j++){

//ambil nilai rgb dari sebuah pixel

Color pixelAsli = new Color(img.getRGB(i, j));

//ambil RGB

int red = (int)(pixelAsli.getRed()*0.299);

int green = (int)(pixelAsli.getGreen()*0.587);

(51)

int blue = (int)(pixelAsli.getBlue()*0.114);

int nilaiRGB = red+green+blue;

if(nilaiRGB == 254){

nilai1++;

} } }

//isi nilai

hasilFinal[zoning] = nilai1;

//kalau dah lebih dari panjang if(batasPanjang >= img.getWidth()){

//reset panjang indexPanjang = 0;

batasPanjang = indexPanjang + panjangZona;

//increase lebar

indexLebar = batasLebar;

batasLebar += lebarZona;

//reset dan set variabel nilai1 = 0;

} else{

//reset dan set variabel nilai1 = 0;

indexPanjang = batasPanjang;

batasPanjang += panjangZona;

} }

return hasilFinal;

}

BufferedImage bitImage(BufferedImage img) { //copy buffered image

ColorModel cm = img.getColorModel();

boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();

WritableRaster raster = img.copyData(null);

BufferedImage hasil = new BufferedImage(cm, raster, isAlphaPremultiplied, null);

for(int i = 0; i < img.getWidth(); i++){

for(int j = 0; j < img.getHeight(); j++){

//ambil nilai rgb dari sebuah pixel

(52)

Color pixelAsli = new Color(img.getRGB(i, j));

int red = (int)(pixelAsli.getRed()*0.299);

int green = (int)(pixelAsli.getGreen()*0.587);

int blue = (int)(pixelAsli.getBlue()*0.114);

int nilaiRGB = red+green+blue;

//thresholdnya 128 dulu ya int nilaiBit;

if(nilaiRGB >= THRESHOLD){

nilaiBit = 255;

} else {

nilaiBit = 0;

}

Color newColor = new Color(nilaiBit, nilaiBit, nilaiBit);

hasil.setRGB(i, j, newColor.getRGB());

} }

return hasil;

}

int[] hitung(BufferedImage imgBit) { //deklarasi array untuk return int[] hasil;

hasil = getWhiteColor(imgBit);

//cari max

int maksimal = cariMax(hasil);

//hitung ulang nilai hasil

for(int i = 0; i < hasil.length; i++){

double flag = (double) hasil[i] / maksimal;

System.out.println("Zona "+(i+1)+" = "+hasil[i]);

//threshold 0.5

if(flag >= THRESHOLDZONING){

hasil[i] = 1;

} else {

hasil[i] = 0;

} }

return hasil;

(53)

}

private int cariMax(int[] hasil) { int max = hasil[0];

for(int i = 1; i < hasil.length; i++){

if(max < hasil[i]){

max = hasil[i];

} }

return max;

}

BufferedImage setZona(BufferedImage img) { //copy buffered image

ColorModel cm = img.getColorModel();

boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();

WritableRaster raster = img.copyData(null);

BufferedImage hasil = new BufferedImage(cm, raster, isAlphaPremultiplied, null);

//ambil panjang dan lebar zona

int panjangZona = img.getWidth() / ZONA;

int lebarZona = img.getHeight() / ZONA;

int indexPanjang = 0;

int indexLebar = 0;

int nilaiBit;

int batasPanjang = indexPanjang + panjangZona;

int batasLebar = indexLebar + lebarZona;

for(int zoning = 0; zoning < ZONA * ZONA; zoning++){

//perulangan per zona

for(int i = indexPanjang; i < batasPanjang; i++){

for(int j = indexLebar; j < batasLebar; j++){

// System.out.println(i + " "+ j);

if(i == batasPanjang - 1 || j == batasLebar - 1){

nilaiBit = 255;

} else{

//ambil nilai rgb dari sebuah pixel

Color pixelAsli = new Color(img.getRGB(i, j));

(54)

int red = (int)(pixelAsli.getRed()*0.299);

int green = (int)(pixelAsli.getGreen()*0.587);

int blue = (int)(pixelAsli.getBlue()*0.114);

int nilaiRGB = red+green+blue;

//thresholdnya 128 dulu ya if(nilaiRGB >= THRESHOLD){

nilaiBit = 255;

} else {

nilaiBit = 0;

} }

Color newColor = new Color(nilaiBit, nilaiBit, nilaiBit);

hasil.setRGB(i, j, newColor.getRGB());

} }

//kalau dah lebih dari panjang if(batasPanjang >= img.getWidth()){

//reset panjang indexPanjang = 0;

batasPanjang = indexPanjang + panjangZona;

//increase lebar

indexLebar = batasLebar;

batasLebar += lebarZona;

} else{

indexPanjang = batasPanjang;

batasPanjang += panjangZona;

} }

return hasil;

}

String getHasilEkstak(int[] hasilZoning) { String hasil = "";

for(int i = 1; i <= hasilZoning.length; i++){

hasil += hasilZoning[i-1]+" ";

(55)

if(i % ZONA == 0 && i != 0){

hasil += "\n";

} }

return hasil;

} }

(56)

2.2

Code Program Zoning Untuk Posisi

package zoning_lvm;

import java.awt.Color;

import java.awt.image.BufferedImage;

import java.awt.image.ColorModel;

import java.awt.image.WritableRaster;

class ZoningPosisi extends Zoning { private final int ZONA = 2;

//constructor public ZoningPosisi(){

}

public String getWhiteColorPosisition(BufferedImage img) { //deklarasi array untuk return

int[] hasilFinal = new int[ZONA];

String hasilFinalString = "";

//copy buffered image

ColorModel cm = img.getColorModel();

boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();

WritableRaster raster = img.copyData(null);

BufferedImage hasil = new BufferedImage(cm, raster, isAlphaPremultiplied, null);

//ambil panjang dan lebar zona

int panjangZona = img.getWidth() / ZONA;

// int lebarZona = img.getHeight() / ZONA;

int lebarZona = img.getHeight();

//perulangan untuk hitung freq nilai 1 / 0 int nilai1 = 0;

int indexPanjang = 0;

int indexLebar = 0;

int batasPanjang = indexPanjang + panjangZona;

int batasLebar = indexLebar + lebarZona;

for(int zoning = 0; zoning < ZONA; zoning++){

//perulangan per zona

(57)

for(int i = indexPanjang; i < batasPanjang; i++){

for(int j = indexLebar; j < batasLebar; j++){

//ambil nilai rgb dari sebuah pixel

Color pixelAsli = new Color(img.getRGB(i, j));

//ambil RGB

int red = (int)(pixelAsli.getRed()*0.299);

int green = (int)(pixelAsli.getGreen()*0.587);

int blue = (int)(pixelAsli.getBlue()*0.114);

int nilaiRGB = red+green+blue;

if(nilaiRGB == 254){

nilai1++;

} } }

//isi nilai

hasilFinal[zoning] = nilai1;

//kalau dah lebih dari panjang if(batasPanjang >= img.getWidth()){

//reset panjang indexPanjang = 0;

batasPanjang = indexPanjang + panjangZona;

//increase lebar

// indexLebar = batasLebar;

// batasLebar += lebarZona;

//reset dan set variabel nilai1 = 0;

} else{

//reset dan set variabel nilai1 = 0;

indexPanjang = batasPanjang;

batasPanjang += panjangZona;

} }

if(hasilFinal[0] > hasilFinal[1]) hasilFinalString = "Parietal Kiri";

(58)

else hasilFinalString = "Parietal Kanan";

return hasilFinalString;

} }

(59)

2.3 Code Program Metode LVQ

package zoning_lvm;

import java.io.FileReader;

import java.io.IOException;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.logging.Level;

import java.util.logging.Logger;

import org.json.simple.JSONArray;

import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;

import org.json.simple.parser.ParseException;

class Lvq {

private double learningRate;

private final double minLearningRate;

private final double maxEpoch;

String FILE_TXT = "tempMatriks.txt";

float euclideanNormal;

float euclideanAbnormal;

public Lvq(){

//inisialisasi

this.minLearningRate = 0.00001;

}

void insert(int[] hasilZoning, String tabel){

try {

ConnectDb connectDb = new ConnectDb();

//delete data yang di db connectDb.delete(tabel);

//insert satu satu

for(int i = 0; i < hasilZoning.length; i++){

(60)

//insert satu per satu

connectDb.insert(i, tabel, hasilZoning[i]);

}

} catch (SQLException ex) {

Logger.getLogger(Lvq.class.getName()).log(Level.SEVERE, null, ex);

} }

void train() {

//class data dengan input dan target

DataInput dataInputNormal = new DataInput();

DataInput dataInputAbnormal = new DataInput();

//set masing masin data input dari db //ambil data input normal

dataInputNormal.setData(this.select("Normal"), 0);

//ambil data input abnormal

dataInputAbnormal.setData(this.select("Abnormal"), 1);

//parsing json

ArrayList<DataInput> bankDataTrain = new ArrayList<>();

//parser json

JSONParser parser = new JSONParser();

try {

Object obj = parser.parse(new FileReader(FILE_TXT));

JSONObject jsonObjectData = (JSONObject) obj;

JSONArray jSONArray = (JSONArray) jsonObjectData.get("data");

//perulangan per data latih

Iterator<JSONObject> iteratorObject = jSONArray.iterator();

while (iteratorObject.hasNext()) { //temp data input dan array

DataInput tempDataInput = new DataInput();

float[] tempArrayInteger;

//object untuk ambil item

JSONObject temp = iteratorObject.next();

//get target

long targetL = (long) temp.get("target");

int target = (int) targetL;

(61)

//get data array

JSONArray arrayTemp = (JSONArray) temp.get("array");

//inisial temp array int

tempArrayInteger = new float[arrayTemp.size()];

for(int i = 0; i < tempArrayInteger.length; i++){

long tempElement = (long) arrayTemp.get(i);

tempArrayInteger[i] = (float) tempElement;

}

//set data ke data input

tempDataInput.setData(tempArrayInteger, target);

//add ke array list

bankDataTrain.add(tempDataInput);

}

int epoch = 1;

// double ln = this.learningRate;

while(this.learningRate > this.minLearningRate && epoch <= this.maxEpoch){

//disini proses per data uji

bankDataTrain.stream().forEach((dataUji) -> { //hitung euclidean ke data normal

dataInputNormal.getData());

this.euclideanAbnormal = this.euclidean(dataUji.getData(), dataInputAbnormal.getData());

//tentukan target seharusnya

int targetSeharusnya = dataUji.getTarget();

//cari target berdasarkan euclidean int targetEuclidean;

if(this.euclideanNormal <= this.euclideanAbnormal){

(62)

targetEuclidean = 0;

} else {

targetEuclidean = 1;

}

//cek apakah target sama untuk menentukan persamaan bobot if(targetSeharusnya == targetEuclidean){

//update dengan + if(targetEuclidean == 0){

//update bobot normal

dataInputNormal.setData(this.updatePositif(dataUji.getData(),dataInputNormal.getData()));

} else{

//update bobot abnormal

dataInputAbnormal.setData(this.updatePositif(dataUji.getData(),dataInputAbnormal.getDat a()));

} } else{

//update dengan - if(targetEuclidean == 0){

//update bobot normal

dataInputNormal.setData(this.updateNegatif(dataUji.getData(),dataInputNormal.getData()))

;

} else{

//update bobot abnormal

dataInputAbnormal.setData(this.updateNegatif(dataUji.getData(),dataInputAbnormal.getDa ta()));

} } });

//tambah epoch epoch++;

(63)

//reduce learning rate

this.learningRate = this.learningRate * (1 - (epoch / this.maxEpoch));

}

// disini harusnya simpan ke db

this.updateDb(dataInputNormal.getData(), "Normal");

this.updateDb(dataInputAbnormal.getData(), "Abnormal");

// System.out.println();

} catch (IOException | ParseException ex) {

System.out.println("error parser json "+ex.toString());

} }

float[] select(String table){

float[] hasil;

try {

//get array

ConnectDb connectDb = new ConnectDb();

hasil = connectDb.selectBobot(table);

return hasil;

} catch (SQLException ex) {

Logger.getLogger(Lvq.class.getName()).log(Level.SEVERE, null, ex);

}

return null;

}

private float euclidean(float[] dataUji, float[] dataDb) { float hasil = dataDb.length;

if(dataDb.length == dataUji.length){

hasil = 0;

for(int i = 0; i < dataDb.length; i++){

hasil += Math.pow((dataUji[i] - dataDb[i]), 2);

}

hasil = (float) Math.sqrt(hasil);

(64)

}

return hasil;

}

private float[] updatePositif(float[] dataUji, float[] dataDb) { float[] hasil = new float[dataDb.length];

for(int i = 0; i < hasil.length; i++){

hasil[i] = (float) (dataDb[i] + learningRate * (dataUji[i] - dataDb[i]));

}

return hasil;

}

private float[] updateNegatif(float[] dataUji, float[] dataDb) { float[] hasil = new float[dataDb.length];

for(int i = 0; i < hasil.length; i++){

hasil[i] = (float) (dataDb[i] - learningRate * (dataUji[i] - dataDb[i]));

}

return hasil;

}

private void updateDb(float[] dataInput, String table) { try {

ConnectDb connectDb = new ConnectDb();

for(int i = 0; i < dataInput.length; i++){

//update satu per satu

connectDb.update(i, dataInput[i], table);

}

} catch (SQLException ex) {

Logger.getLogger(Lvq.class.getName()).log(Level.SEVERE, null, ex);

} }

String recognition(int[] hasilZoning) { //class data dengan input dan target

DataInput dataInputNormal = new DataInput();

DataInput dataInputAbnormal = new DataInput();

(65)

//set masing masin data input dari db //ambil data input normal

dataInputNormal.setData(this.select("Normal"), 0);

//ambil data input abnormal

dataInputAbnormal.setData(this.select("Abnormal"), 1);

//ubah hasil zoning ke float

float[] hasilFloat = new float[hasilZoning.length];

for(int i = 0; i < hasilFloat.length; i++){

hasilFloat[i] = (float) hasilZoning[i];

}

//hitung euclidean ke data normal

this.euclideanNormal = this.euclidean(hasilFloat, dataInputNormal.getData());

this.euclideanAbnormal = this.euclidean(hasilFloat, dataInputAbnormal.getData());

//cari target berdasarkan euclidean

if(this.euclideanNormal <= this.euclideanAbnormal){

return "Normal ("+(Math.abs(this.euclideanNormal - this.euclideanAbnormal)+")");

} else {

return "Suspected ("+(Math.abs(this.euclideanNormal - this.euclideanAbnormal)+")");

} } }

Referensi

Dokumen terkait

Aplikasi ini menjalankan beberapa proses yang dimulai dari pemrosesan citra yaitu deteksi kulit, kemudian dilakukan proses pelatihan klasifikasi dengan algoritma

Penerapan metode LVQ digunakan di dalam mencari bobot yang sesuai, untuk mengelompokkan vektor- vektor input ke dalam kelas-kelas yang telah diinisialisasikan pada

Hasil pengujian jaringan LVQ menunjukkan bahwa keberhasilan kemampuan klasifikasi untuk data uji dengan jenis kelainan bradikardi adalah sebesar 100%, untuk data uji dengan

Pada penelitian (Astuti, 2019) melakukan klasifikasi tumor otak menggunakan metode Data Wavelet Transform (DWT) untuk ekstraksi fitur dan untuk klasifikasi menggunakan

Penelitian ini melakukan pengembangan sistem klasifikasi pola sidik jari menggunakan algoritma Fuzzy Learning Vector Quantization (Fuzzy LVQ) dan Fuzzy Backpropagation, untuk

Lapisan kompetitif akan belajar secara otomatis untuk melakukan klasifikasi terhadap vektor yang diberikan dan akan dikelompokkan kedalam kelas yang sama berdasarkan

Dari hasil percobaan yang dilakukan didapatkan, penelitian ini telah berhasil mengimplementasikan metode MFCC dan LVQ dalam membuat model codebook vector dan

Hasil pengujian jaringan LVQ menunjukkan bahwa keberhasilan kemampuan klasifikasi untuk data uji dengan jenis kelainan bradikardi adalah sebesar 100%, untuk data uji dengan