BAB 2 LANDASAN TEORI
2.1
Teori Dasar/Umum 2.1.1
Interaksi Manusia dan Komputer 2.1.1.1
Pengertian Interaksi Manusia dan Komputer Karray et al. (2008:138) mendefinisikan interaksi manusia dan komputer sebagai sebuah desain yang harus dihasilkan sesuai pengguna, mesin dan layanan yang dibutuhkan untuk mencapai suatu kinerja tertentu baik dalam kualitas dan optimalitas layanan.
2.1.1.2
Lima Faktor Manusia Terukur Ada diperhatikan
lima
faktor
dalam
manusia
perancangan
terukur
yang
antarmuka
harus
menurut
Shneiderman and Plaisant (2010:32), yaitu: 1. Waktu Belajar Merancang antarmuka dengan memperhatikan kemudahan tampilan. Sehingga pengguna dapat beradaptasi dengan cepat dalam menggunakan aplikasi.
9
10
2. Kecepatan Kinerja Memperhatikan berapa lama waktu yang diperlukan oleh aplikasi untuk menyelesaikan suatu proses. 3. Tingkat Kesalahan Mengurangi kemungkinan kesalahan yang dilakukan oleh pengguna aplikasi. 4. Daya Ingat Merancang tampilan yang mudah diingat oleh pengguna sehingga tidak memerlukan waktu yang panjang untuk mempelajarinya lagi. 5. Kepuasan Subjektif Dapat memenuhi kepuasan pengguna akan aspek – aspek yang terdapat pada aplikasi.
2.1.1.3
Kategori Pengguna Menurut Shneiderman and Plaisant (2010:81) ada tiga kategori
pengguna
yang
perlu
dipertimbangkan
dalam
perancangan antarmuka, yaitu: 1. Novice Merupakan
pengguna
pemula
sehingga
antarmuka
sebaiknya dirancang sesederhana mungkin sehingga mudah digunakan dan juga memberikan umpan balik yang informatif.
11
2. Knowledgable Intermittent Users Merupakan pengguna yang sudah memiliki pengetahuan mengenai sistem dan antarmuka namun masih diperlukan konsistensi dalam perancangan antarmukanya. 3. Expert Frequent Users Merupakan pengguna yang telah benar – benar mengerti sistem dan antarmuka. Sehinnga untuk mempercepat kerja pengguna ini dapat dibuatkan macro, shortcut, dan command-line.
Aplikasi mobile yang akan dirancang adalah aplikasi yang ditujukan kepada “Knowledgable Intermittent Users” karena belakangan ini peredaran perangkat mobile dengan berbagai aplikasi yang tertanam di dalamnya sudah tidak dapat terelakan lagi sehingga banyak orang kurang lebih telah mengerti bagaimana pengoperasian sistem dan antarmuka dari suatu aplikasi.
2.1.1.4
Delapan Aturan Emas Menurut Shneiderman and Plaisant (2010:88) terdapat delapan aturan emas yang harus dipertimbangkan dalam perancangan antarmuka, yaitu:
12
1. Berusaha untuk konsisten Konsisten dalam berbagai aspek yang terdapat dalam aplikasi, seperti warna yang digunakan, jenis font yang dipakai, dan tampilan menu. 2. Menyediakan kegunaan universal Perancangan dilakukan dengan mengetahui perbedaan dari pengguna sehingga dapat dipakai oleh semua kategori pengguna baik yang sudah ahli maupun pemula. 3. Memberikan umpan balik yang informatif Setiap tindakan yang dilakukan oleh pengguna harus memiliki umpan balik sehingga pengguna mengetahui apa yang terjadi akibat tindakannya. 4. Merancang dialog yang menghasilkan keadaan akhir Memberikan gambaran hasil yang akan didapat oleh pengguna jika melakukan suatu tindakan sehingga pengguna tidak salah dalam memilih tindakan dan melanjutkan ke tahap selanjutnya. 5. Memberikan pencegahan dan penanganan kesalahan Sistem
seharusnya
dirancang
agar
pengguna
tidak
melakukan kesalahan serius. Jika terjadi kesalahan pun sistem dapat memberikan peringatan yang sederhana untuk pemulihan kesalahan yang terjadi.
13
6. Kemudahan untuk kembali ke tindakan sebelumnya Sistem
dirancang
agar
dapat
kembali
ke
tindakan
sebelumnya sehingga pengguna tidak perlu khawatir jika terjadi kesalahan. 7. Mendukung pusat kendali internal Pengguna memiliki kontrol penuh atas sistem sehingga sistem akan merespon apapun yang dilakukan oleh pengguna, bukan sebaliknya. 8. Mengurangi beban ingatan jangka pendek Dengan keterbatasan ingatan yang dimiliki oleh manusia, sistem harus dirancang sesederhana mungkin dengan tujuan pengguna tidak memerlukan waktu yang lama untuk beradaptasi menggunakan sistem.
2.1.2
Perangkat Lunak 2.1.2.1
Definisi Perangkat Lunak Menurut
Pressman
(2010:4),
perangkat
lunak
didefinisikan sebagai berikut: 1. Instruksi – instruksi (program komputer) yang jika dieksekusi akan menghasilkan fungsi dan performa yang diinginkan. 2. Struktur
data
yang
memanipulasi informasi.
memungkinkan
program
untuk
14
3. Pendokumentasian yang menjelaskan operasi dan kegunaan dari sebuah program.
2.1.2.2
Scrum Scrum adalah metode pengembangan perangkat lunak cepat yang dianut oleh Jeff Sutherland dan tim pengembangnya pada
awal
tahun
1990.
Beberapa
tahun
belakangan,
pengembangan menggunakan metode Scrum dilakukan oleh Schwaber dan Beedle (Pressman, 2010:82). Prinsip Scrum digunakan untuk membimbing kegiatan pengembangan dalam proses yang menggabungkan framework berikut: activities, requirements, analisis, perancangan, evolusi, dan pengiriman.
Gambar 2.1 Alur Kerja Scrum (Pressman, 2012)
15
Scrum menekankan penggunaan sekumpulan proses perangkat lunak yang telah terbukti efektif dalam penyelesaian projek dalam waktu yang singkat, perubahan requirements, dan kebutuhan bisnis. Setiap proses yang terdapat pada gambar 2.1 memiliki aksinya masing – masing: 1. Backlog: daftar kebutuhan projek atau fitur – fitur yang memiliki nilai bisnis pada customer. Penambahan kebutuhan atau fitur dapat dilakukan kapanpun. 2. Sprints: susunan kegiatan yang diperlukan untuk mencapai kebutuhan dan fitur – fitur yang telah ditentukan pada backlog dalam jangka waktu yang telah ditentukan (biasanya 30 hari). Perubahan tidak diperbolehkan saat sprint sedang berlangsung. 3. Scrum meetings: pertemuan tim Scrum biasanya hanya dilakukan dalam waktu singkat yaitu sekitar lima belas menit setiap harinya. Tiga pertanyaan kunci yang diajukan: • Apa saja yang telah anda lakukan sejak pertemuan terakhir? • Hambatan apa yang anda temui? • Apa
yang anda rencanakan
untuk
menyelesaikan
pekerjaan anda pada pertemuan selanjutnya?
16
4. Demos: sehingga
pengiriman dapat
perangkat
lunak
diimplementasikan
pada untuk
customer dilakukan
demonstrasi dan evaluasi oleh customer.
Dalam perancangan dan implementasi aplikasi ini dinggunakan metode perancangan Scrum karena metode – metode yang terdapat pada Scrum menerapkan pekerjaan dalam batas waktu dan tuntutan tugas dalam periode iterasi yang sempit sehingga penerapan Scrum sesuai dengan kondisi dan waktu dalam pembuatan skripsi yang terbatas.
2.1.3
Unified Modeling Language (UML) Menurut Whitten and Bentley (2007:371), Unified Modelling Language (UML) adalah sekumpulan ketentuan pemodelan yang digunakan untuk menentukan dan menggambarkan sebuah sistem piranti lunak yang berhubungan dengan objek. Dalam bidang perancangan piranti lunak penggunaan UML telah menjadi standar dalam bahasa pemodelan. Object Management Group (OMG) merupakan industri yang menstandarisasi UML pada November 1997 dan secara terus – menerus memperbaikinya berdasarkan kebutuhan industri. Terdapat tiga belas diagram yang termasuk dalam UML versi 2.0. Tetapi jika sistem telah digambarkan dan dapat dipahami dengan baik menggunakan diagram – diagram yang telah dibuat maka tujuan dari
17
UML telah tercapai sehingga tidak perlu membuat ketiga belas diagram tersebut.
2.1.3.1
Use Case Use Case diagram menggambarkan interaksi antara sistem dengan sistem eksternal dan pengguna, siapa yang akan menggunakan sistem dan bagaimana cara pengguna berinteraksi dengan sistem (Whitten and Bentley, 2007:246). Ada tiga elemen penting dalam Use Case diagram, yaitu aktor, use cases, dan relationship. Aktor dapat diartikan sebagai siapapun atau apapun yang melakukan interaksi dengan sistem untuk pertukaran informasi. Use cases merupakan urutan perilaku yang terkait, baik otomatis ataupun manual, yang bertujuan untuk menyelesaikan sebuah tugas bisnis. Sedangkan relationship menggambarkan hubungan antara dua simbol dalam sebuah use case diagram.
Gambar 2.2 Contoh Use Case Diagram
18
Ada beberapa macam dari relationship yang digunakan dalam use case (Whitten and Bentley, 2007:248): 1. Associations Associations menggambarkan interaksi antara use cases dengan aktor. Associations digambarkan dengan simbol garis dengan atau tanpa panah.
Gambar 2.3 Contoh Associations Relationship
Associations dengan anak panah yang berasal dari aktor menunjuk ke use cases menandakan bahwa use cases dipicu oleh tindakan aktor. Sedangkan associations tanpa panah menandakan interaksi antara use cases dengan aktor penerima.
2. Extends Extends digunakan ketika fungsi dari sebuah use cases terdiri dari beberapa tahap. Dengan extends, use cases tersebut akan menghasilkan use cases baru yang mewakili fungsi tertentu. Use cases hasil dari extends disebut extension use case.
19
Gambar 2.4 Contoh Extends Relationship
3. Uses/Includes Uses/Includes digunakan ketika terdapat dua atau lebih use cases yang melakukan langkah yang sama. Langkah yang sama tersebut baiknya dipisahkan menjadi use cases berbeda yang
disebut
abstract
use
case
untuk
mengurangi
redundancy pada use cases. Hubungan antara abstract use case dengan use cases disebut uses/includes relationship.
«uses»
Memesan Barang
Melakukan Login «uses» Mengubah Data Pribadi
Gambar 2.5 Contoh Uses/Includes Relationship
4. Depends On Depends
On
digunakan
ketika
terdapat
hubungan
ketergantungan antara satu use cases dengan use cases
20
lainnya, dimana suatu use cases tidak dapat dilakukan sebelum use cases lain dilakukan.
Gambar 2.6 Contoh Depends On Relationship
5. Inheritance Inheritance digunakan ketika terdapat dua atau lebih aktor yang
melakukan
use
cases
yang
sama.
Untuk
menyederhanakan rancangan diagram diperlukan aktor abstrak. Aktor abstrak ini memiliki langkah yang dimiliki aktor lain.
Gambar 2.7 Contoh Inheritance Relationship
21
2.1.3.2
Use Case Narrative Use case narrative merupakan gambaran berupa kalimat mengenai suatu langkah dan mendeskripsikan bagaimana pengguna berinteraksi dengan sistem untuk menyelesaikan pekerjaannya (Whitten and Bentley, 2007:246).
2.1.3.3
Activity Diagram Activity
diagram
digunakan
untuk
memberikan
gambaran mengenai alur dari sebuah proses bisnis, langkah dalam sebuah use cases, dan metode dari sebuah objek (Whitten and Bentley, 2007:390).
Gambar 2.8 Contoh Activity Diagram
22
Elemen – elemen yang terdapat dalam activity diagram:
Tabel 2.1 Tabel Elemen pada Activity Diagram
Simbol
yang
digunakan
untuk
menandakan dimulainya proses. Initial State Simbol
yang
digunakan
untuk
menandakan suatu aktivitas. Semua aktivitas pada diagram berdasarkan Action State
urutan action state.
Simbol
yang
menandakan
digunakan jalur
dari
untuk sebuah
aktivitas ke aktivitas selanjutnya. Control Flow 1. Decision Menandakan memilih
kondisi
salah
satu
untuk alur
aktivitas. 2. Merge Decision/Merge
Menandakan
penggabungan
alur aktivitas yang dipisahkan oleh decision.
23
1. Fork Menandakan adanya dua atau lebih action state yang jalan bersamaan. Fork/Join
2. Join Menandakan berakhirnya proses parallel.
Simbol
yang
digunakan
untuk
menandakan berakhirnya proses. Final State
2.1.3.4
Class Diagram Class
diagram
digunakan
untuk
menggambarkan
struktur objek – objek bernama kelas yang menyusun suatu sistem dan juga hubungan antara kelas – kelas tersebut (Whitten and Bentley, 2007:400).
Gambar 2.9 Contoh Class Diagram
24
Notasi – notasi yang terdapat di dalam class diagram adalah sebagai berikut: 1. Kelas Setiap kelas digambarkan deangan sebuah kotak yang terbagi menjadi tiga bagian, yaitu nama kelas, atribut kelas, dan operasi kelas.
2. Visibility Visibility berfungsi untuk menentukan apakah atribut atau operasi dari suatu kelas dapat digunakan oleh kelas lainnya atau tidak. Terdapat tiga visibility dalam class diagram yang dapat dilihat pada tabel berikut:
Tabel 2.2 Tabel Visibility pada Class Diagram Visibility
Simbol
Keterangan Atribut
Private
-
dan
operasi
hanya
dapat digunakan oleh kelas itu sendiri. Atribut
Protected
#
dan
operasi
hanya
dapat digunakan oleh kelas itu sendiri dan kelas turunannya. Atribut
Public
dan
operasi
dapat
+ digunakan oleh semua kelas
25
yang berhubungan.
3. Asosiasi Asosiasi
digunakan
untuk
menggambarkan
adanya
hubungan antara kelas dengan kelas lainnya sehingga membuat kelas – kelas yang terhubung dapat saling mengirimkan pesan.
Gambar 2.10 Contoh Asosiasi
Gambar 2.9 menjelaskan bahwa Lecturer mengajar Class atau Class diajar oleh Lecturer.
4. Multiplicity Multiplicity merupakan istilah yang digunakan untuk menentukan kardinalitas banyaknya kelas yang berhubungan dengan kelas yang dimaksud. Terdapat empat jenis multiplicity, yaitu exactly one (1), zero or one (0..1), zero or more (0..*), one or more (1..*).
26
Gambar 2.11 Contoh Multiplicity
Gambar 2.10 menjelaskan bahwa Lecturer dapat mengajar satu atau banyak Class dan Class hanya dapat diajar oleh satu Lecturer.
5. Generalisasi Generalisasi menggambarkan hubungan antara superclass dan subclass, dimana superclass merupakan bentuk umum dari subclass dan subclass adalah bentuk spesifik dari superclass. Sehingga superclass memiliki semua properti yang dimiliki oleh subclass. Generalisasi menunjukan adanya inheritance pada class diagram.
Gambar 2.12 Contoh Generalisasi
27
6. Agregasi Agregasi adalah tipe hubungan yang unik dimana satu objek merupakan bagian dari objek lain. Dalam agregasi dikenal istilah whole/part relationship. Sifat agregasi adalah asimetris jadi Kelas A merupakan bagian dari Kelas B, tetapi Kelas B bukan bagian dari A.
Gambar 2.13 Contoh Agregasi
7. Komposisi Komposisi bisa disebut strong aggregation sehingga dalam hubungan antar kelas lebih terikat kuat dibandingkan agregasi. Dimana Kelas A merupakan bagian dari Kelas B, tetapi Kelas B tidak akan ada jika Kelas A tidak ada.
Gambar 2.14 Contoh Komposisi
28
2.1.3.5
Sequence Diagram Sequence diagram digunakan untuk menggambarkan model logika dari sebuah use case yang menunjukan interaksi antara aktor dengan sistem dalam pengiriman pesan dalam suatu urutan waktu tertentu (Whitten and Bentley, 2007:394). Elemen – elemen yang terdapat dalam sequence diagram adalah sebagai berikut:
1. Aktor Aktor pada sequence diagram memiliki simbol yang sama seperti yang digunakan pada use case diagram. Di sini aktor juga berperan sebagai pengguna yang berinteraksi dengan sistem.
2. Sistem Sistem disimbolkan dengan sebuah persegi panjang yang mewakili kelas – kelas pada class diagram.
:Sistem
Gambar 2.15 Sistem
29
3. Lifeline Lifeline disimbolkan dengan garis putus – putus yang berada di bawah simbol aktor dan sistem, menandakan mulainya sebuah rangkaian proses.
4. Activation Bars Activation bar disimbolkan dengan persegi panjang pada lifeline yang menandakan periode waktu dimana sistem aktif berinteraksi.
Gambar 2.16 Activation Bars
5. Input Messages Input messages disimbolkan dengan tanda panah horizontal yang berasal dari aktor menuju sistem berisi method dari setiap sistem.
Gambar 2.17 Input Messages
30
6. Output Messages Output
messages
disimbolkan
dengan
tanda
panah
horizontal putus – putus yang berasal dari sistem menuju aktor berisi jawaban dari sistem atas input messages yang dikirim.
Gambar 2.18 Output Messages
7. Frame Frame merupakan sebuah kotak yang digunakan untuk menyatukan satu atau lebih message dalam pecahan rangkaian perulangan
proses. (loop),
Frame seleksi
dapat
menunjukan
(alternative),
(optional).
opt
Gambar 2.19 Frame
dan
adanya pilihan
31
2.2
Teori Khusus 2.2.1
Android Android merupakan sebuah sistem operasi mobile yang open source. Android sendiri mencakup sistem operasi, middleware, dan aplikasi mobile yang berbasis Linux Kernel yang dikembangkan oleh Google dan Open Handset Alliance. Tujuan dari Android Open Source Project adalah untuk membangun produk real-world yang dapat meningkatkan pengalaman para pengguna perangkat mobile (Android Open Source Project, 2012). Berikut ini merupakan karakteristik utama yang dimiliki oleh Android: 1. Terbuka Android dibuat benar – benar terbuka sehingga memungkinkan pengembang dapat membuat aplikasi mobile yang menarik pada semua handset berbasis Android. Dengan sifat yang terbuka tersebut memungkinkan sebuah aplikasi dapat memanggil salah satu fungsi inti ponsel seperti membuat panggilan, mengirim pesan, atau menggunakan kamera sehingga menciptakan pengalaman yang lebih kaya bagi pengguna. 2. Semua aplikasi dibuat sama Android tidak membedakan antara aplikasi inti dengan aplikasi thirdparty. Semuanya memiliki akses yang sama terhadap kemampuan ponsel dalam menyediakan layanan dan aplikasi yang luas pada para pengguna.
32
3. Memecahkan batasan aplikasi Android memecahkan batasan untuk membangun aplikasi baru dan inovatif. Pengembang dapat menggabungkan informasi dari web dengan data yang ada pada ponsel individu seperti kontak, kalender, lokasi geografi untuk memberikan pengalaman yang lebih relevan pada pengguna. 4. Pengembangan aplikasi yang cepat dan mudah Android menyediakan akses ke berbagai libraries dan tools yang dapat digunakan untuk membangun aplikasi yang lebih kaya. Contohnya perangkat Android dapat berkomunikasi satu sama lain sehingga memungkinkan peer-to-peer aplikasi sosial (Open Handset Alliance, 2012).
Aplikasi yang berjalan di Android ditulis dengan bahasa pemrograman Java menggunakan Android Software Development Kit (Android SDK). Aplikasi – aplikasi yang telah dibuat oleh berbagai pengembang dapat diunduh dari situs third-party seperti Google Play. Google Play merupakan website yang dikembangkan oleh Google untuk digunakan sebagai tempat bagi para pengembang menaruh/mnggunggah aplikasi yang telah mereka kembangkan dan bagi para pengguna digunakan sebagai tempat mencari aplikasi sesuai dengan kriteria yang diinginkan.
33
2.2.1.1
Versi Android Android memiliki banyak versi semenjak dirilis pertama kali. Setiap versi terbaru yang dirillis memiliki pembaharuan seperti perbaikan terhadap bug ataupun pemambahan fitur – fitur baru. Berikut ini merupakan versi – versi yang dimiliki Android (Safaat, 2012:10): 1. Android versi 1.1 Pada tanggal 9 Maret 2009, Google merilis Android versi 1.1 yang dilengkapi dengan pembaharuan estetis pada aplikasi, jam alarm, pencarian suara, pengiriman pesan dengan Gmail, dan pemberitahuan email. 2. Android versi 1.5 (Cupcake) Berselang sekitar 2 bulan dari versi 1.1 tepatnya pada tanggal 30 April 2009 Android versi 1.5 dirilis. Android versi ini didasarkan apda Linux Kernel 2.6.27. Pada versi ini terdapat pembaharuan antarmuka dan penambahan fitur – fitur. Permbaharuan yang dilakukan adalah sebagai berikut: Widget dan folder baru yang dapat ditambahkan ke layar utama. Merekam dan menonton video dengan modus kamera. Menggunggah video langsung ke Youtube melalaui handset.
34
Keyboard pada layar yang dapat disesuaikan dengan sistem. Dukungan Bluetooth A2DP (Advanced Audio Distribution Profile) 3. Android versi 1.6 (Donut) Pada tanggal 15 September 2009 Android versi 1.6 dirilis. Pembaharuan yang dilakukan adalah sebagai berikut: Improvisasi pada Android Market. Kamera,
camcorder,
dan
antarmuka
galeri
yang
terintegrasi. Multi select pada galeri. Dukungan resolusi layar Wide Video Graphics Array. CDMA/EVDO, VPN. Gesture dan Text-to-Speech engine. Teknologi text to change speech. 4. Android versi 2.0/2.1 (Eclair) Pada tanggal 26 Oktober 2009 Android versi 2.0 dirilis. Pembaharuan yang dilakukan adalah sebagai berikut: Optimalisasi kecepatan perangkat keras. Dukungan HTML 5. Peningkatan Google Maps 3.1.2 Microsoft Exchange Support. Live Wallpaper.
35
Dukungan flash untuk kamera 3,2MP dan digital zoom. Bluetooth 2.1. 5. Android versi 2.2 (Froyo) Pada tanggal 20 Mei 2010 Android versi 2.2 dirilis. Android versi ini didasarkan pada Linux Kernel 2.6.32. Pembaharuan yang dilakukan adalah sebagai berikut: Optimasi sistem operasi Android, memori, dan performa. Memungkinkan shortcut untuk aplikasi yang diinginkan. Adanya fasilitas tethering. Dukungan password numeric dan alpha numeric. 6. Android versi 2.3 (Gingerbread) Pada tanggal 6 Desember 2010 Android versi 2.3 dirilis. Pembaharuan yang dilakukan adalah sebagai berikut: Perubahan user interface. Mendukung resolusi yang lebih besar. Peningkatan fungsi copy-paste. Terdapat Gyroscope dan sensor. Mendukung mixable audio effects. Tersedia download manager.
36
7. Android versi 3.0/3.1/3.2 (Honeycomb) Android versi ini lebih ditujukan untuk tablet yang memiliki prosesor dan layar yang lebih besar. Pembaharuan yang dilakukan adalah sebagai berikut: User interface khusus untuk tablet. Mendukung multi prosesor. 8. Android versi 4.0 (Ice Cream Sandwich) Pada tanggal 19 Oktober 2011 Android versi 4.1 dirilis. Pembaharuan yang dilakukan adalah sebagai berikut: Lockscreen dengan face recognition. Berbagi
informasi
dengan
NFC
(Near
Field
Communication). Pencarian email secara offline. 9. Android versi 4.1 (Jelly Bean) Android versi 4.1 merupakan versi Android yang paling cepat dan halus. Pembaharuan yang dilakukan adalah sebagai berikut: Peningkatan kebebasan pengguna dalam mengatur home screen. Peningkatan kualitas text-to-speech dan voice typing. Peningkatan kualitas pencarian pada Google. Dukungan Google Now.
37
2.2.1.2
Arsitektur Android Android memiliki banyak komponen dalam arsitektur pembangunannya, berikut ini merupakan gambaran arsitektur Android yang tebagi menjadi beberapa layer (Safaat, 2012:6):
Gambar 2.20 Arsitektur Android
2.2.1.2.1
Applications Pada layer ini terdapat beberapa aplikasi awal yang berasal dari setiap pabrikasn seperti email client, program SMS, browser, dll. Semua aplikasi tersebut
dibuat
dengan
bahasa
Application
Programming Interface (API) libraries yang sama.
38
2.2.1.2.2
Application Framework Application Framework menyediakan semua kelas yang digunakan dalam pembuatan aplikasi Android. Dan juga merupakan sebuah gambaran umum untuk akses perangkat keras serta manajemen user interface dan application resource. Arsitektur aplikasi dirancang supaya kita dengan mudah dapat menggunakan
kembali
komponen
yang
sudah
digunakan (reuse).
2.2.1.2.3
Libraries Pada
layer
ini
Android
menyertakan
kumpulan core library C/C++ seperti libc dan Secure Sockets Layer (SSL) yang digunakan oleh berbagai komponen Android. Penjelasan library lainnya adalah sebagai berikut: 1. Media Library untuk memainkan audio dan video. 2. Surface manager untuk menyediakan pengaturan tampilan. 3. Scene Graph Library (SGL) dan Open Graphics Library
(OpenGL)
untuk
kemampuan
menampilkan grafik dua dan tiga dimensi. 4. SQLite untuk dukungan dalam database.
39
5. SSL dan WebKit terintegrasi dengan web browser dan security.
2.2.1.2.4
Android Runtime Layer ini terdiri dari core libraries dan Dalvik Virtual Machine (DVM) yang merupakan sebuah engine untuk menjalankan bebagai aplikasi pada Android. Core libraries menyediakan berbagai fungsionalitas
yang ada pada Java
libraries.
Sedangkan DVM adalah sebuah virtual machine berbasis register yang menjalankan fungsi threading dan low-level memory untuk memastikan agar device dapat menjalankan aplikasi secara efisien.
2.2.1.2.5
Linux Kernel Android menggunakan Linux Kernel 2.6 yang berfungsi sebagai core system service seperti keamanan, menejemen memori, manajeman proses, network, dan driver model.
40
2.2.1.3
Fundamental Aplikasi Terdapat empat jenis komponen pada aplikasi Android (Safaat, 2012:9) yaitu: 1. Activities Suatu activity akan menyajikan user interface kepada pengguna sehingga pengguna dapat melakukan interaksi. Sebuah aplikasi Android bisa jadi hanya memiliki satu activity, tetapi umumnya aplikasi memiliki banyak activity tergantung pada tujuan aplikasi dan design dari aplikasi tersebut. Untuk pindah dari satu activity ke activity lain dapat dilakukan dengan satu event, misalnya click tombol atau memilih opsi. Secara hirarki sebuah windows activity dinyatakan dengan method Activity.setContentView(). 2. Service Service tidak memiliki Graphical User Interface (GUI), tetapi service berjalan secara background, sebagai contoh saat media player sedang memainkan lagu dari list yang ada, media player akan memiliki dua atau lebih activity yang memungkinkan pengguna untuk memilih lagu atau menulis sms saat dimana lagu tetap dimainkan. Untuk menjaga lagu tetap dimainkan itu, activity player dapat menjalankan service. Service dijalankan pada thread utama dari proses aplikasi.
41
3. Broadcast Receiver Broadcast receiver berfungsi menerima dan bereaksi untuk menyampaikan notifikasi seperti low battery. Aplikasi juga dapat
menginisiasi
broadcast
misalnya
memberikan
informasi pada aplikasi lain bahwa ada data yang telah diunduh ke perangkat dan siap untuk digunakan. 4. Content Provider Content Provider membuat kumpulan aplikasi data secara spesifik sehingga bisa digunakan oleh aplikasi lain. Data disimpan dalam file sistem seperti databse SQLite. Content provider menyediakan cara untuk mengakses data yang dibutuhkan oleh suatu activity.
2.2.2
Android Software Development Kit (SDK) Android SDK adalah tools API, sample code, dan dokumentasi yang diperlukan untuk memulai mengembangkan aplikasi pada platform Android. Sebagai platform aplikasi-netral, Android memberi kesempatan untuk membuat aplikasi yang dibutuhkan yang bukan merupakan aplikasi bawaan smartphone. Beberapa fitur penting yang terdapat pada Android (Safaat, 2012:5) adalah: 1. Application Framework untuk pergantian komponen dan reusable. 2. DVM dioptimalkan untuk perangkat mobile. 3. Integrated browser berdasarkan engine open source WebKit.
42
4. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D dan 3D berdasarkan spesifikasi OpenGL 1.0. 5. SQLite untuk menyimpan data. 6. Media Support yang mendukung audio, video, dan gambar (MPEG4, H.254, MP3, AAC, AMR, JPG, PNG, GIF), GSM Telephony. 7. Bluetooth, EDGE, 3G, dan WiFi. 8. Kamera, GPS, kompas, dan accelerometer. 9. Integrated development environment (IDE) yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori, dan plugin.
2.2.3
Eclipse Eclipse adalah sebuah komunitas bagi individu dan organisasi yang ingin berkolaborasi secara commercially-friendly perangkat lunak bersifat open source. Proyek perusahaan terfokus pada membangun sebuah platform pengembangan terbuka terdiri dari extensible framework, tools dan runtimes untuk membangun, menyebarkan dan mengelola perangkat lunak (Eclipse, 2012). Eclipse Foundation adalah perusahaan non profit independent, perusahaan didukung anggota yang menjalankan proyek Eclipse dan membantu mengolah open source community dan sebuah ekosistem yang erat kaitannya dengan pemenuhan produk dan jasa. Proyek Eclipse awalnya diciptakan oleh IBM pada bulan November 2001 dan didukung oleh persatuan vendor perangkat lunak.
43
Eclipse merupakan aplikasi integrated development environment (IDE) yang
memperbolehkan
pengembang
aplikasi
menambahkan
fungsionalitas dengan mudah dalam bentuk plugin. Seperti
yang
telah
diketahui
Android
dikembangkan
menggunakakn Java. Telah banyak beredar Java IDE seperti JBuilder dan NetBeans. Namun Open Handset Alliance dan Google telah memilih menggunakan Eclipse sebagai Java IDE dalam pengembangan Android. Berikut ini dijelaskan mengapa Eclipse direkomendasikan sebagai Java IDE untuk aplikasi Android (DiMarzio, 2008:11): 1. Sesuai dengan karakteristik Android yang terbuka bagi para pengembang, Eclipse merupakan salah satu yang memiliki fitur lengkap dan gratis dari semua Java IDE yang ada. Eclipse juga sangat mudah digunakan dengan waktu pembelajaran yang minimal. 2. Open Handset Alliance telah merilis plugin Android untuk Eclipse sehingga memungkinkan untuk membuat projek Android yang spesifik, melakukan kompilasi, dan menggunakan Android Emulator untuk melakukan debug.
2.2.4
Android Development Tools (ADT) ADT adalah sebuah plugin yang dirancang untuk menyediakan serangkaian tools yang terintegrasi dengan Eclipse IDE. ADT menyediakan banyak fitur yang memudahkan pengembangan aplikasi Android secara cepat. ADT juga menyediakan akses GUI untuk beberapa
44
command line pada SDK tools sehingga mempercepat prototyping, designing, dan pembangunan user interface aplikasi. Berikut ini dijelaskan fitur – fitur penting Eclipse dan ADT (Android Developer Tools, 2012): 1. Pembuatan, pengembangan, packaging, instalasi, dan debbugging projek Android yang terintegrasi. ADT mengintegrasikan banyak development workflow tasks pada Eclipse, sehingga memudahkan pengembangan yang cepat dan pengujian untuk aplikasi Android yang dibuat. 2. Integrasi tools SDK Banyak tools SDK yang terintegrasi pada menu – menu Eclipse atau sebagai bagian dari proses background yang dijalankan ADT. 3. Bahasa pemrograman Java dan XML editors Editor bahasa pemrograman Java mengandung fitur – fitur IDE seperti
syntax
checking,
auto-cmopletion,
dan
dokumentasi
framework API Android. XML editor berguna untuk mengubah file XML Android dalam bentuk graphical layout sehingga hanya perlu dilakukan drag dan drop. 4. Dokumentasi untuk Framework API Android Mengakses dokumentasi dengan hovering di atas kelas, metode, atau variabel.
45
2.2.5
Location Based Service Yulianto (2010:64) mendefinisikan Location Based Service (LBS) sebagai suatu layanan yang memberikan informasi mengenai posisi geografis pengguna melalui peralatan mobile pada suatu waktu. Sehingga teknologi LBS ini dapat digunakan untuk melakukan pencarian tempat – tempat terdekat dari pengguna saat itu berada seperti hotel, SPBU, ATM, alamat, dll. Penggunaan LBS sebenarnya sama dengan pencarian lokasi menggunakan peta biasa, hanya saja LBS dapat memberikan informasi tambahan mengenasi posisi pengguna yang bergerak.
2.2.5.1
Komponen Location Based Service Magon and Shukla, komponen – komponen yang dibutuhkan LBS adalah: 1. Lokasi atau Posisi Lokasi atau posisi mencakup latitude (posisi utara atau selatan), longitude (posisi timur atau barat), dan altitude (ketinggian dari permukaan laut). 2. Data Geografi Data geografi menyediakan data komponen lokasi seperti jaringan jalan, alamat pengguna, bangunan, daerah seperti pegunungan dan sungai, lokasi restoran, hotel, dll.
46
3. Pusat Kendali Pusat kendali berperan sebagai pusat pengelolahan data dan distribusi layanan lokasi. 4. Data Lokasi atau Data Peta Data ini dikelola dan dimanipulasi untuk menyediakan beberapa layanan yang berdasarkan pada lokasi pengguna. 5. Sistem Komunikasi Sistem komunikasi digunakan untuk menyampaikan lokasi ke pusat kendali dan menyediakan layanan yang diperlukan.
2.2.5.2
Global Positioning System (GPS) GPS adalah suatu sistem navigasi yang berfungsi untuk menentukan lokasi, kecepatan, dan arah melalui signal yang diterima lebih dari 24-32 satelit yang berorbit 20000 km (11000 mil laut) di atas bumi. Prinsip dasar di balik GPS adalah pengukuran jarak (distance/range) antara satelit dan receiver dari transmisi signal radio. Sebuah GPS receiver memerlukan empat atau lebih satelit untuk menghasilkan jarak dan menggunakan informasi ini untuk menyimpulkan lokasi (Yulianto, 2010:64).
47
2.2.5.2.1
Cara Kerja GPS Satelit – satelit GPS mentransmisikan signal radio ke bumi yang mengandung informasi tentang satelit, contohnya lokasi dan waktu saat itu, menginformasikan pengguna secara tepat di mana satelit berada dalam orbit mereka sementara GPS receivers secara pasif menerima signal satelit tersebut. Semua satelit-satelit GPS mensinkronasi operasi – operasi agar signal – signal yang berulang ini ditransmisikan pada waktu yang bersamaan.
2.2.5.2.2
Perkembangan GPS Chai
(2004:102)
menjelaskan
saat
ini
teknologi GPS dibedakan menjadi tiga, yaitu: 1. GPS-Phone Teknologi ini menggabungkan Global System of Mobile (GSM) dan GPS sebagai penyedia jaringan komunikasi dan informasi posisi. 2. A-GPS A-GPS dikembangkan untuk meminimalisasi kekurangan pada teknologi GPS-Phone dengan menanamkan
very
sensitive
GPS
receivers
sehingga signal GPS dapat diterima lebih kuat di dalam ruangan.
48
3. Terrestrial Based Network Solutions Dikembangkan
dengan
tujuan
meningkatkan
akurasi GPS dengan menggunakan signal GPS, TV, dan special ground based transmitter sehingga didapat jarak penentuan lokasi.
2.2.6
JavaScript Object Notation (JSON) JavaScript Object Notation (JSON) merupakan lightweight datainterchange yang berbasis JavaScript Programming Language. JSON berbasis teks/tulisan dengan format yang dapat dibaca dan dikenali oleh manusia untuk merepresentasikan struktur data sederhana dan array asosiatif. JSON merupakan bahasa independen yang lengkap dan menggunakan konvensi yang familiar bagi para programmer bahasa C, antara lain bahasa pemrograman C, C++, C#, Java, JavaScript, Perl, Python, dan lainnya (Bo, 2010:4).
2.2.6.1
Struktur dasar JSON JSON mempunyai dua struktur dasar yakni JSONObject dan
JSONArray. JSONObject merupakan kumpulan dari
pasangan nama/nilai yang diawali dengan kurung kurawal pembuka ({) dan diakhiri dengan kurung kurawal penutup (}). Setiap nama diikuti dengan titik dua (:) dan setiap nama atau nilai yang berpasangan dipisahkan dengan koma (,). Struktur JSONObject dapat dilihat pada Gambar 2.21.
49
Gambar 2.21 Objek pada JSON
JSONArray merupakan urutan dari kumpulan nilai yang diawali dengan kurung siku pembuka ([) dan diakhiri dengan kurung siku penutup (]). Nilainya dipisahkan dengan koma (,). Struktur JSONArray dapat dilihat pada Gambar 2.22.
Gambar 2.22 Array pada JSON
Nilai (value) bisa berupa string dengan double quotes, nilai angka, true , false , null, JSONObject, atau JSONArray. Deskripsi dari value dapat dilihat pada Gambar 2.23.
Gambar 2.23 Value pada JSON
50
Semua struktur tersebut merupakan struktur data universal. Hampir semua bahasa pemrograman modern mendukung salah satu atau semua bentuk struktur tersebut. Sehingga memungkinkan pertukaran format data menggunakan bahasa pemrograman berdasarkan pada struktur – struktur tersebut. Saat ini penggunaan JSON objects direpresentasikan dengan mempergunakan tipe data Amos II yang dipergunakan untuk merepresentasikan konten dalam streams of JSON objects yang dikirim melalui Internet (Bo, 2010:6).
2.2.7
SQLite SQLite merupakan database Open Source yang dipergunakan dalam Android. SQLite mendukung fitur standard relational database seperti SQL syntax. SQLite hanya membutuhkan sedikit memori saat melakukan runtime (sekitar 250 KByte). SQLite merupakan software library yang mengimplementasikan self-contained,
serverless,
zero-
configuration, transactional SQL database engine. SQLite merupakan deployed SQL database engine yang terbesar di dunia (Lee, 2012:103). SQLite mendukung tipe data TEXT (seperti string pada Java), INTEGER (seperti long pada Java) dan REAL (seperti double pada Java). Semua jenis tipe lain harus dikonversikan menjadi satu dari salah satu jenis tipe sebelum disimpan dalam database. SQLite tersedia pada
51
setiap perangkat Android. Dengan mempergunakan SQLite database di Android tidak memerlukan pengaturan database ataupun administrasi. Android menyediakan dukungan secara penuh untuk SQLite database. Setiap database yang dibuat akan dapat diakses dengan nama dari setiap kelas yang ada di dalam aplikasi. Cara yang direkomendasikan untuk membuat SQLite database baru ialah dengan membuat subclass dari SQLiteOpenHelper dan override pada onCreate() method. SQLite queries dapat dijalankan mempergunakan SQLiteDatabase query() methods yang menerima berbagai macam parameter, seperti table to query, the projection, selection, columns, grouping, dan lainnya.
2.2.8
Jejaring Sosial Jejaring sosial merupakan kumpulan individu – individu yang membentuk sebuah kelompok, seperti masyarakat pedesaan atau lingkungan sekitar tempat tinggal. Jejaring sosial juga mungkin terbentuk dalam lingkungan kerja, universitas, sekolah, dan yang paling popular adalah jejaring sosial online. Jejaring sosial online saat ini sangat popular karena tidak seperti lingkungan kerja, universitas, dan sekolah, Internet diisi oleh jutaan individu dengan tujuan untuk mengumpulkan dan berbagi berbagai informasi, seperti cara memasak, olahraga, pekerjaan, bisnis, marketing, dan berbagai topik lainnya yang sangat bervariasi dan kaya sebagai sebuah cerita dari seluruh dunia (Social Networking, 2013).