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)