13 BAB 2 LANDASAN TEORI 2.1 Waterfall Model Menurut Roger S

advertisement
BAB 2
LANDASAN TEORI
2.1
Waterfall Model
Menurut Roger S. Pressman (2010: 39), Waterfall Model atau biasa
disebut klasik Life Cycle adalah model klasik yang bersifat sistematis,
berurutan dalam membangun piranti lunak.
Aktivitas-aktivitas dalam waterfall model adalah sebagai berikut :
Gambar 2.1 Model Waterfall (Pressman, 2010)
1. Communication
Pada tahap ini akan dilakukan inisiasi proyek, seperti menganalisis
masalah yang ada dan tujuan yang akan dicapai. Selain itu dilakukan
juga requirements gathering, dimana akan dikumpulkan requirement
dari user melalui analisis kuisioner.
2. Planning
Tahap ini merupakan tahap dimana akan dilakukan estimasi mengenai
kebutuhan-kebutuhan yang diperlukan untuk membuat sebuah sistem.
Selain itu, penjadwalan dalam proses pengerjaan juga ditentukan pada
tahap ini.
3. Modeling
Kemudian mulai masuk pada tahap perancangan dimana perancang
menerjemahkan kebutuhan sistem kedalam representasi untuk menilai
kualitas sebelum tahap selanjutnya dikerjakan. Tahap ini lebih
13
14
difokuskan pada atribut program, seperti struktur data, arsitektur
perangkat lunak, dan detail prosedur.
4. Construction
Construction merupakan proses membuat kode. Coding atau
pengkodean merupakan penerjemah desain dalam bahasa yang bisa
dikenali oleh komputer. Programmer akan menerjemahkan transaksi
yang diminta oleh user. Tahap ini yang merupakan tahapan secara
nyata dalam mengerjakan suatu software, artinya penggunaan
komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean
selesai maka akan dilakukan testing terhadap sistem yang telah dibuat
tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap
sistem tersebut untuk kemudian bisa diperbaiki.
5. Deployment
Tahap ini bisa dikatakan final dalam pembuatan sebuah software atau
sistem. Setelah melakukan analisis, desain dan pengkodean maka
sistem yang sudah jadi akan digunakan oleh user. Kemudian software
yang telah dibuat harus dilakukan pemeliharaan secara berkala.
2.2
Pengertian Basis Data
Menurut Connoly dan Begg (2010: 65), basis data adalah kumpulan
data dan deskripsi data yang terhubung secara logika serta dirancang untuk
memenuhi kebutuhan informasi organisasi.
2.3
Pengertian Sistem Basis Data
Menurut Connoly dan Begg (2010: 54), sistem basis data sebagai
kumpulan program aplikasi yang berinteraksi dengan basis data bersama
dengan Database Management System dan basis data itu sendiri.
2.4
Pengertian Database
Menurut Connoly dan Begg (2010: 65), Database adalah logikal data
yang saling terhubung dan dirancang untuk memenuhi kebutuhan informasi
dari suatu organisasi. Database digunakan dalam kehidupan sehari-hari baik
secara sadar maupun tidak sadar, contoh database yang sering kita gunakan
dalam kehidupan sehari-hari yaitu:
15
1. Pembayaran kartu kredit
2. Pemabayaran belanja di supermarket
3. Mencari buku di perpustakaan secara online
4. Penggunaan internet
2.5
Pengertian DBMS (Database Management System)
Menurut Connoly dan Begg (2010: 66), Database Management
System adalah sistem software yang memungkinkan pengguna untuk
mendefinisikan, membuat, memelihara, dan kontrol akses ke database.
DBMS adalah software yang berinteraksi dengan program aplikasi dan
pengguna database. Biasanya DBMS menyediakan fasilitas sebagai berikut:
1. DDL (Data Definition Language)
DDL adalah sebuah bahasa yang memberikan fasilitas kepada
DBA (Database Administrator) atau pengguna untuk menjelaskan dan
menamakan entity, attribute, dan relationship data yang dibutuhkan
oleh aplikasi, bersama integritas yang berhubungan dan batasanbatasan keamanan. Database Administrator adalah seorang yang
bertanggung jawab terhadap realisasi fisikal basis data, termasuk
rancangan fisik basis data dan implementasi, keamanan dan kontrol
integritas, maintenance sistem, dan memastikan kepuasan performa
aplikasi kepada user. (Connolly dan Begg, 2010: 92):
a. Create table, digunakan untuk membuat table dengan
mengidentifikasikan tipe data untuk setiap kolom.
b. Alter
table,
digunakan
untuk
membuat table
dengan
mengidentifikasikan tipe data untuk setiap kolom.
c. Drop table, digunakan untuk membuang atau menghapus table
beserta semua data yang terkait didalamnya.
d. Create index, digunakan untuk membuat index pada suatu
table.
e. Drop index, digunakan untuk membuang atau menghapus
index yang telah dibuat sebelumnya.
16
2. DML (Data Manipulation Language)
Menurut Connolly dan Begg (2010: 92), DML adalah suatu
bahasa yang memberikan fasilitas pengoperasian data yang ada di
dalam basis data.
Pengoperasian data yang akan dimanipulasi meliputi:
a. Penambahan data baru ke dalam basis data (insert).
b. Modifikasi data yang disimpan ke dalam basis data (update).
c. Pemanggilan data yang terdapat di dalam basis data (view).
d. Penghapusan data dari basis data (delete).
2.6
Pengertian MySQL
Menurut Wahana Komputer (2010: 21), MySQL adalah database
server open source yang cukup popular keberadaannya. Dengan berbagai
keunggulan yang dimiliki, membuat software database ini banyak digunakan
oleh praktisi untuk membangun suatu proyek. Adanya fasilitas API
(Application
Programming
Interface)
yang
dimiliki
oleh
MySQL,
memungkinkan bermacam-macam apikasi komputer yang ditulis dengan
berbagai bahasa pemrograman dapat mengakses basis data MySQL.
MySQL termasuk jenis RDBMS (Relational Database Management
System). Sedangkan RDMS sendiri akan lebih banyak mengenal istilah
seperti tabel, baris dan kolom digunakan dalam perintah-perintah di MySQL.
2.7
Pengertian UML (Unified Modeling Language)
Nugroho (2010: 6), mengatakan Unified Modeling Language (UML)
adalah bahasa pemodelan untuk sistem atau perangkat lunak yang
berparadigma berorientasi objek. Pemodelan sesungguhnya digunakan untuk
penyederhanaan permasalahan-permasalahan yang kompleks sedemikian rupa
sehingga lebih mudah dipelajari dan dipahami. Tujuan pemodelan adalah
sebagai sarana analisis pemahaman, visualiasi, dan komunikasi antar anggota
tim pengembang, serta sebagai sarana dokumentasi. UML dirancang untuk
menyediakan sekumpulan notasi yang dapat dipakai untuk mendokumentasi
desain beorientasi objek. UML mendefinisikan beberapa diagram diantaranya
Use case diagram, Class Diagram, dan Activity Diagram.
17
2.7.1 Pengertian Use Case Diagram
Menurut Whitten dan Bentley (2007: 246) Use case Modeling
mengidentifikasi
dan
menggambarkan
fungsi
sistem
dengan
menggunakan alat yang disebut dengan Use case.
Use case menggambarkan fungsi suatu sistem yang dilihat dari
segi perspektif pengguna eksternal dan terminologi mereka yang
dapat dimengerti.
Use case diwakili oleh grafis dalam bentuk elips dengan nama
use case di atas, di bawah, atau di dalam elips. Use case
menggambarkan urutan kegiatan dan interaksi pengguna dalam
mencoba untuk mencapai tujuan. Use case sendiri tidak dianggap
sebagai persyaratan fungsional, tapi cerita (skenario)
use case
menceritakan terdiri dari satu atau lebih persyaratan. Use case
merepresentasikan tujuan dan mendeskripsikan urutan aktivitas dan
interaksi antara actor dalam menyelesaikan tujuan.
Dalam use case terdapat actor dan relationship yang berguna
untuk merepresentasikan aktivitas dalam use case diagram. Actor
adalah user yang terlibat langsung dengan sistem, relationship
merupakan jenis-jenis hubungan antara sistem dengan actor.
(a)
18
(b)
Gambar 2.2 Model Use Case Diagram
(Sumber : System Analysis and Design Method – Whitten and
Bentley, 2007)
Menurut Whitten dan Bentley (2007: 248-250), hubungan yang
digunakan dalam use case diagram, yaitu :
1. Association mengambarkan interaksi antara actor dan use
case. Hubungan association digambarkan dengan garis dan
tanda panah. Association dengan tanda panah menunjukan
bahwa actor berhubungan dengan use case, dimana use case
merupakan
penerima.
Association
tanpa
tanda
panah
menunjukan interaksi antara use case dan actor dengan actor
sebagai penerima.
Gambar 2.3 Contoh Penggunaan Association Use case
(Sumber : System Analysis and Design Method – Whitten and
Bentley, 2007)
19
2. Extend digunakan untuk menjelaskan sebuah use case yang
rumit menjadi beberapa tahap use case yang lebih mudah
dimengerti.
Gambar 2.4 Contoh Penggunaan Extends pada Use case
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007)
3. Uses (include) berfungsi untuk generalisasi use case yang
dapat mengurangi redundansi. Dalam sebuah use case diagram
yang terdapat beberapa langkah yang mirip atau sama,
hubungan use case tersebut bisa disebut menjadi use case
abstrak.
Gambar 2.5 Contoh Penggunaan Include pada Use case
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007)
20
4. Depends On digunakan ketika suatu aktivitas dapat dijalankan
jika aktivitas sebelumnya telah dijalankan. Dengan kata lain,
aktivitas tersebut saling bergantung.
Gambar 2.6 Contoh Penggunaan Depends On Pada Use
Case
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007)
5. Inheritance digunakan ketika dua atau lebih actor melakukan
aktivitas atau menunjuk pada use case yang sama, maka actor
tersebut dapat disederhanakan menjadi satu actor.
Gambar 2.7 Contoh Penggunaan Inheritance pada Use
Case
(Sumber: System Analysis and Design Method - Whitten and
Bentley, 2007)
21
2.7.2
Pengertian Class Diagram
Class diagram merupakan gambaran grafis dari struktur objek,
yang menunjukkan kelas objek yang ada pada suatu sistem dan
hubungan antara kelas-kelas objek tersebut. (Whitten dan Bentley,
2007). Setiap kelas objek dibagi menjadi 3 bagian, yaitu:
1. Nama Kelas
Nama kelas harus unik atau dapat dibedakan antara kelas yang
satu dengan kelas yang lain karena nama kelas merupakan
identitas yang dimiliki oleh setiap kelas.
2. Atribut Kelas
Atribut menunjukkan informasi yang dimiliki oleh suatu kelas
atau informasi yang berhubungan dengan suatu kelas.
3. Operasi Kelas
Operasi digunakan untuk menunjukkan fungsi yang dapat
dilakukan oleh suatu kelas.
Gambar 2.8 Struktur Kelas Objek
(Sumber: System Analysis and Design Method - Whitten and Bentley,
2007)
22
Gambar 2.9 Class Diagram
(Sumber: System Analysis and Design Method - Whitten and Bentley,
2007)
Notasi – notasi yang terdapat di dalam class diagram adalah
sebagai berikut:
a. Visibility
Pada class diagram terdapat visibility yang digunakan untuk
menentukan suatu kelas dapat diakses oleh kelas lainnya atau
tidak. Dalam visibility memiliki 3 (tiga) tingkatan, yaitu
(Whitten dan Bentley, 2007):
1. Private
2. Public
3. Protected
Tabel 2.1 Tabel Penjelasan Visibility
No
Simbol
Visibility
Penjelasan
1
-
Private
Hanya dapat diakses oleh
kelas yang
mendefinisikan
2
+
Public
Dapat diakses oleh semua
kelas yang berhubungan
23
No
Simbol
Visibility
Penjelasan
3
#
Protected
Hanya dapat diakses oleh
kelas yang
mendefinisikan dan
turunannya
b. Multiplicity
Multiplicity merupakan jumlah banyaknya objek sebuah kelas
yang berelasi dengan sebuah objek lain pada kelas lain yang
berasosiasi dengan kelas tersebut (Whitten dan Bentley, 2007).
Tabel 2.2 Tabel Penjelasan Multiplicity
Multiplicity
Deskripsi
0..1
Nol atau satu
1
Hanya satu
0..*
Nol atau lebih
1..*
Satu atau lebih
?...?
Batasan spesifik
c. Association
Asosiasi adalah hubungan statis antara kelas dan digunakan
untuk memberikan penjelasan mengenai hubungan dan
multiplicity. Hubungan ini dibagi menjadi dua jenis, yaitu:
1. Uni-directional
Di uni-directional, dua kelas yang terhubung tetapi
hanya salah satu dari mereka memiliki peran di
dalamnya. Di uni-directional, simbol panah disebut
dilayari ditambahkan.
24
2. Bi-directional
Dalam bi-directional, dua kelas yang terhubung dan
keduanya memiliki peran dalam hubungan.
d. Aggregation
Agregasi digunakan untuk menggambarkan jenis hubungan di
mana satu kelas merupakan bagian dari kelas lain tetapi tidak
sebaliknya. Sebagai contoh: kelas Guru adalah bagian dari
kelas sekolah namun kelas sekolah bukan bagian dari kelas
Guru .
e. Generalization/Specialization
Generalisasi/spesialisasi adalah teknik untuk kelas objek
kelompok yang memiliki kesamaan dalam atribut atau metode
menjadi supertype. Atribut dan metode supertype kemudian
akan diwarisi oleh subtype. Konsep warisan diterapkan
sehingga atribut atau metode dalam supertype dapat digunakan
kembali oleh subtype.
f. Dependency
Hubungan
Dependency
digunakan
untuk
memodelkan
hubungan antara dua kelas untuk menunjukkan bahwa ketika
perubahan yang dibuat dalam satu kelas akan mempengaruhi
kelas lain. Hubungan ini biasanya digunakan antara kelas
kontrol
dan
kelas
sementara.
Hubungan
Dependency
digambarkan dengan panah menunjuk ke arah sebuah pesan
dapat dikirim.
g. Compotition
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.
25
Gambar 2.10 Contoh Class Diagram
(Sumber: System Analysis and Design Method - Whitten and Bentley,
2007)
2.7.3 Pengertian Sequence Diagram
Menurut Whitten dan Bentley (2007: 394), Sequence diagram
secara grafis menggambarkan bagaimana objek-objek berinteraksi
satu dengan yang lainnya melalui message-message yang dilakukan
26
dari suatu use case atau operasi. Mereka menggambarkan bagaimana
message-message dikirim dan diterima diantara objek-objek tersebut
dan dalam urutan seperti apa.
Tabel 2.3 Tabel Element Sequence Diagram
#
1
Name
Symbol
Actor
Description
Segala
sesuatu
berinteraksi
yang
dengan
sistem untuk beberapa
tujuan
2
Object
Merupakan kelas yang
Object
digunakan dalam Class
Diagram
3
Lifelines
Menunjukkan
urutan
aktif
4
Activation
Menunjukkan
ketika
Bars
partisipan aktif dalam
simbol interaksi. Simbol
ini
menunjukan
jalur
hidup
5
Call
Metode
penyampaian
dari setiap benda
6
Self-call
Memberikan pesan balik
7
Return
Jawaban dari pesan yang
dikirim oleh obyek
27
#
8
Name
Frame
Symbol
loop
Description
Menandai daerah khusus
di
mana
perulangan,
seleksi, dll, terjadi.
Gambar 2.11 Contoh Sequence diagram
(Sumber: System Analysis and Design Method - Whitten and Bentley,
2007)
2.8
Elemen Multimedia
1. Teks
Menurut Vaughan (2011: 18), penggunaan teks dan simbol
untuk komunikasi merupakan perkembangan manusia yang mulai
digunakan sejak 6000 tahun yang lalu di sekitar mediterania, hanya
beberapa kasta saja yang dapat mempelajarinya dan karena teks
adalah suatu hal yang dapat dihapalkan tanpa dipikir, teks digunakan
sebagai media penyampaian informasi yang memiliki makna
potensial.
2. Suara
28
Menurut Vaughan (2011: 106), audio digital dibuat ketika
seseorang mewakili karakteristik dari gelombang suara, dengan
menggunakan angka - angka (sebuah proses yang disebut sebagai
digitalisasi). Seseorang dapat mendigitalkan suara dari mikrofon,
synthesizer, rekaman yang sudah ada, radio hidup dan televisi siaran,
beberapa CD, dan beberapa DVD, bahkan, suara dari alam atau
rekaman.
Menurut Vaughan (2011, p110), dalam beberapa kasus, digital audio
editing software yang biasanya digunakan, mungkin telah membaca
format yang berbeda dari presentasi atau authoring program yang
dmiliki. Kebanyakan perangkat lunak untuk pengeditan suara akan
menyimpan berkas dengan pilihan format yang begitu banyak, dan
sebagian besar yang dapat dibaca dan diimpor oleh multimedia
authoring system. Data tersebut dapat hilang bila formatnya diubah.
Menurut Vaughan (2011, p113-114), Musical Instrument
Digital
Interface
(MIDI)
adalah
standar
komunikasi
yang
dikembangkan pada awal tahun 1980 untuk instrumen musik
elektronik dan komputer. Hal ini memungkinkan synthesizer musik
dan suara dari produsen yang berbeda untuk berkomunikasi satu sama
lain dengan mengirimkan pesan di sepanjang kabel yang terhubung ke
perangkat. MIDI menyediakan protokol untuk melewati deskripsi
yang detil dari nilai musik, seperti catatan, urutan catatan, dan
instrumen yang akan memainkan catatan ini. Namun data MIDI bukan
merupakan suara digital. Data MIDI memiliki representasi singkat
dari musik yang tersimpan, dalam bentuk numerik.
Audio digital adalah rekaman, sedangkan MIDI adalah nilai.
Yang pertama tergantung pada kemampuan sistem suara yang
dimiliki, setelah itu kualitas musik instrumen.
2.9
IMK (Interaksi Manusia dan Komputer)
Sebuah perangkat lunak atau program aplikasi sebaiknya user friendly
(ramah dengan pengguna). User friendly merujuk kepada karakteristik yang
dimiliki oleh perangkat lunak atau program aplikasi yang mudah
dioperasikan. User friendly juga menyangkut sejumlah kemampuan lain yang
29
membuat pengguna merasa nyaman dalam mengoperasikan perangkat lunak
atau program aplikasi. User friendly membuat seorang pemula tidak kesulitan
dalam mengoperasikan perangkat lunak dan program aplikasi.
2.9.1
Pengertian IMK(Interaksi Manusia dan Komputer)
Menurut Shneiderman dan Plaisant (2010: 15), Interaksi
Manusia dan Komputer adalah sebuah disiplin ilmu yang berhubungan
dengan perancangan, evaluasi, dan implementasi sistem komputer
interaktif untuk digunakan oleh manusia, serta mempelajari fenomenafenomena besar yang berhubungan dengannya.
2.9.2
Faktor Manusia Terukur
Menurut Shneiderman dan Plaisant (2010: 32), ada faktorfaktor manusia terukur dalam desain antarmuka pengguna, antara lain:
1. Waktu Belajar
Lama waktu orang bisa mempelajari cara relevan untuk
melakukan suatu tugas.
2. Kecepatan Kinerja
Lama waktu yang diperlukan untuk melakukan suatu tugas.
3. Tingkat Kesalahan
Jumlah kesalahan yang dilakukan pengguna dan kesalahankesalahan apa saja yang dilakukan pengguna.
4. Daya Ingat
Kemampuan
pemakai
mempertahankan
pengetahuannya
setalah jangka waktu tertentu.
5. Kepuasan Subjektif
Kesukaan pemakai terhadap berbagai aspek sistem.
2.9.3
Prinsip Perancangan Antarmuka
1. Novice (first-time users)
Konsep tugas dan antarmuka dangkal
Perancangan:
a. Batasi jumlah pilihan
30
b. Umpan balik yang informatif
c. Manual dan tutorial online yang efektif
2. Knowledgeable (intermediate users)
Konsep tugas stabil.
Konsep antarmuka luas namun sulut meningat sintaktik
Perancangan:
a. Struktur menu yang rapi
b. Konsistensi
c. Antarmuka yang jelas
d. Perlindungan dari bahaya karena eksplorasi fitur
3. Expert (frequent users)
Terbiasa dengan konsep tugas dan antarmuka.
Ingin pekerjaan cepat selesai.
Perancangan:
a. Makro
b. Shortcut
2.10
Delapan Aturan Emas
Menurut Shnneiderman dan Plaisant (2010: 88-89), terdapat delapan
aturan emas yang harus diperhatikan dalam perancangan antarmuka:
1. Berusaha untuk konsisten
Konsisten dilakukan pada urutan tindakan, perintah, dan istilah yang
digunakan pada prompt, menu, serta layar bantuan.
2. Menyediakan usability universal
Pengguna yang beragam dan desain harus mempertimbangan
perbedaan dan pertimbangan dalam hal rentang usia, cacat dan
keanekaragaman teknologi.
3. Memberikan umpan balik yang informatif
Untuk setiap sistem diharapkan adanya suatu umpan balik bagi
pengguna. Respon yang diberikan tergantung dari aksi yang
dilakukan.
4. Merancang dialog yang memberikan penutupan (keadaan akhir)
31
Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan
bagian awal, tengah, dan akhir. Umpan balik yang informatif akan
memberikan indikasi bahwa cara yang dilakukan sudah benar dan
dapat mempersiapkan tindakan berikutnya.
5. Memberikan pencegahan kesalahan dan penangan kesalahan
yang sederhana.
Jika kesalahan terjadi, sistem dapat medeteksi kesalahan dengan cepat
dan memberikan mekanisme yang sederhana dan mudah dipahami
untuk penanganan kesalahan.
6. Memungkinkan pembalikan aksi yang mudah.
Setiap aksi harus dirancang sedemikian rupa sehingga dapat
melakukan pembalikan untuk kembali ke keadaan semula sebelum
aksi tersebut dijalankan.
7. Mendukung pusat kendali internal (internal locus of control)
User ingin menjadi pengontrol sistem dan sistem akan merespon
tindakan yang dilakukan user daripada user merasa bahwa sistem
mengontrol user.
8. Mengurangi beban ingatan jangka pendek.
Keterbatasan manusia dalam mengelola memori jangka pendek
menyebabkan dibuthkannya suatu tampilan yang sesederhana
mungkin, pengaturan dalam multipage, pergerakan Window yang
sesedikit mungkin, waktu latihan yang cukup dan optimal serta
pengaturan dalam urutan aksi.
Mengacu pada pendapat dari Jonathan Stark (2012) pengembangan
aplikasi pada mobile terdapat 10 (sepuluh) prinsip desain untuk interface
mobile:
1. Mobile Mindset
Dengan adanya perbedaan antara mobile dan desktop, ada beberapa
pola pikir untuk mobile:
a. Be focused
32
Aplikasi sebaiknya fokus pada suatu fitur karena dengan lebih
banyak fitur, tidak membuat aplikasi tersebut menjadi lebih
baik.
b. Be unique
Aplikasi yang dikembangkan memiliki suatu keunikan dan
kekuatan yang membedakan aplikasi tersebut dengan aplikasi
lainnya.
c. Be charming
Aplikasi yang dapat diandalkan, dan menyenangkan saat
digunakan, sehingga aplikasi tersebut banyak diminati dan
digunakan.
d. Be considerate
Aplikasi
yang dikembangkan sebaiknya tidak hanya
menyenangkan pengguna saat menggunakannya, tetapi juga
sesuai dengan keinginan pengguna.
2. Mobile Contexts
Terdapat 3 (tiga) konteks utama pada mobile yang perlu
dipertimbangkan untuk mengetahui aplikasi yang pengguna inginkan:
a. Bored: aplikasi yang berkonteks hiburan.
b. Busy: aplikasi untuk menyelesaikan tugas dengan cepat.
c. Lost: aplikasi yang berkonteks informasi tempat.
3. Global Guidelines
Setiap aplikasi memiliki teknik pendekatan dan desain yang berbedabeda. Sifat yang merekat pada sebuah perangkat touchscreen
berukuran saku memiliki hal yang harus diperhatikan dalam
pengembangan aplikasi, yaitu:
a. Responsiveness
Jika pengguna melakukan sesuatu pada aplikasi, aplikasi perlu
menunjukkan jika aplikasi sedang beroperasi.
b. Polish
Pengembang harus memperhatikan detil desain aplikasi.
c. Thumbs
33
Dengan touchscreen interfaces, desain interfaces harus
disesuaikan karena banyak pengguna menggunakan ibu jari
untuk mengetik.
d. Targets
Dalam mendesain aplikasi yang akan menggunakan banyak
fungsi
keyboard,
penempatan
pengembang
tombol
yang baik
sebaiknya
sehingga
mendesain
memudahkan
pengguna dalam pengetikan.
e. Content
Sebaiknya pengembang menempatkan content aplikasi pada
tengah layar untuk memudahkan pengguna berinteraksi
dengan aplikasi.
f. Controls
Ketika harus menambahkan suatu kontrol pada aplikasi,
sebaiknya
diletakkan
pada
bagian
bawah
layar
agar
memudahkan pengguna berinteraksi dengan aplikasi.
g. Scrolling
Sebaiknya pengembang mengurangi pemakaian scrolling
untuk memudahkan pengguna dalam penggunaan aplikasi.
4. Navigation Models
Ada beberapa model navigasi umum untuk aplikasi mobile
yang dapat digunakan sesuai dengan aplikasi, seperti none, tab bar,
dan drill down.
5. User Input
Pada pengembangan suatu aplikasi memungkinkan pengguna
dalam memberikan input seperti pengetikan. Terdapat banyak variasi
keyboard pada smartphone, pertimbangkan untuk menampilkan
keyboard yang akan sangat berguna. Pilihan auto entry yang harus
diaktifkan juga harus dipertimbangkan. Jika aplikasi perlu banyak
input seperti pengetikan, pastikan mendukung orientasi landscape.
6. Gestures
Touchscreen interfaces saat ini mendukung gesture-based
untuk interaksi pengguna. Hal - hal yang harus diingat adalah:
34
a. Invisible
Gestures tidak terlihat, tetapi pengembang aplikasi harus
mempertimbangkan
bagaimana
untuk
mengungkapkan
keberadaan gestures tersebut kepada pengguna.
b. Two Hands
Multi-touch gestures membutuhkan operasi dua tangan.
Contohnya pengguna dapat dengan mudah memperbesar atau
memperkecil tampilan aplikasi dengan dua jari.
c. Nice to have
Menggunakan semacam keyboard shortcuts pada suatu
aplikasi yang dikembangkan jika diperlukan agar pengguna
lebih mudah dalam menggunakan aplikasi.
d. No replacement
Teknologi Two-Hands
belum terlalu berkembang dan
pengembangan aplikasi dianjurkan tidak menghilangkan
fungsi single-finger.
7. Orientation
a. Potrait
Orientasi yang paling sering digunakan untuk mengoptimalkan
desain antar muka aplikasi.
b. Landscape
Orientasi ini digunakan untuk mendukung pengguna yang
sering mengetik yaitu dengan mengoptimalkan penggunaan
keyboard yang lebih besar.
c. Orientasi berubah tiba – tiba
Pengembangan aplikasi yang akan digunakan dalam jangka
panjang perlu dipertimbangkan untuk menambahkan suatu
orientasi yang tepat di aplikasi tersebut.
8. Communications
Aplikasi harus dapat berinteraksi dengan pengguna.
a. Provide feedback
35
Memberikan umpan balik instan untuk setiap interaksi. Jika
pengguna telah meminta suatu tindakan yang akan memakan
waktu lama, maka aplikasi menampilkan progress bar.
b. Modal alert
Modal alert sangat mengganggu sehingga harus digunakan
ketika ada sesuatu yang benar-benar salah.
c. Confirmation
Ketika harus meminta pengguna untuk mengkonfirmasi
tindakan, dapat ditampilkan dialog konfirmasi modal. Seperti:
“Apakah Anda yakin ingin menghapus data ini?”.
9. Launching
Ketika pengguna kembali ke aplikasi, maka aplikasi harus
kembali beroperasi tepat dimana pengguna terakhir mengoperasikan
aplikasi.
10. First Impressions
Pada saat pengguna pertama kali menggunakan aplikasi,
terdapat 2 (dua) faktor yang menjadi kesan pertama pengguna, yaitu:
a. Your icon
Icon merupakan suatu hal yang sangat penting, karena icon
merupakan salah satu yang menjadi daya tarik bagi pengguna
dalam menggunakan aplikasi yang dikembangkan.
b. First launch
Peluncuran pertama kali harusnya
tidak menimbulkan
kebingungan bagi pengguna yang menggunakannya
2.11
Pengertian Internet
Menurut Connolly dan Begg (2010: 1024), Internet adalah sebuah
koleksi jaringan komputer yang terpisah untuk saling berhubungan di seluruh
dunia, termasuk untuk keperluan komersial, edukasi, organisasi pemerintah,
dan Internet Service Provider (ISP).
2.11.1 Sejarah Internet
36
Sejarah internet dimulai pada tahun 1969 oleh Departemen
Pertahanan Amerika, U.S. Defense Advanced Research Project
Agency (DARPA) yang memutuskan untuk mengadakan riset tentang
bagaimana cara untuk menghubungkan sejumlah komputer sehingga
membentuk suatu jaringan komputer. Riset ini dikenal dengan nama
Advanced Research Project Agency Network (ARPANET).
Tujuan awal dibangunnya ARPANET adalah untuk keperluan
militer, yaitu adanya suatu jaringan komputer yang tersebar sehingga
dapat menghindari pemusatan informasi di satu titik yang dipandang
rawan apabila terjadi peperangan. Apabila satu dari jaringan terputus,
maka jalur yang melalui jaringan tersebut dapat dipindahkan ke
saluran lainnya.
Pada tahun 1970, sudah lebih dari 10 komputer yang berhasil
dihubungkan
satu
sama
lain
sehingga
mereka
bisa
saling
berkomunikasi dan membentuk sebuah jaringan. Pada tahun 1972,
ARPANET sudah diperkenalkan secara umum.
Pada tahun 1980-an, ARPANET terpecah menjadi dua
jaringan, yaitu ARPANET (bukan untuk keperluan militer seperti
universitas) dan Milnet (untuk keperluan militer), akan tetapi
keduanya mempunyai hubungan sehingga komunikasi antar jaringan
dapat dilakukan. Gabungan kedua jaringan ini akhirnya lamakelamaan disebut sebagai internet.
Hingga sekarang ini komputer yang tersambung sudah
melebihi seribu komputer dan tingkat pertumbuhan pengguna internet
akan terus bertambah, karena dari kegunaan yang dapat mengakses
(baik menerima atau mengirim suatu data) dalam jarak yang sangat
jauh sehingga kebutuhan internet akan menguasai sebagian besar
kehidupan masyarakat, badan usaha, dan pemerintah.
2.12
Pengertian WWW (World Wide Web)
Menurut Connoly dan Begg (2010: 1028), WWW atau yang sering
disebut web, adala penjelajahan halaman informasi yang sangat besar yang
37
berada di dalam internet. Informasi yang ada di dalam web dipresentasikan di
dalam sebuah halaman web yang terbentuk dari sekumpulan teks, grafik,
gambar, suara, dan video. Dengan tambahan halaman web dapat berisi
hyperlink tertuju ke halaman web yang lain yang membuat user dapat
mencari informasi lain.
2.13
Web Browser
Web browser adalah perangkat lunak yang digunakan oleh pengguna
internet atau client untuk menampilkan dan melakukan interaksi dengan data
yang disediakan oleh web server. Dikenal juga dengan istilah browser,
peselancar (surfing) dan internet browser (Margaret Rouse, 2007).
Program web browser yang pertama adalah Mosaic yang merupakan
suatu tampilan text browser, tapi sekarang web browser telah berkembang ke
dalam bentuk gambar, video, musik atau multimedia. Beberapa contoh web
browser saat ini yaitu, Microsoft Internet Explorer, Mozilla Firefox, Opera.
2.14
URL (Uniform Resource Locator)
Menurut Connolly dan Begg (2010: 1033), URL mendefinisikan
secara unik dimana dokumen atau resource dapat ditemukan di dalam
internet. URL adalah yang paling umum digunakan untuk identifikasi skema
dan sebagai basis untuk HTTP dan web. Format paling umum dari sebuah
URL yaitu: /nama-host/path/nama–file.
Contoh: www.luxonindonesia.com/home.php.
2.15
Pengertian HTTP (Hyper Text Transfer Protocol)
Menurut Connoly dan Begg (2010: 1031), HTTP adalah sebuah
aturan yang dipakai untuk menghubungkan sebuah halaman web ke internet.
Lebih spesifiknya HTTP adalah bagaimana antara client dengan server dapat
berkomunikasi. HTTP terdapat empat tahap kategori transaksi:
1. Connection: client menetapkan koneksi ke web server.
2. Request: client mengiri permintaan pesan ke web server.
38
3. Response: web server mengirim sebuah respon untuk client
(contohnya mengirim HTML dokumen ke web browser client).
4. Close: koneksi telah terputus oleh web server.
2.16
Pengertian HTML (Hypertext Markup Language)
Menurut Anhar, ST. (2010: 40), HTML (Hypertext Markup
Language) adalah sekumpulan simbol-simbol atau tag-tag yang dituliskan
dalam sebuah file yang digunakan untuk menampilkan halaman pada web
browser. Sesungguhnya HTML justru tidak dibuat untuk mempublikasikan
informasi di web, namun oleh karena kesederhanaan serta kemudahan
penggunaannya, HTML kemudian dipilih untuk mendistribusikan informasi
web. Dalam pengertiannya HTML adalah bahasa pemrograman dalam
pembuatan sebuah website.
2.17
Pengertian CSS (Cascading Style Sheets)
Menurut Slamet Riyanto (2009: 236), Cascading Style Sheet (CSS)
merupakan salah satu bahasa pemrograman web untuk mengendalikan
beberapa komponen dalam sebuah web sehingga akan lebih terstruktur dan
seragam.
CSS dapat mengendalikan gambar, warna bagian tubuh pada teks,
warna tabel, ukuran border, warna border, warna hyperlink, warna mouse
over, spasi antar paragraf, spasi antar teks, margin kiri, kanan, atas, bawah,
dan parameter lainnya. CSS adalah bahasa style sheet yang digunakan untuk
mnegatur tampilan dokumen. Dengan adanya CSS memungkinkan kita untuk
menampilkan halaman yang sama dengan format yang berbeda.
2.18
Javascript
Menurut Connolly dan Begg (2010: 1041), Javascript adalah sebuah
objek bahasa skrip yang populer di internet dan dapat bekerja di sebagian
besar web browser seperti Internet Explorer, Mozilla Firefox, Opera. Kode
Javascript dapat disisipkan kedalam halaman web menggunakan tag skrip
untuk mengenali dan merespon apa yang user input seperti klik mouse, input
data, dan navigasi halaman.
39
Javascript pertama kali dikembangkan oleh Brendan Eich yang
nantinya namanya diganti menjadi LiveScript, dan akhirnya menjadi
Javascript Navigator sebelumnya telah mendukung Java untuk lebih bisa
dimanfaatkan para programmer non-Java. Maka dikembangkanlah bahasa
pemrograman bernama LiveScript untuk mengakomodasi hal tersebut.
Bahasa pemrograman inilah yang akhirnya berkembang dan diberi nama
Javascript, walaupun tidak ada hubungan bahasa antara Java dengan
Javascript.
2.19
Pengertian JQuery
Menurut Beighly (2010: 8), Jquery adalah Open Source add-on
pustaka JavaScript yang menekankan pada interaksi antara JavaScript dan
HTML. JQuery merupakan kode JavaScript yang telah ditulis, dan tinggal
menambahkan satu atau dua baris koding untuk memanggil koding JQuery.
JQuery banyak digunakan sebagai aplikasi untuk mempercantik tampilan
suatu aplikasi web.
Jquery memiliki banyak keuntungan, diantara lain adalah:
1. Mudah digunakan dan dipelajari.
2. Ringkas dan ringan.
3. Tidak perlu me-reload 1 halaman untuk dijalankan.
4. Reusabilitas yang tinggi.
5. Lisensi bebas.
2.20
Pengertian JSON (JavaScript Object Notation)
Menurut Deitel (2010: 1303), JSON (JavaScript Object Notation)
adalah suatu format pertukaran data komputer. Format dari JSON adalah
berbasis
teks,
dapat
terbaca
oleh
manusia,
digunakan
untuk
mempresentasikan struktur data sederhana, dan tidak bergantung dengan
bahasa apapun. Biasanya digunakan pada aplikasi Ajax. Format JSON sering
digunakan untuk mentransmisikan data terstruktur melalui koneksi jaringan.
40
Secara umum, JSON digunakan untuk mentransmisikan data antara server
dan aplikasi web.
Jenis media internet yang resmi untuk JSON adalah aplikasi/json.
Format JSON sering digunakan untuk serialisasi dan mengirimkan data
terstruktur melalui koneksi jaringan, terutama untuk pengiriman data antara
server dan aplikasi web melayani sebagai alternatif ke XML.
2.21
Pengertian PHP
Menurut Agus Saputra (2011: 1) PHP atau yang memiliki
kepanjangan
PHP Hypertext Preprocessor merupakan
suatu bahasa
pemrograman yang difungsikan untuk membangun suatu website dinamis.
PHP menyatu dengan kode HTML, maksudnya adalah beda kondisi. HTML
digunakan sebagai pembangun atau pondasi dari kerangka layout web,
sedangkan PHP difungsikan sebagai prosesnya sehingga dengan adanya PHP
tersebut, web akan sangat mudah di-maintenance.
PHP berjalan pada sisi server sehingga PHP disebut juga sebagai
bahasa Server Side Scripting. Artinya bahwa dalam setiap/untuk menjalankan
PHP, wajib adanya web server.
PHP ini bersifat open source sehingga dapat dipakai secara cumacuma dan mampu lintas platform, yaitu dapat berjalan pada sistem operasi
Windows maupun Linux. PHP juga dibangun sebagai modul pada web server
apache dan sebagai binary yang dapat berjalan sebagai CGI.
2.21.1 Keunggulan PHP
Ada beberapa alasan yang menjadi dasar pertimbangan
mengapa menggunakan PHP.
1. Mudah dipelajari, alasan tersebut menjadi salah satu alasan
utama untuk menggunakan PHP, pemula pun akan mampu
untuk menjadi web master PHP.
2. Mampu
Lintas
Platform,
artinya
PHP
dapat/mudah
diaplikasikan ke berbagai platform OS(Operating Sytem) dan
hampir semua browser juga mendukung PHP.
41
3. Free alias Gratis, bersifat Open Source.
4. PHP memiliki tingkat akses yang cepat.
5. Didukung oleh beberapa macam web server, PHP mendukung
beberapa web server, seperti Apache, IIS, Lighttpd, Xitami.
6. Mendukung database, PHP mendukung beberapa database,
baik yang gratis maupun yang berbayar, seperti MySQL,
PostgreSQL, mSQL, Informix, SQL server, Oracle.
2.21.2 Script Dasar PHP
PHP sebagai alternatif lain memberikan solusi sangat murah
(karena gratis digunakan) dan dapat berjalan diberbagai jenis
platform. PHP adalah skrip bersifat server-side yang ditambahkan ke
dalam HTML. PHP sendiri merupakan singkatan dari Personal Home
Page Tools. Skrip ini akan membuat suatu aplikasi dapat
diintegrasikan ke dalam HTML sehingga suatu halaman web tidak
lagi bersifat statis, namun menjadi bersifat dinamis. Sifat server side
berarti pengerjaan skrip dilakukan di server, baru kemudian hasilnya
di kirimkan ke browser.
Sintaks dasar PHP meliputi bagaimana cara memulai suatu struktur
pemrograman PHP. Ada empat cara untuk memulai pemrograman
PHP, diantaranya:
1. <?php ...... ?>
2. <? ...... ?>
3. <script language=”php”> ...... </script>
4. <% ...... %>
dari beberapa sintaks dasar tersebut, yang paling banyak digunakan
adalah cara yang pertama dan yang kedua dari atas.
Cara penulisan skrip PHP ada dua macam, yaitu Embedded Script dan
Non Embedded Script. Contohnya:
1. Embedded Script
<html>
42
<body>
<? php echo “Belajar”;
?>
</body>
<html>
2. Non Embedded Script
<?php
echo “<html>”;
echo “<body>”;
echo “Belajar PHP”;
echo “</body>”;
echo “</html>”;
?>
Dari contoh menjelaskan bahwa skrip PHP dapat berupa
embedded script yaitu meletakkan tag PHP diantara tag-tag HTML
sedangkan non embedded script yaitu semua tag HTML diletakkan
dalam tag PHP. Semua kode PHP menyerupai dengan kode bahasa C,
walaupun tidak sepenuhnya sama.
Untuk menampilkan nilai suatu variabel ke layer dapat
menggunakan perintah yaitu echo, print maupun printf. Contohnya:
1. echo
echo “$data”;
echo $data;
echo “nilai”;
echo $data. “Mahasiswa Binus”;
2. print
print (“$data”);
print ($data);
print (“nilai”);
print ($data. “Mahasiswa Binus”);
3. printf
$data=”devie”;
43
printf (“%s”,$data);
printf (“%s Dosen Binus”, $data);
Sebagai contoh untuk menampilkan kata “Halo” pada halaman
web menggunakan PHP, maka sintaksnya sebagai berikut:
<?PHP
Echo “Halo”;
?>
2.22
Pengertian XAMPP
Menurut Dvorski (2007: 1), XAMPP adalah sejenis apache yang kecil
dan ringan yang mengandung pengembangan teknologi web yang paling
umum dalam satu paket. Isinya berukuran kecil dan mudah dibawa membuat
alat yang ideal dalam mengembangkan dan menguji aplikasi di PHP dan
MySQL.
XAMPP adalah aplikasi web server gratis yang multiplatform yang
terdiri atas apache HTTP server, MySQL database, dan penerjemah untuk
script yang ditulis dalam bahasa pemrograman PHP dan Perl.
Program ini dipublikasikan dibawah lisensi general public License
(GNU) dan bersifat gratis, dan sebagai web server yang mudah digunakan
untuk aktifitas halaman web yang dinamis. Saat ini, XAMPP dapat digunakan
pada sistem operasi Microsoft Windows, Linux, Sun solaris dan Mac OS X,
dan biasa digunakan untuk proyek pembuatan website.
Umumnya, pembuat XAMPP hanya berencana sebagai alat untuk
pengembangan yang mengijinkan pembuat website dan pembuat program
menguji pekerjaan mereka di komputer mereka sendiri tanpa harus terhubung
ke internet. Dalam pelaksanaannya, XAMPP seringkali digunakan sebagai
web server di WWW (World Wide Web), XAMPP juga mendukung
pembuatan dan perubahan database di MySQL dan SQLite.
2.23
Adobe Dreamweaver
Menurut
Wahana
Komputer
(2010:2),
Adobe
Dreamweaver
merupakan salah satu program aplikasi yang digunakan untuk membangun
44
sebuah website, baik secara grafis maupun dengan menuliskan kode sumber
secara langsung.
2.24
Java
Gosling et. al. (2005: 3) mengatakan bahwa bahasa pemrograman
Java merupakan sebuah bahasa pemrograman yang berorientasi objek yang
dirancang dengan sederhana sehingga programmer dapat dengan mudah
menggunakan bahasa pemrograman Java.
Syntax yang ada pada bahasa pemrograman Java diambil dari C
ataupun C++ hanya saja dibuat menjadi lebih sederhana dan sedikit lebih
rendah levelnya dibandingkan C ataupun C++.
Aplikasi Java biasanya dikompilasi menjadi bytecode (file class) yang
dapat
dieksekusi pada Java Virtual Machine (JVM) manapun tanpa
memerhatikan arsitektur komputer. Java dapat dijalankan di setiap komputer
dan peralatan elektronik selama perangkat tersebut memiliki JVM (Java
Virtual Machine). Bahasa pemrograman Java tercatat sebagai bahasa
pemrograman terpopuler ke-2 setelah C. (TIOBE Programming Community
Index, September 2012).
Berikut beberapa kelebihan yang ditawarkan bahasa pemrograman
Java menurut Gosling et. al. (2005:554):
1. Implementasi yang sederhana
Bahasa pemrograman Java dapat dikatakan sebagai sebuah perubahan
maju dari bahasa pemrograman yang telah ada. Java dirancang agar
mudah untuk digunakan dalam proses penulisan kode, kompilasi dan
debug dibandingkan bahasa pemrograman lainnya.
2. Object Oriented Programming (OOP)
Java memang dirancang untuk memenuhi kebutuhan bahasa
pemrograman yang berorientasi pada objek seperti pada pembuatan
objek, manipulasi objek, dan membuat objek berhubungan. Dengan
adanya OOP pada Java, maka user dapat menggunakan kembali kode
yang ada.
3. “Write once, run anywhere”
45
Dengan kelebihan ini, progammer cukup membuat sebuah program
dengan Java dan setelah dikompilasi hasilnya dapat dijalankan di
perangkat manapun yang sudah memiliki Java.
4. Performance
Pada awalnya Java memiliki performa yang dapat dikatakan lambat
dan memakan memori yang lebih besar dibandingkan bahasa
pemrograman
C.
Tetapi
setelah
just-in-time
compilation
diperkenalkan, performa Java kian membaik.
2.25
Eclipse
Menurut Steinberg et. al. (2008: 21), Eclipse adalah sebuah open
source software yang gunanya menyediakan tool platform yang sangat
terintegrasi. Dalam penggunaannya Eclipse meliputi core project dimana
yang berisi generic framework untuk tool integration dan sebuah Java
development environment. Proyek pada Eclipse terimplementasikan pada Java
dan dapat dijalankan pada beberapa sistem operasi meliputi Windows, Mac
OSX dan Linux.
Menurut Steinberg et. al. (2008: 13), proyek Eclipse mendukung
pengembangan
dari
sebuah
platform
atau
framework
untuk
pengimplementasian dari Integrated Development Environment (IDE) dan
aplikasi lainnya. Meskipun framework dari Eclipse diimplementasikan pada
Java tidak menutup kemungkinan pengembangan juga dilakukan pada bahasa
pemograman lainnya seperti C++, XML dan sebagainya.
2.26
Aplikasi Mobile
Menurut Cory Jannsen, aplikasi mobile, paling sering disebut sebagai
sebuah aplikasi, adalah jenis aplikasi perangkat lunak yang dirancang untuk
dijalankan pada perangkat mobile, seperti smartphone atau komputer tablet.
Aplikasi mobile menyediakan layanan untuk pengguna dengan layanan
serupa dengan yang diakses pada PC umumnya. Aplikasi umumnya kecil,
unit perangkat lunak individu dengan fungsi terbatas. Penggunaan software
ini telah dipopulerkan oleh Apple Inc. dan App Store, yang menjual ribuan
aplikasi untuk iPhone, iPad dan iPod Touch.
46
Aplikasi mobile dapat juga dikenal sebagai app, Web app, online app,
iPhone app atau smartphone app.
2.27
Smartphone
Menurut William & Sawyer (2011: 385) yang mengutip dari Steve
Lohr penulis New York Times Technology, smartphone adalah teknologi
terdepan yang memungkinkan menambah alat berkualitas tinggi ke dalam
telepon. Smartphone adalah telepon dengan prosesor berukuran mikro,
memori, tampilan layar, dan alat yang telah terpasang untuk terhubung
dengan jaringan.
2.28
Android
Mengacu pada pendapat Nimodia dan Deshmukh (2012: 10), Android
adalah sebuah software stack untuk perangkat mobile yang mencakup sistem
operasi, middleware dan key applications. Android memiliki platform yang
bersifat open source dan sistem operasi untuk perangkat mobile berbasis pada
sistem operasi Linux dan dikembangkan oleh Google dan Open Handset
Alliance.
Sistem operasi pada android ini berbasis bahasa pemrograman Java
menggunakan Android Software Development Kit (Android SDK) dan
berjalan pada Linux Kernel, dengan middleware, library, Application
Programming Interface (API) yang ditulis dalam bahasa C, dan software yang
berjalan pada suatu kerangka aplikasi dengan menyertakan Java-compatible
libraries berbasis pada Apache Harmony, yaitu sebuah implementasi Java
bersifat open source dikembangkan oleh Apache Software Foundation yang
terdiri dari Java Development Kit (JDK), virtual machine dan class library.
2.28.1 Arsitektur Android
Nimodia dan Deshmukh (2012: 11-12) dalam paket sistem
operasi Android terdiri dari beberapa unsur seperti tampak pada
gambar dibawah ini. Secara sederhana arsitektur Android merupakan
47
sebuah kernel Linux dan sekumoulan pustaka C/C++ dalam suatu
framework yang menyediakan dan mengatur alur proses aplikasi.
Gambar 2.12 Arsitektur Android
Sumber: (Android Operating System. Software Engineering – Nimodia
C. and Deshmukh H.R., 2013)
1. Linux Kernel
Android dibangun di atas kernel Linux 2.6. Namun
secara keseluruhan Android bukanlah linux, karena dalam
Android tidak terdapat paket standar yang dimiliki oleh linux
lainnya. Linux merupakan sistem operasi terbuka yang handal
dalam manajemen memori dan proses. Oleh karenanya pada
Android hanya terdapat beberapa servis yang diperlukan
seperti keamanan, manajemen memori, manajemen proses,
jaringan dan driver. Kernel linux menyediakan driver layar,
kamera, keypad, WiFi, Flash Memory, audio, dan IPC
(Interprocess Communication) untuk mengatur aplikasi dan
lubang keamanan.
2. Libraries
48
Android menggunakan beberapa paket pustaka yang
terdapat pada C/C++ dengan standar Berkeley Software
Distribution (BSD) hanya setengah dari yang aslinya untuk
tertanam pada kernel Linux. Beberapa pustaka diantaranya:
a. Media Library untuk mrmutar dan merekam berbagai
macam format audio dan video.
b. Surface Manager untuk mengatur hak akses layer dari
berbagai aplikasi.
c. Graphic Library termasuk didalamnya SGL dan
OpenGL, untuk tampilan 2D dan 3D.
d. SQLite untuk mengatur relasi database yang digunakan
pada aplikasi.
e. SS1 dan WebKit untuk browser dan keamanan internet.
Pustaka-pustaka tersebut bukanlah aplikasi yang
berjalan sendiri, namun hanya dapat digunakan oleh program
yang berada di level atasnya. Sejak versi Android 1.5,
pengembang dapat membuat dan menggunakan pustaka sendiri
menggunakan Native Development Toolkit (NDK).
3. Android Runtime
Pada Android tertanam paket pustaka inti yang
menyediakan sebagian besar fungsi Android. Inilah yang
membedakan Android dibandingkan dengan sistem operasi
yang lain yang juga mengimplementasikan Linux. Android
Runtime
merupakan mesin virtual yang membuat aplikasi
Android menjadi lebih tangguh dengan paket pustaka yang
telah ada. Dalam Android Runtime terdapat 2 bagian utama,
antaranya:
a. Pustaka Inti
Android dikembangkan melalui bahasa pemrograman
Java, tapi Android Runtime bukanlah mesin virtual
Java. Pustaka inti Android menyediakan hampir semua
fungsi yang terdapat pada pustaka Java serta beberapa
pustaka khusus Android
b. Mesin Virtual Dalvik
49
Dalvik
merupakan
sebuah
mesin
virtual
yang
dikembangkan oleh Dan Bornstein yang terinspirasi
dari nama sebuah perkampungan yang berada di
Iceland. Dalvik hanyalah interpreter mesin virtual yang
mengeksekusi file dalam format Dalvik Executable
(*.dex).
Dengan
mengoptimalkan
format
ini
efisiensi
Dalvik
akan
penyimpanan
dan
pengalamatan memori pada file yang dieksekusi.
Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi
dasar seperti threading dan manajemen memori yang
terbatas.
4. Application Framework
Kerangka aplikasi menyediakan kelas-kelas yang dapat
digunakan untuk mengembangkan aplikasi Android. Selain itu,
juga
menyediakan
abstraksi
generik
untuk
mengakses
perangkat, serta mengatur tampilan user interface dan sumber
daya aplikasi. Bagian terpenting dalam kerangka aplikasi
Android adalah sebagai berikut :
a. Activity Manager berfungsi untuk mengontrol siklus
hidup aplikasi dan menjaga keadaan ”Backstack“ untuk
navigasi penggunaan.
b. Content Providers berfungsi untuk merangkum data
yang memungkinkan digunakan oleh aplikasi lainnya,
seperti daftar nama.
c. Resource Manager untuk mengatur sumber daya yang
ada dalam program. Serta menyediakan akses sumber
daya diluar kode program, seperti karakter, grafik, dan
file layout.
d. Location
Manager
berfungsi
untuk
memberikan
informasi detail mengenai lokasi perangkat android
berada.
e. Notification Manager, mencakup berbagai macam
peringatan seperti, pesan masuk, janji, dan lain
sebagainya yang akan ditampilkan pada status bar.
50
5. Application Layer
Puncak dari diagram arsitektur android adalah lapisan
aplikasi dan widget. Lapisan aplikasi merupakan lapisan yang
paling tampak pada pengguna ketika menjalankan program.
Pengguna hanya akan melihat program ketika digunakan tanpa
mengetahui proses yang terjadi dibalik lapisan aplikasi.
Lapisan
ini
berjalan
dalam
Android
runtime
dengan
menggunakan kelas dan service yang tersedia pada framework
aplikasi.
Lapisan
aplikasi
android
sangat
berbeda
dibandingkan dengan sistem operasi lainnya. Pada android
semua aplikasi, baik aplikasi inti (native) maupun aplikasi
pihak
ketiga
berjalan
diatas
menggunakan
pustaka
API
lapisan
aplikasi
(Application
dengan
Programming
Interface) yang sama.
2.28.2 Komponen Aplikasi
Fitur penting android adalah bahwa satu aplikasi dapat
menggunakan elemen dari aplikasi lain (untuk aplikasi yang
memungkinkan). Sebagai contoh, sebuah aplikasi memerlukan fitur
scroller dan aplikasi lain telah mengembangkan fitur scroller yang
baik dan memungkinkan aplikasi lain menggunakannya. Maka
pengembang tidak perlu lagi mengembangkan hal serupa untuk
aplikasinya, cukup menggunakan scoller yang telah ada. Agar fitur
tersebut dapat bekerja, sistem harus dapat menjalankan aplikasi ketika
setiap bagian aplikasi itu dibutuhkan, dan pemanggilan objek java
untuk bagian itu. Oleh karena itu Android berbeda dari sistem-sistem
lain, Android tidak memiliki satu tampilan utama program seperti
fungsi main () pada aplikasi lain. Sebaliknya, aplikasi memiliki
komponen penting yang memungkinkan sistem untuk memanggil dan
menjalankan ketika dibutuhkan. (Anonim1, 2013)
1. Activities
Activity merupakan bagian yang paling penting dalam sebuah
aplikasi, karena Activity menyajikan tampilan visual program
51
yang sedang digunakan oleh pengguna. Setiap Activity
dideklarasikan dalam sebuah kelas yang bertugas untuk
menampilkan antarmuka pengguna yang terdiri dari Views dan
respon terhadap Event. Setiap aplikasi memiliki sebuah
activity atau lebih. Biasanya pasti akan ada activity yang
pertama kali tampil ketika aplikasi dijalankan.
Perpindahan
antara activity dengan activity lainnya diatur melalui sistem,
dengan memanfaatkan activity stack. Keadaan suatu activity
ditentukan oleh posisinya dalam tumpukan acitivity, LIFO
(Last In First Out) dari semua aplikasi yang sedang berjalan.
Bila suatu activity baru dimulai, activity yang sebelumnya
digunakan maka akan dipindahkan ketumpukan paling atas.
Jika pengguna ingin menggunakan activity sebelumnya, cukup
menekan tombol Back, atau menutup activity yang sedang
digunakan, maka activity yang berada diatas akan aktif
kembali. Memory Manager android menggunakan tumpukkan
ini untuk menentukan prioritas aplikasi berdasarkan activity,
memutuskan untuk mengakhiri suatu aplikasi dan mengambil
sumber daya dari aplikasi tersebut.
2. Service
Suatu service tidak memiliki tampilan antarmuka, melainkan
berjalan di background untuk waktu yang tidak terbatas.
Komponen service diproses tidak terlihat, memperbarui
sumber data dan menampilkan notifikasi. Service digunakan
untuk melakukan pengolahan data yang perlu terus diproses,
bahkan ketika Activity tidak aktif atau tidak tampak.
3. Intents
Intens merupakan sebuah mekanisme untuk menggambarkan
tindakan tertentu, seperti memilih foto, menampilkan halaman
web, dan lain sebagainya. Intents tidak selalu dimulai dengan
menjalankan aplikasi, namun juga digunakan oleh sistem
untuk memberitahukan ke aplikasi bila terjadi suatu hal, misal
pesan masuk. Intents dapat eksplisit atau implisit, contohnya
jika suatu aplikasi ingin menampilkan URL, sistem akan
52
menentukan komponen apa yang dibutuhkan oleh Intents
tersebut.
4. Broadcast Receivers
Broadcast Receivers merupakan komponen yang sebenarnya
tidak melakukan apa-apa kecuali menerima dan bereaksi
menyampaikan pemberitahuan. Sebagian besar Broadcast
berasal dari sistem misalnya, Batre sudah hampir habis,
informasi zona waktu telah berubah, atau pengguna telah
merubah bahasa default pada perangkat. Sama halnya dengan
service, Broadcast Receivers tidak menampilkan antarmuka
pengguna. Namun, Broadcast Receivers dapat menggunakan
Notification Manager untuk memberitahukan sesuatu kepada
pengguna.
5. Content Providers
Content Providers digunakan untuk mengelola dan berbagi
database. Data dapat disimpan dalam file sistem, dalam
database SQLite, atau dengan cara lain yang pada prinsipnya
sama. Dengan adanya Content Provider memungkinkan antar
aplikasi untuk saling berbagi data. Komponen ini sangat
berguna ketika sebuah aplikasi membutuhkan data dari
aplikasi lain, sehingga mudah dalam penerapannya.
2.29
Android Software Development Kit (SDK)
Berdasarkan Burnette (2010: 21), Android Software Development Kit
(SDK)
merupakan
sebuah
kumpulan
aplikasi
pengembangan
yang
komprehensif yang meliputi debugger, libraries dan emulator berbasis
QEMU, dokumentasi, tutorial dan contoh kode. Android SDK terbagi dalam
dua bagian yaitu Android SDK Starter dan Android SDK Components.
Android SDK Starter merupakan aplikasi utama sedangkan Android
SDK Components berisi tools yang akan digunakan nantinya. Tools pada
Android SDK terbagi menjadi dua jenis yaitu:
1. SDK tools yang isinya merupakan kumpulan komplit development
tools untuk pengembangan aplikasi.
53
2. Platform tools yang berfungsi untuk mendukung fitur yang baru
muncul pada platform Android tertentu.
2.30
Global Positioning System (GPS)
Mengacu pada pendapat Meduri dan Brahmanandam (2012: 445),
Global Positioning System (GPS) adalah satelit berbasis sistem navigasi radio
untuk memberikan informasi posisi yang akurat dengan waktu yang tepat.
Biasanya, akurasi GPS dibatasi oleh beberapa faktor seperti lingkungan,
penerima, dan kesalahan berbasis satelit.
2.31
Google Maps
Google Maps adalah sebuah layanan gratis peta digital dari Google
berbasis web yang dapat digunakan dan ditempatkan pada website tertentu
dengan menggunakan Google Maps API (Google Inc, 2011).
Google Maps sendiri mempunyai antara lain navigasi peta dengan
dragging mouse, zoom in, dan zoom out untuk menunjukkan informasi peta
secara detil, member penanda, dan memberi informasi tambahan. Mode
viewing pada Google Maps berupa “Map” (peta topografi dan jalan),
“Satellite” (peta berupa foto satelit dan foto resolusi tinggi dari udara),
“Hybrid” (peta berupa foto satelit dan peta jalan berada diatasnya) dan “Street
View”, fasilitas ini secara diperkenalkan oleh Google pada Mei 2007.
2.31.1 Google Maps API
Google Maps API Google menciptakan Google Maps API
untuk memfasilitasi pembangunan suatu aplikasi peta berbasis web
(Google Maps) yang memiliki data sesuai dengan kebutuhan
pengguna.
Dengan menggunakan Google Maps API dimungkinkan untuk
menyisipkan seluruh fasilitas dan teknologi yang ada pada Google
Maps ke dalam suatu web site. Hal utama yang dibutuhkan dalam
pembangunan aplikasi menggunakan API ini adalah API key. API key
adalah nilai kunci atau penanda yang harus ada bila kita menggunakan
54
fasilitas Google Maps API. Setiap website yang menggunakan fasilitas
Google Maps API memiliki nilai API key yang berbeda-beda.
Pembangunan aplikasi peta yang menggunakan Google Maps
API ini menggunakan bahasa Javascript. Baik itu 33 bahasa Javascript
umum maupun bahasa Javascript khusus yang dikembangankan oleh
Google untuk pembangunan Google Maps (Google Javascript).
Dengan menggunakan Javascript ini dapat dibangun suatu aplikasi
peta berbasis web yang interaktif.
Google
terus-menerus
melakukan
pengembangan
dan
penyempurnaan API ini, agar dapat dengan mudah digunakan dan
memiliki layanan yang baik. Google Maps API menyediakan kelaskelas, tipe dan fungsi-fungsi yang dapat digunakan untuk membangun
suatu aplikasi peta Google Maps.
Download