Algoritma pencarian string (bahasa Inggris: string matching algorithm) atau sering disebut juga pencocokan string adalah algoritme untuk melakukan pencarian semua kemunculan string pendek yang disebut pattern di string yang lebih panjang yang disebut teks.[1]

Algoritma-algoritma pencocokkan string dapat diklasifikasikan menjadi tiga bagian menurut arah pencariannya.

  • Dan kategori terakhir, dari arah yang ditentukan secara spesifik oleh algoritma tersebut, arah ini menghasilkan hasil terbaik secara teoretis, algoritma yang termasuk kategori ini adalah:
    1. Algoritme Colussi
    2. Algoritme Crochemore-Perrin

salah satunya algoritma SUSAN

Algoritma brute force dalam pencarian string

sunting

Algoritma brute force (bahasa Inggris: brute-force search) merupakan algoritma pencocokan string yang ditulis tanpa memikirkan peningkatan performa. Algoritma ini sangat jarang dipakai dalam praktik, tetapi berguna dalam studi pembanding dan studi-studi lainnya.

Cara kerja

sunting

Secara sistematis, langkah-langkah yang dilakukan algoritma brute force pada saat mencocokkan string adalah:

  1. Algoritma brute force 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 terus menggeser pattern sebesar satu ke kanan, dan mengulangi langkah ke-2 sampai pattern berada di ujung teks.

Berikut adalah Algoritma brute force yang sedang bekerja mencari string:

Algoritme brute force yang sedang bekerja mencari string.

Pseudocode

sunting

Pseudocode algoritma brute force ini:

procedure BruteForceSearch(
       	input m, n: integer,
       	input P: array[0..n-1] of char,
       	input T: array[0..m-1] of char,
       	output ketemu: array[0..m-1] of boolean
       )

Deklarasi:
       i, j: integer 

Algoritma:
        for (i:=0 to  m-n) do
               j:=0
               while (j < n and T[i+j] = P[j]) do
                        j:=j+1
               endwhile
               if(j >= n) then
		         ketemu[i]:=true;
               endif 
        endfor

Referensi

sunting
  1. ^ (Inggris)Lecroq, Thierry Charras, Christian. 2001. Handbook of Exact String Matching Algorithm. ISBN 0-9543006-4-5

Lihat pula

sunting

Pranala luar

sunting

📚 Artikel Terkait di Wikipedia

Optimisasi multiobjektif

Algoritma seperti Non-dominated Sorting Genetic Algorithm-II (NSGA-II) dan Strength Pareto Evolutionary Algorithm 2 (SPEA-2) menjadi pendekatan yang standar

Pemelajaran mesin kuantum

090405. PMID 26991161. S2CID 20182586. Knott, Paul (2016-03-22). "A search algorithm for quantum state engineering and metrology". New Journal of Physics.

Archimedes

2012. Miel, G (1983). "Of Calculations Past and Present: The Archimedean Algorithm". The American Mathematical Monthly. 90 (1): 17–35. doi:10.1080/00029890

BLAST

Dániel; Grolmusz, Vince (2016-09-01). "Fast and exact sequence alignment with the Smith–Waterman algorithm: The SwissAlign webserver". Gene Reports. 4: 26–28

Grup ruang

exakten Wissenschaften (Textbooks and Monographs from the Fields of the Exact Sciences), vol. 13, Verlag Birkhäuser, Basel, MR 0020553 Burckhardt, Johann

Computus

Clive Feather with a brief explanation, some more tables, and another algorithm (Jerman) An extensive calendar site (auf Deutsch) and calendar and Easter

Algoritma Boyer-Moore

Handbook of Exact String Matching Algorithm. ISBN 0-9543006-4-5 (Inggris)Boyer, Robert Moore, J. 1977. A Fast String Searching Algorithm. Comm. ACM 20:

Uji Kruskal–Wallis

Jae Won Lee, Myung-Hoe Huh, and Seung-Ho Kang (2003). "An Algorithm for Computing the Exact Distribution of the Kruskal–Wallis Test". Communications in