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 7
77
Embed
library.binus.ac.id · Web viewUmpan balik yang informatif akan meberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya. Memberikan
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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