5
BAB II TINJAUAN PUSTAKA A.
Landasan Teori
1.
Pengertian Kamus Kamus adalah sejenis buku rujukan yang menerangkan makna kata-kata.
berfungsi untuk membantu seseorang mengenal perkataan baru. Selain menerangkan maksud kata, kamus juga mungkin mempunyai pedoman sebutan, asal-usul (etimologi) sesuatu perkataan dan juga contoh penggunaan bagi sesuatu perkataan. Untuk memperjelas kadang kala terdapat juga ilustrasi di dalam kamus. Dewasa ini kamu merupakan khaznah yang memuat perbendaharaan kata suatu bahasa, yang secara ideal tidak terbatas jumlahnya. Setiap kebudayaan besar di dunia bangga akan kamus bahasanya. Dalam kenyataanya kamus itu tidak hanya menjadi lambang kebanggaan suatu bangsa, tetapi juga mempunyai fungsi dan mafaat praktis. (Dep. Pendidikan dan Kebudayaan, 2002:499). 2.
Kamus Elektronik Pada saat ini kamus telah memiliki berbagai bentuk mulai dari kamus dalam
bentuk buku serta dalam bentuk elektronik, kamus dalam bentuk buku memiliki kelebihan dalam jumlah kosa kata yang banyak, tetapi juga memiliki kelemahan dalam hal pencarian kosa kata dan arti kata yang membutuhkan waktu yang lama (Balbeid, 2008). Media kamus dalam bentuk elektronik (kamus electronik, aplikasi desktop, web dan mobile kamus) mengatasi masalah dalam pencarian kata-kata yang cepat. Dengan di gunakan alat-alat tersebut, pencarian kosa kata dan arti kata menjadi 5
6
cepat dan praktis, tetapi yang menjadi masalah adalah alat-alat tersebut tidak dapat digunakan kapan saja dan dimana saja, kecuali kamus elektronik dan aplikasi mobile kamus. Pada kamus elektronik dan aplikasi mobile kamus memiliki kelemahan dalam hal keterbatasan jumlah data kata. 3.
Metode Hashing/Hashmap Map adalah salah satu bentuk struktur data. Hashmap adalah struktur data
map yang di berikan kemampuan hashing. hashing adalah salah satu metode pemberian nilai pada string, yang biasanya di pakai untuk pembandingan kesamaan atau kedekatan dari satu string ke string yang lain. Pada proses pencarian pada hashmap yaitu pertama membuat nilai hash pada string yang di cari kemudian membandingkan nilai hash tersebut dengan nilai hash pada semua string yang ada di hashmap atau di struktur data. Hashing/Hashmap
merupakan
metode
untuk
menyimpan
dan
mengambil catatan dari database. Hal ini memungkinkan kita untuk melakukan penyisipan, menghapus, dan mencari catatan berdasarkan nilai kunci pencarian. Hashing/Hashmap adalah metode pencari pilihan karena sangat efisien ketika diterapkan dengan benar. Bahkan, system hash yang diprogram dengan benar biasanya melihat hanya satu atau dua catatan untuk setiap pencarian, insert, atau menghapus operasi. Waktu pencarian data melalui hashing jauh lebih effisien dari pada pencarian data biner pada array yang diurutkan dari n catatan dengan waktu O (log n), atau pencarian data dengan binary tree yang mana memiliki waktu O(log n). Namun pada kenyataannya hashing sulit untuk diterapkan dengan
7
benar (Nurhaerty,2008). Hasing/Hashmap
adalah
teknik
untuk
melakukan
penambahan,
penghapusan, dan pencarian dengan rata – rata waktu konstan. Selain itu hashing juga dikenal dengan sebutan hash table. Hash tables adalah array dengan sel-sel yang ukurannya telah ditentukan dan dapat berisi data atau key yang berkesesuaian dengan data. Selain itu Hash tables merupakan strukturdata yang sering digunakan untuk mengimplementasikan ADT (Abstract Data Type) pada sebuah Dictionary, yaitu ADT (Abstract Data Type) yang hanya mengizinkan pencarian, penyisipan, dan penghapusan elemen-elemen yang ada di dalamnya. (Ruli dkk, 2008.). Hash Table merupakan solusi elegan untuk menyelesaikan masalah pencarian. Hash Table, seperti HashMap, menyimpan pasangan kunci/nilai. Jika kita mengetahui kuncinya, maka kita bisa mencari nilainya di dalam tabel. Jika tabel hash digunakan untuk mengimplementasikan set, maka semua nilainya berisi null. Kita masih harus mencari kuncinya di dalam tabel. Pada hakekatnya hash table merupakan solusi yang sangat effisien dalam mengatasi masalah pencarian pada sebuah data. Hal ini dikarenakan table hash seperti halnya hashMap menyimpan setiap pasangan kunci atau nilai dari setiap data. Jika diketahui sebuah kuncinya maka bukan hal yang mustahil lagi untuk mencari atau mengetahui nilai dari data tersebut. Namun lain halnya jika hash table diimplementasikan pada system set data maka untuk mencari sebuah nilai kita harus mencari kunci di dalam table hash padahal semua nilai yang berada dalam table berisi null (Anonim. 2012).
8
Dalam tabel hash yang digunakan pada Java, setiap lokasi array sebetulnya adalah suatu list berantai yang berisi pasangan kunci/nilai (atau mungkin juga list kosong). Jika dua item memiliki kode hash yang sama, maka kedua item tersebut akan ada pada list yang sama. Strukturnya bisa digambarkan sebagai berikut.
2.1 Gambar Gambar Struktur Hash (Anonim. 2012) Pada gambar di atas, hanya ada satu item dengan kode hash 0, tidak ada item dengan kode hash 1, dua item dengan kode hash 2, dan seterusnya. Pada tabel hash yang dirancang dengan benar, hampir semua list berantai berisi nol atau satu elemen saja, dengan rata-rata panjang list kurang dari 1. Meskipun kode hash dari suatu kunci mungkin tidak membawa kita langsung pada kunci yang kita mau, akan tetapi tidak akan lebih dari satu atau dua item yang harus kita cari sebelum kita sampai pada item yang kita inginkan (Anonim. 2012). 4.
Auto Complete Text View Auto Complete Text View adalah merupakan TextView dengan fungsi auto-
complete. Ketika pengguna menyentuh(mengetik) huruf yang dicari, maka akan muncul pilihan kata yang dapat dipilih.
9
AutoCompleteTextView adalah Teks yang muncul dengan otomatis ketika pengguna sedang mengetik sesuatu. Teks utuh tersebut akan muncul ketika pengguna baru mengetikan beberapa huruf. List dari teks yang disarankan akan tertampil dengan tampilan drop down, dan ketika pengguna memilih teks tersebut, secara otomatis akan mengganti teks yang belum sempurna tersebut (Nugraha dkk, 2011 ). 5.
Pengertian Android Android merupakan sistem operasi berbasis Linux untuk telepon selular,
smart phone, dan komputer tablet. Android adalah platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri yang bisa di pakai bermacam-macam peranti bergerak. Awal mulanya Google.inc membeli Android.inc, semua pihak menggangap remeh awal kehadiran Android, tetapi seiring berkembangnya zaman, Android kini menjadi penguasa pangsa pasar jajaran smartphone dan komputer tablet, karena Android bersifat open source pengembangannya begitu cepat, Android kini telah memiliki berbagai versi dengan kemampuan yang mutakhir dan uptodate. Android
memulai
debut
pertamanya
pada
tahun
2007
dengan
memperkanalkan Nexus One, setelah itu Android mengalami beberapa penambahan vitur di versi-versi Android selanjutnya, mulai dari Android 1.1 kemudian terjadi penambahan fitur di versi 1.5 (Cupcake), 1.6 (Donut), Android versi 2.0/2.1 (Eclair), Android 2.2 Froyo (Frozen Yoghurt), Android versi 2.3 ( Gingerbread) , dan Android versi 3.0/3.1 (Honeycomb) hanya di peruntukan untuk komputer tablet, dan versi terakhir dari Android adalah Android 4.1 Jelly
10
Beans, versi yang di kembangkan dari Android 4.0 Ice Cream Sandwich diperuntukan untuk smartphone dan komputer tablet (Safaat, 2012). 6.
Arsitektur Android Secara garis besar Arsitekture Android dapat dijelaskan dan di gambarkan
sebagia berikut : a.
Applications dan Widgets Aplications dan widgets ini adalah layer dimana kita berhubungan dengan aplikasi secara langsung, seperti contoh aplikasi yang kita download dari google play, dan setelah kita instal maka aplikasi terebut akan muncul pada layer handphone anda, contoh application dan widgets adalah SMS, Kalender, Map, Browser dll.
b.
Applications Frameworks Applications 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. Komponen-komponen yang termasuk di dalam Applications frameworks
adalah
Views,
Content
Provider,
Resource
Manager,
Notification Manager, Activity Manager. c.
Libraries Libraries ini adalah layer dimana fitur-fitur Android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan diatas kernel. Libraries ini meliputi sebagai :
11
1)
Libraries C/C++ seperti Libc dan SLL.
2)
Libraries media untuk pemutaran media dan audio.
3)
Libraries untuk manajemen tampilan.
4)
Libraries Graphics mencakup SGL dan OpenGL untuk grafis 2D dan 3D.
5)
Libraries SQLite untuk dukungan database.
6)
Libraries SSL dan WebKit teritegrasi dengan web browser dan security
7)
Libraries LiveWebcore mencakup modern web browser dengan engine embeded web view.
8)
Libraries 3D yang mencakup implementasi OpenGL ES 1.0 API‘s
9)
Android Run Time Layer yang membuat aplikasi Android dapat dijalankan dimana dalam prosesnya menggunakan Implementasi Linux. Dalvik Virtual Machine (DVM) merupakan mesin yang membentuk dasar kerangka aplikasi Android. Didalam Android Run Time dibagi menjadi dua bagian :
a)
Core Libraries
: berfungsi untuk menterjemahkan bahasa java/c ke
dalam Dalvik Virtual Machine b)
Dalvik Virtual Machine : Virtual mesin 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.
d.
Linux Kernel Linux Kernel adalah layer dimana inti operating sistem dari Android itu berada. Berisi file-file sistem yang mengatur sistem proccessing, memory,
12
resource, drivers, dan sistem-sistem operasi Android lainnya. Linux kernel yang digunakan Android adalah linux kernel release 2.6 (Safaat, 2012).
2.2 Gambar Arsitektur Android (Safaat, 2012) 7.
Android SDK (Software Development Kit) Android SDK adalah tools API (Application Programing Interface) yang
diperlukan untuk menggembangkan aplikasi pada platform Android, Android SDK menggunakan bahasa pemrograman Java, untuk lebih menggembangkan aplikasi Android, Android SDK disediakan untuk sistem operasi Mac Os X10.4.8 atau lebih, Windows XP, Vista, 7 dan 8, serta Linux yang telah direalese oleh pihak Google. 8.
Android Development Tools (ADT) Android Development Tools adalah plugin yang didesain untuk IDE Eclipse
yang memberikan kita kemudahan dalam menggembangkan aplikasi Android. Dengan adanya ADT untuk eclipse akan memudahkan develop dalam membuat aplikasi project Android, membuat GUI aplikasi, dan menambahkan komponenkomponen yang lainnya, begitu juga kita dapat melakukan running aplikasi menggunakan Android SDK melalui Eclipse. Dengan ADT juga kita dapat
13
membuat package Android (.apk) yang digunakan untuk distribusi aplikasi Android yang kita rancang. 9.
Android Virtual Device (AVD) Android Virtual Device adalah sebuah emulator Android, berfungsi sebagai
emulator untuk mencoba aplikasi apakah berjalan dengan baik atau tidak sebelum dijalankan di Smartphone dan Tablet Android. Android Virtual Devices (AVD) adalah konfigurasi dari emulator sehingga kita dapat menjalankan perangkat Android sesuai model yang dipilih, misal Android 1.5, 2.2 atau 2.3 dan versi Android Selanjutnya. Setiap AVD terdiri dari: a.
Sebuah profil perangkat keras, untuk dapat mengatur opsi untuk menentukan fitur hardware emulator. Misalnya, dapat menentukan apakah menggunakan perangkat kamera, apakah menggunakan keyboard QWERTY fisik atau tidak, berapa banyak memori internal, dan lain-lain.
b.
Sebuah pemetaan versi Android, dapat menentukan versi dari platform Android akan berjalan pada emulator misalnya Versi Android 1.5, 2.2 atau 2.3 dan berbagai versi Android lainnya. Pilihan lainnya, dapat menentukan skin yang ingin digunakan pada
emulator, yang memungkinkan dapat menentukan dimensi layar, tampilan, dan sebagainya. serta dapat menentukan SD Card virtual untuk digunakan dengan di emulator. (http://Android.gits.co.id/2010/08/26/arti-istilah-avd). 10.
Pengertian IDE Eclipse Eclipse adalah sebuah IDE (Integrated Development Environment) untuk
mengembangkan perangkat lunak dan dapat dijalankan di semua platform
14
(platform-independent). Berikut ini adalah sifat dari Eclipse: a.
Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X.
b.
Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya.
c.
Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis
dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in seperti penambahan plugin ADT untuk pengembangan Android dan aplikasi Android. 11.
Definisi SQLite SQLite merupakan sebuah sistem manajemen basisdata relasional yang
bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp. Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah
15
sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan. Sehingga
protokol
komunikasi
utama
yang
digunakan
adalah
melalui
pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi desain tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai. Di Android juga memiliki fasilitas untuk membuat databases yang dikenal dengan SQLite, SQLite adalah salah satu software yang embedded yang sangat popular, kombinasi SQL interface dan penggunaan memory yang sangat sedikit dengan kecepatan yang sangat cepat. SQLite di Android termasuk dalam Android runtime, sehingga setiap versi dari Android dapat membuat database dengan SQLite (Nazaruddin S :2012). Dalam sistem Android memiliki beberapa teknik untuk melakukan penyimpanan data. Teknik yang umum digunakan adalah sebagi berikut: a.
Shared Preferences yaitu menyimpan data beberapa nilai (value) dalam bentuk groups key yang dikenal dengan preference.
b.
Files yaitu menyimpan data dalam file, dapat berupa menulis ke file atau membaca dari file.
c.
SQLite Databases, yaitu menyimpan data dalam bentuk databases.
d.
Content Providers, yaitu menyimpan data dalam bentuk conten providers
16
service. Pada skripsi ini focus pada bagian databases. Tidak ada database yang disediakan oleh Android, jika menggunakan SQLite, harus meng-create database sendiri, mendefinisikan tabelnya, index serta datanya. Untuk membuat dan membuka database yang paling baik adalah menggunakan libraries import Android.database.sqlite.SQLiteOpenHelper; Yang menyediakan tiga metode yaitu : 1)
Constructor, menyediakan repressentasi versi dari database dan skema database yang kita gunakan.
2)
onCreate(), menyediakan SQLiteDatabase object yang kita gunakan dalam definisi table dan inisialisasi data. onUpgrade(), menyediakan fasilitas kovensi databases dari database versi
lama ke database versi baru atau sebaliknya. B.
Penelitian Terkait Dalam perancangan aplikasi kamus elektronik meliputi kamus desktop, web,
dan aplikasi mobile, telah dilakukan oleh beberapa peneliti sebelumnya dengan menggunakan berbagai metode pencarian dalam kamus terjemahan maupun kamus istilah. Pada beberapa penelitian sebelumnya telah menggunakan metode string matching dalam pencarian sebuah kata, pola teks, dan pencocokan kata. Dalam penelitian Parno, dkk (2011) pada pembuatan Aplikasi Mobile Kamus Istilah Psikologi Berbasis Android, mereka menggunakan metode pencarian menggunakan string matching dalam, pencocokan istilah yang ada dalam Psikolog.
17
Isnani (2010) dengan mengangkat topik “Aplikasi Online Kamus Kedokteran Dengan Menggunakan Metode Binary Search”. Pada penelitian ini penulis menggunakan algoritma pencarian Binary Search untuk aplikasi online yang dirancangnya. Ketika user mengiinput istilah sesuai atau tepat sama dengan yang ada dalam perbendaharaan basis data maka aplikasi akan dapat menampilkan arti dari istilah tersebut dengan cepat, namun kekurangan dalam penelitian ini yaitu aplikasi tidak dapat memberikan pilihan kata lain apabila kata yang dicari tidak ditemukan. Mutiawani, dkk (2011) Pada penelitiannya Aplikasi Kamus Dwi Bahasa Aceh-Indonesia Berbasis Java Untuk Telepon Genggam menggunakan metode pencarian biner atau binery search dan metode approximate string matching, dari hasil penelitiannya mereka berhasil melakukan pencarian kata dengan metode binary search, dan jika kata-kata lain tidak akan muncul maka kata yang menghampiri yang akan muncul karena mereka mengimplementasikan metode approximate string matching pada aplikasi mereka. Perbedaan penelitian diatas dengan penelitian yang penulis lakukan, yaitu penulis menggunakan metode Hashmap dalam penelitian ini, serta aplikasi kamus yang di rancang adalah 3 bahasa, serta dapat melakukan auto complete text, karena permasalahan diangkat hanyalah mencari arti kata dalam bahasa Indonesia ke bahasa Inggris dan Gorontalo dengan waktu pencarian yang efisien.