NIM : 203010503013
KELAS :C
FAKULTAS TEKNIK
2021
LAPORAN HASIL PRAKTIKUM
NIM : 203010503013
KELAS :C
Penilai
Asisten Praktikum
Edy Pratamajaya
BAB I
PENDAHULUAN
A. Tujuan
1. Mahasiswa mampu mengenal algoritma-algoritma String Matching.
B. Landasan Teori
1. Naive
// Cari kecocokan
for (i = 0; i <= n - m; i++) {
if (p == t) {
for (j = 0; j < m; j++) {
if (txt.charAt(i + j) != pattern.charAt(j)) break;
}
if (j == m)
if (i < n - m) {
t = (dSystem.out.println("Pattern ditemukan+pada
* (t - txt.charAt(i) * h) + txt.charAt(i posisi:
m)) % q; " + (i
if (t <+ 0)
1));
} t = (t + q);
}
}
3. Finite State Automata
Pada finite state automata pencarian akan dibagi dalam state-state.
Ada state yang menunjukkan bahwa string diterima. Jadi bila dalam
pembacaan string, masuk ke state tersebut, maka pola string
ditemukan. Sebuah finite automaton M adalah sebuah 5-tuple (Q,q0,A,
∑, δ) dimana.
a. Q adalah himpunan state
BAB II
PEMBAHASAN
Blok class dibuka dengan tanda kurung kurawal sebagai blok pembuka ({ )
kemudian ditutup atau diakhiri dengan blok penutup (}). Dengan membari
nama untuk menjadi objek.
Di dalam blok class, dapat mengisinya dengan method atau fungsi-fungsi
dan juga variabel.
4. Bagian Public Final dan Main/Method
Bagian ini memasukan nilai variabel d dengan tipe data integer yaitu
sebanyak 256, lalu memasukan inputan tersebut.
Bagian main () atau fungsi main () adalah bagian program utama yang
pertama kali dieksekusi. Method wajib dibuat kalau tidak, maka program tidak
akan bisa dieksekusi. Method main memiliki parameter arg [ ]. Parameter ini
nanti akan menyimpan sebuah nilai dari argumen di command line.
5. Bagian Menampilkan Menu
Bagian ini adalah algoritma dari metode Naive. Metode ini memeriksa
semua karakter dalam string utama dibandingkan dengan substring. Jika huruf
pertama dari sub string cocok dengan string utama maka iterasi dilakukan
pada inner loop dalam memeriksa elemen selanjutnya. Jika semua elemen
dalam substring cocok dengan string utama maka akan dikambilkan indeks
awal dari string utama dan sekali lagi akan diperiksa kemunculan berikutnya.
Lalu untuk nilai variabel i = 0, untunk perintah i++ yaitu untuk menambah
nilai pada counter. Kemudian untuk variabel j = 0, selanjutnya menampilkan
kalimat bahwa teks ditemukan dan pada indeks berapa teks tersebut.
7. Bagian Algoritma Rabin Karp
Bagian algoritma Rabin Karp dengan mendeklarasikan tipe variabel dan
nama variabel berserta dengan nilainya. Menggunakan for dengan nilai i = 0,
untuk variabel i lebih kecil dari variabel m, untuk perintah i++ yaitu untuk
menambahkan nilai pada counter. Kemudian proses selanjutnya menghitung
nilai hash untuk pattern dan text. Selanjutnya proses untuk mencari kecocokan
yaitu dengan variabel p sama dengan variabel t sampai dengan dietmukannya
atau sampai string t terakhir. Lalu menampilkan kalimat teks ditemukan pada
indeks keberapa maka akan muncul indeksnya.
8. Bagian Algoritma Knuth Morris Pratt (KMP)
Bagian algoritma Knuth Morris Pratt (KMP) yaitu dengan menginput tipe
data dan nama variabel. Algoritma KMP mulai mencocokan pattern pada awal
teks, dari kiri ke kanan, algoritma ini akan mencocokan karakter per karakter
pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi
terpenuhi. Kemudian pattern berdasarkan tabel next, lalu mengulangi sampai
pattern berada di ujung teks. Jika proses selesai maka akan menampilkan
kalimat bahwa teks ditemukan dan di indeks keberapa teks itu ditemukan.
9. Bagian Source Code Exit/Keluar
Bagian algoritma untuk keluar dari program jika memilih menu exit maka
akan keluar dari program dan tidak bisa melakukan percobaan lagi.
KESIMPULAN