BAB 2 LANDASAN TEORI 2.1 Android - Implementasi Algoritma Pencocokan String Boyer – Moore Dalam Pembuatan Contact Manager Pada Platform Android

BAB 2 LANDASAN TEORI

  2.1 Android

  Android adalah suatu sistem operasi yang didesain sebagai platform open source untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware, dan aplikasi . Android menyediakan platform yang terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri. Android menyediakan semua tools dan

  

framework untuk mengembangkan aplikasi dengan mudah dan cepat. Dengan adanya

  Android SDK ( Software Developement Kit ) pengembang aplikasi dapat memulai pembuatan aplikasi pada platform Android menggunakan bahasa pemrograman Java (Eko, 2012).

  2.2 Sejarah Android

  Android Inc. didirikan oleh Andy Rubin, Rich Milner, Nick Sears dan Chris White pada tahun 2003 di Palo Alto, California, USA. Pada Agustus 2005 Google membeli Android Inc. Kemudian untuk mengembangkan Android dibentuklah Open Handset

  

Alliance konsorsium dari 34 perusahaan hardware, software dan telekomunikasi,

  termasuk Google, HTC, Intel, Motorola, Qualqomm, T-Mobile dan Nividia. Saat ini sudah banyak bermunculan vendor-vendor untuk smartphone yang memakai OS Android ,yaitu diantaranya : HTC, Motorola, Samsung, LG, HKC, Huawei, Archos,

  

Webstation Camangi, Dell, Nexus, SciPhone, WayteQ, Sony Ericsson, Acer, Philips,

  dan lainnya vendor yang memproduksi smartphone

  T-Mobile, Nexian, IMO, Asus

  Android. Keunikan dari nama sistem operasi. Android adalah dengan menggunakan nama makanan hidangan penutup (Desseert). Selain itu juga nama nama OS Android memiliki huruf awal berurutan sesuai abjad (Evalyna, 2012).

2.3 Versi-versi Android

  12 Januari 2010 Eclair API Level 7 Android 2.2 - 2.2.3

  31 Oktober 2013 Kitkat API Level 19

  24 Juli 2013 Jelly Bean API Level 18 Android 4.4

  13 November 2012 Jelly Bean API Level 17 Android 4.3

  9 Juli 2012 Jelly Bean API Level 16 Android 4.2

  19 Oktober 2011 Ice Cream Sandwich API Level 14 Android 4.0.3 - 4.0.4 16 Desember 2011 Ice Cream Sandwich API Level 15 Android 4.1

  18 Juli 2011 Honeycomb API Level 13 Android 4.0 - 4.0.2

  10 Mei 2011 Honeycomb API Level 12 Android 3.2

  22 Februari 2011 Honeycomb API Level 11 Android 3.1

  6 Desember 2010 Gingerbread API Level 9 Android 2.3.3 - 2.3.7 22 Februari 2011 Gingerbread API Level 10 Android 3.0

  20 Mei 2010 Froyo API Level 8 Android 2.3 - 2.3.2

Tabel 2.1. Versi-versi Android

  2.3.1 Android versi 1.1

Android versi 1.1 ini dilengkapi dengan pembaruan estetis pada aplikasi, jam, alarm,

voice search (pencarian suara), pengiriman dengan Gmail, dan pemberitahuan email.

  26 Oktober 2009 Eclair API Level 5 Android 2.0.1

  15 September 2009 Donut API Level 4 Android 2.0

  30 April 2009 Cupcake API Level 3 Android 1.6

  9 Februari 2009 API Level 2 Android 1.5

  23 September 2008 API Level l Android 1.1

  Android 1.0

  Versi Tanggal Rilis Nama Kode API

  Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem.

  video

  Google kembali merilis telepon seluler dengan mengunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, meng-upload

  2.3.2 Android versi 1.5 Cupcake

  3 Desember 2009 Eclair API Level 6 Android 2.1

  2.3.3 Android versi 1.6 Donut

Donut dirilis dengan menampilkan proses pencarian yang lebih baik dibanding

  sebelumnya, penggunaan baterai indikator dan kontrol applet VPN.Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan, CDMA/EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine, kemampuan dial kontak,teknologi text to change (tidak tersedia pada semua ponsel, pengadaan resolusi VWGA).

  speech

  2.3.4 Android versi 2.0/2.0.1/2.1 Eclair

  Perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1.

  2.3.5 Android versi 2.2 Froyo

  Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market.

  2.3.6 Android versi 2.3 Gingerbread

  Perubahan-perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.

  2.3.7 Android versi 3.0 Honeycomb

  Android Honeycomb dirancang khusus untuk tablet. Android versi ini mendukung ukuran layar yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untuk grafis. Tablet pertama yang dibuat dengan menjalankan Honeycomb adalah Motorola Xoom. Perangkat tablet dengan

  Android 3.0 akan segera hadir di Indonesia. Perangkat tersebut bernama Eee

  platform Pad Transformer produksi dari Asus.

  2.3.8 Android versi 4.0 Ice Cream Sandwich

Ice Cream Sandwich membawa fitur Honeycomb untuk smartphone dan

  menambahkan fitur baru termasuk membuka kunci dengan pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, terpadu kontak jaringan sosial, perangkat tambahan fotografi, mencari email secara offline, dan berbagi informasi dengan menggunakan NFC (Near Field Communication).

  2.3.9 Android versi 4.1 Jelly Bean

  Kelebihan dari android Jelly Bean adalah Akses lebih cepat.Dapat mematikan pemberitahuan pada aplikasi tertentu Shortcut serta widget dapat disusun ulang atau diubah ukurannya sesuai keinginan. Aplikasi pada kamera ditambah.Dapat menambahkan widget aplikasi tanpa harus root terlebih dulu.

  2.3.10 Android versi 4.4 Kitkat

  Pada versi Kitkat ini ada beberapa pembaharuan yaitu : 1.

  Pembaruan antarmuka dengan bar status dan navigasi transparan pada layar depan.

2. Optimasi kinerja pada perangkat dengan spesifikasi yang lebih rendah 3.

  Kerangka kerja pencetakan 4. NFC Host Card Emulation sebagai emulator

  6. Perluasan fungsionalitas bagi layanan pendengar notifikasi 7.

  2.4 Eclipse Eclipse

  2.5 Struktur Data dan Algoritma

  4.0. Produk Eclipse ini diluncurkan oleh IBM pada tanggal 5 November 2001. IBM menginvestasikan US$ 40 juta untuk pengembangannya. Sejak 5 November 2001 (Heru, 2013).

  

Business Machines ) untuk menggantikan perangkat lunak pengembangan IBM Visual

Age for Java

  ). Berikut ini adalah sifat dari Eclipse: Multi-platform, Mulit-language dan Multi-role.Sejarah Eclipse awalnya dikembangkan oleh IBM (International

  independent

  adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform

  17. Dukunga

  API umum untuk mengembangkan dan mengelola klien kemampuan untuk menentukan aplikasi SMS standar.

  Perekam aktivitas layar yang terintegrasi 14. Inframerah 15. Peningkatan aksesibilitas API 16. Mesin virtual eksperimental baru, ART.

  12. Penyeimbang audio, pemantauan audio, dan peningkatan suara audio 13.

  Peningkatan tampilan mode layar penuh, tombol perangkat lunak dan status bar bisa diakses dari tepi dengan cara menggesek

  10. Sensor batching, Step Detector, dan Counter API 11.

  Kerangka kerja akses penyimpanan untuk mengambil konten dan dokumen dari sumber lain

  8. Kerangka kerja baru untuk transisi UI 9.

  Struktur data adalah pengaturan data dalam memori komputer atau terkadang di dalam disk dengan tujuan agar data dapat diakses secara efisien.yang termasuk dalam struktur data antara lain yaitu senarai berantai,antrian,tumpukan dan pohon biner. untuk memanipulasi data.Sebagai contoh,algoritma diperlukan untuk memasukan data ke dalam suatu struktur data atau untuk mencari suatu data yang tersimpan dalam stuktur data. Struktur data array atau biasa disebut larik adalah stutur data yang berguna untuk menyimpan sejumlah data yang bertipe sama.Namun berbeda dengan himpunan,array bisa berisi nilai yang sama sementara himpunan tidak.Array Satu dimensi tidak lain adalah kumpulan elemen-elemenidentik yang tersusun dalam satu baris. Elemen-elemen tersebut memiliki tipe data yang sama, tetapi isi dari elemen tersebut boleh berbeda.Array dua dimensi sering digambarkan sebagai sebuah matriks, merupakan perluasan dari array satu dimensi.Jika array satu dimensi hanya terdiri dari sebuah baris dan beberapa kolom elemen, maka array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang bertipe sama.(Abdul, 2011)

2.6 Algoritma Boyer-Moore

  Algoritma Boyer-Moore adalah salah satu algoritma pencarian string, dipublikasikan oleh Robert S. Boyer, dan J. Strother Moore pada tahun 1977. Algoritma ini dianggap sebagai algoritma yang paling efisien pada aplikasi umum.Tidak seperti algoritma pencarian string yang ditemukan sebelumnya, algoritma Boyer-Moore mulai mencocokkan karakter dari sebelah kanan pattern (pola yang di cari). Ide dibalik algoritma ini adalah bahwa dengan memulai pencocokkan karakter dari kanan, dan bukan dari kiri, maka akan lebih banyak informasi yang didapat. (Helmi, 2013)

2.6.1 Kelebihan Algoritma Boyer-Moore :

  Tidak seperti pencarian string lainnya Brute force, Knuth-Morris-Pratt yang mempunyai cara kerja membandingkan satu

  • – persatu karakter dari kiri ke kanan. Boyer-Moore membandingkan karakter dari kanan ke kiri dan memiliki loncatan karakter yang besar sehingga mempercepat pencarian string karena dengan hanya memeriksa sedikit karakter, dapat langsung diketahui bahwa string yang dicari tidak ditemukan dan dapat digeser ke posisi berikutnya.

2.6.2 Kelemahan Algoritma Boyer-Moore :

  Algoritma Boyer-Moore mencocokan Pattern dari kanan ke kiri oleh sebab itu kelemahan dari algoritma ini adalah ketika semua karakter memiliki kesamaan atau cocok dan hanya karakter terakhir atau karakter paling kiri yang berbeda maka pencarian ini akan memerlukan waktu yang sedikit lama (Darmawan, 2008).

  Tabel 2.2.Contoh algoritma Boyer-Moore S U N D A R

  Teks

  I Pattern S U N T O R O

  Pada contoh diatas, dengan melakukan pencocokan dari posisi paling akhir/kanan dapat

  pattern

  dilihat bahwa karakter “O” pada pattern “SUNTORO” tidak cocok dengan karakter “I” pada teks “SUNDARI” , dan karakter “I” tidak pernah ada dalam

  pattern

  “SUNTORO” yang dicari sehingga pattern “SUNTORO” dapat digeser melewati teks “SUNDARI” sehingga posisinya menjadi:

  Tabel 2.3.Contoh pergeseran algoritma Boyer-Moore S U N D A R

  I Teks S U N T O R O

  Pattern

  Dalam contoh terlihat bahwa algoritma Boyer-Moore memiliki pergeseran karakter yang besar sehingga mempercepat pencarian pattern karena dengan hanya memeriksa sedikit karakter, dapat langsung diketahui bahwa pattern yang dicari tidak ditemukan dan dapat digeser ke posisi berikutnya (Guidio, 2014)

  Algoritma Boyer-Moore menggunakan dua buah tabel untuk mengolah informasi saat terjadi kegagalan pencocokan pattern.Tabel pertama disebut bad juga sering disebut occurrence heuristic (OH). Tabel kedua disebut

  character shitf

  dengan istilah good suffix shift juga disebut match heuristic (MH) (Guidio, 2014) Secara sistematis, langkah-langkah yang dilakukan algoritma Boyer-Moore pada saat mencocokkan pattern adalah:

  Algoritma boyer-moore mulai mencocokkan pattern pada karakter paling

  • pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi

  Dari kanan ke kiri, algoritma ini akan mencocokkan karakter per karakter

  berikut dipenuhi: a.

  Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch).

  b.

  Semua karakter di pattern cocok, kemudian algoritma akan memberitahukan penemuan di posisi ini. Algoritma kemudian menggeser pattern dengan mengambil nilai terbesar dari

  • penggeseran good-suffix dan penggeseran bad-character, lalu mengulangi langkah 2 sampai pattern berada di ujung teks (Ramadhansyah,2013).

2.6.3 Pencarian Dengan Algoritma Boyer-Moore 1.

  Buat tabel pergeseran pattern yang dicari (P) dengan pendekatan Match (MH) dan Occurence Heuristic (OH), untuk menentukan jumlah

  Heuristic

  pergeseran yang akan dilakukan jika mendapat karakter tidak cocok pada proses pencocokan dengan teks (T).

  2. Jika dalam proses pembandingan terjadi ketidakcocokan antara pasangan karakter pada pattern dan karakter teks, pergeseran dilakukan dengan memilih salah satu nilai pergeseran dari dua tabel, dan memiliki nilai pergeseran paling besar dari tabel Match Heuristic dan Occurence Heuristic .

  3. Dua kemungkinan penyelesaian dalam melakukan pergeseran pattern, Jika karakter yang tidak cocok, tidak ada pada pattern maka pegeseran adalah sebanyak jumlah karakter pada pattern. dan jika karakter yang tidak cocok, ada pada pattern, maka banyaknya pergeseran bergantung dari nilai pada tabel

  Match Heuristic dan Occurence Heuristic.

4. Jika karakter pada teks yang sedang dibandingkan cocok dengan karakter pada

  , maka posisi karakter pada pattern dan teks diturunkan sebanyak 1

  pattern

  posisi, kemudian lanjutkan dengan pencocokan pada posisi tersebut dan seterusnya. Jika kemudian terjadi ketidakcocokan karakter pattern dan teks, maka pilih nilai pergeseran terbesar dari tabel match heuristic dan nilai tabel (Ramadhansyah,2013).

  occurence heuristic Cara menghitung tabel occurence heuristic : Contoh pattern : SUNTORO Panjang karakter : 7

  Tabel 2.4.Occurence Heuristic

  2

  OH = (7 - 1 - 5 = 1)

  maka nilai karakter “R” = 1 8. Karakter ketujuh adalah “O” dengan index = 6

  OH = (7 - 1 - 6 = 0)

  maka nilai karakter “O” = 0

Tabel 2.5. Hasil pencarian Occurence Heuristic

  Index

  1

  3

  = (7 - 1 - 4 = 2) maka nilai karakter “O” = 2

  4

  5

  6 Pattern S U N T O R O Occurence Heuristic

  6

  5

  4

  3

  2

  7. Karakter keenam adalah “R” dengan index = 5

  OH

  Index

  2. Karakter pertama adalah “S” dengan Index = 0

  1

  2

  3

  4

  5

  6 Pattern S U N T O R O Occurence Heuristic

  Langkah-langkah pemberian nilainya adalah sebagai berikut : 1.

  Lakukan perhitungan, OH = ( length -1 –index) length = panjang karakter =7

  OH

  maka nilai karakter “T” = 3 6. Karakter kelima adalah “O” dengan index = 4

  = (7 - 1 - 0 = 6) maka nilai karakter “S” = 6

  3. Karakter kedua adalah “U” dengan index = 1

  OH = (7 - 1 - 1 = 5) maka nilai kar

  akter “U” = 5 4. Karakter ketiga adalah “N” dengan index = 2

  OH

  = (7 - 1 - 2 = 4) maka nilai karakter “N” = 4

  5. Karakter keempat adalah “T” dengan index = 3

  OH = (7 - 1 - 3 = 3)

  1 Jika ada karakter yang berulang ambil nilai OH terkecil,dalam kasus ini adalah karakter “O” yang bernilai 2 dan 0.maka jadikan karakter “O” bernilai

  0. Tabel 2.6.Hasil akhir pencarian Occurence Heuristic

  Index

  1

  2

  3

  4

  5

  6 Pattern S U N T O R O Occurence Heuristic

  6

  5

  4

  3

  1 Cara menghitung tabel match heuristic :

  contoh pattern : SUNTORO Panjang karakter : 7 karakter

  Tabel 2.7.Match Heuristic

  Index

  1

  2

  3

  4

  5

  6 Pattern S U N T O R O Match Heuristic

  Langkah-langkah pemberian nilainya adalah sebagai berikut : 1.

  Berikan nilai 1 ( nilai default MH ) pada index terbesar, dalam kasus ini index terbesar adalah “O”.

  2. Bandingkan karakter kedua,jika karakter “O” sudah ditemukan/sudah cocok, tetapi karakter sebelum “O” bukan “R”,maka check apakah karakter yang sudah cocok pada teks ada pada pattern berikutnya, Jika ada sejajarkan karakter tersebut dengan karakter yang sudah cocok ,dan beri nilai pergeseranya ke tabel MH, pada kasus ini “O”sudah cocok.

  S U N T O O

  Teks L Pattern S U N T O R O

  S U N T O L

  Teks O

  S U N T R O

  Pattern

  1

2 O 3.

  Lanjutkan langkah ke dua untuk karakter berikutnya sampai akhir pattern, ketidakcocokan pattern maka bandingkan karakter yang sudah cocok dengan karakter yang belum dibandingkan pada pattern, jika ada maka sejajarkan karakter tersebut,jika tidak maka pergeseranya sejauh panjang karakter, dan beri nilai pergeserannya ke tabel MH.

  Tabel 2.8.Hasil akhir pencarian Match Heuristic

  Index

  1

  2

  3

  4

  5

  6 Pattern S U N T O R O Match Heuristic

  7

  7

  7

  7

  7

  2

  1 Contoh pencarian dengan algoritma Boyer Moore :

   Jika karakter yang dibanding tidak ada pada pattern maka nilai pergeserannya sepanjang jumlah pattern.  Untuk pergeseran bandingkan nilai OH dan MH ambil nilai terbesar sebagai keputusan pergeseran.  Jika semua karakter telah cocok, artinya pattern telah ditemukan di dalam teks.

Tabel 2.9. Nilai Occurence Heuristic dan Match Heuristic

  Index

  1

  2

  3

  4

  5

  6 Pattern S U N T O R O Occurence Heuristic

  6

  5

  4

  3

  1 Match Heuristic

  7

  7

  7

  7

  7

  2

  1 Contoh implementasi pencarian pada teks proses ke-1

  Teks S U N D A R I B U K A N S U N T O R O Pattern S U N T O R O Index 0 1 2 3 4 5 6

  OH = I (Teks) =7 MH = index [6] (Pattern) = 1 7 > 1 dengan begitu pattern digeser 7 karakter

  Contoh implementasi pencarian pada teks proses ke-2 Teks S U N D A R I B U K A N S U N T O R O Pattern S U N T O R O Index 0 1 2 3 4 5 6

  OH = spasi = 7 MH = index [6] (Pattern) = 1 7 > 1 dengan begitu pattern digeser 7 karakter

  Contoh implementasi pencarian pada teks proses ke-3 Teks S U N D A R I B U K A N S U N T O R O Pattern

  S U N T O R O Index

  0 1 2 3 4 5 6 semua karakter telah cocok, artinya pattern telah ditemukan di dalam teks.

2.7 Relevansi

  Adapun penelitian yang relevan dengan penelitian yang diangkat penulis adalah sebagai berikut:

  1. Dalam Jurnal Techne Jurnal Ilmiah Elektroteknika – Perbandingan Algoritma

  String Searching Brute Force,Knuth Morris Pratt,Boyer Moore, dan Karp Rabin

  pada teks Alkitab bahasa Indonesia. Hasilnya untuk proses pencarian pola dalam teks Alkitab (lebih dari 26 alphabet algoritma Boyer Moore yang paling cepat dibandingkan dangan Brute Force,Knuth Morris Pratt,Karp Rabin.

  2. Dalam Jurnal Ultimatics – Studi Perbandingan Implementasi Algoritma Boyer- , Turbo Boyer-Moore, dan Tuned Boyer-Moore dalam Pencarian String.

  Moore

  Dari hasil penelitian yang didapat, bisa disimpulkan bahwa algoritma Boyer-

  Moore memiliki waktu pencarian tercepat dari tiga varian Boyer-Moore yang telah

  ditentukan. Algoritma Turbo Boyer-Moore merupakan algoritma tercepat kedua dan yang paling lambat adalah Tuned Boyer-Moore.

  3. Dalam Jurnal Informasi dan Teknologi Ilmiah (INTI) – Penerapan Algoritma

  Boyer Moore Pada Aplikasi Pengajuan Judul Skripsi Bebasis Web. Hasilnya dari

  simulasi yang dilakukan, dapat disimpulkan bahwa Algoritma Boyer Moore cocok digunakan untuk melakukan pencarian string tetapi tidak cocok digunakan untuk mengambil informasi dari kecocokan string berdasarkan satu kata atau lebih.

  4. Dalam Jurnal Pelita Informatika Budi Darma – Perancangan Aplikasi Kamus Bahasa Gayo Dengan Menggunakan Metode Boyer-Moore. Dengan digunakannya metode Boyer-Moore dalam pembuatan aplikasi ini maka proses pencarian translasi kata pada database dapat berjalan dengan lebih cepat dan akurat .