bab 2 landasan teori teori umum -...
TRANSCRIPT
10
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 fenomena-
fenomena 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.
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
User
Order
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.
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
Public + Visible pada semua class yang
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
user
transfer*
*
System
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).
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. Langkah-
langkah 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.
Mengatur Playlist
Play
Pause
Volume
«uses»
«uses»
«uses»
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.
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 Melakukan Log In
Actor User
User
Admin Casier
Melihat data
Mengubah data
mencatat transaksi
<<inherits>><<inherits>>
**
*
*
* *
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).
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
Loop
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 auto-
correct, 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 aplikasi harus mendukung
landscape orientation sehingga user dapat mengetik
menggunakan keyboard yang lebih besar.
c. Pertimbangkan untuk mengunci orientation pada aplikasi,
pilih orientasi yang terbaik untuk aplikasi yang
dikembangkan.
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 benar-
benar 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 fasilitas-
fasilitas 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 penyedia-
penyedia 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.