Presentasi Tugas Akhir
“Rancang Bangun Aplikasi Sistem Validasi Data Berkas Beasiswa”
Jurusan Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember
2014 Oleh : Artha Pradyta NRP. 5110100109
Latar Belakang
Pengunggahan Berkas Persyaratan
Beasiswa
Validasi Berkas Oleh Manusia Proses Seleksi Pemberian Beasiswa next back • Harus menunggu validasi oleh manusia • Jenis berkas yang
divalidasi cukup banyak
Lamanya proses seleksi
pemberian beasiswa
menyebabkan
• Salah mengenali jenis berkas • Salah mengenali pemilik berkas Terjadinya “Human Error” sering memicu
Tujuan
– Membuat sistem yang dapat melakukan validasi jenis berkas dan pemilik berkas yang diunggah oleh mahasiswa.
– Mengimplementasikan penerapan algoritma Levenshtein Distance, Longest Common Subsequence, dan Soundex untuk membandingkan data nama pemilik berkas.
– Mengimplementasikan penerapan teknologi Optical Character Recognition untuk ekstraksi data dari berkas persyaratan yang diunggah ke dalam sistem.
Rumusan Permasalahan(1)
▪ Cara memvalidasi data berkas persyaratan beasiswa yang diunggah oleh mahasiswa melalui layanan Web Service.
next back
SI Beasiswa Sistem Validasi Berkas
Rumusan Permasalahan(2)
▪ Menerapkan metode Optical Character Recognition pada sistem validasi data berkas persyaratan beasiswa untuk mendapatkan kumpulan kata nama beserta kata kunci setiap berkas.
rincian iagihan dapat diakses di unn.b1n.co}id
informasi hubungi call center : 123 atau hub. pln terdekat : 'ii _ ()();;(3451;j7?;;1 ttd-hart pryment 9820456authorized pt.pos indonesia (persero) ktanggal : 2012-12-15 09:25:05 v t no.resi : 9820456-01/2012/003724 petugas : 68204560& I pembayaran pln pznpsr zona-z' ridpel : 1830901149690 t nama : maryono
tarif/daya : r1/2200 vabl/th : des 2012
stand meter : 03868200 * 03896600non subsidi . i rp. t 0rp tag pln : rp. 241.585nurahr ref : l850101850189817720l2l2150925050pln
menyatakan struk ini sebagai bukti pembayaran yang san, admin pos : rp. 1.900total bayar : rp. 243.4851
Rumusan Permasalahan(3)
▪ Menerapkan algoritma Levenshtein Distance, Longest Common Subsequence, dan Soundex pada sistem validasi data berkas persyaratan beasiswa untuk melakukan pencocokan kumpulan kata nama.
▪ Menentukan hasil validasi jenis dan nama yang tertera di dalam berkas.
Artha Pradyta
Bachruddin
next back
Batasan Permasalahan
▪ Studi kasus yang dibahas adalah SI Beasiswa di Perguruan Tinggi X. ▪ Data uji yang digunakan adalah data sekunder (dummy).
▪ Aplikasi ini dibangun dengan menggunakan bahasa pemrograman ASP.NET. ▪ Tingkat keberhasilan validasi tergantung dari kejelasan gambar yang diunggah.
▪ Banyaknya gangguan (noise) pada gambar akan mempengaruhi lamanya proses validasi. ▪ Algoritma pencocokan kumpulan kata yang digunakan adalah algoritma Levenshtein
Distance, Longest Common Subsequence, dan Soundex.
▪ Metode untuk pengurangan gangguan pada gambar berupa penambahan skala (rezise), pengubahan ke dalam bentuk skala abu (gray-scale), dan penambahan kontras (contrast). ▪ Aplikasi validasi berkas ini tidak bisa mendeteksi adanya berkas palsu yang dimanipulasi
Optical Character Recognition
▪ Merupakan sebuah teknologi konversi dari gambar ke bentuk teks.
Teknologi ini biasanya digunakan untuk mengambil data dari berkas-berkas
berbentuk gambar seperti dokumen paspor, faktur, laporan bank, kartu
nama, dan sebagainya.
▪ Dalam pemrosesan OCR, gambar dianalisis pada daerah terang dan gelap
dalam rangka mengidentifikasi setiap huruf abjad maupun angka numeric.
Ketika karakter sudah diketahui, maka setiap kata tersebut dirubah ke
dalam bentuk ASCII. Dalam hal ini mesin komputer merubah kode ASCII
tersebut menjadi berupa karakter maupun angka.
▪ Karena kemampuannya dalam hal ekstraksi data dari gambar inilah, maka
teknologi ini digunakan untuk mengambil data-data dari berkas
persyaratan beasiswa yang telah diunggah ke sistem seperti surat
keterangan miskin, rekening listrik, rekening air dan sebagainya
Algoritma Soundex & Normalisasi
String(1)
▪ Algoritma Soundex mengambil masukan berupa sebuah kumpulan kata yang mengidentifikasi apakah sepasang kata tersebut mirip secara fonetik. Fonetik sendiri merupakan ilmu yang menyelidiki bunyi
bahasa tanpa melihat fungsi bunyi itu sebagai pembeda makna dalam suatu bahasa.
▪ Sebuah kumpulan kata yang berbeda namun mempunyai cara pengucapan yang sama, akan memiliki kode fonetis yang sama. Contohnya adalah “Djono” dan “Jono”. ▪ Algoritma Soundex dibuat berdasarkan
pengucapan dalam bahasa Inggris. Untuk mendukung pencocokan kumpulan kata berdasarkan bahasa Indonesia, sekaligus melakukan optimasi terhadap algoritma
tersebut, diperlukan suatu proses normalisasi. Salah satu cara untuk proses normalisasi
adalah dengan menggunakan aturan translasi
q-gram. next
back
Q-Gram Contoh
Awal Translasi Awal Translasi
KH HH Rakhmat Rahhmat DJ JJ Endjang Enjjang TJ CC Itjang Iccang CQ, CK KK Erick Erikk PH FF Philip Ffilip DZ ZZ Dzikri Zzikri SJ SY Sjahrir Syahrir SY SS Syifa Ssifa BH, DH, GH, JH, SH, TH, ZH BB, DD, GG, JJ, SS, TT, ZZ Ardhi Arddi V F Saviena Safiena KS XX Wicaksono Wicaxxono OE UU Wahyoedi Wahyuudi IE II Arie Arii Y I Donny Donni
Algoritma Soundex & Normalisasi
String(2)
▪ Berikut ini merupakan langkah-langkah algoritma Soundex dalam menghasilkan kode fonetis dari sebuah kumpulan kata masukan.
– Mengubah semua huruf menjadi huruf kapital, dan hilangkan tanda baca. – Mempertahankan huruf pertama pada
kata tersebut.
– Mengubah huruf lainnya menjadi kode fonetis berdasarkan aturan yang berlaku. – Menghapus semua pasangan dari kode
fonetis yang berurutan.
– Menghapus semua kode fonetis yang bernilai 0.
– Menulis empat posisi pertama yang mengikuti pola: <uppercase
letter><digit><digit><digit>. Ini
merupakan keluaran dari kode fonetis. Jika kode fonetis tidak sampai empat karakter, maka ditambahkan angka 0 sampai menjadi empat karakter.
Huruf Kode Klasifikasi Fonetis
A,E,H,I,O,U,W,Y 0 Diperlukan sebagai bunyi vokal
B,F,P,V 1 Labial dan labio-dental
C,G,J,K,Q,S,X,Z 2 Glottal
D,T 3 Dental-mute
L 4 Palatal fricative
M,N 5 Labio-nasal dan dental
R 6 Dental fricative Jono Djono jono jono J050 J050 String awal Translasi q-gram Kode fonetis
Algoritma Levenshtein Distance
▪ Levenshtein Distance adalah jumlah minimal operasi yang dibutuhkan untuk mengubah suatu kumpulan kata ke kumpulan kata yang lain. Dengan algoritma ini, dapat diketahui tingkat perbedaan dua buah kumpulan kata dalam representasi angka.
▪ Berikut ini operasi yang dilakukan dalam algoritma Levenshtein Distance.
– Penyisipan (Insertion)
▪ Merupakan proses penyisipan sebuah karakter ke dalam sebuah kumpulan kata tertentu.
– Penghapusan (Deletion)
▪ Merupakan proses penghapusan sebuah karakter dari sebuah kumpulan kata tertentu.
– Penggantian (Substitution)
▪ Merupakan proses penggantian sebuah karakter dari sebuah kumpulan kata dengan karakter lain.
next back
Djono Jono
Jono Jono Penghapusan
Nilai Levenshtein Distance = 1
Algoritma Longest Common Subsequence
▪ Subsequence adalah sebuah rangkaian yang dapat diperoleh dari rangkaian
lain dengan cara menghapus beberapa elemen tertentu tanpa mengubah
urutan dari elemen lain yang tersisa. Misalkan ada rangkaian X danY,
rangkaian S dikatakan sebuah common subsequence dari X danY apabila S
adalah subsequence dari keduanya. Longest Common Subsequence (LCS)
merupakan common subsequence terpanjang dari seluruh common
subsequence. Contohnya adalah sebagai berikut.
▪ X = {M,A,K,A,N}.
▪ Y = {M,A,L,A,M}.
▪ Contoh common subsequence dari X danY adalah S = {M,A,A} dan T = {M,A}.
Karena S merupakan subsequence yang lebih panjang, maka longest
Web Service
▪ Web Service adalah suatu sistem perangkat lunak yang dirancang untuk mendukung interaksi mesin ke mesin pada suatu jaringan. Sistem lain yang berinteraksi dengan Web Service dilakukan melalui antar muka menggunakan pesan seperti pada SOAP. Pada umumnya pesan ini melalui HTTP dan XML yang merupakan salah satu standar situs web. Perangkat lunak aplikasi yang ditulis
dalam berbagai bahasa pemrograman dan berjalan pada berbagai platform dapat menggunakan Web Service untuk pertukaran data pada jaringan komputer seperti Internet dalam cara yang serupa dengan komunikasi antar proses pada komputer tunggal.
▪ Dalam hal ini Web Service digunakan sebagai perantara pertukaran data berkas antara SI Beasiswa dengan aplikasi validasi berkas beasiswa.
next back
Precision & Recall
▪ Untuk menghitung tingkat performansi suatu sistem yang memiliki kemampuan untuk
mendapatkan kembali informasi-informasi tertentu dapat menggunakan perhitungan precision dan recall.
▪ Precision adalah tingkat ketepatan antara informasi yang diminta oleh pengguna dengan jawaban yang diberikan oleh sistem.
▪ Recall adalah tingkat keberhasilan sistem dalam menemukan kembali sebuah informasi.
▪ Secara matematis, rumus untuk menghitung presisi dan recall dapat dilihat pada Persamaan 1 dan Persamaan 2.
𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝑖𝑡𝑒𝑚𝑠 𝑟𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑 𝑟𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑 𝑖𝑡𝑒𝑚𝑠
𝑟𝑒𝑐𝑎𝑙𝑙 = 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝑖𝑡𝑒𝑚𝑠 𝑟𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝑖𝑡𝑒𝑚𝑠
Deskripsi Umum Sistem(1)
Ekstraksi kumpulan kata Optical Character Recognition (OCR) Aplikasi Validator Pencocokan kumpulan kata nama mahasiswaSI Beasiswa Aplikasi Validasi Berkas
Mahasiswa Administrator SI Beasiswa Web Service Berkas Persyaratan Beasiswa Pendeteksian kata kunci berkas
Alur Proses Validasi Berkas
Sistem Validasi Berkas Sistem Beasiswa P h as e Mulai
Mengirim Data Berkas Yang Akan Divalidasi Melalui Web Service Berupa Data
Jenis Berkas, Alamat Url Berkas, Nama Yang
Divalidasi
Menerima Permintaan Validasi Berkas Gambar Dengan Ekstensi JPG, JPEG,
TIF, GIF, PNG
Melakukan Ekstraksi Informasi Dari Gambar
Menggunakan Optical Character Recognition
Melakukan Pencarian Kata Kunci Berkas Terdapat Kata Kunci
Berkas
Melakukan Pencarian Karakter Nama Pemilik
Berkas
Melakukan Pencocokan Karakter Nama Pemilik
Berkas Menggunakan Algoritma Soundex Ya Selesai Tidak Terdapat Karakter Nama Pemilik Berkas
Ya
Melakukan Pencocokan Karakter Nama Pemilik Berkas Menggunakan Algoritma Longest Common
Subsequences
Melakukan Pencocokan Karakter Nama Pemilik
Berkas Menggunakan Algoritma Levenshtein Distance Hasil Validitas Berkas Dalam Bentuk XML Informasi Kegagalan Proses Validasi Berkas next back
Langkah Proses Validasi Berkas
Proses Ekstraksi Berkas Gambar Menggunakan
Optical Character Recognition
Proses Pengenalan Jenis Berkas
Proses Pencarian Nama Pemilik Berkas Proses Pencocokan Proses Pencocokan Kumpulan Kata Menggunakan Algoritma Levenshtein Distance Proses Pencocokan Kumpulan Kata Menggunakan Algoritma Longest Common Subsequence
Proses Ekstraksi Berkas Gambar Menggunakan
Optical Character Recognition
▪ Proses ekstraksi berkas berupa berkas gambar merupakan
tahap awal yang harus dilakukan untuk mendapatkan semua
informasi data yang terdapat pada berkas gambar.
▪ Diperlukan teknologi Optical Character Recognition untuk melakukan ekstraksi informasi pada sebuah gambar.
▪ Proses ekstraksi dengan
menggunakan Optical Character Recognition ini menghasilkan sekumpulan kumpulan kata.
next back Mulai Berkas gambar Pengurangan noise dengan teknik resize, gray-scale dan contrast Berkas gambar dengan noise yang diminim alisir Proses ekstraksi berkas gambar Kumpul an kata
Pencarian baris kumpulan kata yang mengandung
nama mahasiswa Baris string ada yang mengandung nama mahasiswa? Simpan dalam variabel nama mahasiswa Selesai Ya Tidak
Proses Pengenalan Jenis Berkas
▪ Proses ini berfungsi untuk mengenali jenis berkas yang diunggah oleh pengguna. ▪ Proses utama yang dilakukan
yaitu mencari kumpulan kata kunci berkas dari basis data, lalu membandingkannya dengan kumpulan kata yang didapat dari hasil ekstraksi.
▪ Proses pencarian kata kunci berkas ini dilakukan pada setiap baris kumpulan kata yang
didapatkan dari ekstraksi
Optical Character Recognition.
Mulai
Data kumpulan kata
hasil ekstraksi
Proses pencarian kata kunci pada kumpulan
kata Terdapat kata kunci pada kumpulan data Simpan dalam variabel Selesai Ya Tidak Proses pengambilan kata kunci dari basis
data
Terdapat data ekstraksi dan
kata kunci Ya
Proses Pencarian Nama Pemilik Berkas
next back
▪ Proses ini berfungsi untuk
mengenali nama pemilik berkas yang diunggah oleh pengguna. ▪ Proses utama yang dilakukan
yaitu mencari kumpulan kata yang mengandung kata
“Nama”, “Nama Lengkap”, dan lain sebagainya dari kumpulan kata yang didapat dari hasil ekstraksi.
▪ Proses pencarian nama pemilik berkas ini dilakukan pada setiap baris kumpulan kata yang
didapatkan dari ekstraksi
Optical Character Recognition.
Mulai
Data kumpulan kata
hasil ekstraksi
Proses pemisahan data nama dengan
data lain Proses pemisahan berhasil Simpan dalam variabel Selesai Ya Tidak
Proses pencarian baris kumpulan kata yang
mengandung Nama Terdapat nama dalam sebuah baris kumpulan kata Ya Tidak
Proses Pencocokan Kumpulan Kata
Menggunakan Algoritma Soundex
▪ Proses ini mempunyai tugas untuk membandingkan kumpulan kata nama yang didapat dari proses ekstraksi dengan kumpulan kata nama yang ingin dibandingkan berdasarkan nada pengucapan
(fonetis) yang dimiliki oleh manusia. ▪ Misalkan terdapat dua buah
kumpulan kata nama yang
dibandingkan yaitu “Bachruddin” dengan “Bahrudin”. Kedua
kumpulan kata nama tersebut dianggap mempunyai kode pengucapan yang sama oleh algoritma Soundex.Algoritma ini bisa menjadi solusi dari
kemungkinan kesalahan pengejaan
Mulai Variabel nama mahasiswa yang dibandingkan Proses pengkodean string nama mahasiswa menggunakan algoritma Soundex Kode fonetis nama yang dibandingkan Proses perbandingan kode fonetis nama yang dibandingkan Kode fonetis mempunyai kemiripan?
Simpan dalam variabel
nama mahasiswa Selesai
Ya
Proses Pencocokan Kumpulan Kata Menggunakan
Algoritma Levenshtein Distance
next back
▪ Proses pencocokan kumpulan kata dengan menggunakan algoritma Levenshtein Distance ini mempunyai tugas untuk membandingkan kumpulan kata nama yang didapat dari proses ekstraksi dengan kumpulan kata nama yang ingin dibandingkan berdasarkan perbedaan karakter di antara keduanya. ▪ Algoritma Levenshtein Distance sendiri
bisa menjadi solusi dari kekurangan algoritma Soundex dimana algoritma ini mempunyai kemampuan untuk mencari jumlah perbedaan karakter antara dua buah kumpulan kata yang dibandingkan. ▪ Semakin banyak jumlah karakter yang
berbeda, maka bisa diasumsikan jika kedua nama yang dibandingkan
memang benar-benar orang berbeda.
Mulai
Variabel nama mahasiswa
yang dibandingkan Proses pencarian perbedaan
karakter string nama mahasiswa menggunakan algoritma Levenshtein Distance Jumlah perbedaan karakter yang dibandingkan sangat rendah? Simpan dalam variabel nama mahasiswa Selesai Ya Tidak
Proses Pencocokan Kumpulan Kata Menggunakan
Algoritma Longest Common Subsequence
▪ Proses pencocokan kumpulan kata dengan menggunakan algoritma Longest Common Subsequence ini mempunyai tugas untuk membandingkan kumpulan kata nama yang didapat dari proses ekstraksi dengan kumpulan kata nama yang ingin dibandingkan
berdasarkan jumlah rangkaian karakter terpanjang.
▪ Semakin panjang rangkaian karakter yang didapat dari
kedua perbandingan, maka bisa diasumsikan jika kedua nama yang dibandingkan memang benar-benar orang yang sama.
Mulai
Variabel nama mahasiswa
yang dibandingkan Proses pencarian rangkaian karakter
terpanjang dari string nama mahasiswa menggunakan algoritma
Longest Common Subsequences
Rangkaian karakter yang didapat sangat
sedikit
Simpan dalam
variabel nama Selesai Tidak
Contoh Proses Validasi
next back
Contoh Pemakaian Layanan Web Service
Validasi Berkas
http://localhost/TA_FileValidation/WebServiceFileValidation.asmx/FileValidation?filetype=Rekening%20List rik&urlimagefile=http://www.alhiraindonesia.com/userfiles/ImageBulan1(1).jpg&nametovalidate=maryono
Lingkungan Pengujian
▪ Prosesor
: Intel Core i5-M430 @ 2,27 GHz (4CPU)
▪ Memori
: 4.00 GB
▪ Jenis Device
: Laptop
▪ Sistem Operasi
: Microsoft Windows 8.1 Enterprise 64 bit
▪ Visual Studio
: Visual Studio 2012
Data Uji Coba Pengujian
▪ Persentase kualitas berkas yang terdapat pada tabel merupakan tingkat kejelasan data pada berkas gambar saat dilakukan pembesaran gambar pada komputer
dilihat dari sudut pandang mata manusia. Sedangkan kata kunci berkas dan nama dari berkas yang terdapat pada tabel merupakan data kata kunci dan nama pemilik berkas yang didapatkan dari berkas gambar yang divalidasi dengan menggunakan mata manusia. Nama Berkas Gambar Persentase Kualitas Berkas Kata Kunci Berkas Nama Dari Berkas Nama Yang Dibandingkan Validitas Berkas
Berkas1 > 80% Ditemukan Slamet
Syamsudiman
Slamet
Syamsudiman
Valid
Berkas2 < 60% Ditemukan Nengah Widiada Nengah
Widiada
Valid
Berkas3 > 80% Ditemukan Maryono Maryono Valid
Berkas4 < 40% Ditemukan Nengah Widiada Nengah
Widiada
Valid
Berkas5 > 70% Ditemukan Machmud Machmud Valid next
Validitas Berkas(1)
▪ Terdapat 3 level keketatan (strictness) dalam proses validasi yaitu:
– Rendah (Low)▪ Terdeteksi kata kunci berkas >= 1
▪ Tingkat kemiripan kode Soundex >= 75%.
▪ Nilai Levenshtein Distance < 40% dari jumlah kata yang dibandingkan
Validitas Berkas(2)
– Sedang (Intermediate)
▪ Terdeteksi kata kunci berkas >= 1
▪ Tingkat kemiripan kode Soundex = 100%.
▪ Nilai Levenshtein Distance < 30% dari jumlah kata yang dibandingkan
▪ Nilai Longest Common Subsequence > 30% dari jumlah kata yang dibandingkan
– Tinggi (High)
▪ Terdeteksi kata kunci berkas >= 1
▪ Tingkat kemiripan kode Soundex = 100%.
▪ Nilai Levenshtein Distance < 20% dari jumlah kata yang dibandingkan
▪ Nilai Longest Common Subsequence > 40% dari jumlah kata yang dibandingkan
next back
Uji Coba Skenario 2
next back
Sistem tidak bisa menemukan kata kunci berkas maupun nama pemilik berkas
Uji Coba Skenario 4
next back
Sistem tidak bisa menemukan kata kunci
berkas maupun nama pemilik berkas
Daftar Precision dan Recall dari Hasil Pengujian
Pencarian Kata Kunci Berkas
Data Uji Retrieve Relevant Relevant
Retrieve Precision Recall Berkas1 1 1 1 1 1 Berkas2 0 2 0 1 0 Berkas3 4 5 4 1 0.8 Berkas4 0 6 0 1 0 Berkas5 2 3 2 1 0.67 Average 1 0.494 next back
Daftar Precision dan Recall dari Hasil Pengujian
Pencarian Karakter Nama Pemilik Berkas
Data Uji Retrieve Relevant Relevant
Retrieve Precision Recall Berkas1 18 18 18 1 1 Berkas2 17 20 17 1 0.85 Berkas3 7 7 7 1 1 Berkas4 0 14 0 1 0 Berkas5 7 7 7 1 1 Average 1 0.77
Evaluasi Hasil Validasi
Berkas1
ditemukanKata kunciKarakter nama ditemukan
Berkas2
Kata kuncitidakditemukan
Karakter nama ditemukan
Berkas3
ditemukanKata kunciKarakter nama ditemukan
Berkas4
Kata kuncitidakditemukan
Karakter nama tidak
ditemukan
Berkas5
ditemukanKata kunciKarakter nama ditemukan
Kualitas buruk gambar disebabkan noise
berlebihan
disebabkan
next back
Kesimpulan
▪ Sistem dapat melakukan validasi berkas persyaratan beasiswa dengan cara
mendeteksi kata kunci berkas dan nama pemilik berkas memanfaatkan
teknologi Optical Character Recognition.
▪ Hasil validasi berkas tergantung dengan kualitas gambar yang divalidasi.
Semakin rendah kualitas gambar, maka kumpulan kata yang didapat dari
hasil ekstraksi akan tidak utuh sehingga data kata kunci berkas dan nama
pemilik berkas tidak dapat ditemukan. Hal ini ditunjukkan dengan rata-rata
nilai recall dari sistem sebesar 0.494 pada pendeteksian kata kunci berkas
dan 0.77 pada pendeteksian karakter nama pemilik berkas.
▪ Sistem dapat mendeteksi dengan benar data kata kunci berkas maupun
karakter nama pemilik berkas dari berkas yang divalidasi. Hal ini
ditunjukkan dengan rata-rata nilai precision sebesar 1.
▪ Sistem dapat digunakan oleh sistem lain dengan menggunakan layanan
Web Service validasi berkas.
next back