pengembang untuk menciptakan aplikasi mereka sendiri sehingga dapat digunakan oleh bermacam peranti penggerak. Pada saat perilisan perdana Android pada tanggal 5
November 2007, Android bersama Open Handset Alliance lalu menyatakan mendukung pengembangan standar terbuka Programming pada perangkat seluler
Sarumaha, 2013. Pada tahun 2007, Google dan beberapa perusahaan yang tergabung dalam
Open Handset Alliance Intel, Nvidia, Texas Instrument mengembangkan sistem operasi Android dan resmi menjadi open source. Google menginginkan agar Android
bersifat terbuka dan gratis, oleh karena itu hampir setiap kode program Android diluncurkan berdasarkan lisensi open-source Apache yang berarti bahwa semua orang
yang ingin menggunakan Android dapat men-download penuh source code-nya. Di samping itu produsen perangkat keras juga dapat menambahkan extension-nya sendiri
ke dalam Android sesuai kebutuhan produk mereka. Pada tahun 2008, Android SDK 1.0 diluncurkan dan phone G1 yang diproduksi oleh HTC menggunakan sistem
operasi tersebut. Pada tahun 2010, Android menjadi sistem operasi Blackberry dan menjadi sistem operasi terbaik pada platform smart-phone. Versi 2.2 Froyo
diluncurkan dan lebih dari 60 gadget menggunakannya Muttaqin, 2014.
2.4. Pengertian Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis Munir, 1999.
Algoritma merupakan salah satu cabang ilmu komputer yang membahas prosedur penyelesaian suatu permasalahan. Dengan algoritma yang baik maka
komputer bisa menyelesaikan perhitungan dengan cepat dan benar. Sebaliknya jika algoritma kurang baik maka penyelesaian lambat dan bahkan tidak didapat solusi yang
diharapkan. Suatu algoritma akan memerlukan masukan input tertentu untuk memulainya, dan akan menghasilkan keluaran output tertentu pada akhirnya. Hal-hal
yang perlu diperhatikan dalam algoritma adalah mencari langkah-langkah yang paling sesuai untuk penyelesaian suatu masalah, karena setiap algoritma memiliki
karakteristik tertentu yang memiliki kelebihan dan kekurangan. Beberapa hal yang harus dipahami dalam mencari algoritma antara lain Nugraha, 2011:
1. Masalah seperti apa yang hendak diselesaikan.
2. Gagasan apa yang ada pada algoritma tersebut.
Universitas Sumatera Utara
3. Berapa lama yang diperlukan untuk menyelesaikan masalah.
4. Berapa jumlah data yang dapat ditangani oleh suatu algoritma.
2.4.1. Algoritma String Matching pencocokan string
String adalah rangkaian karakter atas
∑ alfabet yang terbatas. Misalnya, ATCTAGAGA adalah string
atas ∑ = {A, C, G, T} Navarro Raffinot, 2002. Pengertian string menurut Dictionary of Algorithms and Data Structures,
National Institute of Standards and Technology NIST adalah susunan dari karakter-
karakterangka,alfabet atau karakter yang lain dan biasanya direpresentasikan sebagai struktur dan array. String dapat berupa kata, frase, atau kalimat. Pencocokan string
string matching merupakan bagian penting dari sebuah proses pencarian string
string searching dalam sebuah dokumen. Hasil dari sebuah pencarian string dalam dokumen tergantung dari teknik dan cara pencocokan string yang digunakan
Buulolo, 2013.
2.4.2. Algoritma Apostolico-Crochemore
Algoritma Apostolico-Crochemore menggunakan tabel fungsi pinggiran kmpNext yang berasal dari Algoritma Knuth-Morris-Pratt untuk menghitung fungsi pinggiran
yang mengindikasikan pergeseran x terbesar yang mungkin terjadi pada pattern x sebelum melakukan proses pencarian pada teks y. Diketahui l = 0 jika x adalah
karakter tunggal yang dipangkatkan x = cm dengan c di dalam dan l adalah posisi
karakter pertama dari x yang berbeda dari x[0] x = a
l
bu untuk a, b di dalam
, u di dalam
, dan a ≠b. Setiap pembandingan dilakukan dengan posisi yang berpola
dengan urutan sebagai berikut : l , l +1, ..., m-2, m-1, 0, 1, ..., l -1. Selama fase pencarian, kita mempertimbangkan i, j, k di mana:
i, j dan k adalah indeks l adalah posisi karakter pertama dari x yang berbeda
jendela karakter diposisikan pada teks y[j .. j+m-1]; 0 k l dan x[0 .. k-1] = y[j .. j+k-1];
Universitas Sumatera Utara
l i m dan x[ l ..i-1] = y[j+ l .. i+j-1]. lihat gambar 2.1. Inisialisasi awal dari i, j, k adalah l , 0, 0.
Gambar 2.1.
Pembandingan dengan
algoritma Apostolico-Crochemore
memperhatikan i, j, k.
Komputasi perhitungan
untuk menentukan
i, j,
k berikutnya
mempertimbangkan tiga kasus yang bergantung pada nilai i, yaitu sebagai berikut: 1.
i = l Jika x[i] = y[i+j] maka i, j, k berikutnya adalah i+1, j, k.
Jika x[i] y[i+j] maka i, j, k berikutnya adalah l , j+1, max{0, k-1}.
2. l i m
Jika x[i] = y[i+j] maka i, j, k berikutnya adalah i+1, j, k. Jika x[i]
≠ y[i+j] maka ada dua kasus yang muncul yang bergantung pada nilai kmpNext[i] :
kmpNext[i] l maka i, j, k berikutnya l , i+j-kmpNext[i], max{0, kmpNext[i]}.
kmpNext[i] l maka i, j, k berikutnya kmpNext[i], i+j-kmpNext[i], kmpNext[i] l .
3. i = m
Jika k l dan x[k] = y[j+k] maka i, j, k berikutnya adalah i, j, k+1. Sebaliknya salah satu dari k l dan x
[k] ≠y[j+k], atau k = l. Jika k = l kemunculan x diberitahukan. Pada kedua kasus tersebut perhitungan i, j, k berikutnya sama
seperti perhitungan pada kasus l i m Charras dan Lecroq, 1997.
Berikut ini adalah contoh cara kerja algoritma Apostolico-Crochemore. Teks y
: G C A T C G C A G A G A G T A T A C A G Pattern
x : G C A G A G A G
Universitas Sumatera Utara
1.
Fase Proses Awal Tabel 2.1.
Fungsi pinggiran kmpNext i
1 2
3 4
5 6
7 8
x[i] G
C A G A G A G kmpNext[i]
-1 0 -1 1 -1 1 -1 1
l = 1 2.
Fase Pencarian String Tahap 1
Perbandingan perkarakter dimulai dari indeks ke-1.
G C A T C G C A G A G A G T A T A C A G
1 2
3 G C A G A G A G
Pattern x digeser sebanyak : 3-kmpNext[3] = 3- -1 = 4 karakter
Tahap 2 G C A T
C G C A G A G A G T A T A C A G
1 G C A G A G A G
Pattern x digeser sebanyak : 1-kmpNext[1] = 1-0 = 1 karakter
Tahap 3 G C A T
C G C A G A G A G T A T A C A G
8 1
2 3
4 5
6 7
G C A G A G A G
Pada tahap 3, pattern x sudah ditemukan di dalam teks y. Jumlah perbandingan yang dilakukan untuk mencari pattern x dilakukan sebanyak 12 kali.
Jika pencarian string terus dilakukan sampai teks habis maka pattern x digeser sebanyak : 8-kmpNext[8] = 8-1 = 7 karakter.
Tahap 4 G C A T
C G C A G A G A G T A T A C A G
1 G C A G A G A G
Pada tahap 4, seluruh teks sudah habis dicari. Maka total perbandingan yang dilakukan seluruhnya sampai teks habis adalah 13 kali Charras dan Lecroq, 1997.
Universitas Sumatera Utara
2.5. Penelitian Yang Relevan