• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI - Implementasi Algoritma Levenshtein Distance dan Algoritma Knuts Morris Pratt Dalam Fitur Word Complete pada Search Engine

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 2 LANDASAN TEORI - Implementasi Algoritma Levenshtein Distance dan Algoritma Knuts Morris Pratt Dalam Fitur Word Complete pada Search Engine"

Copied!
20
0
0

Teks penuh

(1)

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

(2)

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)

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.

(4)

s a y a

0 1 2 3 4

s 0 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

(5)

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:

(6)

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:

(7)

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 KnuthMorris-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.

(8)

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 prefixpattern“dhika” sehingga terjadi kecocokan

pada teks.

Contoh penggunaan algoritma string matchingKMP, yaitu :

Teks : RYAN DHIKAPRIY

(9)

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].

(10)

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

(11)

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 :

(12)

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 bruteforce, 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

(13)

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 b(j) 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

P(j) a b c a b d

B(j) 0 0 1 1 2 0

Di bawah ini adalah algoritma untuk menghitung fungsi pinggiran.

procedure HitungPinggiran

(input m : integer, P : array[1..m] of

(14)

{ 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

(15)

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 b(5) = 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

(16)

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 KMPsearch(input 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.

(17)

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 HitungPinggiran(input 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:

HitungPinggiran(m, P, b)

j 0

i 1

ketemu false

while (i n and not ketemu) do

while((j > 0) and (P[j+1] T[i])) do

(18)

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 :

(19)

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 tekstual/penulisan (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

(20)

2.3. Penelitian Yang Relevan.

Algoritma Levenshtein Distance terbukti dapat menyelesaikan beberapa permasalahan dalam penelitian ilmiah, penelitian yang pernah dilakukan yang berkaitan dengan

algoritma Levenshtein Distance, diantaranya yaitu (Primadani, Yuli. 2014). Algoritma

Levenshtein Distance pada fitur Autocomplete pada Aplikasi Katalog Perpustakaan.

Layanan autocomplete (Word completion) telah banyak digunakan pada penelitian terdahulu. layanan autocomplete juga pernahditerapkan pada Smart Phones

(Pradhana, 2012), dengan menggunakan kombinasi algoritma Brute Force, Boyer-Moore dan Knuth-Morris Pratt.

Penelitian yang pernah dilakukan yang berkaitan dengan algoritma Knuth-Morris Pratt yaitu (Handari Ekaputri,Gahayu. 2007). Aplikasi Algoritma Pencarian

String Knuth-Morris-Pratt dalam Permainan Word Search kesimpulan nya adalah algoritma KMP dapat menyimpan sebuah informasi yang digunakan untuk melakukan

jumlah pergeseran, sehingga algoritma ini melakukan pergeseran lebih jauh tidak hanya

bergeser satu karakter.

Penelitian tentang string matching juga pernah dilakukan oleh (Singla, Nimisha,2012) dengan judul String Matching Algorithms and their Applicability in various Applications. kesimpulan nya adalah jarak antara dua string didefinisikan sebagai jumlah minimum yang diperlukan untuk mengubah satu string ke yang lain,

dengan diijinkan mengedit operasi penyisipan, penghapusan, atau penggantian karakter

Gambar

Tabel 2.1 Fungsi Pinggiran Untuk Pattern abcabd

Referensi

Dokumen terkait

[r]

Hadits juga merupakan sumber bagi da’wah dan bimbingan bagi seorang muslim, ia juga merupakan sumber ilmu pengetahuan religius (keagamaan), dan sosial yang dibutuhkna umat

In conclusion, considering the white dragon fruit extract effectively increase the synthesis of testosterone as well as the spermiogenic parameters thus the

Dalan pasal 1 ayat 1 sub lb ini yang non jadi tujuan da­ ri pcrbuatan terdalcwa adalah ncnggulingfcan, ncrusak atau nc- rongrong kekuasaan nogara atau kcwibawaan pcncrintah -yang

Dan masa adaptasi penggunaan kontrasepsi IUD adalah jangka waktu yang dibutuhkan pengguna IUD dalam merespon keberadaan IUD di dalam rahimnya ditandai dengan

Tujuan dari Penelitian ini adalah, untuk menghasilkan soal-soal open-ended yang valid dan praktis pada pokok bahasan segitiga dan segiempat di SMP, serta untuk melihat

Sedangkan pemberian IBA yang tinggi dan tidak diimbangi dengan pemberian sitokinin,pada perlakuan dapat menghambat pertumbuhan akar, hal ini juga diduga bahwa telah

Sekali-sekali pasien akan mengalami rasa napas yang pendek (seperti orang yang kelelahan) dan bukanya tekanan pada substernal.Sekali-sekali bisa pula