SISTEM KOREKSI KESALAHAN PENGETIKAN MENGGUNAKAN LEVENSHTEIN DISTANCE PADA LAYOUT QWERTY
-
Upload
teknik-informatika-politeknik-tedc-bandung -
Category
Software
-
view
164 -
download
8
Transcript of SISTEM KOREKSI KESALAHAN PENGETIKAN MENGGUNAKAN LEVENSHTEIN DISTANCE PADA LAYOUT QWERTY
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28Mei 2016
171
ISSN :2503-2844
Nova Agustina, Slamet Risnanto, Irwin Supriadi
Seminar Nasional Telekomunikasi dan Informatika 2016
SISTEM KOREKSI KESALAHAN PENGETIKAN
MENGGUNAKAN LEVENSHTEIN DISTANCE
PADA LAYOUT QWERTY
Aloysius Langgeng Adiasto1, Wina Witanti2, Rezki Yuniarti3
Jurusan Informatika, Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Jenderal Achmad Yani
Jl. Terusan Jenderal Sudirman, Cimahi
Abstrak
Penggunaan keyboard dengan layout Qwerty
telah banyak diaplikasikan kedalam teknologi
komputer dan mobile, yang biasanya digunakan
untuk menulis. Posisi karakter yang tidak berurutan
sebagaimana mestinya sering kali dapat membuat
kesalahan dalam pengetikan kata-kata,maka dari itu
diperlukan sebuah sistem yang dapat mengoreksi
kesalahan penulisan tersebut. Dengan menggunakan
Levenshtein Distance sebagai metode dan kedekatan
karakter untuk setiap karakter pada layout tersebut
dapat meminimalis kesalahan yang terjadi. Sistem ini
tidak dapat mencegah dalam kesalahan ketik pada
keyboard, akan tetapi dapat memberikan hasil yang
mendekati dengan kata aslinya.
Kata kunci:Levenshtein Distance;Qwerty layout;
keyboard; spelling error.
Abstract
Keyboard with Qwerty layout has been applied
to computer and mobile technology, which is
commonly used for writing. The composition of
character on layout not arranged properly can make
a mistake while typing the words. A system is needed
for correcting spell error. By using Levenshtein
Distance and closer character of layout, will reduce
spelling error. This system can not prevent the typo,
but it will give results closer to the original word.
Keywords :Levenshtein Distance;Qwerty layout;
keyboard; spelling error.
I.PENDAHULUAN
Setiap kata memiliki kemiripan dalam
penyusunan karakter dan dapat terjadi kesalahan
dalam penulisannya, sehingga akan terbentuk sebuah
proses yang akan dilakukan untuk dapat memilih
kemiripan kata dengan kata yang salah dalam
penulisannya dari kamus kata. Dengan begitu, untuk
membangun sebuah sistem yang dapat mengolah kata
dan memiliki typographical error, menjadi kata yang
tepat secara penulisan dengan dukungan kamus kata
dari Kamus Besar Bahasa Indonesia.
Sistem ini dapat menghasilkan keluaran berupa
kata yang memiliki ketepatan dalam penulisannya
sesuai dengan kamus Bahasa Indonesia. Manfaat
yang dapat digunakan untuk diperoleh dari penelitian
ini adalah, sistem dapat menjadi 3rd party Application
untuk sistem yang memiliki fitur Word Processing
atau Text Messaging yang menggunakan keyboard
dengan layout berbasis Qwerty.
Masukan dari sistem ini berupa kata tunggal
yang akan masuk kebagian preprocessing untuk
dibagi menjadi dua bagian awalan dan akhiran
sehingga membentuk dua suku kata. Suku kata awal
dan akhir digunakan untuk mencari kata yang
memiliki kesamaan dengan keduanya sehingga
pencarian akan melihat database kata yang memiliki
kesamaan dibagian depan atau belakang. Dengan
membagi kata menjadi awal dan akhir, proses
filtering kata lebih banyak. Proses filtering ini juga
mencegah duplikasi yang disebabkan oleh
kemungkinan pengambilan kata yang sama pada
pencarian awal dan akhir.
Setelah preprocessing, hasil olahan akan masuk
ke Levenshtein Distance yaitu membandingkan antar
hasil untuk mendapatkan tingkat kedekatan dengan
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28Mei 2016
172
ISSN :2503-2844
Nova Agustina, Slamet Risnanto, Irwin Supriadi
Seminar Nasional Telekomunikasi dan Informatika 2016
masukan menggunakan Algoritma Levenshtein
Distance. Algoritma ini melihat satu persatu huruf
pada setiap kata hasil olahan preprocessing untuk
mendapatkan seberapa besar langkah yang
diperlukan. Lebih kecil langkah yang diambil
menandakan bahwa kata tersebut memiliki tingkat
kemiripan yang besar, sedangkan lebih besar langkah
maka kemiripan semakin kecil. Proses ini berulang
sampai semua kata hasil preprocessing diproses. Bila
langkah yang diambil lebih besar dari 0, maka
kemungkinan ada kesalahan dalam penulisan kata
tersebut yang akan masuk ke Postprocessing.
Dalam postprocessing, hasil pengolahan akan
masuk untuk proses seleksi. Pada bagian ini
karakteristik Qwerty dapat digunakan untuk melihat
posisi karakter huruf tidak tepat dengan
membandingkan antara masukan dengan hasil
Levenshtein Distance. Setiap kata dibagi bagi
perkarakter dan disamakan letak dan karakternya
sehingga nantinya akan didapat karakter yang tidak
memiliki kesamaan. Posisi karakter yang tidak mirip
akan dilihat dan dicari sesuai dengan layout.
II.KAJIAN LITERATUR II.1 Edit Distance
Edit Distance adalah salah satu cara untuk
melihat perbedaan pada dua buah kata dengan
membandingkan jumlah operasi yang diperlukan
untuk menjadi kata lainnya. Edit Distance
diimplementasikan dalam Natural Language
Processing (NLP) yaitu proses penterjemahan bahasa
manusia agar dapat dipahami oleh komputer. Edit
Distance pada NLP biasanya dikhususkan untuk
proses spelling correction agar dapat diterjemahkan
dengan benar oleh NLP.
II.2 Spelling Correction
Membandingkan adalah salah satu cara yang
tepat untuk dapat melihat dimana letak kesalahannya
untuk mendapatkan satu kata yang tepat dalam
penulisan. Kesalahan dalam menyusun satu kata
dapat dikoreksi dengan cara melihat susunan huruf
per huruf antara kata yang memiliki kecenderungan
untuk salah dengan kata yang sudah pasti benar.
Dengan begitu, akan terlihat perbedaan yang
jelas dimana letak kesalahannya, sehingga kata
tersebut dapat segera diperbaiki
.
II.3 Levenshtein Distance
Salah satu metode untuk melakukan proses
koreksi kata tersebut adalah Levenshtein Distance.
Levenshtein Distance sendiri dikembangkan oleh
Vladimir Levenshtein pada tahun 1965. Levenshtein
Distance adalah salah satu dari beberapa metode
untuk menghitung jarak perbedaan antar kata.
Levenshtein Distance merupakan metode dalam
menghitung nilai yang didapat dari hasil operasi
modifikasi satu kata dengan kata yang lain dengan
bantuan matrix. Cara yang digunakan adalah dengan
melihat satu persatu karakter dengan karakter lainya,
apakah untuk menutupi perbedaan tersebut perlu
adanya penambahan huruf, penghapusan huruf, atau
penyisipan huruf.
Dengan menggunakan fungsi matrix (m,n)
dimana M mewakili kata yang dibandingkan,
sedangkan N sebagai pembanding yang masing
masing mewakili setiap huruf sehingga dapat lebih
mudah melihat operasi apa yang perlu dilakukan
untuk kata tersebut. Nilai yang akan didapat adalah
seberapa banyak langkah yang diselesaikan untuk
mendapatkan kemiripan kata(Rani & Shanthi, 2015).
Total angka untuk setiap operasinya mengacu kepada
distance, dimana semakin kecil distance semakin
besar kemungkinan kata sesuai dengan target
kata(Kaur, Singh, & Rani, 2015).
Persamaan yang digunakan untuk mencari
Distance adalah sebagai berikut:
𝐷𝑖𝑠𝑡𝑎,𝑏(𝑖, 𝑗) = 𝑀𝑖𝑛
{
𝐷𝑖𝑠𝑡𝑎,𝑏((𝑖, 𝑗 − 1) + 1)
𝐷𝑖𝑠𝑡𝑎,𝑏((𝑖 − 1, 𝑗) + 1)
𝐷𝑖𝑠𝑡𝑎,𝑏 ((𝑖 − 1, 𝑗 − 1) + 1(𝑎𝑖≠𝑏𝑗))
[1]
a : kata pertama
b : kata kedua
i :iterasi kata pertama
j :iterasi kata kedua
Dist : jarak
Dalam beberapa kasus, Levenshtein Distance
digunakan sebagai preprocessing sebelum masuk ke
Metode Fuzzy untuk information retrival yang
menghasilkan hasil relevan meskipun ada beberapa
Typographical Error pada kata kunci (Veena &
Jalaja, 2015). Selain Metode Fuzzy, Levenshtein
Distance juga digunakan sebagai pembanding antar
sesama string matching dimana bila Levenshtein
Distance digunakan untuk mencari kesalahan posisi
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28Mei 2016
173
ISSN :2503-2844
Nova Agustina, Slamet Risnanto, Irwin Supriadi
Seminar Nasional Telekomunikasi dan Informatika 2016
pada kalimat, metode ini tidak dapat
digunakan(Kabir, 2009)(Singla & Garg, 2012).
Penggunaan Levenshtein Distance juga diaplikasikan
pada Online Services untuk pencarian berbasis web,
dimana Levenshtein Distance meningkatkan
kecepatan dan prediksi pada saat pencarian
dilakukan(Mary, Nishikant, R, & Iyengar,
2014)(Umar, Hendriana, & Budiyono, 2015). Satu
kasus untuk Spectra Analysis menggunakan beberapa
Edit Distance seperti Levenshtein dan Damareau
untuk menghilangkan Noise yang memiliki
perbedaan tipis(Perner, Attig, & Machno, 2011).
II.4 Qwerty
Qwerty merupakan nama layout dari susunan
karakter yang diambil dari enam huruf pertama dan
design pertama kali oleh Sholes and Glidden
typewriter pada tahun 1873 dan menjadi populer pada
tahun 1878. Sampai saat ini, layout ini banyak
digunakan untuk perangkat komputer. Mengetik
dengan sentuhan memunculkan tiga fitur dari sistem
produksi yang berkembang sangat pesat yang
menyebabkan Qwerty menjadi tata letak keyboard
yang dominan(David, 2007) seperti pada Gambar 1.
Gambar 1. Layout qwerty pada Windows 8
III.ANALISIS DAN PERANCANGAN
Spell correction merupakan salah satu cara
untuk memperbaiki kesalahan dalam penulisan pada
dokumen atau media penulisan lain yang biasa
digunakan pada word processor yang dirancang
untuk menulis dan kemudian dicetak, sehingga
dengan spell correction ini hasil cetakan diharapkan
tidak terdapat kesalahan. Spell correction biasa
digunakan oleh penulis untuk mendapatkan hasil
maksimal pada karyanya. Sekarang ini penggunakan
spell correction tidak lagi hanya digunakan pada
word processor, tetapi sudah masuk ke ponsel untuk
mempermudah dalam pengetikan pesan dan lainnya.
Sistem spell correction yang dimiliki oleh
Microsoft Word saat ini menggunakan sistem
replacement dengan daftar kata yang memiliki
kemungkinan untuk salah dalam penulisan, sehingga
dengan melihat kesalahan tersebut, bila sesuai dengan
daftar maka koreksi akan dilakukan. Kamus kata
yang dimiliki oleh Microsoft Word secara default
adalah kata dengan Bahasa Inggris. Contoh kata yang
dimiliki oleh Microsoft Word dapat dilihat pada
Gambar 2.
Gambar 2. Sistem koreksi pada Microsoft Word
Pada penelitian ini, untuk mendapatkan tingkat
kecocokan yang mendekati, dimulai dengan
mengambil sampel input dari sebuah field yang
disediakan, dan disimpan dalam variable untuk
mempermudah pengaksesan. Kemudian melakukan
preprocessing agar kinerja Levensthein Distance
tidak menggunakan resource yang banyak, sehingga
menghasilkan kata yang tepat. Diagram dapat dilihat
pada Gambar 3.
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28Mei 2016
174
ISSN :2503-2844
Nova Agustina, Slamet Risnanto, Irwin Supriadi
Seminar Nasional Telekomunikasi dan Informatika 2016
Process
FilteringSegmentasi Kata
Seleksi Kata di Database
Kamus KataDaftar Seleksi
Hitung DistanceDaftar Distance
Minimum
Segmentasi Huruf
Koreksi Qwerty
Output
Kata
Subtitusi
Penambahan / Pengurangan
Input
Kata
Hasil = 1
Gambar 3. Diagram sistem koreksi kata
III.1 Filtering
Sebelum diproses, teks yang diambil dari field
akan masuk ke tahapan preprocessing untuk
melakukan filtering terhadap teks. Proses ini
berfungsi untuk mengganti semua karakter menjadi
huruf kecil dan menghilangkan tanda baca untuk
sementara. Tanda baca yang dihilangkan disimpan
untuk dimunculkan kembali ketika kata yang telah
diproses ditambahkan pada dokumen. Cara yang
dilakukan adalah dengan melihat satu persatu
karakter dari input yang kemudian diganti dengan
huruf kecil sehingga pada akhirnya teks akan menjadi
huruf kecil semua. Bila terdapat tanda baca yang
diikuti dengan spasi, maka akan disimpan.
Sebaliknya, tanda baca yang tidak diikuti spasi akan
dianggap sebagai huruf.
III.2 Segmentasi Kata
Pembatasan kata pada field yang diambil
dibatasi oleh sebuah karakter spasi yang akan
menjadi satu kata. Kata yang diambil kemudian akan
dibagi menjadi dua segmen dimana setiap segmen
panjangnya tergantung panjang total kata. Bila
panjang kata bernilai genap, maka jumlah karakter
pada setiap segmen sama rata, dan apabila panjang
kata bernilai ganjil, maka untuk membagi sama rata
perlu dilakukan penambahan karakter untuk semua
segmen, yaitu karakter yang berada di posisi tengah
akan menjadi huruf terakhir untuk segmen awal dan
kata awal untuk segmen akhir.
Kata yang telah dibagi akan menjadi acuan
untuk mendapatkan index kata pada kamus dengan
cara, pertama dilakukan pencarian berdasarkan
segmen awal kata pada keseluruhan kamus yang
disusul dengan pencarian berdasarkan segmen akhir.
Kata yang memiliki kesamaan dengan segmen akan
disimpan dalam variable. Setelah kamus kata
ditemukan, maka proses menghitung distance antara
input dengan kamus kata dapat dilakukan.
III.3 Levenshtein Distance
Langkah awal untuk mencari distance adalah
dengan mengambil satu persatu hasil pencarian
kamus dan disimpan dalam array. Penggunaan array
untuk menyimpan distance setiap karakternya
sehingga pada akhirnya total distance yang akan
menjadi hasil akhirnya seperti pada Tabel 1. Langkah
awal pencarian distance dimulai dengan memberikan
nilai 0 sampai n untuk”kata 1” dan “kata 2”, dimana
n adalah banyaknya karakter. Setelah proses awal,
distance untuk masing masing karakter dapat
dihitung, sesuai dengan Persamaan 1.
Tabel 1. Penempatan Karaker pada Array
k a t a 1
0
(index 0)
1
(index 1) 2 3 4 5
k 1
(index 2)
?
(index 3)
a 2
t 3
a 4
2 5 hasil
Index menunjukkan lokasi cell yang dibutuhkan
untuk perhitungan distance. Index mewakili index
pada two-dimensional array yang terdiri dari: Index 0
(0,0), Index 1 (0,1), Index 2 (1,0) dan Index 3 (1,1).
Index 3 adalah cell distance untuk menghitung
distance karakter pertama. Keempat cell ini akan
bergeser untuk memberi nilai distance pada masing-
masing karakter. Pengisian nilai Index 3 berdasarkan
Persamaan 1, dengan mengambil nilai minimum dari
Index 0, Index 1, dan Index 2. Nilai minimum
diambil setelah Index 1 dan Index 2 dijumlahkan
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28Mei 2016
175
ISSN :2503-2844
Nova Agustina, Slamet Risnanto, Irwin Supriadi
Seminar Nasional Telekomunikasi dan Informatika 2016
dengan nilai 1, sedangkan Index 0 dijumlahkan
dengan nilai 0 bila kedua karakter input dan kamus
sama. Bila tidak maka Index 0 akan dijumlahkan
dengan nilai 1.
III.4 Segmentasi Huruf
Proses pada segmentasi huruf berfungsi untuk
melihat kondisi karakter untuk masing masing kata di
setiap posisinya. Pemeriksaan kondisi ini untuk
memastikan karakter untuk setiap posisi sehingga
ketemu posisi karakter yang memiliki kesalahan.
Kata yang diambil pada segmentasi huruf adalah kata
yang bernilaidistance1dan 2 dimana angka tersebut
menunjukkan bahwa kata yang memiliki perbedaan
antara satu atau dua karakter.
III.5 Seleksi Qwerty
Setelah mendapatkan hasil kamus yang
memiliki distance terendah, seleksi Qwerty
digunakan untuk menyeleksi kata yang memiliki
perbedaan satu karakter yang akan dilihat
berdasarkan layout keyboard berbasis Qwerty.
Karakter yang dilihat berada di sekitar karakter yang
memiliki kesalahan. Daftar karakter sebagai acuan
dapat dilihat pada Tabel 2.
Tabel 2. Daftar Karakter Qwerty dan Karakter Sekitar
Huruf Karakter
Terdekat Huruf Karakter Terdekat Huruf
Karakter
Terdekat A z x s w q J m k I u h n S x d e w a z
B n h g v K , l o I j m T g y 6 5 r f
C v f d x L . ; p o k , U j I 8 7 y h
D c f r e s x M , k j n V b g f c
E d r 4 3 w s N m j h b W s e 3 2 q a
F v g t r d c O l p 0 9 I k X z a s d c
G b h y t f v P ; [ - 0 o l Y h u 7 6 t g
H n j u y g b Q a w 2 1 Z x s a
I k o 9 8 u j R f t 5 4 e d
Angka Karakter
Terdekat Angka Karakter Terdekat Simbol
Karakter
Terdekat 0 P – 9 o 6 y 7 5 t - [ = 0 p
1 q 2 ` 7 u 8 6 y [ ‘ ] = - p ;
2 w 3 1 q 8 i 9 7 u ; / ‘ [ p l .
3 e 4 2 w 9 o 0 8 i . / ; l ,
4 r 5 3 e , . l k m
5 t 6 4 r
III.6 IMPLEMENTASI
Hasil yang dihasilkan oleh sistem berupa kata
hasil koreksi ditampilkan pada Microsoft Word
sesuai dengan data dari kamus kata seperti pada
Gambar 4. Kata masukan dibuat tidak sesuai untuk
seperti kata. “ab”, “abaaba”, “abadiha”, “abalmna”,
dan “abasuks” yang menghasilkan koreksi seperti
pada Gambar 5.
Gambar 4. Daftar kamus kata
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28Mei 2016
176
ISSN :2503-2844
Nova Agustina, Slamet Risnanto, Irwin Supriadi
Seminar Nasional Telekomunikasi dan Informatika 2016
Gambar 5. Hasil implementasi koreksi kata
IV.KESIMPULAN DAN SARAN
Kesimpulan yang didapat adalah penggunaan
Levenshtein Distance dengan bantuan karakteristik
qwertyuntuk memperbaiki kesalahan dalam
pengetikan sudah tepat dan dapat memberikan hasil
yang mendekati dengan kata input. Tingkat kesulitan
dalam pembuatan sistem lebih ke penyesuaian
dengan banyaknya data pada kamus kata agar dapat
memberikan waktu yang singkat dalam menghasilkan
koreksi kata dan batasan API yang diberikan oleh
Microsoft untuk pengembangan sistem. Manfaat
yang didapat dari sistem ini dapat mengurangi
kemungkinan salah ketik pada saat menggunakan
Microsoft Word untuk keperluan mengetik.
Saran untuk sistem yaitu untuk menambah
kamus kata sehingga kata yang dapat dikoreksi akan
semakin banyak dan dapat membuka akses untuk
melakukan koreksi langsung pada dokumen tanpa
bantuan TaskPane pada Microsoft Word.
REFERENSI
A. Kaur, D. Singh and D. Rani, (2015).
"Spellchecking and Error Correcting System for
Text Paragraphs Written in Punjabi Language
using Hybrid Approach," International Journal
of Advanced Research in Science, Engineering
and Technology, vol. 2, no. 11.
G. Veena and G. Jalaja, (2015). "Levenshtein
Distance Based Information Retrieval,"
International Journal of Scientific &
Engineering Research, vol. 6, no. 5.
D. M. Kabir, (2009). "Similarity Matching
Techniques for Fault Diagnosis in
Automotive Infotainment Electronics," IJCSI
International Journal of Computer Science,
vol. 3.
N. Singla and D. Garg, (2012). "String Matching
Algorithms and Their Applicability in
Various Applications," International Journal
of Soft Computing and Engineering (IJSCE),
vol. 1, no. 6.
R. Mary, A. S. Nishikant, C. J. s. R and N. C. S. N.
Iyengar, (2014). "Use of Edit Distance
Algorithm to Search a Keyword in Cloud
Environment," International Journal of
Database Theory and Application, vol. 7, pp.
223-232.
R. Umar, Y. Hendriana and E. Budiyono, (2015).
"Implementation of Levenshtein Distance
Algorithm for E-Commerce of Bravoisitees
Distro," International Journal of Computer
Trends and Technology (IJCTT), vol. 27, pp.
131-136.
P. Perner, A. Attig and O. Machno, (2011). "A Novel
Method for the Interpretation of
Spectrometer Signals Based on Delta-
Modulation and Similarity Determination,"
Transactions on Mass-Data Analysis of
Images and Signals, vol. 3.
P. A. David, (2007). "Clio and the Economics of
QWERTY”.