BAB 2 LANDASAN TEORI 2.1. Kamus - Penerapan Algoritma Brute Force pada Perancangan Aplikasi Kamusta Bahasa Indonesia-Inggris Berbasis Android

BAB 2 LANDASAN TEORI

2.1. 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. Selain pengertian kamus yang telah disebutkan di atas, pengertian kamus yang dikemukakan oleh beberapa para ahli Chaer (2007 : 179).

  1. Kridalaksana menyebutkan bahwa kamus adalah buku referensi yang memuat daftar kata atau gabungan kata dengan keterangan mengenai pelbagai segi maknanya dan penggunaannya dalam bahasa, biasanya disusun menurut abjad.

  2. Dalam American Every Dictionary disebutkan bahwa kamus adalah sebuah buku berisi kata-kata dari sebuah bahasa, biasanya disusun secara alfabetis, disertai keterangan akan artinya ucapannya, ejaannya, dsb.

  3. Labrousse (1997) menyebutkan bahwa kamus adalah buku berisi kumpulan kata-kata sebuah bahasa yang disusun secara alfabetis, diikuti dengan defenisi atau terjemahannya dalam bahasa lain.

  4. Keraf (1984) mendefinisikan kamus sebagai sebuah buku referensi, memuat daftar kata-kata yang terdapat dalam sebuah bahasa, disusun secara alfabetis, disertai keterangan cara menggunakan kata itu.

  2.2. Kamusta

  Kamusta ialah sebuah aplikasi kamus yang dirancang dengan mode offline dan online yang dapat menerjemahkan dari bahasa Indonesia ke bahasa Inggris dan sebaliknya dengan fitur tambahan seperti text to speech, online translator, speech recognition dan fitur copy-paste.

  2.3. Pencocokan String (String Matching)

  ”Algoritma pencarian string atau sering disebut juga pencocokan string adalah yang melakukan pencarian sebuah pattern pada sebuah teks ” (Charras, et al.2001). Algoritma pencocokan string dapat diklasifikasikan menjadi tiga bagian menurut arah pencariannya, yaitu: 1.

   Pencarian dari arah kiri ke kanan yang merupakan arah untuk membaca,

  algoritma yang termasuk kategori ini adalah algoritma Brute Force dan algoritma Knuth Morris Pratt.

  2. Pencarian dari arah kiri ke kanan yang biasanya menghasilkan hasil yang terbaik secara praktial,contohnya adalah algoritma boyer-moore, algoritma

  turbo boyer-moore , algoritma tuned boyer-moore dan algoritma zhu-takaoka.

  3. Pencarian dari arah yang sudah ditentukan secara spesifik oleh algoritma tersebut,arah ini menghasilkan hasil yang terbaik secara teoritis, contohnya adalah algoritma Colossi dan algoritma Crochemore - Perrin.

  2.4. Algoritma Brute Force

  Algoritma Brute Force, yang juga disebut sebagai

  “naive” merupakan algoritma

  paling sederhana yang dapat digunakan pada pencarian pola. Algoritma ini tidak membutuhkan preprocessing (proses sebelumnya) dari pola atau teks (Abdeen, 2011).

  Brute Force (Rinaldi Munir, 2004, p. 2) adalah sebuah pendekatan langsung

  (straight forward) untuk memecahkan suatu masalah, yang biasanya didasarkan pada pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan. Pada dasarnya algoritma Brute Force adalah alur penyelesaian suatu permasalahan dengan cara berpikir yang sederhana dan tidak membutuhkan suatu pemikiran yang lama.

  Menurut (Charras, et al.2001) langkah-langkah yang dilakukan algoritma Brute

  Force pada saat mencocokan string adalah: 1.

  Algoritma Brute Force mulai mencocokan pattern pada awal teks

  2. Dari kiri ke kanan, algoritma ini akan mencocokan karakter per karakter

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

  berikut dipenuhi : a.

  Karakter di pattern dan di teks yang dibandingkan tidak cocok b.

  Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan di posisi ini.

  3. Algoritma kemudian terus menggeser pattern sebesar satu langkah ke kanan dan mengulangi langkah ke-2 sampai pattern berada di ujung teks.

2.5. Android

  Sebagai sebuah sistem operasi untuk perangkat mobile yang berbasis linux maka

  

Android pada dasarnya mencakup sistem operasi middleware dan aplikasi

  (penerapan). Dengan demikian maka Android menyediakan platform yang terbuka bagi siapa saja yang berminat untuk mengembangkan lebih jauh tentang sistem ini yang bertujuan untuk pencapaian dari aplikasi tersebut.

  Sebagai generasi baru dari platform mobile maka platform yang disediakan oleh Android bagi pengembang untuk pengembangan lebih lanjut dari sistem yang telah terbuka untuk memperoleh hasil yang lebih maksimal Android menggunakan sistem operasi GNU sesuai dengan lisensi yang diperolehnya yang lebih dikenal dengan General Public Lisensi Versi 2 (GPL v2). Lisensi itu terkenal dengan nama copyleft .

  Android dipasarkan dibawah lisensi Apache Software yang memungkinkan

  pengembangan distribusi tahap kedua dan ketiga dan seterusnya. Karena sistem mereka adalah terbuka maka komersialilasi akan lebih berkembang dengan cara memilih meningkatkan platform tanpa harus memberitahukan lebih dahulu secara terbuka kepada konsumen . Hasil yang lain yang dapat diperoleh ialah pengembang aplikasi Android dapat memperoleh keuntungan tambahan melalui perbaikan yang dilakukan serta peningkatan tanpa harus terikat kepada lisensi semula. Artinya pengembang aplikasi Android diperbolehkan mendistribusikan aplikasi mereka dibawah lisensi yang diinginkan.

2.5.1. Arsitektur android

  Secara garis besar Arsitektur Android dapat dijelaskan dan digambarkan pada Gambar 2.1.

Gambar 2.1. Arsitektur Android

  (Sumber: Learning Android, 2011) a. Application dan Widgets

  ”Application dan Widgets ini adalah layer di mana kita berhubungan dengan aplikasi saja, dimana biasanya kita download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut. Di layer terdapat aplikasi inti termasuk klien email, program SMS, kalender, peta, browser, kontak dan lain-lain. Semua aplikasi ditulis menggunakan bahasa pemrograman Java ”.

  b.

  Applications FrameworksApplications Frameworks adalah layer dimana para pembuat aplikasi melakukan pengembangan / pembuatan aplikasi yang akan dijalankan di sistem operasi Android, karena pada layer inilah aplikasi dapat dirancang dan dibuat, seperti content-providers yang berupa sms dan panggilan telepon

  ”.

  c.

  LibrariesLibraries ini adalah layer dimana fitur-fitur Android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya

  ”. d.

  Android Run TimeAndroid Run Time terbagi menjadi dua bagian yaitu:

  • Dalvik sebagai virtual mesinnya bukan Virtual Machine Java, sehingga diperlukan sebuah library yang berfungsi untuk menerjemahkan bahasa

  Core Libraries: Aplikasi Android dibangun dalam bahasa java, sementara

  Java C, yang ditangani oleh Core Library.

  Dalvik Virtual Machine: Virtual machine berbasis register yang

  • dioptimalkan untuk menjalankan fungsi-fungsi secara efisien, dimana merupakan pengembangan yang mampu membuat linux kernel untuk melakukan threading dan manajemen tingkat rendah ”.

  e.

  Linux Kernel ”Linux kernel adalah layer dimana inti dari operating system dari Android itu berada. Berisi file-file system yang mengatur sistem processing, memory, resource drivers dan sistem-sistem operasi processing, memory, resource, drivers dan system-sistem operasi Android lainnya. Linux kernel yang digunakan Android adalah linux kernel

  release

  2.6 ”.

2.6. Java

  Java adalah sebuah teknologi dimana pada teknologi tersebut mencakup java sebagai bahasa pemrograman yang memiliki sintaks dan aturan pemrograman tersendiri, juga mencakup java sebagai platform dimana teknologi ini memiliki virtual machine dan

  

library yang diperlukan untuk menulis dan menjalankan program yang ditulis dengan

bahasa pemrograman java (Rickyanto, 2003).

  Alasan terbesar dalam pembuatan bahasa pemrograman java adalah keinginan akan terbentuknya suatu bahasa pemrograman yang bisa berjalan di berbagai perangkat tanpa harus terikat oleh platform, sehingga java ini bersifat portable dan

  

platform independent ( tidak tergantung mesin atau sistem operasi). Para pemrogram

  Java banyak mengambil keuntungan dari kumpulan kelas di pustaka kelas Java, yang disebut dengan Java Application Programing Interface (API).

2.7. Eclipse

  ”Eclipse merupakan kakas universal untuk semua platform yang mana sifat universal Eclipse didapat dari kemampuannya untuk menerima aneka modul tambahan (plug-in) .

  Eclipse bisa disebut juga sebagai sebuah IDE di dalamnya” (Nugroho, 2008) (Integrated Development Environment) yang berfungsi untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent).

  Eclipse merupakan sebuah software yang dapat digunakan untuk membuat sebuah pemrograman Android dimana di dalamnya dapat dimasuki oleh Software

  Development Kit ( SDK ) dari Android tersebut.

  Eclipse menjadi salah satu IDE yang banyak digemari dikarenakan banyak sekali kelebihan yang dimiliiki olehnya, salah satu kelebihannya adalah kemampuannya untuk dapat dikembangkan oleh pengguna atau developer dengan sebuah komponen yaitu plugin. Berikut ini adalah sifat

  • – sifat dari Eclipse :

  1. Multi

  • – Platform

  Target sistem operasi pada Eclipse adalah Microsoft Windows, Linux,Solaris, AIX, HP – UX dan Mac OS X.

  2. Multi

  • – Language

  Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya,seperti : C / C++, Cobol, Python, Perl dan PHP.

  3. Multi

  • – Role

  Selain sebagai IDE untuk pengembangan aplikasi, Eclipse juga dapat digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, tes perangkat lunak dan pengembangan web.

2.8. Database

  ”Basis data (database) adalah kumpulan informasi yang disimpan didalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut ” (Sutanta, 2004).

  Database mempunyai beberapa kriteria yang harus dipenuhi yaitu : 1.

  Berorientasi pada data (data oriented) dan bukan berorientasi pada program (program oriented) yang akan menggunakannya.

  2. Data dapat digunakan oleh pemakai yang berbeda-beda atau beberapa program aplikasi tanpa perlu mengubah basis data.

  3. Data dalam basis data dapat berkembang dengan mudah baik volume maupun strukturnya.

  4. Data yang ada dapat memenuhi kebutuhan sistem - sistem baru secara mudah.

  5. Data dapat digunakan dengan cara yang berbeda-beda.

  6. Kerangkapan data (data redundancy) minimal.

2.9. UML (Unified Modelling Language)

  UML (Unified Modeling Language) adalah Bahasa pemodelan untuk sistem atau perangkat lunak yang berparadigma berorientasi objek (Nugroho, 2010). UML ini berfungsi untuk membantu para developer untuk menggambarkan alur dari sebuah sistem yang akan dibangun, gambaran mengenai alur sistem tersebut akan terwakili oleh simbol-simbol yang ada dalam diagram – diagram.

  2.9.1. Use case diagram

Use case pada dasarnya merupakan unit fungsionalitas koheren yang diekspresikan

  sebagai transaksi-transaksi yang terjadi antara actor dan sistem (Nugroho, 2008). Kegunaan use case sesungguhnya adalah untuk mendefinisikan suatu bagian perilaku sistem yang bersifat koheren tanpa perlu menyingkap struktur internal sistem/perangkat lunak yang sedang dikembangkan. Berikut adalah beberapa simbol di dalam use case diagram :

  

Tabel 2.1.Tabel simbol dalam use case diagram

2.9.2. Activity diagram

  Activity diagram sesungguhnya merupakan bentuk khusus dari state machine yang bertujuan memodelkan komputasi-komputasi dan aliran-aliran kerja yang terjadi dalam sistem / perangkat lunak yang sedang dikembangkan (Nugroho, 2008). Activity

  

diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang,

  bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Berikut adalah beberapa simbol di dalam activity diagram :

  

Tabel 2.2.Tabel simbol activity diagram

2.9.3.

   State diagram State diagram mendeskripsikan obyek berupa state

  • – state yang dimilikinya, kejadian- kejadian, yang dapat berlangsung beserta transisi yang terjadi (Hariyanto, 2004).

  Diagram state menyediakan sebuah cara untuk memodelkan bermacam

  • – macam keadaan yang mungkin dialami oleh sebuah obyek. Jika dalam diagram kelas menunjukkan gambaran statis kelas
  • – kelas dan relasinya, sedangkan dalam diagram state digunakan untuk memodelkan tingkah laku dinamik sistem. Berikut adalah beberapa simbol di dalam state diagram :

  

Tabel 2.3.Tabel simbol state diagram

2.9.4.

   Class Diagram

  Diagram kelas atau class diagram menunjukkan interaksi antar kelas dalam sistem (Sholiq, 2006). Diagram kelas mengandung informasi dan tingkah laku segala sesuatu yang berkaitan dengan informasi tersebut. Adapun kegunaan dari class diagram adalah sebagai berikut (Hariyanto, 2004) :

  1. Mengelompokkan obyek

  • – obyek menjadi kelas – kelas berarti mengabstraksikan masalah yang sedang dihadapi.

  2. Definisi

  • – definisi common (seperti nama kelas dan atribut) cukup disimpan sekali per instan kelas (obyek).

2.10. Penelitian Terdahulu

  Algoritma Brute Force telah banyak diterapkan dalam penelitian untuk pencarian dan pencocokan string. Beberapa penelitian yang pernah dilakukan untuk menyelesaikan permasalahan pencocokan string yaitu pada hasil penelitian Sudarja, (2013) disimpulkan bahwa perbandingan algoritma String Matching dan algoritma Auto Complete dapat digunakan dalam aplikasi Kamus Kedokteran Dorland berbasis android, Rheno Manggala Budiasa (2009) menerapkan algoritma Brute Force pada aplikasi sederhana pattern matching validasi suatu teks, Mokhamad Syaroni (2005) pencocokan string berdasarkan kemiripan ucapan (Phoenic String Matching), Sri (2011) analisis penerapan String Matching dalam komparasi data kepesertaan JAMKESMAS, Agus (2012) membuat mesin pencari ayat Al Quran menggunakan

  

Inexact String Matching dan Sri Wahyuni Husain (2013) menerapkan algoritma

Binary Search dan metode Approximate String Matching pada aplikasi kamus bahasa

  4

  suatu teks Analisis komparasi data kepesertaan JAMKESMAS Mesin pencari ayat Al Quran Aplikasi kamus bahasa Indonesia-Mongondow berbasis android.

  Brute Force pada validasi

  Aplikasi sederhana pattern matching dengan algoritma

  Approximate String Matching

  metode

  Binary Search dan

  Algoritma

  Brute Force String Matching String Matching

  5 Rheno Manggala Budiasa Sri Agus Sri Wahyuni Husain

  3

  Indonesia-Mongondow berbasis android.

  2

  2013

  algoritma Auto Complete dapat digunakan dalam aplikasi Kamus Kedokteran Dorland berbasis android

  String Matching dan

  perbandingan algoritma

  Matching

  1 Sudarja String

  No Peneliti Algoritma Kasus Tahun

Tabel 2.4. Tabel Penelitian Terdahulu

  2009 2011 2012 2013