BAB 2 TINJAUAN PUSTAKA
2.1 Teori yang berkaitan dengan Software Engineering 2.1.1 Unified Modelling Language (UML) Menurut Object Management Group (2011), Unified Modelling Language (UML) adalah suatu bahasa pemodelan visual yang digunakan untuk menganalisa, merancang, dan mengimplementasikan sistem yang berbasis perangkat lunak dan pemodelan bisnis. Berdasarkan pendapat tersebut, Unified Modeling Language (UML) terdiri dari kumpulankumpulan diagram. Diagram yang selalu digunakan untuk menentukan dan menggambarkan rancangan software yaitu use case diagram, class diagram, sequence diagram, dan activity diagram. Diagram tersebut dapat menggambarkan sistem yang dibuat sehingga mudah dipahami dengan baik, maka tujuan dari UML telah tercapai.
2.1.1.1 Use Case Diagram Menurut Satzinger, Jackson, & Burd (2010), use case diagram adalah diagram yang menampilkan berbagai peran pengguna dan bagaimana peran ini berfungsi dalam sebuah sistem. Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem, yang ditekankan adalah proses pada sebuah sistem. Sebuah use case mempresentasikan sebuah interaksi antara aktor dengan sistem. Use case menggambarkan kata kerja.
7
8
Gambar.2.1 Contoh Use Case Diagram
Use Case Diagram memiliki beberapa komponen yaitu: 1. Aktor
Gambar 2.2 Aktor
Aktor menggambarkan pengguna software aplikasi (user). Aktor membantu memberikan suatu gambaran jelas tentang apa yang harus dikerjakan software aplikasi. 2. Use case
Gambar 2.3 Use Case
9
Use case menggambarkan perilaku software aplikasi, termasuk didalamnya interaksi antara aktor dengan software aplikasi tersebut. 3. Association
Gambar 2.4 Association
Association (Asosiasi), yaitu hubungan statis antar elemen. Umumnya menggambarkan elemen yang memiliki atribut berupa elemen lain, atau elemen yang harus mengetahui eksistensi elemen lain. 4. Inheritance
Gambar 2.5 Inheritance
Inheritance (pewarisan), yaitu hubungan hirarkis antar elemen. Elemen dapat diturunkan dari elemen lain dan mewarisi
10
semua atribut dan metode elemen asalnya dan menambahkan fungsionalitas baru, sehingga mereka disebut anak dari elemen yang diwarisinya. Inheritance biasanya digunakan untuk menggambarkan hubungan antara dua atau lebih aktor dalam suatu sistem. 5. Dependency Dependency (ketergantungan) adalah suatu jenis hubungan yang menandakan bahwa satu elemen, atau kelompok elemen, bertindak sebagai klien tergantung pada unsur lain atau kelompok elemen yang berlaku sebagai penyalur. Ini merupakan suatu hubungan lemah yang menandakan bahwa jika penyalur klien diubah maka klien secara otomatis akan terpengaruh oleh perubahan tersebut. Ini merupakan suatu hubungan searah.
Ada 2 macam dependency yang perlu diperhatikan yaitu include dan extend. a. Dependency include Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang umum.
Gambar 2.6 Dependency include
11
b. Dependency extend: Sebuah use case juga dapat meng-extend use case lain dengan
behaviour-nya
sendiri.
Sementara
hubungan
generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.
Gambar 2.7 Dependency extend
2.1.1.2 Class Diagram Menurut Satzinger, Jackson, & Burd (2010), class diagram adalah diagram yang menunjukkan kelas-kelas obyek yang ada pada sistem. Diagram ini umum dijumpai pada pemodelan sistem berorientasi obyek. Meskipun bersifat statis, sering pula diagram kelas memuat kelas-kelas aktif.
Gambar 2.8 Contoh Class Diagram
12
Dalam setiap kelas terdapat tiga area pokok, yaitu : 1. Nama kelas. 2. Atribut kelas. 3. Metode/Operasi kelas.
Gambar 2.9 Contoh Class (kelas)
Atribut dan metoda dapat memiliki salah satu sifat berikut : 1. Public (+) Menyatakan bahwa sebuah kelas dapat dilihat dari kelas-kelas lainnya dalam sistem. 2. Private (-) Menyatakan bahwa sebuah kelas tidak dapat di panggil dari luar kelas yang bersangkutan. Hanya dapat di pakai dalam kelas yang bersangkutan. 3. Protected (#) Menyatakan bahwa sebuah kelas hanya dapat di panggil oleh kelas yang bersangkutan dan anak kelas yang diwarisinya.
Dalam class diagram terdapat beberapa relasi (hubungan antar class), yaitu: 1. Generalisasi Generalisasi befungsi untuk menunjukkan hubungan antara elemen yang lebih umum ke elemen yang lebih spesifik. Seperti menggambarkan hubungan superclass dengan subclass dimana superclass merupakan bentuk umum dari subclass, dan subclass adalah bentuk spesifik dari superclass.
13
Gambar 2.10 Contoh Generalisasi
2. Association Association
(asosiasi)
menggambarkan
class
yang
memiliki atribut berupa class lain, atau class yang harus mengetahui ekstensi kelas lain. Dalam notasi UML mengenal 2 jenis asosiasi, yaitu: a. 2 arah (bidirectional)
Gambar 2.11 Contoh Bidirectional
b. 1 arah (undirectional)
Gambar 2.12 Contoh Undirectional
14
3. Aggregation Aggregation (agregasi) digunakan untuk menggambarkan hubungan antar class di mana kelas yang satu (part class) adalah bagian dari class lainnya (whole class).
Gambar 2.12 Contoh Aggregation
Selain itu aggregasi memiliki bentuk lain yang disebut composition (komposisi). Dimana dalam composite aggregation, siklus hidup part class sangat bergantung pada whole class sehingga bila obyek instance dari whole class dihapus maka obyek instance dari part class juga akan terhapus.
Gambar 2.13 Contoh Composition
4. Multiplicity Pada relasi terdapat suatu penanda yang disebut multiplicity. Multiplicity ini akan mengindikasikan berapa banyak obyek dari suatu kelas terelasi ke obyek lain.
15
Tabel 2.1 Tabel Penjelasan Multiplicity
2.1.1.3 Sequence Diagram
Gambar 2.14 Contoh Sequence Diagram
Menurut Satzinger, Jackson, & Burd (2010), sequence diagram adalah diagram yang digunakan untuk menentukan kelas mana yang melakukan kolaborasi dan pesan apa yang masing-masing dari mereka harus kirimkan. Sequence diagram berasosiasi dengan use case selama proses pengembangan. Dalam Unified Model Language (UML), obyek dalam sequence diagram digambar dengan segiempat yang berisi nama
16
obyek yang diberi garis bawah. Obyek dapat diberi nama dengan tiga cara: (nama obyek), (nama obyek dan class) atau (hanya nama class/anonymous object). Komponen yang digunakan dalam dalam sequence diagram, yaitu: 1. Actor
Gambar 2.15 Actor
Actor (aktor) adalah pelaku yang terlibat dalam sequence diagram, yang digunakan untuk mewakili user dalam berinteraksi dengan obyek kelas interface.
2. Objectlifeline
Gambar 2.16 Objectlifeline
Objectlifeline menunjukkan keberadaan dari sebuah obyek terhadap waktu, yaitu obyek dibuat atau dihilangkan selama suatu periode waktu diagram ditampilkan, kemudian lifeline berhenti atau mulai pada titik yang tepat.
17
3. Activation
Gambar 2.17 Activation
Activation menampilkan periode waktu selama sebuah obyek atau aktor melakukan aksi. Dalam object lifeline, activation berada diatas lifeline dalam bentuk kotak persegi panjang, bagian atas dari kotak merupakan inisialisasi waktu dimulainya suatu kegiatan dan yang dibawah merupakan akhir dari waktu.
4. Message
Gambar 2.18 Message
Message adalah komunikasi antar obyek yang membawa informasi dan hasil pada sebuah aksi. Message menyampaikan dari lifeline sebuah obyek kepada lifeline yang lain, kecuali pada kasus sebuah message dari obyek kepada obyek itu sendiri, atau dengan kata lain message dimulai dan berakhir pada lifeline yang sama.
18
5. Self Message
Gambar 2.19 Self Message
Mengambarkan
pesan/hubungan
obyek
itu
sendiri,
yang
menunjukkan urutan kejadian yang terjadi.
6. Return (pesan kembali)
Gambar 2.20 Return
Suatu hasil kembalian sebuah operasi yang dikirim, tetapi boleh tidak ditulis jika tidak ada perbedaan dengan getter-nya.
2.1.1.4 Activity Diagram Menurut Satzinger, Jackson, & Burd (2010), activity diagram adalah diagram alur kerja yang menjabarkan aktivitas pengguna dan urutannya secara sekuensial.
19
Gambar 2.21 Contoh Activity Diagram
Ada lima macam bentuk pada activity diagram, yaitu:
Tabel 2.2 Tabel Elemen Activity Diagram Bentuk
Penjelasan Initial node Simbol yang merepresentasikan dimulainya proses. Action Simbol yang merepresentasikan suatu aktivitas. Keseluruhan aktivitas dari diagram mengikuti urutan actions.
20
Tabel 2.2 Tabel Elemen Activity Diagram Fork / Join Penanda pemisahan atau penggabungan activity Decision activity Mengindikasikan kondisi untuk memilih salah satu alur aktivitas. Flow Simbol yang merepresentasikan jalur dari satu aktivitas ke aktivitas lainnya. Activity Final
● ○
Simbol yang merepresentasikan berakhirnya suatu proses.
2.1.2 Agile Development Menurut Pressman (2014), Agile Development berawal pada tahun 2001, Kent Beck dan 16 orang lainnya yang dikenal dengan sebutan Agile Alliance, menandatangani sebuah manifesto untuk Agile Software Development. Manifesto tersebut bertuliskan bahwa untuk mengembangkan software dengan cara yang lebih baik, dibutuhkan 4 (empat) hal utama yaitu: a. Mementingkan interaksi antar individu dibandingkan proses dan tools. b. Mementingkan mengerjakan software dibandingkan dokumentasi yang lengkap. c. Mementingkan
kolaborasi dengan
para
customer
dibandingkan
negosiasi kontrak. d. Mementingkan respons terhadap perubahan dibandingkan mengikuti rencana. Agile Software Development memiliki beberapa fase seperti pada Gambar 2.22 berikut ini.
21
Gambar 2.22 Fase dari Agile Development (Sumber: Agile Planning, Tracking and Project Management Boot Camp, © Copyright Agile Logic Inc. 2004)
Fase-fase dalam sebuah Agile Software Development dapat mencakup Charter, Preparation, Release Cycles, dan Wrap Up. Sebuah Release Cycle dapat dipecah menjadi Release Planning, Iteration Cycles, Delivery, dan Release Retrospect. Sementara sebuah Iteration Cycle dapat dipecah menjadi Iteration Planning, Tasks, Build & Test, dan Iteration Retrospect. Pembagian proses ini dapat terus dilakukan sebanyak yang dibutuhkan. Sedangkan dalam implementasi pembuatan aplikasi, fase-fase yang diadaptasi digambarkan pada Gambar 2.22 berikut ini.
Gambar 2.23 Fase-fase Agile Software Development yang Digunakan (Sumber: Agile Planning, Tracking and Project Management Boot Camp, © Copyright Agile Logic Inc. 2004)
22
2.1.2.1 Preparation Fase ini digunakan untuk melakukan perencanaan awal terhadap pembuatan aplikasi. Fase ini memiliki tiga buah sub fase sebagai berikut. 1. Project Planning Dalam fase ini perencanaan awal pembuatan aplikasi yang menghasilkan dokumen Software Development Plan dilakukan. 2. Requirements Specifying Dalam fase ini spesifikasi awal requirements sistem secara keseluruhan yang menghasilkan Use-Case Model dan dokumen UseCase Specification dibuat. Use-Case Model adalah sebuah model dari fungsionalitas
sistem
dan
lingkungan
sekitarnya.
Use-Case
Specification memberikan spesifikasi rinci dari masing-masing usecase yang terdapat pada Use-Case Model. 3. Environment Setup Dalam fase ini lingkungan pembuatan aplikasi seperti perangkat keras dan perangkat lunak yang akan dibutuhkan selama proses pembuatan aplikasi berlangsung akan dipersiapkan.
2.1.2.2 Monitoring Fase ini berlangsung sepanjang proses pembuatan aplikasi untuk mendapatkan status terbaru, mengevaluasinya terhadap perencanaan, dan menentukan tindakan selanjutnya untuk mengatasi permasalahan apabila ada. Proses ini ditandai oleh Technical Meetings yang dilakukan secara rutin setiap minggu. Dokumen Task Review yang dihasilkan berisi tugastugas yang harus dipenuhi oleh anggota tim berikut dengan waktu pelaksanaannya.
2.1.2.3 Release Cycles Release Cycles adalah siklus pengembangan sebuah release/modul, yang terdiri dari beberapa Iteration Cycles. Fase ini memiliki beberapa sub fase berikut:
23
1. Release Planning Dalam sub fase ini dilakukan perencanaan lebih lanjut untuk proses
pengembangan
release
tertentu
yang
mencakup
pembagian sebuah release menjadi sejumlah iterasi dan fungsionalitas-fungsionalitas yang akan dikembangkan pada iterasi-iterasi tersebut. Aktifitas ini menghasilkan dokumen Software Development Plan yang sudah diperbaharui. 2. Iteration Cycles Iteration Cycles adalah siklus pengembangan terkecil yang menghasilkan sejumlah fungsionalitas sistem yang dapat diuji. 3. Retrospect Dalam sub fase ini dilakukan proses refleksi tim terhadap iterasi yang sudah dijalankan. Ini dilakukan untuk menilai kekurangankekurangan yang ada selama iterasi yang sudah dilalui, cara untuk mengatasinya, dan strategi-strategi yang dinilai sukses serta dapat dipertahankan.
2.1.2.4 Closing Dalam fase ini dilakukan penutupan pengembangan proyek, yaitu Product Wrap-Up dan Final Documentation. Dalam fase Product Wrap-Up dilakukan proses pengumpulan seluruh dokumen yang dibutuhkan serta release yang dihasilkan menjadi sebuah aplikasi yang siap digunakan kemudian dilanjutkan dengan fase Final Documentation, dalam fase ini dilakukan proses penulisan laporan akhir.
2.1.3 Extreme Programming (XP) Saat ini sudah banyak metode pengembangan yang dapat dipakai, baik itu berasal dari hasil penelitian akademis maupun dari kumpulan penerapan kegiatan pengembangan terbaik yang sudah teruji di lapangan. Contoh sebuah metode yang berkembang pada kalangan industri pengembang piranti lunak adalah Extreme Programming (XP).
24
Extreme Programming (XP) merupakan salah satu metodologi pengembangan perangkat lunak yang diperkenalkan pertama kali pada tahun 1996. Menurut Pressman (2014), Extreme Programming (XP) adalah metodologi pengembangan perangkat lunak yang ditujukan untuk meningkatkan kualitas perangkat lunak dan tanggap terhadap perubahan user requirement. Jenis pengembangan perangkat lunak semacam ini dimaksudkan untuk meningkatkan produktivitas dan memperkenalkan pengujian dimana persyaratan user requirement yang baru dapat diadopsi.
2.1.3.1 Nilai-Nilai Dasar Extreme Programming Pada setiap metodologi pengembangan sistem tentunya ada beberapa hal dasar yang harus diperhatikan sebelum lanjut kedalam kerangka kerja agar tidak terjadi kesalahan pemilihan metodologi. Pada setiap tahapan proses pengembangan sistem yang menggunakan model proses Extreme Programming juga memiliki nilai-nilai mendasar. Menurut (Anonim1, 2008) nilai-nilai mendasar Extreme Programming yang harus diperhatikan, yaitu:
Gambar 2.24 Nilai Dasar Extreme Programming
1. Communication Extreme Programming berfokus bagaimana cara agar hubungan komunikasi antar anggota tim terjalin dengan baik. Setiap anggota tim harus bisa saling pengertian dan berbagi
25
pengetahuan serta keterampilan mengenai pengembangan perangkat lunak. Terutama dalam hal ego yang tinggi para programmer, disini mereka harus bisa menekankan ego masingmasing dan bersosialisasi agar dapat bekerja sama dengan programmer lain, karena ini merupakan tugas utama tim developer. 2. Courage Demi tercapainya proyek pengembangan yang sukses, setiap masing-masing anggota tim harus selalu memiliki keberanian, keyakinan serta integritas dalam melakukan tugasnya. Anggota tim harus konsisten dalam menjaga segala jenis kondisi termasuk saat adanya tekanan dari klien atau pemilik perusahaan. Anggota tim juga dituntut untuk berani mengerjakan tugas dan setiap menemukan kesalahan harus segera diperbaiki. 3. Simplicity Dengan menggunakan Extreme Programming, artinya tim developer harus tetap melakukan semuanya dengan sederhana, karena salah satu nilai dasar dari Extreme Programming adalah mencoba untuk selalu mencari solusi yang paling sederhana dan paling praktis. Gunakanlah method yang mudah, pendek atau tidak terlalu rumit dalam pembuatan desain serta hilangkanlah fitur-fitur yang tidak berguna. Inilah yang membedakan Extreme Programming
dengan
metodologi
pengembangan
sistem
konvensional lainnya. Extreme Programming berfokus pada kebutuhan saat ini dibandingkan kebutuhan besok. 4. Feedback Hal ini merupakan salah satu hal penting yang bertujuan untuk mengetahui kemajuan dari proses maupun kualitas perangkat lunak yang dibangun. Dan sudah menjadi kewajiban anggota tim maupun pihak lainnya untuk terlibat dalam memberikan feedback yang baik. Anggota tim harus selalu mendengarkan pendapat anggota tim lainnya tanpa adanya
26
cemohan terhadap pendapatnya tersebut. Dengan hal tersebutlah terkadang akan menyadari kita di bagian mana yang dapat ditingkatkan lagi.
2.1.3.2 Aspek Dasar Extreme Programming Menurut (Anonim2, 2014) menjelaskan aspek-aspek dasar dalam Extreme Programming (XP) adalah sebagai berikut : 1. The Planning Game Pendekatan Extreme Programming pada tahap ini sangat mirip dengan metode penerapan RAD (Rapid Application Development) yang prosesnya pendek dan cepat serta mengutamakan aspek teknik. Proses ini juga menggunakan istilah game karena menurut Beck, untuk menentukan requirements dibutuhkan penggunaan teknik score card. 2. Small Releases Semua developer akan menyelesaikan setiap bagian dari perangkat lunak dan kemudian hasilnya akan dipresentasikan kepada perusahaan (klien). Apabila bagian sistem tersebut disetujui oleh perusahaan maka bagian tersebut akan diterapkan ke seluruh sistem yang ada di perusahaan dan kemudian akan dilakukan tes awal pada penerapan sistem tersebut. 3. Metaphor Metaphor pada dasarnya sama dengan arsitektur software yaitu sama-sama menggambarkan visi tujuan dari pengembangan sistem secara luas. Selain itu, metaphor bertujuan untuk menjaga komunikasi antara klien dengan developer tetap baik. 4. Simple Design Pada proses ini, Extreme Programming didesain sesederhana mungkin untuk menghindari pengembangan sistem yang sulit dimengerti. Dengan desain yang sederhana ini akan memberikan keuntungan
apabila
terjadi
perubahan
pada
desain
yang
mengharuskan untuk membuat desain baru maka resiko kegagalan pada desain dapat diperkecil.
27
5. Refactoring Refactoring merupakan suatu aspek khusus pada Extreme Programming.
Refactoring adalah proses mengubah kode
program
perangkat
dari
lunak
yang
bertujuan
untuk
meningkatkan kualitas dari struktur program agar developer tidak harus mengulang proses desain. 6. Testing Pada proses ini, developer team harus membuat tes yang akan
dipakai
untuk
menjalankan
software
dan
mengembangkannya. Pada saat proses coding selesai maka software tersebut akan diuji menggunakan model tes yang telah dibuat sebelumnya. 7. Pair Programming Pair programming merupakan aspek di mana 2 orang programmer bersama-sama dalam satu tempat atau komputer, mereka saling berinteraksi dan berdiskusi tentang suatu masalah dan menyelesaikannya bersama. 8. Collective Ownership Didalam aspek ini, para programmer dituntut untuk saling berbagi informasi, sehingga ketergantungan terhadap seorang programmer terhadap programmer lain dapat diminimalisir. 9. Coding Standart Coding standart merupakan suatu kesepakatan antara programmer
dalam
memahami
script/program
tersebut,
sehingga para programmer memiliki pemahaman yang sama. 10. Continous Integration Di dalam aspek ini, para software developer diwajibkan untuk melakukan build, build ditujukan agar kesalahan pada program dapat dideteksi dan diperbaiki secepat mungkin. Maksimal waktu yang di butuhkan untuk melakukan build di dalam Extreme Programming adalah 1 hari.
28
11. 40-hours week Kent Beck berpendapat bahwa, waktu ideal seorang programmer bekerja adalah 8 jam/hari atau 5 kali dalam seminggu. 12. On-Side Customer Dalam proses pengembangan software, Extreme Programming menganjurkan untuk mengikut sertakan seorang klien. Klien tersebut ikut berpartisipasi dalam proses build dan test yang di lakukan. Klien tersebut di harapkan dapat memberikan masukan dan koreksi atas pengembangan yang di lakukan.
2.1.3.3 Kerangka Kerja Extreme Programming Menurut Pressman (2014) proses Extreme Programming memiliki kerangka kerja yang terbagi menjadi empat konteks aktivitas utama. Empat konteks tersebut adalah Planning, Design, Coding dan Testing. Keempat aktivitas inilah yang akan menghasilkan sebuah perangkat lunak yang didasari dengan konsep model Extreme Programming.
Gambar 2.25 Kerangka Kerja Extreme Programming
29
Selain gambar dibawah atas yang memberikan kesimpulan bagaimana penggunaan Extreme Programming, akan dijelaskan mengenai empat konteks tersebut secara lebih detail, yaitu: 1. Planning Pada Planning berfokus untuk mendapatkan gambaran fitur dan fungsi dari perangkat lunak yang akan dibangun. Aktivitas planning dimulai dengan membuat kumpulan gambaran atau cerita yang telah diberikan oleh klien yang akan menjadi gambaran dasar dari perangkat lunak tersebut. Kumpulan gambaran atau cerita tersebut akan dikumpulkan dalam sebuah indeks dimana setiap poin memiliki prioritasnya masing-masing.
Tim
pengembang
aplikasi
juga
akan
menentukan perkiraaan waktu serta biaya yang dibutuhkan untuk masing-masing indeks. Setelah semua kebutuhan terpenuhi, tim XP akan menentukan alur dari pengembangan aplikasi sebelum memulai pengembangan tugas. Selama proses pengembangan perangkat lunak, klien dapat mengubah setiap rencana dari aplikasi yang dibuat. Tim XP akan mempertimbangkan semua hal yang ingin diubah oleh klien sebelum mengubah aplikasi tersebut. 2. Design Aktivitas design dalam pengembangan aplikasi ini, bertujuan
untuk
mengatur
pola
logika
dalam
sistem.
Sebuah desain aplikasi yang baik adalah desain yang dapat mengurangi ketergantungan antar setiap proses pada sebuah sistem. Jika salah satu fitur pada sistem mengalami kerusakan, maka hal tersebut tidak akan mempengaruhi sistem secara keseluruhan. Tahap
Design
pada
model
proses Extreme
Programming merupakan panduan dalam membangun perangkat lunak yang didasari dari cerita klien sebelumnya yang telah dikumpulkan pada tahap planning. Dalam XP, proses design terjadi sebelum dan sesudah aktivitas coding berlangsung. Artinya, aktivitas
30
design terjadi secara terus-menerus selama proses pengembangan aplikasi berlangsung. 3. Coding Setelah menyelesaikan gambaran dasar perangkat lunak dan menyelesaikan design untuk aplikasi secara keseluruhan, XP lebih merekomendasikan tim untuk membuat modul unit tes terlebih dahulu yang bertujuan untuk melakukan uji coba setiap cerita dan gambaran yang diberikan oleh klien. Setelah berbagai unit tes selesai dibangun, tim barulah melanjutkan aktivitasnya ke penulisan coding aplikasi. XP menerapkan konsep Pair Programming dimana setiap tugas sebuah modul dikembangkan oleh dua orang programmer. XP beranggapan, 2 orang akan lebih cepat dan baik dalam menyelesaikan sebuah masalah. Selanjutnya, modul aplikasi yang sudah selesai dibangun akan digabungkan dengan aplikasi utama. 4. Testing Walaupun tahapan uji coba sudah dilakukan pada tahapan coding, XP juga akan melakukan pengujian sistem yang sudah sempurna. Pada tahap coding, XP akan terus mengecek dan memperbaiki semua masalah-masalah yang terjadi walaupun hanya masalah kecil. Setiap modul yang sedang dikembangkan, akan diuji terlebih dahulu dengan modul unit tes yang telah dibuat sebelumnya. Setelah semua modul selesai dan dikumpulkan ke dalam sebuah sistem yang sempurna, maka tim XP akan melakukan pengujian penerimaan atau acceptance test. Pada tahap ini, aplikasi akan langsung diuji coba oleh user dank lien agar mendapat tanggapan langsung mengenai penerapan gambaran dan cerita yang telah dilakukan sebelumnya.
31
2.1.4 Pendekatan OOAD Object Oriented Analysis and Design (OOAD) adalah pendekatan software engineering (rekayasa piranti lunak) dimana sistem model sebagai sekelompok obyek yang saling berinteraksi. Setiap obyek mewakili beberapa entitas dalam sistem tersebut, dan dikelompokan dengan kelasnya, state (elemen data) dan behavior. Berbagai model dapat dibuat untuk menunjukkan struktur statis, dinamic behavior, dan obyek yang saling berkolaborasi (Roebuck, 2011).
2.2 Teori yang terkait tema penelitian (temaktik) 2.2.1 Interaksi Manusia dan Komputer 2.2.1.1 Pengertian Interaksi Manusia dan Komputer Menurut Karray (2008), interaksi manusia dan komputer atau disebut juga Human Computer Interaction (HCI) adalah sebuah rancangan yang harus menghasilkan suatu kesesuaian antara user, mesin yang digunakan dan layanan yang dibutuhkan dengan tujuan untuk mencapai kinerja yang ditentukan baik dalam segi kualitas dan optimalitas layanan.
2.2.1.2 Lima Faktor Manusia Terukur Sesuai pendapat yang dikemukakan Shneiderman dan Plaisant (2010), dalam merancang sistem yang user friendly sebelumnya harus memperhatikan lima faktor berikut: 1. Waktu belajar Waktu yang dibutuhkan oleh seorang user dalam belajar menggunakan berbagai aksi yang relevan dengan pekerjaannya. 2. Kecepatan kinerja Waktu yang dibutuhkan untuk menyelesaikan pekerjaan. 3. Tingkat kesalahan user Berapa banyak dan apa saja kesalahan yang dilakukan oleh user. 4. Daya ingat Kemampuan user dalam mempertahankan pengetahuannya dalam jangka waktu tertentu.
32
5. Kepuasan subjektif Seberapa besar ketertarikan user terhadap aspek-aspek yang ada dalam interface.
2.2.1.3 Delapan Aturan Emas Menurut Shneiderman dan Plaisant (2010) terdapat delapan aturan yang dapat digunakan sebagai petunjuk dasar untuk merancang user interface yang baik dan user friendly: 1. Berusaha untuk konsisten Konsisten dalam berbagai keadaan, baik dalam penggunaan tampilan seperti warna, menu, dan jenis tulisan hingga urutan tindakan. 2. Melayani semua user Mengetahui adanya kebut uhan yang berbeda bagi setiap user. Pada user pemula mungkin dibut uhkan adanya suatu fitur penjelasan dan pada user yang ahli dibutuhkan adanya fitur shortcut untuk mempercepat pekerjaannya. 3. Memberikan umpan balik yang informatif Untuk setiap tindakan yang dilakukan user, harus ada suatu umpan balik untuk memberikan informasi kepada user mengenai akibat dari tindakannya. 4. Merancang dialog untuk menghasilkan keadaan akhir Urutan dari tindakan harus dikelompokkan menjadi bagian awal, pertengahan dan akhir. Pada bagian akhir ada suatu umpan balik informatif yang memberikan kepuasan dan keyakinan pada user karena telah berhasil menyelesaikan tindakannya. 5. Memberikan pencegahan dan penanganan kesalahan yang sederhana Rancangan sistem tidak mengijinkan user melakukan kesalahan yang serius dan jika terjadi kesalahan, maka interface harus memberikan instruksi yang sederhana, konstruktif dan spesifik untuk pemulihan kembali.
33
6. Mengijinkan pengembalian aksi Fitur ini membebaskan user dari kecemasan dengan memberikan user kemampuan untuk mengembalikan keadaan seperti sebelum dilakukan kesalahan. 7. Pengendalian internal User menjadi pengendali sistem sedangkan system akan merespons tindakan yang dilakukan user, dan bukan sebaliknya. Jadi peran user dalam sistem adalah sebagai inisiator bukan responden. 8. Mengurangi beban ingatan jangka pendek Memberikan user suatu sistem yang sederhana dan mudah diingat. Hal ini disebabkan adanya keterbatasan ingatan manusia. Sistem dapat disederhanakan dengan beberapa cara, misalnya melalui penggunaan tampilan yang sederhana, penggabungan beberapa tampilan yang bisa disatukan, dan pemberian pelatihan yang cukup untuk kode, mnemonik serta urutan tindakan.
2.2.2 Network Programming Sebuah program dapat bertindak sebagai client ataupun server jika berbasis komunikasi peer to peer. Socket biasanya diimplementasikan oleh sebuah library API seperti Berkeley sockets yang pertama kali dikenalkan pada
tahun
1983
(Mitchell,
2015).
Kebanyakan
implementasi-
implementasi berdasarkan Berkeley sockets, contohnya Winsock yang dikenalkan pada tahun 1991. Dibawah ini adalah fungsi library API yang umum (Anonim3, 2009) : a. socket() untuk membuat socket baru dengan tipe socket tertentu, diidentifikasi dengan sebuah nilai integer dan mengalokasikan resource sistem untuknya. b. bind() biasanya digunakan pada sisi server dan mengasosiasikan sebuah socket dengan struktur alamat socket, contohnya menspesifikasikan nomor port local dan alamat IP.
34
c. listen() digunakan pada sisi server, menyebabkan socket TCP yang ada memasuki kondisi listening. d. connect() digunakan pada sisi client, dan memberikan nomor port lokal yang dalam kondisi free. Dalam kasus socket TCP, perintah ini menghasilkan sebuah usaha untuk membangun sebuah koneksi TCP yang baru. e. accept() digunakan pada sisi server. Perintah ini menerima sebuah usaha yang diterima untuk membuat sebuah koneksi TCP yang baru dari remote client dan membuat socket baru yang terasosiasi dengan pasangan alamat socket dari koneksi ini. f. send() dan recv(), atau write() dan read(), atau recvfrom() dan sendto() digunakan untuk mengirim dan menerima data kepada atau dari sebuah remote socket. g. close() perintah ini akan membuat system melepaskan resource yang teralokasi kepada sebuah socket. Dalam kasus TCP, koneksi akan dihentikan.
Untuk pemrograman aplikasi socket berbasis Windows, maka komponen API yang sering digunakan adalah Winsock (Win-dows Socket API) yang mendukung interface standar TCP/IP, yang merupakan protokol jaringan paling popular saat ini (contoh protokol jaringan yang lain adalah NetBIOS, IPX dari Novell, AppleTalk dari Apple, dan sebagainya). Pada bahasa pemrograman visual seperti Visual Basic/Delphi, Anda dapat menggunakan control Winsock yang telah disediakan untuk mengembangkan aplikasi socket. Walaupun kita akan mencontohkan aplikasi socket dalam environment Windows, Anda tidak perlu khawatir jika
aplikasi
socket
yang
menggunakan
Winsock
tidak
dapat
berkomunikasi dengan aplikasi socket berbasis Unix/Linux, karena komunikasi tetap dapat terjadi selama aplikasi tersebut menggunakan protokol jaringan yang sama.
35
2.2.3 Transmission Control Protocol (TCP) Merupakan bagian dari protokol TCP/IP yang dimana berjalan bersama dengan IP untuk mengirmkan data, serta TCP dapat menjamin, dikarenakan
mengandalkan
dua
proses
acknowledgement,
yaitu
retransmission dan sequencing (Forouzan, 2007). Transmission Control Protocol (TCP) memiliki karakteristik berikut: 1. Reliable,
data
ditransfer
ke
tujuannya
dibawah
pengawasan
pendeteksian kesalahan paket dan retransmisi. 2. Connection-oriented (berorientasi sambungan), sebelum data dapat ditransmisikan antara dua host, dua proses yang berjalan harus melakukan sebuah hubungan (handshaking) untuk membuat sesi koneksi terlebih dahulu. 3. Full-duplex, untuk setiap host TCP, koneksi yang terjadi antara dua host terdiri atas dua buah jalur, yakni jalur keluar dan jalur masuk. Header TCP berisi nomor urut (TCP sequence number) dari data yang ditransmisikan dan dari data yang masuk. TCP biasa digunakan untuk koneksi yang membutuhkan kehandalan tinggi seperti HTTP, telnet, FTP.
2.2.4 User Datagram Protocol (UDP) Salah satu protokol lapisan transport TCP/IP yang mendukung komunikasi yang tidak handal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. UDP tidak mengurus masalah penerimaan aliran data dan pembuatan segmen yang sesuai untuk IP (Forouzan, 2007). Karakteristik UDP : 1. Connectionless (tanpa koneksi), pengirman pesan-pesan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak berukar informasi. 2. Unreliable (tidak handal), pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan. Meski UDP kurang lebih bisa diandalkan, namun keadaan UDP biasa digunakan untuk transmisi broadcast, dan protocol SNMP.
36
2.2.5 Client-Server Server adalah komputer database yang berada di pusat, dimana informasinya dapat digunakan bersama-sama oleh beberapa user yang menjalankan aplikasi di dalam komputer lokalnya yang disebut dengan Client (Anonim4, 2010). Arsitektur client-server adalah model konektivitas pada jaringan yang mengenal adanya server dan client, dimana masing-masing memiliki fungsi yang berbeda satu sama lain. Server dapat berbagi pakai data, aplikasi dan peripheral seperti harddisk, printer, modem dan lainlain. Oleh karena itu, tidak jarang juga tercipta sebutan print server, communication server dan lain sebagiannya. Prinsip kerjanya sangat sederhana, dimana server akan menunggu
permintaan dari client, memproses
dan
memberikan hasilnya kepada client. Sedangkan client akan mengirimkan permintaan ke server, menunggu proses dan melihat visualisasi hasil prosesnya. Sistem client server ini menggunakan protocol TCP/IP (Transmission Control Protocol/Internet Protocol). 2.2.5.1 Arsitektur Client Server Menurut Budi Sutedjo Dharma Oetomo (2006) arsitektur client-server adalah suatu model konektivitas jaringan yang membedakan fungsi komputer sebagai client atau server. Arsitektur ini berfungsi sebagai server yang memiliki tugas untuk memberikan layanan pada client yang terhubung dalam jaringan tersebut. Jaringan komputer client-server ini memiliki lima model arsitektur, yaitu: 1. Two Tier Dalam model client/server, pemrosesan pada sebuah aplikasi terjadi pada client dan server. Aplikasi ditempatkan pada komuter client dan mesin database dijalankan pada server jarak-jauh. Aplikasi client mengeluarkan permintaan ke database yang mengirimkan kembali data ke client. Model arsitektur Two Tier dapat dikelompokkan menjadi dua macam, yaitu:
37
a. Thin Client-Thick Server Pada arsitektur ini, client menjalankan satu fungsi, yaitu sebagai penyaji dari tampilan aplikasi dan data yang diakses dari server. Hal ini berarti beban server lebih tinggi dan server menjadi titik kritis dari sistem jaringan tersebut, di mana server harus memberikan layanan penggunaan bersama aplikasi-aplikasi (Aplication Server) dan data (Data atau File Server) kepada semua client yang terhubung kepadanya.
Gambar 2.26 Thin Client-Thick Server
b. Thick Client-Thin Server Arsitektur ini sedikitnya memberi dua peran bagi client, di mana client tidak hanya berperan sebagai penyaji antarmuka saja, melainkan juga berfungsi mengoperasikan aplikasi. Sementara itu, server hanya bertugas untuk mengelola
data
saja
sehingga
beban client
menjadi
bertambah. Model ini diterapkan pada sistem layanan Anjungan Tunai Mandiri (ATM), di mana mesin-mesin ATM yang merupakan client berfungsi menangani antarmuka penyajian dan mengoperasikan aplikasi layanan ATM. Pada sistem ini kinerja server menjadi ringan, namun tetap harus diperhatikan perjalanan data dari client menuju
38
server. Bisa jadi pada sisi client, aplikasi sudah mencatat terjadinya transaksi, sementara data masih dalam perjalanan belum sampai di server. Penerapan model ini juga akan merepotkan tim teknisi untuk melakukan pemeliharaan aplikasi pada masing-masing mesin ATM karena aplikasi terletak pada masing-masing client yang mungkin saja letaknya berjauhan satu sama lain. Model ini tidak menskalakan client dalam jumlah yang besar sehingga dapat menimbulkan
masalah
dalam
pemeliharaan
dan
perawatannya.
Gambar 2.27 Thick Client-Thin Server
2. Three Tier Arsitektur client-server ini terus dikembangkan seiring dengan perkembangan perusahaan. Kini banyak perusahaan yang mulai mengoptimalkan penggunaan system jaringan Internet, yang memungkinkan untuk menyediakan layanan transaksi selama 24 jam dengan skala pelanggan yang sangat luas hingga mancanegara. Untuk membangun sistem bisnis berbasis Web yang dikenal dengan istilah e-Business, perlu dilakukan pemisahan peran server yang menangani aplikasi dan basis data agar kinerja server dapat optimal.
39
Gambar 2.28 Three Tier
3. Data Management Tier Merupakan komputer server yang dikhususkan untuk menangani pengelolaan basis data.
4. Middle Tier Merupakan server yang dikhususkan untuk menangani aplikasi-aplikasi dimana prosedur-prosedur dan perhitunganperhitungan yang kompleks dieksekusi di sini.
5. Presentation Tier Merupakan komputer client yang menjadi antarmuka bagi pengguna untuk memasukkan data, mengajukan permintaan layanan kepada server, dan melihat hasilnya. Arsitektur ini memiliki sejumlah keuntungan, antara lain masing-masing tier akan beroperasi dengan stabilitas yang tinggi karena beban terbagi secara merata. Model ini juga memungkinkan di mana pada masing-masing tier diterapkan platform yang berbeda. Proses modifikasi pada satu tier tidak akan memengaruhi tier yang lain. Sementara itu, pada Middle Tier dapat dikembangkan berbagai macam aplikasi yang
40
tersebar dalam beberapa server sesuai kebutuhan yang akan diakses oleh client sehingga tidak terjadi kemacetan.
2.2.6 Wifi Ad-Hoc Ad-Hoc merupakan mode jaringan WLAN yang sangat sederhana dan masing- masing host yang terhubung jaringan yang sama bisa saling melihat yang lain (peer-to-peer) dan tidak ada yang bertindak sebagai access point (Rouse, 2009). Tidak terdapat access point disana, sehingga apabila satu komputer ingin melakukan pertukaran data dengan komputer lain maka mereka bisa saling terhubung satu sama lain tanpa harus melewati access point terlebih dahulu. Setiap host cukup memiliki transmitter dan receiver wireless untuk berkomunikasi secara langsung satu sama lain. Kekurangan dari mode ini adalah komputer tidak bisa berkomunikasi dengan komputer pada jaringan yang menggunakan kabel. Selain itu, daerah jangkauan pada mode ini terbatas pada jarak antara kedua komputer tersebut.
Gambar 2.29 Mode Wifi Ad-Hoc
2.2.7 Android Android adalah sistem operasi terbuka berbasis Linux untuk telepon seluler, seperti smartphone dan komputer tablet yang dikembangkan oleh Open Handset Alliance (OHA). Linux kernel berfungsi sebagai abstraksi
41
antara perangkat keras dan perangkat lunak pada telepon seluler. Ia juga menangani inti sistem layanan seperti keamanan, manajemen memori, proses manajemen dan susunan jaringan (Gargenta, 2011). 2.2.7.1 Komponen Aplikasi Android Aplikasi Android terdiri dari 4 komponen (Anonim5, 2011), yaitu: 1. Activity Activity adalah bagian dari sebuah aplikasi yang dipakai untuk berinteraksi dengan pengguna. Sebuah activity mempunyai user interface. Activity dapat dikatakan sebagai tampilan aplikasi yang berhubungan dengan pengguna.
2. Service Service
adalah
sebuah
komponen
aplikasi
yang
dapat
menjalankan operasi jangka panjang di background dan tidak memiliki tampilan. Sebuah komponen aplikasi dapat memulai service. Service tersebut akan tetap berjalan pada background walaupun sudah berpindah ke aplikasi lain.
3. Content Providers Dengan content providers, data sebuah aplikasi bisa diakses dari aplikasi lainnya, misalnya informasi kontak bisa diakses oleh aplikasi yang memiliki izin akses. Selain itu, user juga dapat menyimpan data di sistem file, SQL Lite database, dan lokasi penyimpanan lain yang dapat diakses oleh aplikasi.
4. Broadcast Receiver Bagian ini dipakai untuk menerima tanda dari sistem android, contohnya pada saat screen off atau low battery. Sistem ini juga dapat memberitahukan ketika proses suatu aplikasi telah selesai. Contoh ketika selesai melakukan download, maka akan ada notifikasi dan siap digunakan.
42
2.2.7.2 ADT (Android Development Tools) Android Development Tools (ADT) adalah plug-in yang didesain untuk IDE Eclipse yang memberikan kemudahan dalam mengembangkan aplikasi Android. Dengan menggunakan ADT untuk Eclipse, akan memudahkan dalam pembuatan aplikasi project Android, pembuatan GUI aplikasi, dan penambahan komponen-komponen yang lainnya. Selain itu, dapat pula melakukan running aplikasi menggunakan Android SDK melalui Eclipse. Fitur lainnya adalah dapat melakukan pembuatan package Android (.apk) yang digunakan untuk distribusi aplikasi Android yang telah selesai dirancang (Anonim6, 2011).
2.2.8 Java Java adalah dasar untuk hampir setiap jenis aplikasi jaringan dan standar global untuk mengembangkan mobile aplikasi, game, konten berbasis Web, dan enterprise software. Dengan lebih dari 9 juta pengembang di seluruh dunia, Java memungkinkan untuk secara efisien mengembangkan, menyebarkan, dan menggunakan aplikasi dan layanan yang menarik (Schildt, 2011). Sun Microsystems telah mendefinisikan tiga edisi dari Java 2 (Schildt, 2011), yaitu sebagai berikut: 1. Java 2 Standard Edition (J2SE), adalah inti dari bahasa pemrograman Java. JDK merupakan salah satu perangkat (tool) dari J2SE untuk mengkompilasi dan menjalankan program Java. Di dalamnya terdapat 10 perangkat untuk mengkompilasi program Java dan JRE. J2SE ini digunakan pada hardware seperti layar komputer (desktop). J2SE atau Java 2 Standard Edition merupakan bahasa pemrograman Java
untuk
aplikasi
desktop
yang
merupakan
object-oriented
programming. Pada J2SE, terdiri dari dua buah produk yang dikeluarkan untuk membantu dalam membuat aplikasi tanpa tergantung dari platform yang digunakan, yaitu:
43
a. Java SE Runtime Environment (JRE) Java Runtime Environment (JRE) menyediakan perpustakaan, Java Virtual Machine (JVM), dan komponen lain untuk menjalankan applet dan aplikasi yang ditulis dengan bahasa pemrograman Java. Selain itu, terdapat dua buah kunci teknologi yang merupakan bagian dari JRE, yaitu: d Plug-in, yang memungkinkan menjalankan applet di browser populer dan Java Web Start, yang menyebarkan aplikasi mandiri melalui jaringan. JRE tidak mengandung utilitas seperti compiler atau debugger untuk mengembangkan applet dan aplikasi.
b. Java Development Kit (JDK) Java Development Kit (JDK) merupakan perangkat lunak yang digunakan untuk menajemen dan membangun berbagai aplikasi Java. JDK merupakan superset dari JRE, berisikan segala sesuatu yang ada di JRE ditambahkan compiler dan debugger yang diperlukan untuk mengembangkan applet dan aplikasi.
2. Java 2 Enterprise Edition (J2EE), merupakan superset dari J2SE yang memperbolehkan pengembang untuk mengembangkan aplikasi-aplikasi berskala besar (enterprise) karena dijalankan pada jaringan komputer.
3. Java 2 Micro Edition (J2ME), merupakan subset dari J2SE yang digunakan untuk menangani pemrograman di dalam perangkatperangkat kecil, yang tidak memungkinkan untuk mendukung implementasi J2SE secara penuh. Paket J2ME digunakan pada perangkat yang memiliki kapasitas memori kecil, seperti telepon selular, pager atau PDA.
2.2.9 Smartphone Smartphone
adalah
telepon
berbasis
Internet-enabled
yang
menyediakan fungsi Personal Digital Assistant (PDA) seperti fungsi kalender, buku agenda, buku alamat, kalkulator, dan catatan. Smartphone mempunyai fungsi yang menyerupai komputer, sehingga untuk masa
44
depan teknologi smartphone diperkirakan akan menyingkirkan teknologi komputer desktop, terutama dalam hal pengaksesan data dari internet. Setiap smartphone memiliki sistem operasi yang berbeda-beda, sama hal nya dengan sistem operasi pada komputer desktop (Gary. B, Thomas. J, Misty. E, 2007).
2.2.10 Smartwatch Smartwatch merupakan jam tangan yang berukuran kecil dengan fungsionalitas yang ditingkatkan melampaui ketepatan waktu (Rouse, 2014). Smartwatch masa kini secara efektif dapat dipakai layaknya komputer.
Kebanyakan
smartwatch
menjalankan
aplikasi
mobile,
sementara sebagian kecil menjalankan sistem operasi mobile dan berfungsi sebagai media player portable, pemutar radio FM, audio, dan file video ke pengguna
melalui
headset
bluetooth.
Smartwatch juga
memiliki
kemampuan seperti smartphone yang dapat menelepon dan sms. Selain bluetooth, smartwatch juga dapat menggunakan konektivitas wi-fi. Salah satu produk smartwatch yaitu Iconbit Callisto 300 (Iconbit, 2014), dapat menggabungkan kemampuan smartphone bersama dengan konektivitas wireless, location-based services, dan fitur kamera di pergelangan tangan pengguna. Telepon multi-fungsional, berbasis Android 4.2 (Jelly Bean) dengan semua aplikasi interface, terdapat dalam desain smartwatch tersebut. Fitur yang tersedia yaitu browsing, mendengarkan musik, kamera, GPS, aplikasi di Play Store, monitoring dan masih banyak lagi. Smartwatch juga dapat melakukan panggilan telepon, membuat pesan, dan terhubung ke internet, serta media sosial secara sendiri tanpa harus bergantung dengan device yang lain. Callisto 300 akan mengikuti pengguna ke manapun mereka pergi, bahkan ke tempat-tempat yang tidak memungkinkan untuk menggunakan sebuah smartphone.
2.2.11 Eclipse Eclipse
merupakan
sebuah
IDE
(Integrated
Development
Environment) untuk mengembangkan perangkat lunak dan dapat
45
dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari Eclipse: a. Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. b. Multi-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya. c. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun dapat digunakan untuk aktivitas dalam siklus pengembangan perangkat
lunak,
seperti
dokumentasi,
tes
perangkat
lunak,
pengembangan web, dan lain sebagainya. Salah satu kelebihan Eclipse adalah dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in.
2.3 Hasil Penelitian atau Produk Sebelumnya Penelitian produk/aplikasi sejenis maupun sebelumnya akan memberikan gambaran singkat dan perbandingan mengenai aplikasi-aplikasi yang sejenis dengan aplikasi yang dikembangkan. Berbagai aplikasi ini memiliki konsep yang sama, yaitu adanya aplikasi yang berjalan pada komputer (server) dan pada smartphone ataupun smartwatch (client). Aplikasi tersebut memiliki fitur yang sama seperti fitur mouse, pointer, dan remote presentasi. Melihat banyaknya aplikasi sejenis yang ada, maka hanya dipilih jenis aplikasi dengan fitur yang sama untuk dibandingkan dengan aplikasi yang dikembangkan. Keunggulan dan kelemahan aplikasi diidentifikasi berdasarkan user experience, user reviews pada Android Market, dan keterangan penggunaan pada situs resmi aplikasi tersebut. Berbagai produk/aplikasi sebelumnya yang dimaksud yaitu: 1. AlterMote Sistem Operasi Client
: Android
Sistem Operasi Server
: Microsoft Windows, Mac OS, dan Linux
Pengembang
: Dario Hitani, dkk.
Konektivitas
: Wi-Fi
46
Altermote merupakan produk aplikasi untuk smartphone berbasis sistem operasi Android yang digunakan sebagai remote controling pada komputer. Altermote memiliki fitur-fitur yang cukup lengkap seperti untuk mengatur jalannya presentasi, mouse, dan keyboard.
Berbagai keunggulan produk aplikasi AlterMote yaitu: 1. Aplikasi AlterMote memiliki fitur on-screen pointer dan highlighter. 2. Adanya fitur help maka aplikasi AlterMote dapat digunakan oleh tiga jenis user, yaitu first time (novice) user, knowledgeable-intermittent user, dan expert frequent user karena memiliki panduan yang sangat jelas. 3. Aplikasi AlterMote dapat menggantikan fungsi alat laser pointer pada saat melakukan presentasi dan menambah fungsionalitas smartphone berbasis sistem operasi Android.
Kekurangan produk aplikasi oleh AlterMote yaitu: 1. Tidak memiliki fitur screen mirroring dimana jika ada peserta yang tidak dapat melihat slide presentasi dengan jelas maka akan menyulitkan peserta untuk memahami materi dengan baik. 2. Hanya dapat digunakan pada smartphone
2. Touch Mouse Sistem Operasi Client
: iPhone OS (iOS)
Sistem Operasi Server
: Microsoft Windows dan Mac OS
Pengembang
: Logitech
Konektivitas
: Wi-Fi
Situs Resmi
: http://www.logitech.com/en-us/494/6367
Aplikasi Touch Mouse hanya berfungsi seperti mouse atau touchpad dan keyboard pada iPhone atau iPod Touch untuk digunakan pada komputer. Dengan aplikasi ini, user dapat mengendalikan komputer secara wireless dari jarak jauh.
47
Berbagai keunggulan produk aplikasi Touch Mouse yaitu: 1. Dapat digunakan pada posisi portrait atau landscape. 2. Fitur mouse mendukung multi-touch sehingga memudahkan penggunaan. 3. Saat menggunakan fitur keyboard maka akan memunculkan teks pada aplikasi client.
Kekurangan produk aplikasi Touch Mode yaitu: 1. Aplikasi server hanya berjalan pada sistem operasi Microsoft Windows dan Mac OS. 2. Tidak memiliki fitur screen mirroring. 3. Tidak memiliki fitur untuk presentasi. 4. Hanya dapat digunakan pada smartphone
3. PPT Remote Sistem Operasi Client
: Android
Sistem Operasi Server
: Microsoft Windows
Pengembang
: BOJA
Konektivitas
: Wi-Fi dan Bluetooth
Situs Resmi
: http://www.pptremotecontrol.com/
PPT Remote merupakan produk aplikasi untuk smartphone berbasis sistem operasi Android yang digunakan hanya untuk kegiatan presentasi. PPT Remote memiliki fitur-fitur yang cukup lengkap untuk mengatur jalannya presentasi.
Berbagai keunggulan produk aplikasi PPT Remote yaitu: 1. Teradapat fitur notes untuk melihat catatan pada setiap slide presentasi di smartphone. 2. Terdapat fitur mouse atau touchpad. 3. Terdapat fitur presentasi tambahan seperti highlighter, next slide, previous slide, dan black screen.
48
4. Terdapat fitur timer untuk mengatur berapa lama waktu presentasi dan memberikan notifikasi kepada user berupa alarm jika waktu presentasi telah habis. Kekurangan produk aplikasi PPT Remote yaitu: 1. Tidak ada shortcut untuk memulai dan mengakhiri slide show. 2. Aplikasi server sering mengalami crash saat melakukan koneksi ke aplikasi client. 3. Tidak adanya fitu screen mirroring untuk peserta presentasi.
Berdasarkan hasil penelitian produk aplikasi sebelumnya, aplikasi yang dikembangkan akan berjalan pada device smartwatch android. Untuk aspek konektivitas, akan menggunakan Wi-Fi sesuai dengan aplikasi sebelumnya.
Aplikasi yang dikembangkan memiliki fitur-fitur sebagai berikut : 1. Presentation Tools: fitur ini merupakan sekumpulan fitur khusus untuk membantu user mengendalikan presentasi pada komputer dengan smartwatch Android. Fitur yang dimaksud adalah start slide show, stop slide show, next dan previous slide sehingga user dapat melakukan fungsi next dan previous pada saat slide show.
2. Screen mirroring: peserta presentasi dapat melihat slide presentasi menggunakan smartphone mereka masing-masing melalui aplikasi dengan melakukan koneksi ke server. Kemudian server akan melakukan broadcast tampilan slide kepada peserta yang telah terhubung ke server.