library.binus.ac.id · web viewumpan balik yang informatif akan meberikan indikasi bahwa cara yang...
TRANSCRIPT
BAB 2
TINJAUAN PUSTAKA
2.1 Tinjauan Pustaka
Teori-teori yang digunakan dalam pembuatan aplikasi ini.
2.1.1 Interaksi Manusia dan Komputer
2.1.1.1 Pengertian Interaksi Manusia dan Komputer
Menurut Ben Shneiderman (2010, pp.4-5), interaksi manusia
komputer adalah disiplin ilmu yang mempelajari hubungan
antara manusia dan komputer yang mencakup perancangan,
evaluasi, dan implementasi antarmuka pengguna komputer agar
mudah digunakan oleh manusia. Sebuah sistem dapat disebut
interaktif apabila sistem tersebut dapat berkomunikasi dengan
pengguna, dengan tujuan agar sistem dapat berguna bagi
pengguna.
2.1.1.2 Delapan Aturan Emas (Eight Golden Rules)
Dalam mendesain user interface yang baik, Ben Shneiderman
dan Catherine Plaisaint (2010, pp.70-71) memberi delapan
aturan yang dapat dijadikan pedoman:
1. Konsistensi
Konsistensi dilakukan pada urutan tindakan, perintah, dan
istilah yang digunakan pada prompt, menu serta layar
bantuan.
2. Menyediakan kebutuhan universal
Mengenali kebutuhan mulai dari perbedaan pengguna dari
pemula hingga ahli, rentang usia, disabilitas, dan perbedaan
teknologi yang dapat menjadi pertimbangan kebutuhan ketika
akan membuat suatu sistem. Menambahkan fitur untuk para
pengguna awam seperti tutorial singkat.
3. Memberikan umpan balik yang informatif
Untuk setiap tindakan operator, sebaiknya disertakan suatu
sistem umpan balik. Untuk tindakan yang sering dilakukan
7
8
dan tidak terlalu penting, dapat diberikan umpan balik yang
sederhana. Tetapi jika tindakan tersebut merupakan hal yang
penting, maka umpan balik sebaiknya lebih substansial.
Misalnya seperti memberikan loading ketika user meng-input
data lalu memberitahu hasil dari inputannya apakah benar
atau tidak.
4. Merancang dialog untuk menghasilkan suatu penutupan
Urutan tindakan sebaiknya diorganisir dalam suatu kelompok
dengan bagian awal, tengah, dan akhir. Umpan balik yang
informatif akan meberikan indikasi bahwa cara yang
dilakukan sudah benar dan dapat mempersiapkan kelompok
tindakan berikutnya.
5. Memberikan penanganan kesalahan yang sederhana
Sebisa mungkin sistem dirancang sehingga pengguna tidak
dapat melakukan kesalahan fatal. Jika kesalahan terjadi,
sistem dapat mendeteksi kesalahan dengan cepat dan
memberikan mekanisme yang sedehana dan mudah dipahami
untuk penanganan kesalahan.
6. Mudah kembali ke tindakan sebelumnya
Hal ini dapat mengurangi kekuatiran pengguna karena
pengguna mengetahui kesalahan yang dilakukan dapat
dibatalkan; sehingga pengguna tidak takut untuk
mengekplorasi pilihan-pilihan lain yang belum biasa
digunakan.
7. Mendukung tempat pengendali internal
Pengguna ingin menjadi pengontrol sistem dan sistem akan
merespon tindakan yang dilakukan pengguna daripada
pengguna merasa bahwa sistem mengontrol pengguna.
Sebaiknya sistem dirancang sedemikan rupa sehingga
pengguna menjadi inisiator daripada responden.
8. Mengurangi beban ingatan jangka pendek
Keterbatasan ingatan manusia membutuhkan tampilan yang
sederhana atau banyak tampilan halaman yang sebaiknya
9
disatukan, seragam, agar dapat beradaptasi dalam waktu
singkat.
2.1.2 Konsep Dasar OOP
Menurut Deitel dan Deitel (2012, pp.13) object oriented
programming adalah bahasa pemrograman yang memungkinkan
penerapan desain berorientasi objek sebagai sistem kerja. OOP
menggunakan modular, object oriented design (OOD) dan pendekatan
implementasi yang lebih meningkatkan produktivitas programmer jika
dibandingkan dengan structure programming. Berikut adalah konsep-
konsep dalam OOP, yaitu:
1. The Plane as an Object
Objek menyembunyikan mekanisme kompleks sebuah class
sehingga class dapat digunakan dengan mudah. Contoh sebuah objek
pesawat. Pesawat memiliki attribute: sayap dan bahan bakar. Mobil
memiliki methods: landing dan take off. Untuk landing, teknisi harus
mendesain mekanisme kerja semua attribute agar pesawat dapat
melakukan landing dengan sempurna. Keluaran dari teknisi tersebut
dapat dianalogikan sebagai class. Dan penggunaan keluaran tersebut
dapat dianalogikan sebagai objek dalam hal ini pesawat.
2. Methods and Classes
Methods adalah sekumpulan statement program yang disatukan
hingga menjadi sebuah subprogram atau lebih dikenal dengan fungsi.
Sedangkan class terdiri atas variable, constructor dan sekumpulan
methods yang melakukan tugas-tugas dalam class. Contoh: class
yang merepresentasikan rekening nasabah yang memiliki methods
untuk menabung dan menarik uang.
3. Instantiation
Objek dari sebuah class harus dibangun sebelum menjalankan
method yang didefinisikan oleh class, proses ini disebut
instantiation. Objek merupakan wakil dari keseluruhan isi class.
4. Reuse
Class dapat digunakan berulang kali untuk membangun lebih dari
satu objek. Penggunaan ulang class yang telah ada untuk
10
membangun class atau program baru dapat menghemat waktu dan
tenaga.
11
Penggunaan ulang juga membantu programmer membangun sistem
yang lebih tangguh dan efektif, karena class yang sudah ada secara
tidak langsung telah melewati tahap testing, debugging dan
performance tuning.
5. Messages and Methods Calls
Setiap message diimplementasikan sebagai methods call yang
berfungsi memerintah methods objek yang bersangkutan untuk
melakukan tugasnya. Contoh: program akan memanggil method
menabung pada objek rekening nasabah untuk menambah saldo.
6. Attributes and Instance Variables
Objek selalu memiliki attributes yang digunakan untuk menjalankan
program. Attributes merupakan bagian spesifik dari objek. Attributes
ditentukan dengan instance variable. Contoh: objek rekening bank
memiliki attribute saldo yang merepresentasikan jumlah uang pada
rekening tersebut.
7. Encapsulation
Class membungkus attributes dan methods dalam sebuah objek.
Attributes dan methods pada sebuah objek berhubungan dengan erat.
Objek dapat berkomunikasi dengan objek yang lain akan tetapi
biasanya objek tidak perbolehkan untuk mengetahui bagaimana
objek yang lain diimplementasikan.
8. Inheritance
Sebuah class baru dapat dibangun dengan mudah dan cepat dengan
inheritance karena class baru mengadopsi penuh karakter class
sebelumnya dan dapat melakukan penambahan karakter yang baru.
9. Object-Oriented Analysis and Design (OOAD)
OOAD adalah proses yang yang melibatkan analisis dan
perancangan sistem dari sudut pandang object-oriented. Object-
oriented merupakan pendekatan untuk membangun sebuah program
kompleks. Proses analisis merupakan tahap awal untuk membangun
sebuah program yang kompleks.
12
2.1.3 Android
Menurut Google, Inc. (2015), Android adalah platform open source
untuk mobile yang dipakai lebih dari 1 miliar lebih pengguna
smartphone dan tablet dari seratus sembilan puluh (190) negara di
seluruh dunia. Android merupakan OS (Operating System) yang
berbasis Linux. Setiap versi pada Android dinamakan menurut nama-
nama dessert, seperti Cupcake, Donut, Eclair, Froyo – Frozen Yoghurt,
GingerBread, HoneyComb, Ice Cream Sandwich, Kitkat, Jelly Bean dan
Lollipop (dirilis pada 21 April 2015). Dan versi terbaru dari Android
yaitu Android 6.0 Marshmallow. Untuk membangun aplikasi berbasis
Android dapat menggunakan bahasa pemrograman C (core), C++
ataupun Java (UI). Dengan user interface yang didasarkan pada direct
manipulation, Android khusus didesain untuk pengguna smartphone
ataupun tablet layar sentuh (Touch Screen).
2.1.3.1 Arsitektur AndroidMenurut Burnette (2010, pp.30-35), Android dapat dibagi
menjadi lima lapisan, yaitu:
1. Linux Kernel
Android dibangun berdasarkan kernel Linux yang diciptakan
oleh Linus Torvalds pada tahun 1991. Linux menyediakan
lapisan abstraksi perangkat keras untuk Android. Android
menggunakan Linux untuk manajemen memori, manajemen
proses, jaringan, dan layanan sistem operasi lainnya.
2. Native Libraries
Native libraries merupakan perpustakaan asli pada Android.
Pustaka ini ditulis dalam bahasa pemrograman C atau C++,
dikompilasi untuk arsitektur perangkat keras tertentu yang
digunakan oleh smartphone dan preinstalled oleh vendor
ponsel. Beberapa native libraries yang tesedia, yaitu:
a. Surface Manager
Android menggunakan Window Manager yang mirip
pada sistem operasi Windows, tetapi jauh lebih
sederhana.
b. 2D and 3D graphics
13
2D atau 3D dapat dikombinasikan pada satu tampilan
antarmuka pengguna dengan Android. Pustaka akan
menggunakan hardware 3D jika terdapat hardware
yang mendukung. Jika tidak ada, maka akan
menggunakan fast software render.
c. Media codecs
Android dapat merekam atau memainkan video dan
suara dengan format AAC, AVC (H.264), H.263, MP3,
dan MPEG-4.
d. SQL database
Android menggunakan database SQLLite untuk
menyimpan data.
e. Browser engine
Android menggunakan pustaka WebKit yang
digunakan juga dalam browser Google Chrome, Safari,
dan juga browser pada Iphone.
3. Android Runtime
Android runtime menggunakan library Java dan termasuk
mesin virtual Dalvik. Dalvik VM (Virtual Machine) adalah
implementasi Google Java yang dioptimalkan untuk
perangkat mobile. Semua kode yang anda tulis untuk Android
akan ditulis di Java dan dijalankan dalam mesin virtual.
4. Application Framework
Lapisan ini menyediakan alat tingkat tinggi yang akan dapat
digunakan developer untuk membuat aplikasi. Kerangka
kerja ini dating pre-installed dengan Android, tetapi
developer juga dapat menambahkan komponen sendiri sesuai
kebutuhan.
5. Application and Widgets
Lapisan tertinggi dalam diagram arsitektur Android adalah
lapisan Application and Widgets. Pengguna (end user) hanya
akan melihat program pada lapisan ini, dan tak sadar terhadap
semua tindakan yang terjadi dilapisan bawah. Aplikasi adalah
program yang dapat mengambil alih seluruh layar dan
14
berinteraksi dengan pengguna, sedangkan widget atau gadget,
beroperasi hanya dalam bentuk persegi panjang kecil dari
aplikasi layar.
Gambar 2.1 Arsitektur Sistem Android
(Sumber: Burnette, 2010, pp.31)
2.1.3.2 Siklus Hidup Android
Menurut Burnette (2010, pp.23), selama dalam proses, setiap
activity dari program Android bisa di salah satu dari beberapa
keadaan. Keadaan tersebut tidak dapat dikontrol secara langsung
oleh developer, karena sudah diatur oleh sistem. Namun,
developer mendapat pemberitahuan ketika sebuah keadaan akan
berubah ketika sebuah fungsi dipanggil. Menurut Burnette
(2010, pp.37-38), terdapat sembilan fungsi yang digunakan pada
kelas activity, yaitu:
1. onCreate()
Fungsi ini dipanggil ketika activity pertama kali
dijalankan. Fungsi ini berguna untuk melakukan
inisialisasi awal. Fungsi ini mempunyai satu parameter
yang dapat diberisi null atau berupa informasi kondisi
sebelumnya yang disimpan pada fungsi
onSaveInstanceState().
15
2. onStart()
Fungsi ini menunjukan adanya activity yang akan
ditampilkan kepada pengguna.
3. onResume()
Fungsi ini dipanggil ketika sebuah activity mulai
berinteraksi dengan pengguna. Fungsi ini biasanya
digunakan untuk menjalankan animasi dan musik.
4. onPause()
Fungsi ini dipanggil ketika activity tersebut akan masuk ke
proses background, hal ini terjadi karena ada activity
lainnya yang dipanggil.
5. onStop()
Fungsi ini dipanggil ketika sebuah tampilan activity tidak
digunakan lagi oleh pengguna (tidak digunakan sementara
waktu). Jika memori tidak mencukupi, fungsi ini mungkin
tidak akan dipanggil, melainkan sistem akan
menghancurkan proses activity tersebut.
6. onRestart()
Fungsi ini dipanggil pada saat sebuah activity kembali
ditampilkan kepada pengguna dari keadaan berhenti.
7. onDestroy()
Fungsi ini dipanggil sesaat sebelum sebuah activity
dihancurkan. Jika memori tidak mencukupi, fungsi ini
mungkin tidak akan dipanggil, melainkan sistem akan
menghancurkan proses activity tersebut.
8. onSaveInstanceState(Bundle)
Android akan memanggil fungsi ini untuk menyimpan
keadaan sebelumnya, seperti letak kursor pada kolom teks
sebelumnya. Fungsi ini tidak perlu diganti (override),
karena implementasi standar telah mengontrolnya secara
otomatis.
9. onRestoreInstanceState(Bundle)
16
Fungsi ini dipanggil ketika activity melakukan inisialisasi
ulang dari kondisi sebelumnya yang disimpan dengan
fungsi onSaveInstanceState(). Implementasi standar
mengembalikan keadaan dari tampilan antarmuka
sebelumnya.
Gambar 2.2 Contoh Siklus Hidup Android
(Sumber: Burnette, 2010, pp.37)
2.1.3.3 Building Blocks
Menurut Burnette (2010, pp.39-40), terdapat beberapa
elemen penting untuk pengembangan aplikasi android, yaitu:
1. Activities
Activity adalah tampilan antarmuka. Aplikasi dapat
menentukan satu atau lebih activity untuk menangani
berbagai tahapan program. Setiap activity bertanggung
jawab untuk menyimpan kondisi sendiri sehingga dapat
dikembalikan sebagai bagian dari siklus hidup aplikasi.
Activity merupakan turunan dari kelas context, sehingga
developer dapat menggunakannya untuk mendapatkan
informasi global tentang sebuah aplikasi. Selain activity
terdapat juga Fragment. Fragment merupakan komponen
yang berjalan diatas activity. Sebuah fragment membungkus
17
kode aplikasi sehingga dapat lebih mudah ketika akan
digunakan kembali dan juga bertujuan untuk mendukung
devices yang berbeda layar (Vogella, 2015).
2. Intents
Intents adalah mekanisme untuk menggambarkan tindakan
tertentu, seperti memilih foto. Di Android, hampir
semuanya berjalan melalui intents.
3. Services
Services adalah proses yang berjalan di background, tanpa
interaksi langsung dari pengguna. Sebagai contohnya adalah
pemutar musik yang terus berjalan walaupun pengguna
berpindah-pindah ke program yang berbeda.
4. Content Providers
Content Providers adalah sekumpulan data dibungkus
dalam custom Application Program Interface (API) untuk
membaca dan menulis. API digunakan untuk berbagi data
antar aplikasi. Sebagai contoh, Google menyediakan
penyedia konten untuk informasi kontak yang dapat
digunakan aplikasi lainnya.
2.1.4 SDK
Android SDK merupakan API (Application Programming Interface
modul atau library serta tool yang dibutuhkan developer untuk
membuat sebuah aplikasi android (Anonim1,
www.developer.android.com). Terdapat beberapa fitur pada android
SDK (Meier, 2010, pp.6):
1. Wi-Fi akses hardware.
2. GSM, EDGE, dan 3G untuk telepon atau mengirim data,
memungkinkan untuk membuat atau menerima panggilan atau
pesan SMS, atau mengirim dan mengambil data di jaringan mobile.
3. Pengaturan multimedia hardware, termasuk pemutaran dan
merekam dengan kamera dan microphone.
4. API untuk menggunakan sensor hardware, termasuk accelerometer
dan kompas.
18
5. Membagi penyimpanan data
6. Latar belakang dari aplikasi dan proses.
7. Homescreen widgets, live folders, dan live wallpaper.
8. Kemampuan untuk mengintegrasikan hasil pencarian aplikasi ke
dalam pencarian sistem.
9. Media libraries untuk bermain dan merekam berbagai audio atau
video atau format gambar.
2.1.5 The Ten Principles of Mobile Interface Design
Menurut Stark (2012), terdapat sepuluh prinsip dari mobile
interface design, yaitu:
1. Mobile mindset
a. Be focused: Fitur yang banyak bukanlah hal yang terbaik,
melainkan berfokus pada fitur-fitur tertentu lalu dikembangkan
sebaik mungkin.
b. Be unique: Membuat aplikasi yang unik yang berbeda dengan
aplikasi lainnya.
c. Be charming: Aplikasi yang ramah, dapat diandalkan dan
menyenangkan dapat membuat pengguna sangat nyaman untuk
tetap terus menggunakannya.
d. Be considerate: Developer terlalu sering berfokus dengan hal
yang dikembangkan dan tujuan bisnis pribadi sehingga tidak
berpikir dari sisi pengguna. Para developer harus
menempatkan diri pada posisi pengguna untuk menciptakan
aplikasi dengan pengalaman yang menarik.
2. Mobile context
a. Bored: Harus ada pengalaman yang mendalam dan menarik
perhatian pengguna saat menggunakan aplikasi, sehingga
pengguna tidak mudah bosan. Contoh: Facebook, Twitter dan
Angry Birds.
b. Busy: Kemampuan untuk menyelesaikan tugas secara cepat
dan andal dengan satu tangan pada lingkungan sibuk adalah
hal yang penting. Contoh: email, calendar dan banking.
c. Lost: Pengguna mengeksplorasi sebuah tempat asing sehingga
membutuhkan penggunaan baterai yang lama. Dalam hal ini,
19
daya tahan baterai merupakan perhatian pertama sehingga
diperlukan fitur offline untuk mengurangi penggunaan baterai.
Contoh: Maps, Yelp dan Foursquare.
3. Global guidelines
a. Responsiveness: Jika pengguna melakukan suatu tindakan,
aplikasi harus merespons tindakan tersebut secara instan.
b. Polish: Menyempurnakan aplikasi hingga hal-hal yang paling
detil.
c. Thumbs: Desain bedasarkan jempol, karena jari jempol hampir
selalu digunakan dalam berinteraksi dalam layar touch screen.
d. Targets: Menentukan letak antar tombol sehingga pengguna
tidak salah tekan.
e. Content: Revolusi layar sentuh adalah bahwa hal tersebut
memungkinkan pengguna untuk berinteraksi langsung dengan
konten tanpa menggunakan mouse dan keyboard.
f. Controls: Bila terdapat tombol kontrol, tempatkan tombol
tersebut di bagian bawah layar. Jika tidak, pengguna tidak akan
bisa melihat apa yang terjadi dengan konten pada saat
menggunakan tombol kontrol.
g. Scrolling: Bila memungkinkan, hindari scrolling. Memiliki
layar non-scrolling membuat tampilan dirasa lebih solid dan
dapat diandalkan daripada layar scrolling.
4. Navigation models
a. None: Aplikasi utilitas layar tunggal
b. Tab Bar: Tiga sampai enam tab dengan isi yang berbeda
c. Drill Down: List dan konten detail hierarki
5. User Input
a. Keyboard variations: Pertimbangkan setiap input dan pastikan
untuk menampilkan keyboard paling berguna untuk melakukan
entri data.
b. Keyboard options: Pertimbangkan setiap input dan
memutuskan mana pilihan entri otomatis yang harus diaktifkan
(auto-correct, autocapitalisation dan auto-complete).
20
c. Keyboard orientations: Jika terdapat kebutuhan mengetik yang
sering, harus dipastikan bahwa orientasi landscape agar tombol
keyboard menjadi lebih besar dan mudah ditekan.
6. Gestures
a. Invisible: Gestures yang tidak terlihat, sehingga dibutuhkan
waktu untuk menemukannya. Developer harus memutuskan
bagaimana untuk mengungkapkan keberadaan Gestures
kepada pengguna.
b. Two Hands: Penggunaan aplikasi menggunakan dua tangan
untuk bekerja, seperti yang digunakan dalam aplikasi native
Maps app pada iOS untuk melakukan zoom out/in.
c. Nice to Have: Dalam banyak hal, gestures merupakan hal baik
untuk dimiliki, tapi tidak kritis. Seperti shortcut keyboard,
beberapa pengguna menyenanginya, tetapi kebanyakan
pengguna bahkan tidak akan tahu bahwa hal itu ada.
d. No Replacement: Sebuah kosa kata umum untuk gestures
belum ada sehingga diperlukan sebuah kontrol terlihat bagi
kebanyakan aplikasi.
7. Orientation
a. Portrait: Merupakan orientasi layar yang paling populer
sehingga harus dioptimalkan terlebih dahulu.
b. Landscape: Jika terdapat kebutuhan mengetik yang sering,
maka orientasi landscape harus diutamakan, sehingga
pengguna dapat mengakses keyboard yang lebih besar.
c. Orientation Lock: Jika orientasi yang digunakan berubah-ubah,
tambahkan sebuah orientasi kunci, sehingga pengguna dapat
menggunakan orientasi yang sesuai dengan keinginan.
8. Communications
a. Provide feedback: Memberikan umpan balik untuk setiap
interaksi. Jika tidak, pengguna akan bertanya-tanya apakah
aplikasi mengalami freeze, atau tindakan yang dilakukan tidak
tepat.
21
b. Modal alerts: Memunculkan dialog error pada saat terjadi
kesalahan. Dialog error hanya digunakan ketika ada kesalahan
yang serius.
c. Confirmation: Memunculkan dialog konfirmasi pada saat
meminta pengguna untuk mengkonfirmasi.
9. Launching
Aplikasi yang telah digunakan sebelumnya, harus beroperasi
sesuai dengan kondisi terakhir sebelum pengguna tinggalkan. Hal
ini akan memberikan rasa kecepatan dan sifat aplikasi yang
responsif. Selain itu, sebaiknya memasang gambar sesedikit
mungkin pada saat loading pertama aplikasi. Banyaknya gambar
membuat pengguna merasa tidak nyaman karena seolah-olah
seperti melihat iklan.
10. First Impressions
a. Your Icon: Ikon yang dibuat harus menarik perhatian dan unik,
sehingga dapat bersaing dengan ikon-ikon lainnya. Ikon harus
dibuat simpel, tetapi mempunyai kesan yang kuat sehingga
memberikan kesan yang kuat terhadap aplikasi.
b. First Launch: Pengguna mungkin bingung ketika mencoba
untuk memperkenalkan diri dengan aplikasi baru. Pengguna
akan segera menghapus aplikasi tersebut jika dianggap tidak
user-friendly. Jika sebuah aplikasi menyediakan fungsionalitas
yang kompleks, lebih baik dibuatkan tips dan trik untuk
membantu pengguna.
2.1.6 Agile Software Development
Agile software development adalah metode pengembangan aplikasi
yang mementingkan kepuasan user dan mengembangkan aplikasi
secara bertahap. Pengembangan aplikasi ditekankan pada analisis dan
desain, dan komunikasi yang aktif dan kontinu diantara developers dan
user (Pressman & Maxine, 2015, pp.66).
2.1.6.1 Adaptive Software Development (ASD)
Metode ASD diajukan oleh Jim Highsmith dan Sam Bayer
pada tahun 2000 sebagai teknik untuk membangun software dan
22
sistem yang kompleks. ASD memiliki prinsip yang berfokus
pada penciptaan cepat dan evolusi dari software. Metode ini
tumbuh menggantikan metode rapid application development.
Kedua metode tersebut memiliki struktur yang hampir sama,
perbedaanya terletak pada waktunya, dimana ASD tidak
memiliki waktu yang pasti kapan projek tersebut dapat
dikatakan selesai. Karena metodologi ini berfokus pada
computer code. Ketika ada sesuatu dari sistem yang harus
berubah atau beradaptasi terhadap sistem baru, maka para
coders akan langsung melakukannya. ASD memiliki 6 (enam)
karakteristik, yaitu:
a. Mission Focused
Memiliki pengertian bahwa semua yang terlibat didalam tim
harus fokus kepada tujuan, karena disini orang-orang
didalam tim harus dapat mengatur kolaborasi antar anggota
tim lain secara mandiri.
b. Feature Based
Yang cukup membedakan ASD dibanding metodologi lain
adalah pada pembagian tugasnya, dimana requirement user
akan di ditekankan perfitur.
c. Iterative
Ini merupakan karakteristik umum yang selalu ada pada
setiap Agile development. Memiliki pengertian berulang,
artinya pekerjaan yang dilakukan harus diulang untuk
mendorong terciptanya kepuasan pelanggan sehingga
mempercepat delivery perangkat lunak secara bertahap.
Namun ada hal yang berbeda pada iterasi ini, dimana
kesalahan kecil berdasarkan asumsi akan dicatat sehingga
tim akan menjadi lebih berpengalaman untuk menangani
masalah tersebut.
d. Timeboxed
Setiap tugas memiliki jangka/periode waktu yang tetap,
yang bertujuan untuk membuat setiap orang dalam tim
23
dapat mengerjakan tugasnya sesuai dengan waktu yang
telah ditentukan.
e. Risk Driven
Risk Driven merupakan model yang dibuat oleh tim untuk
mengasumsikan berbagai masalah yang akan muncul, lalu
24
mencari solusi untuk memecahkan masalah tersebut salah
satu caranya adalah mungkin dengan menyederhanakan.
f. Change Tolerant
Membuat software yang dapat dipelihara,diperbarui, dan
diubah sesuai dengan kebutuhan.
Gambar 2.3 Tahapan pada ASD
(Sumber: Pressman, Software Engineering: a practitioners approach 7th Edition,
2010, pp. 81)
Terdapat 3 (tiga) tahapan pada ASD, yaitu:
a. Speculation
Tahap pertama adalah speculation. Selama fase ini,
programmer mencoba untuk mengerti terhadap software
yang akan dibuat dan kebutuhan user. Salah satunya
dengan mendidefinisikan visi dan misi pengguna terhadap
software yang akan dibuat, selanjutnya mendefinisikan
project constraints, misalnya: waktu deliver. Fase ini juga
bergantung kepada bug dan laporan user.
25
b. Collaboration
Tahap selanjutnya adalah collaboration, pada tahap ini
diorganisasikan tim kerja untuk membangun sistem. Fase
ini menuntut orang-orang di tim untuk memperkokoh
tentang apa yang mereka lakukan dan bagaimana
mengkombinasikan porsi dari pekerjaan tersebut.
c. Learning
Tahap terakhir adalah learning, pada fase ini software
yang terbaru diberikan ke user. Ini akan menghasilkan bug
dan laporan user yang digunakan selama fase pertama
project, dan selanjutnya tim ASD melakukan peninjauan
kembali terhadap komponen perangkat lunak untuk
memperbaiki dan meningkatkan kualitas perangkat lunak
yang sedang dibuat sehingga perputaran tahap akan
berulang dengan sendirinya.
2.1.7 Web Services dan WS-Security
Web services menurut W3.org mendefinisikan web service
sebagai sebuah software aplikasi yang dapat teridentifikasi oleh URI
dan memiliki interface yang didefiniskan, dideskripsikan, dan
dimengerti oleh XML dan juga mendukung interaksi langsung dengan
software aplikasi yang lain dengan menggunakan format berbasis
XML/JSON melalui protokol internet. Dengan demikian dengan
menggunakan web service komunikasi antar 2 software aplikasi
yang berbeda platform, sistem operasi tetap dapat terjalin. Selain
itu pada web service hubungan antara client dan server tidak terjadi
secara langsung. Hubungan antara client dan server dijembatani oleh
file web service dalam format tertentu, sehingga akses terhadap
database akan ditanggani tidak secara langsung oleh server,
melainkan melalui perantara yang disebut sebagai web service. Peran
dari web service ini akan mempermudah distribusi sekaligus integrasi
database yang tersebar di beberapa server sekaligus.
26
Gambar 2.4 Proses komunikasi antara klien dan Web server melalui XML
(Sumber : http://images.wpapi.com/soap-webservice.gif)
Komponen-komponen dalam web service secara keseluruhan
memiliki 4 (empat) layer komponen seperti pada gambar
berikut:
Gambar 2.5 Empat layer komponen web service
(Sumber: http://files.ekowins.webnode.com/200000001-856f5864af/komponen.jpg)
Layer 1: Protokol internet standar seperti HTTP, TCP/IP.
Layer 2: Simple Object Access Protocol (SOAP), merupakan
protokol akses objek berbasis XML yang digunakan untuk
proses pertukaran data/informasi antar layanan.
27
Layer 3: Web Service Definition Language (WSDL),
merupakan standar bahasa dalam format XML yang berfungsi
untuk mendeskripsikan seluruh layanan yang tersedia.
Layer 4: UDDI (Universal Description, Discovery and
Integration) adalah sebuah service registry bagi pengalokasian
web service.
Web service security (WS-Security) yaitu standar
keamanan dalam web service yang dirancang untuk
mengatasi ancaman yang diperkirakan akan terjadi. Media
komunikasi dalam web service adalah melalui pesan SOAP.
(Uluwiyah, 2013, pp.10) WS-Security mendefinisikan SOAP
pada elemen header untuk membawa data dengan aman.
WS-Security menyajikan solusi end-to-end untuk keamanan
layanan web dengan menjaga keamanan semua informasi
yang ada pada pesan SOAP. Dalam WS-Security dijelaskan
3(tiga) mekanisme utama untuk mengamankan pesan SOAP,
yaitu bagaimana menjamin integritas pesan SOAP,
bagaimana mengenkripsi pesan SOAP untuk menjamin
kerahasian dan cara melampirkan token keamanan untuk
memastikan identitas pengirim.
2.1.8 Representational State Transfer (REST)
Teknologi REST pertama diperkenalkan oleh disertasi doktoral
Roy Fielding pada tahun 2000. REST (Representational State Transfer)
adalah suatu jenis dari web server yang memungkinkan klien, baik
user-operated atau otomatis, untuk mengakses sumber daya (resources)
yang memodelkan data dan fungsi suatu sistem (Masse, 2011, pp.5).
Ketika klien berinteraksi dengan sistem maka akan membentuk
suatu request terhadap database pada server. Server mengolah dan
mengembalikan data ke klien yang berupa response dalam format XML
atau JSON. Pada web services, hubungan antar klien dan server tidak
terjadi secara langsung karena dijembatani oleh web services.
28
Gambar 2.6 Arsitektur REST
(Kalin, 2009, pp. 123)
Dalam arsitektur diatas, klien mengirimkan dengan HTTP requests
untuk URL yang meminta untuk sumber daya pada server dan
merespon dengan HTTP responses yang kembali ke klien. Sebagai
contoh, request GET dari klien dapat mengirimkan biografi hacker
dalam bentuk halaman HTML. HTTP methods adalah kunci landasan
dari REST yang menentukan tindakan terhadap data. HTTP methods
terdiri dari POST, GET, PUT, dan DELETE dengan fungsi sebagai
berikut (Masse, 2011, pp.23-27):
1. POST
Klien menggunakan POST ketika mengirimkan sumber daya ke
server; digunakan untuk membuat (create) sumber daya baru ke
dalam koleksi
2. GET
Klien menggunakan GET dalam pesan request untuk mendapatkan
(retrieve) sebuah sumber daya. Pesan dapat berisikan headers saja,
tanpa isi (body).
3. PUT
PUT digunakan untuk menambahkan sumber daya ke penyimpanan
dengan URI ditentukan secara spesifik oleh klien; digunakan untuk
memperbaharui atau menggantikan sumber daya yang sudah ada.
Pesan PUT berisikan hal yang ingin diubah.
4. DELETE
29
Klien menggunakan DELETE untuk menghapus sumber daya dari
penyimpanan atau koleksi. Ketika request untuk menghapus
diproses, sumber daya tidak dapat ditemukan lagi oleh klien. Maka
dari itu, status akan dikembalikan error 404 (Not Found). REST
menggunaan skema yang berorientasi pada sumber daya untuk
menggambarkan struktur representasi yang independen dari format
mereka. Orientasi pada sumber daya adalah orientasi yang
menyediakan sumber daya sebagai layanannya dan bukan
kumpulan dari aktifitas yang mengolah sumber daya (Masse, 2011,
pp.59).
2.1.9 JavaScript Object Notation (JSON)
JSON merupakan format pertukaran data yang ringan, mudah
dibaca dan ditulis serta mudah diterjemahkan dan dihasilkan oleh
komputer. JSON dibuat berdasarkan bagian dari bahasa pemrograman
JavaScript, Standar ECMA-262 Edisi ke 3 – Desember 1999, sehingga
membuat JSON lebih ringan dan lebih cepat daripada XML, karena
JSON merupakan bentuk asli dari JavaScript (Anonim4,
www.json.org). JSON menggunakan beberapa bentuk sebagai berikut:
a. Object
Sepasang nama atau nilai yang tidak terurutkan. Objek dimulai
dengan “ { “ (buka kurung kurawal) dan diakhiri dengan “ } ”
(tutup kurung kurawal), dan setiap nama diikuti dengan “ : ”
(titik dua) dan setiap pasangan nama atau nilai dipisahkan oleh “
, ” (koma).
Gambar 2.7 Object pada JSON
(Sumber: http://www.json.org/json-id.html)
30
b. Array
Kumpulan nilai yang telah diurutkan, dimulai dengan “ [ “
(buka kurung kotak) dan diakhiri dengan “ ] ” (tutup kurung
kotak), setiap nilai dipisahkan oleh “ , ” (koma).
Gambar 2.8 Array pada JSON
(Sumber: http://www.json.org/json-id.html)
c. Value
Dapat juga berupa sebuah String dalam tanda kutip ganda,
ataupun angka, ataupun bentuk true or false atau null, ataupun
sebuah object atau array. Dan juga struktur-struktur tersebut
dapat tersusun bertingkat.
Gambar 2.9 Value pada JSON
(Sumber: http://www.json.org/json-id.html)
d. String
Kumpulan dari nol atau lebih karakter Unicode, yang dibungkus
dengan tanda kutip ganda, dalam string dapat digunakan
backslash escapes “ \ ” untuk membentuk karakter khusus.
31
Gambar 2.10 String pada JSON
(Sumber: http://www.json.org/json-id.html)
e. Number
Sangat mirip dengan angka di C atau Java, kecuali format oktal
dan heksadesimal tidak digunakan.
Gambar 2.11 Number pada JSON
(Sumber: http://www.json.org/json-id.html)
2.1.10 MVC
Menurut Pressman dan Maxi (2015,pp.384), MVC merupakan
model arsitektur yang memisahkan user interface dari fungsi dan
content informasi webapp. Oleh karena itu MVC terbagi menjadi tiga
bagian yaitu model, view dan controller.
Gambar 2.12 Arstiektur MVC
(Mihai Curteanu, 2010, pp.1)
32
Biasanya MVC digunakan untuk aplikasi yang besar dan memiliki
struktur data yang kompleks, karena keuntungan dari MVC yaitu
kemudahan dalam melakukan maintenance dan dalam pengembangan
aplikasi tersebut.
2.1.11 Bahasa Pemograman C#
Dibuat berdasarkan C++, C# adalah bahasa pemrograman
berorientasi objek yang dikembangkan oleh Anders Hejlsberg, arsitek
kepala di Microsoft dan seorang insinyur yang hebat. C# merupakan
bahasa pemrograman yang kuat, fleksibel dan berorientasi objek (OOP)
yang digunakan untuk menciptakan berbagai aplikasi. C# telah
digunakan untuk berbagai proyek seperti situs web dinamis, perangkat
pengembangan dan bahkan compiler. C# merupakan bahasa yang
berasal dari C dan C++ dengan menambahkan fitur baru agar bahasa
lebih mudah digunakan (Gary dan Misty, 2010, pp.671). C# (biasanya
disebut juga sebagai “C sharp”) adalah sebuah bahasa pemrograman
komputer yang baru. C# merupakan bahasa object-oriented seperti java
dan merupakan bahasa component-oriented yang pertama. Bahasa
33
pemrograman ini dibuat berbasiskan bahasa C++ yang telah
dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada
bahasa-bahasa pemrograman lainnya seperti java, visual basic, dan
lain-lain dengan beberapa penyederhanaan. C# dititik beratkan pada:
1. C# adalah sebuah bahasa baru yang diturunkan dari keluarga
C/C++
2. Kode pada C# lebih sederhana dan lebih modern dari C++.
3. Merupakan bahasa componen-oriented yang pertama.
4. Merupakan bahasa yang didesain dari .Net framework.
5. Merupakan bahasa yang singkat dan modern.
6. Mengkombinasikan fitur-fitur terbaik dari banyak bahasa yang
umum digunakan: produktivitas dari visual basic, kekuatan dari
C++ dan Java.
7. Mempunyai sintaks yang konsisten.
8. C# akan menjadi pilihan bahasa bagi pemrograman .Net.
9. Bagian terbesar dari .Net framework yang benar-benar dikodekan
dalam bahasa C#.
2.1.12 Konsep .NET
Gambar 2.13 Susunan kerangka kerja .NET
(Sumber: http://slideplayer.com/slide/4800385/)
34
Pada gambar di atas (Bipin Joshi, 2007, pp.11), bagian paling dasar
dari kerangka .NET adalah sistem operasi. Aplikasi yang anda buat
sampai selesai akan menjadi bagian dari produk Windows, karena .NET
berjalan diatas platform Windows termasuk Windows XP hingga
Windows 10.
Pada lapisan kedua terdapat lapisan Common Language Runtime
(CLR). CLR merupakan inti dari kerangka .NET, yang menyediakan
lingkungan untuk mengeksekusi program kepada setiap aplikasi .NET.
Sehingga, untuk menjalankan aplikasi .NET, Anda harus memiliki CLR
yang telah terinstalasi. CLR dapat melakukan banyak hal terhadap
aplikasi Anda, termasuk untuk manajemen memory dan pemerikasan
keamanan.
Pada lapisan ketiga terdapat banyak kumpulan class yang diberi
nama Base Class Library. Base Class Library ini menyediakan banyak
class yang dapat melakukan hampir semua yang Anda butuhkan dalam
aplikasi Anda. Termasuk class untuk input/output (IO), mengakses
basis data, memanipulasi XML dan lainnya. Di lapisan keempat terdiri
atas aplikasi Windows, termasuk model aplikasi web. Model aplikasi
web ini diwakili oleh ASP.NET, termasuk Web Forms dan Web
Services. ASP.NET hadir dengan pengontrol Web Form yang tertanam
di dalamnya, yang berfungsi untuk menghasilkan tampilan antarmuka.
ASP.NET menirukan atribut khusus HTML, seperti text boxes atau
button. Apabila pengontrol ini tidak cocok dengan keinginan Anda,
Anda bebas untuk membuat sendiri pengontrolnya. Web Services
memberikan Anda sebuah model yang dapat mengikat aplikasi yang
berbeda melalui sebuah internet. Model ini berbasis pada infrastruktur
dan aplikasi yang sudah ada. Oleh karena itu, Web Services merupakan
model yang sederhana dan dapat beradaptasi. Di lapisan paling atas
terdapat beberapa bahasa pemrograman yang dapat digunakan untuk
mengembangkan aplikasi.NET. Kerangka.NET menyediakan 5 bahasa
program, yaitu Visual Basic .NET, Visual C#, Managed C++,
Jscript .NET dan Visual J#.
35
2.1.13 Visual Studio
Visual studio merupakan perangkat pengembangan program dari
Microsoft berupa Integrated Development Environment (IDE) dirilis
sejak tahun 1995 (Patrick Desjardins, 2014, pp. 1). Tersedia lima edisi
Visual Studio untuk memenuhi kebutuhan yang berbeda-beda:
a. Express
Express merupakan edisi Visual Studio versi gratis yang tidak
dapat ditambahkan extentions karena memiliki template yang
terbatas. Keuntungan edisi express yaitu: proyek dapat dibuka di
berbagai edisi Visual Studio dan edisi express ini memiliki id
aplikasi sendiri sehingga dapat di-install secara paralel dengan edisi
yang lain.
b. Professional
Professional merupakan tiket masuk untuk menggunakan Visual
Studio IDE secara keseluruhan yang memungkinkan pengembang
untuk membuat berbagai jenis aplikasi dengan menggunakan IDE
yang sama.
c. Premium
Premium merupakan edisi Visual Studio pertama yang
menggunakan kode metrik untuk meningkatkan kualitas aplikasi.
Edisi premium terdapat diantara edisi professional dan edisi
ultimate sehingga edisi premium memiliki semua fungsi
professional dengan beberapa fungsi tambahan yang
memungkinkan pengembang untuk membaca arsitektur dan
pemodelan file grafis.
d. Ultimate
Ultimate merupakan edisi Visual Studio yang paling lengkap
sehingga memungkinkan pengembang untuk menggunakan semua
fitur Visual Studio yang ada. Pada edisi ultimate pengembang dapat
menambahkan extentions untuk menambah fitur pada proyek yang
dibuat. Edisi ultimate memiliki fitur yang tidak dimiliki edisi
lainnya yaitu web berbasis cloud dan pengujian performa proyek.
e. Tester and QA
36
Tester and QA merupakan edisi untuk melakukan pengujian tetapi
pengujian yang dilakukan sangat terbatas.
2.1.14 SQL Server
Leiter (2009, pp.3) menyatakan bahwa SQL Server sangat dikenal
sebagai Relational Database Management System (RDBMS). Namun
tidak hanya itu saja, tetapi juga dapat lebih akurat digambarkan sebagai
data enterprise platform. Sementara itu, SQL Server dikenal dengan
peran sebagai RDBMS tradisional, SQL Server juga menyediakan
kemampuan reporting, analisis data yang kuat dan data mining. SQL
Server tentunya juga mempunyai fitur-fitur yang mendukung aplikasi
data yang berbeda, data driven event notification dan masih banyak
lagi. Menurut Leiter (2009, pp.39) semua sistem dan pengguna basis
data (termasuk sumber daya basis data) disimpan dalam file. Selalu ada
minimal dua file penyimpanan yaitu satu file data dan satu file
transaksi. Ekstensi default untuk file data adalah .MDF, dan default
untuk file log transaksi adalah .LDF.
2.1.15 SQLite
SQLite merupakan software yang menyediakan Relational
Database Management System (RDBMS) dan bersifat public domain
(Jay A. Kreibich, 2010, pp.1). Sistem relasional database digunakan
untuk menyimpan dan mengatur data, dapat diproses melalui perintah
query yang kompleks yang menggabungkan data dari beberapa tabel.
SQLite bersifat open source yang dapat digunakan pada sistem operasi
android yang mendukung fitur database relasional standar seperti
sintaks SQL, transactions dan prepared statements. Selain itu SQLite
mendukung tipe data text (seperti string di Java).
2.1.16 ASP.NET
Ken Cox (2008, pp.12) menjelaskan “ASP.NET adalah sebuah
teknologi untuk menyampaikan aplikasi web yang interaktif melalui
internet dan intranet.” Di dalam ASP.NET terdapat beberapa kontrol,
seperti text boxes, buttons, image, dan data grids, yang dapat disatukan,
dikonfigurasikan, dan dimanipulasi dengan kode untuk membuat
halaman HTML yang muncul pada browser – browser yang populer.
37
Ketika dikombinasikan dengan logika pemrograman, ASP.NET
membiarkan Anda mengirimkan kode HTML yang khusus untuk
keadaan setiap pengguna komputer. Contohnya, jika seorang pengguna
komputer menginginkan sebuah halaman web untuk menampilkan tabel
HTML dengan warna teks hijau dan latar belakang ungu, kode Anda
dapat membaca request yang dating, memeriksa apakah kode tersebut
dapat dilaksanakan, dan merespon. Tidak seperti halaman HTML yang
statis dan tersimpan dalam keadaan lengkap, halaman ASP.NET
biasanya tampil dalam bentuk seperti kerangka. Halaman ASP.NET
menjadi lengkap ketika pengguna komputer me-request sebuah halaman
yang dianalisa oleh ASP.NET, dan mengisi semua content (biasanya
dari sebuah basis data), mengirimkannya dalam bentuk HTML yang
dapat dibaca oleh browser.
2.1.17 Internet Information Services (IIS)
Menurut Microsoft, Inc. (2015), IIS atau Internet Information
Services atau Internet Information Server adalah sebuah HTTP web
server yang digunakan dalam sistem operasi server Windows, mulai
dari Windows NT 4.0 Server, Windows 2000 Server atau Windows
Server 2003. Layanan ini merupakan layanan terintegrasi dalam
Windows 2000 Server, Windows Server 2003 atau sebagai add-on
dalam Windows NT 4.0. Layanan ini berfungsi sebagai pendukung
protokol TCP/IP yang berjalan dalam lapisan aplikasi (application
layer). IIS juga menjadi fondasi dari platform Internet dan Intranet
Microsoft, yang mencakup Microsoft Site Server, Microsoft
Commercial Internet System dan produk-produk Microsoft BackOffice
lainnya.
2.1.18 HyperText Markup Language (HTML)
HTML adalah special formatting language yang digunakan oleh
programmer untuk memformat dokumen yang ditampilkan di web.
Tampilan yang ada didalam halaman web ditulis menggunakan HTML
dan ditampilkan didalam web browser seperti Internet Explorer, Safari,
Firefox, Opera, atau Google Chrome (Shelly dan Vermaat, 2010,
pp.678).
38
2.1.19 Cascading Style Sheet (CSS)
CSS memiliki format dari suatu particular object yang akan
ditampilkan didalam sebuah web browser (Shelly dan Vermaat, 2010,
pp. 683). CSS dapat mengendalikan ukuran gambar, warna 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.
2.1.20 JavaScript
JavaScript merupakan sebuah interpreted language yang dapat
programmer gunakan untuk menambahkan konten dinamis dan elemen
yang interaktif ke dalam halaman web. Elemen-elemen ini seperti alert
messages, scrolling text, animasi, drop-down menus,data input forms,
pop-up windows, interactive quizzes, dan mouse rollovers (Shelly dan
Vermaat, 2010, pp. 682).
2.1.21 JQuery
JQuery merupakan JavaScript Library yang cepat, ringan, dan
memiliki banyak fitur. JQuery digunakan untuk memanipulasi dokumen
HTML, event handling, animasi dan AJAX yang menjadi lebih mudah
digunakan dengan bantuan Application Programming Interface (API)
yang telah disediakan (jQuery, 2014).
2.1.22 Database Management System (DBMS)
Connolly dan Begg (2010, pp.16) menjelaskan “DBMS (Database
Management System) adalah sebuah sistem software yang
memungkinkan pengguna untuk mendefinisikan, memuat, memelihara,
dan mengatur akses ke dalam database. DBMS merupakan sebuah
software yang berinteraksi dengan pengguna program aplikasi dan
database.”
2.1.23 Language INtegrated Query (LINQ)
Language INtegrated Query (LINQ) adalah ekstensi yang tersedia
untuk Visual Basic dan C# programming yang di desain untuk
menyederhanakan data queries dan interaksi data. LINQ ditujukan
untuk menyelesaikan masalah O/R Mapping dengan membuat query
39
statement menjadi bagian dari bahasa pemrograman. Selain itu tersedia
juga dukungan untuk melakukan query di memory collection seperti
array atau list, XML, DataSets dan relational database (Marguerie dan
Eichert, 2008).
Gambar 2.14 LINQ Arsitektur
(Sumber: http://csharpcorner.mindcrackerinc.netdna-cdn.com/UploadFile/84c85b/
using-linq-with-C-Sharp-2012/Images/LINQ%20architecture.jpg)
LINQ (Language-Integrated Query) pada C# merupakan model
pemrograman Microsoft yang pada dasarnya menambahkan
kemampuan query formal ke bahasa pemrograman Microsoft yang
berbasis .NET. LINQ menyediakan function untuk memanipulasi
database tanpa harus melakukan query atau bahkan mengerti query.
LINQ adalah keyword baru pada C# dan VB yang diperkenalkan
pada .NET versi 3.5 dan pada C# versi 3.0 yang telah menambahkan
beberapa fitur dalam rangka mendukung LINQ. Kemudian adanya
integrasi yang kuat terhadap bahasa pemrograman, LINQ
menambahkan sekumpulan API yang memungkinkan pengaksesan data
terhadap sumber data yang berbeda-beda. Secara singkat LINQ dapat
didefinisikan sebagai sebuah metode yang memudahkan dan
menseragamkan cara pengaksesan data. Sehingga dengan
menggunakan LINQ developer hanya perlu menggunakan sebuah
40
teknik pengaksesan data saja. Karena jika kita lihat dunia
pemrogramman saat ini umumnya developer perlu menguasai skill yang
berbeda-beda untuk setiap media penyimpanan data. Dengan
menggunakan LINQ, kita dapat melakukan query ke berbagai macam
data seperti ke database SQL Server (LINQ to SQL), ke object DataSet
(LINQ to DataSet), ke entity (LINQ to Entity Framework), data XML
(LINQ to XML) dan masih banyak lagi. Sebelum ada LINQ untuk
mengakses objek-objek seperti array, collection, database, dan XML
anda membutuhkan beberapa teknik yang berbeda, misal untuk
mengakses database anda harus menggunakan bahasa SQL, untuk
mengakses XML digunakan XPath atau XQuery tapi dengan
menggunakan LINQ objek yang berbeda-beda tersebut dapat
diseragamkan dengan teknik yang sama yaitu LINQ.
2.1.24 World Wide Web (WWW)
Connolly dan Begg (2010, pp. 1028) menjelaskan “WWW adalah
penjelajahan halaman informasi yang sangat besar yang 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
dapat berisi hyperlink yang tertuju ke halaman web lain yang membuat
user dapat mencari informasi lain” WWW terdiri atas jaringan dari
beberapa komputer yang dapat berperan sebagai server (yang
menyediakan informasi) dan client, umumnya disebut sebagai browser
(yang meminta informasi). Contoh dari server adalah Apache HTTP
Server, Microsoft Internet Information Server (IIS) dan Netscape
Enterprise Server. Contoh dari browser adalah Google Chrome, Mozilla
Firefox, dan Internet Explorer. Banyak informasi dari web tersimpan di
dalam dokumen yang menggunakan bahasa HTML (HyperText Markup
Language) dan browser harus memahami dan menerjemahkan HTML
untuk menampilkan dokumen ini. Protokol yang mengatur pertukaran
informasi antara server dengan browser di namakan HTTP (HyperText
Transfer Protocol). Dokumen dan lokasi dokumen tersebut
41
diidentifikasikan oleh sebuah alamat, yang disebut sebagai Uniform
Resource Locator (URL).
Gambar 2.15 Komponen dasar web dan lingkungannya
2.1.25 Entity Framework
Menurut Microsoft, Inc. (2015), Entity Framework adalah object
relational mapper yang membuat developer .NET dapat bekerja
dengan relational data melalui suatu objek (EDM). Entity Data
Model (EDM) adalah representasi data model yang ada berada pada
sisiclient dan merupakan inti dari Entity Framework.
2.1.26 Google Cloud Messaging (GCM)
GCM atau sering disebut dengan Google Cloud Messaging
merupakan service yang diberikan oleh Google untuk membantu
developer untuk mengirimkan data dari server kedalam aplikasi
Android pada device Android. Dengan menggunakan GCM, setiap user
dapat mendapatkan informasi-informasi terbaru dari aplikasi yang di
bangun oleh developer. GCM menggunakan server Google dan
Android. GCM juga dapat menerima message dari multiple sender
tetapi maksimal 100 multiple sender
(https://developers.google.com/cloud-messaging/concept-options).
Untuk dapat menggunakan GCM, dapat mengikuti arahan yang telah di
berikan oleh Google yaitu pada https://developers.google.com/cloud-
messaging/. Pada website ini, Google sudah memberikan guide kepada
developer, developer tinggal memilih untuk guide pada Android atau
42
guide pada iOS. Untuk menggunakan GCM pada Android, pertama-
tama setiap developer harus mendaftarkan nama aplikasi dan packages.
Setelah mendaftarkannya, Google akan memberikan file google-
services.json yang harus di download dan di masukkan ke dalam
project dan juga server API key. Untuk mendapatkan notifikasi kepada
setiap device, developer harus mendapatkan registration token dari
instanceID API. Token di gunakan untuk membedakan setiap device
yang akan menjalankan aplikasi, token tersebut kemudian akan di
berikan kepada server. Untuk meng-handle notifikasi yang masuk,
dapat menggunakan GcmListenerService yang akan di atur oleh
GcmReciever. Dengan meng-override method
GcmListenerService.onMessageRecieved, developer dapat mengatur
apa saja yang akan di tampilkan. Contoh:
@Overridepublic void onMessageReceived(String from, Bundle data) { String message = data.getString("message"); Log.d(TAG, "From: " + from); Log.d(TAG, "Message: " + message);
if (from.startsWith("/topics/")) { // message received from some topic. } else { // normal downstream message. }
// ...}
MyGcmListenerService.java
2.1.27 Java
Java dikenal sebagai bahasa program untuk aplikasi internet.
Bahasa pemrograman didesain untuk memudahkan orang-orang untuk
menuliskan dan memahaminya adalah yang dimaksud dengan bahasa
tingkat tinggi (High-Level Languages). Bahasa yang digunakan
komputer adalah bahasa mesin. Bahasa mesin atau bahasa yang hampir
sama dengan bahasa mesin disebut dengan bahasa tingkat rendah (Low-
Level Languages). Sehingga program yang dituliskan ke dalam bahasa
43
tingkat tinggi harus diterjemahkan dahulu ke dalam bahasa mesin
sebelum dijalankan. Program yang digunakan untuk menerjemahkan
bahasa tersebut disebut dengan compiler dan proses penerjemahannya
disebut dengan compiling (Walter Savitch, 2012).
Sementara ada beberapa versi java yang diterjemahkan ke dalam
bahasa byte-code. Bahasa ini adalah bahasa mesin untuk komputer
tertentu yang dapat berjalan pada Java Virtual Machine (JVM). Byte-
Code adalah program java yang diterjemahkan oleh compiler ke dalam
bahasa byte-code. Sehingga sangat mudah untuk menerjemahkan ke
dalam bahasa mesin komputer tertentu. Setiap komputer dapat memiliki
perangkat lunak untuk mengimplementasikannya ke dalam JVM. Salah
satu keunggulan Java adalah bahasa program yang berbasis Object
Oriented Programming (OOP). OOP adalah metodologi pemrograman
yang terdiri dari objek yang saling berinteraksi satu sama lain melalui
tindakan (Walter Savitch, 2012).
2.1.28 Android Studio
Android Studio merupakan sebuah IDE untuk mengembangkan
aplikasi Android. Android Studio dapat di download di situs resmi
Andoid http://developer. Android .com/sdk/installing/studio.html ).
Perbedaan antara Android Studio dan Eclipse adalah pada Android
Studio terdapat Gradle untuk manajemen projeknya. Gradle
merupakan fitur bulid automation. File Gradle ini berisi library yang
digunakan oleh pengembang aplikasi, versi aplikasi, signed key
properties ataupun lokasi repository. Android Studio merupakan
official IDE (integrated development environment) untuk membangun
aplikasi Android berdasarkan IntelliJ IDEA. Dengan menggunakan
Android Studio, setiap developer dapat dengan mudah mengatur layout
atau tampilan sesuai dengan yang di harapkan dengan menggunakan
metode drag and drop.
2.1.29 UML
Menurut Whitten dan Bentley (2007), Unified Modelling Language
atau sering disebut dengan UML merupakan sekumpulan aturan yang
digunakan untuk menspesifikasikan dan mendenskripsikan sebuah
44
sistem software yang berhubungan dengan objek. UML merupakan
standar yang biasa digunakan oleh dunia yang dibuat oleh Object
Management Group (OMG), sebuah badan yang bertugas
mengeluarkan standar-standar teknologi object oriented dan software
component. Menurut Whitten dan Bentley (2007), UML 2.0 dapat
digolongkan menjadi tiga jenis diagram, yaitu
Tabel 2.1 Jenis-jenis UML diagram
(Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)
Requirement
Analysis Phase
Logical Design
Phase
Physical Design
Phase
Use-case
DiagramActivity Diagram Sequence Diagram
System Sequence
DiagramClass Diagram
Class Diagram State Machine Diagram
Communication Diagram
Component Diagram
Deployment Diagram
1. Use Case Diagram
Use case diagram adalah sebuah diagram yang
menggambarkan berbagai peran pengguna dan bagaimana sebuah
sistem akan digunakan oleh pengguna tersebut. (Satzinger, 2012,
pp.78). Use case merupakan diagram UML utama yang dapat
digunakan sebagai tolak ukur untuk diagram-diagram lainnya
seperti sequence diagram dan activity diagram. Dalam Use Case
Diagram, fungsi-fungsi dari sistem dideskripsikan menggunakan
komponen bernama use case. Actor merupakan user yang akan
45
melakukan interaksi dengan sistem, sedangkan jenis-jenis
interaksi yang dilakukan oleh Actor terhadap use case disebut
relationship. (Whitten dan Bentley, 2007, pp.247-248). Hubungan
yang terdapat pada Use Case diagram menurut Whitten dan
Bentley (2007) yaitu:
a. Association
Association merupakan hubungan terjadi antara aktor dan use
case. Association dengan tanda panah dari aktor menuju use
case menunjukan bahwa aktor berhubungan dengan use case,
dimana use case merupakan penerima. Sedangkan
Association tanpa tanda panah menunjukan interaksi antara
use case dan aktor dengan aktor sebagai penerima.
Gambar 2.16 Contoh penggunaan Association Use case
(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp.248)
b. Extends
Extends merupakan penggambaran use case yang rumit
sehingga menjadi lebih mudah dan sederhana dengan
membaginya menjadi beberapa tahap.
Gambar 2.17 Contoh penggunaan Extends pada use case
(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp.249)
46
c. Uses (Includes)
Uses (Includes) berfungsi untuk generalisasi use case yang
dapat mengurangi redundansi. Beberapa langkah yang mirip
atau sama dalam sebuah use case diagram disebut juga
dengan use case abstrak.
Gambar 2.18 Contoh Penggunaan include pada Use case
(Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007, pp.249)
d. Depends On
Depends On merupakan gambaran adanya ketergantungan
antara satu use case dengan use case lainnya sehingga sebuah
aktivitas hanya dapat dilakukan apabila aktivitas sebelumnya
sudah dijalankan.
Gambar 2.19 Contoh penggunaan Depends On pada Use Case
(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp.250)
47
e. Inheritance
Inheritance digunakan ketika terdapat dua atau lebih
actor yang menunjuk atau melakukan use case yang sama.
Inheritance berguna untuk menciptakan sebuah abstract
actor yang dapat melakukan use case tersebut.
Gambar 2.20 Contoh penggunaan Inheritance pada Use Case
(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp. 250)
Gambar 2.21 Contoh Use Case Diagram
(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp. 256)
2. Use Case Narrative
Use case narrative adalah dokumentasi secara high-level
(tingkat tinggi atau secara luas) untuk memahami kejadian dan
tingkatan pada sistem (Whitten dan Bentley, 2007, pp.256).
48
Setiap use case harus diperluas untuk memasukkan aliran khusus
dari kejadian dan aliran alternatifnya. Aliran khusus use case dari
kejadian adalah deskripsi langkah demi langkah yang dimulai dari
seorang aktor yang memulai proses dan berlanjut sampai akhir
kejadian. Aliran alternative mendokumentasi jalur bercabang dari
use case (Whitten dan Bentley, 2007, pp.258).
3. Class Diagram
Class diagram merupakan diagram yang menunjukkan
gambaran grafis dari struktur objek, yang menunjukkan kelas
objek yang ada pada suatu sistem dan hubungan antar kelas-kelas
objek tersebut (Whitten dan Bentley, 2007). Setiap class atau
objek pada class diagram dibagi menjadi 3 bagian, yaitu:
1. Nama kelas
Nama kelas harus bersifat unik sehingga dapat di bedakan
antara kelas yang satu dengan kelas yang lainnya.
2. Atribut kelas
Berisi atribut-atribut yang terdapat dalam class tersebut.
3. Operasi kelas
Berisi method-method yang di gunakan atau di jalankan di
class tersebut.
Berikut merupakan jenis hubungan yang terdapat pada class
diagram menurut Whitten dan Bentley (2007):
1. Visibillity
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):
49
Tabel 2.2 Tabel Visibility
Visibility Simbol Deskripsi
Private +
Atribut atau method tersebut
tidak dapat di panggil di Class
lainnya, hanya dapat di panggil
oleh Class itu sendiri.
Public -Atribut atau method tersebut
dapat di panggil di semua Class
Protected #
Atribut atau method tersebut
hanya dapat di panggil oleh
Class yang bersangkutan atau
Class anaknya
2. 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.3 Tabel Multiplicity
Multiplicity Deskripsi
0..1 Nol atau satu
1 Hanya satu
0..* Nol atau lebih
1..* Satu atau lebih
a..z Antara a sampai z
3. Generalisasi
50
Generalisasi merupakan suatu teknik dimana sebuah kelas
(subclass) dapat mewarisi atribut-atribut dan operasi-
operasi dari kelas lainnya (superclass) dimana
superclass bersifat lebih umum daripada subclass (Whitten
dan Bentley, 2007). Generalization dan Specialization
adalah hubungan antar class dimana terdapat super class,
yaitu sebuah class yang merupakan hasil pengelompokan
class-class berdasarkan attribute dan behavior yang sama
(generalization), dan sub class, yaitu class-class yang
mendapatkan attribute dan behavior turunan dari sebuah
super classnamun dapat memiliki attribute dan behavior-
nya sendiri (specialization).
Gambar 2.22 Contoh Generalization Class Diagram
(Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)
Gambar 2.23 Contoh Generalization/Specialization Class Diagram
(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007, pp.375)
51
4. Association
Association menunjukan adanya hubungan antar dua class
atau lebih dalam sebuah class diagram. Association juga
menerangkan hubungan antar class yang meliputi
multiplicity. Dalam association terdapat dua jenis
hubungan, yaitu:
a. Bi-directional
Kedua class yang saling berhubungan, memiliki peran
dalam hubungan tersebut. Hubungan ini digambarkan
dengan garis lurus tanpa tanda panah.
b. Uni-directional
Kedua class yang saling terhubung, dan hanya salah
satu saja yang memiliki peran dalam hubungan
tersebut. Hubungan ini digambarkan menggunakan
garis lurus dengan tanda panah.
Gambar 2.24 Contoh Association Bi-Directional dan Uni-Directional Class
Diagram
(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007)
5. Agregration dan Composition
Agregration menunjukan hubungan antar satu class adalah
bagian dari class lainya. Agregasi tidak termasuk dalam
inheritance. Misal, class A adalah bagian dari class B,
maka class B bukanlah bagian dari class A.
52
Gambar 2.25 Contoh Agregation Class Diagram
(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007)
Ada kemiripan antar composition dan agregation,
tetapi composition memiliki keterkaitan yang lebih erat.
Misal, jika class A adalah bagian dari class B, jika class B
tidak terbentuk, maka class A tidak akan ada.
Gambar 2.26 Contoh Composition Class Diagram
(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007)
Gambar 2.27 Contoh Class Diagram
(Sumber: System Analysis and Design Method – Whitten and Bentley, 2007, pp. 406)
53
4. Activity Diagram
Activity diagram merupakan diagram yang berisikan proses alur
dari aktivitas–aktivitas yang terdapat dalam sistem, biasa
digunakan untuk merancang spesifikasi berdasarkan use case
yang telah di buat. Activity diagram juga dapat menggambarkan
aktivitas pararel yang mungkin dapat terjadi pada sekali jalan.
Activity diagram dapat dibagi menjadi beberapa object swimlane
untuk menggambarkan objek mana yang bertanggung jawab
untuk aktivitas tertentu. Berikut adalah komponen-komponen
yang terdapat dalam Activity Diagram:
Tabel 2.4 Komponen-komponen Activity Diagram
Nama Simbol Deskripsi
Initial ModeAwal dari semua kegiatan/
activity dilakukan
ActivityKegiatan - kegiatan yang di
lakukan.
Flow
Menunjukan arah atau jalur
dari satu aktivitas ke
aktivitas lainya
Decision dan
Merge
Decision merupakan pilihan
yang dapat dilakukan oleh
user. Customer hanya dapat
melakukan salah satunya saja
seperti pilihan antara iya atau
tidak. Merge merupakan
penggabungan aktivitas yang
dipisahkan oleh decision.
54
Nama Simbol Deskripsi
Fork dan
Join dan
Fork menggambarkan
bahwa adanya 2 aktivitas
yang akan berjalan. Join
menggambarkan
berakhirnya proses yang
telah berjalan bersamaan
sebelumnya.
Activity Final
Akhir dari setiap activity di
lakukan. Setiap activity
diagram dapat memiliki
lebih dari satu finish state.
Swimlane
Pemisah antara Customer
yang menggunakan pada
setiap aktivitas yang
dijalankan
55
Gambar 2.28 Contoh Activity Diagram
(Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007,pp.393)
5. Sequence Diagram
Sequence diagram adalah salah satu UML diagram yang
menggambarkan model logika dari sebuah use case dengan
menggambarkan interaksi pesan antar objek dalam suatu urutan
waktu (Whitten dan Bentley, 2007).
56
Tabel 2.5 Komponen-komponen Sequence Diagram
Nama Simbol Deskripsi
Actor
Customer yang
menggunakan sistem
Interface
Class<<interface>>
Suatu notasi yang berfungsi
untuk memastikan class
interface code, agar tidak
terjadi kebingungan atas
jenis class
Controller
Class<<controller>>
Setiap use case memiliki
satu atau lebih controller,
digambarkan sama seperti
notasi interface class
MessageMenyampaikan pesan dari
setiap method.
Object
Simbol yang
merepresentasikan class
pada class diagram
Entity
Classes:
Menambahkan kotak ke
dalam setiap entitas yang
diperlukan untuk
kolaborasi dalam urutan.
Activity
Bars
Menunjukan berapa
lamanya waktu objek
digunakan.
57
Nama Simbol Deskripsi
Return
Message
Hasil dari masukan yang
dimasukan oleh objek
FrameMenunjukkan area pada
diagram
Self-callObjek yang memanggil
method-nya sendiri.
Gambar 2.29 Contoh Sequence Diagram
(Sumber: System Analysis and Design Method - Whitten dan Bentley, 200, pp.659)
58
2.1.30 Entity Relationship Diagram (ERD)
ERD menurut Whitten dan Bentley (2007, pp.271) adalah suatu
model data yang memanfaatkan beberapa notasi untuk menggambarkan
data dari entitas dan hubungan yang dideskripsikan oleh data tersebut.
Terdapat 4 komponen ERD, yaitu:
a. Entities
Entitas (entities) adalah model individu dalam basis data yang
mewakili sesuatu yang nyata. Misalnya, pelanggan, pengguna,
pekerja dan lain-lain. Himpunan pelanggan merupakan himpunan
entitas.
b. Attributes
Atribut (attributes) adalah karakteristik atau properti yang
mendeskripsikan sebuah entitas. Misalnya, pelanggan mempunyai
atribut: id_pelanggan, nama_pelanggan, alamat_pelanggan.
c. Relationships
Relasi menunjukkan hubungan antara himpunan entitas yang satu
dengan himpunan entitas yang lain.
d. Key
Key merupakan sebuah atribut yang unik, tidak ada 2 entitas yang
memiliki key yang sama dalam sebuah himpunan entitas.
2.1.31 Black Box Testing
Menurut Pressman (2010, pp.484), black box testing adalah suatu
pengujian yang ditujukan pada tampilan perangkat lunak. Black box
testing memeriksa beberapa aspek penting dari sistem, seperti aspek
yang dilihat hanya pada fungsionalitas dan output, lebih fokus pada
hasil dan tanpa melihat proses yang terjadi di dalam sistem. Menurut
Pressman (2010, pp.495), tujuan utama dari black box testing adalah
mencari kesalahan atau error dengan kategori sebagai berikut:
1. Mencari fungsi yang salah atau kurang.
2. Mencari kesalahan pada tampilan.
3. Mencari kesalahan pada struktur data atau akses database.
4. Mencari kesalahan pada behavior atau performa.
59
5. Mencari kesalahan pada inisialisasi (awal) dan akhiran.
2.1.32 Futsal
Menurut (Tenang, 2008, pp.15), futsal adalah singkatan dari fútbol
(sepak bola) dan sala (ruangan) dari bahasa Spanyol atau futebol
(Portugal/Brasil) dan salon (Prancis). Olahraga ini membentuk seorang
pemain agar selalu siap menerima dan mengumpan bola dengan cepat
dalam tekanan pemain lawan. Dengan lapangan yang sempit, permainan
ini menuntut teknik penguasaan bola tinggi, kerja sama antar pemain
dan kekompakan tim. Asal muasal futsal muncul pada 1930 di
Montevideo, Uruguay dan diperkenalkan oleh seorang pelatih sepak
bola bernama Juan Carlos Ceriani. Awalnya, Ceriani hanya ingin
memindahkan latihan ke dalam ruangan karena kecewa dengan kondisi
lapangan yang licin setelah diguyur hujan. Ternyata, latihan di dalam
ruangan sangat efektif. Dia lantas mencetuskan permainan sepak bola
dalam ruangan dengan lima lawan lima pemain. Hal ini ternyata
mendapat sambutan positif bahkan digandrungi di hampir seluruh
negeri di Amerika Selatan. Futsal ternyata sangat efektif menumbuh
kembangkan kemampuan pemain pemula dalam mengasah
keterampilan bermain bola di lapangan rumput. Dengan asumsi untuk
meningkatkan keterampilan bermain sepak bola, futsal berkembang
pesat di Brasil dan terus menyebar ke seluruh dunia. Bahkan menembus
ke Eropa, Amerika Serikat, Afrika, Asia dan Oseania.
2.1.33 Bootstrap
Menurut Spurlock (2013, pp.1), Bootstrap adalah suatu produk
open source yang diluncurkan pada bulan Agustus 2011 dari Mark Otto
dan Jacob Thornton yang keduanya saat itu bekerja pada sebuah
perusahaan media sosial, yaitu Twitter. Bootstrap ini merupakan suatu
kerangka kerja front end untuk merancang sebuah web yang responsif,
yang bisa menyesuaikan lebar tampilannya sesuai dengan media yang
digunakan, baik menggunakan ponsel, laptop, maupun PC desktop.
Selain itu Bootstrap juga memiliki fitur 12 column grid system,
maksudnya adalah Bootstrap akan membagi layar menjadi 12 bagian
60
sehingga pembagian kolom tampilan web akan menjadi lebih mudah.
(Spurlock, 2013, pp.3)
2.1.34 Dependency Injection (DI)
Menurut Mark Aeeman (2012, pp. 4) Dependency Injection adalah
rangkaian prinsip dan pola desain perangkat lunak yang memungkinkan
kita untuk mengembangkan loosely coupled code.
2.1.35 Ninject
Menurut Ninject, Org. (2015), Ninject merupakan framework .NET
yang berfungsi sebagai Dependency Injector yang bertujuan untuk
memberikan kemudahan kepada developer apabila ingin melakukan
perubahan code, karena Ninject berfokus kepada kesederhanaan dan
kemudahaan penggunaan.