BAB 2 LANDASAN TEORI 1.1 Teori Umum Teori-teori yang bersifat umum yang digunakan dalam merancang aplikasi. Teori-teori yang digunakan meliputi teori Interaksi Manusia dan Komputer (IMK), Rekayasa Piranti Lunak (RPL), Unified Modeling Language (UML), web server, PHP Hypertext Preprocessor (PHP), dan database.
1.1.1 Interaksi Manusia dan Komputer (IMK) Interaksi Manusia dan Komputer (IMK) atau yang biasa juga dikenal sebagai Human Computer Interaction (HCI) adalah sebuah disiplin ilmu yang berfokus pada desain, evaluasi, dan implementasi dari sistem komputer interaktif untuk digunakan oleh manusia dengan studi terhadap fenomenafenomena besar mengenai HCI tersebut (Anonim1, 2012). 1.1.1.1 Lima Faktor Manusia Terukur Mengacu pada pendapat Shneiderman dan Plaisant (2010), terdapat 5 (lima) faktor manusia terukur yang digunakan sebagai indikator evaluasi mengenai tingkat kualitas dari sebuah desain yaitu: 1. Waktu belajar Menyatakan berapa lama waktu yang dibutuhkan oleh user untuk mempelajari bagaimana menggunakan berbagai aksi yang relevan dalam melakukan suatu tugas.
10
11
2. Kecepatan performa Menyatakan berapa lama waktu yang diperlukan untuk mengerjakan suatu tugas. 3. Tingkat kesalahan oleh user Mengukur berapa banyak dan jenis kesalahan apa yang dilakukan oleh user ketika mengerjakan tugas. Sistem tersebut harus memiliki tingkat kesalahan yang rendah bila sedang digunakan oleh user. 4. Daya ingat Seberapa baik user dapat memelihara ingatan mereka dalam jangka waktu tertentu. Daya ingat berkaitan dengan waktu belajar dan frekuensi user dalam menggunakan sistem, semakin sering user menggunakan sistem maka semakin mudah user mengingat sistem tersebut. 5. Kepuasan subjektif Menyatakan tingkat kepuasan user dalam melihat keseluruhan aspek pada antarmuka (interface). Hal tersebut dapat dilakukan dengan melakukan interview atau kuesioner.
1.1.1.2 Delapan Aturan Emas Berdasarkan Shneiderman dan Plaisant (2010), terdapat Delapan Aturan Emas (Eight Golden Rules) yang digunakan sebagai pedoman dalam merancang suatu antarmuka pengguna (user interface) yang baik, yaitu:
12
1. Mempertahankan konsistensi Bentuk
konsistensi
dalam
perancangan
antarmuka
pengguna (user interface) meliputi penggunaan warna, layout, kapitalisasi, pemilihan jenis huruf, dan hal lainnya yang harus konsisten diterapkan secara keseluruhan. 2. Memenuhi kegunaan yang umum Mengenali
kebutuhan
user
yang
beragam
dan
memudahkan dalam melakukan perubahan konten. Mencari perbedaan user pemula dan user ahli, rentang usia, keterbatasan kemampuan fisik, perbedaan teknologi merupakan panduan dalam merancang interface. Menambahkan fitur-fitur untuk user pemula seperti menambahkan penjelasan, dan memberi fitur-fitur seperti shortcut untuk intermediate user dan untuk user ahli membuat tampilan yang kompleks dapat meningkatkan kualitas dari desain interface. 3. Memberikan umpan balik yang informatif Pada setiap aksi yang dilakukan oleh user harus disediakan umpan balik. Umpan balik tersebut harus dapat memberikan visualisasi hasil dari aksi yang telah dilakukan oleh user. 4. Merancang dialog penutupan Urutan dalam setiap aksi haruslah terorganisasi ke dalam suatu kelompok dengan urutan awal, tengah, dan akhir sehingga mudah dimengerti oleh user.
13
Adanya umpan balik dapat memberikan pilihan untuk menyiapkan ke kelompok aksi yang selanjutnya. 5. Memberikan penanganan kesalahan yang sederhana Suatu sistem yang baik harus dapat menghindarkan user dari kesalahan sebelum kesalahan itu terjadi. Jika user membuat suatu kesalahan, antarmuka (interface) harus dapat mendeteksi kesalahan dan memberikan informasi yang spesifik kepada user untuk menangani kesalahan. 6. Memberikan
kemudahan
untuk
kembali
ke
tindakan
sebelumnya Sistem harus dapat memungkinkan untuk melakukan pembalikan aksi. Hal ini dapat mengurangi kegelisahan user karena user mengetahui bahwa kesalahan dapat diperbaiki. Dengan demikian user akan semakin termotivasi untuk melakukan penjelajahan yang tidak biasa dipakai dan user tidak bingung jika mendapatkan pesan kesalahan. 7. Mendukung pusat kendali internal (internal locus of control) User yang sudah berpengalaman menginginkan bahwa mereka bertanggungjawab atas sebuah sistem maka sistem dapat memberikan respons terhadap setiap aksi yang dilakukan oleh user karena manusia yang memegang kontrol sistem.
14
8. Mengurangi beban ingatan jangka pendek Keterbatasan manusia dalam mengolah informasi dalam memori jangka pendek membutuhkan antarmuka (interface) yang sederhana dan mengurangi pergerakan window. Yang dimaksud pergerakan window seperti ketika user harus mengingat suatu informasi pada satu layar dan informasi tersebut digunakan pada layar yang lain.
1.1.2 Rekayasa Piranti Lunak Rekayasa piranti lunak merupakan sebuah layered technology dalam pembentukan suatu sistem atau aplikasi. Rekayasa piranti lunak meliputi sebuah proses, metode untuk mengelola rekayasa dari sebuah software, dan tools. Berikut merupakan lapisan atau layer dari sebuah rekayasa piranti lunak.
Gambar 2.1 Layer dari Rekayasa Piranti Lunak (Sumber: Pressman, Roger S., Software Engineering: A Practitioner’s Approach 7th edition, 2010)
15
Dasar dari rekayasa piranti lunak ada pada layer proses. Proses menentukan
framework
apakah
yang
harus
digunakan
sehingga
pembentukan teknologi rekayasa piranti lunak dapat berjalan secara efektif. Proses dari sebuah software telah membentuk manajemen kontrol dasar dari proyek software dan menentukan konteks metode teknis yang mana yang akan digunakan, produk kerja (model, dokumen, data, laporan, formulir) yang dihasilkan, hal-hal penting apa saja yang harus diperhatikan, mengecek kembali kualitas yang akan dihasilkan, dan mengelola perubahan-perubahan apa saja yang akan dilakukan. Metode dari rekayasa piranti lunak menyediakan secara teknis bagaimana membangun sebuah software. Metode meliputi sebuah daftar dari tugas yang akan dikerjakan, termasuk komunikasi, analisis kebutuhan, perancangan antarmuka, pembuatan program, percobaan program, dan dukungan. Tools dari rekayasa piranti lunak menyediakan dukungan otomatis atau semi otomatis bagi proses dan metode yang digunakan. Ketika tools telah terintegrasi satu sama lainnya, maka informasi yang dihasilkan oleh sebuah tools dapat digunakan oleh tools yang lainnya (Pressman, 2010). 1.1.2.1 Agile Development Agile development merupakan proses software modern yang saat ini banyak digunakan karena proses ini didesain dengan cara yang memungkinkan bagi development team untuk beradaptasi secara cepat dengan perubahan-perubahan yang ada.
16
Perubahan-perubahan tersebut meliputi kebutuhan user, kemajuan teknologi, perubahan budget serta perubahan lain yang berdampak pada pengembangan software. Agile development mengutamakan komunikasi yang efektif dengan user terutama dengan sesama development team (Pressman, 2010).
1.1.2.2 Extreme Programming (XP) Berdasarkan Pressman (2010), XP merupakan salah satu pendekatan dalam agile development. Semua sifat-sifat dan karakteristik yang ada pada agile development juga terdapat dalam XP. Dalam XP, terdapat 5 (lima) nilai yang menjadi dasar dalam semua kegiatan XP, yaitu: a. Komunikasi (communication) Untuk mencapai komunikasi yang baik antara software engineers dan para stakeholder, seperti fitur apa yang dibutuhkan dan kegunaan software, XP menekankan adanya kolaborasi yang baik, komunikasi yang efektif mengenai konsep software serta adanya umpan balik terus menerus. b. Kesederhanaan (simplicity) Dalam
mencapai
kesederhanaan,
XP
membatasi
developer untuk merancang kebutuhan yang mendesak dibanding kebutuhan yang akan datang.
17
Hal ini bertujuan agar mudah diimplementasikan pada pemrograman. Jika perancangan ingin diubah atau ditingkatkan, dapat dilakukan refactoring. Refactoring yang dimaksud adalah mengubah struktur internal desain atau source code tetapi tidak mengubah fungsi eksternal serta perilakunya. c. Umpan balik (feedback) Umpan balik berasal dari 3 (tiga) sumber yaitu implementasi software itu sendiri, user, dan anggota development team yang lain. Umpan balik diberikan setelah software dilakukan pengujian (testing) apakah setiap operasi berjalan sesuai fungsi yang ditetapkan. Umpan balik dilihat dari implementasi output, fungsi, dan karakteristik use case. d. Keberanian (courage) Setiap tindakan yang dilakukan dalam praktek XP menuntut keberanian atau kata yang tepat adalah disiplin. Developer team dalam XP harus mempunyai kedisiplinan (keberanian) dalam merancang kebutuhan sekarang, mengenali kebutuhan di masa yang akan datang yang mungkin akan berubah secara drastis, sehingga menuntut untuk merubah perancangan bahkan source code.
18
e. Menghargai (respect) Setiap anggota developer team memiliki nilai yang harus dihargai
oleh
sesama
anggota
dan
juga
user
dalam
pengembangan software tersebut. Ketika telah mencapai keberhasilan dalam mengembangkan software, maka team akan menghargai pula proses XP itu sendiri. Terdapat 4 (empat) tahapan utama dalam perancangan menggunakan XP berdasarkan Pressman (2010), yaitu: 1. Planning Pada tahapan ini, developer team dimulai dengan mengumpulkan persyaratan (requirement) yang memungkinkan team mengerti tentang teknikal
yang diperlukan dalam
pengembangan software. Kemudian team mulai melakukan penyusunan user stories untuk menggambarkan output apa yang diperlukan, fitur, dan kegunaan software yang akan dibuat. Setiap story diberikan nilai dan diurutkan oleh user. Developer kemudian menentukan waktu yang dikerjakan pada setiap story ketika terdapat story yang membutuhkan waktu lebih dari tiga minggu, user diminta untuk membagi story ke beberapa bagian yang lebih sederhana. Saat developer mengerjakan, user dapat menambahkan story baru, mengubah nilai story bahkan menghapusnya. XP team kemudian mempertimbangkan kembali dan melakukan modifikasi sesuai rencananya.
19
2. Design XP menerapkan prinsip KIS (Keep It Simple) dalam desain atau perancangan. Desain yang digunakan menerapkan implementasi dari story yang telah dibuat tanpa ditambahkan atau dikurangi. 3. Coding Pada tahapan ini, XP mendukung adanya proses refactoring. Refactoring merupakan proses untuk mengubah software system dimana struktur code berubah dan menjadi sederhana namun hasil akhir yang ditampilkan tetap sama. Setelah story selesai disusun dan tahap awal perancangan telah selesai, developer team sebaiknya tidak langsung coding melainkan melakukan testing dan evaluasi pada setiap story. Setelah melewati testing, developer mulai melakukan coding. 4. Testing Pada tahap ini, program yang telah selesai akan dilakukan pengujian code dengan menggunakan unit test yang telah tersedia dan dilakukan pengujian dengan menggunakan acceptance test yang berasal dari user.
20
Gambar 2.2 Extreme Programming (Sumber: Pressman, Roger S., Software Engineering: A Practitioner’s Approach 7th edition, 2010)
1.1.3 Unified Modeling Language (UML) Unified Modeling Language (UML) adalah satu kumpulan aturan atau konvensi
pemodelan
yang
digunakan
untuk
menentukan
atau
menggambarkan sebuah sistem software yang berhubungan dengan objek. Pada umumnya UML digunakan untuk menentukan, menggambarkan, merancang dan mendokumentasikan model, deskripsi dari software atau sistem perangkat lunak (Whitten dan Bentley, 2007). 1.1.3.1 Class Diagram Class Diagram merupakan suatu gambaran objek-objek yang menyusun sebuah sistem dan hubungan antar class tersebut (Whitten dan Bentley, 2007).
21
Suatu class diagram terdapat 3 (tiga) bagian, yaitu: 1. Class Name Merupakan nama dari suatu class yang digunakan sebagai pembeda dari suatu objek. 2. Class Attributes Merupakan atribut-atribut atau data yang ada pada class tersebut. 3. Class Behaviors Merupakan fungsi atau operasi yang dimiliki oleh class tersebut.
Gambar 2.3 Struktur Class
Dalam suatu sistem, satu class dapat memiliki hubungan dengan class lain. Hubungan yang terjadi antar class tersebut, yaitu: 1. Asosiasi Asosiasi merupakan hubungan antara class yang satu dengan class yang lain. Hubungan antar class tersebut dapat dibedakan menjadi 2 (dua) jenis, yaitu:
22
a. Bi-directional Pada hubungan bi-directional, masing-masing class memiliki peran dalam hubungan tersebut.
Gambar 2.4 Contoh Bi-directional
b. Uni-directional Pada hubungan uni-directional, hanya satu class yang memiliki peran dalam hubungan tersebut.
Gambar 2.5 Contoh Uni-directional
2. Agregasi Agregasi merupakan hubungan antar 2 (dua) class dimana satu class merupakan bagian dari class lain. Pada hubungan agregasi ini, jika suatu class yang menjadi bagian dari class yang lain tidak akan dihapus meskipun class yang memilikinya dihapus.
Gambar 2.6 Contoh Agregasi
23
3. Komposisi Komposisi merupakan hubungan yang lebih erat antar 2 (dua) class dibandingkan dengan agregasi. Pada hubungan ini, suatu class yang menjadi bagian class yang lain akan terhapus ketika class yang memilikinya dihapus.
Gambar 2.7 Contoh Komposisi
4. Generalisasi Generalisasi atau sering disebut sebagai inheritance. Generalisasi merupakan hubungan antara super class dan sub class. Semua sub class akan memiliki apa yang dimiliki super class, tetapi super class tidak memiliki apa yang hanya dimiliki oleh sub class. User
Order
Gambar 2.8 Contoh Generalisasi
24
5. Visibility Visibility digunakan untuk menentukan bagaimana suatu class lain menggunakan attributes atau operation dari suatu class. Tabel 2.1 Tabel Penjelasan Visibility Visibility
Simbol
Deskripsi Visible pada semua class yang
Public
+ berhubungan
Protected
#
Visible pada super class dan sub class
Private
-
Visible pada terhadap super class
Package
~
Visible pada semua class dalam satu paket
6. Multiplicity Multiplicity mengindikasikan berapa banyak objek dari suatu class yang terhubung dengan class lain. Tabel 2.2 Tabel Penjelasan Multiplicity Multiplicity
Deskripsi
0
Nol
1
Satu (bisa tidak ditulis)
*
Banyak
0..*
Nol atau lebih
1..*
Satu atau lebih
0..1
Nol atau satu
25
1.1.3.2 Use Case Diagram Berdasarkan Whitten dan Bentley (2007), use case diagram merupakan diagram yang menjelaskan interaksi antara sistem, sistem eksternal dan user. Use case menggambarkan siapa yang menggunakan sistem dan dengan cara apa user berinteraksi dengan sistem. 1. Use Case Menjelaskan atau mengidentifikasi suatu fungsi sistem yang akan dikerjakan oleh user. Use case biasanya digambarkan dalam bentuk elips dan nama dari use case bisa ditulis di atas, bawah maupun di dalam elips (Whitten dan Bentley, 2007).
Gambar 2.9 Contoh Use case
2. Aktor Segala sesuatu yang berinteraksi dengan sistem seperti user, organisasi maupun sistem eksternal (Whitten dan Bentley, 2007).
Gambar 2.10 Contoh Aktor
26
3. System Boundary System boundary merupakan suatu batas pemisah antara suatu sistem dengan daerah di luar sistem. System boundary menentukan konfigurasi, ruang lingkup dan fungsi sistem (Whitten dan Bentley, 2007).
System *
transfer *
user
Gambar 2.11 Contoh system boundary
4. Relationship Berdasarkan Whitten dan Bentley (2007), terdapat beberapa hubungan antar dua simbol di dalam use case diagram, yaitu: a. Associations Menggambarkan adanya hubungan antara aktor dan use case. Hubungan yang terjadi dapat digambarkan dengan simbol garis dengan atau tanpa anak panah.
27
Simbol garis dengan anak panah menunjukan aktor mengindikasikan use case. Simbol garis tanpa anak panah menunjukan hubungan antara use case dengan aktor penerima.
Gambar 2.12 Contoh Association Relationship
b. Extends Menggambarkan bahwa suatu use case merupakan hasil extends dari suatu use case awal dan memiliki fungsi tertentu dari use case awal.
Gambar 2.13 Contoh Extends Relationship
28
c. Uses (Includes) Menggambarkan bahwa terdapat dua atau lebih use case menjalankan fungsi atau langkah yang sama. Langkahlangkah yang sama tersebut akan membentuk suatu use case baru yang disebut juga use case abstrak. Use case abstrak digunakan untuk mengurangi redundansi dalam use case diagram.
«uses»
Play
«uses» Mengatur Playlist
Pause «uses» Volume
Gambar 2.14 Contoh Uses Relationship
d. Depends On Menggambarkan bahwa suatu use case yang saling berhubungan tidak bisa dilakukan jika use case tertentu belum dilakukan.
Gambar 2.15 Contoh Depends On Relationship
29
e. Inheritance Menggambarkan bahwa terdapat suatu aktor abstrak yang berhubungan dengan dua atau lebih aktor dalam sistem. Aktor yang berhubungan memiliki langkah yang dimiliki aktor
abstrak.
Aktor
abstrak
digunakan
untuk
menyederhanakan suatu rancangan diagram.
Melihat data *
*
User <
>
<>
Mengubah data *
*
* * mencatat transaksi Admin
Casier
Gambar 2.16 Contoh Inheritance Relationship
1.1.3.3 Use Case Narrative Use case narrative merupakan suatu penjelasan berupa teks tentang use case dan menjelaskan bagaimana aktor berinteraksi dengan sistem dalam menjalankan tugas (Whitten dan Bentley, 2007). Tabel 2.3 Contoh Use Case Narrative Use Case Actor
Melakukan Log In User
30
Description
Use case ini mendeskripsikan proses melakukan log in pada aplikasi
Precondition
User telah melakukan proses instalasi aplikasi pada
smartphone
kemudian
menjalankan
aplikasi tersebut Flow of Events
User memilih tombol log in pada menu utama pada aplikasi kemudian mengisi data-data yang diperlukan seperti username dan password
Postcondition
User berhasil log in pada aplikasi
2.1.3.4 Sequence Diagram Berdasarkan Whitten dan Bentley (2007), sequence diagram merupakan suatu model logika dari use case dengan menggambarkan interaksi antara aktor dan sistem. Terdapat beberapa elemen yang ada pada sequence diagram, yaitu: a. Aktor (Actor) Simbol yang digunakan untuk mewakili user dalam berinteraksi dengan suatu objek.
Gambar 2.17 Aktor
31
b. Object Simbol yang digunakan untuk mewakili kelas-kelas dalam class diagram.
Gambar 2.18 Object
c. Lifelines Simbol yang digunakan untuk menunjukkan suatu life dari suatu objek.
Gambar 2.19 Lifelines
d. Activation bars Simbol yang digunakan untuk menggambarkan lamanya suatu objek digunakan.
32
Gambar 2.20 Activation bars
e. Input messages Simbol yang digunakan untuk menyampaikan method dari suatu objek.
Gambar 2.21 Input messages
f. Output messages Simbol yang digunakan untuk menyampaikan jawaban dari method yang disampaikan dari suatu objek.
Gambar 2.22 Output messages
g. Self-call Simbol yang digunakan untuk menyampaikan method ke objek itu sendiri.
33
Gambar 2.23 Self-call
h. Frame Simbol yang digunakan untuk menandakan area pada diagram yang
mengalami
perulangan
(loop),
mengalami
seleksi
(alternate) dan memiliki suatu ketentuan (optional). Loop
Gambar 2.24 Frame
2.1.3.5 Activity Diagram Berdasarkan Whitten dan Bentley (2007), activity diagram merupakan suatu gambaran alur dari sebuah proses bisnis, langkah pada suatu use case dan logika dari suatu objek. Terdapat beberapa elemen yang digunakan pada activity diagram, yaitu: 1. Initial node Simbol yang digunakan untuk menandakan dimulainya suatu proses.
Gambar 2.25 Initial node
34
2. Actions Simbol yang digunakan untuk menunjukkan suatu aktivitas.
Gambar 2.26 Actions
3. Flow Simbol yang digunakan untuk menunjukkan jalur dari suatu aktivitas ke aktivitas lain.
Gambar 2.27 Flow
4. Decision dan Merge Simbol yang digunakan untuk menunjukkan suatu keadaan kondisional. a. Decision Kondisi untuk memilih salah satu jalur aktivitas. b. Merge Kondisi bergabungnya jalur aktivitas yang dipisahkan oleh decision.
Gambar 2.28 Decision dan Merge
35
5. Fork dan Join Simbol yang digunakan untuk menunjukkan adanya keadaan paralel. a. Fork Menunjukkan
adanya
dua
atau
lebih
actions
yang
berlangsung secara bersamaan. b. Join Menunjukkan proses paralel yang sudah berakhir.
Gambar 2.29 Fork dan Join
6. Activity final Simbol yang digunakan untuk menandakan berakhirnya suatu proses.
Gambar 2.30 Activity final
2.1.4 Web Server Web server merupakan sebuah web yang menyediakan fasilitas untuk menyimpan dan mengakses informasi dan layanan. User dapat mengaksesnya melalui browser.
36
Web server juga merupakan sebuah perangkat lunak dalam server yang berfungsi menerima permintaan(request) berupa halaman web melalui HTTP atau HTTPS dari client yang dikenal dengan browser web dan mengirimkan kembali (response) hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML (Eaglestone dan Ridley, 2001).
2.1.5 PHP Hypertext Preprocessor (PHP) PHP merupakan sebuah bahasa pemrograman untuk membangun website yang dinamis dan interaktif. Secara umum, program PHP banyak digunakan pada web server dan menampilkan halaman web sesuai permintaan user. Salah satu kelebihan PHP adalah PHP dapat diimplementasikan (embed) dengan HTML. PHP banyak digunakan pada Internet Service Providers (ISPs) serta perusahaan web hosting sehingga banyak developer menggunakannya saat ini (Doyle, 2010).
37
2.1.6 Database Database merupakan kumpulan data yang berelasi secara logika beserta
deskripsinya,
dirancang
untuk
memberikan
informasi
yang
dibutuhkan oleh suatu organisasi. Itu berarti bahwa database merupakan tempat penyimpanan data yang besar dimana data tersebut dapat digunakan oleh banyak pengguna secara bersamaan. Seluruh item database tidak hanya dimiliki oleh satu departemen melainkan dapat digunakan sebagai sumber daya bersama dalam suatu perusahaan (Connolly dan Begg, 2010).
2.1.7 Teknologi Mobile Phone Mobile
phone
merupakan
sebuah
portable
device
yang
memungkinkan user untuk dapat melakukan serta menerima panggilan telepon melalui gelombang radio atau transmisi satelit. Menurut Fling (2009), mobile phone berkembang dengan pesat di pasar mobile global. Mobile phone pada awalnya memiliki ukuran yang besar dan antena yang panjang, namun seiring dengan berkembangnya teknologi, mobile phone saat ini memiliki ukuran yang lebih kecil dibanding pendahulunya (seperti pada gambar 2.31 dilihat dari kiri ke kanan).
38
Gambar 2.31 Perkembangan Mobile Phone (Sumber : http://www.mobilephonemuseum.ie/phones.html)
Saat ini mobile phone yang sudah berkembang sangat pesat disebut dengan smartphone yang menambahkan kemampuan kepada user selain melakukan dan menerima panggilan, user dapat melakukan browsing. Selain itu, user dapat menambahkan aplikasi yang diinginkan pada smartphone seperti aplikasi untuk memutar musik, permainan dan lain-lain.
2.1.7.1 Aplikasi Mobile Aplikasi mobile adalah aplikasi yang berjalan pada perangkat mobile seperti smartphone. Aplikasi mobile mempunyai tugas atau fungsi tertentu pada mobile phone. Aplikasi mobile seperti Short Message Service (SMS), Multimedia Message Services (MMS), browser, dan music player biasanya telah terinstal pada mobile phone.
39
User dapat menambahkan aplikasi tambahan seperti video, permainan dan social media dengan melakukan proses mengunduh dan melakukan instalasi pada mobile phone user (Mobile Application Association, 2008).
2.1.7.2 Desain Interface Mobile Menurut Stark (2012), terdapat 10 (sepuluh) prinsip dalam merancang interface pada mobile yang serupa dengan interface pada desktop dan memperlihatkan sisi unik pada mobile, yaitu : 1. Mobile mindset Karena perbedaan antara mobile dan desktop, sebelum mulai merancang interface sebaiknya developer terlebih dahulu mengubah mindset atau pola pikir ke arah mobile. a. Fokus Fokus pada fitur aplikasi yang akan dibuat dan disiplin diri untuk dapat membuat fitur yang terbaik. b. Unik Mengetahui apa yang membuat aplikasi yang dibuat berbeda dengan aplikasi yang telah ada. c. Menawan Mobile merupakan perangkat yang pribadi. Aplikasi yang ramah, dapat diandalkan, dan menyenangkan membuat user tertarik untuk menggunakannya pada perangkat mobile.
40
d. Perhatian Menciptakan sebuah aplikasi yang terbaik yaitu aplikasi berdasarkan kebutuhan user. Perhatian terhadap kebutuhan user, akan memberikan pengalaman yang berharga bagi developer. 2. Mobile contexts Pada mobile contexts, developer harus menempatkan posisi dalam kondisi user. Terdapat 3 (tiga) kondisi user yang harus diperhatikan yaitu: a. Bosan (bored) Saat user menggunakan smartphone di saat bersantai dan berbaring
di
sofa
diperlukan
suatu
aplikasi
yang
menyenangkan dan tidak membuat user bosan walaupun digunakan dalam waktu yang cukup lama. b. Sibuk (busy) Kecepatan aplikasi dalam mengerjakan tugas yang sederhana dan dapat diandalkan serta dapat dilakukan dengan satu tangan sangat diperlukan ketika seseorang sedang dalam keadaan sibuk.
41
c. Hilang (lost) Kategori ini digolongkan kepada user
yang sedang
melakukan perjalanan jauh dengan lingkungan yang tidak diketahui atau user yang tinggal dalam lingkungan yang familiar tetapi lebih tertarik pada suatu hal yang tidak diketahui. Dalam hal ini berarti daya tahan baterai merupakan hal yang penting. Oleh karena itu, aplikasi harus dapat menghemat baterai dengan adanya offline support. 3. Global guidelines Setiap aplikasi yang berbeda memiliki tampilan, teknik, dan desainnya masing-masing. Namun perangkat mobile terutama yang berukuran saku memiliki beberapa panduan global untuk mengatasinya, yaitu : a. Responsiveness Respons merupakan suatu hal yang penting dalam suatu aplikasi. Suatu aplikasi harus memberikan respons pada tindakan yang dilakukan user. Jika operasi suatu aplikasi memakan waktu yang lebih lama, pastikan user mengetahui bahwa aplikasi sedang bekerja. b. Polish Pada tahapan ini developer perlu memberi banyak perhatian pada desain antarmuka sehingga mendapatkan detail atau rincian kecil yang sempurna dan dapat dihargai.
42
c. Thumbs Jari tangan merupakan hal yang diutamakan pada layar sentuh suatu mobile phone karena jari biasa digunakan untuk berinteraksi dengan layar. User terbiasa memakai kedua tangan untuk memegang smartphone dan ibu jari merupakan jari yang biasa digunakan user untuk mengetik. Oleh karena itu, bagi developer ibu jari merupakan suatu default dalam mendesain aplikasi pada layar sentuh. d. Targets Perhatikan ibu jari user yang berperan sebagai perantara untuk berinteraksi dengan layar mobile. Target suatu aplikasi harus memperhatikan ukuran dari setiap content. Developer harus memperhatikan penempatan antar content beserta hubungannya. Merupakan suatu ide yang buruk ketika penempatan tombol backspace bersebelahan dengan tombol send pada fitur aplikasi Short Message Service (SMS). e. Content Revolusi dalam layar sentuh membiarkan user berinteraksi langsung dengan content pada layar mobile. Dalam mengoptimalisasi content pada layar sentuh, letakkan content pada bagian tengah layar dan minimalisasi penggunaan tabs, tombol, checkboxes, dan lain-lainnya.
43
f. Controls Ketika
diperlukan
sebuah
menu
untuk
melakukan
pengaturan, cobalah untuk menaruh menu tersebut dibawah content atau di bagian bawah display. Jika tidak, user tidak dapat melihat perubahan yang terjadi pada content atau display saat menekan menu tersebut. g. Scrolling Hindari penggunaan scrolling karena penggunaan layar yang solid membuat user
merasa dapat diandalkan dan dapat
diprediksi. Namun scrolling juga dapat digunakan ketika ingin memberi lebih banyak konten. 4. Navigation models Saat ini terdapat banyak model navigasi pada aplikasi mobile, pilihlah model navigasi yang terbaik untuk aplikasi yang akan dibuat. a.
None Aplikasi hanya menggunakan satu layar atau layar tunggal, misalnya laporan cuaca.
b.
Tab bar Berupa 3 (tiga) sampai 6 (enam) konten area yang berbeda, misalnya Twitter.
c.
Drill down Berupa daftar (list) dan konten detail hierarki, contohnya aplikasi setting pada iPhone.
44
5. User input Terlalu banyak mengetik akan membuat user bosan, bahkan pada device yang bagus sekalipun. Oleh karena itu, berikut beberapa hal yang harus diperhatikan mengenai user input. a. Terdapat sekitar 1 (satu) lusin variasi keyboard dalam smartphones (text, number, email, URL, dan lain-lain). Pertimbangkan jenis input fields yang akan digunakan sehingga tepat guna dan tahap pemasukkan data dapat berjalan lebih cepat. b. Auto-correct diperlukan namun pergunakan sesuai dengan tipe input fields dan auto entry yang digunakan (seperti autocorrect, auto-capitalisation dan auto-complete). c. Jika aplikasi yang dikembangkan memerlukan banyak ketikan, pastikan bahwa aplikasi tersebut mendukung landscape orientation. 6. Gestures Aspek terpenting dalam permukaan atau layar sentuh adalah mendukung adanya interaksi menggunakan gestures. Keberadaan
gestures
tidaklah terlihat. Oleh
karena itu,
penggunaan gestures harus diinformasikan kepada user.
45
Penggunaan gestures juga harus disesuaikan dengan kondisi user misalnya pada multi-touch gestures membutuhkan dua tangan untuk beroperasi yang biasanya digunakan untuk melakukan zoom pada peta di iOS namun tidaklah efektif jika user sedang memegang kopi pada satu tangan. Android mengatasi masalah ini dengan menyediakan tombol zoom yang dapat ditekan menggunakan satu tangan. 7. Orientation Beberapa
hal
yang
harus
diperhatikan
mengenai
orientation pada aplikasi yang dikembangkan, yaitu : a. Potrait orientation merupakan yang paling baik dan optimal sampai saat ini. b. Jika aplikasi yang dibuat membuat user lebih banyak mengetik
(typing),
maka
landscape
orientation
aplikasi
sehingga
harus
user
dapat
mendukung mengetik
menggunakan keyboard yang lebih besar. c. Pertimbangkan untuk mengunci orientation pada aplikasi, pilih
orientasi
dikembangkan.
yang
terbaik
untuk
aplikasi
yang
46
8. Communications Desain interface merupakan suatu bagian yang sangat penting pada sebuah aplikasi untuk dapat melakukan komunikasi dengan user. Bentuk-bentuk komunikasi yang dapat dilakukan melalui desain interface yaitu feedback, modal alerts, dan confirmation. a. Pemberian umpan balik (feedback) User memerlukan
umpan balik ketika melakukan
aksi sehingga user tidak menganggap bahwa aplikasi yang digunakan tidak berfungsi dengan baik atau merasa bahwa user salah menekan tombol. Umpan balik dapat berupa getaran atau visual (memberi warna pada pilihan yang ditekan oleh user). Jika user melakukan request yang mengambil waktu cukup lama, pergunakan
spinner
ataupun
progress
bar
sehingga
menunjukkan bahwa aplikasi tetap bekerja. b. Modal alerts Modal alerts bersifat mendesak dan mengganggu sehingga alerts digunakan ketika ada sesuatu yang benarbenar salah. Penggunaan alerts harus diperhatikan dalam hal frekuensi
intensitasnya
dan
pemakaian
bahasa
yang
meyakinkan dan ramah. Alerts sebaiknya tidak digunakan hanya untuk memberikan informasi.
47
c. Konfirmasi (confirmation) Konfirmasi sifatnya tidak mengganggu seperti alerts. Pergunakan kalimat yang singkat dan langsung kepada intinya ketika ingin mendapatkan konfirmasi dari user seperti “Anda yakin akan menghapus dokumen ini?”. Serta pakailah pilihan yang tepat dalam dialog untuk menghindari user melakukan tindakan destruktif secara tidak sengaja. 9. Launching Ketika user menggunakan aplikasi yang sebelumnya pernah digunakannya, kembalikan operasi di activity mana user terakhir menutup aplikasi. Hal ini bertujuan agar memberikan ilusi kecepatan dalam memberikan respons terhadap aplikasi 10. First impressions Kesan
pertama
saat
sebuah
aplikasi
dijalankan
mempunyai peran yang sangat penting dalam penilaian oleh user. Apabila user mengalami kesulitan dalam mencoba aplikasi yang diinstal maka user mungkin segera menghapus aplikasi tersebut. Jika suatu aplikasi mempunyai fungsi yang kompleks maka dapat ditambahkan bantuan (help) pada menu info agar user dapat lebih mudah dalam menggunakan dan memahami aplikasi.
48
Penggunaan icon dalam sebuah aplikasi juga memberikan kesan pertama bagi user. Penggunaan icon pada aplikasi yang dikembangkan harus menarik dan kontras dibandingkan dengan icon lainnya yang terdapat pada smartphone user. Icon tersebut harus dapat menggambarkan fungsi dari aplikasi.
2.2 Teori Khusus Teori-teori yang bersifat khusus yang digunakan dalam merancang aplikasi. Teori-teori yang digunakan meliputi teori Android, eclipse, Android Development Tools (ADT), Android Software Development Kit (SDK), SQLite, socket programming, pattern recognition, Location Based Services (LBS), dan Wireless Fidelity (Wi-Fi). 2.2.1 Android Berdasarkan pernyataan Lee (2012), Android merupakan sebuah sistem operasi berbasis Linux yang telah yang telah mengalami perubahan. Android pertama kali dibuat dan dikembangkan oleh sebuah perusahaan bernama Android Inc. Kemudian pada tahun 2005, Google membeli Android dan mengambil alih pengembangan sistem operasi Android tersebut. Berdasarkan pernyataan Murphy (2010), Android memiliki beberapa fitur yang dapat membantu untuk mengembangkan aplikasi, yaitu:
49
1. Activities Susunan utama pada tampilan user adalah aktivitas. Suatu activity akan menyajikan user interface (UI) kepada pengguna sehingga pengguna dapat melakukan interaksi. Tujuan dan desain aplikasi mempengaruhi banyaknya activity pada aplikasi Android. 2. Content Providers Menyediakan sebuah tingkatan abstraksi untuk data-data yang disimpan pada device yang dapat diakses berbagai aplikasi. 3. Services Services merupakan suatu bagian proses yang dapat tetap berjalan pada background jika diinginkan dan bersifat independent dengan activity lainnya. 4. Intents Intents merupakan pesan sistem yang beroperasi di dalam device, memberi informasi pada aplikasi mengenai bermacam-macam kejadian, mulai dari perubahan kondisi hardware (sebuah memory card dimasukkan ke device), sebuah data baru masuk (ada pesan singkat masuk), hingga ke respons suatu aplikasi (sebuah activity dijalankan dari menu utama).
50
2.2.2 Eclipse Eclipse merupakan suatu aplikasi software terbuka atau open source yang berfokus pada pembangunan sebuah platform pengembangan terbuka, yang terdiri dari frameworks yang telah dikembangkan, tools dan runtimes untuk membangun, menyebarkan dan mengelola dalam siklus software. Eclipse adalah sebuah Integrated Development Enviroment (IDE) untuk mengembangkan suatu software. IDE adalah suatu software yang memiliki fitur atau utilitas yang diperlukan dalam membangun suatu software. Eclipse dapat dijalankan di semua platform dan mendukung berbagai macam bahasa pemrograman (Anonim2, 2012).
2.2.3 Android Development Tools Android Development Tools (ADT) adalah suatu plugin yang digunakan IDE Eclipse untuk memberikan kemudahan user dalam mengembangan suatu aplikasi Android. Dengan menggunakan ADT, user dapat membuat aplikasi project Android, membuat Graphic User Interface (GUI) aplikasi, membuat penambahan package Android (.apk) yang digunakan untuk mendistribusikan aplikasi Android (Anonim3, 2012).
2.2.4 Android Software Development Kit (SDK) Android SDK merupakan tools Application Programming Interface (API) yang diperlukan ketika memulai mengembangkan aplikasi Android menggunakan bahasa pemrograman Java.
51
Terdapat beberapa jenis paket berbeda yang telah tersedia pada Android SDK (Anonim4, 2012), yaitu: a. SDK Tools Merupakan tools untuk debugging dan testing, ditambah dengan proses lain yang diperlukan untuk mengembangkan sebuah aplikasi. b. SDK Platform-tools Tools ini mendukung fitur terbaru dari Android platform. c. Documentation Merupakan dokumentasi offline yang terbaru untuk Android platform API. d. SDK Platform Pada setiap versi Android terdapat satu SDK platform yang tersedia yaitu Android.jar yang sepenuhnya kompatibel dengan Android library. Developer harus menentukan SDK platform yang digunakan untuk membuat sebuah aplikasi. e. System Images Emulator android memerlukan gambar sistem untuk beroperasi. Developer harus selalu menguji aplikasi pada versi terbaru dari android serta menggunakan emulator dengan gambar sistem terbaru untuk mendapatkan hasil yang terbaik. f. Source for Android SDK Sebuah salinan (copy) source code dari Android platform yang berguna untuk membantu developer saat membuat aplikasi.
52
g. Samples for SDK Merupakan kumpulan contoh aplikasi yang menunjukkan berbagai macam API platform. Hal ini merupakan sumber daya yang luar biasa untuk menelurusi application code. h. Google APIs SDK add-on yang menyediakan sebuah platform yang dapat digunakan untuk mengembangkan sebuah aplikasi khusus menggunakan Google API dan gambar sistem untuk emulator sehingga dapat menguji aplikasi yang dibuat. i. Android Support Menyediakan static libraries yang termasuk dalam sumber-sumber aplikasi developer untuk menggunakan API yang tidak tersedia dalam standard platform. j. Google Play Billing Menyediakan static libraries dan contoh yang mengizinkan user untuk mengintegrasikan layanan penagihan (billing) pada aplikasi yang dibuat ketika dilakukan distribusi melalui Google Play. k. Google Play Licensing Menyediakan static libraries dan contoh yang mengizinkan user untuk menampilkan license verification pada aplikasi yang dibuat ketika dilakukan distribusi melalui Google Play.
53
2.2.5 SQLite SQLite merupakan salah satu software yang embedded dengan SQL database. Namun tidak seperti SQL database lainnya, SQLite tidak melakukan prosesnya pada server melainkan SQLite membaca dan menulis database files pada disk secara langsung. Penggunaan external library pada SQLite sangat minimal sehingga SQLite sangat sesuai untuk digunakan secara embedded dengan device. SQL merupakan library yang rapi dan memiliki size yang dapat lebih kecil dari 350 Kb (disesuaikan dengan target platform yang digunakan) (Anonim5, 2012).
2.2.6 Socket Programming Berdasarkan Calvert dan Donahoo (2008), socket merupakan sebuah abstraksi dimana aplikasi dapat menerima dan mengirim data. Socket memungkinkan aplikasi masuk dalam suatu jaringan dan berkomunikasi dengan aplikasi lainnya dalam jaringan yang sama. Informasi yang tertulis pada socket melalui aplikasi sebuah device dapat dibaca oleh aplikasi pada device yang berbeda dan sebaliknya.
54
Protokol yang biasa digunakan yaitu TCP/IP. Terdapat 2 (dua) tipe utama pada TCP/IP socket yaitu stream sockets dan datagram sockets. Stream sockets menggunakan Transmission Control Protocol (TCP) sebagai end-to-end protocol dengan demikian stream sockets dapat memberikan layanan byte-stream handal karena TCP dirancang untuk mendeteksi serta melakukan recovery terhadap kehilangan (losses), duplikasi, serta kesalahan lainnya yang dapat terjadi dalam proses pengiriman. Datagram sockets menggunakan User Datagram Protocol (UDP) yang dapat memberikan usaha terbaik dalam pelayanan datagram sehingga aplikasi dapat digunakan untuk mengirim pesan individual mencapai 65.500 bytes.
2.2.7 Pattern Recognition Berdasarkan pernyataan Theodoridis dan Koutroumbas (2009), pattern recognition merupakan sebuah disiplin ilmu yang bertujuan untuk mengelompokkan objek-objek dalam beberapa kategori atau classes. Objek tersebut dapat berupa gambar, gelombang sinyal atau tipe lainnya yang perlu diklasifikasi tergantung dari aplikasinya. Character recognition merupakan salah satu bagian dari pattern recognition dengan tujuan utama mengotomatisasi dan mengendalikan informasi.
55
Saat ini Optical Character Recognition (OCR) merupakan salah satu teknologi pattern recognition yang paling dikenal. Sistem dari sebuah OCR terdiri dari sebuah sumber cahaya, lensa pengamatan, pengirim data, dan sebuah detektor cahaya. Detektor cahaya menganalisis variasi dari intensitas cahaya yang diterima dan menerjemahkannya sebagai angka yang kemudian membentuk
susunan
gambar.
Setelah
itu
digunakan
teknik-teknik
pemrosesan gambar untuk membaca garis dan pola-pola dari karakter. Aplikasi pattern recognition kemudian menganalisis garis dan pola-pola karakter itu apakah sesuai dengan suatu huruf, angka, atau tanda khusus dan apabila sesuai, aplikasi pattern recognition akan memberikan respons dari pattern tersebut.
2.2.8 Location Based Services Menurut Lee (2012), Location Based Services (LBS) merupakan sebuah teknologi yang dapat melacak dimana posisi user dan juga dapat dimanfaatkan untuk layanan-layanan lainnya, seperti mencari fasilitasfasilitas umum yang berada di sekitar user, mencari rute jalan tercepat menuju suatu lokasi, dan juga melacak posisi device lainnya. 2.2.8.1 Komponen-Komponen Location Based Services (LBS) Menurut Kuswaha yang mengutip pernyataan Schwinger, Grin, Prll1, dan Retschitzegger (2011), untuk dapat menggunakan LBS dibutuhkan beberapa elemen infrastruktur termasuk smartphone, aplikasi, jaringan komunikasi, komponen posisi, dan layanan server.
56
Smartphone merupakan sebuah alat yang digunakan oleh user untuk mengakses layanan LBS, mengirimkan request dan menerima respond. Aplikasi merupakan interface atau tampilan untuk user mengoperasikan LBS. Aplikasi ini biasanya dibuat oleh penyediapenyedia aplikasi dan dapat diunduh secara langsung melalui smartphone. Jaringan komunikasi menunjuk pada jaringan mobile yang mana mengirimkan request layanan ke penyedia layanan, dan mengirimkan kembali respond layanan yang telah diminta kepada user. Saat ini Global System for Mobile (GSM) merupakan standar umum yang paling banyak digunakan oleh berbagai smartphone di seluruh dunia. Komponen posisi dibutuhkan oleh aplikasi LBS untuk menentukan posisi smartphone user. Sebagian besar aplikasi-aplikasi LBS yang ada saat ini tidak memerlukan user untuk memasukkan secara manual posisi user berada seperti memasukkan kode pos atau nama jalan. Penyedia
layanan
mengelola
layanan
server
dengan
memproses request dari user yang masuk dan juga memberi respond atas
request
dari
user
tersebut.
Server
menghitung
dan
memperkirakan posisi, mencari rute, atau mencari informasi yang spesifik berdasarkan posisi user.
57
2.2.8.2 Proses Location Based Services (LBS) Dalam proses yang terjadi pada LBS terdapat beberapa tahapan. Pertama, user mengirimkan sebuah permintaan layanan melalui aplikasi yang beroperasi pada smartphone (step 1). Permintaan layanan, dengan informasi lokasi user saat ini yang didapat dari komponen posisi (koordinat posisi) dikirim ke layanan server melalui jaringan komunikasi mobile (step 2). Layanan server kemudian meminta database geografis dan database lain yang berhubungan untuk mendapatkan informasi yang diperlukan (step 3, 4). Terakhir, informasi yang diminta lalu dikirimkan ke smartphone milik user melalui jaringan komunikasi mobile (step 5, 6) (Kuswaha, 2011).
Gambar 2.32 Proses dari LBS (Sumber: Kushwaha, Amit., & Kushwaha, Vineet, Location Based Services using Android Mobile, 2011)
58
2.2.9 Wireless Fidelity Menurut Varma (2012), Wireless Fidelity (Wi-Fi) merupakan semua tipe dari Institute Electrical and Electronics Engineers (IEEE) 802.11 Wireless Local Area Network (WLAN). WLAN memperluas jangkauan jaringan Local Area Network (LAN) dengan menyediakan koneksi wireless. Pada awalnya dirancang sebagai pengganti kabel pada lingkungan perusahaan. Terdapat 2 (dua) standar dominan dari WLAN, yaitu IEEE 802.11 dan High Performance Radio LAN (HiperLAN). IEEE 802.11 merupakan bagian dari standar IEEE 802 yang termasuk standar dari LAN dan standar Metropolitan Area Network (MAN). Standar IEEE 802.11 menentukan protokol yang dibutuhkan secara over the air untuk mendukung jaringan dalam sebuah local area. Standar IEEE 802.11 mendukung 2 (dua) konfigurasi, yaitu ad hoc dan mode infrastruktur.