Anda di halaman 1dari 16

Approximate String

Matching
Algoritma
Levenshtein
1

Algoritma Pencarian String


Pencarian string biasa, yaitu pencarian yang eksak,
terdapat berbagai algoritma seperti:
- Knuth-Morris-Pratt
- BoyerMoore
- Rabin-Karp
- dan lain-lain.
Pencarian string khusus, yaitu dengan pendekatan
perkiraan (Approximate String Matching), seperti:
- Hamming
- Levenshtein,
- Damerau-Levenshtein
- Jaro-Winkler
- Wagner-Fischer
2

Algoritma Levenshtein
Algoritma Levenshtein / Levenshtein Distance / Edit
Distance merupakan algoritma pencarian jumlah
perbedaan string.
Ditemukan oleh Vladimir Levenshtein, seorang
ilmuwan Rusia, pada tahun 1965.
Algoritma Levenshtein merupakan algoritma yang
digunakan untuk mencari jumlah operasi
string yang paling sedikit untuk
mentransformasikan suatu string menjadi string
yang lain.
Pencarian string target menjadi tidak harus sama
persis dengan yang ada di dalam string sumber.
3

Contoh Algoritma
Levenshtein
1. Mesin pencari
2. Pengecek ejaan (spell checking)
3. Pendeteksian suatu rantai dalam DNA
4. Pendeteksi pemalsuan
5. Pengenal pembicaraan
6. Pengucapan dialek
7. Dan lain-lain

Contoh Algoritma
Levenshtein
Seringkali kata kunci yang dicari bukan
merupakan ejaan yang baku, memiliki suatu
imbuhan yang komponen katanya berbeda,
ataupun salah ketik.
Contoh salah pengetikan:
hirarki padahal hierarki
rtae padahal rate
Contoh perubahan komponen karena
penambahan imbuhan:
Dalam bahasa Inggris rate dan rating

Operasi String
Ada tiga operasi string yang digunakan untuk
mentransformasikan suatu string menjadi string yang
lain:
1. Operasi penghapusan
2. Operasi penyisipan/penambahan
3. Operasi penggantian/pengubahan
. Operasi-operasi ini digunakan untuk menghitung
jumlah perbedaan yang diperlukan untuk
pertimbangan kecocokan suatu string dengan string
sumber.
. Perhitungan jarak antara dua string ditentukan dari
jumlah minimum operasi perubahan untuk membuat
string A menjadi string B
. Jumlah operasi minimal dari ketiga operasi tersebut
terhadap dua buah string disebut dengan
Levenshtein distance atau edit distance.

Operasi String
Operasi Penggantian Karakter
Operasi pengubahan karakter
merupakan operasi menukar sebuah
karakter dengan karakter lain
Contoh:
String yamg menjadi yang
karakter m diganti dengan huruf
n
7

Operasi String
Operasi Penyisipan Karakter
Operasi penyisipan/penambahan
karakter berarti menambahkan
karakter ke dalam suatu string.
Contoh:
String kepad menjadi kepada
Penambahan karakter a di akhir
string
8

Operasi String
Operasi Penghapusan Karakter
Operasi penghapusan karakter
dilakukan untuk menghilangkan
karakter dari suatu string
Contoh:
String barur menjadi baru
Dilakukan penghapusan karakter
r
9

Langkah-langkah
Algoritma
1. m = panjang kata1 (kata kunci yang diinputkan oleh pengguna).
2. n = panjang kata2 (kata dari tabel kata yang digunakan untuk
pembanding).
3. d[0,0] = 0.
4. Untuk i = 1 sampai m, kerjakan d[i,0]= d[i-1,0] + c(kata1i, ).
5. Untuk j = 1 sampai n, kerjakan d[0,j]= d[0,j-1] + c(, kata2j).
6. Menghitung nilai array dalam matrik
Untuk i = 1 sampai m, kerjakan
Untuk j = 1 sampai n, kerjakan

Hasil perhitungan jarak ditunjukkan


pada kolom d[n,m].
10

Langkah-langkah
Algoritma
1.
2.
3.
4.
5.
6.
7.
8.
9.

Mis. kata pertama adalah source = s, dan kata kedua


adalah target = t
Tentukan n sebagai panjang dari s
Tentukan m sebagai panjang dari t
Jika n = 0, return m dan stop
Jika m = 0, return n dan stop
Buat matriks yang berisi 0 sampai m baris dan 0
sampai n kolom
Periksa setiap karakter dari s (i dari 1 sampai n) dan
dari t (j dari 1 sampai m)
Jika s[i] sama dengan t[j], maka cost = 0, jika berbeda
maka cost = 1
Tentukan sel d[i,j] dari matriks yang sama dengan
angka terendah dari:
a. d[i-1, j] + 1
b. d[i, j-1] + 1
11
c. d[i-1, j-1] + cost

Langkahlangkah
Algoritma

12

Levenshtein Distance
Algoritma ini berjalan mulai dari pojok
kiri atas sebuah array dua dimensi
yang telah diisi sejumlah karakter string
awal dan string target dan diberikan
nilai cost.
Nilai cost pada ujung kanan bawah
menjadi nilai edit distance yang
menggambarkan jumlah perbedaan 2
string.
13

Batas Atas & Bawah


Levenshtein Distance
1. Levenshtein distance minimum
adalah selisih panjang string yang
dibandingkan.
2. Levenshtein distance maksimum
adalah panjang string yang lebih
panjang.
3. Levenshtein distance adalah nol,
jika kedua string identik (sama).
14

15

16

Anda mungkin juga menyukai