BAB 2 LANDASAN TEORI
2.1 Definisi Kamus
Kamus menurut KBBI Kamus Besar Bahasa Indonesia merupakan buku acuan yang memuat kata dan ungkapan, biasanya disusun menurut abjad berikut keterangan dan makna,
pemakaian atau terjemahan Argakusumah, 2014. Selain itu, kamus merupakan buku yang memuat kumpulan istilah atau nama yang disusun menurut abjad beserta dengan penjelasan
makna dan pemakaiannya.
2.2 Definisi Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis Rinal Munir, 1999. Kata logis merupakan kata kunci. Langkah-langkah tersebut
harus logis, ini berarti nilai kebenarannya harus dapat ditentukan, benar atau salah. Langkah-
langkah yang tidak benar dapat memberikan hasil yang salah.
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Dalam kehidupan sehari-hari banyak
terdapat proses yang digambarkan dalam suatu algoritma. Cara membuat kue atau masakan, misalnya dinyatakan dengan suatu resep. Resep makanan adalah suatu algoritma.
2.2.1 Definisi Algoritma String Matching
String Matching adalah pencarian sebuah pattern pada sebuah teks kurnaedi, 2012. Prinsip kerja algoritma string matching adalah sebagai berikut :
1. Memindai teks dengan bantuan sebuah window yang ukurannya sama dengan panjang
pattern. 2.
Menempatkan window pada awal teks. 3.
Membandingkan karakter pada window dengan karakter dari pattern. Setelah pencocokan baik hasilnya cocok atau tidak cocok, dilakukan shif ke kanan pada
window. Prosedur ini dilakukan berulang-ulang sampai window berada pada akhir teks. Mekanisme ini disebut sliding-window.
Universitas Sumatera Utara
String Matching dibagi menjadi dua, yaitu exact string matching dan heuristic statistical matching. Exact matching digunakan untuk menemukan pattern yang berasal dari satu teks.
Contoh pencarian exact matching adalah pencarian kata “pelajar” dalam kalimat “ saya seorang pelajar” atau “saya seorang siswa”. Sistem akan memberikan hasil bahwa kata
pelajar dan siswa bersinonim. Algoritma exact matching diklasifisikan menjadi tiga bagian menurut arah pencariannya, yaitu :
1. Arah pencarian dari kiri ke kanan.
Algoritma yang termasuk dalam kategori ini adalah Brute Force, Morris dan Pratt yang kemudian dikembangkan oleh Knuth, Morris dan Pratt.
2. Arah pembacaan dari kanan ke kiri.
Algoritma yang termasuk dalam kategori ini adalah Boyer Moore yang kemudian dikembangkan menjadi algoritma Turbo Boyer Moore, Tuned Boyer Moore dan Zhu
Takaoka. 3.
Arah pencarian yang ditentukan oleh program. Algoritma yang termasuk dalam kategori ini adalah algoritma Colussi dan
Crochemore-Perrin. Heuristic matching adalah teknik yang digunakan untuk menghubungkan dua data
terpisah ketika exact matching tidak mampu mengatasi karena pembatasan pada data yang tersedia. Heuristic matching dapat dilakukan dengan perhitungan distance antara pattern
dengan teks. Exact dan heuristic matching memiliki kemiripan makna tetapi berbeda tulisan.
2.2.1.1 Algoritma Turbo Boyer Moore
Algoritma Turbo Boyer Moore adalah sebuah algoritma pencocokan pola tertentu terhadap suatu kalimat atau paragraf. Algoritma ini merupakan varian dari Algoritma Boyer Moore
yang memungkinkan terjadinya ‘lompatan’ melewati segmen yang tidak memerlukan preprosessing tambahan dengan kecepatan yang baik. Algoritma Turbo Boyer Moore
mengambil metode pencarian string boyer moore yaitu good suffix dan bad character suffix. Akan tetapi, Algoritma Turbo Boyer Moore berbeda dengan Algoritma Boyer Moore,
algoritma ini dimungkinkan terjadinya ‘lompatan’ melewati segmen mengingat faktor dari teks yang cocok dengan akhiran dari pattern selama attempt terakhir sehingga memanfaatkan
teknik turbo shift. Cara kerja algoritma Turbo Boyer Moore ini adalah :
Universitas Sumatera Utara
Pertama : inisialisasi, karena algoritma ini menggunakan good suffix shif dan bad character shif dari Algoritma Boyer Moore maka untuk inisialisasi dijalankan prosedur preBmBc dan
preBmGs seperti Algoritma Boyer Moore. Kedua : Melakukan proses pencocokan karakter pada pattern dengan karakter pada teks. Jika
terjadi ketidakcocokan maka dilakukan pergeseran terbesar berdasarkan tabel BmBc, tabel BmGs dan turbo shif.
Adapun Prinsip Kerja dari Algoritma Turbo Boyer Moore adalah sebagai berikut : 1.
Algoritma Boyer Moore mulai melakukan pencocokan pattern pada awal teks. 2.
Dari kanan ke kiri, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter pada teks yang bersesuaian sampai salah satu kondisi berikut dipenuhi:
a Di pattern dan di teks yang dibandingkan tidak cocok missmatch.
b Semua karakter di pattern cocok. Algoritma akan memberitahukan penemuan di
posisi ini. c
Algoritma kemudian menggeser pattern dengan memaksimalkan nilai pergeseran good suffix dan pergeseran bad character, lalu mengulangi langkah b sampai
patern berada di ujung teks. Untuk fase pencarian dalam algoritma Turbo Boyer Moore, proses yang dilakukan
hampir sama dengan fase pencarian pada Algoritma Boyer Moore. Yang membedakan adalah adanya variabel yang berfungsi untuk menampung nilai pergeseran apabila pada putaran
sebelumnya nilai yang diambil untuk pergeseran berasal dari tabel good suffix shift. Nilai ini nantinya akan digunakan sebagai nilai yang mungkin digunakan untuk pergeseran pattern.
Fase inisialisasi pada algoritma ini sama dengan fase inisialisasi pada algoritma Boyer Moore, yaitu mempunyai kompleksitas waktu dan ruang sebesar On + σ dengan σadalah besar
ruang alfabet. Sedangkan pada fase pencocokan, algoritma ini mempunyai kompleksitas waktu sebesar Om dengan jumlah pencocokan karakter pada algoritma ini adalah 2m.
Contoh : Teks : Titik Berat Benda
Pattern : Benda
Tabel 2.1 Tabel BmBc dan BmGs
Index 1
2 3
4 Pattern
B e n
d a
BmBc 4
3 2
1 BmGs
4 4
4 4
1
Universitas Sumatera Utara
Temu Pola 1 Tabel 2.2 Pergeseran karakter TBM 1
T I
T I
K B E
R A T B E
N D A 1
B E
N D A
Terlihat perbedaan pada index K : -
Geser BmBcK – m + index bawah + 1 = 5 – 5 + 5 = 5 -
BmGs[4] = 1 Sehingga geser pattern sebesar 5 nilai maksimal dari kedua perhitungan
Temu Pola 2 Tabel 2.3 Pergeseran karakter TBM 2
T I T I
K B E R A T
B E N D A
1 -
B E N D A
Terlihat perbedaan pada index R , maka : -
Geser BmBcR – m + index bawah + 1 = 5 – 5 + 4 = 4 -
BmGs[3] = 4 Sehingga geser pattern sebesar 4 nilai maksimal dari kedua perhitungan
Temu Pola 3 Tabel 2.4 Pergeseran karakter TBM 3
T I T I
K B E R A T
B E N D A 1
B E N D A
Terlihat perbedaan pada index E , maka : -
Geser BmBcE – m + index bawah + 1 = 3– 5 + 5 = 3 -
BmGs[4] = 1 Sehingga geser pattern sebesar 3 nilai maksimal dari kedua perhitungan
Universitas Sumatera Utara
Temu Pola 4 Tabel 2.5 Pergeseran karakter TBM 4
T I T I
K B E R A T
B E N D A -
- -
- -
B E N D A
Pada temu pola 4, tidak perlu dilakukan pergeseran lagi karena sudah sampai pada indeks terakhir.
2.2.1.2 Algoritma String Matching on Ordered Alphabets
Algoritma String Matching on Ordered Alphabets ialah algoritma yang mirip dengan algoritma pencarian satu-satu brute force. Perbedaanya adalah pada saat dilakukan
percobaan untuk menyamakan string dimana ‘jendela’ diposisikan oleh substring y[j..j+m-1], saat prefix u dari x telah ditemukan dan ketidaksamaan terjadi antara karakter a dalam x
dengan b dalam kata y. y
x
Gambar 2.1 Percobaan pada algoritma string matching on ordered alphabets
Algoritma ini akan menghitung periode ub seperti pada gambar diatas. Jika tidak berhasil dalam menemukan periode yang tepat, algoritma ini akan beralih untuk menghitung
perkiraannya. Algoritma String Matching on Ordered Alphabets melakukan 37 kali perbandingan
karakter. Pada kasus terburuk, algoritma ini melakukan perbandingan karakter sebanyak 6n+5 perbandingan danmenghasilkan kompleksitas waktu pencariannya On.
Contoh : Teks : Titik Berat benda
Pattern : Benda Perhitungan Pergeseran : Untuk proses pergeseran dihitung berdasarkan banyaknya string
yang sama ditambah dengan string yang berbeda. Jika karakter string teks dan pattern tidak sama, lakukan pengecekan ke string berikutnya.
U B
U A
Universitas Sumatera Utara
Tabel 2.6. Pergeseran Pattern SMOA 1
T I T I
K B E
R A
T B E
N D
A
B E N D A
Geser pattern 1 kali.
Tabel 2.7. Pergeseran Pattern SMOA 2
T I T
I K
B E
R A
T B
E N
D A
B E N
D A
Geser pattern 1 kali
Tabel 2.8. Pergeseran Pattern SMOA 3
T I T I
K B E
R A T B E N
D A
B E N D
A Geser pattern 1 kali
Tabel 2.9. Pergeseran Pattern SMOA 4
T I T
I K
B E
R A
T B
E N
D A
B E
N D
A Geser pattern 1 kali
Tabel 2.10. Pergeseran Pattern SMOA 5
T I T
I K
B E
R A
T B
E N
D A
B E
N D
A Geser pattern 1 kali
Tabel 2.11. Pergeseran Pattern SMOA 6
T I T
I K
B E
R A
T B
E N
D A
B E
N D
A Geser pattern 1 kali
Universitas Sumatera Utara
Tabel 2.12. Pergeseran Pattern SMOA 7
T I T
I K
B E
R A
T B
E N
D A
B E
N D
A Geser pattern 3 kali
Tabel 2.13. Pergeseran Pattern SMOA 8
T I T
I K
B E
R A
T B
E N
D A
B E
N D
A Geser pattern 1 kali
Tabel 2.14. Pergeseran Pattern SMOA 9
T I T
I K
B E
R A
T B
E N
D A
B E
N D
A Geser pattern 1 kali
Tabel 2.15. Pergeseran Pattern SMOA 10
T I T
I K
B E
R A
T B
E N
D A
B E
N D
A Geser pattern 1 kali
Tabel 2.16. Pergeseran Pattern SMOA 11
T I T
I K
B E
R A
T B
E N
D A
B E
N D
A Pattern sudah cocok dan teks sudah berada diujung, proses pencocokan selesai.
2.3 Definisi Android
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Android menyediakan platform terbuka bagi para
pengembang untuk menciptakan aplikasi mereka Safaat,2011.
Universitas Sumatera Utara
Android dipuji sebagai “platform mobile pertama yang lengkap, terbuka dan bebas”. 1.
Lengkap Complete Platform : para desainer dapat melakukan pendekatan yang komprehensif ketika mereka sedang mengembangkan platform Android. Android
merupakan sistem operasi yang aman dan banyak menyediakan tools dalam membangun software dan memungkinkan peluang pengembangan aplikasi.
2. Terbuka Open Source Platform : Platform Android disediakan melalui lisensi open
source. Pengembang dapat dengan bebas untuk mengembangkan aplikasi. Android sendiri menggunakan Linux Kernel 2.6.
3. Bebas Free Platform : Android adalah platformaplikasi yang bebas untuk develope.
Tidak ada lisensi atau biaya royalti untuk dikembangkan pada platform Android. Tidak ada biaya keanggotaan diperlukan. Tidak ada biaya pengujian. Tidak ada
kontrak yang diperlukan. Aplikasi untuk Android dapat didistribusikan dan diperdagangkan dalam bentuk apapun.
2.4 Kompleksitas Algoritma
Algoritma ialah urutan-urutan langkah logis dalam menyelesaikan suatu masalah secara sistematis. Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus efisien.
Algoritma yang bagus adalah algoritma yang mangkus efficient. Kemangkusan algoritma diukur dari waktu time, eksekusi algoritma dan kebutuhan ruang space memori.
Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan n,
yang menyatakan jumlah data yang diproses. Kemangkusan algoritma dapat digunakan untuk menilai algoritma yang bagus dari sejumlah algoritma penyelesaian masalah. Model abstrak
pengukuran wakturuang harus independen dari pertimbangan mesin dan compiler apapun. Besaran yang dipakai untuk menerangkan model abstrak pengukuran wakturuang ini adalah
kompleksitas algoritma. Ada dua macam kompleksitas algoritma, yaitu: kompleksitas waktu dan kompleksitas
ruang. Kompleksitas waktu, Tn, diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukann. Kompleksitas ruang, Sn
diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.
Universitas Sumatera Utara
Kompleksitas algoritma diukur berdasarkan kinerja dengan menghitung waktu eksekusi suatu algoritma. Waktu eksekusi algoritma dapat diklasifisikan menjadi tiga
kelompok besar, yaitu best-case kasus terbaik, average-case kasus rerata dan worst-case kasus terjelek. Pada pemograman yang dimaksud dengan kasus terbaik, kasus rerata dan
kasus terjelek dalam suatu algoritma adalah besar kecilnya atau hanya sedikitnya sumber- sumber yang digunakan oleh suatu algoritma. Makin sedikit makin baik, makin banyak makin
jelek. Biasanya sumber-sumber yang paling dipertimbangkan tidak hanya waktu eksekusi tetapi bisa juga besar memori, catu-daya dan sumber-sumber lain subandijo, 2011.
2.6 Notasi Big O