• Tidak ada hasil yang ditemukan

Running Time

LANDASAN TEOR

2.1.1 Algoritma String Matching (pencocokan string)

2.1.1.2 Algoritma Skip Search

AlgoritmaSkip Searchmerupakan salah satu algoritma pencocokanstring, yang dipublikasikan secara luas oleh Charas, Cet al., (1998). Cara kerja algoritmaSkip

Search seperti algoritma Knuth Morris Pratt dengan mendeteksi jendela dari

karakter yang ada dari kiri ke kanan dan menyimpannya ke dalam sebuah wadah untuk menentukan titik awal dari jendela karakter tersebut (Charas et al., Naser

et al., 2012, 1998). V 0 1 2 3 4 5 6 7 8 9 10 Teks R I C K Y W I J A Y A Pola W I J A VI 0 1 2 3 4 5 6 7 8 9 10 Teks R I C K Y W I J A Y A Pola W I J A

Jadi, terdapat suatu pola yang ingin kita cari dan kita inisialkan x dan memiliki panjang yang kita inisialkan dengan m. Teks yang ingin kita cari kita inisialkan y dan memiliki panjang yang kita inisialkan dengan n. Untuk setiap simbol alfabet, sebuah wadah akan menyimpan semua posisi simbol dari x. Saat sebuah simbol berulang sebanyak k di dalam teks, maka akan ada sebanyak k

posisi yang sesuai dalam wadah simbol. Saat pola lebih pendek daripada alfabet yang ada dalam teks, maka akan ada banyak tempat kosong dalam wadah.

Dalam perulangan utama dari fase pencarian terdapat proses memeriksa setiap teks simbol ke m, Yj (yang nantinya iterasi utama n/m). Untuk Yj, menggunakan setiap posisi yang ada di wadahz[Yj] untuk mendapatkan titik awal yang memungkinkan (p) darixdi dalamy. Lalu dilakukan proses perbandinganx

denganydari posisip, simbol dengan simbol, sampai terjadi ketidakcocokan atau seluruhnya cocok (Charraset al., 1998). AlgoritmaSkip Searchmemiliki efisiensi dalam mencari huruf kecil dalam pola yang panjang (Naseret al., 2012).

2.1.1.2.1 Fase Preprocessing Algoritma Skip Search

Tahappreprocessing AlgoritmaSkip Searchterdiri dari tahap komputasi wadah untuk menampung seluruh karakter alfabet untuk c∈ ∑

z[c] = { i; 0im-1 and x[i] = c}.

Ruang dan waktu kompleksitas dari fasepreprocessingadalah O (m+ ) (Charras & Lecroq, 2004). Berikut diberikan contoh pada Tabel 2.7 untuk menunjukkan proses pencarian AlgoritmaSkip Searchdengan polaWIJAyang akan dicari pada teksRICKYWIJAYA.

Tabel 2.7Tabel Teks dan Pola yang akan Dijadikan Contoh Kasus

Maka hasil dari fasepreprocessingAlgoritmaSkip Searchdapat dilihat diTabel 2.8

0 1 2 3 4 5 6 7 8 9 10

Teks R I C K Y W I J A Y A

Tabel 2.8Tabel Hasilpreprocessingdari AlgoritmaSkip Search

2.1.1.2.2 Fase Pencarian Algoritma Skip Search

Dalam Fase Pencarian, algoritma Skip Search menggunakan aturan The Two

Window Ruleuntuk menentukan batas sampai mana pola boleh digeser. Panjang

batasThe Two Window Rulemenggunakan rumus 2m-1 dimanamadalah panjang dari pola (Bhandari & Kumar, 2013). Lalu panjang dari hasil aturan The Two

Window Rule akan bernilai ganjil dan karakter yang terdapat di tengah panjang

teks tersebutlah yang akan dilakukan proses pencocokan.

Gambar 2.1Penentuan Panjangwindowdan Karakter Tengah yang akan Digunakan dalam Proses Pencocokan 1

DariGambar 2.1didapatkan batas panjang untuk pola digeser adalah dari urutan 0 (huruf R) sampai urutan 6 (huruf I) dan karakter yang akan digunakan dalam proses pencocokan adalah karakter K. Namun, berdasarkan tabel 8 karakter K

c z[c] A (3) CI (1) J (2) KRW (0) Y

bernilai nol (tidak ada dalam pola) maka percobaan akan dilanjutkan dengan posisi jendela digeser sebanyak 4 posisi sesuai dengan panjang pola (m).

Gambar 2.2Penentuan Panjangwindowdan Karakter Tengah yang akan Digunakan dalam Proses Pencocokan 2

Dari Gambar 2.2 didapatkan batas panjang untuk pola digeser adalah dari urutan 4 (huruf W) sampai urutan 10 (huruf A) dan karakter yang akan digunakan dalam proses pencocokan adalah karakter J. Berdasarkan tabel 8 karakter J terdapat di posisi 2 dalam pola, oleh karena itu pola akan langsung diposisikan menurut posisi J, dan dilakukan proses pencocokan dari urutan 5, 6, 7 dan 8. Dalam pencocokan 2 ini, pola yang berisi karakter W, I, J, dan A mengalami kecocokan maka teks akan ditampilkan. Dan fase pencarian berhenti sampai disini. Ini dikarenakan saat pola digeser sebanyak 4 posisi, panjang teks untuk dibandingkan hanya bersisa 3 dimana panjang pola lebih banyak daripada panjang teks yang akan dicocokan.

2.2. Kompleksitas Algoritma

Kebenaran suatu algoritma harus diuji dengan jumlah masukan tertentu untuk melihat kinerja algoritma berupa waktu yang diperlukan untuk menjalankan algoritmanya dan ruang memori yang diperlukan untuk struktur datanya. Algoritma yang bagus adalah algoritma yang mangkus (efisien). Kemangkusan algoritma diukur dari jumlah waktu dan ruang memori yang dibutuhkan untuk menjalankan algoritma tersebut.

Ada dua macam kompleksitas algoritma, yaitu kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu dari algoritma adalah mengukur jumlah perhitungan (komputasi) yang dikerjakan oleh komputer ketika menyelesaikan

suatu masalah dengan menggunakan algoritma. Ukuran yang dimaksud mengacu ke jumlah langkah-langkah perhitungan dan waktu tempuh pemrosesan. Kompleksitas waktu merupakan hal penting untuk mengukur efisiensi suatu algoritma.

Kompleksitas waktu dari suatu algoritma yang terukur sebagai suatu fungsi ukuran masalah. Kompleksitas waktu dari algoritma berisi ekspresi bilangan dan jumlah langkah yang dibutuhkan sebagai fungsi dari ukuran permasalahan. Kompleksitas ruang berkaitan dengan sistem memori yang dibutuhkan dalam eksekusi program.

Untuk mengukur kebutuhan waktu sebuah algoritma yaitu dengan mengeksekusi langsung algoritma tersebut pada sebuah komputer, lalu dihitung berapa lama durasi waktu yang dibutuhkan untuk menyelesaikan sebuah persoalan dengan n yang berbeda-beda. Kemudian dibandingkan hasil komputasi algoritma tersebut dengan notasi kompleksitas waktunya untuk mengetahui efisiensi algoritmanya (Nugraha, D.W. 2012).

Kompleksitas algoritma diukur berdasarkan kinerjanya dengan menghitung waktu eksekusi suatu algoritma. Menurut Cormenet al. (2009) waktu eksekusi algoritma dapat diklasifikasikan menjadi tiga kelompok besar, yaitu

best-case (kasus terbaik), average-case (kasus rata-rata) dan worst-case (kasus

terjelek).

Pada pemrograman yang dimaksud dengan kasus terbaik, kasus terjelek dan kasus rata-rata suatu algoritma adalah besar kecilnya atau banyak sedikitnya sumber-sumber yang digunakan oleh suatu algoritma. Makin sedikit makin baik, makin banyak makin jelek (Subandijo. 2011).

2.3. Kamus

Menurut Kamus Besar Bahasa Indonesia, pengertian kamus adalah buku acuan yang memuat kata dan ungkapan yang biasanya disusun menurut abjad berikut keterangan maknanya, pemakaiannya dan terjemahannya. Kamus juga dapat digunakan sebagai buku rujukan yang menerangkan makna kata – kata yang berfungsi untuk membantu seseorang mengenal perkataan baru.

2.4. Android

Android adalah sistem operasi berbasis Linux yang dirancang untuk perangkat layar bergerak seperti smartphone atau komputer tablet. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak.

Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah

Open Handset alliance, konsorsium dari 34 perusahaan peranti keras, peranti

lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android, 5 November 2007, Android bersamaOpen Handset alliancemenyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Andorid di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler. Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar–benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open

Handset Distribution(OHD).

Dokumen terkait