PENGELOMPOKAN CITRA AKSARA BALI
MENGGUNAKAN METODE SINGLE LINKAGE HIERARCHICAL CLUSTERING
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Program Studi Informatika
Oleh :
David Thanlian Kurniawan 165314089
PROGRAM STUDI INFORMATIKA JURUSAN INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA
YOGYAKARTA 2020
ii
BALINESE SCRIPT IMAGE CLUSTERING USING SINGLE LINKAGE HIERARCHICAL
CLUSTERING METHOD THESIS
Submitted in Partial Fulfillment of The Requirements For The Degree of Sarjana Komputer
In Informatics Study Program
By :
David Thanlian Kurniawan 165314089
INFORMATICS STUDY PROGRAM DEPARTMENT OF INFORMATICS FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
vii
ABSTRAK
Daun lontar merupakan alat komunikasi tradisional yang digunakan pada zaman kerajaan. Seiring berjalannya waktu, maka tidak menutup kemungkinan, bahwa pengetahuan atau informasi yang ada pada daun tersebut bisa saja hilang, seperti tulisan yang mulai memudar atau daun lontar tersebut menjadi lapuk. Dengan demikian, terpikirkanlah sebuah ide untuk membuat suatu sistem otomtasi yang dapat membaca aksara yang ada pada daun lontar tersebut. Ada beberapa tahap yang harus dilakukan agar dapat membentuk sistem tersebut, dan salah satunya ialah membentuk database berdasarkan aksara yang ada pada lontar tersebut. Adapun tahapan yang dilakukan yaitu mengambil data hasil segmentasi kemudian dilakukannya Proses Segmentasi lagi dan Noise Reduction, lalu melakukan proses preprocessing yang meliputi binerisasi, noise filtering, cropping, thinning. Setelah itu dilakukan ekstraksi ciri dengan menggunakan Intensity of Character. Hasil akurasi atau uji kekompakan cluster didapatkan dengan menggunakan Silhouette Coefficient untuk setiap data, lalu dilakukannya rerata dari untuk mendapatkan nilai tunggal Silhouette Coefficient. Berdasarkan penelitian, didapatkan hasil bahwa penggunaan silhouette coefficient sebagai media analisis masih kurang tepat, untuk mengetahui apakah citra aksara Bali sudah berada pada kelompok yang tepat atau tidak, dan penggunaan ciri mempengaruhi penggunaan rumus jarak agar terbentuknya cluster yang dikatakan layak.
Kata kunci : Clustering, Hierarchical Clustering, Agglomerative Clustering, Intensity of Character, Rosenfeld, Silhouette Coefficient.
viii
ABSTRACK
Palm leaves are a traditional communication tool used in royal times. Over time, it does not rule out the possibility that the knowledge or information on the leaf may be lost, such as hand-writing that begins to fade or the palm leaves become obsolete. Thus, an idea came to mind to create an automation system that could read the characters on the palm leaves. There are several steps that must be done in order to form the system, and one of them is to form a database based on the characters that exist in the palm leaves. The steps taken are taking the segmentation data and then doing the Segmentation Process again and Noise Reduction, then doing the preprocessing process which includes binarization, noise filtering, cropping, thinning. After that the feature extraction is done by using Intensity of Character. Accuracy or cluster compactness results are obtained using the Silhouette Coefficient for each data, then do the average of to get a single value of the Silhouette Coefficient. Based on the research, the results show that the use of silhouette coefficient as a medium of analysis is still inaccurate, to find out whether the Balinese script image is in the right group or not, and the use of features influences the use of distance formula in order to form a suitable cluster.
Keywords : Clustering, Hierarchical Clustering, Agglomerative Clustering, Intensity of Character, Rosenfeld, Silhouette Coefficient.
ix
LEMBAR PERSEMBAHAN
“Be like water”
-Bruce Lee-
Karya ini penulis persembahkan kepada : Tuhan Yang Maha Esa
Keluarga Almamater
x
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang maha Esa atas segala berkat yang telah diberikan-Nya, sehingga penulis dapat menyelsaikan tugas akhir yang berjudul “Pengelompokan Citra Aksara Bali Menggunakan Single
Linkage Hierarchical Clustering”. Tugas akhir ini ditulis sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer, program studi Informatika, Fakultas Sains dan Teknologi, Universitas Sanata Dharma.
Selama proses penulisan tugas akhir ini, penulis menyadari adanya keterlibatan dari pihak lain. Oleh karena itu, penulis mengucapkan terima kasih kepada :
1. Tuhan Yang Maha Esa atas belas kasih-Nya
2. Ibu Dr. Anastasi Rita Widiarti selaku Dosen Pembimbing yang selalu memberikan masukan, arahan dan memotivasi penulis.
3. Ayah dan Ibu yang tak hentinya memberi doa, motivasi dan dukungan kepada penulis.
4. Saudara Khrisna dan Yos yang menjadi teman bertukar pikiran dalam pengerjaan tugas akhir ini.
5. Saudara Henki Yosua P yang meluangkan waktu untuk menghibur serta membantu penulis dalam bertukar pikir memilih kosa kata dalam tugas akhir.
6. Teman-teman ’16 yang memberikan hiburan serta semangat untuk penulis. Pada proses penulisan tugas akhir ini, penulis menyadari masih memiliki banyak kesalahan atau pun kekurangan. Oleh karena itu, penulis mengharapkan saran dan kritik untuk perbaikan atau pun pengembangan di masa yang akan datang. Semoga tugas akhir ini bermanfaat bagi banyak pihak.
Yogyakarta, 11 Juni 2020 Penulis
xi
DAFTAR ISI
HALAMAN JUDUL ... i
TITLE PAGE ... ii
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN ... iv
PERNYATAAN KEASLIAN KARYA ... v
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... vi
ABSTRAK ... vii
ABSTRACK ... viii
LEMBAR PERSEMBAHAN ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xi
DAFTAR TABEL ... xiii
DAFTAR GAMBAR ... xiv
BAB I ... 1 1.1. Latar Belakang ... 1 1.2. Rumusan Masalah ... 3 1.3. Tujuan ... 3 1.4. Manfaat Penelitian ... 3 1.5. Batasan Masalah... 3 BAB II ... 4 2.1. Aksara Bali ... 4
2.1.1. Aksara Wyanjana (Huruf Konsonan) ... 4
2.1.2. Aksara Swara (Huruf Vokal) ... 5
2.2. Pengertian Citra ... 5 2.3. Pemrosesan Citra ... 6 2.4. Preprocessing ... 6 2.4.1. Binerisasi ... 6 2.4.2. Filtering... 7 2.4.3. Segmentasi ... 7 2.4.4. Thinning ... 8 2.5. Ekstraksi Ciri ... 8 2.6. Matrik Jarak ... 10 2.6.1. Euclidean Distance ... 10
2.6.2. City Block Distance ... 11
2.7. Agglomerative Hierarchical Clustering ... 11
xii
2.7.2. Dendrogram... 23
2.8. Silhouette Coefficient... 24
2.8.1. Interpretasi Silhouette Coefficient ... 26
2.9. Ground Truth ... 27
BAB III... 28
3.1. Deskripsi Data ... 28
3.2. Kebutuhan Perangkat Hardware dan Software ... 29
3.3. Preprocessing ... 30
3.3.1. Proses Segmentasi ... 30
3.3.2. Noise Reduction ... 35
3.4. Desain Alat Uji ... 37
3.4.1. Proses Ekstraksi Ciri ... 38
3.4.2. Clustering ... 41
3.4.3. Silhouette Coefficient... 45
3.5. Cara Analisis Data... 45
3.6. Desain User Interface ... 46
3.6.1. Preprocessing ... 46 3.6.2. Clustering ... 47 BAB IV ... 48 4.1. Deskripsi Data ... 48 4.2. Implementasi ... 48 4.2.1. Preprocessing ... 48
4.2.2. Proses Ekstraksi Ciri ... 54
4.2.3. Clustering ... 57 4.3. Analisis Hasil ... 107 4.3.1. Intensity of Character 4x4 ... 107 4.3.2. Intensity of Character 5x5 ... 112 4.3.3. Intensity of Character 6x6 ... 116 4.3.4. Intensity of Character 7x7 ... 120 4.3.5. Intensity of Character 8x8 ... 125 BAB V ... 129 5.1. Kesimpulan ... 129 5.2. Saran ... 129 Daftar Pustaka ... 130 LAMPIRAN ... 131
A. Tabel Ground Truth ... 131
B. Tabel 205 Cluster ... 142
C. Nilai Silhouette Cofficient dari Masing-masing 205 Cluster ... 160
xiii
DAFTAR TABEL
Tabel 2. 1 Aksara Wyanjana (Huruf Konsonan) ... 4
Tabel 2. 2 Aksara Swara (Huruf Vokal) ... 5
Tabel 2. 3 Contoh Matrik Jarak... 10
Tabel 2. 4 Contoh Data ... 12
Tabel 2. 5 Tabel Jarak City Block ... 17
Tabel 2. 6 Melakukan Pembaharuan Tabel Jarak Iterasi 1 ... 18
Tabel 2. 7 Melakukan Pembaharuan Tabel Jarak Iterasi 2 ... 19
Tabel 2. 8 Tabel 2. 8 Melakukan Pembaharuan Jarak Iterasi 3 ... 19
Tabel 2. 9 Melakukan Pembaharuan Jarak Iteriasi 4 ... 20
Tabel 2. 10 Melakukan Pembaharuan Jarak Iterasi 5 ... 20
Tabel 2. 11 Melakukan Pembaharuan Jarak Iterasi 6 ... 20
Tabel 2. 12 Melakukan Pembaharuan Jarak Interasi 7 ... 21
Tabel 2. 13 Melakukan Pembaharuan Jarak Iterasi 8 ... 21
Tabel 2. 14 Melakukan Pembaharuan Jarak Iterasi Terakhir ... 21
Tabel 2. 15 Tabel Level Cluster ... 23
Tabel 2. 16 Kualitas Cluster ... 26
Tabel 4. 1 10 Citra yang diambil secara random ... 57
Tabel 4. 2 Hasil Preprocessing ... 58
Tabel 4. 3 Hasil Rata-rata Silhouette Coefficient 24 Citra ... 63
Tabel 4. 4 Ground Truth 24 aksara random ... 66
Tabel 4. 5 Hasil cluster untuk 23 cluster ... 68
Tabel 4. 6 Hasil Ground Truth dari 23 Cluster ... 70
Tabel 4. 7 Citra 1 Daun Lontar : Data siap olah ... 73
Tabel 4. 8 Citra 1 Daun Lontar : Tidak siap olah... 81
Tabel 4. 9 Hasil Pra-Preprocessing 131 citra aksara Bali ... 86
Tabel 4. 10 Hasil Rata-rata Silhouette Coefficient 215 CitraAksara Bali ... 103
Tabel 4. 11 Silhouette Coefficient 4x4 ... 107
Tabel 4. 12 Silhouette Coefficient 5x5 ... 112
Tabel 4. 13 Silhouette Coefficient 6x6 ... 116
Tabel 4. 14 Silhouette Coefficient 7x7 ... 120
xiv
DAFTAR GAMBAR
Gambar 2. 1 Citra dengan ukuran 16x16 ... 9
Gambar 2. 2 Bentuk IoT 4x4 setelah penjumlahan setiap unit ... 9
Gambar 2. 3 Bentuk Dendrogram contoh data... 22
Gambar 2. 4 Dendrogram ... 23
Gambar 3. 1 Data dalam folder yang diperoleh ... 28
Gambar 3. 2 Kumpulan simbol aksara dalam satu citra... 29
Gambar 3. 3 Citra aksara yang memiliki noise bintik hitam... 29
Gambar 3. 4 Algoritma Pra-Preprocessing ... 30
Gambar 3. 5 Algoritma Proses Segmentasi... 31
Gambar 3. 6 Algoritma Noise Reduction ... 35
Gambar 3. 7 Sistem Clustering ... 37
Gambar 3. 8 Algoritma Proses Ekstraksi Ciri ... 38
Gambar 3. 9 Implementasi Hierarchical Clustering Agglomerative pada MATLAB ... 41
Gambar 3. 10 User Interface Preprocessing ... 46
Gambar 3. 11 User Interface Hierarchical Clustering ... 47
Gambar 4. 1 Proses Binerisasi - Symbol Segmentation ... 49
Gambar 4. 2 Proses Invers - Symbol Segmentation ... 49
Gambar 4. 3 Proses Filling - Symbol Segmentation ... 50
Gambar 4. 4 Proses Filtering - Symbol Segmentation ... 50
Gambar 4. 5 Hasil Proses Segmentasi... 51
Gambar 4. 6 Proses Binerisasi - Noise Reduction ... 52
Gambar 4. 7 Proses Invers - Noise Reduction ... 52
Gambar 4. 8 Proses Filtering - Noise Reduction... 53
Gambar 4. 9 Proses Invers kebentuk semula - Noise Reduction ... 53
Gambar 4. 10 Proses Binerisasi - Proses Ekstraksi Ciri... 54
Gambar 4. 11 Gambar 4. 11 Proses Cropping – Proses Ekstraksi Ciri ... 55
Gambar 4. 12 Proses Image Resize - Proses Ekstraksi Ciri ... 55
Gambar 4. 13 Proses Thinning - Proses Ekstraksi Ciri ... 56
Gambar 4. 14 Hasil Ekstraksi Ciri IoT 4x4... 56
Gambar 4. 15 Hasil Clustering 24 Citra Aksara Bali ... 61
Gambar 4. 16 Perbandingan gambar (11) dan (16) berdasarkan tabel 4.2 ... 62
Gambar 4. 17 Hasil Clustering 215 Citra Aksara Bali ... 101
1
BAB I
PENDAHULUAN
1.1.Latar Belakang
Daun lontar merupakan alat komunikasi tradisional yang digunakan pada zaman kerajaan. Daun lontar ini digunakan sebagai media untuk surat-menyurut atau digunakan sebagai media prasasti. Seiring berjalannya waktu, maka tidak menutup kemungkinan, bahwa pengetahuan atau informasi yang ada pada daun tersebut bisa saja hilang, seperti tulisan yang mulai memudar atau daun lontar tersebut menjadi lapuk.
Dengan demikian, terpikirkanlah sebuah ide untuk membuat suatu sistem otomtasi yang dapat membaca aksara yang ada pada daun lontar tersebut. Ada beberapa tahap yang harus dilakukan agar dapat membentuk sistem tersebut, dan salah satunya ialah membentuk database berdasarkan aksara yang ada pada lontar tersebut.
Salah satu daun lontar yang akan digunakan pada penelitian ini ialah aksara Bali. Sehingga, data set yang digunakan pada penelitian ini merupakan hasil dari sebuah penelitian mengenai segmentasi citra aksara Bali, walaupun hasil segmentasi tersebut tidak sempurna. Terdapat 131 citra aksara Bali yang mana aksara tersebut susah untuk dikenali agar dijadikan satu dengan kelompok aksaranya sendiri, yang berefek pada pemberian label pada masing-masing aksara tersebut.
Untuk mengatasi masalah pengelompokan tersebut, maka dapat diselesaikan dengan menggunakan metode clustering, sehingga citra aksara-aksara tersebut dapat berkumpul dengan aksara yang sejenisnya, yang mana hal ini akan membuat pemberian label menjadi lebih mudah pada tahap pembuatan database.
Clustering merupakan sebuah masalah mendasar yang berfokus besar dalam penelitian pembelajaran mesin, pengenalan pola dan statistika. Clustering adalah contoh dari unsupervised learning, yang artinya tidak memiliki training sample untuk dipelajari. Clustering secara otomatis akan membentuk kumpulan dari sampel-sampel yang terbilang cukup dekat.
Clustering juga dapat dikatakan unsupervised classification, karena clustering menghasilkan hasil seperti algoritma classification, akan tetapi tanpa adanya kelas-kelas yang sudah ditentukan sebelumnya.
Metode clustering terbagi menjadi partioning dan hierarchical. Dalam hal ini, penelitian akan menggunakan hierarchicalclustering dengan data yang diteliti, yaitu Citra Aksara Bali. Hierarchical clustering merupakan sebuah metode yang bekerja dengan mengelompokan data menjadi sebuah pohon cluster. Adapun kekurangan dari metode ini yaitu hanya bisa bergerak maju ketika proses pembuatan ‘pohon’, sehingga ketika terjadi ketidakcocokan antar data yang dikelompokkan, maka hierarchicalclustering tidak dapat memperbaikinya (Han & Kamber, 2006). Hierarchical Clustering terbagi menjadi dua, yaitu agglomerative atau yang dikenal “bottom up”, dan Divisive atau yang dikenal “top down”.
Algoritma agglomerative menegaskan bahwa setiap individu objek atau data dianggap sebagai cluster tersendiri, lalu dilakukan nya iterasi penggabungan hingga membentuk satu cluster besar. Sedangkan Algoritma Divisive adalah pendekatan untuk semua objek atau data dianggap satu cluster, lalu dilakukan nya iterasi pemisahan sehingga menjadi sub-cluster atau data tunggal.
Penelitian yang dilakukan akan menggunakan Hierarchical Clustering Agglomerative, yang dikarenakan algoritma ini cenderung lebih akurat ketimbang Hierarchical Clustering Divisive, tetapi memiliki computational cost yang lebih tinggi daripada Divisive (Nazari, Kang, Asharif, Sung, & Ogawa, 2015). Dengan menggunakan Agglomerative, untuk pengelompokan menggunakan metode Single Linkage, untuk mengelompokan citra aksara Bali.
Berdasarkan uraian diatas, maka hasil dari Agglomerative Hierarchical Clustering diharapkan dapat membentuk kelompok-kelompok aksara Bali yang mana saat ada sebuah data baru yang dimasukan, maka dapat mengenali aksara baru tersebut berdasarkan cluster yang telah terbentuk.
1.2.Rumusan Masalah
1. Bagaimana menerapkan algoritma hierarchical clustering untuk mengelompokan citra aksara Bali ?
2. Berapa tingkat akurasi cluster yang dihasilkan oleh Silhouette Coefficient ?
1.3.Tujuan
1) Menerapkan algoritma Hierarchical Clustering untuk mengelompokan aksara Bali.
2) Mengetahui cluster terbaik dengan melihat hasil akurasi tertinggi ketika menggunakan Silhoutte Coefficient.
1.4.
Manfaat Penelitian
Membantu pengelompokan citra aksara Bali dalam proses klasifikasi, yang mana pengelompokan citra aksara Bali tersebut menggunakan Hierarchical Clustering.
1.5.
Batasan Masalah
Dalam penelitian ini, ada beberapa batasan masalah sebagai berikut :
1) Data yang digunakan yaitu 1 daun lontar citra aksara Bali sejumlah 131 citra.
2) Rumus jarak Euclidean Distance dan City Block Distance.
3) Ekstraksi Ciri yang digunakan ialah Intensity of Character dengan ukuran window yaitu 4x4, 5x5, 6x6, 7x7 dan 8x8.
4
BAB II
LANDASAN TEORI
2.1.Aksara Bali
Aksara Bali atau yang juga dikenal hanacaraka, merupakan salah satu aksara tradisional Nusantara yang berkembang di Pulau Bali. Aksara ini umumnya digunakan untuk menulis bahasa Bali dan bahasa Sansekerta. Aksara Bali terdiri atas 33 huruf konsonan dan 14 huruf vocal (Wikipedia, 2019).
2.1.1.Aksara Wyanjana (Huruf Konsonan)
Tabel 2. 1 Aksara Wyanjana (Huruf Konsonan)
Warga Pancawalimukha Semivokal Sibilan Frikatif
Bersuara Nirsuara Sengau
Kanthya
Ka Kha Ga Gha Nga Ha
Talawya
Ca Cha Ja Jha Nya Ya Sa
Murdhan ya Ta Tha Da Dha Na Ra Sa Dantya Ta Tha Da Dha Na La Sa Osthya Pa Pha Ba Bha Ma Wa
2.1.2. Aksara Swara (Huruf Vokal)
Tabel 2. 2 Aksara Swara (Huruf Vokal)
Warga Vokal Pendek Vokal Panjang
Kantya A kara A kara Talawya I kara I kara Murdhanya Ra repa Ra repa Dantya La lenga La lenga Osthya U kara U kara Kanthya-Talawya E kara Airsanya Kanthya-Osthya O Au kara 2.2. Pengertian Citra
Citra atau gambar adalah suatu bentuk fungsi kontinu dari intensitas dalam bidang dua dimensi (2-D), pada citra dapat dinyatakan secara matematis :
0 < 𝑓(𝑥, 𝑦) < ∞ (2. 1)
Yang mana f(x,y) merupakan intensitas cahaya pada citra yang terletak dilokasi (x,y).
Citra digital dapat diartikan sebagai citra f(x,y) yang nilai nya berbentuk diskrit, baik untuk nilai koordinat (x,y) maupun nilai intensitas
cahaya nya. Citra digital digambarkan sebagai matrik yang terdiri atas baris dan kolom, yang mana setiap baris dan kolom akan berisikan elemen atau nilai intensitas kecerahan tertentu untuk setiap f(x,y) atau pixel (titik) pada bidang citra digital (Widiarti & Himamunanto, 2013).
2.3. Pemrosesan Citra
Pemrosesan citra merupakan metode-metode yang digunakan untuk mengolah citra digital agar citra tersebut memiliki kualitas yang lebih baik, sehingga dapat ditafsirkan manusia atau mesin. Konsep dasar yang ada dalam setiap metode pemrosesan citra ini yakni memodifikasi setiap pixel atau titik pada bidang citra sesuai dengan keperluan yang dibutuhkan (Widiarti & Himamunanto, 2013).
2.4. Preprocessing
Tahapan preprocessing berguna untuk menyiapkan data seperti mengubah ukuran citra, membuang noise, atau memisahkan latar belakang citra dengan objek nya, sebelum citra tersebut masuk ke tahap ekstraksi ciri. Pada tahapan ini, akan banyak mengimplementasikan metode-metode pemrosesan citra dalam mengolah citra aksara.
2.4.1. Binerisasi
Bineriasasi adalah tahap pertama dalam pengolahan data, dimana tahapan ini memisahkan objek yang ada di citra dengan latar belakang (background) yang tidak dibutuhkan. Tujuan utama dari proses ini adalah secara otomatis menentukan nilai ambang threshold yang akan membagi citra dalam dua kelompok, yaitu kelompok obyek dan kelompok latar belakang (background) (Widiarti & Himamunanto, 2013).
2.4.2. Filtering
Filtering merupakan tahapan untuk dilakukan nya reduksi derau atau noise reduction (Widiarti & Himamunanto, 2013). Adapun jenis-jenis noise yang mungkin dapat terjadi antara lain :
a) Gaussian noise : noise berupa titik-titik yang berwarna yang jumlahnya sama dengan presentase noise.
b) Specklenoise : noise berupa warna hitam pada titik yang terkena noise.
c) Salt and peppernoise : noise berupa warna putih pada titik yang terkena noise.
2.4.3. Segmentasi
Segmentasi merupakan proses pemecahan citra untuk memperoleh objek-objek yang terkandung dalam citra tersebut. Segmentasi terbagi menjadi dua tahap. Tahap pertama pemisahan objek (dalam penelitian ini berbentuk aksara Bali) dengan objek lain yang berada pada baris yang sama, lalu pada tahap kedua, yaitu mendapatkan huruf tersebut secara individu dengan mendapatkan kolom-kolom karakter citra aksara dari baris yang telah dipotong pada tahap pertama. Adapun salah satu metode umum yang dapat digunakan untuk proses segmentasi ini, yaitu Profil Proyeksi.
Profil proyeksi merupakan tahapan segmentasi citra, yang mana hasil dari tahapan ini ialah mendapatkan objek yang terpisah dari latar belakang nya dengan cara memotong secara vertical dan horizontal. Profil proyeksi vertical berguna untuk mendapatkan baris awal pixel objek hingga baris akhir pixel objek, sedangkan profil proyeksi horizontal berguna untuk mendapatkan kolom awal pixel objek hingga kolom akhir pixel objek (Widiarti & Himamunanto, 2013).
2.4.4. Thinning
Penipisan atau thinning merupakan metode yang digunakan untuk mendapatkan rangka objek (skeleton), dengan cara melakukan reduksi terhadap objek citra yang menjadi suatu informasi yang sifatnya mendasar(Widiarti & Himamunanto, 2013).
Ada beberapa metode dalam melakukan yang dapat digunakan dalam melakukan thinning, dan salah satunya ialah metode Rosenfeld, yang mana metode ini bekerja dengan cara membuang bagian pixel yang merupakan bagian tepi (edge) (Widiarti, 2011).
2.5. Ekstraksi Ciri
Ekstraksi ciri merupakan tahapan untuk memperoleh sifat pola dari suatu objek (dalam hal ini yaitu citra aksara Bali) yang ada pada citra, yang mana menjadikan objek tersebut berbeda dengan objek lainnya (Widiarti & Himamunanto, 2013). Salah satu metode yang cukup dikenal dalam melakukan tahapan ini ialah Intensity of Character.
Intensity of character merupakan metode yang digunakan untuk melakukan ekstraksi ciri. Intensity of character berbentuk matriks berukuran NxN, yang mana setiap unit 1x1 nya berisikan n pixel hasil penjumlahan pixel yang bernilai 0 (berwarna hitam) (Nugroho & Widiarti, 2016).
Sebagai contoh sederhana, proses berikut merupakan gambaran untuk mendapatkan ciri IoT berukuran 4x4 :
a) Terdapat citra yang telah di-resize sebesar 16x16, maka untuk setiap unit IoT 1x1 nya akan mencakup matrix sebesar 4x4.
Gambar 2. 1 Citra dengan ukuran 16x16
Untuk setiap unit 1x1, akan menyimpan nilai yang merupakan banyaknya anggota pixel berwarna hitam untuk setiap area 4x4 nya. b) Berikut adalah bentuk IoT 4x4 tersebut ketika telah dilakukannya
penjumlahan untuk setiap unit nya,
2.6. Matrik Jarak
Tabel 2. 3 Contoh Matrik Jarak
Data A B C D E A 0 2 5 6 1 B 2 0 4 7 9 C 5 4 0 13 4 D 6 7 13 0 11 E 1 9 4 11 0
Distance matrix atau matrik jarak merupakan matrik yang menampilkan relasi antara data dengan data lain nya. Hasil perhitungan jarak antar dataset dapat diperoleh dengan menggunakan rumus Euclidean atau City Block.
2.6.1. Euclidean Distance
Euclidean Distance merupakan rumus perhitungan jarak paling populer dalam menghitung kedekatan antara jarak objek yang satu dengan yang lain nya (Han & Kamber, 2012). Adapun rumus nya yaitu :
𝑑(𝑋1, 𝑋2) = √∑(𝑋𝑖1− 𝑋𝑖2)2 𝑛
𝑖=1
(2. 2)
Keterangan :
• X1 : Merupakan jarak dari objek atau data pertama • X2 : Merupakan jarak dari objek atau data kedua • d(X1, X2) ≥ 0 : Jarak harus bernilai non negative
• d(X1, X1) = 0 atau d(X2, X2) = 0 : Maka objek atau data tersebut hanya menunjuk ke dirinya sendiri.
2.6.2. City Block Distance
City Block Distance atau yang dikenal juga dengan nama Manhattan Distanca merupakan rumus perhitungan jarak yang dikenal cukup baik antara jarak objek atau data yang satu dengan yang lainnya (Han & Kamber, 2012). Adapun rumus nya sebagai berikut :
𝑑(𝑋1, 𝑋2) = ∑|𝑋𝑖1− 𝑋𝑖2|
𝑛 𝑖=1
(2. 3) Keterangan :
• X1 : Merupakan jarak dari objek atau data pertama • X2 : Merupakan jarak dari objek atau data kedua • d(X1, X2) ≥ 0 : Jarak harus bernilai non negative
• d(X1, X1) = 0 atau d(X2, X2) = 0 : Maka objek atau data tersebut hanya menunjuk ke dirinya sendiri.
2.7. Agglomerative Hierarchical Clustering
Hierarchical Clustering merupakan metode clustering yang digunakan untuk mengorganisir data dalam bentuk tree (Han & Kamber, 2006). Jenis Hierarchical yang digunakan pada penelitian ini ialah Bottom-Up (Agglomerative). Pada Agglomerative hierarchical clustering, setiap data ke-i diperlakukan sebagai suatu cluster tersendiri, lalu dilakukannya iterasi penggabungan antar data hingga membentuk suatu cluster tunggal. Adapun langkah pengerjaan nya :
1. Menghitung Matrik Jarak antar data.
2. Menggabungkan dua kelompok terdekat berdasarkan parameter kedekatan yang ditentukan.
3. Memperbaharui Matrik Jarak antar data untuk merepresentasikan kedekatan diantara kelompok baru dan kelompok yang masih tersisa.
Berikut adalah contoh dengan data sederhana untuk mengetahui bagaimana Hierarchical Clustering berjalan.
• Data yang berjumlah 10, dimana setiap data memiliki 4 feature. Tabel 2. 4 Contoh Data
Data X Y Q R 1 1 1 3 2 2 4 1 4 5 3 1 2 5 3 4 3 4 6 3 5 5 4 7 5 6 6 7 7 6 7 3 8 2 7 8 5 2 1 8 9 9 2 9 8 10 1 5 9 1
1) Menghitung jarak antar data
Perhitungan jarak antar data akan menggunakan City Block. Adapun rumus dari City Block yaitu :
𝐷(𝑥, 𝑦) = ∑ |𝑋𝑖− 𝑦𝑖 𝑛 𝑖=1 | (2. 4) Ket :
xi = merupakan ciri pertama yang dimiliki oleh data ke-i yi = merupakan ciri kedua yang dimiliki oleh data-i Sehingga, diperoleh perhitungan sebagai berikut :
a) Menghitung jarak Data 1 dengan sepuluh Data yang lain D(1,1) = |1-1|+|1-1|+|3-3|+|2-2| = 0
D(2,1) = |4-1|+|1-1|+|4-3|+|5-2| = 7 D(3,1) = |1-1|+|2-1|+|5-3|+|3-2| = 4 D(4,1) = |3-1|+|4-1|+|6-3|+|3-2| = 9 D(5,1) = |5-1|+|4-1|+|7-3|+|5-2| = 14
D(6,1) = |6-1|+|7-1|+|7-3|+|6-2| = 19 D(7,1) = |3-1|+|8-1|+|2-3|+|7-2| = 15 D(8,1) = |5-1|+|2-1|+|1-3|+|8-2| = 13 D(9,1) = |9-1|+|2-1|+|9-3|+|8-2| = 21 D(10,1) = |1-1|+|5-1|+|9-3|+|1-2| = 11
b) Menghitung jarak Data 2 dengan sepuluh Data yang lain D(1,2) = |1-4|+|1-1|+|3-4|+|2-5| = 7 D(2,2) = |4-4|+|1-1|+|4-4|+|5-5| = 0 D(3,2) = |1-4|+|2-1|+|5-4|+|3-5| = 7 D(4,2) = |3-4|+|4-1|+|6-4|+|3-5| = 8 D(5,2) = |5-4|+|4-1|+|7-4|+|5-5| = 7 D(6, 2) = |6-4|+|7-1|+|7-4|+|6-5| = 12 D(7,2) = |3-4|+|8-1|+|2-4|+|7-5| = 12 D(8,2) = |5-4|+|2-1|+|1-4|+|8-5| = 8 D(9,2) = |9-4|+|2-1|+|9-4|+|8-5| = 14 D(10,2) = |1-4|+|5-1|+|9-4|+|1-5| = 16
c) Menghitung jarak Data 3 dengan sepuluh Data yang lain D(1,3) = |1-1|+|1-2|+|3-5|+|2-3| = 4 D(2,3) = |4-1|+|1-2|+|4-5|+|5-3| = 7 D(3,3) = |1-1|+|2-2|+|5-5|+|3-3| = 0 D(4,3) = |3-1|+|4-2|+|6-5|+|3-3| = 5 D(5,3) = |5-1|+|4-2|+|7-5|+|5-3| = 10 D(6,3) = |6-1|+|7-2|+|7-5|+|6-3| = 15 D(7,3) = |3-1|+|8-2|+|2-5|+|7-3| = 15 D(8,3) = |5-1|+|2-2|+|1-5|+|8-3| = 13 D(9,3) = |9-1|+|2-2|+|9-5|+|8-3| = 17 D(10,3) = |1-1|+|5-2|+|9-5|+|1-3| = 9
d) Menghitung jarak Data 4 dengan sepuluh Data yang lain D(1,4) = |1-3|+|1-4|+|3-6|+|2-3| = 9 D(2,4) = |4-3|+|1-4|+|4-6|+|5-3| = 8 D(3,4) = |1-3|+|2-4|+|5-6|+|3-3| = 5 D(4,4) = |3-3|+|4-4|+|6-6|+|3-3| = 0 D(5,4) = |5-3|+|4-4|+|7-6|+|5-3| = 5 D(6,4) = |6-3|+|7-4|+|7-6|+|6-3| = 10 D(7,4) = |3-3|+|8-4|+|2-6|+|7-3| = 12 D(8,4) = |5-3|+|2-4|+|1-6|+|8-3| = 14 D(9,4) = |9-3|+|2-4|+|9-6|+|8-3| = 16 D(10,4) = |1-3|+|5-4|+|9-6|+|1-3| = 8
e) Menghitung jarak Data 5 dengan sepuluh Data yang lain D(1,5) = |1-5|+|1-4|+|3-7|+|2-5| = 14 D(2,5) = |4-5|+|1-4|+|4-7|+|5-5| = 7 D(3,5) = |1-5|+|2-4|+|5-7|+|3-5| = 10 D(4,5) = |3-5|+|4-4|+|6-7|+|3-5| = 5 D(5,5) = |5-5|+|4-4|+|7-7|+|5-5| = 0 D(6,5) = |6-5|+|7-4|+|7-7|+|6-5| = 5 D(7,5) = |3-5|+|8-4|+|2-7|+|7-5| = 13 D(8,5) = |5-5|+|2-4|+|1-7|+|8-5| = 11 D(9,5) = |9-5|+|2-4|+|9-7|+|8-5| = 11 D(10,5) = |1-5|+|5-4|+|9-7|+|1-5| = 11
f) Menghitung jarak Data 6 dengan sepuluh Data yang lain D(1,6) = |1-6|+|1-7|+|3-7|+|2-6| = 19 D(2,6) = |4-6|+|1-7|+|4-7|+|5-6| = 12 D(3,6) = |1-6|+|2-7|+|5-7|+|3-6| = 15 D(4,6) = |3-6|+|4-7|+|6-7|+|3-6| = 10 D(5,6) = |5-6|+|4-7|+|7-7|+|5-6| = 5 D(6,6) = |6-6|+|7-7|+|7-7|+|6-6| = 0
D(7,6) = |3-6|+|8-7|+|2-7|+|7-6| = 10 D(8,6) = |5-6|+|2-7|+|1-7|+|8-6| = 14 D(9,6) = |9-6|+|2-7|+|9-7|+|8-6| = 12 D(10,6) = |1-6|+|5-7|+|9-7|+|1-6| = 14
g) Menghitung jarak Data 7 dengan sepuluh Data yang lain D(1,7) = |1-3|+|1-8|+|3-2|+|2-7| = 15 D(2,7) = |4-3|+|1-8|+|4-2|+|5-7| = 12 D(3,7) = |1-3|+|2-8|+|5-2|+|3-7| = 15 D(4,7) = |3-3|+|4-8|+|6-2|+|3-7| = 12 D(5,7) = |5-3|+|4-8|+|7-2|+|5-7| = 13 D(6,7) = |6-2|+|7-8|+|7-2|+|6-7| = 10 D(7,7) = |3-3|+|8-8|+|2-2|+|7-7| = 0 D(8,7) = |5-3|+|2-8|+|1-2|+|8-7| = 10 D(9,7) = |9-3|+|2-8|+|9-2|+|8-7| = 20 D(10,7) = |1-3|+|5-8|+|9-2|+|1-7| = 18
h) Menghitung jarak Data 8 dengan sepuluh Data yang lain D(1,8) = |1-5|+|1-2|+|3-1|+|2-8| = 13 D(2,8) = |4-5|+|1-2|+|4-1|+|5-8| = 8 D(3,8) = |1-5|+|2-2|+|5-1|+|3-8| = 13 D(4,8) = |3-5|+|4-2|+|6-1|+|3-8| = 14 D(5,8) = |5-5|+|4-2|+|7-1|+|5-8| = 11 D(6,8) = |6-5|+|7-2|+|7-1|+|6-8| = 14 D(7,8) = |3-5|+|8-2|+|2-1|+|7-8| = 10 D(8,8) = |5-5|+|2-2|+|1-1|+|8-8| = 0 D(9,8) = |9-5|+|2-2|+|9-1|+|8-8| = 12 D(10,8) = |1-5|+|5-5|+|9-1|+|1-8| = 22
i) Menghitung jarak Data 9 dengan sepuluh Data yang lain D(1,9) = |1-9|+|1-2|+|3-9|+|2-8| = 21 D(2,9) = |4-9|+|1-2|+|4-9|+|5-8| = 14 D(3,9) = |1-9|+|2-2|+|5-9|+|3-8| = 17 D(4,9) = |3-9|+|4-2|+|6-9|+|3-8| = 16 D(5,9) = |5-9|+|4-2|+|7-9|+|5-8| = 11 D(6,9) = |6-9|+|7-2|+|7-9|+|6-8| = 12 D(7,9) = |3-9|+|8-2|+|2-9|+|7-8| = 20 D(8,9) = |5-9|+|2-2|+|1-9|+|8-8| = 12 D(9,9) = |9-9|+|2-2|+|9-9|+|8-8| = 0 D(10,9) = |1-9|+|5-2|+|9-9|+|1-8| = 18
j) Menghitung jarak Data 10 dengan sepuluh Data yang lain D(1,10) = |1-1|+|1-5|+|3-9|+|2-1| = 11 D(2,10) = |4-1|+|1-5|+|4-9|+|5-1| = 16 D(3,10) = |1-1|+|2-5|+|5-9|+|3-1| = 9 D(4,10) = |3-1|+|4-5|+|6-9|+|3-1| = 8 D(5,10) = |5-1|+|4-5|+|7-9|+|5-1| = 11 D(6,10) = |6-1|+|7-5|+|7-9|+|6-1| = 14 D(7,10) = |3-1|+|8-5|+|2-9|+|7-1| = 18 D(8,10) = |5-1|+|2-5|+|1-9|+|8-1| = 22 D(9,10) = |9-1|+|2-5|+|9-9|+|8-1| = 18 D(10,10) = |1-1|+|5-5|+|9-9|+|1-1| = 0
Sehingga, tabel jarak nya sebagai berikut :
Tabel 2. 5 Tabel Jarak City Block
Dcb 1 2 3 4 5 6 7 8 9 10 1 0 7 4 9 14 19 15 13 21 11 2 7 0 7 8 7 12 12 8 14 16 3 4 7 0 5 10 15 15 13 17 9 4 9 8 5 0 5 10 12 14 16 8 5 14 7 10 5 0 5 13 11 11 11 6 19 12 15 10 5 0 10 14 12 14 7 15 12 15 12 13 10 0 10 20 18 8 13 8 13 14 11 14 10 0 12 22 9 21 14 17 16 11 12 20 12 0 18 10 11 16 9 8 11 14 18 22 18 0 2) Menggabungkan dua kelompok terdekat hingga hanya tersisa satu kelompok
yang tersisa.
Nilai jarak yang ada pada matrik (tabel diatas) membentuk sebuah matrik segitiga. Dimana nilai yang berada sisi atas sama dengan nilai yang berada pada sisi bawah nya. Sehingga nilai jarak yang akan diproses dapat menggunakan sisi atas atau sisi bawah.
Untuk melakukan pengelompokan (clustering), maka dalam hal ini akan menggunakan metode Single Linkage, dimana metode ini bekerja dengan cara menggabungkan dua cluster yang memiliki jarak terdekat (jarak minimum).
a) Dari tabel 2.5, nilai minimum nya adalah 4 dengan koordinat (1,3), sehingga tabel nya sebagai berikut :
Tabel 2. 6 Melakukan Pembaharuan Tabel Jarak Iterasi 1 Dcb (1,3) 2 4 5 6 7 8 9 10 (1,3) 0 7 5 10 15 15 13 17 9 2 7 0 8 7 12 12 8 14 16 4 5 8 0 5 10 12 14 16 8 5 10 7 5 0 5 13 11 11 11 6 15 12 10 5 0 10 14 12 14 7 15 12 12 13 10 0 10 20 18 8 13 8 14 11 14 10 0 12 22 9 17 14 16 11 12 20 12 0 18 10 9 16 8 11 14 18 22 18 0
Adapun cara kerja sebagai berikut :
Dcb = min ( (1,1), (3,1), (1,3), (3,3)) = min (0,4,4,0) = 0 Dcb = min ( (1,2), (3,2) ) = min (7,7) = 7 Dcb = min ( (1,4), (3,4) ) = min (9,5) = 5 Dcb = min ( (1,5), (3,5) ) = min (14,10) = 10 Dcb = min ( (1,6), (3,6) ) = min (19,15) = 15 Dcb = min ( (1,7), (3,7) ) = min (15,15) = 15 Dcb = min ( (1,8), (3,8) ) = min (13,13) = 13 Dcb = min ( (1,9), (3,9) ) = min (21,17) = 17 Dcb = min ( (1,10), (3,10) ) = min (11,9) = 9
Ketika nilai pertama telah ditemukan, maka dua feature (ciri) nya akan digunakan dan akan digabungkan dengan feature (ciri) lain nya agar memperoleh dua jarak baru yang memiliki jarak terkecil ketika dibandingkan.
𝐷𝑐𝑏 = min((𝑥, 𝑎), (𝑦, 𝑎)) (2. 5)
Dimana x dan y adalah feature yang jarak terpendek nya telah ditemukan, sedangkan a adalah feature lain yang akan dibandingkan
sehingga akan memperoleh jarak yang terkecil antar x dan y. Untuk feature yang tidak dibandingkan, maka tetap menggunakan jarak berdasarkan matrik jarak yang telah dihitung sebelumnya.
b) Dari tabel 2.6, nilai minimum nya adalah 5 dengan koordinat ((1,3), 4), sehingga tabel nya sebagai berikut :
Tabel 2. 7 Melakukan Pembaharuan Tabel Jarak Iterasi 2 Dcb ((1,3), 4) 2 5 6 7 8 9 10 ((1,3), 4) 0 7 5 10 12 13 16 8 2 7 0 7 12 12 8 14 16 5 5 7 0 5 13 11 11 11 6 10 12 12 0 10 14 12 14 7 12 12 12 10 0 10 20 18 8 13 8 8 14 10 0 12 22 9 16 14 14 12 20 12 0 18 10 8 16 16 14 18 22 18 0
c) Dari tabel 2.7, nilai minimum nya adalah 5 dengan koordinat ((1,3,4), 5), sehingga tabel nya sebagai berikut :
Tabel 2. 8 Tabel 2. 8 Melakukan Pembaharuan Jarak Iterasi 3 Dcb ((1,3,4),5) 2 6 7 8 9 10 ((1,3,4),5) 0 7 5 12 11 11 8 2 7 0 12 12 8 14 16 6 5 12 0 10 14 12 14 7 12 12 10 0 10 20 18 8 11 8 14 10 0 12 22 9 11 14 12 20 12 0 18 10 8 16 14 18 22 18 0
d) Dari tabel 2.8, nilai minimum nya adalah 5 dengan koordinat ((1,3,4,5), 6) sehingga tabel nya sebagai berikut :
Tabel 2. 9 Melakukan Pembaharuan Jarak Iteriasi 4 Dcb ((1,3,4,5),6) 2 7 8 9 10 ((1,3,4,5),6) 0 7 10 11 11 8 2 7 0 12 8 14 16 7 10 12 0 10 20 18 8 11 8 10 0 12 22 9 11 14 20 12 0 18 10 8 16 18 22 18 0
e) Dari tabel 2.9, nilai minimum nya adalah 7 dengan koordinat ((1,3,4,5,6), 2) sehingga tabel nya sebagai berikut :
Tabel 2. 10 Melakukan Pembaharuan Jarak Iterasi 5 Dcb ((1,3,4,5,6),2) 7 8 9 10 ((1,3,4,5,6),2) 0 10 8 11 8 7 10 0 10 20 18 8 8 10 0 12 22 9 11 20 12 0 18 10 8 18 22 18 0
f) Dari tabel 2.10, nilai minimum nya adalah 8 dengan koordinat ((1,3,4,5,6,2), 8) sehingga tabel nya sebagai berikut :
Tabel 2. 11 Melakukan Pembaharuan Jarak Iterasi 6 Dcb ((1,3,4,5,6,2),8) 7 9 10
((1,3,4,5,6,2),8) 0 10 11 8
7 10 0 20 18
9 11 20 0 18
g) Dari tabel 2.11, nilai minimum nya adalah 8 dengan koordinat ((1,3,4,5,6,2,8), 10) sehingga tabel nya sebagai berikut :
Tabel 2. 12 Melakukan Pembaharuan Jarak Interasi 7 Dcb ((1,3,4,5,6,2,8),10) 7 9
((1,3,4,5,6,2,8),10) 0 10 11
7 10 0 20
9 11 20 0
h) Dari tabel 2.12, nilai minimum nya adalah 10 dengan koordinat ((1,3,4,5,6,2,8,10), 7) sehingga tabel nya sebagai berikut :
Tabel 2. 13 Melakukan Pembaharuan Jarak Iterasi 8 Dcb ((1,3,4,5,6,2,8,10),7) 9
((1,3,4,5,6,2,8,10),7) 0 11
9 11 0
i) Yang terakhir dari tabel 2.13 ialah koordinat ((1,3,4,5,6,2,8,10,7), 9) dengan nilai minimum nya 11, sehingga tabel nya sebagai berikut :
Tabel 2. 14 Melakukan Pembaharuan Jarak Iterasi Terakhir Dcb (1,3,4,5,6,2,8,10,7,9)
3) Bentuk Dendogram nya ialah sebagai berikut :
Gambar 2. 3 Bentuk Dendrogram contoh data
2.7.1. Single Linkage
Single Linkage merupakan algoritma yang digunakan untuk mencari nilai minimum dari jarak antar suatu objek atau data. Terkadang algoritma ini juga dikenal sebagai algoritma Tetangga Terdekat (nearest-neighbor). Adapun rumusnya sebagai berikut :
𝑑𝑖𝑠𝑡𝑚𝑖𝑛(𝑋1, 𝑋2)= min(𝑋1, 𝑋2) (2. 6)
Dengan demikian, jarak yang diperoleh merupakan hasil terkecil dari jarak X1 dan X2 yang dibandingkan.
2.7.2. Dendrogram
Dendrogram merupakan grafik yang digunakan untuk merepresentasikan proses dari hierarchical clustering. Grafik ini menunjukan bagaimana data yang satu dengan data yang lain saling terhubung. Dendrogram akan menunjukan seberapa banyak cluster yang terbentuk dengan memberikan level pada setiap tingkatnya (Han & Kamber, 2006). Berikut adalah contoh dari level yang dimaksud :
Gambar 2. 4 Dendrogram Tabel 2. 15 Tabel Level Cluster
Level Data Jarak Jumlah
Cluster 0 [1, 3, 4, 5, 6, 2, 10, 8, 7, 9] 0 10 1 [(1, 3)] 4, 5, 6, 2, 10, 8, 7, 9 4 9 2 [(1, 3, 4)] 5, 6, 2, 10, 8, 7, 9 5 8 3 [(1, 3, 4, 5)] 6, 5 7
2, 10, 8, 7, 9 4 [(1, 3, 4, 5, 6)] 2, 10, 8, 7, 9 5 6 5 [(1, 3, 4, 5, 6, 2)] 10, 8, 7, 9 7 5 6 [(1, 3, 4, 5, 6, 2, 10)] 8, 7, 9 8 4 7 [(1, 3, 4, 5, 6, 2, 10, 8)] 7, 9 8 3 8 [(1, 3, 4, 5, 6, 2, 10, 8, 7)] 9 10 2 9 [(1, 3, 4, 5, 6, 2, 10, 8, 7, 9)] 11 1 2.8. Silhouette Coefficient
Silhouette Coefficient merupakan metode yang digunakan untuk mengukur kualitas data dalam suatu cluster yang telah dibentuk. Didalam Silhoutte Coefficient terdapat dua komponen penting, yaitu komponen a(i) dan b(i). Nilai a(i) merupakan nilai rata-tara jarak data ke-i terhadap data lain dalam cluster nya, sedangkan b(i) merupakan nilai rata-rata jarak data ke-I terhadap data lain diluar cluster nya. Nilai Silhouette Coefficient memiliki rentangan antara -1 hingga 1. Data akan dikatakan berada ditempat yang tepat jika nilai silhouette coefficient semakin mendekati angka 1, sebaliknya akan dikatakan kurang tepat jika nilai silhouette coefficient semakin mendekati angka -1 (Kaufman & Rousseeuw, 1990). Berikut adalah cara untuk menghitung dua komponen nilai Silhouette Coefficient :
a) Menghitung Nilai a(i)
𝑎(𝑖) = ∑𝑗 ∈𝐶𝑖,𝑖 ≠𝑗𝑑𝑖𝑠𝑡(𝑖, 𝑗)
|𝐶𝑖| − 1 (2. 7)
Keterangan :
• ∑j : hasil rerata semua data terhadap data i, dengan data j tidak samadengan data i.
• dist(i, j) : jarak antara data i ke data j.
• |Ci| - 1 : jumlah banyaknya data dalam satu cluster tanpa data i yang diproses.
b) Menghitung Nilai b(i)
𝑏(𝑖) =𝐶 min
𝑗 ∶ 1 ≤ 𝑗 ≤ 𝑘, 𝑗 ≠ 𝑖 {
∑𝑖 ∈𝐶𝑗𝑑𝑖𝑠𝑡(𝑖, 𝑗)
|𝐶𝑗| } (2. 8)
Keterangan :
• ∑j : hasil rerata semua data yang ada pada cluster lain, dengan data j tidak samadengan data i.
• dist(i, j) : jarak antara data i ke data j.
• |Cj| : jumlah banyaknya data dalam cluster yang lain.
c) Menghitung Nilai SC (Silhouette Coefficient)
𝑠(𝑖) = 𝑏(𝑖) − 𝑎(𝑖)
max{𝑎(𝑖), 𝑏(𝑖)} (2. 9)
Keterangan :
• s(i) : nilai Silhouette Coefficient
• b(i) : hasil perhitungan poin (b)
2.8.1. Interpretasi Silhouette Coefficient
Untuk menentukan kualitas dari cluster yang telah dibentuk, maka semua nilai silhouette dari semua data yang ada dalam cluster akan dijumlahkan lalu dirata-rata. Berikut adalah kriteria penilian suatu cluster menurut Kaufmann dan Roesseeuw
Tabel 2. 16 Kualitas Cluster
Nilai Silhouette Coefficient Kualitas
0,71-1,00 Stuktur yang kuat telah
terbentuk
0,51-0,70 Struktur yang layak telah
terbentuk
0,26-050 Struktur lemah
2.9. Ground Truth
Ground truth merupakan set data dari suatu klasifikasi (unsupervised atau supervise), yang mana set data ini berdasarkan hasil dari pengalaman manusia itu sendiri dan dapat digunakan sebagai pembanding terhadap data yang lain (Malladi, Ram, & Rodriguez, 2018).
28
BAB III
METODE PENELITIAN
3.1. Deskripsi Data
Set data mentah dalam penelitian ini diperoleh dari hasil penelitian yang berjudul penelitian “Segementasi Citra Aksara Daun Lontar”, yang mana penelitian tersebut tersedia di LPPM-USD dengan nomor kontak penelitian 026/LPPM-USD/iii/2019. Jumlah Aksara yang diperoleh yaitu sebanyak 131 citra aksara Bali.
Gambar 3. 1 Data dalam folder yang diperoleh
Tetapi, set data yang diperoleh tersebut tidak dapat diproses secara langsung. Hal ini dikarenakan adanya simbol-simbol aksara yang masih menjadi satu citra.
Gambar 3. 2 Kumpulan simbol aksara dalam satu citra
Gambar 3.2 merupakan contoh data citra yang didalamnya masih terdapat simbol-simbol yang belum terpisahkan, yang seharusnya menjadi enam bagian aksara. Adapun noise berupa bintik hitam yang perlu dihilangkan seperti pada gambar 3.3, guna mendapatkan objek aksara secara utuh.
Gambar 3. 3 Citra aksara yang memiliki noise bintik hitam
Sehingga sebelum dilakukannya pemrosesan terhadap data-data citra tersebut, maka perlu dilakukannya proses preprocessing.
3.2. Kebutuhan Perangkat Hardware dan Software
a) Spesifikasi Hardware
1. Prosesor Intel(R) i5-7300 CPU @ 2.50GHz 2. RAM 16 Gb
3. Hardisk
1. Sistem Operasi Windows 10 2. MATLAB R2014b
3.3. Preprocessing
Pada tahapan ini berguna untuk menyiapkan data set sebelum akhirnya diolah pada tahapan preprocessing. Tahapan ini meliputi pemisahan simbol-simbol citra aksara Bali yang masih menjadi satu dan penghilangan noise berupa bintik hitam yang ada pada citra.
Gambar 3. 4 Algoritma Preprocessing
3.3.1. Proses Segmentasi
Pada tahapan ini berguna untuk memisahkan simbol-simbol huruf aksara Bali yang masih menjadi satu citra, sehingga output yang akan dihasilkan oleh proses ini yaitu kumpulan citra aksara Bali.
Gambar 3. 5 Algoritma Proses Segmentasi 1. Binerisasi Citra
Pada tahap ini berguna untuk mengubah citra menjadi citra hitam-putih, yang mana akan membuat citra tersebut memiliki satu lapis warna yang hanya bernilai 0 (hitam) dan 1 (putih) saja. Tahapan ini akan menggunakan fungsi im2bw() yang telah disediakan oleh MATLAB. Adapun algoritma binerisasinya yaitu :
1. Baca gambar yang akan diolah dengan function imread yang akan disimpan di variable a.
2. Ubah gambar yang tersimpan di variable a menjadi hitam-putih dengan cara a samadengan im2bw(a).
2. Invers Citra
Pada tahap ini berguna untuk melakukan invers Citra dengan memanfaatkan modul sebagai berikut :
Modul : invMTX Input : matrix (mtx) Algoritma :
1. Inisialisasikan variable res = [ ]
2. Dengan function size, ambil ukuran baris n dan kolom m 3. Lakukan looping dari 1 sampai n
4. Lakukan looping dari 1 sampai m
5. Jika mtx(i,j) samadengan 0, maka res(i,j) bernilai 1 6. Jika tidak, maka res(i,j) bernilai 0
Output : matrix yang telah di-invers (res) 3. Filling
Pada tahap ini berguna untuk mengisi hole yang terdapat pada citra aksara Bali. Dalam hal ini, hole yang dimaksud ialah sebuah lubang yang dibentuk oleh simbol aksara itu sendiri, seperti bentuk lingkaran atau adanya lubang pada badan simbol aksara sehingga membuat simbol aksara menjadi lebih utuh. Adapun algoritmanya yaitu :
1. Baca gambar yang akan diolah dengan function imread yang akan disimpan di variable a.
2.
Ubah gambar yang tersimpan di variable a menjadi hitam-putih dengan cara a samadengan im2bw(a).3. Dengan memanfaatkan algoritma Invers, simpan hasil invers di variable a dengan cara a samadengan invMTX(a).
4. Filtering
Pada tahap ini berguna untuk menghilangkan noise seperti noda ‘bintik’ hitam yang ada pada citra. Tahapan ini akan menggunakan function bwareaopen yang telah disediakan oleh MATLAB. Adapun algortimanya yaitu :
1. Baca gambar yang akan diolah dengan function imread yang akan disimpan di variable a.
2. Ubah gambar yang tersimpan di variable a menjadi hitam-putih dengan cara a samadengan im2bw(a).
3. Dengan memanfaatkan algoritma Invers, simpan hasil invers di variable a dengan cara a samadengan invMTX(a).
4. Inisialisasikan variable b samadengan imfill(a,’holes’). 5. Inisialisasikan variable fltr samadengan bwareaopen(b,5).
5. Character Segmentation
Pada tahap ini berguna untuk memisahkan simbol-simbol aksara yang tergabung dalam satu citra. Tahapan ini akan menggunakan function bwlabel yang telah disediakan oleh MATLAB. Hasil yang diperoleh dari bwlabel akan digunakan untuk menyimpan hasil segmentasi dengan menggunakan data asli sebagai data yang akan dipisah-pisahkan. Adapun algoritmanya sebagai berikut :
1. Baca gambar yang akan diolah dengan function imread yang akan disimpan di variable a.
2. Ubah gambar yang tersimpan di variable a menjadi hitam-putih dengan cara a samadengan im2bw(a).
3. Dengan memanfaatkan algoritma Invers, simpan hasil invers di variable a dengan cara a samadengan invMTX(a).
4. Inisialisasikan variable b samadengan imfill(a,’holes’). 5. Inisialisasikan variable fltr samadengan bwareaopen(b,5).
6. Inisialisasikan variable l sebagai koordinat gambar yang dipotong dan n sebagai banyaknya potongan, dengan cara [l,n] samadengan bwlabel(fltr).
7. Jika nilai yang berada di variable n lebih dari satu, maka lakukan looping mulai dari satu sampai n.
8. Cari nilai baris r dan kolom c dengan menggunakan function find, dengan cara [r,c] samadengan find(l==i)
9. Untuk nama file, inisialisasikan variable strr samadengan [namaFile(1:end-4) ‘_’ num2str(i) ‘.jpg’].
10. Inisialisasikan variable ori samadengan a(min(r):max(r), min(c):max(c)).
11. Inisialisasikan variable piece samsdengan a(min(r):max(r), min(c):max(c)).
12. Ambil potongan citra ke-i dengan memanfaatkan function CopyIt, dengan cara piece samadengan CopyIt(piece,ori,i). 13. Simpan gambar dengan cara imwrite(piece,strr).
• Modul : CopyIt
Modul ini berguna untuk meng-copy object hasil dari bwareaopen. Konsepnya adalah melacak potongan k , lalu untuk setiap nilai k yang ditemukan, maka akan variable pembentuk object akan berisikan nilai invers ori (i,j), maka akan menghasilkan matriks yang berisikan potongan aksara utuh.
Modul : CopyIt
Input : piece (potongan), ori (gambar asli biner), k (nilai potongan ke-k)
Algoritma :
1. Ambil ukuran variable piece untuk variable n dan m dengan function size
3. Lakukan looping dari 1 sampai n 4. Lakukan looping dari 1 sampai m
5. Jika piece(i,j) samadengan k, maka res(i,j) bernilai ori(i,j)
6. Tidak, maka res(i,j) bernilai 0
Output : matrix biner berisikan potongan citra (res)
3.3.2. Noise Reduction
Pada tahapan ini berguna untuk menghilangkan noise berupa noda ‘bintik’ hitam. Pada tahap ini, setiap simbol-simbol aksara telah dipisahkan atau tidak dipisahkan (citra dengan aksara tunggal) maka akan dilakukannya noise reduction agar noda yang ada pada citra tidak terikut proses preprocessing.
1. Binerisasi
Pada tahap ini berguna untuk mengubah citra menjadi citra hitam-putih, yang mana tahapan ini memiliki tujuan yang sama seperti binerisasi pada poin 3.3.1.
2. Invers Citra
Pada tahap ini berguna untuk melakukan invers Citra dengan memanfaatkan modul yang ada pada poin 3.3.1.
3. Filtering
Pada tahap ini berguna untuk menghilangkan noise seperti noda ‘bintik’ hitam yang ada pada citra. Tahapan ini memiliki kinerja yang sama dengan tahap Filtering pada poin 3.3.1.
4. Invers Citra
Pada tahap ini berguna untuk melakukan invers Citra dengan memanfaatkan modul yang ada dipoin 3.3.1.
3.4. Desain Alat Uji
Sebelum dilakukannya ekstraksi ciri, data aksara Bali akan dilakukan dua proses tahapan. Tahap pertama, set data akan dilakukan proses Pra-Preprocessing dan tahapan kedua akan dilakukannya proses Pra-Preprocessing.
3.4.1. Proses Ekstraksi Ciri
Dibagian ini berguna untuk menyiapkan data sebelum akhirnya data diolah.
Gambar 3. 8 Algoritma Proses Ekstraksi Ciri
3.4.1.1.Binerisasi
Pada tahap ini berguna untuk mengubah citra menjadi citra hitam-putih, yang mana tahapan ini memiliki tujuan yang sama seperti binerisasi pada poin 3.3.1.
3.4.1.2.Cropping
Cropping merupakan metode untuk mendapatkan bentuk karakter aksara secara utuh, tanpa ada nya ‘ruang’ lebih pada citra aksara. Pada penelitian ini, penulis akan menggunakan fungsi crop_aksara() yang diperoleh dari sebuah penelitian.
3.4.1.3.Image Resize
Image resize merupakan metode untuk mengubah ukuran citra menjadi besar atau menjadi kecil. Pada penelitian ini,
penulis akan menggunakan fungsi imresize() yang ada pada MATLAB.
3.4.1.4.Thinning
Thinning digunakan untuk melakukan penipisan terhadap huruf, sehingga hanya akan menyisihkan citra kerangka aksara saja. Salah satu metode yang akan digunakan pada penelitian ini yaitu menggunakan metode Rosenfeld. Metode ini bekerja dengan cara membuang bagian pixel yang merupakan bagian tepi (edge) (Widiarti, 2011). Untuk implementasinya, penulis akan menggunakan fungsi Rosenfeld() yang diperoleh dari sebuah penelitian.
3.4.1.5.Ekstraksi Ciri
Ekstraksi ciri merupakan tahapan untuk memperoleh sifat pola dari suatu objek yang ada pada citra (2.5). Untuk implementasinya, penulis akan menggunakan modul sebagai berikut :
Modul : IoT
Input : matriks (mtx), ukuranUnit Algoritma :
1. Buat variable st=[ ]
2. Buat variable temp = panjang mtx / ukuranUnit 3. Buat dan set variabel top=temp
4. Buat dan set variabel bot=temp
5. Buat dan set variabel cS=1 dan variable rS=1 6. Lakukan perulangan untuk i=1 sampai ukuranUnit
7. Lakukan perulangan untuk j=1 sampai ukuranUnit
9. Buat dan set nilai unit = mtx(rS:bot, cS:top) 10. Lakukan perulangan untuk k=1 sampai
panjang unit
11. Lakukan perulangan untuk l = 1 sampai panjang unit
12. Jika unit(k,l) samadengan pixel hitam, maka variable sum bertambah 1
13. Set nilai variable st(i,j) = sum 14. Set nilai variable cS = 1 + top 15. Set nilai variable top=top+temp 16. Set nilai variable rS=1=bot
17. Set nilai variable bot=bot+temp 18. Set nilai variable cS=1
19. Set nilai variable top=temp Output : matriks ciri NxN
3.4.2. Clustering
Melakukan clustering dengan menerapkan konsep algoritma Hierarchical Clustering Agglomerative (2.2). Berikut adalah algoritma Hierarchical Clustering Agglomerative yang mana diterapkan di MATLAB nantinya :
Gambar 3. 9 Implementasi Hierarchical Clustering Agglomerative pada MATLAB
• Modul :Generate Label
Modul ini merupakan bagian pembentuk Hierarchical Clustering Agglomerative, yang mana tugas dari modul ini adalah menghasilkan label dalam bentuk deretan bilangan diskrit.
Modul : GenLabel
Input : jumlah data (jumData) 1. Inisialisasikan res=[ ]
3. Simpan nilai i pada res(i,:).
4. Kembalikan res dalam bentuk invers (res’) Output : label berukuran matrix 1xjumlah data
• Modul : Single Linkage
Modul ini merupakan bagian pembentuk Hierarchical Clustering Agglomerative, yang mana tugas dari modul ini ialah mencari bilangan terkecil yang ada di-matrix, lalu mengembalikan nilai terkecil tersebut beserta koordinat x dan y nya.
Modul : nMin
Input : matrix (mtx)
1. Inisialisasikan baris=2 2. Inisialisasikan val=inf
3. Lakukan looping dari 1 sampi panjang mtx, untuk langkah 3 sampai 6
4. Lakukan looping dari baris sampai panjang mtx
5. Jika mtx(i,j) kurang dari atau samadengan val, maka val=mtx(j,j), rw=i dan cl=j.
6. Inisialisasikan baris=baris+1 didalam loop langkah 3
Output : nilai x (rw atau baris), nilai y (cl atau kolom) dan nilai minimum (val)
• Modul : Update Table
Modul ini merupakan bagian pembentuk Hierarchical Clustering Agglomerative, yang mana tugas dari modul ini ialah melakukan pembaruan table jarak dengan cara membandingkan dua nilai terkecil antara (n,x) dan (n,y) dengan n adalah data ke-n, lalu nilai terkecil akan menggantikan nilai yang ada pada matrix sebelumnya. Setelah itu menghilangkan salah satu baris dan kolom berdasarakan x atau y, yang membuat ukuran matrix akan semakin mengecil.
Modul : UT1
Input : x (r), y (c), matrix (mtx)
1. Ambil ukuran matrix n dan m dengan menggunakan fungsi size()
2. Inisialisasikan temp=[ ]
3. Lakukan looping dari 1 sampai n, untuk langkah 3 sampai langkah 6
4. Lakukan looping dari 1 sampai m, untuk langkah 4 sampai langkah 6
5. Jika j samadengan r atau j samadengan c, maka : a samadengan mtx(i,r)
b samadengan mtx(i,c)
temp(i,j) samadengan nilai minimum a dan b 6. Jika tidak, maka temp(i,j) samadengan mtx(i,j)
7. Lakukan looping dari 1 sampai n, untuk langkah 7 sampai langkah 10
8. Jika i samadengan r atau i samadengan c, maka lakukan langkah 9
9. Lakukan looping dari 1 sampai m, untuk langkah 9 sampai langkah 10
a samadengan mtx(i,r) b samadengan mtx(i,c)
temp(i,j) samadengan nilai minimum a dan b 11. Hapus baris r dan kolom r temp dengan cara :
temp(:,r) samadengan [ ] temp(r,:) samadengan [ ] 12. Kembalikan temp Output : Tabel jarak baru
3.4.3. Silhouette Coefficient
Silhouette Coefficient digunakan untuk mengukur tingkat kekompakan data ketika cluster telah terbentuk, dengan cara menunjukan nilai silhouette setiap data ketika telah terbentuk nya cluster, agar dapat disimpulkan apakah data yang ada pada setiap masing-masing cluster nya cocok atau tidak. Pada penelitian ini, penulis akan menggunakan fungsi silhouette yang telah disediakan oleh MATLAB. Adapun algortimanya yaitu :
1. Baca data ciri citra Aksara Bali
2. Lakukan Hirarchical Clustering untuk mendapatkan node tree -nya.
3. Dengan memanfaatkan fungsi cluster(), masukan node dari langkah 2 dan jumlah cluster yang diinginkan dengan parameter “maxclust”.
4. Untuk menghitung nilai silhouette setiap data, gunkana fungsi silhouette(), masukan ciri yang ada pada langkah 1 dan masukan hasil cluster pada langkah 3.
5. Gunakan fungsi mean() untuk mendapatkan rata-rata silhouette coefficient.
3.5. Cara Analisis Data
Analisis akan dilakukan dengan melihat akurasi terbaik yang dapat dihasilkan oleh rerata Silhouette Coefficient, dengan variable yang dapat diubah-ubah antara lain ukuran citra, ukuran window IoT (4x4, 5x5 sampai 8x8) dan rumus jarak yaitu Euclidean dan City Block.
3.6. Desain User Interface
3.6.1. Preprocessing
Gambar 3. 10 User Interface Preprocessing
• Input :
Memilih folder berisikan kumpulan citra aksara Bali yang akan diproses (Jika memilih Browse yang ada di Segmentation Process
maka akan menjalankan proses segmentasi. Sebaliknya jika memilih
Browse yang ada di Noise Reduction maka akan menjalankan
proses noise reduction).
• Output :
Ketika menekan tombol “Start” (berlaku untuk Segmentation Process atau Noise Reduction) maka user wajib memilih folder untuk menyimpan hasil Pra-Preprocessing.
3.6.2. Clustering
Gambar 3. 11 User Interface Hierarchical Clustering
• Input :
Ketika menekan Browse, maka user dapat memilih folder yang berisikan citra aksara Bali yang akan dikelompokkan.
• Output :
Output yang dihasilkan oleh user interface ini ada tiga, antara lain : 1) Untuk melihat Dendrogram (ketika proses clustering sudah
dijalankan) maka dapat menekan tombol Dendrogram dan akan menampilkan frame Dendrogram.
2) Untuk menampilkan rerata dari suatu ncluster, maka user harus memasukan jumlah cluster lalu menekan tombol Silhouette
Coefficient, dan akan menampilkan nilai mean dari n cluster
tersebut beserta diagram silhouette coefficient nya.
3) Untuk menyimpan hasil (dalam hal ini citra aksara Bali) clustering berdasarkan n yang dimasukan, maka user harus menekan tombol Save Cluster, memilih directory penyimpanan, dan citra aksara Bali akan tersimpan sesuai dengan cluster nya masing-masing.
48
BAB IV
IMPLEMENTASI DAN ANALISIS HASIL
4.1. Deskripsi Data
Set data yang akan diolah yaitu Citra aksara Bali yang berjumlah 131. Yang mana dari 131 tersebut, terdapat 79 citra aksara Bali yang siap diolah (dalam arti, citra tersebut mengandung simbol aksara secara tunggal dan tidak ada nya noise secara kasat mata) dan terdapat 52 citra aksara Bali yang tidak siap diolah (dalam arti citra tersebut mengandung lebih dari satu simbol atau terdapat noise secara kasat mata). Sehingga, set data ini perlu dilakukannya tahap pra-preprocessing untuk mengatasi siap dan tidak siapnya set data tersebut diolah.
4.2. Implementasi
4.2.1. Preprocessing
Tahapan ini berguna menyiapkan set data sebelum akhirnya diolah di proses Preprocessing. Pada tahapan ini terbagi menjadi dua yaitu Proses Segmentasi, yang berguna untuk memisahkan simbol-simbol yang masih menyatu menjadi satu pada citra aksara, dan Noise Reduction, yang berguna untuk membersihkan noise yang ada pada citra (seperti bintik hitam pada citra atau noise kasat mata lain nya) sehingga ketika dilakukannya ekstraksi ciri maka noise tersebut tidak ikut diproses.
4.2.1.1. Proses Segmentasi
Tahap ini merupakan implementasi dari gambar 3.6. Tahapan ini berguna untuk memisahkan simbol aksara yang masih menjadi satu citra.
1. Binerisasi
Citra Asli Citra Biner
Gambar 4. 1 Proses Binerisasi - Symbol Segmentation Gambar 4.1 merupakan hasil binerisasi dari citra asli ke bentuk biner. Secara kasat mata, terlihat bahwa kedua citra tidak memiliki perbedaan, akan tetapi terlihat bahwa terjadinya perubahan representasi data yang mana sebelumnya ada uint8 menjadi logical (citra tersebut hanya tersusun atas nilai 1 dan 0).
2. Invers
Citra Biner Citra Biner Invers
Gambar 4. 2 Proses Invers - Symbol Segmentation Gambar 4.2 merupakan proses invers citra, yang mana awalnya citra yang memiliki latar putih dengan simbol berwarna hitam, diubah menjadi citra yang memiliki latar hitam dengan simbol berwarna putih. Hal ini dilakukan agar dapat menyesuaikan cara kerja fungsi yang ada di MATLAB.
3. Filling
Citra Invers Citra hasil Filling
Gambar 4. 3 Proses Filling - Symbol Segmentation Proses filling berguna untuk menutupi “pori-pori” yang ada pada citra invers, sehingga membuat objek simbol semakin utuh. Pada gambar 4.3 terlihat adanya perbedaan jumlah pixel berwarna putih, semula 1676 pixel menjadi 1687 pixel yang menunjukan bahwa “pori-pori” yang ada pada simbol aksara telah ditutup.
4. Filtering
Citra hasil filling Citra hasil Filtering Gambar 4. 4 Proses Filtering - Symbol Segmentation
Gambar 4.4 menunjukan hasil filtering yang mana akan membuang noise seperti “bintik putih” pada citra. Hal ini terlihat pada perbedaan jumlah pixel yang semula memiliki 1687 pixel menjadi 1676 pixel.
5. Character Segmentation
Gambar 4. 5 Hasil Proses Segmentasi
Gambar 4.5 menunjukan hasil segmentasi dengan menggunakan function bwlabel(). Semula citra aksara Bali yang tadinya 1 berubah menjadi 3.
4.2.1.2. Noise Reduction 1. Binerisasi
Citra Asli Citra Biner
Gambar 4. 6 Proses Binerisasi - Noise Reduction Gambar 4.6 merupakan hasil binerisasi dari citra asli ke bentuk biner. Bagian ini merupakan proses yang sama pengerjaannya dengan binerisasi pada poin 4.2.1.1, yang mana mengubah representasi data menjadi logical (nilai pixel hanya bernilai 1 atau 0).
2. Invers
Citra Biner Citra Biner Invers
Gambar 4. 7 Proses Invers - Noise Reduction Gambar 4.7 merupakan proses invers yang sama pada proses invers poin 4.2.1.1, yang mana awalnya citra yang memiliki latar putih dengan simbol berwarna hitam, diubah menjadi citra yang memiliki latar hitam dengan simbol berwarna putih.
3. Filtering
Citra Invers Citra Invers hasil
Filtering Gambar 4. 8 Proses Filtering - Noise Reduction Gambar 4.8 merupakan hasil filtering yang sama dengan proses filtering pada poin 4.2.1.1, yang perubahan yang terjadi ialah pixel yang semula berjumlah 927 menjadi 911, menunjukan bahwa noise berupa “bintik hitam” telah dihilangkan.
4. Invers
Citra Invers hasil filtering
Citra Invers dikembalikan seperti
semula Gambar 4. 9 Proses Invers kebentuk semula - Noise
Reduction
Gambar 4.9 merupakan proses invers yang sama pada proses invers poin 4.2.1.1, hanya saja mengubah warna latar citra yang semula hitam menjadi putih dan mengubah warna simbol yang putih menjadi hitam, sehingga citra kembali ke kondisi awal.
4.2.2. Proses Ekstraksi Ciri
Tahapan ini akan menghasilkan citra thinning aksara Bali, yang mana sebelumnya data-data citra aksara Bali tersebut telah melewati proses yang ada pada poin Pra-Preprocessing (4.2.1).
1. Binerisasi
Citra Asli Citra Biner
Gambar 4. 10 Proses Binerisasi - Proses Ekstraksi Ciri Gambar 4.10 merupakan merupakan hasil binerisasi dari citra asli ke bentuk biner. Bagian ini merupakan proses yang sama pengerjaannya dengan binerisasi pada poin 4.2.1.1, yang mana mengubah representasi data menjadi logical (nilai pixel hanya bernilai 1 atau 0).
2. Cropping
Citra Biner Citra Hasil
Cropping Gambar 4. 11 Gambar 4. 11 Proses Cropping – Proses
Ekstraksi Ciri
Gambar 4.11 menunjukan hasil citra setelah melalui proses cropping, dengan memanfaatkan function crop_aksara(). Terlihat pada citra biner yang sebelum nya berukuran 141x54 berubah menjadi 40x53. 3. Image Resize Citra hasil Cropping Ukuran citra yang diubah menjadi 40x40 Gambar 4. 12 Proses Image Resize - Proses Ekstraksi Ciri Gambar 4.12 menunjukan hasil citra setelah melalui proses image resize, dengan memanfaatkan function imresize(). Terlihat pada citra hasil cropping yang sebelum nya berukuran 40x53 berubah menjadi 40x40.
4. Thinning
Hasil image resize
Hasil thinning dengan function
rosenfeld Gambar 4. 13 Proses Thinning - Proses Ekstraksi Ciri Gambar 4.13 menunjukan hasil thinning simbol yang ada pada citra aksara Bali, dengan memanfaatkan function Rosenfeld(). Secara kasat mata, terlihat bentuk aksara dengan penulisan bentuk yang tebal diubah menjadi tipis. Hal ini juga dapat dilihat dari perbedaan banyaknya pixel hitam penyusun objek simbol aksara. 5. Ekstraksi Ciri
Gambar 4. 14 Hasil Ekstraksi Ciri IoT 4x4
Gambar 4.14 merupakan hasil ekstraksi ciri menggunakan intensity of character dengan ukuran 4x4, dengan menggunakan algoritma yang ada dipoin 3.5.2. Adapun arti dari matriks pada gambar diatas ialah setiap nilai yang ada pada koordinat (x,y), merepresentasikan banyaknnya jumlah pixel hitam. Sebagai contoh, nilai 24 pada koordinat (2,2) menunjukan adanya 24 pixel yang merepresentasikan warna hitam. Sebelum semua hasil ekstraksi ciri diproses untuk clustering, maka matriks ini akan diubah kebentuk vector yang berukuran 1x(nxn) dengan n adalah ukuran matriks intensity of character (seperti 4x4, 5x5, dst).