Pemanfaatan SQLite pada Aplikasi Konversi Mata Uang di Android

advertisement
Bab 2
Tinjauan Pustaka
2.1 Penelitian Sebelumnya
Aplikasi yang dirancang dibandingkan dengan aplikasi yang
sejenis yaitu Currency Converter 2.2. Persamaan antara kedua
aplikasi adalah menggunakan Yahoo Finance sebagai sumber data.
Perbedaan yang ditemukan, Currency Converter 2.2 terdapat fitur
news yang berisi berita mengenai mata uang yang dipilih, fitur
grafik yang dapat menampilkan pergerakan nilai mata uang, dan
tidak dapat dioperasikan secara offline atau tidak menyimpan data di
database local.
Aplikasi yang dirancang dibandingkan dengan aplikasi yang
sejenis yaitu Easy Currency Converter 1.2.0. Persamaan antara
kedua aplikasi adalah menggunakan Yahoo Finance sebagai sumber
data dan dapat digunakan secara offline. Perbedaan yang ditemukan,
Easy Currency Converter 1.2.0 terdapat fitur grafik yang dapat
menampilkan pergerakan nilai mata uang dan untuk penggunaan
offline kurs yang diupdate hanya delapan jenis mata uang yang telah
ditentukan, jika memilih selain kedelapan jenis mata uang tersebut
maka yang digunakan adalah kurs lama.
Yahoo Finance merupakan bagian dari portal atau website
Yahoo, untuk berbagai aktifitas keungan dan bisnis (Hengky
Alexander, 2011). Informasi kurs mata uang adalah informasi nilai
tukar dari dua jenis mata uang, dan pada Yahoo Finance terdapat
fasilitas untuk mengetahuinya (Hengky Alexander, 2011). Yahoo
Finance menyediakan fasilitas untuk melakukan konversi, yang
7
8
berfungsi untuk mengubah nilai sebuah mata uang ke mata uang
lainnya (Hengky Alexander, 2011).
SQLite merupakan salah satu RDBMS yang sama dengan
RDBMS lainnya, seperti MySQL, PostgreSQL, Oracle (Winarno,
2011). Aplikasi ini cukup ringan dan mudah dalam penggunaannya,
sehingga cocok digunakan untuk aplikasi yang membutuhkan
memory dan library yang kecil seperti aplikasi Android (Winarno,
2011).
2.2 Android
2.2.1 Pengertian
Android adalah subset perangkat lunak untuk perangkat
mobile yang meliputi sistem operasi, middleware, dan aplikasi inti
yang berbasis Linux dan diciptakan oleh Google. Android memakai
basis kode komputer yang bisa didistribusikan secara terbuka ( open
source ) sehingga pengguna bisa membuat aplikasi baru di
dalamnya. Android SDK ( Software Development Kit
menyediakan
Tools
mengembangkan
dan
aplikasi
API
pada
yang
diperlukan
platform
Android
)
untuk
dengan
menggunakan bahasa pemrograman Java. (Mulyadi, 2010)
Dikembangkan bersama antara Google, HTC, Intel, Motorola,
Qualcom, T-Mobile, NVIDIA yang tergabung dalam OHA ( Open
Handset Alliance ) dengan tujuan membuat sebuah standar terbuka
untuk perangkat bergerak ( mobile device ).
2.2.2 Fitur
Fitur yang tersedia di Android (Mulyadi, 2010):
9
o
Kerangka
aplikasi
:
memungkinkan
penggunaan
untuk
penghapusan komponen yang tersedia.
o
Dalvik Virtual Machine : mesin virtual dioptimalkan untuk
perangkat mobile.
o
Grafik : grafik di 2D dan grafis 3D berdasarkan pustaka
OpenGL.
o
SQLite : untuk penyimpanan data.
o
Mendukung media : audio, video, dan berbagai format gambar
(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF).
o
GSM, Bluetooth, EDGE, 3G, dan WiFi (tergantung hardware).
o
Kamera, Global Positioning System (GPS), kompas, dan
accelerometer (tergantung hardware).
o
Multi-touch : kemampuan layaknya handset modern yang dapat
menggunakan dua jari atau lebih untuk berinteraksi dengan
perangkat.
o
Lingkungan Development yang lengkap dan kaya termasuk
perangkat emulator, tools untuk debugging, profil dan kinerja
memori, dan plugin untuk Netbeans dan Eclipse.
2.2.3 Arsitektur
Arsitektur Android terlihat dalam Gambar 2.1.
10
Gambar 2.1 Arsitektur Android (Mulyadi, 2010)
Gambar 2.1 menunjukkan arsitektur Android yang dapat
dijelaskan sebagai berikut :
o
Linux Kernel
Android bukan Linux, akan tetapi Android dibangun
diatas Linux Kernel yaitu versi 2.6 pada tahun 2007, sehingga
kehandalannya bisa dipercaya. Untuk inti sistem service Linux
yang digunakan seperti keamanan, manajemen memori,
manajemen proses, network, dan driver model. Kernel juga
bertindak sebagai lapisan abstrak antara hardware dan software
stack.
o
Libraries
Android menyertakan libraries C / C ++ yang digunakan
oleh berbagai komponen dari sistem Android. Kemampuan ini
disediakan kepada developer aplikasi melalui framework
aplikasi Android. Beberapa inti libraries tercantum di bawah
ini:
11
-
Media Libraries, mendukung berbagai format audio dan
video serta file gambar, seperti MPEG4, H.264, MP3,
AAC, AMR, JPG, dan PNG.
-
Surface Manager, mengelola akses ke subsistem layar,
lapisan 2D dan grafis 3D dari beberapa aplikasi.
-
LibWebCore, mesin web modern yang powerfull.
-
SGL, mesin grafis 2D.
-
3D libraries, bekerja berdasarkan opengl ES 1,0 API.
-
FreeType, bipmap dan vector font rendering.
-
SQLite, database yang kuat dan ringan, dan penghubung
tersedia untuk semua aplikasi.
o
Android Runtime
Android terdiri dari satu set core libraries yang
menyediakan sebagian besar fungsi yang sama yang terdapat
pada core libraries bahasa pemrograman Java. Setiap aplikasi
menjalankan prosesnya sendiri dalam Android, dengan masing
– masing instan dari Dalvik Virtual Machine. Dalvik dirancang
agar perangkat dapat menjalankan multiple VMs secara efisien.
Dalvik Virtual Machine mengeksekusi file dalam Dalvik
executable ( .dex ), sebuah format yang dioptimalkan untuk
memori yang kecil. Dalvik VM berbasis, berjalan dan
dikompilasi
oleh
compiler
bahasa
Java
yang
telah
ditransformasikan ke dalam .dex format oleh tool "dx" yang
disertakan. Dalvik VM bergantung pada kernel Linux untuk
berfungsi , seperti threading dan manajemen memori tingkat
rendahnya .
o
Application Framework
12
Kerangka aplikasi menyediakan kelas-kelas yang dapat
digunakan
untuk
mengembangkan
aplikasi
Android,
menyediakan abstraksi generik untuk mengakses perangkat,
serta mengatur tampilan user interface dan sumber daya
aplikasi. Bagian terpenting dalam kerangka aplikasi Android
adalah sebagai berikut:
-
View System yang dapat digunakan untuk membangun
aplikasi, termasuk list, grids, kotak teks, tombol, dan
bahkan sebuah embeddable web.
-
Content Provider yang memungkinkan aplikasi untuk
mengakses data (seperti dari daftar kontak telepon) atau
dari data mereka sendiri.
-
Resource Manager, yang menyediakan akses ke kode
sumber non-lokal seperti string, gambar, dan tata letak file.
-
Notifikasi Manager yang memungkinkan semua aplikasi
untuk menampilkan alert yang bias dikostumisasi di dalam
status bar.
-
Activity Manager yang mengelola siklus hidup aplikasi dan
menyediakan navigasi umum backstack.
o
Applications
Android telah menyertakan aplikasi inti seperti email
client, SMS, kalender, peta, browser, kontak, dan lainnya.
Semua aplikasi tersebut dibuat dengan bahasa pemrograman
Java. Pada layer inilah developer atau user menempatkan
aplikasi yang dibuat. Keistimewaannya adalah pada Android
semua aplikasi baik aplikasi inti ( native ) maupun aplikasi
pihak ketiga berjalan pada layer aplikasi dengan menggunakan
13
library API yang sama. Ini berarti semua aplikasi yang dibuat
untuk Android akan memiliki akses yang setara dalam
mengakses seluruh kemampuan handset, tanpa membedakan
apakah itu merupakan aplikasi inti atau aplikasi pihak ketiga.
Dalam kata lain dengan platform Android ini, programmer atau
developer secara penuh bisa mengkustomisasi perangkat
Androidnya.
Aplikasi Android ditulis dalam bahasa pemrograman Java,
yaitu kode Java yang terkompilasi bersama – sama dengan data
file resources yang dibutuhkan oleh aplikasi yang digabungkan
oleh aapt tools menjadi paket Android, sebuah file yang
ditandai dengan suffix .apk. File inilah yang didistribusikan
sebagai aplikasi dan diinstall pada perangkat mobile. Semua
kode dijadikan satu file .apk, kemudian user menyebutnya
sebagai sebuah aplikasi.
2.2.4 Perkembangan Android Sampai Tulisan ini Dibuat
o
Android versi 1.1
Pada 9 Maret 2009, Google merilis Android versi 1.1.
Android versi ini dilengkapi dengan pembaruan estetis pada
aplikasi, jam alarm, voice search (pencarian suara), pengiriman
pesan dengan Gmail, dan pemberitahuan email.
o
Android versi 1.5 (Cupcake)
Pada pertengahan Mei 2009, Google merilis Android versi
1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga
penambahan beberapa fitur yakni kemampuan merekam dan
menonton video dengan modus kamera, mengunggah video ke
Youtube dan gambar ke Picasa langsung dari telepon, dukungan
14
Bluetooth A2DP, kemampuan terhubung secara otomatis ke
headset Bluetooth, animasi layar, dan keyboard pada layar yang
dapat disesuaikan dengan sistem.
o
Android versi 1.6 (Donut)
Donut (versi 1.6) dirilis pada 15 September 2009 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 speech (tidak tersedia pada semua
ponsel); pengadaan resolusi VWGA.
o
Android versi 2.0/2.1 (Eclair)
Rilis antara versi 2.0 ke 2.1 hanya berselang satu bulan,
yaitu Desember 2009 dan Januari 2010. 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, Bluetooth 2.1, live wallpaper.
o
Android versi 2.2 (Froyo: Frozen Yoghurt)
Dirilis pada 20 Mei 2010, pada versi ini kinerja hardware
terlihat lebih cepat, memungkinkan akses ke memory external,
fitur wifi yang memungkinkan dibuat menjadi hotspot, dan
fungsi update otomatis ke Android Market.
o
Android versi 2.3 (Gingerbread)
15
Dirilis pada Oktober 2010, dengan tambahan beberapa
fitur seperti :
-
Aplikasi NFC ( Near-Field Communication ), yang
memungkinkan produsen gadget untuk membuat perangkat
yang bisa digunakan untuk transaksi nirkabel.
-
Aplikasi kamera sudah mendukung kamera depan.
-
Kemampuan telepon via internet, atau Voice Over IP.
-
Tampilan yang lebih rapi dan mudah dipelajari.
-
Input teks lebih cepat dengan beberapa perubahan lokasi
dan bentuk pada keyboard.
-
Kemampuan untuk memilih ( select ) lalu melakukan copy,
cut, atau paste menjadi lebih baik.
o
Android versi 3.0 (Honeycomb)
Dirilis pada Februari 2011, dikhususkan untuk computer
tablet.
2.3 Arsitektur Model View Controller ( MVC )
Aplikasi apapun, bagian dalam kode yang sering mengalami
perubahan adalah bagian user interface. User interface adalah
bagian yang paling terlihat oleh user dan bagaimana ia berinteraksi
dengan aplikasi, membuatnya menjadi titik fokus pengubahan
berdasar kemudahan penggunaan. Business-logic yang rumit pada
user-interface membuat pengubahan pada user interface menjadi
lebih kompleks dan mudah terjadi kesalahan. Perubahan pada satu
bagian memiliki potensi keterkaitan dengan keseluruhan aplikasi.
(Jeni, 2008)
Pola MVC menyediakan sebuah solusi terhadap permasalahan
tersebut dengan membagi aplikasi menjadi bagian – bagian
16
tersendiri, Model, View dan Controller,memisahkan antar bagian
tersebut dan membuat tata interaksi diantaranya. Arsitektur Model
View Controller ( MVC ) terlihat dalam Gambar 2.2.
Gambar 2.2 Arsitektur MVC (Jeni, 2008)
Gambar 2.2 menunjukkan arsitektur Model View Controller (
MVC ) yang dapat dijelaskan sebagai berikut (Jeni, 2008):
o
Model
Pola MVC memiliki layer yang disebut dengan Model
yang merepresentasikan data yang digunakan oleh aplikasi
sebagaimana proses bisnis yang diasosiasikan terhadapnya.
Dengan
memilahnya
sebagai
bagian
terpisah,
seperti
penampungan data, persistence, serta proses manipulasi,
terpisah dari bagian lain aplikasi. Terdapat beberapa kelebihan
dalam pendekatan ini.
Pertama, membuat detail dari data dan operasinya dapat
ditempatkan pada area yang ditentukan (Model) dibanding
tersebar
dalam
keseluruhan
lingkup
aplikasi.
Hal
memberikan keuntungan dalam proses maintenance aplikasi.
ini
17
Kedua, dengan pemisahan total antara data dengan
implementasi interface, komponen model dapat digunakan
kembali oleh aplikasi lain yang memiliki kegunaan yang hampir
sama.
o
View
Layer
ini
mengandung
keseluruhan
detail
dari
implementasi user interface. Komponen grafis menyediakan
representasi proses internal aplikasi dan menuntun alur interaksi
user terhadap aplikasi. Tidak ada layer lain yang berinteraksi
dengan user, hanya View. Penggunaan layer View memiliki
beberapa kelebihan :
-
Pertama, memudahkan pengabungan divisi desain dalam
development team. Divisi desain dapat berkonsentrasi pada
style, look & feel, dan sebagainya, dalam aplikasi tanpa
harus memperhatikan lebih pada detail yang lain.
-
Kedua, memiliki layer View yang terpisah memungkinkan
ketersediaan multiple interface dalam aplikasi. Jika inti dari
aplikasi terletak pada bagian lain (dalam Model), multiple
interfaces dapat dibuat (Swing, Web, Console), secara
keseluruhan memiliki tampilan yang berbeda namun
mengeksekusi komponen Model sesuai fungsionalitas yang
diharapkan.
o
Controller
Terakhir, arsitektur MVC memiliki layer Controller.
Layer ini menyediakan detail alur program dan transisi layer,
dan juga bertanggungjawab akan penampungan events yang
dibuat oleh user dari View dan melakukan update terhadap
18
komponen Model menggunakan data yang dimasukkan oleh
user.
Kelebihan dalam penggunaan layer Controller secara
terpisah :
-
Pertama, dengan menggunakan komponen terpisah untuk
menampung detail dari transisi layer, komponen view dapat
didesain tanpa harus memperhatikan bagian lain secara
berlebih. Hal ini memudahkan tim pengembang multiple
interface bekerja secara terpisah dari yang lain secara
simultan. Interaksi antar komponen View terabstraksi dalam
Controller.
-
Kedua,
dengan
menggunakan
layer
terpisah
yang
melakukan update terhadap komponen Model, detail
tersebut dihapus dari layer presentasi. Layer presentasi
kembali pada fungsi utamanya untuk menampilkan data
kepada user. Detail tentang bagaimana data dari user
mengubah
ketetapan
aplikasi
disembunyikan
oleh
Controller. Hal ini memisahkan dengan jelas antara
presentation logic dengan business logic.
19
2.3.1 Arsitektur MVC dalam Android
Gambar 2.3 Arsitektur MVC Android (Zigurd, 2011)
Gambar 2.3 menunjukkan arsitektur Model View Controller (
MVC ) pada Android yang dapat dijelaskan sebagai berikut (Zigurd,
2011):
o
Model
Model merupakan tempat penyimpanan data sementara
yang berasal dari controller atau view. Data yang ada di dalam
model dapat diakses oleh view atau controller. Data input dari
view yang disimpan di model, diakses oleh controller untuk
diproses. Hasil proses dari controller akan disimpan di model
untuk ditampilkan pada view atau untuk proses lebih lanjut.
o
Controller
Tugas controller adalah memetakan request (permintaan)
dengan action (respon), controller melakukan proses sesuai
dengan request dari view sehingga dapat menghasilkan respons
yang diinginkan user. Data pada model atau pada sqlite
(database) yang sesuai dengan kebutuhan request akan
digunakan oleh controller untuk melakukan proses tersebut dan
20
hasil dari proses akan disimpan ke sqlite atau model untuk
ditampilkan pada view sebagai respons.
o
View
View merupakan user interface pada aplikasi yang
berfungsi untuk menerima request dari user dan menampilkan
respons ke user. View akan mengirimkan data dari user ke
model untuk segera diproses oleh controller sesuai dengan
request. View akan menampilkan respons yang berupa data dari
model yang merupakan hasil dari proses.
2.4 Kurs
Kurs mata uang dapat diartikan sebagai perbandingan nilai
antar mata uang, jadi kurs menunjukkan harga suatu mata uang jika
dituliskan dengan mata uang lain. Saat membaca kurs, ada dua hal
yang harus selalu diingat yaitu mata uang yang ditulis pertama
merupkan mata uang dasar (base currency) dan nilai base currency
adalah sebesar satu. Contoh, kurs USD/JPY 120.01 berarti satu USD
setara dengan 120.01 JPY. (Aditya, 2010)
Download