Anda di halaman 1dari 9

ALGORITMA COUNTING

SORT, HORSPOOL &


BOYER-MOORE
KELOMPOK 1

PAHALA BIMA PRAMUDYA/4611417068

DHEA PUTRI MIRADIKNA/4611417071

RANGGADIPA DASAPRILAWHEDI/4611417073
Counting Sort
Counting sort adalah suatu metode pengurutan dimana dalam proses pengurutannya yaitu dengan menentukan
posisi elemen suatu nilai. Jadi pada prosesnya dibutuhkan suatu rentang nilai yang sudah diketahui dan pada
prosesnya menentukan jumlah nilai yang nilainya lebih kecil dari elemen lain agar dapat menentukan posisi nilai
tersebut. Proses Counting Sort ini terbilang efisien dan efektif serta prosesnya tidak memakan waktu lama.
Merupakan pengurutan yang paling sederhana jika diketahui bahwa data yang akan diurut mempunyai daerah
jelajah (range) tertentu, dan merupakan bilangan bulat, misalnya [Min..Max]
Proses Umum:
1. Sediakan array TabCount [Min..Max] yang diinisialisasi dengan nol, dan pada akhir proses TabCounti berisi banyaknya
data pada tabel asal yang berharga i.
2. Tabel dibentuk kembali dengan menuliskan kembali harga-harga yang ada.
ALGORITMA HORSPOOL
Algoritma Horspool merupakan penyederhanaan dari algoritma Boyer-Moore. Perbedaan antara keduanya adalah
pada metode penggeseren patternnya. Jika Boyer-Moore menggunakan dua metode praproses bad character
shift dan good shufix shift, akan tetapi Horspool hanya menggunakan satu metode praproses yaitu bad character
shift. Kompleksitas rata-rata algoritma ini sama dengan Boyer-Moore O(n), seangkan untuk metode praproses
nya adalah O(m+σ).
Menurut Horspool, R.N. (1980), masalah dalam pencarian teks ini adalah mencari dalam teks yang besar untuk
menemukan patternpertama. Karena teks yang dicari bisa sangat besar (memungkinkan ratusan ribu karakter)
maka penting untuk menggunakan teknik yang lebih efisien. Algoritma Horspoolbekerja dengan metode yang
hampir sama dengan algoritmaBoyer-Moore namun tidak melakukan lompatan berdasarkan karakter
pada pattern yang ditemukan tidak cocok pada teks.
Algoritma Horspool mempunyai nilai pergeseran karakter yang paling kanan dari window. Pada tahap observasi
awal (preprocessing), nilai shift akan dihitung untuk semua karakter. Pada tahap ini, dibandingkan pattern dari
kanan ke kiri hingga kecocokan atau ketidakcocokanpattern terjadi. Karakter yang paling kanan
pada windowdigunakan sebagai indeks dalam melakukan nilai shift. Dalam kasus ketidakcocokan (karakter tidak
terdapat pada pattern) terjadi, window digeser oleh panjang dari sebuah pattern. Jika tidak, window digeser
menurut karakter yang paling kanan pada pattern (Baeza-Yates, R.A. & Regnier, M. 1992).
Pencarian Dengan Algoritma Horspool
1. Tahap praproses
Pada tahap ini, dilakukan observasi pattern terhadap teks untuk membangun
sebuah tabel bad-match yang berisi nilai shift ketika ketidakcocokan
antara pattern dan teks terjadi. Secara sistematis, langkah-langkah yang dilakukan
algoritma Horspool pada tahap praproses adalah:
a. Algortima Horspool melakukan pencocokan karakter ter-kanan pada pattern.
b. Setiap karakter pada pattern ditambah ke dalam tabel bad-match dan dihitung
nilai shift-nya.
c. Karakter yang berada pada ujung pattern tidak dihitung dan tidak dijadikan
karakter ter-kanan dari karakter yang sama dengannya.
d. Apabila terdapat dua karakter yang sama dan salah satunya bukan karakter
terkanan, maka karakter dengan indeks terbesar yang dihitung nilai shift-nya.
e. Algoritma Horspool menyimpan panjang dari pattern sebagai panjang
nilai shift secaradefault apabila karakter pada teks tidak ditemukan dalam pattern.
f. Nilai (value) shift yang akan digunakan dapat dicari dengan perhitungan panjang
daripattern dikurang indeks terakhir karakter dikurang 1, untuk masing-masing
karakter, value = m – i – 1.
Sebagai contoh, dapat dilihat pada Tabel 2.1 berikut.
Pattern: KARTIKA
Pencarian Dengan Algoritma Horspool
2. Tahap pencarian Secara sistematis, langkah-langkah yang dilakukan algoritma Horspool pada tahap
praproses adalah:
a. Dilakukan perbandingan karakter paling kanan pattern terhadap window.
b. Tabel bad-match digunakan untuk melewati karakter ketika ketidakcocokan terjadi.
c. Ketika ada ketidakcocokan, maka karakter paling kanan pada window berfungsi sebagai landasan
untuk menentukan jarak shift yang akan dilakukan.
d. Setelah melakukan pencocokan (baik hasilnya cocok atau tidak cocok) dilakukan pergeseran ke
kanan pada window.
e. Prosedur ini dilakukan berulang-ulang sampai window berada pada akhir teks atau
ketikapattern cocok dengan teks.
ALGORITMA BOYER-MOORE
Boyer-Moore adalah algoritma pencarian string yang paling efisien dan sudah menjadi standar dari sistem pencarian
string. Algoritma ini melakukan pendeteksian pola dalam string dengan melakukan perbandingan karakter pada deretan
yang berbeda. Proses ini dinamakan Shift, dan aturan shift dihitung dengan menerapkan 2 aturan, yaitu aturan bad
character dan aturan good suffix. Nilai maksimum dari panjang shift yang dapat dilakukan dihitung dengan aturan ini,
kemudian pencarian karakter dilakukan dari awal sampai dengan pergeseran shift sebanyak panjang shift.
#Kelebihan
Tidak seperti pencarian string lainnya Brute Force, Knuth-Morris-Pratt yang mempunyai cara kerja membandingkan
satu – persatu karakter dari kiri ke kanan. Boyer-Moore membandingkan karakter dari kanan ke kiri dan memiliki
loncatan karakter yang besarsehingga mempercepat pencarian string karena dengan hanya memeriksa sedikit karakter,
dapat langsung diketahui bahwa string yang dicari tidak ditemukan dan dapat digeser ke posisi berikutnya.
#Kelemahan
Algoritma Boyer-Moore mencocokan Pattern dari kanan ke kiri oleh sebab itu
kelemahan dari algoritma ini adalah ketika semua karakter memiliki kesamaan atau cocok dan hanya karakter terakhir
atau karakter paling kiri yang berbeda maka pencarian ini akan memerlukan waktu yang sedikit lama (Utomo, 2008).
Langkah-langkah penggunaan algoritma
1. Tentukan teks yang digunakan sebagai input
Diasumsikan data input adalah sebagai berikut:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
2. Tentukan pola kata kunci yang digunakan dalam pencarian
Diasumsikan pola adalah sebagai berikut
Labor
3. Lakukan pencarian kata kunci menggunakan algoritma ini

Anda mungkin juga menyukai