Definisi Kamus Definisi Android Kompleksitas Algoritma

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