bernilai 4. Bandingkanlah maka hasil maksimum yang diperoleh untuk mengambil pergeseran yaitu 4 kali pergeseran.
Langkah 2 : Index 0
1 2
3 4
5 6
7 8
9 bmBc B
A C
B A
B A
B A
B
Index 1
2 3
bmGs A
B A
B Keterangan : Terlihat semua karakter cocok. Jika semua karakter telah cocok maka
harus shift dengan nilai bmGs [0]. Nilai bmGs [0] pada Tabel 2.3 adalah bernilai 2.
Maka lakukan pergeseran sebanyak 2 kali tanpa membandingkan nilai bmGs dan bmBc.
Langkah 3 : Index 0
1 2
3 4
5 6
7 8
9 bmBc B
A C
B A
B A
B A
B
Index 1
2 3
bmGs A
B A
B Keterangan : Terlihat semua karakter telah cocok dan window berada pada akhir teks
maka tidak ada lagi pergeseran.
2.3 Definisi 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. Algoritma yang mangkus adalah algoritma yang meminimumkan kebutuhan
waktu dan ruang. Aplikasi sebuah algoritma dapat dikatakan baik atau efisien adalah memerlukan kriteria formal yang digunakan untuk menilai algoritma tersebut yaitu
kemangkusan algoritma dengan kompleksitasnya. Besaran yang dipakai untuk menerangkan model penilaian waktu atau ruang algoritma adalah dengan menggunakan
kompleksitas algoritma. 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 Cormen et 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.4
Definisi Android
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencangkup sistem operasi, middleware dan aplikasi. Android menyediakan
platform yang terbuka bagi para pengembang untuk menciptakan aplikasi-aplikasi baru Safaat, N. 2015.
Awalnya, 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 Buulolo, E. 2013.
2.5 Penelitian yang relevan