BAB 2
LANDASAN TEORI
2.1. Definisi Algoritma
2.1.1. Algoritma
Istilah algoritma
algorithm
berasal dari kata “algoris” dan “
ritmis
”, yang pertama kali diungkapkan oleh Abu Ja’far Mohammed Ibn Musa al Khowarizmi 825 M dalam
buku Al-Jabr Wa-al Muqabla. Dalam bidang pemrograman algoritma didefenisikan sebagai suatu metode khusus yang tepat dan terdiri dari serangkaian langkah yang
terstruktur dan dituliskan secara matematis yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan komputer.Jogiyanto, 2005.
Terdapat beberapa defenisi yang diberikan untuk kata algoritma antara lain: a
Algoritma adalah sekelompok aturan untuk menyelesaikan perhitungan yang dilakukan oleh tangan atau mesin.
b Algoritma adalah langkah demi langkah sebuah prosedur berhinggga yang
dibutuhkan untuk menghasilkan sebuah penyelesaian. c
Algoritma adalah urutan langkah-langkah perhitungan yang mentrasformasikan dari nilai masukan menjadi keluaran.
Universitas Sumatera Utara
d Algoritma adalah urutan operasi yang dilakukan terhadap data yang
terorganisasi dalam struktur data. e
Algoritma adalah sebuah program abstrak yang dapat dieksekusi secara fisik oleh mesin.
f Algoritma adalah sebuah model perhitungan yang akan dilakukan oleh
komputer.
2.2.
String
String dalam ilmu komputer dapat diartikan dengan sekuens dari karakter. Walaupun sering juga dianggap sebagai data abstrak yang menyimpan sekuens nilai data, atau
biasanya berupa
bytes
yang mana merupakan elemen yang digunakan sebagai pembentuk karakter sesuai dengan
encoding
karakter yang disepakati seperti ASCII, ataupun EBCDIC.
Hubungan
string
dengan tulisan ini adalah bahwa karakteristik dari musik yang akan disimpan dalam
database
dapat dianggap serupa dengan
string
. Hal ini akan memudahkan desainer dalam membangun sistem pencocokan audio dari sampel audio
yang akan dikonversi terlebih dahulu menjadi serupa dengan string ataupun deretan
bytes
. Konversi inilah yang nantinya akan dibandingkan langsung dengan informasi karakteristik yang disimpan dalam
database
.
2.2.1. String Matching
String
matching adalah pencarian sebuah
pattern
pada sebuah teks Rasool, Akhtar.dkk,2012. Prinsip kerja algoritma
string
matching adalah sebagai berikut: 1.
Memindahkan teks dengan bantuan sebuah window yang ukurannya sama dengan panjang
pattern
. 2.
Menempatkan window pada awal teks. 3.
Membandingkan karakter pada window dengan karakter dari
pattern
. Setelah pencocokan baik hasilnya cocok atau tidak cocok, dilakukan shift ke kanan pada
Universitas Sumatera Utara
window. Prosedur ini dilakukan berulang-ulang sampai window berada pada akhir teks. Mekanisme ini disebut mekanisme
sliding-window
. Febriyan, Rama ,2013.
Algoritma
string
matching mempunyai tiga komponen utama, yaitu: 1.
Pattern
, yaitu deretan karakter yang akan dicocokkan dengan teks, dinyatakan dengan x[0..m-1], panjang
pattern
dinyatakan dengan m. 2.
Teks, yaitu tempat pencocokan
pattern
dilakukan, dinyatakan dengan y[0..n-1], panjang teks dinyatakan dengan n.
3. Alfabet, yang berisi semua simbol yang digunakan oleh bahasa pada teks dan
pattern
, dinyatakan dengan Σ dengan ukuran dinyatakan dengan
Asize.
2.2.2. Levenshtein Distance
Algoritma
Levenshtein
merupakan algoritma yang digunakan untuk mencari jumlah operasi
string
yang paling sedikit untuk mentransformasikan suatu
string
menjadi
string.
Primadani, Yuli. 2014. yang Algoritma ini digunakan dalam pencarian
string
dengan pendekatan perkiraan
Approximate String Matching
.
Levehenstein Distance
dibuat oleh Vladimir Levehenstein pada tahun 1965. Perhitungan
edit distance
dihitung oleh matriks yang digunakan unuk menghitung jumlah perbedaan
string
antara dua
string
.
Levenshtein Distance
jarak antara dua
string
didefinisikan sebagai jumlah minimum suntingan yang diperlukan untuk mengubah satu string ke yang lain, dengan diijinkan mengedit operasi yang penyisipan,
penghapusan, atau penggantian karakter tunggal. Singla,Nimisha et al 2012. Perhitungan jarak antara dua
string
ditentukan dari dua jumlah minimum operasi perubahan untuk membuat string A mejadi
string
B . Algoritma ini berjalan mulai dari pojok kiri atas sebuah
array
dua dimensi yang telah diisi sejumlah
string
awal dan
string
target dan diberikan nilai
cost
. Nilai
cost
pada ujung bawah kanan menjadi nilai edit
distance
yang mengambarkan jumlah perbedaan dua
string
.
Tabel 2.1 Matriks Perhitungan
Edit distance
Universitas Sumatera Utara
s a
y a
1 2
3 4
s 1
1 2
3 y
2 1
2 1
2 a
3 2
1 2
1
Contoh dari perhitungan
Levenshtein
mengunakan 2
string
yang berbeda kemudian dihitung
edit distance
nya pada tabel 1. Dapat dilihat dari perhitungan
edit distance
antara 2
string
‘sya’ dan ‘saya’ adalah 1. Pengecekan dimuai dari iterasi awal dari kedua
string
keudian dilakukan operasi penambahan, penyisipan dan penghapusan. Nilai
edit distance
nya yaitu pada ujung kanan matriks. Hanya ada satu proses penyisipan yaitu penyisipan karakter ‘a’ pada
string
‘sya’ sehingga menjadi ‘saya’. Pada kasus pengecekan ejaan proses perhitungan ini dilakukan sejumlah kata yang ada
pada basis data. Tentu saja untuk saran yang terbaik dibutuhkan daftar kata berbahasa Indonesia yang lengkap. Sehingga kata yang disarankan bisa mendekati yang
diharapkan oleh pengguna Primadani, Yuli 2014. Perhitungan jarak antara dua
string
ditentukan dari dua jumlah minimum operasi perubahan untuk membuat string A mejadi
string
B . ada 3 macam operasi utama yang dapat dilakukan algoritma ini yaitu:
2.2.3. Operasi Penghapusan
Operasi penghapusan dilakukan dengan menghapus karakter pada indeks tertentu untuk menyamakan
string
sumber S dengan
string
target T, misalnya S=networking dan T= network. Penghapusan dilakukan untuk karakter i pada indeks ke-7, penghapusan
karakter n pada indeks ke-8, penghapusan karakter g pada indeks ke-9. Operasi penghapusan tersebut menunjukkan tranformasi S ke T, ilustrasinya adalah sebagai
berikut :
Universitas Sumatera Utara
String S 0 1 2 3 4 5 6 7 8 9
N E
T W
O R
K I
N G
String T 0 1 2 3 4 5 6
N E
T W
O R
K
Operasi Penghapusan Pada Algoritma Levenstein Distance 0 1 2 3 4 5 6 7 8 9
N E
T W
O R
K I
N G
2.2.4. Operasi Penyisipan
Operasi penyisipan dilakukan dengan menyisipkan karakter pada indeks tertentu untuk menyamakan
string
sumber S dengan
string
target T, misalnya S= program dan T= pemrograman. Operasi penyisipan dapat dilakukan dengan menyisipkan e pada indeks
1, menyisipkan m pada indeks 2, menyisipkan a pada indeks 9 dan menyisipkan n pada indeks 10. Yang dapat diilustrasikan sebagai berikut:
String S
Universitas Sumatera Utara
0 1 2 3 4 5 6 P
R O
G R
A M
String T 0 1 2 3 4 5 6 7 8 9 10
P E
M R
O G
R A
M A
N
Operasi Penyisipan Pada Algoritma
Levenstein Distance
0 1 2 3 4 5 6 7 8 9 10 P
E M
R O
G R
A M
A N
2.2.5. Operasi Penukaran
Operasi penukaran dilakukan dengan menukar karakter pada indeks tertentu untuk menyamakan
string
sumber S dengan
string
target T, misalnya S= computer dan T= komputer.
String
S ditranformasikan menjadi T dengan melakukan penggantian substitusi pada posisi ke-1. Huruf C ditukar menjadi K. Prosesnya dapat diilustrasikan
sebagai berikut:
String S
Universitas Sumatera Utara
0 1 2 3 4 5 6 7 K
O M
P U
T E
R
String T 0 1 2 3 4 5 6 7
C O
M P
U T
E R
2.2.6. Algoritma Knuth-Morris-Pratt
KMP
Algoritma Knuth Morris Pratt
KMP dikembangkan oleh D. E. Knuth, bersama dengan J. H. Morris dan V. R.Pratt. Untuk pencarian
string
dengan menggunakan algoritma
Brute Force
, setiap kali ditemukan ketidakcocokan pattern dengan teks, maka
pattern
akan digeser satu karakter ke kanan.Algoritma ini membandingkan pola dengan teks dari kiri ke kanan. J.C, Prasad et al , 2010. pada algoritma
Knuth Morris-Pratt
, kita memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma
KMP digunakan untuk bekerja pada arsitektur yang mendukung string paralel ukuran yang lebih besar. Rasool, Akhtar et al , 2012.
Algoritma menggunakan informasi tersebut untuk membuat pergeseran yang lebih jauh dan melakukan evaluasi waktu Kourie, Justin et al, 2011 Secara sistematis, langkah-
langkah yang dilakukan algoritma
Knuth-Morris-Pratt
pada saat mencocokkan
string
: 1.
Algoritma
Knuth-Morris-Pratt
mulai mencocokkan
pattern
pada awal teks. 2.
Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter
pattern
dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi:
1. Karakter di pattern dan di teks yang dibandingkan tidak cocok
mismatch
. 2.
Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan di posisi ini.
3. Algoritma kemudian menggeser
pattern
berdasarkan tabel, lalu mengulangi langkah 2 sampai pattern berada di ujung teks.
Universitas Sumatera Utara
Pencocokan karakter dari kiri ke kanan mencari
prefix
terpanjang dari P[0..j-1] yang juga merupakan
suffix
dari P [1..j-1], untuk menghindari pergeseran yang tidak perlu. Hasil dari pencarian
prefix
terpanjang disimpan dalam tabel yang disebut juga sebagai
failure function
. Misalkan panjang
string
yang telah diperiksa dan cocok =
n
dan nilai dari
failure function
adalah M, maka dilakukan pergeseran sebanyak
n-m
. Sebagai contoh, diberikan sejumlah karakter sebagai
text
= “ryandhikapriy” dan yang akan dicocokkan adalah
pattern
= “dhikapr”. Pada karakter pertama “d” dan kedua “h” pada
pattern
terjadi kecocokan
match
pada teks, akan tetapi pada karakter ketiga “k” terjadi ketidakcocokan
mismatch
pada teks maka proses
shift
dilakukan dengan berpindah tiga posisi ke arah kanan teks dikarenakan huruf “dh” dijadikan
prefix
terpanjang yang akan disimpan kedalam tabel
failure function
. Selanjutnya berpindah empat posisi ke arah kanan teks menghasil kan
prefix
“dhik”, berpindah lagi empat posisi ke arah kanan menghasilkan
prefix pattern
“dhika” sehingga terjadi kecocokan pada teks.
Contoh penggunaan algoritma
string matching KMP
, yaitu : Teks : RYAN DHIKAPRIY
Pattern
: DHIKAPR Cara kerja :
String
S R
Y A
N D
H I
K A
P R
I Y
Pattern
P D
H I
K A
P R
Langkah 1 : Bandingkan
Pattern
[1] dengan
String
[1] R
Y A
N D
H I
K A
P R
I Y
D H
I K
A P
R
Pattern
[1] tidak cocok dengan
String
[1], maka
Pattern
akan bergeser satu karakter ke kanan.
Universitas Sumatera Utara
Langkah 2 : Bandingkan
Pattern
[1] dengan
String
[2] R
Y A
N D
H I
K A
P R
I Y
D H
I K
A P
R
Pattern
[1] tidak cocok dengan
String
[2], maka
Pattern
akan bergeser satu karakter ke kanan.
Langkah 3 : Bandingkan
Pattern
[1] dengan
String
[3] R
Y A
N D
H I
K A
P R
I Y
D H
I K
A P
R
Pattern
[1] tidak cocok dengan
String
[3], maka
Pattern
akan bergeser satu karakter ke kanan.
Langkah 4 : Bandingkan
Pattern
[1] dengan
String
[4] R
Y A
N D
H I
K A
P R
I Y
D H
I K
A P
R
Pattern
[1] tidak cocok dengan
String
[4], maka
Pattern
akan bergeser satu karakter ke kanan.
Langkah 5 : Bandingkan
Pattern
[1] dengan
String
[5] R
Y A
N D
H I
K A
P R
I Y
D H
I K
A P
R
Pattern
[1] cocok dengan
string
[5], karena ada kecocokan maka
Patternt
tidak melakukan pergeseran, akan tetapi membandingkan
Pattern
[2] dengan
String
[6].
Langkah 6 : Bandingkan
Pattern
[2] dengan
String
[6]
Universitas Sumatera Utara
R Y
A N
D H
I K
A P
R I
Y
D H
I K
A P
R Jika
Pattern
[2] cocok dengan
String
[6], maka selanjutnya membandingkan
Pattern
[3] dan mencocokkan dengan
String
[7].
Langkah 7 : Bandingkan
Pattern
[3] dengan
String
[7] R
Y N
N D
H I
K A
P R
I Y
D H
I K
A P
R Jika
Pattern
[3] cocok dengan
String
[7], maka selanjutnya membandingkan
Pattern
[4] dan mencocokkan dengan
String
[8].
Langkah 8 : Bandingkan
Pattern
[4] dengan
String
[8] R
Y A
N D
H I
K A
P R
I Y
D H
I K
A P
R
Pattern
[4] cocok dengan
String
[8], karena ada kecocokan untuk
Pattern
tidak dilakukan pergeseran dan mencocokkan
Pattern
[5] dengan
String
[9].
Langkah 9 : Bandingkan
Pattern
[5] dengan
String
[9] R
Y A
N D
H I
K A
P R
I Y
D H
I K
A P
R
Pattern
[5] cocok dengan
String
[9], karena ada kecocokan untuk
Pattern
tidak dilakukan pergeseran dan mencocokkan
Pattern
[6] dengan
String
[10].
Langkah 10 : Bandingkan
Pattern
[6] dengan
String
[10] R
Y A
N D
H I
K A
P R
I Y
D H
I K
A P
R
Universitas Sumatera Utara
Pattern
[6] cocok dengan
String
[10], karena ada kecocokan untuk
Pattern
tidak dilakukan pergeseran dan mencocokkan
Pattern
[7] dengan
String
[11].
Langkah 11 : Bandingkan
Pattern
[7] dengan
String
[11] R
Y A
N D
H I
K A
P R
I Y
D H
I K
A P
R
Pattern
[7] cocok dengan
String
[11], pencarian berhenti karena semua karakter di
Pattern
telah cocok dengan karakter di
String
meskipun karakter di
string
belum habis. Jika semua huruf pada
Pattern
sudah dicocokkan dengan
String
maka akan ditemukan sebuah pola kosa kata di dalam
String
. Dalam menemukan sebuah pola
Pattern
di dalam
String
akan dilakukan pergeseran beberapa kali untuk mencocokkan setiap huruf pada
Pattern
yang dimulai dari sebelah kiri untuk mencocokkan setiap huruf pada
String
. Berikut merupakan
pseudocode
pada algoritma
Knuth-Morris-Pratt : public static int kmpMatch string text, string pattern
{ Int n = text.length;
Int m = pattern.length;
Int fail[] = computeFail pattern; Int i = 0 ;
Int j = 0 ;
While i n { If pattern.charAtj = = text.charAti {
Return i - m + 1; match i+ + ;
j+ + ; }else if j 0
J = fail[j-i] ;
Universitas Sumatera Utara
else i+ + ;
} Return -1; no match
} end of kmpMatch
Pada fungi KMP panjang teks di masukkan ke dalam variabel
n
, panjang
pattern
dimasukkan ke variabel
m, i= 0 dan j= 0, jika i
lebih kecil dari pada
n
jika
pattern
pada karakter
j
sama dengan teks pada posisi i maka i –
m
+ 1
match
, jika cocok
.. i
+ 1,
j+ 1 j 0
. Jika tidak sama maka
j
menyimpan
j-i
sebagai
failure Function
dan
i
+1. jika
j
tidak sama dengan
i
dan
j
tidak lebih besar daripada 0 maka dikembalikan
-1 no macth.
2.2.7. Algoritma Knuth Morris Pratt String Matching
Algoritma
Knuth Morris Pratt
merupakan salah satu algoritma yang sering digunakan untuk menyelesaikan masalah pencocokan
string
. Algoritma ini adalah penyempurnaan dari algoritma pencocokan
string
dengan menggunakan algoritma
brute force
. Pada algoritma
brute force
, setiap kali ditemukan ketidak cocokan
pattern
dengan teks, maka
pattern
akan digeser satu ke kanan. Sedangkan pada algoritma Knuth-Morris-Pratt, kita memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma
menggunakan informasi tersebut untuk membuat pergeseran angka lebih jauh, tidak hanya satu karakter seperti pada algoritma
brute force
. Dengan algoritma
Knuth Morris Pratt
ini, waktu pencarian dapat dikurangi secara signifikan. Algoritma
Knuth Morris Pratt
ini dikembangakan oleh D. E. Knuth, bersama-sama dengan J. H. Morris dan V. R. Pratt.
Algoritma Knuth-Morris-Prath memelihara informasi yang digunakan saat melakukan pergeseran. Informasi ini digunakan untuk melakukan pergeseran yang lebih
jauh, tidak seperti
brute force
yang melakukan pergeseran perkarakter. Pergeseran dilakukan berdasarkan
suffix
kesamaan
suffix
dan
prefix
dalam
pattern
dan yang
Universitas Sumatera Utara
ditemukan di dalam teks. Dalam algoritma
Knuth Morris Pratt
ini kita akan menemui beberapa definisi yang nantinya akan digunakan dalam algoritma ini.
2.2.8. Fungsi Pinggiran
Algoritma
Knuth Morris Pratt
melakukan proses awal atau
preproccesing
terhadap
pattern
P dengan menghitung fungsi pinggiran dalam literatur lain menyebut fungsi
overlap
, fungsi
failure,
dsb yang mengindikasikan pergeseran s terbesar yang mungkin dengan menggunakan perbandingan yang dibentuk sebelum pencarian
string.
Fungsi pinggiran hanya bergantung pada karakter-karakter di dalam
pattern
, dan bukan pada kerakter-karekter di dalam teks yang dicari. Oleh karena itu, kita dapat melakukan
perhitungan fungsi awalah sebelum pencarian
string
dilakukan. Fungsi pinggiran bj didefinisikan sebagai ukuran awalan terpanjang dari P yang merupakan akhiran dari
P[1..j]. Sebagai contoh, tinjau
pattern
P = abcabd. Nilai F untuk setiap karakter di dalam P adalah sebagai berikut.
Tabel 2.1 Fungsi Pinggiran Untuk
Pattern
abcabd j
1 2
3 4
5 6
Pj a
b c
a b
d Bj
1 1
2
Di bawah ini adalah algoritma untuk menghitung fungsi pinggiran. procedure HitungPinggiran
input m : integer, P : array[1..m] of char,output b : array[1..m] of integer
Universitas Sumatera Utara
{ Menghitung nilai b[1..m] untuk pattern P[1..m] }
Deklarasi
k,q : integer
Algoritma:
b[1] 0 q 2
k 0
for q 2 to m do
while k 0 and P[q] P[k+1] do
k b[k] endwhile
if P[q]=P[k+1] then k k+1
endif b[q]=k
endfor
Keterangan :
Universitas Sumatera Utara
Fungsi tersebut akan menghasilkan output berupa array integer yang merupakan angka- angka pinggiran untuk setiap posisi iterasi pada
pattern
. Barulah kemudian dapat diproses pencocokkan antara
pattern
dan teks yang diberikan.
2.2.9 Fungsi Pembandingan String
Kemudian cara untuk melakukan pencocokan
string
dengan menggunakan algoritma
Knuth Morris Pratt
adalah sebagai berikut. Misal kita akan mencocokan teks T = abcabcabd dan kita mempunyai
pattern
P = abcabd. 123456789 Teks = abcabcabd
Pattern
= abcabd Mula-mula kita hitung fungsi pinggiran dari
pattern
P tersebut. Fungsi pinggiran P = abacabd tertera seperti table 1 di atas. Kemudian lakukan langkah-langkah berikut.
Samakan ujung kiri
pattern
dengan ujung kiri teks. Karakter-karakter pada karakter 1- 5 sama, tetapi pada posisi ke 6 tidak sama. Hal itu karena karakter ke 6 pada teks yaitu
c tidak sama dengan karakter ke 6 pada
pattern
yaitu d. Untuk mencocokan kembali, kita harus menggeser
pattern
. Jika dalam
brute force
kita akan menggeser
pattern
1 karakter ke kanan. Namun jika menggunakan algoritma
Knuth Morris Pratt
jumlah pergeseran
pattern
ditentukan oleh pinggiran dari awalan P yang bersesuaian. Pada contoh di atas, awalan yang bersesuaian adalah abcab, dengan panjang l = 5. Pinggiran
terpanjang untuk
string
P[1..5] adalah ab yang panjangnya adalah b5 = 2. Jarak pergeseran adalah l
– b = 5 – 2 = 3. Jadi,
pattern
P digeser sejauh 3 karakter dan perbandingan dilakukan mulai pada posisi j = 3 dihitung dari awal
pattern
.
j
1 2
3 4
5 6
P
[
j
] a
b c
a b
d
b j
1 2
Universitas Sumatera Utara
Teks: abcabcabd
Pattern
: abcabd
j
= 3 Telah itu kita kembali membandingkan karakter per karekter seperti di proses
sebelumnya sampai kita menemukan teks yang sama dengan
pattern
hingga karakter terakhir. Algoritma
Knuth Morris Pratt
selengkapnya adalah sebagai berikut:
procedure KMPsearchinput m,n:integer, input P : array[1..m] of char,input T :
array[1..n] of char, output idx : integer
{ Mencari kecocokan pattern P di dalam
teks T dengan algoritma Knuth-Morris- Pratt. Jika ditemukan P di dalam T,
lokasi awal kecocokan disimpan di dalam peubah idx.
Masukan: pattern P yang panjangnya m dan teks T yang panjangnya n.
Teks T direpresentasika
Universitas Sumatera Utara
sebagai string array of character Keluaran: posisi awal kecocokan
idx. Jika P tidak ditemukan, idx = - 1.
}
Deklarasi
i, j : integer ketemu : boolean
b : array[1..m] of integer procedure HitungPinggiraninput m :
integer, P : array[1..m] of char, output b : array[1..m] of integer
{ Menghitung nilai b[1..m] untuk pattern P[1..m] }
Algoritma:
HitungPinggiranm, P, b j 0
i 1 ketemu false
while i n and not ketemu do whilej 0 and P[j+1] T[i] do
j b[j]
Universitas Sumatera Utara
endwhile if P[j+1]=T[i] then
j j+1 endif
if j = m then ketemu true
else i i+1
endif endwhile
if ketemu then idx i-m+1
{ catatan: jika indeks array dimulai dari 0, maka idx i-m }
else idx -1
endif
2.2.10. Klasifikasi Pencocokan String
Pencocokan
string string matching
secara garis besar dapat dibedakan menjadi dua yaitu :
1.
Exact string matching
, merupakan pencocokan
string
secara tepat dengan susunan karakter dalam
string
yang dicocokkan memiliki jumlah maupun urutan karakter
Universitas Sumatera Utara
dalam
string
yang sama. Contoh : kata
step
akan menunjukkan kecocokan hanya dengan kata
step
.
2. Inexact string matching
atau
Fuzzy string matching
, merupakan pencocokan
string
secara samar, maksudnya pencocokan
string
dimana
string
yang dicocokkan memiliki kemiripan
dimana keduanya memiliki susunan karakter yang berbeda
mungkin jumlah atau urutannya tetapi
string
-
string
tersebut memiliki kemiripan baik kemiripan tekstualpenulisan
approximate string matching
atau kemiripan ucapan
phonetic string matching
.
Inexact string matching
masih dapat dibagi lagi menjadi dua yaitu :
a. Pencocokan
string
berdasarkan kemiripan penulisan
approximate string matching
merupakan pencocokan
string
dengan dasar kemiripan dari segi penulisannya jumlahah karakter, susunan karakter dalam dokumen.Tingkat
kemiripan ditentukan dengan jauh tidaknya beda penulisan dua buah
string
yang dibandingkan tersebut dan nilai tingkat kemiripan ini ditentukan oleh
pemrogram
programmer
. Contoh :
compuler
dengan
compiler
, memiliki jumlahah karakter yang sama tetapi ada dua karakter yang berbeda. Jika perbedaan dua karakter ini dapat
ditoleransi sebagai sebuah kesalahan penulisan maka dua
string
tersebut dikatakan cocok.
b. Pencocokan
string
berdasarkan kemiripan ucapan
phonetic string matching
merupakan pencocokan
string
dengan dasar kemiripan dari segi pengucapannya meskipun ada perbedaan penulisan dua
string
yang dibandingkan tersebut. Contoh
step
dengan
step
dari tulisan berbeda tetapi dalam pengucapannya mirip sehingga dua
string
tersebut dianggap cocok. Contoh yang lain adalah
step
, dengan
steppe
,
sttep
,
stepp, stepe
.
Exact string matching
bermanfaat jika pengguna ingin mencari
string
dalam dokumen yang sama persis dengan
string
masukan. Tetapi jika pengguna menginginkan pencarian
string
yang mendekati dengan
string
masukan atau terjadi kesalahan penulisan
string
masukan maupun dokumen objek pencarian, maka
inexact string matching
yang bermanfaat.
Universitas Sumatera Utara
2.3. Penelitian Yang Relevan.