LAPORAN SKRIPSI
LAPORAN SKRIPSI
Skripsi ini adalah hasil karya saya sendiri, dan semua sumber baik yang dikutip
maupun dirujuk telah saya nyatakan dengan benar.
ii
LEMBAR PENGESAHAN
Telah diuji oleh tim penguji dalam Sidang Skripsi pada Hari Selasa, Tanggal 4,
Bulan Agustus, Tahun 2020 dan dinyatakan LULUS.
Disahkan oleh:
Pembimbing : Iklima Ermis Ismail, S.Kom., M.Kom. ( )
iii
KATA PENGANTAR
Puji Syukur saya panjatkan kepada Tuhan Yang Maha Esa, karena atas berkat dan
rahmatNya, penulis dapat menyelesaikan laporan skripsi ini. Penulisan laporan
skripsi ini dilakukan dalam rangka memenuhi salah satu syarat untuk mencapai
gelar Sarjana Terapan Politeknik. Penulis menyadari bahwa, tanpa bantuan dan
bimbingan dari berbagai pihak, dari masa perkuliahan sampai pada penyusunan
Laporan Skripsi, sangatlah sulit bagi penulis untuk menyelesaikan Laporan Skripsi.
Oleh karena itu, penulis mengucapkan terima kasih kepada:
a. Tuhan Yang Maha Esa, yang telah memberikan penulis kesehatan dan akal sehat
sehingga laporan ini dapat terselesaikan dengan baik.
b. Ibu Iklima Ermis Ismail, S.Kom., M.Kom. selaku dosen pembimbing yang telah
menyediakan waktu, tenaga, dan pikiran untuk mengarahkan penulis dalam
penyusunan Laporan Skripsi ini;
c. Orang tua dan keluarga penulis yang telah memberikan bantuan dukungan moral
dan material.
d. Graceilla Flower Alfa Andia yang telah banyak memberikan bantuan dukungan
secara moral.
e. Vidy Ayuningtyas yang telah banyak membantu dalam menyelesaikan skripsi
ini.
f. Sahabat yang telah banyak membantu penulis dalam menyelesaikan laporan
skripsi ini.
Akhir kata, penulis berharap Tuhan Yang Maha Esa berkenan membalas segala
kebaikan semua pihak yang telah membantu. Semoga Laporan Skripsi ini
membawa manfaat bagi pengembangan ilmu.
iv
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI
UNTUK KEPENTINGAN AKADEMIS
Sebagai sivitas akademik Politeknik Negeri Jakarta, saya yang bertanda tangan
di bawah ini:
NIM : 4615010014
beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti
Noneksklusif ini Politeknik Negeri Jakarta berhak menyimpan, mengalih
media/format-kan, mengelola dalam bentuk pangkalan data (database), merawat,
dan memublikasikan skripsi saya selama tetap mencantumkan nama saya sebagai
penulis/pencipta dan sebagai pemilik Hak Cipta.
Yang menyatakan
v
Klasifikasi Kanker Kulit Melanoma Menggunakan Support Vector System (SVM)
Abstrak
Penyakit kanker adalah salah satu penyakit utama yang dapat menyebabkan kematian di
dunia. Kanker kulit melanoma merupakan jenis kanker kulit yang paling mematikan.
Melanoma dimulai di sel-sel kulit dan bisa menyebar ke organ lain dalam tubuh melalui
darah. Beberapa penelitian yang telah ada menunjukkan bahwa diagnosis dini melanoma
lebih dari 90% dapat disembuhkan dan jika terlambat mendiagnosis melanoma
menunjukkan kurang dari 50% dapat disembuhkan. Apabila melanoma tidak terdiagnosis
sejak tahap awal, maka akan menyebabkan kematian pada penderita (Wahaninggar & S,
2016). Karena itu pada penelitian ini telah dilakukan klasifikasi citra kanker kulit
melanoma dengan menggunakan metode Support Vector Machine (SVM). Adapun tahapan
dari proses klasifikasi citra kanker kulit melanoma pada penelitian ini meliputi proses
prapemrosesan, ekstraksi fitur dengan Histogram Of Oriented Gradients (HOG) serta
klasifikasi citra dengan SVM. Dengan menggunakan dataset 600 citra melanoma dan 600
citra bukan melanoma. Hasil pengujian menunjukkan bahwa sistem dapat mengenali citra
melanoma dengan tingkat akurasi sebesar 88%.
Kata Kunci: kanker kulit, melanoma, Histogram Of Oriented Gradients (HOG), Support
Vector Machine (SVM)
vi
DAFTAR ISI
vii
2.6.6 Deployment ..................................................................................... 17
2.7. Python ........................................................................................................ 17
2.8. Django ........................................................................................................ 18
2.9. Unified Modelling Language (UML) ......................................................... 18
2.10. Activity Diagram .................................................................................... 20
2.11. Pemrograman Website ........................................................................... 21
2.12. Waterfall Model ..................................................................................... 21
BAB III ................................................................................................................. 23
3.1 Perancangan Program Aplikasi .................................................................. 23
3.1.1 Deskripsi Program Aplikasi ............................................................ 23
3.1.2 Cara Kerja Program Aplikasi .......................................................... 23
3.1.3 Analisis Kebutuhan ......................................................................... 25
3.1.4 Rancangan Program Aplikasi .......................................................... 26
3.2 Realisasi Program Aplikasi ........................................................................ 28
3.2.1 Desain Sistem .................................................................................. 28
3.2.2 Implementasi Sistem ....................................................................... 28
BAB IV ................................................................................................................. 41
4.1 Pengujian Sistem ........................................................................................ 41
4.2 Deskripsi Pengujian ................................................................................... 41
4.3 Prosedur Pengujian .................................................................................... 41
4.4 Data Hasil Pengujian .................................................................................. 42
4.5 Analisis Data / Evaluasi Pengujian ............................................................ 52
BAB V................................................................................................................... 54
5.1 Simpulan .................................................................................................... 54
5.2 Saran ........................................................................................................... 54
DAFTAR PUSTAKA .......................................................................................... 55
viii
DAFTAR TABEL
ix
DAFTAR GAMBAR
x
Gambar 3.26 Code Fungsi Prediksi ...................................................................... 40
Gambar 3.27 Code Pemanggilan Hasil Pada Front end ....................................... 40
xi
BAB I
PENDAHULUAN
Penyakit kanker adalah salah satu penyakit utama yang dapat menyebabkan
kematian di dunia. Jumlah penderita dan meninggal karena kanker meningkat tajam
dalam enam tahun terakhir. Data tersebut dikeluarkan oleh WHO. Menurut World
Health Organization, pada 2018 ini sekitar 9,6 juta orang meninggal dunia karena
kanker (Tuwo, 2018). Di Indonesia, kanker kulit menempati urutan ketiga setelah
kanker rahim dan kanker payudara. Kanker kulit dijumpai 5,9 – 7,8 % dari semua
jenis kanker pertahun. Kanker kulit melanoma merupakan jenis kanker kulit yang
paling mematikan. Melanoma dimulai di sel-sel kulit dan bisa menyebar ke organ
lain dalam tubuh melalui darah. Kemunculan tahi lalat baru atau perubahan pada
tahi lalat yang sudah ada merupakan pertanda umum gejala melanoma (Wilvestra,
Lestari, & Asri, 2018).
Meskipun melanoma hanya mencakup 10% dari semua kasus kanker kulit yang
ditemui, penyakit ini merupakan bentuk kanker kulit yang paling berbahaya dan
bertanggung jawab atas sebagian besar kematian akibat kanker kulit. Sel melanoma
bisa berkembang cepat dan menyebar ke bagian tubuh lainnya seperti paru-paru,
hati atau otak, bahkan pada stadium awal sekalipun (Putri, et al., 2018). Penyebab
utama melanoma karena kulit sering terkena sinar ultraviolet. Umumnya dokter
menggunakan metode biopsi untuk mendiagnosis melanoma. Metode biopsi adalah
pengambilan potongan kecil jaringan tubuh untuk sampel diagnosis. Dengan cara
memotong atau menggores sepotong kecil jaringan atau dengan menggunakan
jarum suntik untuk mengambil sampel, kemudian sampel diuji oleh beberapa dokter
terlatih untuk didiagnosis. Proses biopsi ini menyakitkan dan membutuhkan waktu
yang cukup lama.
Beberapa penelitian yang telah ada menunjukkan bahwa diagnosis dini melanoma
lebih dari 90% dapat disembuhkan dan jika terlambat mendiagnosis melanoma
menunjukkan kurang dari 50% dapat disembuhkan.
1
2
Apabila melanoma tidak terdiagnosis sejak tahap awal, maka akan menyebabkan
kematian pada penderita. Hal ini menyebabkan deteksi kanker kulit dari tahap awal
merupakan hal yang tak terelakkan (Wahaninggar & S, 2016).
Penelitian sejenis yang dilakukan oleh Savera, dkk (2020) mengenai deteksi kanker
kulit dengan menggunakan metode K-NN dan Convolutional Neural Network
(CNN), dalam penelitian ini CNN memiliki akurasi 76% lebih tinggi dibanding K-
NN 75%. Selain itu, ada penelitian sejenis lain yang dilakukan oleh Wahaninggar,
dkk (2016) mengenai klasifikasi kanker kulit melanoma menggunakan metode
Support Vector Machine (SVM), dalam penelitian ini SVM memiliki akurasi yang
cukup tinggi sebesar 85%.
Tujuan dari pembuatan sistem ini adalah mengolah citra digital menggunakan
metode Support Vector Machine (SVM).
Manfaat yang dapat diperoleh dari pembuatan website melanoma adalah untuk
membantu mempermudah klasifikasi penyakit kulit khususnya melanoma atau
bukan.
Tahap ini dilakukan untuk memahami masalah yang terjadi, yaitu dengan cara
melakukan observasi melalui penelitian – penelitian yang terkait tentang kanker
kulit dan teknologinya. Sehingga mencetuskan permasalahan berdasarkan
penelitian terbaru maupun pengamatan keadaan sekarang.
Adapun pengumpulan data yang digunakan dalam penelitian ini adalah sebagai
berikut:
1. Studi Literatur
Studi literatur dapat dilakukan dengan mencari sumber pustaka yang relevan
dengan masalah yang di angkat baik melalui buku, jurnal, maupun teori lainnya.
Pada penelitian ini, kasus yang akan diangkat mengenai klasifikasi, metode SVM,
dan pemograman Python.
2. Analisis Permasalahan
Pada tahap ini dilakukan analisis terhadap studi literatur yang sebelumnya telah
dikumpulkan untuk memperoleh pemahaman yaitu bagaimana menerapkan
algoritma SVM dalam menyelesaikan masalah klasifikasi.
4
1.5.4 Implementasi
Tahap ini merupakan proses pengembangan sistem klasifikasi yang meliputi tahap
pencarian data – data terkait. Selanjutnya data di seleksi sebelum melanjutkan ke
tahap training. Proses training dilakukan untuk mendapatkan model dengan
tahapan preprocessing, ekstraksi fitur, serta implementasi algoritma SVM ke dalam
sistem klasifikasi. Sistem yang dibangun berupa web-based application dengan
bahasa pemograman Python dan framework Django.
1.5.5 Pengujian
Pada tahap ini akan dilakukan pengujian terhadap sistem yang telah dikembangkan
sebelumya. Hal ini bertujuan untuk mengevaluasi apakah sistem dapat
mengklasifikasikan dengan benar. Selain itu, juga memastikan apakah sistem sesuai
dengan kebutuhan yang telah didefinisikan sebelumnya.
1.5.6 Kesimpulan
5
6
disebut cell. Tiap cell disusun dari sebuah histogram dari sebuah gradien.
Kombinasi dari histogram ini dijadikan sebagai deskriptor yang mewakili sebuah
obyek. Diagram alir algoritma HOG dapat dilihat pada Gambar 1.
Dari Gambar 2.1, tahap awal dari metode HOG adalah menghitung nilai gradien
citra dihitung menggunakan.
𝐼𝑥 = 𝐼 ∗ 𝐷𝑥 , 𝐼𝑦 = 𝐼 ∗ 𝐷𝑦
[−1]
𝐷𝑥 adalah mask [-1 0 1], sedangkan 𝐷𝑦 adalah mask [0 ]
[1]
𝐼𝑥
θ = arctan( )
𝐼𝑦
9
Nilai normalisasi fitur blok didapat dari rumus dibawah ini. Fitur blok dinormalisasi
untuk mengurangi efek perubahan kecerahan obyek pada satu blok. Variabel b
merupakan nilai blok fitur dan variabel e merupakan bilangan positif yang bernilai
kecil untuk mencegah pembagian dengan 0.
𝑏
b=
√𝑏 2 + 𝑒
Nilai normalisasi tiap blok digabungkan menjadi satu vektor menjadi fitur vektor
HOG. Kemudian fitur vektor HOG dilakukan normalisasi. Normalisasi dilakukan
melalui rumus dibawah ini. Variabel h merupakan nilai fitur HOG dan variabel e
merupakan bilangan positif yang bernilai kecil untuk mencegah pembagian dengan
0 (Randa, et al., 2016).
ℎ
h=
√||ℎ||2 + 𝑒
Dalam kasus real, biasanya data yang ada bersifat non linearly separable data.
Sehingga perlu dilakukan perubahan pada metode SVM yag biasa. Metode ini
mentransformasikan data ke dalam dimensi ruang fitur (feature space) sehingga
dapat diipisahkan secara linear pada feature space. Feature space dalam prakteknya
biasanya berdimensi lebih tinggi dari vektor input (input space). Hal ini
mengakibatkan komputasi pada feature space mungkin akan sangat besar, karena
ada kemungkinan feature space dapat memiliki jumlah fitur yang tidak terhingga.
Selain itu sulit untuk mengetahui fungsi tranformasi yang tepat. Untuk mengatasi
masalah ini, pada SVM digunakan “kernel trick”. Untuk menyelesaikan masalah
pada non linearly separable data harus melakukan modifikasi pada beberapa fungsi
yang ada.
Pada mulanya teknik machine learning dikembangkan dengan asumsi kelinearan.
Sehingga algoritma yang dihasilkan terbatas untuk kasus-kasus yang linear saja.
Akan tetapi untuk menghadapi kasus yang tidak linear maka dapat menggunakan
bantuan berbagai macam fungsi kernel. Kernel trick memberikan berbagai
kemudahan, karena dalam proses pembelajaran SVM, untuk menentukan support
vector, maka cukup dengan mengetahui fungsi kernel yang dipakai, dan tidak perlu
mengetahui wujud dari fungsi non-linear.
Ada banyak jenis kernel yang biasa digunakan dalam proses SVM. Pada tugas akhir
ini metode yang telah diteliti untuk memetakan dari input space ke feature space
ada tiga yaitu kernel polynomial, kernel linear, dan kernel gaussian/rbf. Dari ketiga
kernel tersebut dicari kernel mana yang memberikan hasil lebih akurat.
Fungsi kernel polynomial memiliki bentuk persamaan :
𝐾(𝑥𝑖 , 𝑥𝑗 ) = ((𝑥𝑖 , 𝑥𝑗𝑇 ) + 1)𝑛
Fungsi kernel linear memiliki bentuk persamaan :
𝐾(𝑥𝑖 , 𝑥𝑗 ) = 𝑥𝑖 , 𝑥𝑗𝑇
Fungsi kernel rbf memiliki bentuk persamaan :
||𝑥𝑖 − 𝑥𝑗 ||2
𝐾(𝑥𝑖 , 𝑥𝑗 ) = 𝑒𝑥𝑝
2𝜎 2
𝑖, 𝑗 = 1,2, … . 𝑙 dengan ∶
𝐾 = kernel
𝑥𝑖 = data inputan (𝑡𝑟𝑎𝑖𝑛𝑖𝑛𝑔)
12
Tahap ini adalah akan membahas tentang tujuan proyek dan kebutuhan secara detail
dalam unit penelitian secara keseluruhan dan diubah menjadi formula
permasalahan.
Tahap ini adalah melakukan pengumpulan data awal dan melakukan pembenahan
pada data kurang relevan, missing value, dan redudansi. Sebuah data terbilang
missing value jika didapati atribut pada dataset kosong, dan data terdapat redudansi
apabila dalam satu dataset lebih dari satu record yang berisi nilai yang sama.
a. Pengumpulan Data
Tahap ini adalah melakukan pengumpulan data sebanyak 1.200 data dimana data
yang dikumpulkan adalah berupa gambar dari website kaggle.com. Dalam
pembuatan aplikasi Melanoma dilakukan preprocessing terlebih dahulu dan
menggunakan metode Support Vector Machine untuk di klasifikasikan sesuai
dengan kategori masing-masing.
Pada langkah ini dilakukan pelabelan data. Data yang digunakan dalam penelitian
ini data berupa gambar yang telah dikumpulkan sebelumnya. Pelabelan data
dilakukan dengan beberapa tahap, yaitu:
a. Listing
Listing adalah proses membuat list dari objek iterable (string, tuple, dan
sebagainya). Listing juga untuk mengembalikan list berisi anggota – anggota dari
objek yang menjadi argumennya. Jika argumennya kosong, maka fungsi ini akan
mengembalikan list kosong. Jika argumennya adalah dictionary, maka yang
digunakan adalah key-key dari dictionary.
b. Cleaning
Cleaning adalah proses dalam menghilangkan hal-hal yang tidak diperlukan pada
data yang diolah. Dalam hal ini proses cleaning dilakukan untuk menghilangkan
format file seperti jpeg ataupun jpg sehingga menjadi nama file raw saja.
15
2.6.4 Modelling
a. 𝐸𝑖 = Σ 𝑎𝑗 𝐷𝑖𝑗 𝑖𝑗 (2)
16
2.6.5 Evaluation
Pada tahap ini dilakukan pengukuran terhadap model yang telah di buat pada tahap
modelling sebelumnya. Penelitian ini akan menggunakan accuracy, precision dan
recall.
a. Confusion Matrix
Confusing matrix adalah suatu metode yang gunakan untuk perhitungan akurasi
pada data mining. Confusing matrix digambarkan dengan tabel yang menyatakan
jumlah data uji yang benar diklasifikasikan dan jumlah data uji yang salah di
klasifisikan.
Tabel 2. 1 Confusion Matriks
Kelas Prediksi
Kelas 1 0
Kelas
1 TP FN
Aktual
0 FN TN
17
Keterangan :
True Posstive (TP) = Jumlah dokumen dari kelas 1 yang benar dan diklasifikan
sebagai kelas 1.
True Negative (TN) = Jumlah dokumen dari kelas 0 yang benar diklasifikasikan
sebagai kelas 0.
False Posstive (FP) = Jumlah dokumen dari kelas 0 yang salah diklasifikasikan
sebagai kelas 1.
False Negative (FN) = Jumlah dokumen dari kelas 1 yang benar diklasifikasikan
sebagai kelas 0.
𝑇𝑃+𝑇𝑁
Akurasi = 𝑥 100 ……………………………... (2.3)
𝑇𝑃+𝐹𝑁+𝐹𝑃+𝑇𝑁
𝑇𝑃
Presisi = 𝑥 100 ……..…………………………….…... (2.4)
𝑇𝑃+𝐹𝑃
𝑇𝑃
Recall = 𝑥 100 ………………….……………………... (2.5)
𝑇𝑃+𝐹𝑁
2.6.6 Deployment
Setelah tahap evaluasi secara detail telah dilakukan, maka untuk tahap selanjutnya
adalah melakukan pengimplementasian modelling yang di hasilkan ke sistem.
2.7. Python
Python merupakan bahasa pemrograman yang berorientasi obyek dinamis, dapat
digunakan untuk bermacam macam pengembangan perangkat lunak. Python
menyediakan dukungan yang kuat untuk integrasi dengan bahasa pemrograman lain
dan alat-alat bantu lainnya. Python hadir dengan pustaka-pustaka standar yang
dapat diperluas serta dapat dipelajari hanya dalam beberapa hari. Bahasa
pemrograman yang interpretatif multiguna dengan filosofi perancangan yang
berfokus pada tingkat keterbacaan kode. Python diklaim sebagai bahasa yang
menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang sangat jelas,
18
2.8. Django
Django adalah sebuah web framework yang menggunakan bahasa pemrograman
Python yang mendukung pembuatan website dengan konsep rapid development
(Django Software Foundation, 2017). Wiki-Python menyatakan bahwa framework
yang sekarang telah berada di versi 2.1 ini sebagai web framework paling popular
dikalangan high-level frameworks. Karena menggunakan bahasa pemrograman
Python yang telah memiliki banyak library siap pakai, mengembangkan sistem
dengan Django berarti dapat menggunakan library tersebut sesuai dengan keperluan
pengembangan. Django bertujuan untuk memudahkan pengembangan situs web
dan basis data yang kompleks (Django Software Foundation, 2017). Salah satu
keunggulan django adalah, framework ini telah merepresentasikan ORM (Object
Relational Mapper) sehingga tidak perlu menyesuaikan query jika terjadi
perubahan database yang digunakan. Berikut ini adalah beberapa keuntungan
menggunakan Django (Rahimah, et al., 2019):
4. Template System.
5. Cache system.
6. Internationalization.
Muslihudin (2016) menyebutkan bahwa diagram use case memiliki sifat statis.
Diagram ini terdiri dari aktor beserta use case-nya. Diagram ini berfungsi untuk
menunjukkan apa yang dilakukan oleh sistem yang sesuai dengan kebutuhan User.
19
Dengan menggunakan use case ini maka Pengembang tidak mengalami kesulitan
dalam menentukan batasan dari hak akses serta fitur yang dikembangkan. Simbol
dan deskripsi use case disajikan pada Tabel dibawah ini.
No Simbol Deskripsi
No Simbol Deskripsi
Unified Modeling Language (UML) dan User Interface (UI) atau biasa disebut
antarmuka pengguna.
c. Implementasi
Pada tahapan implementasi, hasil yang didapat dari tahap design sistem akan di
kembangkan dalam penulisan script berdasarkan hasil analisa yang telah
dilakukan pada tahapan pertama.
d. Pengujian
Setelah melewati tahapan implementasi, Langkah selanjutnya adalah
melakukan tahapan pengujian. Pada tahapan ini bisa sistem akan diuji
fungsionalitasnya dengan menggunkaan teknik pengujian black box. Tujuan
dari tahapan pengujian adalah untuk mencari bug pada aplikasi.
e. Pemeliharaan
Pada tahap ini dilakukan pemeliharaan terhadap sebuah sistem dengan
melakukan beberapa proses modifikasi pada aplikasi maka dapat menyesuaikan
kembali dengan kebutuhan konsumen dan memperbaiki kekurangan pada masa
pengembangan.
BAB III
PERENCANAAN DAN REALISASI
23
24
Gambar 3.1 merupakan tahapan atau proses untuk bisa mengetahui hasil
pengklasifikasian dari sebuah citra apakah termasuk dalam kanker kulit melanoma
atau bukan dimulai dengan user menginputkan sebuah citra ke dalam website
melanoma, kemudian citra akan diklasifikasikan oleh sistem dengan menggunakan
metode SVM, setelah itu output dari proses pengklasifikasian tersebut akan
menampilkan hasil identifikasi dari citra yang telah diinputkan sebelumnya apakah
merupakan kanker kulit melanoma atau bukan.
25
b. Kebutuhan Non-Fungsional
Kebutuhan non-Fungsional terdiri dari kebutuhan perangkat keras (Hardware) dan
perangkat lunak (Software). Berikut ini kebutuhan minumum untuk implementasi
sistem :
1. Kebutuhan Minimum Perangkat Keras
Perangkat minimum yang dibutuhkan untuk dapat menjalankan sistem
perangkat komputer atau laptop dengan detail spesifikasi sebagai
berikut:
a. Prosesor Intel(R) Core(TM) i3-5005U CPU @ 2.0GHz
b. Memori RAM 8 GB
2. Kebutuhan Perangkat Lunak
a. Sistem Operasi Microsoft Windows 7
26
b. Web Browser
c. Python
d. Sublime
Gambar 3.3 merupakan use case diagram dari aplikasi melanoma dimana pengguna
dapat melakukan penginputan citra yang di punya ke dalam website dan dapat
melihat hasil dari klasifikasi citra yang telah dilakukan berupa hasil identifikasi
apakah citra merupakan kanker kulit melanoma atau bukan. Use Case Diagram
pada sistem rekomendasi ini hanya memiliki satu aktor. Aktor pada diagram ini
ditulis sebagai “pengguna” karena pengguna pada sistem ini bisa siapa saja
khususnya yang mempunyai tahilalat atau yang mempunyai masalah penyakit kulit.
27
2. Activity Diagram
Pada gambar 3.4, pertama user menekan button upload gambar yang terdapat pada
website, kemudian user memilih gambar yang diinginkan untuk di upload. Sistem
menampilkan gambar yang telah dipilih oleh user. Lalu user menekan button
testing untuk menginputkan gambar yang dipilih sebelumnya. Gambar yang telah
diinputkan di proses untuk diklasifikasi oleh sistem. Setelah itu, gambar yang telah
diklasifikasikan ditampilkan hasil identifikasinya yaitu gambar merupakan kanker
kulit melanoma atau bukan.
28
Gambar 3.5 merupakan mockup untuk halaman utama dari website melanoma. Di
dalam halaman utama berisikan deskripsi singkat tentang kanker kulit melanoma,
kemudian terdapat dua button yaitu upload gambar dan tetsing untuk memilih dan
mengolah gambar. Terdapat juga kolom gambar untuk tempat menampilkan
gambar yang dipilih. Lalu terdapat sebuah kolom yaitu kolom hasil identifikasi.
2. Data Understanding
Pada tahap data understanding yaitu memahami data yang diperlukan selama
proses pembuatan sistem. Dataset yang digunakan pada penelitian ini berasal dari
dataset public yang sering digunakan berupa sebuah gambar. Dataset melanoma
dapat diunduh melalui situs https://www.kaggle.com/drscarlat/melanoma. Dataset
yang didapatkan sebanyak 10.682 data berupa gambar, dimana masing – masing
kelas (melanoma dan non melanoma) berjumlah 5.341 data. Pada penelitian ini data
yang dibutuhkan hanya sebanyak 1.200 data gambar, jumlah data per masing –
masing kelas (melanoma dan non melanoma) sebanyak 600 data. Kemudian
mengindentifikasi resolusi gambar yang digunakan beserta prosesnya seperti
melakukan resize dan flattening pada dataset karena ukuran gambar masing –
masing kelas (melanoma dan non melanoma) memiliki ukuran yang berbeda.
3. Data Preparation
Data preparation meliputi pelabelan data. Pelabelan data dilakukan dengan
beberapa tahap. Tahap pertama adalah mengumpulkan semua gambar dengan
kedua kategori yang terdapat pada folder data train. Keseluruhan gambar tersebut
memiliki nama berbeda dengan unique code sehingga kategori melanoma ataupun
non melanoma dapat dibedakan. Setelah itu, dilakukan listing seluruh gambar yang
ada pada folder menggunakan library python yang bernama os dan pandas. List
tersebut ditampung dalam sebuah variabel. Gambar 3.6 menyatakan fungsi tersebut.
Setelah dilakukan listing, maka dilakukan pencarian file dengan unique name. File
dengan nama “ISIC” menandakan bahwa gambar tersebut bukan melanoma. File
30
Setelah itu, nama file tersebut di cleaning sehingga menjadi nama file raw saja
tanpa ada format file seperti jpeg ataupun jpg. Selain dilakukan proses cleaning,
dilakukan proses penambahan kolom skin_type yang berfungsi untuk memberikan
label pada gambar. Label dilakukan menggunakan angka. Angka 0 menyatakan
bahwa gambar tersebut bukan melanoma dan angka 1 menyatakan bahwa gambar
tersebut adalah melanoma. Gambar 3.8 menyatakan proses penambahan kolom dan
cleaning data nama file gambar.
Gambar 3.8 Code Proses Penambahan Kolom dan Cleaning Data Nama File Gambar
Hasil data yang sudah di cleaning menyatakan bahwa data yang diinginkan untuk
pemrosesan sudah sesuai dan telah selesai dilakukan labeling data. Setelah itu,
dilakukan penyimpanan dataset dalam bentuk csv seperti pada Gambar 3.10.
4. Modelling
Proses pembuatan model bermula dari melakukan load dataset yang sebelumnya
telah dibuat dengan cara membaca file csv. Setelah di load, dibuat fungsi untuk load
gambar dengan format jpg maupun format jpeg karena dataset yang dimiliki hanya
memiliki dua format, yaitu jpg dan jpeg. Data di resize sehingga memiliki ukuran
yang sama dengan matriks yang sama. Ukuran setelah di resize adalah 224 x 224.
Setelah di resize, gambar dirubah menjadi bentuk array dengan menggunakan
library numpy. Untuk memastikan bahwa gambar telah berubah menjadi bentuk
array, maka gambar tersebut di print dalam bentuk grafik. Gambar 3.11
menyatakan fungsi tersebut.
32
Setelah dilakukan proses resize gambar, maka dilakukan proses perubahan gambar
ke dalam bentuk grayscale agar bentuk matriks menjadi seragam. Selain itu,
dilakukan juga print ke console jupyter sehingga matriks gambar dapat diketahui.
Gambar 3.12 menggambarkan fungsi berikut. Gambar 3.13 menyatakan gambar
yang sudah di grayscale.
Proses HOG yang dilakukan telah benar karena gambar benar-benar tergenerate
berdasarkan dua warna, yaitu hitam dan putih. Setelah itu, dilakukan flattening
gambar dengan menggunakan library opencv dan scipy. Fungsi library scipy adalah
untuk melakukan ekstraksi fitur menggunakan scipy signal. Selain itu, dilakukan
pencarian spline edge filter. Setelah selesai, dilakukan proses flattening gambar
dengan proses sebagai berikut.
Setelah proses flattening data selesai dibuat, dibuat fungsi pembentukan matriks
fitur. Setelah dibentuk matriks fitur, dilakukan penggabungan antara matriks-
matriks fitur tersebut. Fungsi ini memerlukan argumen yang berupa DataFrame
(table dengan menggunakan library pandas) yang berisi gambar. Gambar 3.16
menyatakan fungsi pembentukan matriks fitur tersebut.
Setelah itu, dilakukan split data menjadi train dan test data. Presetase test data yang
digunakan adalah 10% dari total keseluruhan data. Berikut adalah sintaks yang
digunakan untuk training data. Setelah itu, dilakukan proses data train sehingga
bisa fit dengan modelnya. Gambar 3.19 adalah proses training data.
36
Selanjutnya, digunakan kernel SVM yang berjenis RBF (Radial Basis Function)
dikarenakan akurasi kernel RBF dan Gaussian lebih baik dibandingkan kernel
linear maupun kernel polynomial. Setelah itu, dilakukan save model atau dump
model untuk selanjutnya digunakan pada website. Gambar 3.20 menggambarkan
proses tersebut.
5. Evaluation
Untuk mengukur akurasi dari sebuah model maka penulis melakukan evaluasi
menggunakan confusion matrix dengan melihat akurasi recall dan presisi dari
model yang telah dibuat sebelumya.
37
Sistem
Hasil Uji
Non-Melanoma Melanoma
Non-
49 11
Melanoma
Manual
Melanoma 4 56
Proses gambar setelah di upload adalah menyimpan gambar ke dalam sistem sesuai
nama gambar yang di upload. Setelah disimpan, file name tersebut dirubah menjadi
sebuah url yang selanjutnya akan dilakukan prediksi. Setelah dilakukan prediksi,
maka hasil akan dikembalikan. Gambar 3.23 menjalankan proses get gambar
hingga mengembalikan hasil prediksi.
Proses prediksi pada backend engine sedikit berbeda dengan proses pembuatan
model. Proses ini terbagi menjadi 3 fungsi, yaitu merubah gambar menjadi bentuk
array, membentuk fitur, dan melakukan prediksi gambar. Gambar 3.24
menggambarkan fungsi untuk mengubah gambar menjadi bentuk array.
Gambar 3.25 menggambarkan fungsi untuk flattening gambar. Fungsi ini sama
dengan proses pembuatan model.
40
Gambar 3.27 melakukan proses pemanggilan hasil pada front end dengan code
sebagai berikut.
41
42
Sistem
Hasil Uji
Non-Melanoma Melanoma
Non-
49 11
Melanoma
Manual
Melanoma 4 56
Untuk mendapatkan nilai presisi, recall dan akurasi maka dilakukan perhitungan
dengan rumus masing – masing dan dengan berdasarkan tabel yang sudah ada.
Perhitungan Presisi
49
𝑥 100% = 81,67%
49 + 11
Perhitungan Recall
49
𝑥 100% = 92,45%
49 + 4
Perhitungan Akurasi
49 + 56
𝑥 100% = 87,5%
49 + 11 + 4 + 56
Berdasarkan hasil pengujian yang dilakukan dengan pembagian data 90:10 dan
didapatkan tingkat akurasi yang dimiliki oleh algoritma support vector machine
dalam melakukan klasifikasi adalah presisi mendapatkan nilai 81,67%, recall
mendapatkan nilai 92,45%, dan akurasi mendapatkan nilai 87,5%.
Sistem
Hasil Uji
Non-Melanoma Melanoma
Non-
97 21
Melanoma
Manual
Melanoma 13 109
Untuk mendapatkan nilai presisi, recall dan akurasi maka dilakukan perhitungan
dengan rumus masing – masing dan dengan berdasarkan tabel yang sudah ada.
Perhitungan Presisi
97
𝑥 100% = 82%
97 + 21
Perhitungan Recall
97
𝑥 100% = 88%
97 + 13
Perhitungan Akurasi
97 + 109
𝑥 100% = 85,83%
97 + 21 + 13 + 109
Berdasarkan hasil pengujian yang dilakukan dengan pembagian data 80:20 dan
didapatkan tingkat akurasi yang dimiliki oleh algoritma support vector machine
dalam melakukan klasifikasi adalah presisi mendapatkan nilai 82%, recall
mendapatkan nilai 88%, dan akurasi mendapatkan nilai 85,83%.
Sistem
Hasil Uji
Non-Melanoma Melanoma
Non-
151 26
Melanoma
Manual
Melanoma 25 158
Perhitungan Presisi
151
𝑥 100% = 85%
151 + 26
Perhitungan Recall
151
𝑥 100% = 85,79%
151 + 25
Perhitungan Akurasi
151 + 158
𝑥 100% = 85,83%
151 + 26 + 25 + 158
Berdasarkan hasil pengujian yang dilakukan dengan pembagian data 70:30 dan
didapatkan tingkat akurasi yang dimiliki oleh algoritma support vector machine
dalam melakukan klasifikasi adalah presisi mendapatkan nilai 85%, recall
mendapatkan nilai 85,79%, dan akurasi mendapatkan nilai 85,83%.
Sistem
Hasil Uji
Non-Melanoma Melanoma
Non-
211 33
Melanoma
Manual
Melanoma 34 202
Perhitungan Presisi
211
𝑥 100% = 86,48%
211 + 33
Perhitungan Recall
211
𝑥 100% = 86%
211 + 34
Perhitungan Akurasi
211 + 202
𝑥 100% = 86%
211 + 33 + 34 + 202
Berdasarkan hasil pengujian yang dilakukan dengan pembagian data 60:40 dan
didapatkan tingkat akurasi yang dimiliki oleh algoritma support vector machine
dalam melakukan klasifikasi adalah presisi mendapatkan nilai 86,48%, recall
mendapatkan nilai 86%, dan akurasi mendapatkan nilai 86%.
Sistem
Hasil Uji
Non-Melanoma Melanoma
Non-
254 47
Melanoma
Manual
Melanoma 50 249
Perhitungan Presisi
254
𝑥 100% = 84,38%
254 + 47
Perhitungan Recall
254
𝑥 100% = 83,55%
254 + 50
Perhitungan Akurasi
254 + 249
𝑥 100% = 83,83%
254 + 47 + 50 + 249
Berdasarkan hasil pengujian yang dilakukan dengan pembagian data 50:50 dan
didapatkan tingkat akurasi yang dimiliki oleh algoritma support vector machine
dalam melakukan klasifikasi adalah presisi mendapatkan nilai 84,38%, recall
mendapatkan nilai 83,55%, dan akurasi mendapatkan nilai 83,83%.
Berdasarkan hasil percobaan split data yang dilakukan mulai dari 90:10 sampai
50:50 menunjukan bahwa split data 90:10 adalah performance yg tebaik dengan
mendapatkan hasil presisi sebesar 81,67%, recall sebesar 92,45%, dan akurasi
sebesar 87,5%.
Tabel 11 Hasil Pengujian Menggunakan Data Testing Yang Berasal Dari Kelas Melanoma
Selain dilakukan pengujian pada data test yang berasal dari kelas melanoma,
dilakukan juga pengujian menggunakan data test yang berasal dari kelas non
melanoma. Jumlah gambar yang digunakan sama, yaitu 10 gambar. Tabel 12
menyatakan hasil pengujian yang berasal dari kelas non melanoma.
Tabel 12 Hasil Pengujian Menggunakan Data Testing Yang Berasal Dari Kelas Non Melanoma
22
𝑃𝑟𝑒𝑠𝑒𝑛𝑡𝑎𝑠𝑒 𝐾𝑒𝑏𝑒𝑟ℎ𝑎𝑠𝑖𝑙𝑎𝑛 𝑆𝑖𝑠𝑡𝑒𝑚 = 𝑥 100% = 88%
25
Presentase keberhasilan tersebut diambil menggunakan test case melanoma yang
warna kulitnya mendekati hitam sesuai yang dijabarkan pada batasan masalah.
Selain itu, unit testing tidak memiliki skenario yang bermasalah sehingga dapat
dinyatakan bahwa website sudah berjalan dengan baik tanpa ada kendala.
5.1 Simpulan
Berdasarkan rancangan dan implementasi yang terdapat pada Bab 3 dan pengujian
yang terdapat pada Bab 4, maka dapat dinyatakan bahwa proses implementasi
image processing menggunakan algoritma Support Vector Machine (SVM) telah
berhasil dilakukan. Presentase sistem yang dimiliki sebesar 88% dengan klasifikasi
jenis kanker kulit menjadi dua kelas, yaitu melanoma dan non melanoma
berdasarkan percobaan split data dengan perhitungan confusion matrix 90:10.
Jumlah data yang digunakan sebanyak 1.200 data gambar dengan masing – masing
kelas (melanoma dan non melanoma) sebanyak 600 data gambar. Selain itu, proses
implementasi pada website telah dilakukan tanpa adanya kendala. Website
melanoma ini dapat membantu mempermudah klasifikasi penyakit kulit khususnya
melanoma atau bukan.
5.2 Saran
Hasil yang didapat dari penelitian ini belum sempurna, namun secara umum fitur
image processing telah berfungsi dengan baik. Berdasarkan studi diketahui bahwa
salah satu hal yang masih dapat ditingkatkan adalah tingkat akurasi dari kinerja
algoritma Support Vector Machine (SVM). Oleh karena itu, untuk meningkatkan
hal tersebut, dalam pengembangan penelitian selanjutnya dapat menggunakan
algoritma lain untuk membandingkan dan mencari performmance yang baik dan
dapat dilakukan dengan penambahan jumlah data training.
54
DAFTAR PUSTAKA
55
56