Analisis Kinerja Algoritma Pelacakan String Dengan Toleransi Kesalahan

Dalam ProsesAutentikasizyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA

Hardyan Eka P,Sugl Gurltman,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA

20 zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
lmplementosl Dan Analisis

Linear Discriminant Dan Local

an.~raproses Principal
Dalam Mengklasifikasi
. Meuthia Rachman/ah,zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Juliaft~rkMuhammad
Imron

30
Penerapan Algoritme

Nav/ansony Tandr/arto,

a Travelling Salesman Problem

, Utari lfjjayontizyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA

.-;~.~--:-

42
ntasi Software Kompresi Multi Tahap

Of Multi-Stage Compression Using
LayunmarizyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
L~-

Sek.apur SinnzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA

Alhamdulillah, Jumal llmiahzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
limn Kompnter yang kedua akhimya dapat juga kami
terbitkan. Untuk menghasilkan Jumal berikutnya setelah terbitan perdana temyata tidakjauh
lebih mudah. Banyak kendala yang harus dihadapi tetapi dengan semangat dan dorongan dari
berbagai pihak, akhimya segala hambatan bisa diatasi.
Terbitan edisi perdana cukup banyak mengundang kritik dan saran perbaikan dari
berbagai pihak. Ini sangat bermanfaat untuk upaya perbaikan di masa datang. Selain itu, ada

hal lain yang membesarkan hati, yaitu kesediaan beberapa institusi/Perguruan Tinggi di luar
IPB untuk berlangganan. Untuk itu kami sangat berterima kasih. Kesemuanya ini lebih
memacu kami untuk bekerja lebih baik lagi.
Lima tulisan yang kami sajikan pada edisi kali ini kesemuanya membahas tentang
analisis kinerja dan penerapan algoritma, Materi yang dibahas cukup beragam sehingga kami
berharap akan menambah khasanah atau referensi bagi para pembaca.
Kami berharap

kritik dan saran yang membangun dilayangkan lewat e-mail kami di:

jumal@ilkom.fmipa.ipb.ac.id.

Semoga bermanfaat.

Kampus Baranangsiang,

Mei 2004zyxwvutsrqponmlkjihgfedcb

Salam,


Redaksi

Jumal IlmiahzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Hmu kompufcr

Diterbitkan

oleh: Departemen

Ilmu Komputer

Fakultas Matematika dan Ilmu Pengetahuan Alam - Institut Pertanian Bogor
Vol. 2.zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
No.1. Mei 2004
ISSN : 1693-1629. Tanggal 4 April 2003

Susunan zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
CJ?§aaRJizyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA

Penanggung Jawa6 :

Ketua Departemen Ilmu Komputer FMIPA IPB

Pemimpin 1?§cfa~i :
Yeni Herdiyeni, S.Komp

Dewan ~aak.§i :
Prof. Dr. Ir. Marimin, M.Sc
Dr. Ir. Kudang Boro Seminar, M.Sc
Dr. Ir. Sugi Guritman
Ir. Meuthia Rachmaniah, M.Sc
Ir. Agus Buono, M.Si, M.Komp
Ir. Julio Adisantoso, M.Komp
Imas Sukaesih Sitanggang , S.Si, M.Komp

CR.§da~urPefak.§ana :
Ir. Heru T. Natalisa, M.Math
Drs. W.D. Prabowo

Desain qrafis :
Gage


Sekretariat

Jumal Ilmiah Ilmu Komputer

:

Departemen Ilmu Komputer FMIPA IPB
Jin. Raya Pajajaran, Kampus Baranangsiang Bogor 16144
Telp/Fax: 0251-356653. E-mail: jumal@ilkom.fmipajpb.ac.id
Rekening : Tabungan Taplus BNI Pajajaran Bogor.
No: 061.000322402.911 A.n : AnnisaiJumal IIkom

Jurnal Ilmiah Ilmu Komputer diterbitkan dua kali setahun, memuat tulisan ilmiah yang berhubungan
dengan bidang Ilmu Komputer dan merupakan Media Publikasi Ilmiah di lingkungan
Departemen Ilmu Komputer FMIPA-IPB.
Tulisan Ilmiah dapat berupa hasil penelitian, bahasan ten tang metodologi, tulisan populer; dan tinjauan buku.

Pihak perorangan / alumni yang telah memperoleh Jurnal !lmu Komputer mohon mengganti biaya celak Rp50. 000.- / exemplar. ditransfer melalui
Tabungan Taplus EN! Pajajaran.


No.Rek:

061.000322402.911.

A.n: Annisa / Jurnal Ilkom.

D aftar Isi
Sekapur

Sirih

.

Daftar Isi zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA

Analisis

K inerja


Algoritm a

Pelacakan

Hi

String

K esalahan zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
(Performance AnalysiszyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Of Text Searching Allowing Errors Algorithms)
Sukmasari, Julio Adisantoso, Meuthia RachmaniahzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
1
Dengan

Toleransi

Analisis

Dan Penerapan


Algoritma RIPEMD-160

Sebagai Fungsi Penyandi

Dalam Proses Autentikasi

Password

Hardyan Eka P, Sugi Guritman, Agus Buono

10

Im plem entasi Dan Analisis Algoritm a Linear Discriminant Dan
Local Linear Discriminant Dalam M engklasifikasi G ender

D engan Praproses Principal Component Analysis
Meuthia Rachmaniah, Mochamad Tito Julianto, Dedi MuhammadzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC
Imron
. 20


Penerapan

A lgoritm e

G enetik Pada

Travelling Salesman Problem
Naviansony Tandriarto, Agus Buono, Utari Wijayanti

Penyem purnaan

30 zyxwvutsrqponmlkjihgfe

Software K om presi
Huffman Coding

Dan Im plem entasi

M ulti Tahap M enggunakan


(Improvement And Implementation

Of Multi-Stage Compression Using Huffman Coding)

Marimin, Kudang Boro Seminar, Layungsari

42

iii

Analisis K inerja Algoritm a Pelacakan String

D engan Toleransi K esalahan zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONML

(Performance Analysis Of Text Searching Allowing Errors Algorithms)zyxwvutsrqponmlkjihgfedcbaZYXWVU

Julio Adisantoso', Meuthia Rachmaniah', SukmasarizyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQP
2


Pelacakan

string

I Staf Departemen Ilmu Komputer FMIP A IP B
Mahasiswi Departemen Ilmu Komputer FMIPA IPE

banyak diperlukan

Abstrak
pada pemrosesan string, misalnya

untuk pengeditan

teks. Terkadang

string tidak berhasil dilakukan; salah satu penyebabnya adalah adanya kesalahan ejaan. Pelacakan string
yang tidak eksak atau pelacakan dengan toleransi kesalahan diperlukan untuk mengatasi masalah ini. Pada
penelitian ini dilakukan perbandingan dua jenis algoritma pelacakan string dengan toleransi kesalahan, yaitu
algoritma Wu-Manber (WM) dan algoritma Pemrograman Dinamis (DP). Tujuannya adalah untuk melihat efisiensi
kedua jenis algoritma ditinjau dari keefektifannya dalam menampilkan perkiraan kata dan waktu proses yang
diperlukan dalam menampilkan perkiraan kata. Hasil dari penelitian ini diperoleh bahwa algoritma WM dan DP
keduanya memberikan kinerja yang sama bagusnya, yaitu 100% terkoreksi untuk semua jenis kesalahan dan waktu
proses algoritma WM kurang lebih 3 kali lebih cepat dibandingkan waktu proses algoritma DP.

pelacakan

Kata Kunci: Pelacakan

string, pelacakan string tidak eksak atau pelacakan string dengan toleransi kesalahan,
edit, algoritma Wu-Manber, algoritma pemrograman dinamis, struktur data trie.

jarak

Abstract
String matching is needed in many string processings, for example in a text editor. Sometimes searching for the
pattern in a text is not successful. One of the problems is there is a misspelling in the text. It is important to do an
approximate string matching or string matching with k errors to solve this problem. This research presents the
comparison of two approximate string matching algorithms, namely Wu-Manber algorithm (WM) and Dynamic
Program algorithm (DP) using edit distance. The purpose are to discover the efficiency of both algorthms and the
effectiveness in showing the approximate words and the processing time of the searching until finding the
approximate words. The results of this research are: WM algorithm gives the effectiveness in showing the
approximate word as good as DP algorithm, which is 100% correct for all kinds of mistakes and the processing time
ofWM algorithm is 3 times asfast as that of DP algorithm.

Key Words: String matching, approximate string matching or string matching with k errors, edit distance, WuManber algorithm, Dynamic Programming Algorithm, Trie Data Structure.zyxwvutsrqponmlkjihgfedcbaZYXWVUTS

kesalahan pengejaan pada file teks itu sendiri.
Untuk mengatasi hal ini, perlu adanya suatu cara
untuk melakukan
pelacakan
string
dengan
mempertimbangkan toleransi kesalahan sehingga
memungkinkan untuk melakukan pelacakan yang
tidak eksak (WU & Manber, 1992).

PENDAHULUAN zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA

Latar Belakang

Pelacakan string adalah salah satu komponen
yang sangat penting dalam pemrosesan string,
tennasuk
pengeditan
teks,
temu
kembali
bibliografi, dan rnanipulasi simbol. Pelacakan
Tujuan
string dilakukan dengan cara menyesuaikan suatu
& Gonnet, 1992).
pola dengan teks (Baeza YateszyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Mempelajari dan membandingkan dua jenis
Untuk beberapa kasus
tertentu, seringkali
algoritrna pelacakan
string dengan toleransi
pelacakan string tidak berhasil dilakukan karena
kesalahan, yaitu algoritrna Wu-Manber (WM) dan
adanya kesalahan pengetikan string yang akan
Pemrograrnan
Dinamis
(DP),
dalam
hal
dicari ataupun yang terdapat dalam file teks,
keefektifan
kedua
jenis
algoritrna
dalam
sebagai akibat dari pengguna tidak mengingat
menemukan perkiraan kata serta dalam hal waktu
secara pasti ejaan string yang akan dicari, atau
proses untuk menampilkan perkiraan kata.

1

Jurnailimiah - IImu Komputer, Vol. 2 No.1. Mei 2004; 1 - 9

Pelacakan String Tidak Eksak
Ruang LingkupzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA

Ada beberapa kasus dimana pelacakan string
Penelitian yang dilakukan dibatasi sampai
tidak
dapat dilakukan secara eksak. Sebagai
dengan pembuatan program dan menganalisis
contoh
pencarian nama seorang nasabah pada
perbandingan antara algoritma WM dan algoritma
suatu bank dengan memberikan nama depan dari
DP dalam hal keefektifan kedua algoritma untuk
nasabah yang dicari. Permasalahan akan muncul
menemukan perkiraan kata yang cukup baik serta
jika tidak diketahui dengan pasti bagaimana ejaan
dalam hal waktu proses untuk menampilkan
atau cara penulisan nama depan nasabah tersebut.
perkiraan kata dengan menggunakan jarak edit kzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Misalnya, pengguna tidak mengetahui apakah
= Idan 2.
nama yang dicari adalah Ahmad, Achmad atau
Akhmad.Untuk
memecahkan masalah tersebut,
Manfaat Penelitian
maka dilakukan pencarian
pada teks yang
Output dati penelitian ini adalah algoritma
mendekati pola dengan jumlah ketidakpadanan
pclacuknu "tri.l1E,dcnE,an tolcrcnei l.c~alahau yau~
karakter yang suuan unentukan.
efektif
dalam menemukan perkiraan kata dan
Ketidakpadanan
antara dua string dapat
waktu proses yang cepat.
dikelompokkan
menjadi dua, yaitu Hamming
Penelitian
ini diharapkan dapat dijadikan
distance dan Levenshtein distance. Hamming
acuan lebih lanjut untuk pengembangan sistem
distance adalah ketidakpadanan antara dua string
yang memerlukan
pelacakan
string seperti
yang merniliki panjang string yang harus sama.
pengoreksian
ejaan, temu kembali informasi
Oleh karena itu, ketidakpadanan ini diterapkan
untuk
algoritma
filtering,
temu
kembali
pada
kasus
pelacakan
string
dengan
k
bibliografi untuk sistem katalog buku, pencarian
ketidakcocokan. Sedangkan Levenshtein distance
DNA yang mirip pada serangkaian DNA, atau
adalah ketidakpadanan antara dua string yang
pencarian suatu not yang mirip pada serangkaian
boleh
memiliki panjang string yang berbeda.
not.
lID
diterapkan
pada kasus
Ketidakpadanan
pelacakan
string
dengan
k
perbedaan
(Crochemore & Lecroq, 1996).

TINJAUAN

PUSTAKA

Pelacakan String

Jarak Edit

Pelacakan
string disebut juga
sebagai
Jarak edit (edit distance) disebut juga sebagai
pencarian string. Operasi yang terjadi pada
Levenshtein distance. Jarak edit ini adalah jumlah
pelacakan
string
dapat dijelaskan sebagai
minimal perbedaan antara dua string. String A
berikut:
Misalkan suatu pola (string yang akan
dikatakan berjarak editk dengan string B jika
dipadankan dengan teks) dengan panjang m (PzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
string A dapat ditransformasikan menjadi sama
= PI P2 P3····.pm) direpresentasikan sebagai suatu
dengan string B dengan melakukan k kali operasi
array P[ l.. .....m] dan teks dengan panjang n (T =
perubahan. Operasi perubahan yang dilakukan
t] t2 t3 ..... tn) sebagai suatu array T [L.n]. Masalah
adalah:
pada pelacakan string adalah apakah P terjadi
1. Operasi penggantian satu karakter dengan
pada T atau apakah P merupakan substring dati T.
karakter lain, misalnya kata "bantu" berjarak
Pelacakan string dapat dibedakan menjadi
edit satu dengan "pantu".
dua, yaitu pelacakan eksak dan pelacakan tidak !
eksak. Disebut sebagai pelacakan eksak karena
2. Operasi penghapusan satu karakter, misalnya
kata "pangku" berjarak edit satu dengan
string hasil pelacakan yang diperoleh dati teks
"panku".
sama persis dengan pola. Algoritrna pelacakan
3. Operasi penyisipan satu karakter, rnisalnya
eksak rnisalnya algoritrna Brute Force (BF),
kata "ceria" berjarak edit satu dengan
Knutt-Morris-Pratt (KMP), Boyer MOQre (BM),
"cerria".
Shift Or (SO) dan masih banyak lagi.
Pada penelitian ini, digunakan algoritma
pelacakan
string
tidak
eksak
yang
memperbolehkan adanya ketidakpadanan antara
pola dengan substring dari teks dengan toleransi
kesalahan tertentu. Pelacakan string tidak eksak
se1anjutnya juga disebut sebagai pelacakan string
dengan toleransi kesalahan.

2

-------~---.-~~.--~--

-~------~---

..

-.~--

Kombinasi dati ketiga operasi perubahan ini akan
menghasilkan
ketidakpadanan
yang
Iebih
kompleks dengan jarak edit lebih besar dari 1.
Jumlah perbedaan karakter antara dua string
untuk masalah jarak edit k ditentukan oleh
banyaknya operasi penggantian, penghapusan dan
penyisipan yang dilakukan (French et al, 1997).

Analisis

Kinerja Algoritma

Pelacakan

String dengan Toleransi

KesalahanzyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDC

Algoritma Wu-Manber (WM)zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Struktur Data Trie
Algoritma
Wu-Manber
(WM)
adalah
Pada kasus pelacakan string diperlukan suatu
algoritma yang dikembangkan oleh Sun Wu dan
kamus referensi yang dijadikan sebagai acuan
Udi Manber (WU &zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
Manber, 1992). Algoritma ini
dalam memeriksa setiap kata sehingga jika terjadi
adalah algoritma pelacakan string dengan k
kesalahan ejaan, rnaka dapat diberikan perkiraan
toleransi kesalahan. Jika k = 0 maka algoritma ini
kata-katanya dari kata yang
terdapat
pada
kamus
referensi tersebut. Struktur data trie
menjadi algoritma pelacakan eksak. Algoritma
memberikan kinerj a yang cukup baik untuk
WM dapat dilihat pada Gambar 1.
merepresentasikan
kamus referensi.
Hal ini
dikarenakan
struktur
data
trie
memiliki
Pemadanan _ Tidak_ Eksak _ WuManber(P, T)
{P [L.m] ; T[l....n];
komp1eksitas yang rendah yaitu 0(1) pada
kondisi terbaik dan O(m) pada kondisi terburuk
Praproses untuk semua karakter pada pola (S);
dengan m adalah panjang kata yang akan dicari.
For Allj (1 ::=;j::=;
n)
Untuk lebih mempercepat pencarian) rnaka
Rj+l = Ri~ht Shift R AND S

j

digunakan prefix trie dirnana setiap sirnpul da larn

For All d (1 :$ d:$ k)

RdO = 11..100 ...000 ( d buah 1)
Rdj+l = RightShift

[R;]

AND S OR
] OR

RightShift

[ R:-l

RightShift

[RJ:/ ] OR

Rd -1
J

IfRk[m] = 1 "Ditemukan kesepadanan "}

Gambar 1. Algoritma Tidak Eksak Wu-Manber
dengan Manipulasi

Bit.

Algoritma Pemrograman Dinamis (DP)
Algoritma Pernrograman Dinamis/ Dynamic
Programming (DP) dapat menyelesaikan masalah
pelacakan string dengan menggunakan prinsip
perhitungan
jarak
edit dalam
menentukan
kesamaan antara dua buah string. Algoritma DP
dapat dirangkum seperti pada Gambar 2.
Pemadanan_Tidak_Eksak_DP(P,m,T,n)
{P[l...m]; T[l...n] ;
For All i (O