Algoritma Text Search adalah metode mendasar dalam pemrosesan teks dan pencarian informasi. Algoritma ini memungkinkan kita untuk menemukan dan mengidentifikasi kemunculan substring(atau pola) dalam potongan teks yang lebih besar.
Bagaimana itu bekerja
- Mulailah dengan potongan teks(atau dokumen) yang lebih besar dan substring untuk dicari.
- Ulangi setiap karakter teks secara berurutan.
- Bandingkan substring dengan bagian teks yang memiliki panjang yang sama dengan substring. Jika kecocokan ditemukan, catat posisi saat ini.
- Pindah ke posisi berikutnya dan lanjutkan perbandingan.
Contoh
Pertimbangkan teksnya: "Mari kita cari substring di dalam teks ini untuk melihat cara kerja algoritme."
Dan substring untuk mencari: "substring"
- Mulai dari posisi 0. Bandingkan
Let'dengan "substring". Tidak cocok. - Pindah ke posisi 1. Bandingkan
et'sdengan "substring". Tidak cocok. - Pindah ke posisi 2. Bandingkan
t's" dengan "substring". Tidak cocok. - Pindah ke posisi 3. Bandingkan
's sdengan "substring". Tidak cocok. - Pindah ke posisi 4. Bandingkan
sedengan "substring". Tidak cocok. - Pindah ke posisi 5. Bandingkan
seadengan "substring". Tidak cocok. - Pindah ke posisi 6. Bandingkan
earcdengan "substring". Tidak cocok. - Pindah ke posisi 7. Bandingkan
archdengan "substring". Tidak cocok. - Pindah ke posisi 8. Bandingkan
rch" dengan "substring". Tidak cocok. - Pindah ke posisi 9. Bandingkan
ch wdengan "substring". Tidak cocok. - Pindah ke posisi 10. Bandingkan
h widengan "substring". Tidak cocok. - Pindah ke posisi 11. Bandingkan "
witdengan "substring". Tidak cocok. - Pindah ke posisi 12. Bandingkan
withdengan "substring". Tidak cocok. - Pindah ke posisi 13. Bandingkan
ithidengan "substring". Tidak cocok. - Pindah ke posisi 14. Bandingkan
thindengan "substring". Tidak cocok. - Pindah ke posisi 15. Bandingkan
hinndengan "substring". Tidak cocok. - Pindah ke posisi 16. Bandingkan
in tdengan "substring". Tidak cocok. - Pindah ke posisi 17. Bandingkan
n thdengan "substring". Tidak cocok. - Pindah ke posisi 18. Bandingkan "
thidengan "substring". Tidak cocok. - Pindah ke posisi 19. Bandingkan
thisdengan "substring". Tidak cocok. - Pindah ke posisi 20. Bandingkan
his" dengan "substring". Tidak cocok. - Pindah ke posisi 21. Bandingkan
is tdengan "substring". Tidak cocok. - Pindah ke posisi 22. Bandingkan
s tedengan "substring". Tidak cocok. - Pindah ke posisi 23. Bandingkan
ubstdengan "substring". Tidak cocok. - Pindah ke posisi 24. Bandingkan
bstrdengan "substring". Tidak cocok. - Pindah ke posisi 25. Bandingkan
stredengan "substring". Tidak cocok. - Pindah ke posisi 26. Bandingkan
trindengan "substring". Tidak cocok. - Pindah ke posisi 27. Bandingkan
ringdengan "substring". Kecocokan ditemukan, catat posisi 27.
Substring "substring" ditemukan di posisi 27 dalam teks.
Contoh Kode di C++
#include <iostream>
#include <string>
#include <vector>
std::vector<int> textSearch(const std::string& text, const std::string& query) {
std::vector<int> positions;
for(int i = 0; i <= text.length()- query.length(); ++i) {
int j = 0;
while(j < query.length() && text[i + j] == query[j]) {
++j;
}
if(j == query.length()) {
positions.push_back(i);
}
}
return positions;
}
int main() {
std::string text = "Let's search for a substring within this text to see how the algorithm works.";
std::string query = "substring";
std::vector<int> result = textSearch(text, query);
std::cout << "Substring found at positions: ";
for(int pos: result) {
std::cout << pos << ";
}
std::cout << std::endl;
return 0;
}
Dalam contoh ini, textSearch fungsi digunakan untuk mencari posisi substring "substring" di dalam teks. Hasilnya adalah vektor yang berisi posisi awal pertandingan.

