BAB 2 LANDASAN TEORI
2.1
Teori Dasar Umum Berikut merupakan teori-teori dasar umum yang digunakan dalam penulisan skripsi ini: 2.1.1
Interaksi Manusia dan Komputer Berikut merupakan penjelasan teori Interaksi Manusia dan Komputer: 2.1.1.1
Pengertian Interaksi Manusia dan Komputer Berdasarkan Shneiderman dan Plaisant (2010), Interaksi Manusia dan Komputer (IMK) adalah ilmu yang mempelajari bagaimana cara merancang interface yang baik agar efisien pada saat digunakan oleh user.
2.1.1.2
Lima Faktor Manusia Terukur Shneiderman dan Plaisant (2010) menyatakan bahwa dalam merancang sebuah sistem yang ramah (friendly) untuk user maka harus memperhatikan 5 (lima) faktor sebagai berikut: 1. Waktu belajar Waktu yang diperlukan user untuk mempelajari semua aksi yang diperlukan untuk menyelesaikan tugasnya.
13
14 2.
Kecepatan kinerja Waktu yang diperlukan untuk menyelesaikan tugas.
3.
Tingkat kesalahan user Jumlah dan jenis kesalahan yang akan muncul pada saat user akan melakukan tugasnya.
4.
Daya ingat Seberapa baik pengetahuan dan kemampuan user dalam jangka waktu tertentu.
5.
Kepuasan subjektif Tingkat ketertarikan user terhadap aspek-aspek pada interface.
2.1.1.3
Delapan Aturan Emas Shneiderman dan Plaisant (2010) mengemukakan 8 (delapan) aturan yang dapat digunakan sebagai pedoman dasar yang baik dalam merancang sebuah user interface. Delapan aturan tersebut, yaitu: 1.
Konsistensi Konsistensi sangat dibutuhkan pada sistuasi yang serupa, seperti pada penggunaan warna pada menu, font hingga urutan tindakan.
2.
Melayani kebutuhan secara universal Dengan menyadari kebutuhan user yang beragam, rancangan interface yang dibuat harus bisa memfasilitasi
15 perubahan konten sesuai kebutuhan user. Perbedaan tingkatan user (novice-intermittent knowledgeable-expert), perbedaan umur, keterbatasan penggunaan indera user dan ragam teknologi yang ada membuat requirement yang dibutuhkan semakin bertambah. Seperti untuk novice user ditambahkan penjelasan ataupun panduan pada interface, pada
intermittent
tambahan
feedback
knowledgeable yang
user
bermanfaat
memerlukan dan
panduan
kegunaan yang berpola secara berkala, untuk expert user ditambahkan
shortcut
yang
membuat
user
dapat
mempersingkat aksi. 3.
Memberi feedback yang informatif Setiap tindakan yang dilakukan user perlu diberi feedback dari sistem tentang akibat dari aksi yang telah dilakukan.
4.
Merancang dialog untuk hasil akhir Urutan dari aksi harus dikelompokkan menjadi bagian awal, tengah dan akhir. Feedback yang informatif pada hasil akhir akan membuat user merasa puas dan lega dari aksi yang telah dilakukannya.
5.
Memberikan sederhana
penanganan
dan
pencegahan
yang
16 Rancangan
sistem
yang
telah
dibuat
tidak
memperbolehkan user melakukan kesalahan. Seperti contoh, tidak memperbolehkan input data alfabet ke dalam data untuk numerik. Jika terjadi kesalahan, interface harus mendeteksi dan memberikan instruksi yang sederhana, konstruktif dan spesifik untuk pemulihan. 6.
Memperbolehkan pengembalian aksi Aksi
yang
sudah
dilakukan
harus
dapat
dikembalikan. Hal ini dapat mengurangi rasa cemas karena mengetahui situasi error dapat dikembalikan pada sistuasi sebelum terjadi error. 7.
Mendukung pengendalian internal locus User mengendalikan sistem dan sistem merespons terhadap aksi yang dilakukan user. Rancangan dari sistem lebih condong kepada user sebagai inisiator dibanding menjadi responden.
8.
Mengurangi beban ingatan jangka pendek Sistem yang diberikan harus sederhana, hal ini disebabkan oleh ingatan manusia yang terbatas. Cara mengatasinya seperti membuat interface yang lebih sederhana dan memberikan pelatihan yang cukup untuk kode, mnemonik serta urutan aksi.
17 2.1.2
Prinsip Rancangan Interface Aplikasi Mobile Meskipun seringkali disamakan, computing devices, smartphone dan PC adalah hal yang berbeda baik dari segi layar dari perangkat, bandwidth yang ditawarkan, penggunaan baterai dan lain-lain. Oleh karena perbedaan membuat rancangan interface untuk perangkat yang ada tidak dapat disamakan. Berikut 10 (sepuluh) prinsip rancangan interface untuk aplikasi mobile mengacu pada pendapat Jonathan Stark yang terdapat pada NetMagazine.com (2012): 1.
Mobile mindset Dikarenakan ada perbedaan dalam pola pikir dalam merancang aplikasi mobile dan desktop, ada baiknya jika mengetahui pola pikir untuk aplikasi mobile yang akan dirancang nantinya, seperti: a. Be focused: Banyak belum tentu baik, lebih baik fitur-fitur yang tidak berguna dalam aplikasi yang akan dibuat disingkirkan dari rencana. b. Be unique: Akan banyak aplikasi terdahulu atau bahkan yang akan muncul yang sejenis dengan aplikasi yang akan dibuat. Jika aplikasi yang akan dibuat tidak memiliki keunikan, tentunya user tidak akan memilih aplikasi tersebut. c. Be charming: Penting pada sebuah aplikasi untuk mudah digunakan, diakses dan dapat dihandalkan oleh user.
18 2.
Mobile context Penting untuk membedakan alasan orang menggunakan sebuah aplikasi mobile. Hal ini dapat membantu para developer merancang aplikasi dengan konteks yang dibutuhkan oleh user. Ada tiga konteks utama, yaitu: a. Bored: Banyak orang menggunakan aplikasi mobile untuk mengisi kekosongan waktu luangnya. Dalam konteks ini, aplikasi yang dibutuhkan adalah aplikasi yang dapat mengisi waktu luang tersebut. Seperti: games dan social-networking. b. Busy: Terkadang aplikasi mobile tidak hanya digunakan untuk berkomunikasi tetapi dapat digunakan sebagai alat penunjang produktivitas user. Contoh aplikasi yang bisa disuguhkan adalah aplikasi bersifat productivity seperti reminder, kalender dan presentation tools. c. Lost: User sering berada pada kondisi di mana user tertarik untuk menjelajahi situasi atau tempat yang tidak diketahui. Dalam konteks ini, daya tahan baterai dan konektivitas yang terbatas tentu menjadi perhatian utama sehingga diperlukan offline support dan penghematan penggunaan daya pada fitur yang menghabiskan baterai seperti pencarian lokasi dan lain-lain. Contoh aplikasi dalam konteks ini adalah Maps, Foursquare dan Waze.
19 3.
Global guidelines Setiap aplikasi memiliki pendekatan, rancangan dan teknik yang berbeda, berikut merupakan pedoman global yang harus diperhatikan dalam merancang sebuah aplikasi: a. Responsive: Aplikasi yang responsif sangat diperlukan oleh user. Jika user melakukan interaksi terhadap aplikasi, maka aplikasi harus dapat menjawab langsung interaksi dari user. Bila terdapat operasi yang menggunakan waktu yang lama, hal tersebut tidak menjadi masalah selama user mengetahui apa yang sedang terjadi. b. Polish: Polesan pada aplikasi seperti detil rancangan bahkan fitur merupakan hal yang berarti, karena sebuah detil akan diperhatikan dan dihargai oleh user. c. Thumbs: Jempol merupakan jari yang paling interaktif dalam touch-screen application, sehingga rancangan aplikasi harus mengutamakan kenyamanan jempol dalam berinteraksi. d. Targets: Penting untuk menempatkan fungsi-fungsi pada aplikasi, seperti penempatan backspace di samping tombol enter harus diberi jarak, karena memungkinkan user melakukan miss-target dalam menekan tombol yang ada. Tombol juga perlu didesain agar dapat ditekan oleh ujung jari dengan mudah, dan pada umumnya ukuran minimal adalah 44x44 pixel.
20 e. Content: Penggunaan elemen interface seperti tombol, tab, bars dan sebagainya sebaiknya dikurangi sehingga aplikasi lebih terpusat pada konten aplikasi. f. Controls: Ketika aplikasi membutuhkan kontrol, letakkan kontrol pada bagian bawah aplikasi. Contoh: kontrol adalah seperti next dan previous pada aplikasi pemutar musik. g. Scrolling: Sebisa mungkin hindari scrolling, aplikasi yang tidak memiliki scrolling lebih terlihat solid karena aplikasi tersebut jelas dan tidak membingungkan user dalam mencari konten. 4.
Navigation models Ada beberapa model navigasi untuk rancangan interface aplikasi mobile, yaitu: a. None: Aplikasi single-screen seperti aplikasi stopwatch sederhana yang tidak memerlukan halaman lain. b. Tab bar: Aplikasi yang memiliki lebih dari satu bidang area aplikasi, biasanya memiliki rancangan tab bar pada bagian atas aplikasi. Contoh: Twitter yang memiliki tiga hingga enam bar. c. Drill down: Aplikasi yang terbentuk seperti sebuah daftar dan detil dalam hierarki konten dari aplikasi tersebut. Contoh: settings pada smartphone.
5.
User inputs Aplikasi yang memiliki input sebuah teks harus memperhatikan kenyamanan user dalam mengetik pada keyboard dari perangkat
21 yang ada. Untuk memudahkan user yang memiliki kendala dengan jari yang berbeda dengan user lainnya, usahakan aplikasi yang akan dibuat memiliki fitur untuk berotasi sehingga keyboard yang disuguhkan dapat berbentuk landscape bukan portrait. 6.
Gestures Gestures merupakan hal yang penting bagi sebuah rancangan interface aplikasi mobile. Berikut merupakan gesture yang sering digunakan: a. Invisible: Banyak gesture yang bisa dilakukan pada sebuah aplikasi, seperti flick dan swipe. Perlu adanya informasi untuk mengeksekusi
gesture
sehingga
user
tidak
mengalami
kebingungan dalam menjalankan aplikasi. b. Two hands: Biasanya langkah ini sering digunakan untuk melakukan zoom pada aplikasi yang memiliki fitur ini. Seringkali gesture ini digunakan pada aplikasi yang berhubungan dalam bidang pemetaan karena akan digunakan untuk melihat tempat yang jaraknya lebih dekat. 7.
Orientation Aplikasi berorientasi portrait merupakan orientasi yang paling populer untuk sebuah rancangan aplikasi, tetapi jika aplikasi membutuhkan banyak sekali pengetikkan, lebih baik aplikasi tersebut dibuat dalam orientasi dengan kombinasi landscape dan portrait.
22 8.
Communications Dalam membuat aplikasi perlu adanya komunikasi antara aplikasi dan user, berikut merupakan jenis komunikasi yang dapat dilakukan: a. Provide feedback: Sediakan feedback instan untuk setiap interaksi yang dilakukan oleh user. Jika tidak ada feedback dari aplikasi, user dapat mengira bahwa aplikasi tersebut tidak berjalan dengan baik. Feedback yang disediakan dapat berupa teks, visual maupun suara. Jika aksi yang dilakukan oleh user membutuhkan waktu untuk loading, berikan sebuah petunjuk bahwa aplikasi tersebut sedang memuat aksi yang dilakukannya. b. Modal alerts: Modal alerts sangat mengganggu user dalam berinteraksi dengan aplikasi, sehingga lebih baik modal alerts dibuat untuk sebuah situasi yang penting seperti adanya crash pada aplikasi bahkan error yang mungkin membuat aplikasi mengeksekusi force close. c. Confirmation: Perlu adanya konfirmasi dalam aksi yang dilakukan oleh user. Seperti jika user ingin melakukan penghapusan pada sebuah file, maka muncul sebuah bar yang menanyakan kesediaan user untuk menghapus file tersebut.
9. Launching Ketika user membuka kembali aplikasi setelah digunakan sebelumnya, sebaiknya aplikasi terbuka pada tampilan operasi
23 terakhir. Hal ini akan memberi ilusi bahwa aplikasi tersebut cepat dan responsif. Bila dimungkinkan, tampilan saat membuka aplikasi dapat berupa gambar yang bukan merupakan tampilan utama dari aplikasi. Hal ini dapat menghindari frustasi yang dihadapi user ketika interface yang terlihat seolah-olah dapat berinteraksi tidak memberi reaksi saat digunakan dikarenakan aplikasi tersebut sedang dalam tahap loading sehingga tidak semua fitur dapat digunakan. 10. First Impression Hal terakhir yang penting dalam perancangan aplikasi untuk mobile adalah kesan utama, dan yang paling utama secara kasat mata merupakan icon dari aplikasi. Rancangan icon akan membuat aplikasi jelas tujuannya. Rancangan tidak perlu rumit melainkan tepat dan persis untuk menunjukkan aplikasi apakah yang telah dibuat.
2.1.3
Unified Modeling Language (UML) Berdasarkan Whitten dan Bentley (2007) Unified Modeling Language (UML) adalah sekumpulan peraturan yang digunakan untuk menspesifikasi
atau
menjelaskan
perangkat
lunak
secara objek.
Standarisasi UML telah diatur dan telah dibuat oleh Object Management Group (OMG). Hingga saat ini UML telah berkembang menjadi UML versi 2.0. Menurut Whitten dan Bentley (2007) UML 2.0 dapat digolongkan menjadi tiga jenis diagram, yaitu:
24 Tabel 2.1 Tabel Jenis Diagram (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007) Requirement Analysis Phase
Logical Design Phase
Use Case Diagram
Activity Diagram System Sequence Diagram Class Diagram
Physical Design Phase Class Diagram (with more detail) State Machine Diagram Communication Diagram Component Diagram Deployment Diagram Sequence Diagram
2.1.3.1
Use Case Diagram Use case menjelaskan tentang fungsi suatu sistem dengan menggunakan cara dan istilah yang lebih mudah dimengerti. Use case merepresentasikan tujuan dan mendeskripsikan urutan aktivitas dan interaksi antar 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. (Whitten dan Bentley, 2007). Hubungan yang digunakan dalam use case diagram (Whitten dan Bentley, 2007) yaitu:
25 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.1 Contoh penggunaan Association Use case (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007)
2. Extend digunakan untuk menjelaskan sebuah use case yang rumit menjadi beberapa tahap use case yang lebih mudah dimengerti.
26
Gambar 2.2 Contoh Penggunaan extends pada Use Case (Sumber: System Analysis and Design Method Whitten and Bentley, 2007)
3. Uses (Includes) 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.3 Contoh Penggunaan include pada Use case (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007)
27 4. Depends On digunakan ketika suatu aktivitas dapat dijalankan jika aktivitas sebelumnya telah dijalankan. Dengan kata lain, aktivitas tersebut saling bergantung.
Gambar 2.4 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.
28
Gambar 2.5 Contoh Penggunaan Inheritance pada Use Case (Sumber: System Analysis and Design Method - Whitten and Bentley, 2007)
Gambar 2.6 Contoh Use Case Diagram (Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)
29 2.1.3.2
Activity Diagram Activity
diagram
adalah
diagram
UML
yang
mengambarkan aliran kontrol dan urutan aktivitas dalam sebuah sistem, dan juga dapat menjelaskan alur skenario use case. (Whitten dan Bentley, 2007). Berikut adalah beberapa elemen yang terdapat pada activity diagram:
Tabel 2.2 Tabel Elemen Activity Diagram Nama Initial Mode
Simbol
Deskripsi Lingkaran hitam yang merepresentasikan awal proses. Simbol yang merepresentasi
Activity
langkah individual dari setiap aktivitas. Simbol berbentuk panah yang
Flow
menunjukan jalur dari satu aktivitas ke aktivitas lainya. Simbol yang mengindikasikan adanya keadaan kondisional. Decision mengindikasikan
Decision dan Merge
adanya pemilihan salah satu aktivitas. Merge mengindikasikan adanya penggabungan aktivitas yang telah dipisahkan oleh decision sebelumnya.
30 Nama
Simbol
Deskripsi Simbol yang menunjukan bahwa akan terjadinya proses 2 arah. Fork menggambarkan
Fork dan
bahwa adanya 2 aktivitas
Join
yang akan berjalan. Join menggambarkan berakhirnya proses yang telah berjalan bersamaan sebelumnya.
Activity Final
Simbol penunjuk berakhirnya proses.
Gambar 2.7 Contoh Activity Diagram (Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)
31 2.1.3.3
Class Diagram Menurut Whitten dan Bentley (2007), class diagram mengambarkan class yang menyusun sistem dan hubungan antar class yang ada dalam sistem tersebut. Dalam class diagram, class di dalamnya digambarkan menggunakan kotak dan hubunganya digambarkan menggunakan garis yang menghubungkan antar class. Class digambarkan menggunakan kotak dan terdiri atas, nama, attribute dan operation. Berikut merupakan jenis hubungan yang terdapat pada class diagram menurut Whitten dan Bentley (2007): 1. Multiplicity Multiplicity adalah suatu istilah yang digunakan untuk menunjukan banyaknya hubungan antar class. Tabel 2.3 Tabel Penjelasan Multiplicity Multiplicty
Deskripsi
1
Hanya satu.
0..1
0 atau 1.
*
0 atau lebih.
1..*
1 atau lebih.
m..n
Terdiri dari antara m sampai dengan n.
2. Visibility Visibility adalah
istilah
yang
digunakan
untuk
menunjukan apakah elemen dalam suatu class dap\at terlihat.
32 Tabel 2.4 Tabel Penjelasan Visibility Visibility
Nama
+
Public
Deskripsi Elemen dalam suatu class terlihat dari luar. Elemen dalam yang dapat
#
Protected
terlihat dari class yang telah terdefinisi dan class turunannya saja.
-
Private
Hanya dapat terlihat di class yang mendefinisikan.
3. 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.
33
Gambar 2.8 Contoh Association Bi-Directional dan Uni-Directional Class Diagram (Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)
4. Generalization Generalization
adalah
hubungan
inheritance
(pewarisan), sehingga class induk (Super Class) adalah bentuk umum dari class turunan (Sub Class). Sehingga semua class turunan memiliki semua elemen dari class induk.
Gambar 2.9 Contoh Generalization Class Diagram (Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)
34 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.
Gambar 2.10 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.11 Contoh Composition Class Diagram (Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)
35
Gambar 2.12 Contoh Class Diagram (Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)
2.1.3.4
Sequence Diagram Sequence
diagram
adalah
UML
diagram
yang
mengambarkan interaksi antar objek yang telah diatur berdasarkan urutan waktu. (Whitten dan Bentley, 2007).
36 Tabel 2.5 Tabel Elemen Sequence Diagram Nama
Simbol
Deskripsi Actor adalah mewakili user
Actor
yang berinteraksi dengan sistem. Suatu notasi yang berfungsi
Interface Class
untuk memastikan class <
>
interface code, agar tidak terjadi kebingungan atas jenis class. Setiap use case memiliki
Controller Class
<>
satu atau lebih controller, digambarkan sama seperti notasi interface class. Simbol yang
Object
merepresentasikan class pada class diagram. Menambahkan kotak ke
Entity Classes
:
dalam setiap entitas yang diperlukan untuk kolaborasi dalam urutan. Berfungsi untuk
Message
menyampaikan pesan dari setiap method.
Activity Bars
Berfungsi untuk menunjukan berapa lamanya waktu objek digunakan.
37 Nama Return Message
Simbol
Deskripsi Hasil dari masukan yang dimasukan oleh objek. Objek yang memanggil
Self-call
method-nya sendiri. Menandakan area pada diagram yang melakukan
Frame
seleksi, pengulangan, dan suatu pilihan khusus.
Gambar 2.13 Contoh Sequence Diagram (Sumber: System Analysis and Design Method - Whitten dan Bentley, 2007)
38 2.1.4
Agile Software Development Agile Software Development adalah strategi pengembangan software yang sangat mementingkan kepuasan user, ditandai dengan penghantaran software sedini mungkin dan secara bertahap; terdiri dari tim yang kecil dan termotivasi; mementingkan penghantaran aplikasi daripada analisa dan desain serta komunikasi aktif antara developer dan kostumer. (Pressman, 2010). 2.1.4.1
Scrum Scrum berasal dari sebuah artikel hasil karya Hirotaka Takeuchi dan Ikujiro Nonaka di Harvard Businnes Review tahun 1996, dengan judul “The New New Product Development Game”. Kata scrum sendiri berasal dari istilah olahraga rugby yang merupakan sebuah langkah untuk mengulang game yang dikarenakan setelah adanya kecelakaan ataupun out-ball. Sebuah ide untuk melanjutkan game maupun software development agar tetap berjalan. Scrum sendiri merupakan salah satu bagian dari Agile Software Development. Prinsip kerja scrum sangatlah konsisten. (Pham dan Pham, 2011). Berikut merupakan gambaran kerja scrum utuh menurut pendapat Pham dan Pham (2011):
39
Gambar 2.14 Bagan Scrum Secara Lengkap (Sumber: Scrum in Action - Pham dan Pham, 2011)
Gambar di atas merepresentasikan tahap-tahap scrum menurut Pham dan Pham (2011), yaitu: 1. Product Backlog Menurut Pham dan Pham (2011) tahap ini dilakukan kegiatan berupa penyusunan daftar prioritas dari fitur atau keperluan (requirement) yang dilakukan bersama product owner dan tim scrum. Product owner juga memberi estimasi waktu yang dibutuhkan untuk mengembangkan setiap fitur. Kemudian, daftar prioritas fitur tersebut diurutkan dari fitur yang paling penting. Apabila terdapat update fitur baru, maka akan dibuat backlog baru dan pengurutannya sesuai dengan prioritas fitur.
40 2. Sprint Menurut Pham dan Pham (2011) tahap ini terbagi dalam beberapa langkah, sebagai berikut: a. Sprint Release Planning Pada tahap ini tim dan product owner mengidentifikasi semua fitur yang akan dibuat beserta penjadwalan keseluruhan dari pembuatan program. b. Actual Sprinting Work Pada Actual Sprinting Work dibagi dalam 3 (tiga) langkah, antara lain: i.
Daily Scrum Tim akan melakukan perumusan tujuan sprint setiap hari pada awal sprinting day. Untuk melakukan penjejakan terhadap tujuan tim, akan dibuat
grafik
yang
merepresentasikan
sisa
pekerjaan dengan waktu pengerjaan (burndown chart). ii.
Sprint Review Sprint review dilakukan pada akhir sprinting day. Dalam tahap ini dilakukan: 1. Tim akan berdiskusi dengan product owner apa yang sudah dibuat dan apa yang belum.
41 2. Tim mendemonstrasikan apa yang telah dibuat kepada product owner. Kemudian, product owner akan memberikan feedback. 3. Tim akan mendapatkan update dari product owner mengenai perubahan terhadap produk. iii.
Sprint Retrospective Tahap ini juga dilakukan pada akhir sprinting day setelah sprint review. Tim akan melakukan pertemuan untuk membahas adanya permasalah pada saat kolaborasi pekerjaan. Tujuan dari sprint retrospective adalah untuk memperbaiki kinerja kerja dari tim scrum.
2.1.5
Teknologi Mobile Teknologi mobile dibagi menjadi 3 (tiga), yaitu mobile phone, smartphone, dan aplikasi mobile. Berikut merupakan penjelasan dari teknologi mobile: 2.1.5.1
Mobile Phone Awalnya mobile phone memiliki bentuk yang sangat besar dan terpasang pada kendaraan dan teknologi yang mendukung hanya pengiriman pesan menggunakan suara. Menurut Agar (2004), saat ini mobile phone sangat umum. Hal ini disebabkan oleh kelahiran revolusi komunikasi global.
42 Hingga
saat
ini
teknologi
mobile
phone
sudah
berkembang pesat. Tidak hanya bertelepon, mobile phone dapat mengirimkan pesan, gambar, dan menggunakan fasilitas internet. Dan dikarenakan semakin berkembangnya teknologi mobile phone dan banyaknya fitur-fitur yang ditambahkan pada mobile phone maka muncul istilah smartphone.
Gambar 2.15 Mobile Phone Pertama Kali (Sumber: Constant Touch: A Global History of the Mobile Phone - Agar, 2004)
2.1.5.2
Smartphone Istilah smartphone dicetuskan untuk mendeskripsikan sebuah mobile phone yang dibangun dengan sistem informasi khusus untuk mobile dengan kapabilitas komputasi yang melebihi mobile phone pada umumnya.
43 Menurut Schmidt et. al. (2008) istilah smartphone sendiri digunakan untuk mendeskripsikan mobile devices yang menggabungkan fungsi-fungsi dari mobile phone, Personal Digital Assistant (PDA), audio player, digital camera, bahkan Personal Computer (PC). Setiap smartphone biasanya memiliki sistem operasi sendiri. Contoh sistem operasi dari smartphone antara lain: iOS, Android, Symbian dan Windows Mobile.
2.1.5.3
Aplikasi Mobile Aplikasi mobile adalah jenis dari software yang dirancang agar bisa berfungsi pada mobile device seperti smartphone. Fitur yang ditawarkan juga beragam seperti, fitur dasar
dalam
berkomunikasi,
mengirim
pesan,
hingga
mengirimkan video. (Fling, 2009). Sebagian besar mobile sudah memiliki aplikasi dasarnya terlebih dahulu, seperti SMS/MMS, video player, dan browser yang sudah terpasang pada perangkat. Sebagian aplikasi yang tidak tersedia dapat diunduh melalui portal aplikasi online yang sudah disediakan masing-masing vendor. Menurut Quartus Technology pada tahun 2008, aplikasi mobile terbagi menjadi 11 (sebelas) jenis, yaitu: 1. GPS Enabled Applications: Waze
44 2. Social
Networking
Applications:
Facebook,
Twitter,
Instagram 3. Messaging Applications: Whatsapp, Yahoo Messenger, QQ 4. Camera Enabled Applications: Instagram 5. Native Applications: Yahoo Messenger 6. Server Side Application: G-Mote, Bluetooth PC Remote 7. Gaming Applications: Final for Fantasy iOS, Asphalt Series 8. Mobile Websites: Cinema 21, IMDB, Detik.com 9. Enterprise Applications: Keynotes, Bento 10. M-Commerce Applications: M-BCA 11. Augmented Reality: Google Sky Map, Layar
2.1.6
Android Android merupakan sistem operasi berbasis Linux yang dirancang khusus untuk smartphone dengan teknologi touchscreen. Menurut Rubin pada artikel Markoff tahun 2007, Android merupakan platform yang terbuka bebas untuk para software developer. Seorang developer hanya memerlukan sebuah komputer yang sudah terpasang Android Software Development Kit (SDK) dan phone emulator. Aplikasi yang sudah dikembangkan dapat diunggah oleh developer ke dalam situs third-party atau toko online seperti Google Play. Menurut Rubin pada artikel Markoff tahun 2007, Google Play merupakan portal aplikasi distribusi digital dengan menggunakan jasa
45 Google termasuk juga toko online, yang di dalamnya terdapat musik, video, buku, majalah, aplikasi Android dan games.
2.1.7
Android Architecture Gambar berikut merupakan komponen utama dari sistem operasi Android yang terbagi dalam beberapa layer.
Gambar 2.16 Android Architecture (Sumber: http://developer.android.com/about/versions/index.html, 2012)
Berikut merupakan penjelasan kegunaan dari setiap layer pada arsitektur android menurut Brahler (2010): 1. Applications Applications layer merupakan bagian teratas dan terpenting dimana terdapat aplikasi inti seperti e-mail, SMS program, kalender, peta, browser dan sebagainya. Semua aplikasi dibuat menggunakan
46 bahasa pemrograman Java. Harus disebutkan bahwa aplikasi-aplikasi tersebut
dapat
dijalankan
secara
bersamaan,
seperti
dapat
mengirimkan pesan singkat ketika sedang mendengarkan lagu. 2. Applications Framework Application Framework merupakan sebuah software framework yang digunakan untuk mengimplementasikan struktur standar sebuah aplikasi untuk sistem operasi yang spesifik. Dengan bantuan dari managers, content providers dan servis lain para programmer, fungsifungsi yang digunakan oleh aplikasi yang telah ada dapat dikumpulkan. Berikut merupakan kumpulan sistem yang mendasari aplikasi Android: a. Activity Manager yang fungsinya untuk mengontrol siklus kerja aplikasi dan menjaga keadaan backstack untuk navigasi. b. Content Providers yang fungsinya untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya. c. Resource Manager yang fungsinya untuk mengatur sumber daya pada program dan menyediakan akses sumber daya diluar kode program. d. Location Manager yang fungsinya untuk memberikan detil informasi mengenai lokasi perangkat. e. Notification
Manager
yang
fungsinya
untuk
memberikan
peringatan seperti pesan masuk, reminder dan sebagainya yang nantinya akan ditampilkan pada status bar.
47 3. Android Runtime Android
Runtime
merupakan
engine
yang
fungsinya
menjalankan berbagai aplikasi. Di dalam Android Runtime terdapat core libraries dan Dalvik Virtual Machines (VM). Core libraries menyediakan fungsionalitas yang terdapat pada core libraries dari bahasa pemrograman Java. Sedangkan Dalvik VM berfungsi sebagai pengoptimalan kinerja minimal memory footprint. 4. Libraries Libraries seluruhnya ditulis dengan menggunakan C ataupun C++. Libraries dapat diakses melalui Java interface. Adapun library yang ada pada Android sebagai berikut: a. Surface manager 2D dan 3D. b. Media codecs untuk MPEG-4 dan MP3. c. SQLite untuk dukungan pada database. d. Webkit sebagai engine web browser. 5. Linux Kernel Pada dasarnya Android memerlukan Linux versi 2.6 untuk inti sistem servis seperti untuk kepentingan sekuriti, manajemen memori, manajemen proses, network stack dan driver model. Kernel juga bekerja sebagai abstraction layer antara hardware dan software stack.
48 2.1.8
Komponen Aplikasi Android Menurut Meier (2012) Android memiliki fitur yang penting dimana satu aplikasi dapat menggunakan elemen dari aplikasi lainnya jika aplikasi tersebut memungkinkan. Agar fitur tersebut tetap bekerja, sistem harus menjalankan aplikasi ketika bagian dari aplikasi tersebut dibutuhkan dan pemanggilan objek Java untuk bagian tersebut. Terdapat empat jenis komponen aplikasi dimana setiap jenis memiliki tujuan berbeda sehingga fitur tersebut tetap bekerja. 1. Activities Activities merupakan bagian terpenting dalam sebuah aplikasi, fungsinya adalah menyajikan tampilan visual program yang sedang digunakan oleh user. 2. Services Komponen service digunakan untuk memperbaharui sumber data dan menampilkan notifikasi, juga dapat digunakan untuk melakukan pengolahan data yang perlu diproses. 3. Broadcast Receivers Tugas dari broadcast receivers hanya menerima dan bereaksi dalam menyampaikan pemberitahuan. Sebagian besar fitur broadcast receivers seperti pemberitahuan ketika baterai sudah hampir habis.
49 4. Content Providers Kegunaan dari content providers yaitu untuk mengelola dan berbagi database, sehingga komponen ini akan sangat berguna jika sebuah aplikasi membutuhkan data dari aplikasi lainnya.
2.1.9
Wireless Fidelity (Wi-Fi) Wireless Local Area Network (WLAN) adalah nama popular dari teknologi jejaring nirkabel, yang menggunakan gelombang radio untuk menghantarkan internet dan koneksi jejaring. Sering kali WLAN disebut dengan istilah Wi-Fi, yang sebenarnya istilah Wi-Fi sendiri merupakan merek dagang Wi-Fi Alliance dan nama merek untuk produk-produk yang merupakan standar IEE 802.11. Sebuah perangkat harus memiliki Wireless Network Interface Controller (WNIC) sehingga perangkat tersebut dapat menerima dan mengirimkan sinyal wireless. Untuk smartphone, WNIC biasanya sudah terpasang di dalamnya, sehingga smartphone dapat dengan mudah terkoneksikan dengan teknologi jaringan nirkabel ini. (Al-Alawi, 2006).
2.1.10
Socket Programming Socket Programming adalah pemrograman dengan tujuan aplikasi yang dibuat dengan menggunakan socket programming bisa berhubungan dengan aplikasi yang lainnya dengan protocol UDP dan TCP. (Tanenbaum dan Wetherall, 2010).
50 2.1.11
Database dan Database Management System (DBMS) Berikut
merupakan
definisi
dari
Database
dan
Database
Management System: 2.1.11.1
Database Berdasarkan Connolly dan Begg (2010), database adalah kumpulan dari data logis yang berhubungan dan deskripsi dari data tersebut dirancang untuk memenuhi informasi yang dibutuhkan sebuah organisasi. Sebuah database tidak dimiliki hanya oleh 1 (satu) departemen tetapi merupakan sebuah sumber informasi yang terbagi. Tidak hanya data operasional yang ada dalam database tetapi juga deskripsi dari data tersebut. Oleh karena itu, database juga disebut koleksi penggambaran pribadi dari catatan yang terintegrasi (selfdescribing collection of integrated records). Menurut Connolly dan Begg (2010) ketika ingin menganalisa sebuah informasi yang dibutuhkan sebuah organisasi, perlu untuk mengidentifikasi entity, attribute dan relationships dari data tersebut. Entity merupakan objek yang jelas dalam sebuah organisasi yang dapat dinyatakan dalam sebuah database seperti orang, tempat, benda dan konsep. Attribute adalah property yang mendeskripsikan aspek dari objek yang akan dicatat. Relationship adalah hubungan asosiasi antar entity.
51 2.1.11.2
Database Management System (DBMS) Berdasarkan Connolly dan Begg (2010), Database Management System (DBMS) adalah sebuah sistem software yang memperbolehkan user untuk menjelaskan, membuat, menjaga dan mengontrol akses terhadap database. DBMS merupakan software yang berinteraksi dengan aplikasi user dan database.
2.2
Teori Khusus Berikut merupakan teori-teori dasar umum yang digunakan dalam penulisan skripsi ini: 2.2.1
Collaboration Menurut Thomson et. al (2007), collaboration adalah proses interaksi antar aktor otonom atau non-otonom baik formal maupun informal dan bersama-sama menciptakan aturan serta struktur yang mengatur hubungan bersama sehingga memperoleh hasil interaksi yang menguntungkan.
2.2.2
JAVA Gosling et. al. (2010) 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.
52 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. (2010): 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.
53 3. “Write once, run anywhere” 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.2.3
Eclipse Menurut Steinberg et. al. (2008), 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), proyek Eclipse mendukung pengembangan
dari
sebuah
platform
atau
framework
untuk
pengimplementasian dari Integrated Development Environment (IDE) dan aplikasi lainnya. Meskipun framework dari Eclipse diimplementasikan
54 pada Java tidak menutup kemungkinan pengembangan juga dilakukan pada bahasa pemograman lainnya seperti C++, XML dan sebagainya.
2.2.4
Android Software Development Kit (SDK) Berdasarkan Burnette (2010), 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. 2. Platform tools yang berfungsi untuk mendukung fitur yang baru muncul pada platform Android tertentu.
2.2.5
Hypertext Preprocessor (PHP) PHP adalah bahasa pemrograman scripting berbasis server side yang semula dibuat untuk pengembangan pembuatan web yang dinamik. Dengan halaman HTML, PHP dapat tertanam dan tereksekusi setiap kali halaman dikunjungi. PHP merupakan sebuah proyek open source dimana
55 user dan developer dapat dengan mudah mengakses source code dan menggunakan, mengubah dan mendistribusikannya tanpa pungutan biaya. (Welling, 2010). Sampai pada saat penulisan skripsi ini, bahasa pemrograman PHP telah diluncurkan secara resmi telah sampai pada versi 5 (lima). Menurut Welling (2010) Pada PHP versi 5 (lima) ini memiliki keunggulan sebagai berikut: 1.
Object Oriented Paradigma pemrograman yang berorientasi pada objek, yang menyatukanya dalam sebuah class yang terdiri dari data fields dan method, untuk membangun sebuah aplikasi.
2.
Error and Exception Handling Dasar dari fitur ini adalah melemparkan exception pada blok try jika terjadi suatu error. Pada bahasa pemrograman java, exception dilempar secara otomatis, sedangkan pada PHP tidak.
3.
Simple Extensible Markup Languange (XML) XML adalah format text tag-based untuk dokumen. XML berasal dari Hypertext Markup Language (HTML). Fitur utama yang ditawarkan XML adalah media pertukaran data atau informasi tanpa akses melalui database, sehingga rancangan tujuan dari XML adalah mengedepankan kesederhanaan dan generalisasi melalui internet.
56 2.2.6
MySQL MySQL adalah sebuah sistem manajemen database yang dapat terelasi. Sebuah database memperbolehkan user untuk mengefisiensikan penyimpanan, pencarian, pengurutan dan memperoleh data. Server dari MySQL mengontrol akses ke dalam data yang ada dan memastikan banyak user bisa mengakses data tersebut. (Welling, 2010).
2.2.7
Virtual Networking Computing (VNC) Menurut Jadhav et. al (2012), Virtual Networking Computing (VNC) merupakan sistem terpopuler yang dirancang untuk menjalankan remote control melalui perangkat. Terdapat banyak sekali solusi untuk mengimplementasikan penggunaan VNC termasuk untuk Android. Menurut Jadhav et. al. (2012), VNC adalah desktop grafis yang dapat menyediakan remote control melalui sebuah jaringan. VNC mendukung pengendalian desktop grafis dengan cara mendapatkan screen update dari perangkat yang dikontrol oleh user dan juga menangkap mouse dan keyboard. VNC berbasis Remote Frame Buffer yang gunanya untuk mengirimkan seluruh informasi di antara perangkat yang terhubung.
57 2.2.8
Google Cloud Messaging (GCM) Google Cloud Messaging (GCM) merupakan layanan yang membantu developer untuk mengirimkan data melalui server kepada perangkat Android yang dimiliki. Sebelumnya, GCM disebut Android C2DM. (Tarantola, 2012). Menurut Zhao et. al. (2012), C2DM memberikan solusi yang fleksibel kepada para developer untuk mengirimkan pesan ringan terhadap aplikasi mobile tanpa harus menghubungkan dengan server secara berkala. Pengelolaan storage dan penyampaian pesan dilakukan oleh Google sendiri. Hal ini menyederhanakan rancangan aplikasi mobile dan mengurangi network traffic serta penggunaan baterai pada perangkat.
Gambar 2.17 C2DM Workflow dan Architecture (Sumber: Cloud-based Push-Styled Mobile Botnets: A Case Study of Exploiting the Cloud to Device Messaging Service – Shuang Zhao et. al., 2012)
58 2.2.9
Java Multicast DNS (JmDNS) Menurut Hoff (2011), JmDNS merupakan implementasi Java untuk multi-cast DNS yang biasanya digunakan untuk pendaftaran layanan dan penemuan pada jaringan lokal. Multi-cast DNS memberikan langkah mudah untuk perangkat dan servis untuk meregistrasi secara pribadi dan untuk
menemukan servis berbasis jaringan tanpa bergantung dengan
layanan pusat tanpa konfigurasi yang rumit. Solusi tersebut disebut sebagai zeroconf (zero configuration).
2.2.10
JavaScript Object Notation (JSON) Menurut Nurseitov et. al. (2009), JSON adalah sebuah format pertukaran data dengan tujuan yang unik. JSON dirancang untuk menjadi bahasa pertukaran data yang dapat dipahami oleh manusia serta mudah diurai dan digunakan oleh komputer. Secara langsung JSON sudah didukung dalam JavaScript dan sangat cocok untuk aplikasi yang menggunakan bahasa pemrograman JavaScript. Menurut Nurseitov et. al. (2009), JSON diperkirakan dapat mengurai hingga seratus kali lebih cepat dibandingkan XML pada modern browser. Tetapi meskipun mengklaim kelebihan dalam kinerja, JSON memiliki kekurangan seperti kurangnya dukungan namespace, kurangnya validasi input dan extensibility drawbacks.
59 2.2.11
Web Service Web service memungkinkan sistem yang berbeda-beda untuk saling berkomunikasi menggunakan pesan melalui teknologi web. Konsep tersebut dinamakan interoperability. Interoperability dapat terjadi apabila komunikasi dilakukan dengan format data yang umum yang dikenali oleh sistem yang berbeda tersebut. Teknologi yang umum digunakan untuk mengimplementasikan web service adalah REST (Representational State Transfer) (Abeysinghe, 2008). Konsep dasar dari REST adalah sebagai berikut: 1.
Terdapat resource (misalnya sebuah dokumen atau database).
2.
Setiap resource memiliki ID yang unik.
3.
Resource dapat terhubungi dengan resource yang lain.
4.
Penggunaan sebuah standar (HTTP, HTML, XML).
5.
Resource dapat memiliki beberapa bentuk (misalnya sebuah status untuk document: terupdate, terhapus atau tervalidasi).
6.
Komunikasi terjadi secara stateless menggunakan HTTP. Konsep dasar dari REST adalah terdapat sumber daya yang
ditampung oleh server, dan client akan meminta sumber daya tersebut untuk ditampilkan atau dimanipulasi (Abeysinghe, 2008).
60 2.2.12
PC Remote Control Menurut Navasare et. al. (2012), sebelumnya mobile phone hanya dikembangkan untuk komunikasi melalui suara tetapi saat ini skenario telah berubah. Komunikasi melalui suara hanyalah sebuah aspek pada mobile phone. Tetapi semenjak dirilis open source berbasis Android, user dapat mengakses hardware secara langsung. Sehingga muncul aplikasi yang dapat dijadikan remote desktop. Menurut Navasare et. al. (2012), peningkatan kualitas pada teknologi 3G dan komunikasi wireless memberikan kemudahan dalam menggunakan mobile ataupun akses internet. Dengan kemudahan dalam akses jaringan, sistem remote tidak dibatasi pada network protocols dan fitur-fiturnya. Komunikasi antara mobile phone dan komputer dapat dicapai dengan internet.
Gambar 2.18 Basic Architecture Diagram of PC Remote Control (Sumber: PocketDroid - A PC Remote Control, Navasare et. al., 2012)
Gambar di atas menjelaskan arsitektur dasar pada
sistem
yang
diusulkan. Arsitektur terdiri dari dua terminal yaitu smartphone berbasis Android dan PC.