Algoritma panggolèkan string

**Algoritma panggolèkan string** utawa asring karan uga panyocokan string ya iku algoritma kanggo nggolèki kabèh kamunculan string cendhak pattern[0..n-1] sing karan pattern ing string sing luwih dawa teks[0..m-1] sing karan tèks.

Panyocokkan string wujud pamasalahan paling prasaja saka kabèh pamasalahan string liyané, lan dianggep péranganing pamrosèsan data, pangomprèsian data, analisis leksikal, lan temu walik informasi. Tèknik kanggo ngrampungaké pamasalahan panyocokkan string racaké bakal ngasilaké implikasi langsung marang aplikasi string liyané.

## Conto algoritma panyocokkan string 
Algoritma-algoritma panyocokkan string bisa diklasifikasikaké dadi telung pérangan miturut arah panggolèkané.

Telung kategori iku ya iku:
* Saka arah sing paling alami, saka kiwa nengan, sing wujud arah kanggo maca, algoritma sing kalebu kategori iki ya iku:
*# Algoritma Brute Force
*# Algoritma saka Morris lan Pratt, sing banjur dikembangaké déning Knuth, Morris, lan Pratt
* Saka tengen ngiwa, arah sing racaké ngasilaké asil paling apik kanthi praktikal, contoné ya iku:
*# Algoritma saka Boyer lan Moore, sing banjur akèh dikembangaké, dadi Algoritma turbo Boyer-Moore, Algoritma tuned Boyer-Moore, lan Algoritma Zhu-Takaoka;
* Lan kategori pungkasan, saka arah sing ditemtokaké kanthi spesifik déning algoritma mau, arah iki ngasilaké asil paling apik kanthi téoritis, algoritma sing kalebu kategori iki ya iku:
*# Algoritma Colussi
*# Algoritma Crochemore-Perrin

## Algoritma brute force jroing panggolèkan string 
Algoritma brute force wujud algoritma panyocokan string sing ditulis tanpa mikiraké paningkatan performa. Algoritma iki arang banget dienggo sajeroning praktèk, nanging migunani sajeroning studi pambandhing lan studi-studi liyané.

### Carané kerja 
Sacara sistematis, langkah-langkah sing dilakoni algoritma brute force nalika nyocokaké string ya iku:
# Algoritma brute force wiwit nyocokaké pattern ing awal tèks.
# Saka kiwa nengen, algoritma iki bakal nyocokaké karakter per karakter pattern karo karakter ing tèks sing padha selaras, nganti salah siji kondhisi iki kapenuhi:
## Karakter ing pattern lan ing tèks sing dibandhingaké ora cocog (mismatch).
## Kabèh karakter ing pattern cocog. Sawisé iku algoritma bakal nggenahi panemon ing posisi iki.
# Algoritma banjur terus nggèsèr pattern siji nengen, lan mbalèni langkah angka 2 nganti pattern ada ing ujung tèks.

Ing ngisor iki Algoritma brute force sing lagi temandang nggolèki string:

Algoritma brute force sing lagi temandang nggolèki string.

### Pseudocode 
Pseudocode algoritma brute force iki:
 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) then
 		         ketemu[i]:=true;
                endif 
         endfor

## Réferènsi 
## Pirsanana uga 
* Pratélan algoritma
* Algoritma Knuth-Morris-Pratt
* Algoritma Boyer-Moore

## Pranala njaba 
* EXACT STRING MATCHING ALGORITHMS - Animation in Java