BAB 2 TINJAUAN PUSTAKA
2.1 Teori Umum 2.1.1 Agile Software Development Menurut Pressman (2010), Agile Sofware Development berawal pada tahun 2001, Kent Back dan 16 rekan lainya yang dikenal dengan sebutan Agile Alliance, menandatangani sebuah manifesto untuk Agile Sofware Development.
Manifesto
tersebut
bertuliskan
bahwa
untuk
mengembangkan software dengan cara yang lebih baik, dibutuhkan 4 (empat) hal utama yaitu: 1. Mementingkan interkasi antar individu dibandingkan proses dan tools. 2. Mementingkan mengerjakan software dibandingkan dokumentasi yang lengkap. 3. Mementingkan kolaborasi dengan para customer dibandingkan negosiasi kontrak. 4. Mementingkan respons terhadap perubahan dibandingkan mengikuti rencana. Selain membuat manifesto, Agile Alliance juga mendefinisikan 12 (dua belas) prinsip ketangkasan (agility) yaitu: 1. Prioritas utama agile adalah untuk memuaskan pelanggan dengan memberikan perangkat lunak yang bernilai diawal dan berkelanjutan. 2. Menerima perubahan kebutuhan, sekalipun di akhir pengembangan. 3. Menyerahkan hasil/perangkat lunak dalam hitungan waktu 2 minggu sampai 2 bulan. 4. Pengembang perangkat lunak beserta orang-orang yang berkepentingan bekerja bersama-sama selama proyek berlangsung. 5. Membangun proyek di sekitar individu yang memiliki motivasi tinggi. Berikan lingkungan dan dukungan yang dibutuhkan serta percaya kepada mereka untuk menyelesaikan pekerjaan ini. 6. Komunikasi langsung adalah metode yang paling efisien dan efektif.
7
8 7. Software merupakan alat ukur utama dari kemajuan proyek. 8. Sponsor, developer, dan pengguna diperlukan untuk dapat menjaga perkembangan. 9. Perhatian yang berkelanjutan kepada kehebatan teknis dan desain akan meningkatkan agility. 10. Kesederhanaan itu penting. 11. Arsitektur, kebutuhan, dan desain yang terbaik muncul dari tim yang dapat mengatur dirinya sendiri. 12. Secara periodik, tim melakukan evaluasi dan mencari cara agar lebih efektif serta melakukannya dengan segera.
Agile Software Development memungkinkan model proses yang toleransi terhadap perubahan kebutuhan sehingga perubahan dapat cepat ditanggapi.
2.1.1.1 Model Extreme Programing Menurut Pressman (2010), Extreme Progrmaing (XP) adalah metodologi pengembangan perangkat lunak yang ditujukan untuk meningkatkan kualitas perangkat lunak dan tanggap terhadap perubahan kebutuhan pelanggan. Jenis pengembangan perangkat lunak ini dimaksudkan untuk menigkatkan produktivitas dan memperkenalkan pos pemeriksaan dimana persyaratan baru dapat diadopsi. Tahapan – tahapan dari Extreme Programing terdiri dari planning seperti memahami kriteria pengguna dan perancangan pengembangan, designing seperti perancangan prototype dan tampilan, coding termasuk pengintegrasian dan yang terakhir adalah testing yaitu menguji hasil pengembangan sesuai dengan kriteria yang diberikan. Unsur-unsur lain dari Extreme Programming meliputi paired programming pada tahapan coding, unit testing pada semua kode, penghindaran pemrograman fitur kecuali benar-benar diperlukan, struktur manajemen yang datar, kode yang sederhana dan jelas dan
9 seringnya terjadi komunikasi antara programmer dan pelanggan ketika terjadi perubahan kebutuhan pelanggan seiring waktu berlalu. Metode ini membawa unsur-unsur yang menguntungkan dari praktek rekayasa perangkat lunak tradisional ke tingkat “ekstrem”, sehingga metode ini dinamai Extreme Programming. Unsur-unsur yang menjadi karakteristik metodologi adalah kesederhanaan, komunikasi, umpan balik, dan keberanian. Extreme Programing Model
G a m b a r
2 . 1
T ahapan – tahapan Extreme Programing
Berikut merupakan proses Extreme Programing menurut Pressman (2010): 1.
Planning Aktivitas planning pada model proses XP berfokus pada
mendapatkan gambaran fitur serta fungsi dari perangkat lunak yang akan dibangun. Pada aktivitas ini dimulai dengan membuat
10 kumpulan cerita atau gambaran yang diberikan klien yang kemudian akan menjadi gambaran dasar dari perangkat lunak. Kumpulan tersebut nantinya dikumpulkan dalam sebuah indeks cerita dimana setiap poin dari indeks tersebut ditentukan prioritasnya untuk dibangun. Anggota tim dari pengembang aplikasi nantinya akan menentukan perkiraan waktu dan biaya yang dibutuhkan untuk setiap indeks tersebut. Setelah menentukan kebetuhan tersebut, tim XP akan menentukan alur pengembangan aplikasi dengan terlebih dahulu memulai mengembangkan tugas dengan resiko dan nilai prioritas yang tinggi terlebih dahulu, dan seluruh tugas akan selesai dalam tenggat waktu dua minggu. Selama
proses pengembangan,
klien
dapat mengubah,
memperkecil, membagi, dan membuang setiap rencana dari aplikasi. Tim XP akan mempertimbangkan setiap perubahan yang diajukan klien yang berikutnya akan mengubah setiap rencana dari pengembangan perangkat lunak tersebut juga. 2. Design Aktivitas design dalam pengembangan aplikasi bertujuan untuk mengatur pola logika dalam sistem. Sebuah design yang baik, dapat mengurangi ketergantungan antar setiap proses pada sebuah sistem. Dengan begitu, jika salah satu fitur pada sistem mengalami kerusakan, tidak akan mempengaruhi sistem secara keseluruhan. Design pada
model
proses extreme
programming menjadi
panduan dalam membangun perangkat lunak yang didasari dari cerita klien sebelumnya. Dalam XP, proses design terjadi sebelum dan sesudah aktivitas coding berlangsung. Yang berarti aktivitas design terjadi secara terus-menerus selama proses pengembangan aplikasi berlangsung. 3. Coding Setelah menyelesaikan pengumpulan cerita dan menyelesaikan design untuk
aplikasi
secara
keseluruhan,
XP
lebih
merekomendasikan tim untuk terlebih dahulu membuat modul unit tes yang bertujuan untuk melakukan uji coba setiap cerita yang
11 didapat dari 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 Tahapan uji coba pada XP sudah dilakukan juga pada saat tahapan sebelumnya yaitu coding. XP menerapkan perbaikan masalah kecil dengan sesegera mungkin akan lebih baik dibandingkan menyelesaikan masalah pada saat akan mencapai tenggat akhir. Oleh karena itu, setiap modul yang sedang dikembangkan akan terlebih dahulu mengalami pengujian dengan modul unit tes yang telah dibuat sebelumnya. Nilai-nilai dasar yang menjadi inti dari proses pengembangan aplikasi menggunakan Extreme Programaing Model, yaitu: 1. Kesederhanaan (Simplicity) Kesederhanaan diterapkan dalam melakukan pengembangan aplikasi, terutama saat melakukan coding. Susunan coding yang sederhana dengan menggunakan method yang pendek namuk efesien dan menghilangkan berbagai macam modul yang tidak digunakan adalah kunci dari penerapan nilai simplicity. 2. Komunikasi (Communication) XP sangat memperhatikan komunikasi antar setiap stakeholder, baik anggota tim sendiri maupun dengan pihak klien. Komunikasi yang baik antar tim akan mempermudahkan proses kerja proyek dimana setiap anggota tim bisa saling bantu dalam memecahkan sebuah masalah, terutama menghilangkan ego dari programmer yang cukup tinggi. 3. Umpan balik (Feedback) Umpan balik sangat diandalkan dalam proses model XP. Setiap anggota tim wajib memberikan setiap perkembangan tugas dan menceritakan berbagai macam masalah kepada tim yang
12 lainnya. Masukan, kritikan dan ide baru yang didapat bisa menjadi
sebuah
perbaikan
maupun
peningkatan
dalam
menyelesaikan setiap tugas. 4. Keberanian (Courage) Sebuah proyek yang memiliki tenggat waktu akan menghadapai tekanan dari berbagai pihak, terutama klien. XP menerapkan nilai keberanian untuk tetap memiliki integritas pada setiap anggota tim. Dengan integritas tersebut anggota-anggota tim akan memiliki keyakinan dapat menyelesaikan proyek sesuai dengan yang diharapkan. Kepercayaan itulah yang dibanggun sehingga semangat untuk segera dapat menyelesaikan dapat terus terbentuk.
2.1.2 Multimedia Menurut Vaughan (2011:1), Multimedia adalah kombinasi dari teks, gambar, suara, animasi dan video yang mempunyai suati nilai informasi dan disampaikan oleh komputer atau media elektronik lain yang dapat dimanipulasi secara digital. Berikut lima komponen utama multimedia menurut Tay Vaughan: 1. Teks Dalam multimedia, teks merupakan elelemen multimedia yang paling dasar dan mudah dimanipulasi, selain itu teks juga merupakan cara yang efektif untuk mengkomunikasikan informasi maupun ide-ide serta menyediakan instruksi – instruksi pada user (Vaughan, 2011:18-22). Teks dibagi menjadi 2 komponen, yaitu typeface dan font. Typeface adalah kumpulan dari berbagai karakter yang memiliki berbagai size dan style, sedangkan font adalah kumpulan dari karakter dengan size dan style yang merupakan suatu bagian dari typeface. Menurut Vaughan (2011:54) ada dua jenis typefaces dan teks, yaitu serif dan sans serif. Serif adalah dekorasi tambahan di akhir goresan tulisan, contohnya Times New Roman, Bookman dan lain-lain. Contoh sans serif adalah Arial, Verdana, Helvetica dan lain-lain. Untuk tulisan dengan
13 banyak teks sebaiknya menggunakan serif karena mudah dibaca. Untuk judul, headlines, dan kata-kata penting sebaiknya menggunakan sans serif. 2. Gambar Beberapa pesan yang tidak bisa disampaikan dengan tulisan bisa disampaikan melalui gambar. Menurut Vaughan (2011:134), gambar merupakan suatu elemen mutimedia yang sangat efektif dalam penyampaian informasi. Hal ini disebabkan mata akan terfokus pada suatu gambar yang menarik dan juga akan membuat pikiran terarah ke gambar tersebut. Gambar yang dihasilkan komputer secara umum terbagi menjadi dua jenis, yaitu:
a. Bitmap Bitmap merupakan matrik sederhana dari titik-titik kecil yang membentuk sebuah gambar (Vaughan, 2011:71). Contoh bitmap biasanya adalah foto dan gambar kompleks. b. Vector Menurut Vaughan (2011:80), gambar vector adalah gambar yang dibentuk melalui kumpulan garis dan titik yang menjadi suatu kesatuan. Contoh vector biasanya objek-objek seperti garis, kotak, lingkaran dan gambar kompleks lainnya yang di buat dari objek-objek tersebut. 3. Suara Suara merupakan elemen multimedia verbal berupa gelombang bunyi. Dengan adanya fasilitas suara, dapat digunakan sebagai musik dan efek suara. Jenis-jenis suara yang sering digunakan untuk kebutuhan multimedia diantaranya ialah: a. Digital Audio Menurut Vaughan (2011:106), digital audio merupakan hasil representasi dari karakter suatu gelombang suara yang menggunakan angka secara digital. Proses membuat digital audio ini dapat
14 dihasilkan melalui mikrofon, synthesizer, rekaman suara yang terlah ada, live radio, penyiaran televisi, maupun melalu CD atau DVD yang ada. Format yang dihasilkan dari pembuatan digital audio ini adalah MP3 dan WAV. b. MIDI Menurut Vaughan (2011:113), MIDI adalah jenis suara yang dihasilkan dari komunikasi antara instrumen-instrumen musik dengan komputer yang tersambung oleh kabel. Kualitas dari MIDI ini sendiri ditentukan dari kualitas sound system dan juga kualitas instrumen musik itu sendiri. 4. Animasi Animasi adlah sebuah objek bergerak yang terdiri dari beberapa gambar yang berurutan. Dengan animasi, gambar-gambar berubah sedikit demi sedikit dan dengan cepat secara berkelanjutan sehingga terlihat menyatu menjadi sebuah ilusi gerakan. Menurut Vaughan (2011:186) animasi dapat membuat sesuatu menjadi terlihat lebih hidup dan menarik dengan menambahkan di bagian-bagian tertentu atau seluruh bagian pada proyek. Efek yang timbul biasanya mengakibatkan perubahan dari bentuk awal menjadi bentuk yang berbeda, bisa dari kecil menjadi besar, dari tidak ada menjadi ada, dari posisi satu ke posisi lainnya. 5. Video Video merupakan elemen yang menarik dari bidang multimedia dan merupakan alat yang ampuh untuk mendekatkan user kepada dunia nyata. Dengan menggunakan sebuah video, multimedia akan menjadi menarik dan lebih interaktif. Video adalah kumpulan gambar yang bergerak. Dari semua elemen multimedia, video menempatkan tuntutan performa yang tertinggi dalam komputer dari segi memori dan penyimpanannya. Ada tiga standar mpenyiaran video analog yang biasa digunakan, yaitu NTSC, PAL, dan SECAM.
2.1.3 Unified Modelling Language Unified Modelling Language atau UML merupakan suatu bahasa pemodelan visual yang digunakan untuk menganalisa, merancang, dan
15 mengimplementasikan sistem yang berbasis perangkat lunak dan pemodelan bisnis. UML merupakan pengembangan dari tiga metode berorientasi objek terkemuka seperti Booch, Object Modelling Technique (OMT), dan Object-Oriented Software Engineering (OOSE). Pada UML versi 2.4, terdapat empat belas jenis diagram yang dikelompokkan kembali menjadi dua bagian, yaitu structure diagram yang berfokus pada struktur statis dari sistem dan behavior diagram yang berfokus pada struktur dinamis. Diagram-diagram yang dikategorikan ke dalam struktur diagram di antaranya adalah: 1.
Class diagram
2.
Component diagram
3.
Composite Structure diagram
4.
Deployment diagram
5.
Object diagram
6.
Package diagram, dan
7.
Profile diagram
Sedangkan diagram – diagram yang dikaegorikan kedalam behavior diagran diantaranya adalah: 1.
Activity diagram
2.
Communication diagram
3.
Interaction Overview diagram
4.
Sequence diagram
5.
State Machine diagram
6.
Timing diagram, dan
7.
Use case diagram
2.1.3.1 Use Case Diagram Menurut Whitten dan Bentley (2007:382), use case diagram adalah diagram yang menggambarkan interaksi antara sistem, eksternal sistem dan user. Hal ini memberikan penjelasan siapa
16 yang menggunakan sistem dan bagaimana user berinteraksi dengan sistem.
Gambar 2.2 Contoh Use Case Diagram
Ada tiga elemen penting dalam Use Case diagram, yaitu aktor, use cases dan relationship, Whitten dan Bentley (2007:246). 1. Aktor Aktor dapat diartikan sebagai peran yang mewakili user didalam sebuah use case yang berinteraksi dengan sistem. Aktor tidak harus berupa manusia, aktor juga bisa digambarkan sebagai organisasi, external device, atau sistem. (Whitten dan Bentley, 2007) 2. Use cases Use cases merupakan urutan perilaku atau kegiatan yang mendeskripsikan bagaimana pengguna berinteraksi dengan sistem untuk menyelesaikan suatu aktivitas. (Whitten dan Bentley, 2007)
17 3. Relationship Relationship menggambaran hubungan antara 2 (dua) simbol dalam sebuah Use Case diagram yang digambarkan dengan garis. Arti dari relationship berbeda – beda tergantung pada bagaimana garis penghubung digambarkan dan tipe dari simbol yang dihubungkan oleh garis tersebut. (Whitten dan Bentley, 2007)
Ada beberapa bentuk relationship yang digunakan dalam use case. (Whitten dan Bentley, 2007:248): 1. Associations Associations menggambarkan interaksi antara use cases dengan aktor, yang digambarkan dengan sebuah garis dengan atau tanpa panah. 2. Extends Extends digunakan ketika fungsi dari sebuah use cases terdiri dari beberapa tahap. Dengan extends, use cases tersebut akan menghasilkan use cases baru yang memiliki fungsi khusus. Use cases dari hasil extends disebut extension use cases. 3. Includes Includes (atau Uses) digunakan ketika terdapat dua atau lebih use cases yang melakukan suatu langkah yang sama. Langkah tersebut lebih baik dipisahkan menjadi use cases berbeda yang disebut abstract use case untuk mengurangi redudancy pada use cases. Hubungan antara use cases dengan abstract use case ini disebut includes. 4. Depends On Depends On digunakan ketika terdapat hubungan saling ketergantungan antar use cases, dimana suatu use cases tidak bisa dilakukan sebelum use cases lain dilakukan. 5. Inheritance Inheritance digunakan ketika dua atau lebih aktor yang melakukan use cases bersamaan. Untuk menyederhanakan
18 rancangan diagram, diperlukan aktor abstrak. Aktor ini memiliki kegiatan yang dilakukan oleh aktor lain.
Simbol yang terdapat pada use case diagram: 1. Aktor Seseorang yang melakaukan interaksi dengan sistem. Berada di lingkungan luar sistem. 2. Uses case Kegiatan atau aktivitas yang dilakukan oleh user terhadap sistem, berada di internal sistem. 3. Boundaries Pemisah lingkungan luar dan sistem internal
2.1.3.2 Use Case Narrative Menurut Whitten dan Bentley (2007:246), use case narrative merupakan gambaran berupa kalimat mengenai suatu langkah dan mendeskripsikan bagaimana pengguna berinteraksi dengan sistem untuk menyelesaikan suatu perkerjaan.
2.1.3.3 Activity Diagram Menurut Whitten dan Bentley (2007:382), activity diagram adalah diagram yang menggambarkan alur kerja dari sebuah use case atau business process secara sekuensial.
19
Gambar 2.3 Contoh Activity Diagram
Elemen – elemen yang terdapat didalam activity diagram, Whitten dan Bentley (2007:391). 1. Initial node Initial node digambarkan dengan simbol lingkaran penuh yang menandakan bahwa suatu proses atau kegiatan dimulai. 2. Actions Actions digambarkan seperti kapsul yang menunjukkan tahapan dari proses atau kegiatan yang akan dilakukan.
20 3. Flow Flow digambarkan dengan bentuk panah dengan ujung penuh yang bertujuan untuk menunjukkan alur proses atau kegiatan yang dilakukan. 4. Decision Decision digambarkan dengan bentuk diamon yang digunakan apabila terdapat pilihan proses atau kegiatan lebih dari satu. 5. Merge Merge digambarkan berbentuk berlian dengan dua atau lebih alur masuk dan satu alur keluar bertujuan untuk menggabungkan alur yang sebelumnya dipisahkan oleh decision. 6. Fork Fork digambarkan dengan bentuk papan hitam dengan satu alur masuk dan diakhiri dengan dua atau lebih alur keluar yang menunjukan bahwa terdapat dua atau lebih aksi yang dapat terjadi secara bersamaan. 7. Join Join digambarkan dengan bentuk papan hitam dengan dua atau lebih alur masuk dan diakhiri dengan satu alur keluar yang menunjukkan bahwa semua alur masuk harus diselesaikan terlebih dahulu agar proses selanjutnya dapat dijalankan. 8. Activity final Activity final digambarkan seperti lingkaran penuh yang dilapisi dengan lingkaran kosong yang menunjukkan bahwa suatu proses atau kegiatan telah berakhir.
2.1.3.4 Sequence Diagram Menurut Whitten dan Bentley (2007:382), sequence diagram adalah
diagram
yang
menggambarkan
bagaimana
objek
berinterkasi satu sama lain dari pesan yang dieksekusi dari sebuah use case atau operasi. Hal ini memberikan gambaran bagaimana pesan dikirim dan diterima antar objek.
21
Gambar 2.4 Contoh Sequence Diagram
22 Elemen – elemen yang terdapat didalam sequence diagram, Whitten dan Bentley (2007:394). 1. Aktor Aktor merupakan seseorang yang melakukan interaksi pada use case. 2. System System digambarkan dengan kotak yang menunjukkan sistem secara keseluruhan. 3. Lifelines Lifelines merupakan garis vertikal putus – putus memanjang kebawah dari actor dan system, yang menunjukkan proses sedang berjalan (hidup) dari sequence. 4. Activation bars Activation bars merupakan alur yang menunjukkan periode waktu ketika suatu proses berjalan didalam sequence. 5. Input messages Input messages merupakan garis horizontal dari actor ke system yang menujukkan input yang dilakukan user. 6. Output messages Output messages merupakan garis horizontal putus – putus dari system untuk actor yang menunjukkan umpan balik yang diberikan oleh sistem.
2.1.3.5 Class Diagram Menurut Whitten dan Bentley (2007:382), class diagram adalah diagram yang menggambarkan struktur objek dari sistem dan juga menunjukkan kelas-kelas objek yang terdapat didalam sistem mimiliki hubungan antar kelas objek.
23
Gambar 2.5 Contoh Class Diagram
Notasi - notasi yang terdapat didalam class diagram adalah sebagai berikut: 1. Class Class digambarkan dengan bentuk kotak. Class dibagi pada 3 (tiga) bagian yaitu: bagian atas merupakan nama class, bagian tengah merupakan atribut yang terdapat didalam class, bagian bawah merupakan method yang digunakan didalam class. 2. Association Association digambarkan dengan garis yang menghubunkan
24 antar class sehingga class yang terdapat pada diagram bisa saling berinteaksi. 3. Compotition Compotition digambarkan berbentuk berlian dengan warna hitam yang digunakan apabila terdapat class yang merupakan bagian dari class lain dan class tersebut tidak dapat berdiri sendiri, maka class tersebut memiliki hubungan compotition terhadap class tempat dia bergantung. 4. Aggregation Aggregation digambarkan berbentuk berlian warna putih. Ini menggambarkan bahwa class tersebut bisa berdiri sendiri walaupun class tersebut merupakan bagian dari class lain. 5. Visibility Visibility merupakan atribut atau method pada class diagram yang bisa diakses oleh suatu class. Dalam teori mengenail UML, terdapat 3 (tiga) jenis visibility, yaitu: 1. Public Public merupakan atribut atau method pada sebuah class yang bisa diakses atau digunakan oleh class lain. Visibility jenis ini digambarkan dengan simbol (+). 2. Protected Protected merupakan atribut atau method pada sebuah class yang hanya bisa diakses atau digunakan oleh class itu sendiri dan subclassnya. Visibility jenis ini digambarkan dengan simbol (-). 3. Private Private merupakan atribut atau method yang hanya boleh diakses atau digunakan oleh class itu sendiri. Private digambarkan dengan simbol (#).
2.1.4 Interaksi Manusia dan Komputer Menurut Shneiderman dan Plaisant (2010:22), Interaksi Manusia dan Komputer (IMK) adalah disiplin ilmu yang berhubungan dengan
25 pembuatan, evaluasi dan implementasi sistem komputer yang interaktif, sehingga memungkinkan user untuk berkomunikasi dengan komputer. Tujuan dari IMK adalah untuk memberikan sebuah antarmuka pemakai (user interface) yang sesuai dengan kebutuhan user. Sedangkan, user interface merupakan bagian dari sistem komputer yang bisa berinteraksi dengan user. 2.1.4.1 Eight Golden Rules Perancangan User Interface dalam suatu aplikasi sangatlah penting, untuk meningkatkan kegunaan dari aplikasi tersebut. Menurut Shneiderman (2010:88-89) terdapat delapan aturan emas yang dapat digunakan sebagai petunjuk dasar yang baik untuk merancang suatu user interface. Delapan aturan ini disebut dengan Eight Golden Rules of Interface Design, yaitu:
1. Mempertahankan konsistensi Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah yang digunakan pada prompt, menu, serta layar bantuan. 2. Menyediakan penggunaan yang universal Kebutuhan user harus bisa dibedakan. Pemula atau ahli, rentang umur dan ragam teknologi. Menambahkan fitur untuk pemula, seperti panduan penggunaan aplikasi sedangkan kebutuhan
dari
pengguna
yang
sudah
ahli
untuk
meningkatkan kecepatan interaksi diperlukan singkatan, tombol fungsi dan perintah tersembunyi 3. Memberikan umpan balik yang informatif Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan balik. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Tetapi ketika tindakan merupakan hal yang penting, maka umpan balik sebaiknya lebih substansial. Misalnya muncul suatu suara ketika salah menekan tombol pada waktu input data atau muncul pesan kesalahannya. 4. Merancang kotak dialog penutup
26 Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan meberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya. 5. Memberikan penanganan kesalahan yang sederhana Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat melakukan kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme yang sedehana dan mudah dipahami untuk penanganan kesalahan. 6. Mudah kembali ketindakan sebelumnya Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan;
sehingga
mengekplorasi
pengguna
pilihan-pilihan
lain
tidak yang
takut
untuk
belum
biasa
digunakan. 7. Mendukung pusat kendali internal (internal locus of control) Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna dari pada pengguna merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna menjadi inisiator dari pada responden. 8. Mengurangi beban ingatan jangka pendek. Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta diberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan tindakan. 2.1.4.2 Lima Faktor Manusia Terukur Menurut Shneiderman (2010:23) terdapat lima faktor manusia terukur yang perlu diperhatikan ketika melakukan perancangan user interface, yaitu: 1. Time to Learn
27 Faktor yang digunakan untuk mengukur jumlah waktu yang dibutuhkan pengguna untuk mempelajari langkah – langkah kegiatan
yang
perlu
dipelajari
untuk
melakukan
atau
melaksanakan suatu tugas.
2. Speed of Perfomance Faktor yang digunakan untuk mengukur waktu yang diperlukan pengguna untuk menyelesaikan suatu tugas. 3. Rate of Error by Users Faktor yang digunakan untuk mengukur jumlah kesalahan dan jenis kesalahan yang dilakukan oleh pengguna dalam melakukan suatu tugas. 4. Retention Over Time Faktor yang digunakan untuk mengukur seberapa besar kemampuan pengguna untuk mengingat semua pengetahuan dan informasi setelah beberapa jam penggunaan aplikasi. 5. Subjective Satisfaction
Faktor yang digunakan untuk mengukur tingkat kepuasan pengguna dalam menggunakan aplikasi baik dari segi penggunaan, tampilan aplikasi dan hal lainya.
28
2.2 Teori Khusus 2.2.1 Android Berikut teori terkait mengenai pengertian Android, versi Android, keunggulan Android, jenis aplikasi Android, komponen aplikasi pada Android dan arsitektur Android 2.2.1.1 Pengertian Android Menurut Darcey dan Conder (2012), Android adalah sebuah mobile platform pertama yang lengkap, open source dan gratis yang dikembangkan dengan menggunakan Software Development Kit (SDK) yang comprehensive dengan tools yang cukup untuk mengembangkan aplikasi yang powerfull dan kaya akan fitur. Menurut
Gargenta
(2011),
Android
adalah
sebuah
comprehensive open-soure platform yang didesain untuk perangkat mobile. Comprehensive platform disini adalah setumpuk lengkap perangkat lunakyang dipakai pada perangkat mobile. Android dipelopori oleh Google dan dimiliki oleh Open Handset Alliance. Android
merupakan
platform
open
source
pertama
yang
memisahkan perangkat keras dan perangkat lunak yang berjalan. Menurut Meier (2011), Android merupakan gabungan dari 3 (tiga) komponen, yaitu: 1. Sebuah sistem operasi yang open source untuk perangkat mobile. 2. Sebuah platform pengembangan yang open source untuk membuat aplikasi mobile. 3. Perangkat, terutama mobile phone, yang menjalankan sistem operasi Android dan aplikasi yang dibuat di sistem operasi itu.
29 2.2.1.2 Versi Android Android mengalami perkembangan setiap saat, yang dapat dilihat dari jumlah versi Android yang telah dikeluarkan oleh Google, dimana terletak perbedaan antara versi yang satu dengan versi lainya.
Tabel 2-1 Versi Android dan Distribusi Android (Sumber: www.developer.android.com)
Dari tabel diatas bisa dilihat, bahwa perangkat mobile yang menggunakan beberapa versi dari sistem operasi Android yang mengaskses Google Play selama 7 hari terakhir tertanggal 9 September
2014
didominasi
oleh
perangkat
mobile
yang
menggunakan sistem operasi android versi 4.1.x (Jelly Bean). Perubahan versi dilakukan ketika API mengalami perubahan dan ketika ada perbaikan kesalahan pada versi sebelumnya serta ada penambahan fitur baru.
30 2.2.1.3 Keunggulan Android Menurut Meier (2011), ada beberapa keunggulan dan fiturfitur yang unik yang ada di Android, yaitu: 1. Google Maps Google Maps merupakan aplikasi yang terdapat pada sistem operasi Android pada mobile yang sangat populer dan Google Maps bisa diimplementasikan pada aplikasi lain. 2. Background process and applications Background service memungkin developer untuk membuat sebuah aplikasi yang melakukan sebuah event. Dimana event tersebut berjalan dibelakang tanpa terlihat ketika aplikasi lain dijalankan. 3. Sharing data and interprocess communication (IPC) Dengan
menggunakan
content
provider,
memungkinkan
Android untuk bertukar pesan, melakukan pengolahan dan berbagi data. 4. Semua aplikasi sama Android tidak membedakan aplikasi buatan asli maupun aplikasi yang dikembangkan oleh pihak ketiga (third parties).
2.2.1.4 Jenis Aplikasi Android Menurut Meier (2011), sebagian besar aplikasi yang buat dalam Android akan termasuk dalam salah satu kategori berikut: 1. Foreground Aplikasi yang hanya berjalan ketika ada pada foreground dan tidak efektif ketika tidak terlihat. Contoh aplikasi games. 2. Background Aplikasi yang memiliki kegiatan atau inetarksi yang terbatas, kecuali ketika di konfigurasi. Sebagian besar waktu aplikasi ini berjalan tersembunyi. Contoh aplikasi Short Message Service (SMS) auto responder. 3. Intermittent
31 Aplikasi
yang
dapat
berjalan
di
foreground
maupun
background, namun aplikasi ini sering dijalankan secara tersembunyi (background) dan memberitahu pengguna dissat yang tepat. Contoh aplikasi media player. 4. Widget Aplikasi yang dibuat yang fungsinya hanya ditampilkan sebagai widget pada home screen.
2.2.1.5 Komponen Aplikasi pada Android Menurut Helal et al. (2012), terdapat empat jenis komponen dalam aplikasi Android yaitu sebagai berikut: 1. Activty Sebuah activity mewakili tampilan pada sebuah user interface aplikasi yang didefinisikan oleh activity class. 2. Service Service berjalan secara tersembunyi untuk melakukan operasi yang berjalan lama atau menjalankan fungsi yang tidak harus langsung berinteraksi dengan user. Komponen ini berjalan di balik layar (background) dan tidak memiliki user interface. 3. Content Provider Content provider merupakan tempat untuk menyimpan dan membagikan data dengan aplikasi lain yang didefinisikan oleh Content Provider class dan interaksinya dijalankan oleh Content Resolver interface 4. Broadcast Receiver Broadcast receiver didefinisikan oleh broadcast receiver class dan bertugas untuk merespon seluruh pengumuman sistem siaran. 2.2.1.6 Arsitektur Android Berikut merupakan gambaran dari arsitektur Android yang terdiri dari komponen-komponen utama dari sistem operasi Android yang dibagi menjadi beberapa bagian (layer).
32
Gambar 2.6 Arsitektur Android
2.2.1.6.1 Linux Kernel Gambar berikut merupakan arsitektur Android yang terdiri dari komponen-komponen utama dari sistem operasi Android yang dibagi menjadi beberapa bagian (layer). 2.2.1.6.2 Libraries Berjalan di atas dari komponen Kernel. Android memasukkan berbagai library inti dari C / C++ termasuk libc dan SSL, serta: 1. Media library untuk memutar kembali media audio dan vodeo. 2. Surface manager untuk menyediakan pengaturan tampilan. 3. Graphic libraries yang mencakup SGL dan OpenGL untuk 2D dan 3D graphics. 4. SQLite untuk dukungan pada database aslinya.
33 5. SSL dan Webkit untuk integrasi web browser dan sekuritas internet. 2.2.1.6.3 Android Run Time Merupakan engine yang berfungsi untuk menjalankan aplikasi Android dan bersama dengan libraries. Pada komponen ini, terdapat dua komponen, yaitu: 1.Core libraries Core Libraries atau Android libraries menyediakan sebagian besar fungsi yang tersedia dalam inti Java libraries serta spesifik Android libraries. 2.Dalvik virtual machine Dalvik virtual machine adalah sebuah register-based virtual machine yang telah dioptimalisasi untuk memastikan bahwa sebuah perangkat dapat jalan di berbagai instance secara efisien. 2.2.1.6.4 Application Framework Menyediakan class - class yang digunakan untuk membuat
aplikasi
Android.
Komponen
ini
juga
menyediakan abstraksi umum untuk akses perangkat keras dan mengelola user interface dan sumber aplikasi. 2.2.1.6.5 Application Layer Semua aplikasi, yang asli maupun third - party dibuat di application layer dengan menggunakan library API yang sama.Application layer ini jalan di dalam Android run time dengan menggunakan class-class dan service yang dibuat dari application framework.
2.2.2 Eclipse Menurut Deitel (2012), Eclipse merupakan Integrated Development Environment (IDE) yang menyediakan tools yang mendukung proses pengembangan perangkat lunak, termasuk editor untuk menulis dan
34 mengubah program serta sebagai debugger untuk mencari kesalahankesalahan logika. Menurut Holzner (2004), Eclipse awalnya dibuat oleh anak perusahaan IBM yakni Object Technologies International (OTI) bersamasama dengan Borland, IBM, dan beberapa perusahaan lain. Eclipse yang bersifat open-source memungkinkan pengguna untuk mengembangkan, mengubah, dan mendistribusikan software. Menurut Lowy (2010), Pada saat WCF dirilis pertama kali (bagian dari .NET 3.5), WCF menyediakan fasilitas-fasilitas untuk pengembangan service seperti hosting, service instance management, asynchronous calls, transaction management, dan security. . 2.2.3 Java Menurut Schildt (2011) dalam bukunya berjudul “Java: A Beginner’s Guide, Java” merupakan bahasa pemrograman yang dikembangkan oleh James Gosling, Patrick Naughton, Chris Warth, Ed Frank, dan Mike Sheridan di Sun Microsystems pada tahun 1991. Awalnya bahasa pemrograman ini disebut “Oak”, pada tahun 1995 baru berubah nama menjadi Java. Berikut merupakan beberapa kelebihan bahasa pemrograman Java: 1. Simple Java dirancang dengan seperangkat fitur yang membuatnnya lebih mudah untuk dipelajari dan lebih mudah untuk digunakan. 2. Secure Java menyediakan sarana yang aman untuk membuat aplikasi internet. 3. Portable dan Cross Platform Program Java dapat dijalankan di environment manapun yang memiliki Java run-time system. Selain itu, Java juga menyediakan cross-platform code. 4. Object Oriented
35 Pusat dari Java adalah object-oriented programming (OOP). Ada tiga konsep dalam OOP yakni: encapsulation, polymorphism, dan inheritance. 5. Multithreaded Java
menyediakan
dukungan
terintegrasi
untuk
multithreading
programming.
2.2.4 Software Development Kit Menurut Meier (2010), Android SDK merupakan cakupan dari segalanya yang dibutuhkan untuk memulai pengembangan, pengujian, dan debugging aplikasi Android. 2.2.4.1 Android APIs Inti dari Android SDK adalah Android APIs libraries. Android APIs ini memungkinkan developer bisa mengakses Android stack. Libraries yang digunakan untuk membuat aplikasi Android sama dengan libraries yang digunakan oleh Google. 2.2.4.2 Development Tools Development tools memungkinkan developer untuk compile dan debug aplikasi Android untuk membuat source code menjadi aplikasi Android yang dapat dijalankan. 2.2.4.3 Android Virtual Device dan Emulator Android Emulator adalah sebuah emulator yang interaktif dengan menampilkan beberapa alternatif skin pada aplikasi Android. Emulatorini jalan di dalam sebuah Android virtual device yang mensimulasikan konfigurasi device perangkat keras. 2.2.4.4 Full Documentation Android SDK menyediakan informasi mengenai code yang dipakai untuk membuat sebuah aplikasi. Informasi tersebut berupa dokumentasi yang menjelaskan bagaimana memulai dalam membuat sebuah aplikasi, penjelasan detail mengenai apa yang ada di setiap package dan class pada libraries Android juga cara
36 pemakaiannya, dan memberikan penjelasan mendasar yang detail mengenai pengembangan aplikasi Android. 2.2.4.5 Sample Code Memberikan
contoh
program
yang
mendemonstrasikan
beberapa kemungkinan yang tersedia di Android, maupun program sederhana yang memberikan penjelasan bagaimana fitur API secara tersendiri. 2.2.4.6 Online Support Android telah menghasilkan komunitas developer yang berkembang sangat cepat. Oleh karena itu pengembangan aplikasi Android didukung oleh online support.
2.2.5 Android Development Tools Menurut Meier (2011), ADT adalah plug - in untuk Eclipse yang memudahkan
dalam
pengembangan
aplikasi
Android
dengan
mengintregasikan alat developer, termasuk emulator dan .clas to .dex converter, langsung kedalam Integrated Development Environment (IDE). Menggunakan ADT plug - in pada Eclipse dalam merancang aplikasi Android meruoakan cara tercepat dan sangat disarankan, karena adanya komponen – komponen yang berfungsi dalam merancang aplikasi Android yang terintegrasi dengan Eclipse. Komponen – komponen tersebut adalah: 1. Sebuah wizard untuk membuat Android project yang memudahkan dalam membuat project baru dan memasukkan template aplikasi yang dasar. 2. Forms-based manifest, layout, dan resource editors untuk membantu dalam membuat, mengubah, dan memvalidasikan Extensible Markup Language (XML) resource. 3. Automated building of Android projects, konversi menjadi aplikasi Android yang dapat dieksekusi (.dex), packaging menjadi package files (.apk), dan instalasi dari package ke Dalvik virtual machine. 4. The Android Virtual Device manager, yang memungkinkan developer untuk membuat dan manage virtual device yang dapat
37 dijalankan dengan sistem operasi Android dan memory constraint tertentu. 5. The Android Emulator, yang mencakup kontrol dari tampilan emulator dan konfigurasi koneksi jaringannya, dan kemampuan untuk mensimulasikan telepon masuk dan pesan SMS. 6. The Dalvik Debug Monitoring Service (DDMS), yang mencakup port forwarding, stack, heap, dan thread viewing, detil prosesnya, dan fasilitas screen capture. 7. Akses ke file system sebuah device atau emulator, navigasi ke tree folder dan pengiriman data. 8. Runtime debugging, sehingga dapat mengatur breakpoint dan melihat pemanggilan stack.
2.2.6 Aplikasi Edukasi Aplikasi dapat diartikan sebagai program komputer yang dibuat untuk menolong manusia dalam melaksanakan tugas tertentu. Edukasi merupakan suatu upaya pembinaan yang ditujukan pada anak – anak, dengan memberikan rangsangan pendidikan untuk membantu pertumbuhan dan perkambangan anak agar memilki keisapan dalam memasuki pendidikan tingkat lanjut.
2.2.7 Penelitian Terdahulu 2.2.7.1 iLearning: The Future of Higher Education? Student Perceptions on Learning with Mobile Tablets (Jonathan P. Rossing et all) Teknologi informasi dan komunikasi mobile seperti komputer tablet akan menonjol dalam pembelajaran dan lingkungan kelas di masa mendatang. Mobile tablet seperti iPad memberikan manfaat seperti akses tak terbatas terhadap informasi dan keuntungan dalam pembelajaran kolaboratif. Namun, perangkat-perangkat ini juga berpotensi untuk mengalihkan perhatian pelajar dan menciptakan kefrustasian di kelas. Apabila dibawakan secara hati-hati dan
38 perlahan, pengajar dapat memaksimalkan pontesi mereka untuk meningkatkan pembelajaran dan meminimalkan gangguan dalam pembelajaran. 2.2.7.2 Using Mobile Device for Teaching Realistic Mathemathics in Kindergarten Education (Nicholas Zaranis et all) Pembelajaran dengan menggunakan perangkat mobile learning membantu pelajar untuk lebih aktif dalam belajar, serta meningkatkan inisiatif dan kesempatan untuk belajar mandiri. Penelitian menunjukkan bahwa mobile learning sangat efektif dalam meningkatkan motivasi pelajar karena hal ini memposisikan pelajar untuk mengatur apa, kapan, dan dimana mereka belajar. Dengan demikian, perangkat mobile menjadi platform yang mudah dalam menyediakan pembelajaran. 2.2.7.3 Using QR Code and Mobile Device to Foster and Inclusive Learning Environment for Mathemathics Education (Mike McCabe et all) Penelitian bertujuan menunjukkan potensi manfaat pengenalan mobile learning pada edukasi anak-anak usia dini. Dengan pelaksanaan studi sistematis, peneliti ingin mengkontribusikan dampak
positif
dari
penggunaan
perangkat
mobile
dan
ICT(teknologi informasi dan komunikasi) pada Taman Kanakkanak, tidak hanya dari komputer di kelas, tetapi juga dari teknologi yang digunakan pengajar. Yang menjadi perhatian utama adalah bagaimana memaksimalkan manfaat dari instrumen ini untuk
meningkatkan
pembelajaran.
pengalaman
ICT
anak-anak
dalam
39