Anda di halaman 1dari 107

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

KLASIFIKASI BUKU BERDASARKAN GAMBAR SAMPUL


BUKU MENGGUNAKAN JARINGAN SYARAF TIRUAN
BACKPROPAGATION

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana

Komputer Program Studi Teknik Informatika

Oleh :

I Putu Budhi Darma Purwanta

145314063

TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2018

i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BOOK CLASSIFICATION BASED ON IT’S COVER USING


BACKPROPAGATION ATRIFICIAL NEURAL NETWORK

FINAL PROJECT

Presented as Partial Fulfillment of Requirements to Obtain Sarjana

Komputer Degree in Informatics Engineering Department

By :

I Putu Budhi Darma Purwanta

145314063

INFORMATICS ENGINEERING STUDY PROGRAM

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2018

ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

HALAMAN PERSETUJUAN PEMBIMBING

iii
HALAMAN
PLAGIAT PENGESAHAN
MERUPAKAN TINDAKAN TIDAK TERPUJI

iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

MOTO

Hidup itu pilihan, jika sudah memilih, hidup


anda akan dimulai, jika belum memilih, hidup
anda akan terhenti.

I Putu Budhi Darma Purwanta

v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PERNYATAAN KEASLIAN KARYA

Saya menyatakan sesungguhnya bahwa di dalam skripsi yang saya tulis ini
tidak memuat karya atau bagian karya orang lain, kecuali telah disebutkan dalam
kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, 6 September 2018


Penulis

I Putu Budhi Darma Purwanta

vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI

ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma:

Nama : I Putu Budhi Darma Purwanta


NIM : 145314063
Demi pengembangan ilmu pengetahuan, saya memberikan kepada
Perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul :

KLASIFIKASI BUKU BERDASARKAN GAMBAR SAMPUL


BUKU MENGGUNAKAN JARINGAN SYARAF TIRUAN
BACKPROPAGATION

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya


memberikan kepada perpustakaan Universitas Sanata Dharma hak untuk
menyimpan, mengalihkan daam bentuk media lain, mengelolanya dalam bentuk
pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di
internet atau media lain untuk kepentingan akademis tanpa perlu meminta izin dari
saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama
saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Dibuat di Yogyakarta
Pada Tanggal 6 September 2018
Yang Menyatakan

I Putu Budhi Darma Purwanta

vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ABSTRAK

Pada perpustakaan sering terjadi kesalahan untuk mengelompokkan buku,


karena judul sampul tidak sama dengan isi dari buku tersebut. Analisa dapat
dilakukan pada data – data multimedia, dari data multimedia tersebut akan diproses,
pada data gambar akan dilakukan pemrosesan citra untuk mengidentifikasi gambar
tersebut.
Penelitian ini memproses gambar sampul buku menggunakan pemrosesan
citra dan MSER (Maximally Stable Extermal Regions). Mencari tulisan judul
menggunakan OCR (Optical Character Recognition) Tesseract. Hasil tulisan
diproses menggunakan pemerolehan informasi. Tulisan dibandingkan untuk
membentuk matriks numerik, matrik tersebut dimasukkan ke jarigan syaraf tiruan
backpropagation untuk klasifikasi.
Percobaan klasifikasi dengan jaringan syaraf tiruan backpropagation,
dengan optimalisasi arsitektur jaringan, dihasilkan akurasi terbaik satu hidden layer
dengan 15 neuron sebesar 61,2069% dan 2 hidden layer dengan 15 dan 35 neuron
sebesar 63.3053%

Kata Kunci: Klasifikasi, Pemrosesan Citra, MSER, Tesseract,


Pemerolehan Informasi, Jaringan Syaraf Tiruan Backpropagation

viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

ABSTRACT

On library commonly wrong for clustering book cause the tittle of the book
different with the content of the book. Analysis can do it on multimedia data, from
multimedia data will be processed, on image data will doing image processing for
identification that image.
This research processed image book cover using image processing and
MSER (Maximally Stable Extermal Regions). Find word on tittle using Tesseract
OCR (Optical Character Recognition). Word result processed by information
retrieval. Word compares for creating matrix numeric, that matrix using for
classification on the backpropagation artificial neural network.
Classification experiment using the backpropagation artificial neural
network, with optimization network architecture, produce best accuracy 61.2069%
for one hidden layer on 15 neurons and 63.3053% for two hidden layers 15 neurons
and 35 neurons.

Keyword: Classification, Image Processing, MSER, Tesseract,


Information Retrieval, Backpropagation Artificial Neural Network.

ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

KATA PENGANTAR

Puji syukur penulis panjatkan kepada Ida Sang Hyang Widhi Wasa atau
Tuhan Yang Maha Esa, yang telah memberikan karunia berlimpah sehingga penulis
dapat menyelesaikan tugas akhir dengan sangat baik.

Penulis menyadari bahwa pada saat pengerjaan tugas akhir ini penulis
mendapatkan banyak bantuan dari berbagai pihak, baik berupa perhatian, kritik, dan
saran serta da yang sangat penulis butuhkan untuk kelancaran dan mendapatkan
hasil yang baik. Pada kesempatan ini penulis akan menyapaikan ucapan terima
kasih kepada:

1. Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D. selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
2. Dr. Cyprianus Kuntoro Adi, S.J., M.A., M.Sc., selaku dosen pembimbing
tugas akhir yang telah sabar dan penuh perhatian membimbing saya dalam
penyusunan tugas akhir.
3. Dr. Anastasia Rita Widiarti, M.Kom., selaku Ketua Program Studi Teknik
Informatika yang selalu memberikan dukungan dan perhatian serta saran
kepada mahasiswa tugas akhir dan pengerjaan tugas akhir.
4. Kedua orang tua tercinta Bapak I Made Sudiana dan Ibu Ni Nyoman
Sutrisnawati yang selalu mendoakan dan memberikan dukungan berupa
moral maupun materi kepada penulis, sehingga penulis dapat
menyelesaikan tugas akhir ini.
5. Seluruh dosen Teknik Informatika atas ilmu yang telah diberikan selama
perkuliahan dan pengalaman yang sangat berarti bagi penulis.
6. JackRakkan, DonatKeju, Sekamir, Jones, serta seluruh teman – teman
sesama peminatan komputasi yang berjuang bersama dan saling
mendukung dalam penyusunan tugas akhir ini.
7. Jarkom Oye ’14 yang selalu mestimulus dopamin penulis ketika
mengerjakan tugas akhir ini.

x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

8. Teman – teman Teknik Informatika Sanata Dharma angkatan 2014,


terimakasih atas semangat dan perjuangan bersama yang telah diberikan
kepada satu sama lain.
9. Anak Ilung dan Nyaik sebagai anak rantau tempat bernaung dalam suka
dan duka selama di Jogja.
10. Big Mom yang selalu memberikan stimulus dan kasih sayang selama
penulisan tugas akhir ini.

Yogyakarta, 6 September 2018


Penulis

I Putu Budhi Darma Purwanta

xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DAFTAR ISI
SAMPUL ..................................................................................................... i
COVER ....................................................................................................... ii
HALAMAN PERSETUJUAN PEMBIMBING ........................................ iii
HALAMAN PENGESAHAN ................................................................... iv
MOTO ......................................................................................................... v
PERNYATAAN KEASLIAN KARYA .................................................... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ILMIAH
UNTUK KEPENTINGAN AKADEMIS ................................................. vii
ABSTRAK ............................................................................................... viii
ABSTRACT ............................................................................................... ix
KATA PENGANTAR ................................................................................ x
DAFTAR ISI ............................................................................................. xii
DAFTAR TABEL .................................................................................... xiv
DAFTAR GAMBAR ............................................................................... xiv
BAB I .......................................................................................................... 1
1.1. Latar Belakang ........................................................................... 1
1.2. Rumusan Masalah...................................................................... 3
1.3. Tujuan ........................................................................................ 3
1.4. Luaran ........................................................................................ 3
1.5. Batasan Masalah ........................................................................ 4
BAB II ......................................................................................................... 5
2.1. Buku ........................................................................................... 5
2.2. Bahasa ........................................................................................ 7
2.2.1. Kata Dasar .............................................................................. 7
2.2.2. Kata Bentukan ........................................................................ 8
2.3. RGB ......................................................................................... 14
2.4. Grayscale ................................................................................. 14
2.5. Binerisasi Otsu ......................................................................... 14
2.6. Deteksi Maximally Stable Extremal Regions (MSER) ............ 18
2.7. Tesseract OCR ......................................................................... 19
2.8. Pemerolehan Informasi ............................................................ 20
2.8.1. Case-folding ......................................................................... 20
2.8.2. Tokenization ......................................................................... 21
2.8.1. Stop Word Removing ............................................................ 21
2.8.2. Stemming .............................................................................. 21
2.9. Jaringan Syaraf Tiruan............................................................. 22
2.9.1. Arsitektur Jaringan ............................................................... 22

xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

xiii

2.9.2. Backpropagation .................................................................. 24


BAB III ..................................................................................................... 31
3.1. Gambaran Umum .................................................................... 31
3.1.1. Data ...................................................................................... 31
3.1.2. Preprocessing ....................................................................... 32
3.1.3. Ekstraksi Ciri ........................................................................ 34
3.1.4. Pemerolehan Informasi......................................................... 34
3.1.5. Jaringan Syaraf Tiruan ......................................................... 37
3.1.6. Arsitektur Jaringan Syaraf Tiruan ........................................ 37
3.1.7. Metode Pengujian ................................................................. 42
3.1.8. Model Pembanding .............................................................. 42
3.2. Algoritma ................................................................................. 43
3.2.1. Preprocessing Judul Buku .................................................... 43
3.2.2. Pemerolehan Informasi......................................................... 43
3.2.3. Klasifikasi............................................................................. 44
3.3. Kebutuhan Sistem .................................................................... 44
3.4. Perancangan Antar Muka Sistem............................................. 45
BAB IV ..................................................................................................... 48
4.1. Preprocessing ........................................................................... 48
4.1.1. Pemrosesan Citra .................................................................. 48
4.1.2. Optical Character Recognition ............................................ 50
4.1.3. Pemerolehan Informasi......................................................... 52
4.2. Klasifikasi ................................................................................ 53
4.4.1. Satu Hidden Layer ................................................................ 53
4.4.2. Dua Hidden Layer ................................................................ 55
4.4.3. Arsitektur Optimal................................................................ 57
4.3. Uji Data Tunggal ..................................................................... 58
BAB V ...................................................................................................... 65
5.1. Gambaran Proses ..................................................................... 65
5.2. Kesimpulan .............................................................................. 66
5.3. Saran ........................................................................................ 66
DAFTAR PUSTAKA ............................................................................... 67
LAMPIRAN .............................................................................................. 69
A. Lampiran Program ....................................................................... 70
B. Lampiran Basis Data ................................................................... 90
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DAFTAR TABEL

Tabel 3.1 Ilustrasi perubahan kata ke numerik ......................................... 34


Tabel 3.2 Daftar Perubahan Awalan ......................................................... 35
Tabel 3.3 Gambaran singkat data yang akan masuk JST .......................... 36
Tabel 4.1 Perbandingan Tulisan................................................................ 51
Tabel 4.3 Fold Pertama ............................................................................. 57
Tabel 4.4 Fold Kedua................................................................................ 57
Tabel 4.5 Fold Ketiga ............................................................................... 58

DAFTAR GAMBAR

Gambar 2.1 Gambaran Tata Letak pada Cover Buku ................................. 6


Gambar 2.2 Ilustrasi Perubahan Kata Awalan Ber- .................................. 11
Gambar 2.3 Ilustrasi Perubahan Kata Awalan Per- .................................. 11
Gambar 2.4 Ilustrasi Perubahan Kata Awalan Ter- .................................. 12
Gambar 2.5 Ilustrasi MSER (Dokumentasi Matlab 2010b)...................... 19
Gambar 2.6 Ilustrasi Jaringan Lapis Tunggal (Hagan & Demuth, 2014) 23
Gambar 2.7 Ilustrasi Jaringan Lapis Majemuk (Hagan and Beale, 2014) 23
Gambar 2.8 Jaringan 3 Layer (Hagan and Beale, 2014) ........................... 24
Gambar 2.9 Contoh Jaringan Fungsi Aprokmasi ...................................... 25
Gambar 2.10 Jaringan 3 Lapis, dengan notasi ringkas ............................. 26
Gambar 3.1 Diagram Blok Sistem ............................................................ 31
Gambar 3.2 Contoh Cover Buku .............................................................. 32
Gambar 3.3 Preprocessing I ...................................................................... 33
Gambar 3.4 Hasil Deteksi Objek Menggunakan MSER .......................... 33
Gambar 3.5 Gambar setelah koordinat selain MSER diubah menjadi 0 .. 33
Gambar 3.6 Tampilan menu utama ........................................................... 45
Gambar 3.7 Tampilan jendela preprocessing uji tunggal ......................... 47

xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Gambar 4.1 Menggunakan region area 20-1200 dan thershold delta 12 . 49


Gambar 4.2 Menggunakan region area 20-800 dan thershold delta 5 ...... 49
Gambar 4.3 Contoh gambar setelah diproses grayscale yang tidak bisa
dideteksi MSER ........................................................................................ 49
Gambar 4.4 Contoh hasil MSER grayscale gambar yang baik ................ 50
Gambar 4.5 Contoh hasil setelah piksel koordinat selain nilai MSER diubah
menjadi 0 ................................................................................................... 50
Gambar 4.6 Arsitektur JST satu hidden layer ........................................... 53
Gambar 4.7 Arsitektur JST dua hidden layer dengan layer pertama 15
neuron ....................................................................................................... 55
Gambar 4.8 Arsitektur JST dua hidden layer dengan layer pertama 25
neuron ....................................................................................................... 56
Gambar 4.9 Arsitektur JST optimal .......................................................... 57
Gambar 4.10 Preprocessing Data 1 .......................................................... 58
Gambar 4. 11 Hasil Data 1 ........................................................................ 59
Gambar 4. 12 Preprocessing Data 2 ......................................................... 59
Gambar 4. 13 Hasil Data 2 ........................................................................ 60
Gambar 4. 14 Preprocessing Data 3 ......................................................... 61
Gambar 4. 15 Hasil Data 3 ........................................................................ 61
Gambar 4. 16 Preprocessing Data 4 ......................................................... 62
Gambar 4. 17 Hasil Data 4 ........................................................................ 62
Gambar 4. 18 Preprocessing Data 5 ......................................................... 63
Gambar 4. 19 Hasil Data 5 ........................................................................ 63
Gambar 4. 20 Preprocessing Data 6 ......................................................... 64
Gambar 4. 21 Hasil Data 6 ........................................................................ 64

xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BAB I

PENDAHULUAN

1.1. Latar Belakang

Buku merupakan jenis literatur tua yang masih digunakan hingga kini,
terdapat banyak perpustakaan dan percetakan di dunia, setiap buku mungkin
membahas hal yang sama tetapi tidak akan memiliki informasi yang sama persis.
Selain informasi yang menarik, buku juga memiliki bagian unik yakni sampul.
Buku memiliki sampul yang berbagai macam, sampul tersebut berisikan informasi
tentang buku tersebut, terkadang judul pada sampul tersebut tidak mirip dengan isi
dari sebuah buku.
Pada perpustakaan sering terjadi kesalahan untuk mengelompokkan buku,
tidak dimungkinkan untuk mengetahui secara detail buku – buku yang dimiliki oleh
perpustakaan, hal tersebut membuat pengelompokan hanya dilakukan berdasarkan
judul pada sampul bukunya saja, karena judul sampul tidak sama dengan isi dari
buku tersebut, sering terjadi kesalahan penempatan buku.
Banyak perusahaan besar bernaung pada penjualan buku seperti Amazon
yang memiliki refrensi penjualan buku yang sangat banyak, tujuan untuk
memudahkan pembeli dalam memilih buku yang dibantu oleh sistem rekomendasi
dari Amazon, dilakukan pemetaan karakteristik pembeli atau pembaca, dengan
menambang informasi yang ada pada akun pembeli, masyarakat mengunggah data
multimedia misalnya sampul buku, dari sampul tersebut bisa dicari hubungan
antara pembeli dengan data yang mereka unggah.
Upaya untuk melakukan analisa pembeli dapat dilakukan pada data – data
multimedia pengguna, dari data multimedia tersebut akan diproses, pada data
gambar akan dilakukan pemrosesan citra untuk mengidentifikasi gambar tersebut,
pada kasus sampul buku, gambar akan diproses untuk mendapatkan judulnya, judul
diprosesan untuk mengetahui judul buku, dari judul tersebut dilakukan analisa

1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

untuk mengetahui buku yang dicari dan kekerabatannya, dari data tersebut maka
akan ditemukan buku yang sesuai dengan data pengguna.
(Iwana et al., 2016) telah melakukan penelitian serupa untuk sampul buku.
Pada penelitian tersebut dilakukan deep learning menggunakan Jaringan Syaraf
Tiruan dan dilakukan pada seluruh sampul buku dengan hasil akurasi yang hanya
dibawah 70%, pada penelitian tersebut umumnya menggunakan tiga jenis ciri yakni
ciri warna, ciri gambar, dan ciri tulisan. Pada ciri warna pada umumnya semakin
muda warna sampul mengindikasikan semakin muda juga calon pembaca buku
tersebut. Pada ciri gambar di penelitian tersebut dikatakan gambar akan
mempengaruhi topik yang cenderung sama dengan gambar sampul. Pada ciri
tulisan sebuah buku yang berisikan tentang ilmu filsafat, sosial, hukum dan misteri
akan cenderung memiliki tulisan yang banyak pada sampulnya.
Penulis melihat perbedaan yang sudah dijelaskan sebelumnya sebagai
sebuah masalah yang ingin diteliti penulis, dengan mencari tahu hubungan antara
judul pada sampul buku dengan informasi yang akan dipaparkan dalam buku
tersebut dengan mengelompokan buku – buku berdasarkan judul pada sampulnya
dan membandingkannya dengan informasi yang didapat melalui metode penulis
gunakan dan membandingkannya dengan informasi isi dari buku tersebut, sehingga
dapat menjawab pertanyaan apakah sampul tersebut dapat digunakan untuk
mengelompokkan buku dan mengetahui genre buku tersebut.
Ada beberapa metode untuk melakukan klasifikasi yakni Naïve Bayes,
Dessicion Tree, Support Vector Machine, dan Jaringan Syaraf Tiruan. Terdapat
beberapa metode klasifikasi dengan Jaringan Syaraf Tiruan. Metode CNN untuk
klasifikasi buku (Iwana et al., 2016) dan Backpropagation untuk klasifikasi burung
(Putera, 2016)
Penulis ingin membuat model klasifikasi buku, model ini akan melakukan
identifikasi secara otomatis judul pada sampul buku. Preprocessing sebelum
dilakukan klasifikasi menggunakan pemrosesan citra dan pemerolehan informasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

1.2. Rumusan Masalah

Rumusan masalah yang ingin dijawab penulis dalam penelitian ini adalah
sebagai berikut:

1. Apakah pemerolehan informasi mampu mengektraksi ciri pada


setiap judul buku?
2. Apakah metode Backpropagation dapat mengklasifikasi buku
berdasarkan ekstraksi ciri dari sampul buku?

1.3. Tujuan

Tujuan yang ingin dicapai dari penelitian ini adalah sebagai berikut:

1. Melakukan identifikasi gambar tulisan menggunakan optical


character recognition.
2. Menggunakan pemerolehan informasi untuk mendapatkan
ekstraksi ciri judul buku.
3. Membangun model klasifikasi buku menggunakan jaringan
syaraf tiruan backpropagation.

1.4. Luaran

Dengan penelitian ini diharapkan mendapat luaran sebagai berikut:

1. Klasifikasi judul pada sampul buku dapat dilakukan dan


mendapat akurasi yang baik sehingga luaranya dapat
dipertanggung jawabkan
2. Klasifikasi dapat dilakukan dengan menggunakan judul pada
sampul buku untuk dikelompokkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

1.5. Batasan Masalah

Batasan masalah yang penulis akan pakai dalam penelitian ini sebagai
berikut:

1. Penulis menggunakan data sampul buku dari percetakan


Kanisius untuk melakukan penelitian ini dengan tinggi gambar
180px.
2. Data Sampul yang digunakan hanya sampul kerohanian, filsafat,
dan pelajaran.
3. Penulis akan mebandingkan informasi yang sudah ada pada data
dari nama buku dengan hasil dari klasifikasi untuk mengetahui
kecocokan antara sampul dan topik buku
4. Penulis hanya akan membatasi pemrosesan citra pada judul buku
pada sampulnya saja.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BAB II

TINJAUAN PUSTAKA

2.1. Buku

Buku modern disusun menurut format tertentu yang disebut tata letak buku.
Meskipun ada variasi tata letak yang banyak, buku modern cenderung mematuhi
seperangkat peraturan berkaitan dengan bagian tata letak dan isi konten mereka
biasanya. Tata letak dasar akan mencakup sampul depan, penutup belakang, dan isi
buku yang disebut halaman salinan atau konten tubuhnya. Sampul depan sering
memakai judul buku (dan sub judul, jika ada) dan nama pengarang atau editornya.
Bagian depan sampul depan biasanya kosong pada buku hardcover dan paperback
(Shelly, Gary B.; Starks, 2011).

Buku memiliki tiga bagian yakni sampul depan, belakang, dan isi, pada
sampul depan terdapat grafis dan tulisan judul dari buku tersebut, pada umumnya
tulisan pada cover menggunakan font Times New Roman, Arial, dan Trebuchet MS,
pada judul sampul buku memiliki karakteristik yang berbeda - beda tidak sama satu
sama lain, pada posisi judul buku tidaklah menentu, pada umumnya posisi judul
pada sampul buku terletak pada seperempat bagian atas sampul menggunakan rata
tengah, dan pengarang terletak pada seperempat bagian pojok bawah sampul.

5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Judul Lokasi umum Judul

Pengarang Lokasi umum pengarang


Gambar 2.1 Gambaran Tata Letak pada Cover Buku

Sebagai prasyarat penting untuk pencarian gambar berbasis teks, teks dalam
gambar harus ditempatkan dengan baik. Namun, menjadi menantang karena
beragamnya tampilan teks, seperti variasi font dan gaya, distorsi geometrik dan
fotometrik, oklusi parsial, dan kondisi pencahayaan yang berbeda. Deteksi teks
telah dipertimbangkan dalam banyak penelitian terkini dan berbagai metode
dilaporkan dalam literatur (Chen et al., 2011).

Buku memiliki variasi dalam tampilan teks, seperti variasi font dan gaya,
distorsi geometrik dan fotometrik, oklusi parsial, dan kondisi pencahayaan yang
berbeda hal ini tak lepas dari keinginan penerbit untuk meningkatkan daya tarik
pembeli sehingga sampul buku disisipkan berbagai macam unsur seni dan
keindahan, kreasi tersebut bisa membuat perbedaan antara satu buku dengan buku
yang lain atau setiap buku memiliki ciri khas tertentu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

2.2. Bahasa

Bahasa mempunyai dua aspek, yaitu aspek bentuk dan aspek makna
(Mustakim, 2014). Aspek bentuk berupa wujud suara atau wujud visual suatu
bahasa. Wujud suara dapat diketahui dari bunyi-bunyi bahasa yang didengar, wujud
visual berupa lambang-lambang bunyi bersistem yang tampak jika bahasa itu
dituliskan. Aspek makna merujuk pada pengertian yang ditimbulkan oleh wujud
audio atau wujud visual bahasa itu. Dengan contoh sebagai berikut:

(1) Indonesia merupakan negara kepulauan yang berbentuk republik.

Contoh (1) tersebut memperlihatkan wujud visual suatu bahasa yang


berbentuk kalimat. Kalimat adalah satuan bahasa yang terdiri dari rangkaian
beberapa kata yang mengandung informasi cukup lengkap.

Kata-kata yang membentuk kalimat (1) terdiri atas tujuh kata, ketujuh kata
yang dimaksud adalah sebagai berikut.

Indonesia (kata dasar)

merupakan (kata bentukan)

negara (kata dasar)

kepulauan (kata bentukan)

yang (kata dasar/penghubung)

berbentuk (kata bentukan)

republik. (kata dasar)

2.2.1. Kata Dasar

Kata dasar selain dapat digunakan sebagai dasar bagi bentukan kata lain
yang lebih luas, dapat pula digunakan tanpa ditambah dengan imbuhan apa pun.
Beberapa kata yang tergolong sebagai kata dasar sudah diketahui dan sudah
tersimpan di dalam memori para pengguna bahasa. Jika akan digunakan, kata-kata
tinggal dikeluarkan dari memori atau ingatan. Demikian dalam berbahasa tidak ada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

masalah jika informasi yang disampaikan seluruhnya dinyatakan dalam bentuk kata
dasar.

2.2.2. Kata Bentukan

Pembentukan kata adalah proses membentuk kata dengan menambahkan


imbuhan atau unsur lain pada kata dasar. Dalam bahasa Indonesia, pembentukan
kata dapat dilakukan dengan menggunakan berbagai cara. Cara yang dimaksud
adalah sebagai berikut.

2.2.2.1. Pengimbuhan

Imbuhan dalam bahasa Indonesia terdiri atas empat macam dibagi


berdasarkan tata letaknya. Pertama, imbuhan pada awal kata lazim disebut awalan
(prefiks). Kedua, imbuhan pada akhir kata lazim disebut akhiran (sufiks). Ketiga,
imbuhan pada tengah kata lazim disebut sisipan (infiks). Keempat, imbuhan pada
awal kata dan akhir kata sekaligus lazim disebut gabungan imbuhan (konfiks).
Beberapa contoh imbuhan itu dapat diperhatikan sebagai berikut.

a. Awalan

meng- → menulis, melamar, memantau


di- → ditulis, dilamar, dipantau
peng- → penulis, penyanyi, peramal
ber- → berkebun, bermain, bermimpi
ter- → terpaksa, terpadu, tersenyum
se- → serupa, senada, seiring

b. Akhiran

ian- → tulisan, tatapan, tantangan


i- → temui, sukai, pandangi
kan- → tumbuhkan, sampaikan, umumkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

c. Sisipan

el- → geletar, geligi, gelantung


em- → gemuruh, gemetar
er- → gerigi

d. Gabungan Imbuhan

meng-...-kan → menemukan, meratakan


meng-...-i → memandangi, mengunjungi
peng-...-an → pendidikan, pemandian
ke-...-an → kehujanan, kemajuan
se-...-nya → seandainya, sebaiknya
per-...-an → peraturan, persimpangan

A. Pembentukan Kata dengan Awalan

Awalan meng- dan peng- dapat mengalami perubahan bentuk jika


digabungkan dengan kata dasar yang berawal dengan fonem tertentu. Awalan
meng-, misalnya, dapat berubah bentuknya menjadi me-, meny-, men-, mem-, dan
menge-. Begitu dengan awalan peng-. Seperti awalan meng-, awalan peng- juga
dapat berubah menjadi pe-, peny-, pen-, pem-, dan penge-.

I. Perubahan Awalan Meng- dan Peng-

1) Awalan meng- dan peng- berubah menjadi me- dan pe- jika
dirangkaikan dengan kata dasar yang berawal fonem /r, l, m, n, w, y,
ng, ny/. Misalnya:

meng-/peng - + nyanyi → menyanyi, penyanyi


2) Awalan meng- dan peng- berubah menjadi mem- dan pem- jika
dirangkaikan dengan kata dasar yang berawal dengan fonem /p, b, f,
v/. Misalnya:

meng-/peng - + bawa → membawa, pembawa


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

10

3) Awalan meng- dan peng- berubah menjadi men- dan pen- jika
dirangkaikan dengan kata dasar yang berawal dengan fonem /t, d, c,
j, z, sy/. Misalnya:

meng-/peng - + tuduh → menuduh, penuduh


4) Awalan meng- dan peng- tetap menjadi meng- dan peng- jika
dirangkaikan dengan kata dasar yang berawal dengan fonem /k, g,
h, kh, dan vokal/. Misalnya:

meng-/peng- + karang → mengarang, pengarang


5) Awalan meng- dan peng- berubah menjadi meny- dan peny- jika
dirangkaikan dengan kata dasar yang berawal dengan fonem /s/.
Misalnya:

meng-/peng- + sayang → menyayang, penyayang


6) Awalan meng- dan peng- berubah menjadi menge- dan penge- jika
dirangkaikan dengan kata dasar yang hanya terdiri atas satu suku
kata. Misalnya:

meng-/peng- + tes → mengetes, pengetes


7) Fonem /k, p, t, s/ pada awal kata dasar luluh jika mendapat awalan
meng- dan peng-. Misalnya:

meng-/peng- + kikis → mengikis, pengikis


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

11

II. Perubahan Awalan ber-

Awalan ber- dapat berubah menjadi be- dan bel- atau tetap menjadi ber-.
Awalan ber- berubah menjadi be- jika digabungkan dengan kata dasar yang berawal
dengan fonem /r/ atau kata dasar yang suku kata pertamanya mengandung bunyi
[er].

Be- Beroda

Ber- Bel- Belajar

Ber- Bertanya

Gambar 2.2 Ilustrasi Perubahan Kata Awalan Ber-

III. Perubahan Awalan per-

Awalan per- dapat berubah menjadi pe- dan pel- atau tetap menjadi per-.
Dalam hal ini, awalan per- berubah menjadi pe- jika digabungkan dengan kata yang
mempunyai pertalian bentuk dengan kata lain yang berawalan ber- atau jika
digabungkan dengan kata yang berawal dengan fonem /r/.

Pe- Petani

Per- Pel- Pelajar

Per- Pertanda

Gambar 2.3 Ilustrasi Perubahan Kata Awalan Per-

IV. Perubahan Awalan ter-

Awalan ter- hanya dapat berubah menjadi te- jika digabungkan dengan kata
dasar yang berawal dengan fonem /r/ atau suku kata pertamanya mengandung bunyi
[er]. Awalan ter- tetap menjadi ter- jika digabungkan dengan kata dasar yang lain.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

12

Te- Terasa
Ter-
Ter- Terbaik

Gambar 2.4 Ilustrasi Perubahan Kata Awalan Ter-

V. Pertalian Bentuk

Dalam pembentukan kata terdapat pertalian bentuk antara awalan peng- dan
meng- serta awalan per- dan ber-. Contohnya pada bentukan kata pengembangan
dan perkembangan.

B. Pembentukan Kata dengan Akhiran

Akhiran dalam bahasa Indonesia sebagaimana telah disebutkan di atas


adalah –an, -kan, dan –i. Imbuhan –isasi yang sering digunakan dalam bahasa
Indonesia berasal dari –isatie (Belanda) atau –ization (Inggris). Imbuhan asing –ir
menggunakan unsur serapan yang berasal dari bahasa Inggris. Imbuhan –wan dan
–man semula juga berasal dari bahasa asing, yakni bahasa Sanskerta.

C. Pembentukan Kata dengan Sisipan

Sisipan dalam bahasa Indonesia jumlahnya sangat terbatas yakni –em-, -el-
, –er-,dan –in-.

D. Pembentukan Kata dengan Gabungan Imbuhan

Imbuhan di-...-kan atau meng-...-kan jika ditambahkan pada kata-kata dasar


yang berakhir dengan huruf /k/, kata bentukannya akan mengandung dua huruf /k/.

Imbuhan peng- jika diikuti akhiran, akhiran yang mengikutinya adalah –an,
bukan –kan, sehingga gabungan imbuhan itu menjadi peng-...-an, sama seperti
imbuhan ke-...an.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

13

2.2.2.2. Penggabungan kata dasar dan kata dasar

Pembentukan kata dalam bahasa Indonesia juga dapat dilakukan

dengan menggabungkan kata dasar dan kata dasar. Misalnya, dari kata dasar
tanda dan kata dasar tangan dapat digabungkan sehingga menjadi tanda tangan.
Beberapa kata lain yang dibentuk dengan penggabungan kata dasar dan kata dasar
dapat dilihat pada contoh berikut.

kerja sama

tanggung jawab

terima kasih

serah terima

sumber daya

terima kasih

serah terima

sebar luas

2.2.2.3. Penggabungan unsur terikat dan kata dasar

Unsur terikat yang dimaksud adalah unsur yang keberadaannya tidak dapat
berdiri sendiri sebagai kata. Dengan demikian, unsur itu selalu terikat pada unsur
yang lain, antara lain swa-, pra-, pasca-, sub-, non-, multi-, tuna-, maha-, multi-,
antar-, nara-, semi- purna-, ultra-, dan adi-.

Di samping yang telah disebutkan di atas, kata-kata bilangan dalam bahasa


Indonesia yang berasal dari bahasa Sanskerta, seperti eka, dwi-, tri- , catur-, panca-
, sad-, sapta-, hasta-, nawa-, dan dasa-, juga dipandang sebagai unsur terikat. Oleh
karena itu, unsur-unsur tersebut juga ditulis serangkai.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

14

2.3. RGB

RGB merupakan singkatan dari merah (red), hijau (green), dan biru (blue),
setiap perpaduan warna dasar tersebut akan menghasilkan warna baru dengan
memperhatikan terang gelapnya juga, suatu tulisan pada umumnya memiliki warna
hitam, untuk kasus sampul buku ini, warna tulisan pada judul buku memiliki warna
yang bervariasi, ragam warnanya pun bisa warna tegas dan gradasi.

Ruang warna RGB tertentu didefinisikan oleh tiga kromatisitas warna


merah, hijau, dan biru, dan dari warna dasar tersebut menghasilkan kromatisitas
segitiga yang ditentukan oleh warna primer tersebut (Hunt, 2004).

2.4. Grayscale

Dalam fotografi, komputasi, dan kolorimetri, gambar grayscale atau


greyscale adalah satu di mana nilai setiap piksel adalah sampel tunggal yang hanya
mewakili jumlah cahaya, hanya informasi intensitas saja. Gambar semacam ini,
juga dikenal sebagai hitam-putih atau monokrom, terdiri dari nuansa abu-abu,
bervariasi dari hitam pada intensitas paling lemah hingga putih pada yang terkuat
(Johnson, 2006). Citra grayscale merupakan citra yang memiliki rentang 0-255,
untuk citra sampul buku memiliki warna yang tidak tegas, namun pada judul buku
memiliki warna gradasi pada tulisannya.

Algortima rgb2gray pada Matlab 2014b:

𝐺𝑟𝑎𝑦𝑠𝑐𝑎𝑙𝑒 = 0.2989 ∗ 𝑅𝑒𝑑 + 0.5870 ∗ 𝐺𝑟𝑒𝑒𝑛 + 0.1140 ∗ 𝐵𝑙𝑢𝑒 (2.1)

2.5. Binerisasi Otsu

Metode untuk memilih ambang secara otomatis dari tingkat abu-abu


histogram telah diturunkan dari analisis sudut pandang diskriminan. Hal ini secara
langsung berkaitan dengan masalah evaluasi ambang batas terbaik, dan solusi
terbaik menerapkan multithreshold (Noboyuki, 1979).

Binerisasi otsu merupakan teknik binerisasi yang menerapkan tingkat


binarisasi yang berbeda setiap bagiannya, pada sampul buku binerasisasi dilakukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

15

setelah mendapatkan objek tulisan pada sampul buku, untuk memudahkan


identifikasi tulisan.

Gray level histogram dari Otsu, dimana L merupakan level keabu-abuan dan
N merupakan total dari jumlah piksel citra

𝑝𝑖 = 𝑛𝑖 ⁄𝑁 , 𝑝𝑖 ≥ 0, ∑ 𝑝𝑖 = 1 (2.2)
𝑖=1

Mengotomisasi piksel menjadi dua kelas C 0 dan C1 (latar belakang dan


objek, atau sebaliknya) dengan ambang batas pada tingkat k; C 0 menunjukkan
piksel dengan tingkat [1, ..., k], dan C1 menunjukkan piksel dengan tingkat [k + 1,
..., L]. Maka probabilitas kejadian kelas dan kelas rata-rata, masing-masing,
diberikan oleh

𝜔0 = Pr(𝐶0 ) = ∑ 𝑝𝑖 = 𝜔(𝑘) (2.3)


𝑖=𝑘+1

𝜔1 = Pr(𝐶1 ) = ∑ 𝑝𝑖 = 1 − 𝜔(𝑘) (2.4)


𝑖=𝑘+1

dan

𝜇0 = Pr(𝑖|𝐶0 ) = ∑ 𝑝𝑖 ⁄𝜔0 = 𝜇 (𝑘 )⁄𝜔(𝑘 ) (2.5)


𝑖=1

𝑘
𝜇 𝑇 − 𝜇 (𝑘 )
𝜇1 = Pr(𝑖|𝐶1 ) = ∑ 𝑝𝑖 ⁄𝜔1 = (2.6)
1 − 𝜔 (𝑘 )
𝑖=1+1

dimana

𝜔(𝑘 ) = ∑ 𝑝𝑖 (2.7)
𝑖=1
𝑘

𝜇(𝑘 ) = ∑ 𝑖𝑝𝑖 (2.8)


𝑖=1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

16

adalah saat kumulatif orde pertama dan histogram orde pertama sampai ke-
k, masing-masing, dan

𝜇 𝑇 = 𝜇 (𝐿) = ∑ 𝑖𝑝𝑖 (2.9)


𝑖=1

adalah tingkat rata-rata total dari gambar aslinya. Dapat dengan mudah
memverifikasi relasi berikut untuk pilihan k:

𝜔0 𝜇0 + 𝜔1 𝜇1 = 𝜇 𝑇 , 𝜔0 + 𝜔1 = 1 (2.10)
Variasi kelas diberikan oleh:

𝑘 𝑘

𝜎02 = ∑(𝑖 − 𝜇0 ) Pr(𝑖 |𝐶0 ) = ∑(𝑖 − 𝜇0 )2 𝑝𝑖 ⁄𝜔0


2
(2.11)
𝑖=1 𝑖=1

𝐿 𝑘

𝜎12 = ∑ (𝑖 − 𝜇1 )2 Pr(𝑖 |𝐶1 ) = ∑ (𝑖 − 𝜇1 )2 𝑝𝑖 ⁄𝜔1 (2.12)


𝑖=𝑘+1 𝑖=𝑘+1

Menurut Fukunage (Otsu, 1979) diperlukan momen kumulatif orde dua


(statistik). Untuk mengevaluasi "kebaikan" ambang batas (pada tingkat k), kami
akan memperkenalkan ukuran kriteria diskriminan berikut (atau ukuran
keterpisahan kelas) yang digunakan dalam analisis diskriminan:

𝜆 = 𝜎𝐵2 ⁄𝜎𝑊
2
, Κ = 𝜎𝑇2 ⁄𝜎𝑊
2
, 𝜂 = 𝜎𝐵2 ⁄𝜎𝑇2 , (2.13)
dimana

2
𝜎𝑊 = 𝜔0 𝜎02 + 𝜔1 𝜎12
(2.14)

𝜎𝐵2 = 𝜔0 (𝜇0 − 𝜇 𝑇 )2 + 𝜔1 (𝜇1 − 𝜇 𝑇 )2


= 𝜔0 𝜔1 (𝜇1 − 𝜇0 )2 (2.15)
(disebabkan oleh (2.10) dan

𝜎𝑇2 = ∑(𝑖 − 𝜇 𝑇 )2 𝑃𝑖 (2.16)


𝑖=1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

17

total varians level masing-masing. Kemudian masalah dikurangi menjadi


masalah optimasi untuk mencari ambang batas k yang memaksimalkan salah satu
fungsi objek (ukuran kriteria) di (12).

Sudut pandang ini dimotivasi oleh dugaan bahwa kelas ambang yang baik
akan dipisahkan dalam tingkat abu-abu, dan sebaliknya, ambang batas yang
memberikan pemisahan terbaik kelas dengan tingkat abu-abu akan menjadi ambang
terbaik.

Kriteria diskriminan yang memaksimalkan 𝜆, 𝜅, dan 𝜂, masing-masing,


bagaimanapun, setara satu sama lain; misalnya, 𝜅 = 𝜆 + 1 dan 𝜂 = 𝜆/(𝜆/+1)
dalam hal 𝜆 tersebut, karena relasi dasar berikut selalu berlaku:

2
𝜎𝑊 + 𝜎𝐵2 = 𝜎𝑇2
(2.17)

2
Hal ini memperhatikan bahwa 𝜎𝑊 dan 𝜎𝐵2 adalah fungsi dari tingkat ambang
k, namun 𝜎𝑇2 tidak bergantung pada k. Juga dicatat bahwa 𝜎𝑇2 didasarkan pada
statistik orde kedua (varians kelas), sedangkan (𝜎𝐵2 didasarkan pada statistik orde
pertama (mean kelas). Oleh karena itu, 𝜂 adalah ukuran paling sederhana
sehubungan dengan k. Jadi, diadopsi 𝜂 sebagai ukuran kriteria untuk mengevaluasi
"kebaikan" (atau keterpisahan) ambang batas pada tingkat k.

Batas optimal k * yang memaksimalkan 𝜂, atau ekuivalen memaksimalkan


𝜎𝐵2 dipilih dalam pencarian sekuensial berikut dengan 6 menggunakan jumlah
kumulatif sederhana (6) dan (7), atau secara eksplisit menggunakan (2) - (5):

𝜂 = 𝜎𝐵2 (𝑘)⁄𝜎𝑇2 (2.18)

[𝜇 𝑇 𝜔(𝑘 ) − 𝜇(𝑘 )]2


𝜎𝐵2 (𝑘 ) = (2.19)
𝜔(𝑘 )[1 − 𝜔(𝑘 )]

dan ambang optimal k * adalah

𝜎𝐵2 (𝑘 ∗ ) = max 𝜎𝐵2 (𝑘 ) (2.20)


1≤𝑘≤𝐿
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

18

Dari masalah ini, kisaran k di mana maksimum yang dicari bisa dibatasi

𝑆 ∗ = {𝑘; 𝜎𝐵2 = 𝜔0 𝜔1 = 𝜔(𝑘 )[1 − 𝜔(𝑘 )] > 0,


(2.21)
𝑜𝑟 0 < 𝜔(𝑘 ) < 1}
Disebut rentang efektif dari histogram tingkat abu-abu. Dari definisi di (14),
ukuran kriteria 𝜎𝐵2 (atau 𝜂) mengambil nilai minimum nol untuk k seperti k e S - S
* = {k; 𝜔(k) = 0 atau 1} (yaitu membuat semua piksel baik C1 atau C0, yang tentu
saja bukan diperhatikan) dan mengambil nilai positif dan terikat untuk ke S *. Oleh
karena itu, jelas bahwa maksimal selalu ada.

2.6. Deteksi Maximally Stable Extremal Regions (MSER)

Dokumentasi Matlab 2014b menjelaskan deteksi MSER meningkatkan


tingkatan berdasarkan rentang campuran warna gambar dan memasukkan gambar
untuk mendeteksi bagian yang stabil. Parameter ThresholdDelta digunakan unutk
mengatur perubahan degradasi grayscale, diibaratkan sebuah ember mengkrucut
dengan yang diisi dengan air berwarna dimana warna pada bagian pinggir akan
terlihat lebih terang daripada bagian tengah.

Parameter RegionArea digunakan untuk membatasi rentang pengambilan


area atau luas wilayah, semakin rentang areanya semakin luas cakupan wilayahnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

19

Gambar 2.5 Ilustrasi MSER (Dokumentasi Matlab 2010b)

Objek MSER akan memiliki nilai maksimum pada titik pinggirnya dan nilai
minimum pada titik tengahnya, kumpulan bagian tersebut bisa memiliki berbagai
bentuk tapi saling berkaitan satu sama lainnya membentuk suatu area (Matas et al.,
2002).

2.7. Tesseract OCR

Optical Charater Reognition ini dikembangkan pertama kali oleh Ray


Smith pada tahun 90’an dengan pendanaan dari Google, kemampuan OCR ini
memang mengalami perkembangan pesat, dengan bantuan basisdata dari setiap
bahasa memperkuat kemampuan Tesseract untuk melakukan pengenalan huruf,
dengan melakukan pemotongan tiap karakter membuat kemampuannya lebih akurat
dalam pengenalan karakter, menggunakan algoritma neuro-fuzzy pada pengenalan
sangat mudah dilakukan pada tulisan hitam putih (Smith, 2007).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

20

Urutan proses yang dilakukan Tesseract:

o Pencarian Baris dan Tulisan


1. Pencarian Baris
2. Baseline Fitting
3. Fixed Pitch Detection dan Chopping
4. Pencarian Proporsi Kata
o Rekognasi Kata
1. Menggabungkan Potongan Karakter
2. Associating Broken Characters
o Klasifikasi Karakter Statis
1. Ciri
2. Klasifikasi
3. Data Uji
o Analisis Linguistik
o Adaptive Classifier
o Hasil

2.8. Pemerolehan Informasi

Pemerolehan Infromasi (PI) adalah menemukan materi atau dokumen dari


sifat tidak terstruktur (biasanya teks) yang memenuhi kebutuhan informasi dari
dalam koleksi besar yang biasanya disimpan di komputer (Manning, Raghavan and
Schutze, 2009).

2.8.1. Case-folding

Setiap karakter pada kata diubah menjadi kapital dan tidak kapital, fungsi
dari case-folding untuk menghindari case-sensitve dari sebuah kata. Contoh kata
Automobile akan berbeda dengan automobile, untuk menyamakannya dilakukan
case-folding menjadi capital atau tidak capital. Teknik ini memiliki kelemahan pada
penggunaan akronim dan merk, contohnya seperti C.A.T menjadi CAT memiliki arti
sama dengan cat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

21

2.8.2. Tokenization

Teknik ini dilakukan pengurutan kata dan membagi sebuah dokumen,


tokenization adalah melakukan pemotongan menjadi potongan – potongan kecil
yang disebut token, pada saat yang sama dilakuakan penghilangan beberapa
karakter seperti tanda baca. Berikut merupakan contoh dari tokenization:

Input : Friends, Romans, Countrymen, lend me your ears;

Output : Friends Romans Countrymen lend me your ears

2.8.1. Stop Word Removing

Terkadang, beberapa kata sering muncul tetapi kata tersebut memiliki nilai
yang kecil untuk mengidentifikasi dokumen, pengguna perlu mengcualikan kata -
kata tersebut dengan membuat sebuah daftar vocabulary. Kumpulan kata tersebut
biasa disebut stop word. Pada umumnya strateginya untuk menentukan sebuah
daftar berhenti sementara menggunakan koleksi frekuensi.

Pada umumnya tren dari sistem pemerolehan informasi menggunakan


standar dari daftar pemberhentian besar (200-300 kata) hingga daftar
pemberhentian kecil (7-12 kata) hingga tanpa daftar pemberhentian. Mesin
pencarian web pada umumnya tidak mengggunakan daftar pemberhentian.
Beberapa desain dari modern pemerolehan informasi berfokus pada bagaimana
dapat mengolah statistik bahasa untuk dapat menggunakan bahasa dengan kata
yang umum secara baik.

2.8.2. Stemming

Beberapa kata memiliki makna yang sama satu sama lainnya hanya
dibedakan oleh penggunaan imbuhan, seperti demokrasi, demokratik, dan
demokratisasi.

Di dalam bahasa Indonesia beberapa imbuhan diberikan untuk membuat


kata menjadi aktif atau pasif, tetapi sebenarnya memiliki makna yang sama.
Contohnya bekerja, dikerjakan, dan mengerjakan, pada kata tersebut memiliki satu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

22

kata dasar yakni kerja. Bahasa Indonesia juga memiliki kata hubung yang
digunakan untuk membantu penyusunan kata atau disebut kata konjugasi.

Stemming merupakan proses dimana dilakukan pemotongan sufiks, infiks,


prefiks serta penghilangan kata-kata konjugasi, untuk mendapatkan makna
sebenarnya.

2.9. Jaringan Syaraf Tiruan

Jaringan syaraf tiruan yakni suatu sistem pengolahan data menggunakan


model jaringan syaraf manusia, dimana prosesnya pertama input masuk kedalam
neuron, pada neuron tersebut terdapat fungsi aktivasi, pemrosesan informasi
tersebut ada pada neuron – neuron dengan bantuan bias untuk memperkuat atau
memperlemah fungsi aktivasi pada neuron untuk mendapatkan output yang sesuai
(Hagan and Beale, 2014).

2.9.1. Arsitektur Jaringan

Pada jaringan syaraf tiruan terdapat 2 jenis yakni lapis tunggal dan lapis
majemuk.

1. Jaringan Lapis Tunggal

Jaringan ini memiliki arsitektur dimana input dihubungkan dengan lapisan


neuron tunggal sehingga pemrosesan data hanya dilakukan sekali untuk
mendapatkan output.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

23

Gambar 2.6 Ilustrasi Jaringan Lapis Tunggal (Hagan & Demuth, 2014)

2. Jaringan Lapis Majemuk

Gambar 2.7 Ilustrasi Jaringan Lapis Majemuk (Hagan and Beale, 2014)

Jaringan dengan lapis majemuk dimana lapisan neuron dimiliki oleh


jaringan tersebut lebih dari satu tetapi tidak membuat banyak hasil hanya berupa
proses berantai yang sering disebut layer tersembunyi, jaringan ini bisa memproses
informasi yang kompleks sehingga diharapkan menghasilkan akurasi yang lebih
baik dari lapis tunggal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

24

2.9.2. Backpropagation

Backpropagation, bisa digunakan untuk melatih jaringan lapis majemuk.


Seperti halnya aturan pembelajaran Learning Management System (LMS),
backpropagation adalah perkiraan algoritma keturunan terakhir, di mana indeks
kinerja adalah kuadrat dari mean error. Perbedaan antara Algoritma LMS dan
backpropagation hanya berupa perhitungan turunannya. Untuk jaringan linier
single-layer error merupakan linear eksplisit fungsi bobot jaringan, dan turunannya
sehubungan dengan bobot dapat dengan mudah dihitung. Dalam jaringan multilayer
dengan nonlinier fungsi transfer, hubungan antara bobot jaringan dan kesalahannya
lebih kompleks. Untuk menghitung turunannya perlu menggunakan aturan rantai
kalkulus (Hagan and Beale, 2014)

Notasi multilayer porpagasi balik,

R-S1-S2-S3 (2.22)

Gambar 2.8 Jaringan 3 Layer (Hagan and Beale, 2014)

Ilustrasi klasifikasi ciri menggunakan multilayer perceptron,

0 0 1 1
{𝑃1 = [ ] , 𝑡1 = 0} {𝑃2 = [ ] , 𝑡2 = 1} {𝑃3 = [ ] , 𝑡1 = 1} {𝑃4 = [ ] , 𝑡1 = 0}
0 1 0 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

25

1. Fungsi Aktivasi

Berikut contoh jaringan fungsi aprokmasi,

Gambar 2.9 Contoh Jaringan Fungsi Aprokmasi (Hagan and Beale, 2014)

dengan rumus logsig,

1
𝑓 1 (𝑛) = 𝑑𝑎𝑛 𝑓 2 = 𝑛 (2.23)
1 + 𝑒 −𝑛
Fungsi purelin merupakan fungsi aktivasi dengan hasil output sesuai dengan
perhitungan pada neuronnya

2. Propagasi Maju dan Mundur

Pada saat propagasi maju, masukan (wi) akan dipropagasikan ke lapisan


tersembunyi menggunakan fungsi aktivasi yang telah ditentukan, keluaran dari
setiap unit lapisan tersembunyi tersebut dipropagasikan maju lagi ke lapisan
tersembunyi selanjutnya, proses tersebut berlanjut sampai mencapai hasil tetapi
hasil luaran dibandingkan dengan target output atau minimum target, perbaikan
dilakukan jika hasil tidak mencapai target untuk mencapai taget atau minimum
target, untuk perbaikan tersebut dilakukan propagasi mundur.

Algoritma backpropagation digambarkan dengan rumus,

Am+1 = f m+1 (Wm+1 am + bm+1 ) untuk m = 0, 1,


(2.24)
…, M-1,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

26

dimana M adalah jumlah layer pada jaringan tersebut. Pada neuron pertama
diberikan nilai input

a0 = p, (2.25)
dan input neuron terakhir diberikan

a = a𝑚 , (2.26)

Gambar 2.10 Jaringan 3 Lapis, dengan notasi ringkas(Hagan and Beale, 2014)

3. Perbaikan Bobot dan Bias

Untuk mengetahui hasil sesuai dengan label maka dilakukan perhitungan


index performa atau mean square error (MSE) dengan membandingkan hasil dari
input (p) dan output (t)

{𝑝1 , 𝑡1 }, {𝑝2 , 𝑡2 }, … , {𝑝𝑄 , 𝑡𝑄 } (2.27)


rumus algoritma untuk mengurangi MSE

(2.28)

jika output berupa luaran jamak maka rumusnya,

(2.29)
dengan algoritma LMS, dengan iterasi sebanyak k, maka menggunakan
rumus

(2.30)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

27

Secara umum algoritma pelatihan jaringan backpropagation sebagai


berikut:

1. Inisialisasi bilangan bobot dengan nilai kecil


2. Jika kondisi untuk pemberhentian belum terpenuhi, lakukan langkah
3-10
3. Untuk setiap pasang data pelatihan, lakukan langkah 4-9
4. Setiap neuron menerima sinyal dan meneruskannya ke neuron
tersembunyi selanjutnya
5. Hitung semua luaran di neuron tersembunyi 𝑧𝑗 (j = 1, 2, 3, … , p)

𝑛
𝑧_𝑛𝑒𝑡𝑗 = 𝑣𝑗0 + ∑ 𝑥𝑖 𝑣𝑗𝑖 (2.31)
𝑖=1

1
𝑧𝑗 = 𝑓 (𝑧𝑛𝑒𝑡 𝑗 ) = (2.32)
1 + 𝑒 −𝑧_𝑛𝑒𝑡𝑗
6. Hitung semua luaran jaringan di neuron 𝑦𝑘 (k = 1, 2, 3, … , m)
𝑛
𝑦_𝑛𝑒𝑡𝑘 = 𝑤𝑘0 + ∑ 𝑥𝑗 𝑤𝑘𝑖 (2.33)
𝑗=1

1
𝑦𝑘 = 𝑓(𝑦𝑛𝑒𝑡 𝑘 ) = (2.34)
1 + 𝑒 −𝑦_𝑛𝑒𝑡𝑘
7. Hitung faktor 𝛿 neuron luaran berdasarakan error disetiap neuron
luaran 𝑦𝑘 (k = 1, 2, 3, … , m)

𝛿𝑘 = (𝑡𝑘 − 𝑦𝑘 )𝑓 ′
(𝑦𝑛𝑒𝑡𝑘 )
= (𝑡𝑘 − 𝑦𝑘 )𝑦𝑘 (1 − 𝑦𝑘 ) (2.35)

Hitung suku perubahan bobot 𝑤𝑘𝑗 dengan laju percepatan 𝛼

∆𝑤𝑘𝑗 = 𝛼𝛿𝑘 𝑧𝑗 ; 𝑘 = 1, 2, … , 𝑚 ; 𝑗 = 0, 1, … , 𝑝 (2.36)


8. Hitung faktor 𝛿 neuron luaran berdasarakan error disetiap neuron
luaran 𝑧𝑗 (j = 1, 2, 3, … , p)

𝑚
𝛿_𝑛𝑒𝑡𝑗 = ∑ 𝛿𝑘 𝑤𝑘𝑗 (2.37)
𝑘=1

Faktor 𝛿 neuron tersembunyi :


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

28

𝛿𝑗 = 𝛿_𝑛𝑒𝑡𝑗 𝑓′(𝑧𝑛𝑒𝑡𝑗 ) = 𝛿𝑛𝑒𝑡 𝑗 𝑧𝑗 (1 − 𝑧𝑗 ) (2.38)


Hitung suku perubahan bobot 𝑣𝑖𝑗

∆𝑣𝑖𝑗 = 𝛼𝛿𝑗 𝑥𝑖 ; 𝑗 = 1, 2, … , 𝑝 ; 𝑥 = 0, 1, … , 𝑛 (2.39)


9. Hitung semua perubahan bobot
Perubahan bobot garis yang menuju ke neuron luaran:

𝑤𝑘𝑗 (𝑏𝑎𝑟𝑢 ) = 𝑤𝑘𝑗 (𝑙𝑎𝑚𝑎)∆𝑤𝑘𝑗 (𝑘 = 1, 2, … , 𝑚 ; 𝑗 = 0, 1, … , 𝑝) (2.40)


Perubahan bobot garis yang menuju ke neuron tersembunyi:

𝑣𝑗𝑖 (𝑏𝑎𝑟𝑢) = 𝑣𝑗𝑖 (𝑙𝑎𝑚𝑎)∆𝑣𝑗𝑖 (𝑗 = 1, 2, … , 𝑝 ; 𝑖 = 0, 1, … , 𝑛) (2.41)


10. Bandingkan kondisi penghentian.

Untuk mengilustrasikan algortima backpropagation, digunakan contoh dari


Hagan, dengan menggunakan jaringan 1-2-1 dan bilangan acak kecil,

−0.27 1 ( ) −.048
𝑊 1 (0) = [ ],𝑏 0 = [ ] , 𝑊 2 (0) = [0.09 −0.17], 𝑏 2 (0) = [0.48]
−0.41 −.013

𝑎0 = 𝑝 = 1

Luaran lapis pertama

−0.27 [ ] −0.48 −0.75


𝑎1 = 𝑓 1 (𝑊 1 𝑎0 + 𝑏1 ) = 𝑙𝑜𝑔𝑠𝑖𝑔 ([ ] 1 +[ ]) = 𝑙𝑜𝑔𝑠𝑖𝑔 ([ ])
−0.41 −0.13 −0.54

1
0.75 −0.321
= [1 + 𝑒 ] = [ ]
1 −0.368
1 + 𝑒 0.54

−0.321
𝑎2 = 𝑓 2 (𝑊 2 𝑎1 + 𝑏2 ) = 𝑝𝑢𝑟𝑒𝑙𝑖𝑛 ([0.09 −0.17] [ ] + [0.48])
−0.368

= [0.446]

Perbaikan error

𝜋 𝜋
𝑒 = 𝑡 − 𝑎 = {1 + sin ( 𝑝)} − 𝑎2 = {1 + sin ( 1)} − 0.446 = 1.261
4 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

29

Langkah selanjutnya dari algoritma yakni sensitivitas backpropagation,


untuk memanggil kembali diperlukan turunan fungsi transfer dari 𝑓 1 (𝑛) dan 𝑓 2 (𝑛)
untuk lapis pertama

1(
𝑑 1 𝑒 −𝑛 1 1
𝑓 𝑛) = ( ) = = (1 − ) ( )
𝑑𝑛 1 + 𝑒 𝑛 (1 + 𝑒 −𝑛 )2 1 + 𝑒 −𝑛 1 + 𝑒 −𝑛

= (1 − 𝑎1 )(𝑎1 )

Untuk lapis kedua,

𝑑
𝑓 2 (𝑛 ) = (𝑛 ) = 1
𝑑𝑛

Backpropagation dimulai dari lapis kedua

𝑠 2 = −2𝐹 2 (𝑛2 )(𝑡 − 𝑎) = −2[𝑓 2 (𝑛2 )](1.261) = −2[1](1.261) = −2.522

Sensitifitas layer pertama merupakan komputasi dari backpropagation


sensitifitas lapis kedua

1 − 𝑎11 0 0.09 [
𝑠 1 = 𝐹1 (𝑛1 )(𝑊 2 )𝑇 𝑠 2 = [ 1 1 ] [−0.17] −2.522
]
0 (1 − 𝑎2 )(𝑎2 )

(1 − 0.321)(0.321) 0 0.09 [
=[ ][ ] −2.522]
0 (1 − 0.368)(0.368) −0.17

0.218 0 −0.227 −0.0495


=[ ][ ]=[ ]
0 0.233 −0.429 −0.997

Langkah terakhir yakni memperbarui bobot dengan menggunakan laju


pembelajaran α = 0.1
𝑊 2 (1) = 𝑊 2 (0) − αs 2 (a1 )𝑇 = [0.09 −0.17] − 0.1[−2.522][0.321 0.268]

= [0.171 −0.0772],

𝑏2 (1) = 𝑏2 (0) − αs 2 = [0.48] − 0.1[−2.522] = [0.732],

−0.27 −0.0495 [ ] −0.265


𝑊 1 (1) = 𝑊 1 (0) − αs1 (a0 )𝑇 = [ ] − 0.1 [ ] 1 =[ ],
−0.41 0.0997 −0.420
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

30

−0.48 −0.0495 −0.475


𝑏1 (1) = 𝑏1 (0) − αs1 = [ ] − 0.1 [ ]=[ ],
−0.13 0.0997 −0.140

Hasil dari iterasi pertama, untuk mencari nilai optimal diperlukan beberapa
kali iterasi lagi sehingga didapatkan nilai yang mencapai target atau mendekati
target.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BAB III

METODOLOGI

Bab ini membahas analisa kebutuhan sistem mencangkup metode yang


digunakan untuk ekstraksi ciri sampul buku, klasifikasi, dan pengujian sistem.
Selain kebutuhan sistem, bab ini juga berisi perancangan sistem mencangkup
ekstraksi ciri, klasifikasi, pengujian dan perancangan sistem.

3.1. Gambaran Umum

Gambar 3.1 Diagram Blok Sistem

Penelitian ini dilakukan bertujuan untuk membantu proses identifikasi


sebuah pencarian buku berdasarkan gambar sampul buku tersebut, kemudian proses
tersebut dapat membantu pencarian dengan memberikan rekomendasi buku sejenis.
Pengambilan data sampul tersebut terkait dengan topik judul buku tersebut,
sehingga rekomendasi akan terkait dengan topik buku.

3.1.1. Data

Data yang digunakan adalah data sampul buku dari percetakaan buku
Kansius Yogyakarta yang diambil pada bulan Agustus 2017, dengan rincian
penggunaan data yakni sampul buku filsafat sebanyak 53 gambar, buku kerohanian

31
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

32

sebanyak 101 gambar, dan buku pelajaran sekolah sebanyak 200 gambar, serta
masing – masing 2 gambar untuk setiap jenis sampul yang akan digunakan data uji.
Gambar tersebut memiliki ukuran tinggi 300 cm dan lebar 130 cm dengan resolusi
gambar sebesar 96 dpi, setiap gambar memiliki label masing – masing untuk
pengenalan jenis buku tersebut.

Gambar 3.2.
Gambar 3.2 Contoh Cover Buku

Data kedua yakni data judul buku tersebut dalam bentuk xlsx, setiap judul
dibuatkan teks secara manual dengan melihat pada setiap gambar sampul, jumlah
data yang dibuat sama dengan jumlah data yang digunakan dalam pemrosesan citra,
untuk pelabelan data juga menggunakan label data sebagaimana seperti data yang
digunakan pada permrosesan citra.

3.1.2. Preprocessing

Preprocessing yang dilakukan adalah mendapatkan citra tulisan dari cover


tersebut dengan proses pertama yakni mengubah citra gambar sampul menjadi citra
abu – abu, kemudian dari citra abu – abu tersebut diubah menjadi citra biner
menggunakan metode Otsu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

33

Gambar 3.3 Preprocessing I

Hasil dari binerisasi dideteksi menggunakan MSER, dimana tulisan akan


memiliki warna gradasi yang berbeda dengan latar pada sampul tersebut, pada
umumnya tulisan judul dibuat tegas namun sebernanya terdapat gradasi warna yang
stabil pada tulisan judul di sampul tersebut sehingga dideteksi terdapat gradasi yang
stabil oleh fungsi MSER, dari hasil MSER didapatkan objek – objek tulisan dengan
menggunakan threshold 12 dan RegionArea sebesar 20 sampai dengan 1200, dari
hasil MSER yang berupa letak objek, dilakukan pencarian posisi maksimum dan
posisi minimum dari objek tersebut untuk menentukan koordinat objek.

Gambar 3.4 Hasil Deteksi Objek Gambar 3.5 Gambar setelah koordinat selain
Menggunakan MSER MSER diubah menjadi 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

34

Dilakukan perubahan citra pada citra asli menggunakan koordinat objek


MSER sebelumnya, selain hasil dari koordinat MSER nilainya dijadikan 0, data
tersebut disimpan dalam format .jpg.

3.1.3. Ekstraksi Ciri

Dari hasil preprocessing dilakukan identifikasi hasil dari preprocessing


menggunakan Optical Character Recognition (OCR) menggunakan perangkat
lunak Tesseract, pada prosesnya hasil dari identifikasi dari setiap karakter atau
huruf akan disatukan kemudian dilakukan pembandingan antara hasil dengan basis
data Tesseract, jika terjadi kecocokan dengan data pada basis data maka hasil yang
ditampilkan adalah kata yang ada di basis data.

3.1.4. Pemerolehan Informasi

Basisdata kata – kata judul unik akan dibuat berdasarkan informasi yang
didapatkan pada judul buku, ketika judul tersebut mengandung kata – kata tersebut
maka akan diberikan nilai 1 jika tidak mengandung kata – kata tersebut akan
diberikan nilai 0 pada kata tersebut dan jika terdapat kata yang sama akan
ditambahkan nilainya sebanyak 1.

Tabel 3.1 Ilustrasi perubahan kata ke numerik

Basisdata
“Satu” “Dua” “Lima”
Data
“Satu Dua Satu” 2 1 0
“Dua Tiga” 0 1 0

2 1 0
Dari ilustrasi diatas maka dihasilkan matriks [ ] yang akan
0 1 0
dimasukan ke dalam JST.

Pada bagian ini akan dilakukan penyimpanan data sebanyak 10, 15, dan 20
kata untuk disimpan pada database dengan memperhitungkan kata kata yang akan
sering keluar pada ekstraksi ciri tetapi tidak dapat di stemming secara baik, sehingga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

35

jika kata tersebut muncul maka akan dicocokan dengan basis data, jika ditemukan
data tersebut maka proses stemming tidak akan diproses untuk kata tersebut atau
dikenal dengan stop word.

Dilakukan stemming dengan beberapa fonem dan syarat perubahan yang


menyebabkan pemenggalan karakter berbeda – beda pada setiap kata dasar. Berikut
tabel perubahan awalan.

Tabel 3.2 Daftar Perubahan Awalan

Prefiks Fonem atau Syarat Perubahan


/r, l, m, n, w, y, ng, ny/ me-
/p, b, f, v/ mem-
meng-
/t, d, c, j, z, sy/ meng-
Kata dasar < satu suku kata menge-
/r, l, m, n, w, y, ng, ny/ pe-
/p, b, f, v/ pem-
peng-
/t, d, c, j, z, sy/ peng-
Kata dasar < satu suku kata menge-
/r/ be-
ber-
/ajar/ bel-
Pertalian bentuk pe-
per-
/ajar/ pel-
ter- /r/ te-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

36

Tabel 3.3 Gambaran singkat data yang akan masuk JST

Basisdata
No 'PAHNARGYAN' 'BOJANA' 'KURBAN' 'RAKA' … 'MANUSIA'
Data
1 'PAHNARGYAN BOJANA KURBAN' 1 1 1 0 … 0
'RAKA AGUNG SEBUAH
2 0 0 0 1 … 0
RENUNGAN'
2 'KURBAN UNTUK ALLAH' 0 0 1 0 … 0
4 'MENCINTAI EKARISTI' 0 0 0 0 … 0

5 'BIARLAH KEMULIAAN ALLAH 0 0 0 0 … 0


TERPANCAR'
6 'MILENIUM KETIGA BENCANA 0 0 0 0 … 0
ATAU HARAPAN'
'MENGHIDUPKAN KOMUNITAS
7 BASIS KRISTIANI BERDASARKAN 0 0 0 0 … 0
PANCAPRAMANA'
8 'BISIKAN DAUN - DAUN SABDA' 0 0 0 0 … 0


354 'FILSAFAT MANUSIA' 0 0 0 0 … 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

37

Hasil kata baru dari pemerolehan informasi disimpan ke basis data


dbKata.mat, dan setiap kata hasil pemerolehan informasi disimpan kedalam
datas.mat. Setelah seluruh data diproses, hasil pemrosesan diubah menjadi nilai
numeric, dengan membandingkan dbKata dengan datas jika data sama maka akan
diberikan nilai dan jika ditemukan kembali akan pada dbKata maka nilai akan
ditambahkan kembali, matriks yang dihasilkan seperti tabel yang akan masuk
dipilih hanya data numerik saja (pada baris kolom berwarna abu – abu), sehingga
seluruh data menghasilkan matriks numerik 348×489 dengan tipe double, jadi ciri
yang akan diproses oleh JST sebanyak 489 ciri perdata.

3.1.5. Jaringan Syaraf Tiruan

Jaringan syaraf tiruan digunakan karena kemampuannya dalam menangani


decision boundary yang kompleks. Parameter yang diatur dalam backpropagation
yakni neuron dan input ciri pengaturan neuron dan ciri masukan pada penelitian ini
dilakukan dengan nilai 5, 10, 15, 20, 25, dan 30 neuron dan masukan sebanyak ciri
masukan dari hasil pemerolehan informasi.

3.1.6. Arsitektur Jaringan Syaraf Tiruan

Gambar 3.6 Arsitektur Jaringan untuk Pelatihan dan Pengujian

Ada 16 jenis arsitektur jaringan syaraf tiruan yang akan digunakan pada
proses pelatihan dan pengujian arsitektur, yaitu dengan 5, 10, 20, 15, 25, 30, 35,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

38

dan 40 neuron, untuk jumlah neuron pada sistem mengikuti feature dari sistem,
pada sistem ini menggunakan 3 kelas jadi akan ada 2 neuron output untuk
1 0 1
mendapatkan luaran yakni [ ], [ ] ,[ ]
1 1 0

Pada gambar 3.6 dijelaskan bahwa masukan ciri berupa P maksimum


masukan sebanyak n dimana feature yang akan diinputkan bergantung pada jumlah
data hasil pemerolehan informasi dan jumlah data gambar, pada kasus ini akan
digunakan data input sebanyak 489 ciri, divariasikan dengan nilai variasi
maksimum 40 neuron dan dikombinasikan menggunakan 2 hidden layer dengan
fungsi aktivasi logsig, menghasilkan a3 dengan fungsi aktivasi pureline
merupakan luaran tetap yakni sebanyak 2 luaran untuk menghasilkan luaran yang
dapat memisahkan 3 jenis label.

Hidden layer pertama menggunakan kombinasi dengan 5, 10, 20, 15, 25,
30, 35, dan 40 neuron, dengan jumlah input atau ciri sebanyak 489 data, pada luaran
percobaan satu hidden layer akan diteruskan ke neuron luaran, neuron pada hidden
layer pertama dengan hasil akurasi tertinggi akan digunakan kembali pada
percobaan 2 hidden layer.

Hidden layer kedua digunakan menggunakan kombinasi neuron yang sama


dari hidden layer pertama, namun masukan data berasal dari hasil hidden layer
pertama, jadi data ciri sebanyak 489 akan masuk ke hidden layer pertama, luaran
sebanyak neuron dari hidden layer pertama masuk ke hidden layer kedua, hasil dari
hidden layer kedua ini yang akan masuk ke neuron luaran.

Contoh perhitungan, jika gambar sebelumnya akan menghasilkan tulisan


“Komputer saat ini” maka hasil tersebut akan diberikan nilai, pada contoh ini akan
diberikan nilai W = [1 0 0], setelah itu masuk ke dalam jaringan syaraf tiruan
dengan bobot dan bias bilangan random dengan nilai kecil, dilakukan pelatihan
hingga mendapatkan nilai mencapai target yang diinginkan yakni sesuai dengan
label asli.

Contoh perhitungan,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

39

1 1
𝑊 0) = [0] , 𝑏 (0) = [0] , 𝑊 2 (0) = [0 1 0], 𝑏2 (0) = [0],
1( 1

0 0

1 1
𝑊 3 (0) = [0] , 𝑏3 (0) = [0],
0 0

𝑎0 = 𝑝 = 1

Luaran lapis pertama

1 1 2
𝑎1 = 𝑓 1 (𝑊 1 𝑎0 + 𝑏1 ) = 𝑙𝑜𝑔𝑠𝑖𝑔 ([0] [1] + [0]) = 𝑙𝑜𝑔𝑠𝑖𝑔 ([0])
0 0 0

1
1 + 𝑒 −2
1 0,88
= = [ 2 ]
1 + 𝑒0 2
1
[ 1 + 𝑒0 ]

0,88
𝑎2 = 𝑓 2 (𝑊 2 𝑎1 + 𝑏2 ) = 𝑙𝑜𝑔𝑠𝑖𝑔 ([0 1 0] [ 2 ] + [0]) = 𝑙𝑜𝑔𝑠𝑖𝑔([2])
2

1
=[ ] = [0,88]
1 + 𝑒 −2

1 1
𝑎3 = 𝑓 3 (𝑓 2 (𝑊 3 𝑎0 + 𝑏3 ) + 𝑏2 )+𝑏3 = 𝑝𝑢𝑟𝑒𝑙𝑖𝑛 ([0] [0,88] + [0])
0 0

0.88
= 0 ]
[
0

Perbaikan error

𝜋 𝜋
𝑒 = 𝑡 − 𝑎 = {1 + sin ( 𝑝)} − 𝑎3 = {1 + sin ( 1)} − 0,88 = 1,88
4 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

40

Langkah selanjutnya dari algoritma yakni sensitivitas backpropagation,


untuk memanggil kembali diperlukan turunan fungsi transfer dari 𝑓 1 (𝑛), 𝑓 2 (𝑛) dan
𝑓 3 (𝑛) untuk lapis pertama

1(
𝑑 1 𝑒 −𝑛 1 1
𝑓 𝑛) = ( ) = = (1 − ) ( )
𝑑𝑛 1 + 𝑒 𝑛 (1 + 𝑒 −𝑛 )2 1 + 𝑒 −𝑛 1 + 𝑒 −𝑛

= (1 − 𝑎1 )(𝑎1 )

untuk lapis kedua

3
2(
𝑑2 1 (𝑒 𝑛 − 1)𝑒 𝑛 1 1 1
𝑓 𝑛) = 2 ( )= = (1 − ) (2 )( )
𝑑𝑛 1 + 𝑒 𝑛 (1 + 𝑒 𝑛 )3 1 + 𝑒 −𝑛 1 + 𝑒 −𝑛 1 + 𝑒 −𝑛

= (1 − 𝑎2 )(2𝑎2 )(𝑎2 )3

Untuk lapis ketiga,

𝑑
𝑓 3 (𝑛 ) = (𝑛 ) = 1
𝑑𝑛

Backpropagation dimulai dari lapis ketiga

0,88 0,88 −1,76


𝑠 3 = −2𝐹 3 (𝑛3 )(𝑡 − 𝑎) = −2[𝑓 3 (𝑛3 )] [ 0 ] = −2[1] [ 0 ] = [ 0 ]
0 0 0

Sensitifitas layer pertama dan kedua merupakan komputasi dari


backpropagation sensitifitas lapis ketiga

𝑠 2 = 𝐹 2 (𝑛2 )(𝑊 3 )𝑇 𝑠 3
(1 − 𝑎11 ) 0 0 0,88
=[ 0 (1 − 𝑎12 )(𝑎12 ) 0 ] [1 0 0 ] [ 0 ]
0 0 1 1 1
(1 − 𝑎3 )(2𝑎3 )(𝑎3 ) 0

(1 − 0,88) 0 0 0,1936
=[ 0 (1 − 0)(0) 0 ] [1 0 0] [ 0 ]
0 0 (1 − 0)(2(0))(0) 0

0,88
= [0,22 0 0] [ 0 ] = [1,76]
0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

41

𝑠 1 = 𝐹1 (𝑛1 )(𝑊 2 )𝑇 𝑠 2

(1 − 𝑎11 ) 0 0 1
=[ 0 (1 − 𝑎12 )(𝑎12 ) 0 ] [0] [0,1936]
0 0 (1 − 𝑎13 )(2𝑎13 )(𝑎13 ) 0

(1 − 0,88) 0 0 1
=[ 0 (1 − 2)(2) 0 ] [0] [0.1936]
0 0 (1 − 2)(2(2))(2) 0

0,22 0 0 1
=[ 0 −2 0 ] [0] [0.1936]
0 0 −8 0

0,22 0,0496
= [ 0 ] [0.1936] = [ 0 ]
0 0

Langkah terakhir yakni memperbarui bobot dengan menggunakan laju


pembelajaran α = 1
1
𝑊 2 (1) = 𝑊 2 (0) − αs 2 (a1 )𝑇 = [0] − 1[0.1936][0.88 2 2]
0

= [0.728 0 0],

𝑏2 (1) = 𝑏2 (0) − αs 2 = [0] − 1[0.1936] = [−0.1936],

1 0.0496 0.9504
1( 1( 1 ( 0 )𝑇
𝑊 1) = 𝑊 0) − αs a = [1] − 1 [ 0 ] [1] = [ 0 ],
2 0 0

1 0.0496 0.9504
𝑏1 (1) = 𝑏1 (0) − αs1 = [0] − 1 [ 0 ] = [ 0 ],
0 0 0

Hasil dari iterasi pertama, untuk mencari nilai optimal diperlukan beberapa
kali iterasi lagi sehingga didapatkan nilai yang mencapai target atau mendekati
target.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

42

3.1.7. Metode Pengujian

Metode Pengujian menggunakan K-Fold Cross Validation dengan k = 3,


hasil dari pengujian menggunakan menggunakan confusion matrix, tahap
penghitungan akurasi dimana hasil label dibandingkan dengan hasil luaran, untuk
kerohanian menggunakan 34 data pelatihan, 34 data validasi, dan 33 data tes uji,
pendidikan menggunakan 67 data pelatihan, 67 data validasi, dan 66 data uji,
filsafat menggunakan 18 data pelatihan, 18 data validasi, dan 17 data uji.

Table 3.2 3-Fold Validation


Percobaan Train Validation Test
1 3 1 2
2 1 2 3
3 2 3 1

Table 3.3 Confusion Matrix


Label\
[1 1] [1 0] [0 1]
Luaran
[1 1]
[1 0]
[0 1]

3.1.8. Model Pembanding

BACKPROPAGATION
INPUT DATA
DATA DATA
TRAINING TESTING

Information
Retrieval LUARAN
LABEL TRAINING LABEL TESTING

MODEL

AKURASI

Gambar 3.7 Diagram Blok Sistem Pembanding


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

43

Pembanding yang digunakan merupakan model yang mirip hanya berbeda


pada data yang digunakan, pada model sebelumnya menggunakan data gambar,
sedangkan pada model ini menggunakan data judul berupa teks.

Data yang dihasilkan merupakan data input asli atau sama dengan judul
pada gambar sampul, sehingga model ini hanya menghilangkan pemrosesan citra
dari model sebelumnya. Adapun model ini akan digunakan sebagai pembanding
kinerja adalah sistem dengan adanya pemrosesan citra dan tanpa adanya
pemrosesan citra.

3.2. Algoritma

3.2.1. Preprocessing Judul Buku

➢ Baca citra menggunakan imread


➢ Ubah citra RGB ke citra abu – abu menggunakan rgb2gray
➢ Cari Maximally Stable Extremal Regions (MSER)
detectMESRFeatures dengan parameter regionArea 20 – 1200 dan
tresholdDelta 12
➢ Jika nilai MSER kurang dari 7, mengubah nilai parameter
regionArea 20 – 800 dan thresholdDelta 5
➢ Potong daerah yang telah dideteksi dengan MSER mengunakan
regioncorps
➢ Ubah citra hasil pemotongan menjadi citra jika tidak dideteksi maka
dijadikan 0 pada setiap pikselnya.
➢ Deteksi menggunakan OCR Tesseract

3.2.2. Pemerolehan Informasi

➢ Membandingkan hasil OCR dengan database


➢ Melakukan tokenizing, stemming, stop word
➢ Menyimpan data jika data tersebut data baru
➢ Membuat matriks dengan ukuran sesuai dengan ukuran database
➢ Membandingkan data dengan database kembali
➢ Jika data ada maka nilai pada cirinya akan ditambahkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

44

➢ Jika tidak maka nilai pada cirinya tidak ditambahkan


➢ Menyimpan data.

3.2.3. Klasifikasi

➢ Membagi data menjadi 3 fold


➢ Melakukan perulangan untuk mencoba setiap fold data
➢ Memasukkan nilai masukan kedalam neuron
➢ Membandingkan hasil luaran dengan label
➢ Jika belum sesuai, memperbarui bobot dan bias hingga sesuai
dengan target.
➢ Menampilkan hasil klasifikasi.

3.3. Kebutuhan Sistem

Spesifikasi software dan hardware yang digunakan dalam


pengimplementasian jaringan syaraf tiruan backpropagation pada klasifikasi
menggunakan sampul buku:

3.4.1. Perangkat Keras

Perangkat keras yang digunakan dengan spesifikasi berikut:

1) Processor : Intel® CoreTM i5-5200U (4 CPUs), @ 2.20 GHz


2) Memori : 4096 MB RAM
3) Display : Intel® HD Graphics 5500 ~Approx. Total Memory
2127 MB ~ Display Memory (VRAM ) 128 MB
4) Render : NVIDIA GeForce 930M ~Approx. Total Memory
3996 MB ~Display Memory (VRAM ) 1999 MB
3.4.2. Perangkat Lunak

Perangkat lunak yang digunakan sebagai berikut:

1) Microsoft Windows 10 Pro 64-bit

Sistem operasi yang digunakan untuk menjalankan perangkat lunak


lainya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

45

2) Matlab 2014b 64-bit

Perangkat lunak yang digunakan untuk melakukan preprocessing citra


gambar, pembuatan sistem, dan menjalankan sistem.

3) Tesseract
Perangkat lunak Optical Character Recognition untuk melakukan
ekstraksi ciri.

3.4. Perancangan Antar Muka Sistem

Gambar 3.6 Tampilan menu utama

Gambar 3.5 merupakan tampilan antar muka utama sistem, terbagi menjadi
2 panel yakni panel pembentukan model dan panel uji data. Terdapat 1 jendela
untuk menampilkan hasil preprocessing.

3.4.1. Panel Pembentukan Model

Terdapat 2 drop down panel yakni Hidden Layer 1 dan Hidden Layer 2 yang
berfungsi untuk mengatur jumlah neuron yang akan dipakai pada JST dengan nilai
rentang nilai pada Hidden Layer 1 5, 10, 15, 20, 25, 30. Pada Hidden Layer 2
memiliki rentang nilai 0, 5, 10, 15, 20, 25.

Tombol Train berfungsi sebagai tombol ekseskusi perintah menjalankan


proses dari preprocessing, OCR, pemerolehan informasi dan uji data. Akurasi hasil
uji akan ditampilkan pada kotak tulisan diatas tombol Train.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

46

3.4.2. Panel Uji Data

Panel Uji Data memiliki 5 tombol dan dan 4 kotak tulisan, panel ini
diperuntukkan pengujian data tunggal.

Tombol Browse digunakan untuk memilih file, ketika ditekan akan muncul
jendela baru untuk memilih gambar yang akan diproses, setelah memilih maka akan
muncul alamat file beserta nama file pada kotak tulisan disebelah kanan tombol.

Tombol Citra digunakan untuk menampilkan hasil setiap langkah


preprocessing, ketika ditekan akan muncul jendela baru menampilkan gambar yang
diproses pada setiap langkahnya.

Tombol OCR digunakan untuk mejalankan proses identifikasi tulisan pada


gambar, ketika ditekan hasilnya akan muncul pada kotak tulisan sebelah kanan
tombol.

Tombol Pem. Informasi merupakan tombol yang digunakan untuk


menjalankan proses pemerolehan informasi dari hasil OCR sebelumnya, hasil
pemerolehan informasi akan ditampilkan pada boks tulisan sebelah kanan tombol.

Tombol Test berfungsi menjalankan klasifikasi tunggal, dimana hasil dari


pemerolehan informasi diproses melalui JST untuk mengetahui klasifikasi buku.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

47

3.4.3. Jendela Preprocessing

Gambar 3.7 Tampilan jendela preprocessing uji tunggal

Jendela ini menampilkan 4 axes untuk menampung setiap langkah


gambar preprocessing, serta 1 tombol Back untuk kembali ke halaman utama
sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

48

BAB IV

IMPLEMENTASI DAN ANALISA

Bab ini akan membahas uraian implementasi perancangan sistem yang


berupa hasil penelitian dalam melakukan pengujian kombinasi penggunaan data,
kombinasi neuron dan hidden layer, serta uraian mengenai hasil output terkait hasil
data dari OCR (Optical Character Recognition) dari Teserract.

4.1. Preprocessing

Berikut merupakan pembahasan dari preprocessing dimana dibagian ini


dilakukan pengekstrakan data dari data gambar menjadi data teks dengan melalui
tahap pemrosesan citra, OCR, dan pemrolehan infrormasi.

4.1.1. Pemrosesan Citra

Proses yang pertama dilakukan yakni imread dengan memasukkan alamat


gambar, untuk membaca gambar menjadikan matriks 3 keping dengan tipe unit8.
Selanjutnya rgb2gray memproses gambar menjadi matriks 1 keping dengan tipe
double, gambar grayscale ini digunakan dalam identifikasi MSER.

4.1.1.1. MSER

Penggunaan awal threshold 12 dan RegionArea 20 hingga 1200 mampu


menangani sebagian besar gambar, akan tetapi beberapa gambar tidak dapat
ditangani secara baik bahkan cenderung menghilangkan tulisan, kemudian penulis
mencoba merubah dengan menggunakan threshold RegionArea yang lebih kecil
yakni threshold 5 dan RegionArea 20 hingga 800, dari hasil tersebut memang
mendapatkan kinerja MSER lebih optimal akan tetapi lebih banyak noise yang
ditangkap daripada menggunakan threshold 12, jadi penulis mengkombinasi kedua
threshold tersebut dengan menggunakan threshold 12 dan RegionArea 20 hingga
1200 pada awal, jika nilai MSER pada threshold kurang dari 1 maka akan
dikenakan threshdold 5 dan RegionArea 20 hingga 800.

48
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

49

Gambar 4.1 Menggunakan region area 20- Gambar 4.2 Menggunakan region area 20-800
1200 dan thershold delta 12 dan thershold delta 5

Beberapa proses dari pemrosesan citra beberapa gambar belum mampu


diproses secara baik.

Gambar 4.3 Contoh gambar setelah diproses grayscale yang tidak bisa
dideteksi MSER
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

50

Gambar dengan 96px diatas sulit untuk mendeteksi tulisannya hal tersebut
disebabkan oleh warna tulisan pada gambar tersebut mirip dengan warna latar
tulisannya.

Gambar 4.4 Contoh hasil MSER grayscale Gambar 4.5 Contoh hasil setelah piksel
gambar yang baik koordinat selain nilai MSER diubah menjadi 0

Gambar diatas merupakan salah satu contoh gambar yang baik digunakan
untuk proses OCR, karena hasil deteksi tulisannya yang sangat baik dan hanya
menangkap sedikit noise.

4.1.2. Optical Character Recognition

Kemampuan OCR Tesseract dibatasi untuk ukuran gambar minimal 70px,


keseluruhan data gambar berukuran 96px, dengan ukuran dan jenis tulisan sangat
bervariasi, dalam pengujian ini didapatkan contoh beberapa tulisan yang dapat
diidentifikasi dan tidak dapat diidentifikasi oleh Tesseract pada Tabel 4.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

51

Tabel 4.1 Perbandingan Tulisan

Gambar Penjelasan Identifikasi


Gambar dengan Teridentifikasi
tinggi 17 px dan Tinggi dan tebal garis cukup
tebal garis 4 px untuk diidentifikasi
Gambar dengan Teridentifikasi
tinggi 14 px dan Tinggi dan tebal garis cukup
tebal garis 4 px untuk diidentifikasi
Gambar dengan Tidak Teridentifikasi
tinggi 10 px dan Terlalu kecil untuk
tebal garis 1 px diidentifikasi
Gambar dengan Tidak Teridentifikasi
tinggi 11 px dan Tebal garis terlalu tipis untuk
tebal garis 2 px diidentifikasi

Dilihat dari tabel diatas, untuk ukuran tulisan dengan tinggi kurang dari 11
px dan tebal garis kurang dari 2 px tidak dapat diidentifikasi secara baik.

4.1.2.1. Hasil Dari OCR

Dari data label A (Kerohanian) didapatkan 65 hasil kata dari 101 data
gambar, dari data label B (Pendidikan) didapatkan 122 hasil dari 200 data gambar,
dari data label C (Filsafat) didapatkan 34 hasil dari 53 data gambar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

52

Perbandingan Data dengan Hasil OCR


200
180
160
140
120
100
80
60
40
20
0
Kerohanian Pendidikan Filsafat

Data Hasil

Grafik 4.1 Perbandingan Perbandingan Data dengan Hasil OCR

Total penggabungan ketiga data tersebut menghasilkan keberhasilan


untuk dilakukan proses OCR sebesar 61%, demikian data yang tidak berhasil untuk
dilakukan OCR sebanyak 138 data.

4.1.3. Pemerolehan Informasi

Proses ini dilakukan untuk mendapatkan judul yang sudah diekstrak dari
gambar sehingga, hanya menghasilkan kata – kata yang memiliki makna pada
gambar tersebut. Pertama yakni case-folding seluruh kata diubah menjadi huruf
capital untuk mengatasi case sensitive dan menghilangkan tanda baca yang tidak
perlu, diproses tokenizing untuk memproses kalimat pada hasil OCR menjadi kata
– perkata, stop word untuk menemukan kata dasar tanpa imbuhan sehingga tidak
diproses lebih lanjut. Setelah stop word masih ditemukan kata – kata yang
berbentuk kata berimbuhan dilakukan proses stemming untuk menghilangkan
imbuhan kata sehingga menjadi kata dasar.

Untuk nama dalam penelitian ini digunakan akhiran –us dan –es sebagai
indikator dalam pengenalan nama, namun dikecualikan untuk kata ‘khusus’ yang
tidak berarti nama tetapi mengandung akhiran -us, hasil dari nama ini diberi tanda
dengan kata ‘nama’ , untuk bentuk data yang akan diproses JST bisa dilihat pada
Tabel 3.3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

53

4.2.Klasifikasi

Data dari pemerolehan informasi yang berbentuk numerik sebanyak 348


data dan 489 ciri perdata kemudian disatukan dengan label, data dari setiap label
dibuat memiliki proporsi data yang sama. Menggunakan 3 fold validation untuk
menguji akurasi model, terdapat data yang berimbang satu dengan yang lainnya
pada setiap fold. Pada proses klasifikasi menggunakan Jaringan Syaraf Tiruan (JST)
dengan fungsi aktivasi logsig, komputasi pararel, dan kombinasi neuron 5, 10, 15,
20, 25, 30, 35, serta 40 pada satu hidden layer dan dua hidden layer.

4.4.1. Satu Hidden Layer

Gambar 4.6 Arsitektur JST satu hidden layer

Pada gambar arsitektur diatas menggunakan 489 input, algoritma


backpropagation, satu hidden layer serta 2 luaran.

Dilakukan kombinasi neuron pada hidden layer pertama dengan


menggunakan neuron 5, 10, 15, 20, 25, 30, 35, serta 40 dengan data OCR dan non
OCR
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

54

Perbandingan Hasil dengan OCR dan Tanpa OCR


Hidden Layer I
80
75 73.9943
Akurasi

70
65 61.2069
60
55
50
45
40
5 10 15 20 25 30 35 40 Neuron
non OCR 62.069 73.4195 68.2471 67.6724 73.9943 70.546 64.81481 65.74074
OCR 54.023 58.1897 61.2069 59.7701 57.7586 57.3276 61.0632 60.4943

non OCR OCR

Grafik 4.2 Perbandingan Hasil dengan OCR dan Tanpa OCR


dengan Kombinasi Hidden Layer 1

Kombinasi neuron pada 1 hidden layer menghasilkan hasil tertinggi pada


neuron 15 untuk data menggunakan OCR dengan hasil 61,2069%, untuk data non
OCR didapatkan hasil tertinggi yakni neuron 25 dengan hasil 73,9943%.

Dilakukan penguncian hidden layer pertama terhadap neuron 15 untuk data


OCR dan neuron 25 untuk data non OCR.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

55

4.4.2. Dua Hidden Layer

4.4.2.1.Data OCR dengan Layer Pertama 15

Gambar 4.7 Arsitektur JST dua hidden layer dengan layer pertama 15 neuron

Pada gambar arsitektur diatas menggunakan 489 input, algoritma


backpropagation, dua hidden layer dengan 2 luaran.

Dilakukan kombinasi neuron pada hidden layer kedua dengan neuron 5, 10,
15, 20, 25, 30, 35 dan 40 serta menggunakan neuron 15 pada hidden layer pertama

Hasil Kombinasi dengan OCR


Hidden Layer II [15 ..]
65 63.3053

60
Akurasi

55

50

45

40
5 10 15 20 25 30 35 40 Neuron
OCR 57.0402 61.6379 60.7759 58.908 56.0345 63.0747 63.3053 57.7586 Hidden
Layer 2

Grafik 4.3 Hasil menggunakan data OCR dengan Hiden Layer 1 adalah 15 Neuron

Hasil diatas didapatkan akurasi tertinggi terdapat pada neuron 35 dengan


nilai akurasi 63.3053%, identifikasi yang dilakukan memiliki akurasi rata – rata
59.8168 %.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

56

4.4.2.2. Data non OCR Layer Pertama 25

Gambar 4.8 Arsitektur JST dua hidden layer dengan layer pertama 25 neuron

Pada gambar arsitektur diatas menggunakan 489 input, algoritma


backpropagation, dua hidden layer dengan 2 luaran.

Dilakukan kombinasi neuron pada hidden layer kedua dengan neuron 5, 10,
15, 20, 25, 30, 35 dan 40 serta menggunakan neuron 25 pada hidden layer pertama

Hasil Kombinasi tanpa OCR


Hidden Layer II [25 ..]
85
80 79.8851
75
70
Akurasi

65
60
55
50
45
40
5 10 15 20 25 30 35 40 Neuron
non OCR 67.8161 77.4425 79.8851 78.592 74.2816 77.2989 76.0185 69.0278 Hidden
Layer 2

Grafik 4.4 Hasil menggunakan data OCR dengan Hiden Layer 1 adalah 15 Neuron

Hasil diatas didapatkan akurasi tertinggi terdapat pada neuron 15 dengan


nilai akurasi 79,8851%, identifikasi yang dilakukan memiliki akurasi rata – rata
73.7953%.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

57

4.4.3. Arsitektur Optimal

Gambar 4.9 Arsitektur JST optimal

Dari hasil penelitian klasifikasi menggunakan kombinasi hidden layer dan


neuron didapatkan arsitektur optimal seperti gambar diatas, input sebanyak 489
data dengan hidden layer pertama 15 neuron, hidden layer kedua 35 neuron, dan
output neuron 2.

Pada arsitektur optimal ini digunakan algoritma backpropagation.


Menggunakan fungsi aktivasi logsig.

Berikut confusion matrix dari arsitektur optimal untuk 3-Fold Cross


Validation.

Tabel 4.2 Fold Pertama

Label\
[1 1] [1 0] [0 1]
Luaran
[1 1] 12 16 1
[1 0] 1 55 0
[0 1] 3 2 13

Tabel 4.3 Fold Kedua

Label\
[1 1] [1 0] [0 1]
Luaran
[1 1] 9 18 0
[1 0] 1 50 1
[0 1] 1 7 10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

58

Tabel 4.4 Fold Ketiga

Label\
[1 1] [1 0] [0 1]
Luaran
[1 1] 11 12 0
[1 0] 0 52 1
[0 1] 0 4 14

4.3.Uji Data Tunggal

Uji data tunggal ini menggunakan 6 data, masing – masing kelas diwakili
oleh 2 data untuk pengujian, berikut hasil dari uji data tunggal.

• Data 1

Gambar 4.10 Preprocessing Data 1


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

59

Gambar 4. 11 Hasil Data 1

Pada uji Data 1 ini dapatkan diklasifikasi dengan benar, dimana pada
hasil pemerolehan informasi terdapat kata “BOJANA KURBAN”, kata tersebut
umum ditemukan pada buku kerohanian.

• Data 2

Gambar 4. 12 Preprocessing Data 2


PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

60

Gambar 4. 13 Hasil Data 2

Pada uji Data 2 ini dapatkan diklasifikasi dengan tidak benar, dimana
pada hasil pemerolehan informasi terdapat kata “KATOLIK”, kata tersebut umum
ditemukan pada buku kerohanian dan buku pendidikan, pada data penelitian ini
proporsi buku pendidikan lebih banyak dari kerohanian sehingga terdapat banyak
kata “KATOLIK” yang masuk ke kelas pendidikan. Dilihat pada Tabel 4.3, Tabel
4.4, dan Tabel 4.5 banyak data kerohanian diidentifikasi menjadi data pendidikan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

61

• Data 3

Gambar 4. 14 Preprocessing Data 3

Gambar 4. 15 Hasil Data 3

Pada uji Data 3 ini dapatkan diklasifikasi dengan benar, dimana pada
hasil pemerolehan informasi terdapat kata “KAMUS INDONESIA INGGRIS”,
kata tersebut umum ditemukan pada buku pendidikan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

62

• Data 4

Gambar 4. 16 Preprocessing Data 4

Gambar 4. 17 Hasil Data 4

Pada uji Data 4 ini dapatkan diklasifikasi dengan benar, dimana pada
hasil pemerolehan informasi terdapat kata “BAHASA INDONESIA”, kata tersebut
umum ditemukan pada buku pendidikan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

63

• Data 5

Gambar 4. 18 Preprocessing Data 5

Gambar 4. 19 Hasil Data 5

Pada uji Data 5 ini dapatkan diklasifikasi dengan benar, dimana pada
hasil pemerolehan informasi terdapat kata “FILSAFAT”, kata tersebut umum
ditemukan pada buku filsafat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

64

• Data 6

Gambar 4. 20 Preprocessing Data 6

Gambar 4. 21 Hasil Data 6

Pada uji Data 6 ini dapatkan diklasifikasi dengan benar, dimana pada
hasil pemerolehan informasi terdapat kata “FILSAFAT”, kata tersebut umum
ditemukan pada buku filsafat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

BAB V

PENUTUP

5.1. Gambaran Proses

Untuk mengurangi noise yang akan diterima Optical Character Recognition


(OCR), dilakukan deteksi tulisan menggunakan Maximally Stable Extremal
Regions (MSER), sebelum itu masukan citra diubah dari 3 keping Red, Green, dan
Blue (RGB) diubah menjadi citra abu – abu, setelah itu citra tersebut masuk ke
MSER untuk dilakukan deteksi tulisan.

Hasil nilai koordinat piksel deteksi MSER pada gambar, diubah nilainya
menjadi 1 dan selain hasil deteksi diubah nilainya menjadi 0, secara tidak langsung
dilakukan proses binerisasi, hasil tersebut disimpan dalam bentuk citra.

Citra setelah proses MSER menjalani proses OCR, hasil berupa teks
tersebut kemudian diproses dengan pemeroleh informasi untuk mendapatkan judul
buku, untuk bisa masuk ke jaringan syaraf tiruan data berupa teks tersebut diubah
menjadi data numerik dengan membandingkan kata yang ada pada seluruh data.

Data berupa angka kemudian diproses kedalam jaringan syaraf tiruan untuk
mendapatkan model terbaik sehingga model tersebut dapat digunakan untuk
meklasifikasi data baru.

65
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

66

5.2. Kesimpulan

Dari hasil penelitian klasfikasi buku berdasarkan gambar sampul buku


menggunakan jaringan syaraf tiruan backpropagation dapat disimpulkan sebagai
berikut :

1. Identifikasi gambar tulisan pada sampul buku menggunakan OCR


mampu dilakukan secara baik dengan akurasi sebesar 61%.
2. Pemerolehan informasi mampu mengektraksi ciri pada setiap judul
buku, dengan ekstraksi ciri yang lebih baik pada data non OCR.
3. Model klasifikasi Backpropagation mampu mengklasifikasi buku
menggunakan ekstraksi ciri judul pada sampul buku dengan baik,
akurasi dengan data OCR ternyata lebih rendah dari data non OCR.
a. Didapatkan akurasi tertinggi dengan kombinasi 1 hidden
layer pada neuron 15 sebesar 61,2069%.
b. Didapatkan akurasi tertinggi menggunakan data OCR
kombinasi neuron 2 hidden layer pada 15 dan 35 sebesar
63.3053%.

5.3. Saran

Dari hasil penelitian klasfikasi buku berdasarkan gambar sampul buku


menggunakan jaringan syaraf tiruan backpropagation ini, ada beberapa saran untuk
penulis untuk penelitian dengan topic yang sama :

1. Menambahkan data gambar sampul buku dari sumber lainnya


seperti internet dan photo alami.
2. Menambahkan vocabulary optimal atau vocabulary pilihan.
3. Menggunakan OCR atau teknik image preprocessing yang lebih
mendalam untuk mengatasi tulisan yang bias terhadap latarnya.
4. Menambahkan ciri lain pada buku misalnya warna sampul, jenis
tulisan, banyak karakter pada judul, dan letak dari judul.
5. Menggunakan metode klasifikasi lainnya seperti deep learning dan
SVM.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

DAFTAR PUSTAKA

Chen, H. et al. (2011) ‘Robust Text Detection in Natural Images With Edge-
Enhanced Maximally Stable Extremal Regions’, pp. 3–6. Available at:
https://pdfs.semanticscholar.org/6cb3/153e5773053916a27bf3ab4530705a
6bcf80.pdf. diakses 25 Oktober 2017.
Hagan, M. T. and Beale, M. H. (2014) Neural Network Design. 2nd edn. Oklahoma:
Martin Hagan, Avaliable from: hagan.okstate.edu/NNDesign.pdf, diakses
31 Agustus 2017.
Hunt, R. W. G. (2004) The Reproduction of Colour (6th ed.). Chichester UK:
Wiley–IS&T Series in Imaging Science and Technology, Avaliable from:
https://leseprobe.buch.de/images-adb/fb/59/fb59254e-4270-4160-b68d-
6196cf6236ac.pdf, diakses 4 November 2017. diakses 4 November 2017.
Islam, M. R., Mondal, C., Azam, M. K. & Islam, A. S. M. J., 2016. Text Detection
and Recognition Using Enhanced MSER Detection and a Novel OCR
Technique. s.l., Available from: http://ijoscience.com/wp-
content/uploads/2017/04/8-1-19-1-10-20170412.pdf diakses tanggal 26
Oktober 2017., pp. 15 - 20.
Iwana, B. K. et al. (2016) ‘Judging a Book By its Cover’. doi:
10.1177/1533317513488915. diakses tanggal 21 Agustus 2017.
Johnson, S. (2006) Stephen Johnson on Digital Photography. O’Reilly Media,
Avaliable from: http://www.artistsforchange.com/online-
content/SJODP_c13-web.pdf, diakses 4 November 2017.
Manning, C. D., Raghavan, P. and Schutze, H. (2009) An Introduction to
Information Retrieval, Online. doi: 10.1109/LPT.2009.2020494. Avaliable
from: https://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf diakses
12 Januari 2018.
Matas, J. et al. (2002) ‘Robust Wide Baseline Stereo from Maximally Stable
Extremal Regions’, pp. 384–393. diakses 16 November 2018.
Mustakim, M. D., 2015. Seri Penyuluhan Bahasa Indonesia BENTUK DAN
PILIHAN KATA. Jakarta: Pusat Pembinaan dan Pemasyarakatan Badan
Pengembangan dan Pembinaan Bahasa Kementerian Pendidikan dan
Kebudayaan.
Otsu, N., 1979. A Threshold Selection Method. IEEE TRANSACTIONS ON
SYSTEMS, MAN, AND CYBERNETICS, VOL. SMC-9, NO. 1, JANUARY
1979, pp. 62 - 66, Avaliable from: https://web-ext.u-
aizu.ac.jp/course/bmclass/documents/otsu1979.pdf, diakses 4 November
2017.
Putera, L. E. S., 2016. Klasifikasi Burung Berdasarkan Suara Kicau Burung
Menggunakan Jaringan Syaraf Tiruan Propagasi Balik, Yogyakarta:

67
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

68

Universitas Sanata Dharma, Avaliable from: library.usd.ac.id diakses 11


Desember 2017.
Shelly, G. B. & Starks, J. L., 2011. Microsoft Publisher 2010: Comprehensive. In:
Boston: Cengage Learning, Avaliable from:
http://build.influxdb.com/microsoft_word_2013_comprehensive_shelly_c
ashman.pdf, diakses 4 November 2017, p. 559.
Smith, R., 2007. An Overview of the Tessseract OCR Engine. s.l., Proceedings of
the Ninth International Conference on Document Analysis and Recognition
(ICDAR 2007), pp 629-633.
Venkateswarlu, K. & Velaga, S. M., 2015. Text Detection On Scene Images Using
MSER. s.l., Avaliable from:
www.ijrcct.org/index/php/ojs/article/viewFile/1143/pdf, diakses tanggal 26
Oktober 2017, pp. 245 - 256.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

LAMPIRAN

69
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

70

A. Lampiran Program

1. Source code GUI Main

Berikut merupakan source code tampilan muka Main

Function varargout = Main(varargin)


% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Main_OpeningFcn, ...
'gui_OutputFcn', @Main_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State,
varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before Main is made visible.


function Main_OpeningFcn(hObject, eventdata, handles, varargin)
% Choose default command line output for Main
handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% --- Outputs from this function are returned to the command


line.
function varargout = Main_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;

% --- Executes on selection change in listbox2.


function listbox2_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function listbox2_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

71

% --- Executes on button press in Train.


function Train_Callback(hObject, eventdata, handles)
set(handles.inTrain, 'String' , 'Checking...');
%get hidden layer value
getHL1=get(handles.hl1);
global h1 h2;
h1=str2double(getHL1.String(getHL1.Value));
getHL2=get(handles.hl2);
h2=str2double(getHL2.String(getHL2.Value));
% get data
cek;
set(handles.inTrain, 'String' , 'Training...');
%merge data
mergeDataNoDel();
% running
[akurasi]=mainJST(h1,h2);
annTrain(h1, h2)
set(handles.inTrain,'String',strcat('Done...! Result :
',num2str(akurasi)));

function Test_Callback(hObject, eventdata, handles)


global filename;
label=getLabel(filename);
load UjiTunggal.mat;
hasil={hasil};
input=countDataTest(hasil);
set(handles.hasil,'String','Testing...');
hasil=annTest(input,label)
set(handles.hasil,'String',hasil);

function hl1_Callback(hObject, eventdata, handles)

function hl1_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function hl1_KeyPressFcn(hObject, eventdata, handles)

function hl2_Callback(hObject, eventdata, handles)

function hl2_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

% --- Executes when panel_input is resized.


function panel_input_SizeChangedFcn(hObject, eventdata, handles)

% --- Executes on button press in browse.


function browse_Callback(hObject, eventdata, handles)
global filename;
global pathname;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

72

[filename, pathname] =
uigetfile({'*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG';'*.jpg';'*.JP
G';'*.jpeg';'*.JPEG';'*.png';'*.PNG'},'File Selector');
set(handles.url,'String',strcat('Selected Image :
',strcat(pathname,filename)));

% --- Executes on button press in citra.


function citra_Callback(hObject, eventdata, handles)
global filename;
global pathname;
if filename==0
[filename, pathname] =
uigetfile({'*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG';'*.jpg';'*.JP
G';'*.jpeg';'*.JPEG';'*.png';'*.PNG'},'File Selector');
set(handles.url,'String',strcat('Selected Image :
',strcat(pathname,filename)));
end
Figure

% --- Executes on button press in inOCR.


function ocr_Callback(hObject, eventdata, handles)
%INOCR Matlab pada hasil croping
global dOcr;
exestart('E:\Instaler\MatlabR2014b\bin\Skripsi\hasil.jpg');
dOcr1=fileread('E:\Instaler\MatlabR2014b\bin\Skripsi\ocrdata.txt
');
for i=1:length(hasil)
if i==1
tampil=strcat(hasil{i});
else
tampil=strcat(tampil,'_',strcat(hasil{i}));
end
end
tampil=strrep(tampil,'_',' ');
set(handles.inOCR,'String',strcat('Result OCR : ',tampil));

% --- Executes on button press in IR.


function IR_Callback(hObject, eventdata, handles)
global dOcr;
IR=inputData(dOcr);
set(handles.PI,'String',strcat('Result IR : ',IR));

2. Source code GUI Figure

Berikut merupakan source code tampilan muka Figure

function varargout = Figure(varargin)


gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Main_OpeningFcn, ...
'gui_OutputFcn', @Main_OutputFcn, ...
'gui_LayoutFcn', [] , ...
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

73

'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State,
varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before Main is made visible.


function Main_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
global filename;
global pathname;
handles.gambar=imread(fullfile(pathname,filename));
if size(handles.gambar,3)==3
%rgb
iRGB = handles.gambar;
%Original Image
axes(handles.origin);
imshow(handles.gambar);
%grayscale
iGray = rgb2gray(iRGB);
axes(handles.grays);
imshow(iGray);
else
%Original Image
axes(handles.origin);
imshow(handles.gambar);
%grayscale
iGray=handles.gambar;
axes(handles.grays);
image(iGray);
end
% MSERAXES PREPROCESSING
mserRegions = detectMSERFeatures(iGray, ...
'RegionAreaRange',[20 1200],'ThresholdDelta',12);
axes(handles.mserAxes);
imshow(iGray);
hold on;
plot(mserRegions, 'showPixelList', true, 'showEllipses',
false);
title('Object Area');
hold off;
%ekstrak region secara vertikal
mserRegionsPixels =
vertcat(cell2mat(mserRegions.PixelList));
%membuat matrix dengan tipe logical
mserMask = false(size(iGray));
%merepresentasikan 3 matriks menjadi 1 kolom (3D indexing)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

74

ind = sub2ind(size(mserMask), mserRegionsPixels(:,2),


mserRegionsPixels(:,1));
%memberi nilai matriks tersebut dg logic true
mserMask(ind) = true;
%memberi nilai bwWord dengan mserMask
bwWord = mserMask;
%write hasil
axes(handles.crup);
imshow(bwWord);
imwrite(bwWord, 'hasil.jpg');
end
% Update handles structure
guidata(hObject, handles);

function varargout = Main_OutputFcn(hObject, eventdata, handles)


varargout{1} = handles.output;

function back_Callback(hObject, eventdata, handles)


close
Main

3. Source code Cek

Berikut merupakan source code Cek induk fungsi untuk melakukan proses
seluruh preprocessing, pada source code ini dilakukan pemanggilan gambar,
pemrosesan citra, dan pemerolehan informasi.

Clear
folderA='E:\Instaler\MatlabR2014b\bin\ocr\A\';
fileA=dir(strcat(folderA,'*.jpg'));
folderB='E:\Instaler\MatlabR2014b\bin\ocr\B\';
fileB=dir(strcat(folderB,'*.jpg'));
folderC='E:\Instaler\MatlabR2014b\bin\ocr\C\';
fileC=dir(strcat(folderC,'*.jpg'));
file=length(fileA)+length(fileB)+length(fileC);
data=cell(file,3);
b=1;
for i=1:length(fileA)
[data{b,1}, data{b,2}]=getTextJudul(folderA,fileA(i).name);
[data{b,3}]=addDB;
b=b+1;
end
for i=1:length(fileB)
[data{b,1}, data{b,2}]=getTextJudul(folderB,fileB(i).name);
[data{b,3}]=addDB;
b=b+1;
end
for i=1:length(fileC)
[data{b,1}, data{b,2}]=getTextJudul(folderC,fileC(i).name);
[data{b,3}]=addDB;
b=b+1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

75

end
%simpan setiap data
dataA=data(1:length(fileA),:);
save('DATA A.mat','dataA');
dataB=data(length(fileA)+1:length(fileA)+length(fileB),:);
save('DATA B.mat','dataB');
dataC=data(length(fileA)+length(fileB)+1:end,:);
save('DATA C.mat','dataC');
%simpan semua data
save('DATA.mat','data');

4. Source code getTextJudul

Menggunakan source code ini untuk pemrosesan citra, Optical Character


Recognition (OCR), serta pengambilan label gambar.

function [label dOcr] = getTextJudul(url,name)


%fungsi untuk memotong objek tulisan secara otomatis menggunakan
MSER
%%Image converting
gambar=imread(strcat(url,name));
if size(gambar,3)==3
%rgb
iRGB = gambar;
%grayscale
iGray = rgb2gray(iRGB);
%bw
iBW = im2bw(iGray);
else
%grayscale
iGray=gambar;
%bw
iBW = im2bw(iGray);
end
% MSER PREPROCESSING
mserRegions = detectMSERFeatures(iGray, ...
'RegionAreaRange',[20 1200],'ThresholdDelta',12);
%ekstrak region secara vertikal
mserRegionsPixels = vertcat(cell2mat(mserRegions.PixelList));
%membuat matrix dengan tipe logical
mserMask = false(size(iGray));
%merepresentasikan 3 matriks menjadi 1 kolom (3D indexing)
ind = sub2ind(size(mserMask), mserRegionsPixels(:,2),
mserRegionsPixels(:,1));
%memberi nilai matriks tersebut dg logic true
mserMask(ind) = true;
%memberi nilai bwWord dengan mserMask
bwWord = mserMask;
%mencari ketetanggaan (piksel 1 yang terhubung)
cc1 =bwconncomp(bwWord);
%menyimpan hasil dari cropping
imwrite(bwWord, 'hasil.jpg')
%OCR
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

76

exestart('E:\Instaler\MatlabR2014b\bin\Skripsi\hasil.jpg');
dOcr1=fileread('E:\Instaler\MatlabR2014b\bin\Skripsi\ocrdata.txt
');
%ambil label
label=getLabel(name);
% show
else
label=getLabel(name);
dOcr='';
end
end

5. Source code addDB


Source code ini digunakan untuk memproses kata hasil OCR menggunakan
pemerolehan informasi dan menghilangkan beberapa karakter yang tidak perlu.

function [ hasil ] = addDB( )


clear

%baca data .txt


filetext=fileread('ocrdata.txt');
%check data kosong
if ~isempty(filetext)
%menuju direktori
cd('E:\Instaler\MatlabR2014b\bin\Skripsi');
%cek file
cekFile=exist('dbFilter.mat', 'file');
cekFile2=exist('dbKata.mat', 'file');
%memisahkan setiap tulisan
hasil=strsplit(filetext);
%check noise kata
hasil=hapusNoiseKata(hasil);
% jika data berisi akhiran -> trim
[x,y]=size(hasil);
%jika dbKata kosong
if cekFile==2
%load dbData
load 'dbFilter';
[x1,y1]=size(dbFilter);
if cekFile2~=2
dbKata=cell(1,0);
save ('dbKata.mat','dbKata');
y1=1;
end
else
dbFilter=cell(1,0);
save ('dbFilter.mat','dbFilter');
y1=1;
if cekFile2~=2
dbKata=cell(1,0);
save ('dbKata.mat','dbKata');
y1=1;
end
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

77

%cek makna pada kamus

%% tambah jika data kosong


[gabung,hasil]=kataMakna(hasil);
hasil=compareMakna(gabung,hasil);
%simpan hasil
dbFilter=[dbFilter,hasil];
save('dbFilter.mat','dbFilter');
checkingData(hasil);
else
hasil='';
end
end

6. Source code compareMakna

Digunakan untuk proses stop word mencari 2 kata yang memiliki 1 arti dan
dilakukan proses tokenizing, case-folding dan stemming pada setiap kata.

Function [ db ] = compareMakna(gabung, hasil)


%compare 2 kata yang memiliki 1 makna
%create variable db
db=cell(1,0);
%buka db kamusMakna
load 'kamusMakna';
%ukuran db kamusMakna
[a,b]=size(kamusMakna);
%ukuran db gabung
[x,y]=size(gabung);
%inisialisasi variabel hasil
result=0;
%looping sebanyak ukuran db
for i=1:b
kata1=kamusMakna(a,i);
for j=1:y
%ukuran db hasil
[p,q]=size(hasil);
%panggil kata gabung
kata2=gabung(x,j);
%jika benar maka hasil=1
if strcmp(kata1,kata2)
result=1;
for k=1:q
if k<q
%pattern kata 1st
[pattern1]=strcat(hasil{1,k});
%pattern kata 2nd
[pattern2]=strcat(hasil{1,k+1});
%mengeluarkan string dari cell
[kt]=kata2{1,1};
%hasil pencarian kata pada kalimat gabungan
text1=strfind(kt,pattern1);
text2=strfind(kt,pattern2);
%menghapus kata pada hasil jika ditemukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

78

if ~isempty(text1) && ~isempty(text2)


hasil(:,k+1)=[];
hasil(:,k)=[];
[p,q]=size(hasil);
end
end
end
end
end

%jika tidak ditemukan maka akan disimpan


if result==1
db=[db,kata1];
end
end
hasil=tokenizer(hasil);
db=[db,hasil];

7. Source code tokenizer

Digunakan untuk proses case-folding dan stemming kata.

Function [ db ] = tokenizer( array )


%create variable db
db=cell(1,0);
%ukuran db array
[x,y]=size(array);
%looping sebanyak y
for i=1:y
[kata]=char(array{x,i});
%ubah kata ke array pada setiap karakter
kata=upper(kata);
%%check kata dengan kamus Kata
if compareKata(kata)~=1
isi=num2cell(kata);
%cari panjang array
p_isi=length(isi);
%correction
%Konfiks/Gabungan (ke-an, per-an, pen-an, ber-an,se-nya)
%penge
if p_isi>5
if ~isempty(strfind(prefix5,'PENGE'))
kata = strrep(kata,'PENGE','') ;
end
%menge
if ~isempty(strfind(prefix5,'MENGE'))
kata = strrep(kata,'MENGE','') ;
end
end
%(meng-kan,meng-i,peng-an,ke-an,se-nya,per-an)
%me-
if ~isempty(strfind(prefix3,'ME'))&&
isempty(strfind(prefix3,'MEN'))
%me-kan
if ~isempty(strfind(sufix3,'KAN'))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

79

kata = strrep(kata,'AN','') ;
end
%me-i
if ~isempty(strcmp(isi(p_isi),'I'))
kata = strrep(kata,'I','') ;
end
%me
kata = strrep(kata,'ME','') ;
end
%ke-an
if ~isempty(strfind(prefix3,'KE')) &&
~isempty(strfind(sufix2,'AN'))
kata = strrep(kata,'KE','') ;
kata = strrep(kata,'AN','') ;
end
%per-an
if ~isempty(strfind(prefix3,'PER')) &&
~isempty(strfind(sufix2,'AN'))
kata = strrep(kata,'PER','') ;
kata = strrep(kata,'AN','') ;
if kata=='AYA'
kata='RAYA';
end
end
%pen-an
if ~isempty(strfind(prefix3,'PEN')) &&
~isempty(strfind(sufix2,'AN'))
kata = strrep(kata,'PEN','') ;
kata = strrep(kata,'AN','') ;
end
%ber-an
if ~isempty(strfind(prefix3,'BER')) &&
~isempty(strfind(sufix2,'AN'))
kata = strrep(kata,'BER','') ;
kata = strrep(kata,'AN','') ;
end
%se-nya
if ~isempty(strfind(prefix3,'SE')) &&
~isempty(strfind(sufix3,'NYA'))
kata = strrep(kata,'SE','') ;
kata = strrep(kata,'NYA','') ;
end

%Prefiks/Awalan (meng, di, peng, ber, ter, se).


%meng
if ~isempty(strfind(prefix3,'MEN'))
if p_isi>3
if strcmp(isi(4),'Y')
if strcmp(kata,'MENYALA')
kata = strrep(kata,'ME','') ;
else

kata=char(strcat('S',isi(5):isi(end)));
end
elseif strcmp(isi(4),'G')
kata = strrep(kata,'MENG','') ;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

80

else
kata = strrep(kata,'MEN','') ;
end
end
end
%mem
if ~isempty(strfind(prefix3,'MEM'))
if ~isempty(strfind(prefix5,'MEMPE'))
kata = strrep(kata,'MEMPER','') ;
kata = strrep(kata,'KAN','') ;
else
kata = strrep(kata,'MEM','') ;
end
end
%di
if ~isempty(strfind(prefix3,'DI'))
kata = strrep(kata,'DI','') ;
end
%ter
if ~isempty(strfind(prefix3,'TER'))
kata = strrep(kata,'TER','') ;
end
%pen
if ~isempty(strfind(prefix3,'PEN'))
if p_isi>4
if ~isempty(strfind(prefix4,'PENY'))
kata='S';
for k=5:p_isi
kata=char(strcat(kata,isi(k)));
end
else
kata = strrep(kata,'PEN','') ;
end
end
end
%pe
if ~isempty(strfind(prefix3,'PE'))
if p_isi>4
if ~isempty(strfind(isi(4),'L'))
kata = strrep(kata,'PEL','') ;
else
kata = strrep(kata,'PE','') ;
end
end
end
%ber
if ~isempty(strfind(prefix3,'BE'))
if ~isempty(strfind(prefix3,'BER'))
if p_isi>length(kata)
tempKata=num2cell(kata);
tempKata(length(tempKata))='';
kata=cell2mat(tempKata);
else
kata = strrep(kata,'BER','');
end
else ~isempty(strfind(prefix3,'BEL'))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

81

kata = strrep(kata,'BEL','') ;
end
end
%se
if ~isempty(strfind(prefix3,'SE'))
kata = strrep(kata,'SE','') ;
end
%pe
if ~isempty(strfind(prefix3,'PE'))
% kata = strrep(kata,'PE','') ;
end
%per
if ~isempty(strfind(prefix3,'PER'))
kata = strrep(kata,'PER','') ;
end
%ke
if ~isempty(strfind(prefix3,'KE'))
kata = strrep(kata,'KE','') ;
end

%Sufiks/Akhiran (kan, i, an, hm).


%kan
if ~isempty(strfind(sufix3,'KAN'))
if strcmp(kata,'BISIKAN')
kata = strrep(kata,'AN','');
else
kata = strrep(kata,'KAN','');
end
end
%i
if p_isi>6 && length(strfind(isi,'I'))>2 &&
~strcmp(kata,'CARI')&& length(kata)>5
if ~isempty(strfind(sufix1,'I'))
% kata = strrep(kata,'I','');
if p_isi>length(kata)
tempKata=num2cell(kata);
tempKata(length(tempKata))='';
kata=cell2mat(tempKata);
else
isi(p_isi)='';
kata=cell2mat(isi);
end
end
end
%an
if ~isempty(strfind(sufix2,'AN'))
kata = strrep(kata,'AN','') ;
end
%hm
if ~isempty(strfind(sufix2,'HM'))
kata = strrep(kata,'HM','') ;
end
%ing
if ~isempty(strfind(sufix3,'ING'))
kata = strrep(kata,'ING','') ;
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

82

%%temu
if ~isempty(strfind(kata,'EMU'))
kata='TEMU';
end
end
end
db=[db,kata];
end
end

8. Source code kataMakna

Digunakan untuk proses stop word mencari kata yang tidak memiliki
makna, dengan berpatokan pada daftar konjugasi.

Function [ arrayGabungKata, hasil ] = kataMakna( hasil )


%buka db kamusKata
load 'konjugasi';
%ukuran db kamusKata
[a,b]=size(konjugasi);
%ukuran hasil
[x,y]=size(hasil);
arrayGabungKata=cell(1,0);
count=1;
%cell menaruh sementara nomor konjugasi
tempKata=cell(1,0);
%konversi cell ke string array
konjugasi=cellstr(konjugasi);
%cek konjugasi kata
for j=1:y
kata1=char(hasil{x,j});
for i=1:b
kata2=strcat(konjugasi{a,i});
if strcmpi(kata1,kata2)
tempKata=[tempKata,j];
end
end
end
%cek ukuran konjugasi
[c,d]=size(tempKata);
%menghapus konjugasi
for i=1:d
%mengambil nomor konjugasi yang akan dihapus
[no]=tempKata{c,i};
%jika tidak nomor awal maka nomor dikurangi i-1
if i>1
no=no-(i-1);
end
%menghapus konjugasi
hasil(:,no)=[];
end
%cek ukuran lagi
[x,y]=size(hasil);
%gabung kata
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

83

for i=1:y
%gabung kata pertama dan kedua
if count<y && ~isempty(hasil(x,count))
%membuat delimit untuk menggabung kata
delimit = ', ';
%kata pertama
hasilX = char(hasil(x,count));
%kata kedua
hasilY = char(hasil(x,count+1));
%menggabungkan kata 1st dan 2nd
cekKata = char(strcat(hasilX,delimit,hasilY));
%menghapus delimit
cekKata = strrep(cekKata,',',' ') ;
%menyimapan hasil kedalam array
arrayGabungKata=[arrayGabungKata,cekKata];
else
%jika kata sudah habis
cekKata='';
end
%counter
count=count+1;
end
end

9. Source code mergeData

Digunakan untuk mengubah proporsi data dan menggabungkannya

function [ input ] = mergeData( )


%%load data A
load 'DATA A';
[x,y]=size(dataA);
dataA1=dataA(1:(x/3),:);
dataA2=dataA((x/3+1):(2*x/3),:);
dataA3=dataA((2*x/3+1):end,:);
%%load data B
load 'DATA B';
[x,y]=size(dataB);
dataB1=dataB(1:(x/3),:);
dataB2=dataB((x/3+1):(2*x/3),:);
dataB3=dataB((2*x/3+1):end,:);
%%load data C
load 'DATA C.mat';
[x,y]=size(dataC);
dataC1=dataC(1:(x/3),:);
dataC2=dataC((x/3+1):(2*x/3),:);
dataC3=dataC((2*x/3+1):end,:);
%%merge data
data=[dataA1;dataB1;dataC1;dataA2;dataB2;dataC2;dataA3;dataB3;da
taC3];
input=countDataNoDel(data(:,3));
label=data(:,1);
save('datasNoDel.mat','input','label');
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

84

10. Source code addKonjugasi

Menggunakan fungsi ini untuk menambahkan data konjugasi yang ada.

function [ ] = addKonjugasi( )
%baca data .txt
filetext=fileread('konjugasi.txt');
%menuju direktori
cd('E:\Instaler\MatlabR2014b\bin\Skripsi');
%cek file
cekFile=exist('konjugasi.mat', 'file');
%memisahkan setiap tulisan
hasil=strsplit(filetext,'\n');
%menghapus data yang kosong
hasil=hasil(~cellfun('isempty',hasil));
% jika data berisi akhiran -> trim
[x,y]=size(hasil);
%jika konjugasi kosong
if cekFile==2
%load dbData
load 'konjugasi';
[x1,y1]=size(konjugasi);
else
konjugasi=cell(1,0);
save ('konjugasi.mat','konjugasi');
y1=1;
end
%cek kata pada kamus
for i=1:y
txt=hasil(1,i);
cmpHasil=0;
for j=1:y1
if ~isempty(konjugasi)
w=konjugasi(1,j);
if ~strcmp(w,txt)
cmpHasil=1;
i=i+1;
else
cmpHasil=0;
j+1;
end
else
cmpHasil=1;
end
end
if cmpHasil==1
konjugasi=[konjugasi,txt];
y1+1;
end
end
%simpan ke konjugasi.mat
if ~isempty(konjugasi);
save('konjugasi.mat','konjugasi');
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

85

11. Source code countData

Source code ini berfungsi mengubah data non numerik menjadi numerik
dengan membandingkan data telah dikumpulkan.

function [ dataInput ] = countData( input )


load 'dbKata';
[x1,y1]=size(dbKata);
cekFile=exist('nonDelete.mat', 'file');
if cekFile==2
%load dbData
load 'nonDelete';
if length(dataInput)<length(input)
dataInput=zeros(length(input),y1);
end
else
dataInput=zeros(length(input),y1);
end

for i=1:length(input)
for j=1:length(input{i})
f=strcmp(input{i}{1,j},dbKata);
if dataInput(i,f)~=0
sum=dataInput(i,f)+1;
dataInput(i,f)=sum;
else
dataInput(i,f)=1;
end
end
end
save ('nonDelete.mat','dataInput');
end

12. Source code mainJST

Berfungsi untuk mengatur data sebelum diproses ke jaringan syaraf tiruan.

function [meanneuron] = mainJST(n1,n2)


tic
%%
load 'datasNoDel'
physchars=input(:,1:end);
[l,t]=size(physchars);

%% Ubah Label
lb = label;
for i = 1 : length(lb)
if lb{i} == 1
label2(i,1) = 1;
label2(i,2) = 0;
elseif lb{i} == 2
label2(i,1) = 0;
label2(i,2) = 1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

86

elseif lb{i} == 3
label2(i,1) = 1;
label2(i,2) = 1;
else
label2(i,1) = 0;
label2(i,2) = 0;
end
end

%% mulai three-fold
dtrain = floor(l*(1/3));
akurasi={};

if n2~=0
n=[n1 n2];
else
n=[n1];
end
for i = 1 : 3
%%clear variable
dtr=[];
dtrl=[];
if i==1
%ambil data training
dtr = physchars(1:dtrain,:);
dtrl = label2(1:dtrain,:);
%ambil data testing
dte = physchars(dtrain+1:end,:);
dtel = label2(dtrain+1:end,:);
elseif i==2
%ambil data training
dtr = physchars(dtrain+1:dtrain*2,:);
dtrl = label2(dtrain+1:dtrain*2,:);
%ambil data testing
dte = physchars(dtrain+1:dtrain*2,:);
dtel = label2(dtrain+1:dtrain*2,:);
else
%ambil data training
dtr = physchars(dtrain*2+1:end,:);
dtrl = label2(dtrain*2+1:end,:);
%ambil data testing
dte = physchars(1:dtrain*2,:);
dtel = label2(1:dtrain*2,:);
end

[akurasi{i},jumlahneuron,confmat{i}]=JST(dtr',dtrl',dte',dtel',n
);

end
meanneuron=(akurasi{1}+ akurasi{2}+akurasi{3})/length(akurasi);
% end
time = toc;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

87

13. Source code JST

Source code untuk klasifikasi buku dan menghitung akurasinnya.

function [ akurasik, jumlahneuron, confmat] =


JST(ktrain,labeltrain,ktest,labeltest,n)

jumlahneuron=n;

net = feedforwardnet(jumlahneuron);

%% model JST
%% uji model
% view(net);
out=sim(net,ktest);
luaran =round(out);

%% bandingkan luaran (akurasi)


hasil = confusionmat(labeltest(1,:), luaran);
confmat = hasil;
akurasik = ((sum (diag(hasil))) / (sum(sum(hasil)))) * 100;
end

14. Source code annTrain

Untuk membuat dan menyimpan model dari hasil klasifikasi.

function [ ] = annTrain(n1, n2)


%% Load Data
load 'datasNoDel'
physchars=input(:,1:end);
[l,t]=size(physchars);
%% Labeling
lb = label;
for i = 1 : length(lb)
if lb{i} == 1
label2(i,1) = 1;
label2(i,2) = 0;
elseif lb{i} == 2
label2(i,1) = 0;
label2(i,2) = 1;
elseif lb{i} == 3
label2(i,1) = 1;
label2(i,2) = 1;
else
label2(i,1) = 0;
label2(i,2) = 0;
end
end
%% Neuron
if n2~=0
n=[n1 n2];
else
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

88

n=[n1];
end
jumlahneuron=n;
net = feedforwardnet(jumlahneuron);
%% model JST
%% save model
save('Model.mat','net','tr');
end

15. Source code inputData

Digunakan untuk merubah tampilan data sehingga bisa masuk ke GUI boks
tulisan.

function [ tampil ] = inputData(ocr)


tampil='';
if ~isempty(ocr)
hasil=strsplit(ocr);
%check noise kata
hasil=hapusNoiseKata(hasil);
% jika data berisi akhiran -> trim
[x,y]=size(hasil);
%% tambah jika data kosong
[gabung,hasil]=kataMakna(hasil);
hasil=compareMakna(gabung,hasil);
%simpan hasil
save('UjiTunggal.mat','hasil');
for i=1:length(hasil)
if i==1
tampil=strcat(hasil{i});
else
tampil=strcat(tampil,'_',strcat(hasil{i}));
end
end
tampil=strrep(tampil,'_',' ');
end
end

16. Source code countDataTest

Digunakan untuk menumerikan data sebelum masuk ke proses


klasifikasi.

function [ dataTest ] = countDataTest( input )


load 'dbKata';
[x1,y1]=size(dbKata);
dataTest=zeros(x1,y1);

for i=1:length(input)
for j=1:length(input{i})
f=strncmp(input{i}{1,j},dbKata,5);
if dataTest(i,f)~=0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

89

sum=dataTest(i,f)+1;
dataTest(i,f)=sum;
else
dataTest(i,f)=1;
end
end
end
save ('dataTest.mat','dataTest');
end

17. Source code annTest

Digunakan untuk memproses klasifikasi data tunggal.

function [hasil] = annTest(data,lb)


%% Labeling
label2=zeros(1,2);
if lb == 1
label2(1,1) = 1;
label2(2,2) = 0;
elseif lb == 2
label2(1,1) = 0;
label2(2,2) = 1;
elseif lb == 3
label2(1,1) = 1;
label2(2,2) = 1;
else
label2(1,1) = 0;
label2(2,2) = 0;
end

%% model JST
load 'Model.mat';

%% uji model
out=sim(net,data');
luaran =round(out);

%% New Label
if luaran(1)==1 && luaran(2)==0
hasil='Kerohanian';
elseif luaran(1)==0 && luaran(2)==1
hasil='Pendidikan';
elseif luaran(1)==1 && luaran(2)==1
hasil='Filsafat';
else
hasil='Tidak Teridentifikasi';
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

90

B. Lampiran Basis Data

1. kamusKata

Digunakan untuk menjadi patokan kata – kata khusus.

'BIOLOGI'
'MESIN'
'KURBAN'
'PAHAGYAN'
'BOJANA'
'TUHAN'
'ALQURAN'
'PEPUDYAN'
'MANUSIA'
'HUMAN'
'ILMUWAN'
'BANGSA'
'SEDERHANA'
'EKARISTI'
'KORUPSI'
'LITURGI'
'IMAN'
'PAROKI'
'SEJARAH'

2. kamusMakna

Digunakan untuk menjadi patokan kata – kata yang memiliki 2 kata dasar.

'BUDI PEKERTI'
'BERTANGGUNG JAWAB'
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

91

3. konjugasi

Digunakan untuk menjadi patokan kata – kata konjugasi.

'DAN'
'DENGAN'
'SERTA'
'ATAU'
'TETAPI'
'NAMUN'
'SEDANGKAN'
'SEBALIKNYA'
'MELAINKAN'
'HANYA'
'BAHKAN'
'MALAH'
'MALAHAN'
'LAGIPULA'
'APALAGI'
'JANGANKAN'
'KECUALI'
'HANYA'
'LALU'
'KEMUDIAN'
'SELANJUTNYA'
'YAITU'
'YAKNI'
'BAHWA'
'ADALAH'
'IALAH'
'JADI'
'KARENA ITU'
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

92

'OLEH SEBAB ITU'


'SEBAB'
'KARENA'
'KALAU'
'JIKALAU'
'JIKA'
'BILA'
'APALAGI'
'ASAL'
'AGAR'
'SUPAYA'
'KETIKA'
'SEWAKTU'
'SEBELUM'
'SESUDAH'
'TATKALA'
'SAMPAI'
'HINGGA'
'SEHINGGA'
'UNTUK'
'GUNA'
'SEPERTI'
'SEBAGAI'
'LAKSANA'
'TEMPAT'
'YANG'
'AKAN'
'BIARLAH'
'FOR'
'PARA'

Anda mungkin juga menyukai