BAB 2 TINJAUAN PUSTAKA
2.1 Teori – Teori Mengenai Multimedia 2.1.1 Multimedia Bagian ini akan menjelaskan beberapa teori dasar dari multimedia beserta elemen-elemen dari multimedia.
2.1.1.1
Pengertian Multimedia Multimedia merupakan kombinasi dari teks, audio, gambar, animasi, video, dan interaksi (Zeembry, 2008). Menurut Mao Neo dan Ken T.K Neo yang dikutip oleh Sumarno (2011) multimedia dipadukan dalam aplikasi atau presentasi interaktif multisensory untuk menyampaikan suatu pesan atau informasi kepada pengguna. Multimedia
sudah
banyak
diterapkan
dalam
dunia
teknologi, perfilman, periklanan, pendidikan, bisnis, militer, desain, arsitektur, dan lainnya (Wahono, 2007). Contoh penerapan multimedia pada teknologi adalah game, e-learning, kios informasi, kedokteran, dan lainnya. Multimedia sendiri terbagi menjadi 2 (dua) jenis, yaitu: multimedia linear dan multimedia interaktif. Multimedia linear adalah jenis multimedia dimana tidak terjadi interaksi antara pengguna dan alat multimedia. Contoh dari multimedia linear seperti film, video dan siaran televisi. Sedangkan multimedia interaktif adalah jenis multimedia dimana pengguna bisa berinteraksi secara dua arah dengan alat multimedia dengan menggunakan perangkat. Contohnya seperti aplikasi game dan virtual reality. (Sigit, Bambang dan Joko, 2008)
11
12
2.1.1.2
Elemen-elemen Multimedia Berdasarkan
pendapat
Vaughan
(2011:1),
elemen
multimedia terdiri dari teks, grafik, audio (suara dan musik), video dan animasi. 1. Teks Teks sudah digunakan untuk kepentingan komunikasi sejak 6000 tahun yang lalu. Teks memegang peranan penting dalam penyampaian pesan dalam sebuah aplikasi multimedia, karena
teks
menjadi
salah
satu
cara
efektif
untuk
menyampaikan informasi dan petunjuk kepada pengguna. Jenis-jenis teks terdiri dari printed text, scanned text, electronic text dan hypertext. 2. Grafik Grafik sangat berguna untuk menjelaskan informasi yang tidak dapat dijelaskan oleh kata-kata. Seperti terdapat kalimat yang mengatakan sebuah gambar dapat mewakili seribu kata, maka grafik juga tidak kalah penting dalam sebuah aplikasi
multimedia.
Terkadang
sebuah
grafik
juga
menyertakan beberapa teks di dalamnya agar informasi yang disampaikan lebih jelas. Umumnya, grafik yang tersimpan dalam komputer tersimpan dalam formatnya tersendiri yang dikompres untuk menghemat memori dan kapasitas data, seperti
Graphics
Interchange
Format
(GIF),
Joint
Photographic Experts Group (JPEG), Portable Network Graphics (PNG) dan lainnya. Jenis-jenis dari grafik terdiri dari bitmaps, vector, clip art, digitized picture, dan lainnya. 3. Audio Sebuah aplikasi multimedia akan kurang menarik bila tidak ada audio di dalamnya. Bagaimana kita menggunakan sebuah sound akan menunjukkan perbedaan yang jelas di dalam sebuah aplikasi multimedia. Oleh sebab itu, jika salah menggunakan audio dalam sebuah proyek, maka akan memberikan efek yang buruk pada keseluruhan proyek. (Vaughan, 2011:104).
13
4. Video Video adalah kumpulan gambar-gambar yang bergerak yang direkam oleh kamera, camcorder dan sejenisnya. Dalam sebuah
aplikasi
multimedia,
pesan
dan
cerita
akan
tersampaikan dengan baik dengan adanya video. Video menyampaikan apa yang tidak bisa dijelaskan oleh teks dan grafik. Pengguna cenderung dapat menangkap apa yang mereka lihat melalui video. Namun, bila video tersebut tidak dapat menyampaikan pesan secara jelas dan maksimal, maka itu akan membawa dampak buruk bagi sebuah aplikasi multimedia. (Vaughan, 2011:164-165) 5. Animasi Animasi adalah gerakan gambar yang dihasilkan oleh deretan frame. Animasi dapat membuat sebuah aplikasi multimedia menjadi lebih hidup. Animasi yang sederhana terdapat pada 2D. Kemudian animasi tingkat menengah terdapat pada dua setengah dimensi (2½-D) yang memberikan kesan efek bayangan, cahaya dan perspektif. Dan animasi yang paling mendekati nyata adalah animasi tiga dimensi (3D), dimana perhitungan sumbunya menggunakan sumbu X, Y dan Z.
2.1.1.3
Storyboard Menurut Vaughan (2011:295) storyboard digunakan dalam merancang rincian-rincian dalam sebuah proyek multimedia. Setiap rincian seperti gambar, suara, pilihan navigasi, teks hingga pewarnaan
dan
bayangan
dirincikan
dalam
storyboard.
Berdasarkan pendapat Vaughan (2011:296) dalam storyboard terdapat 4 jenis navigasi, yaitu linear navigation, hierarchical navigation, nonlinear navigation, dan composite navigation. 1. Linear Navigation Storyboard yang berjalan secara berurut dari frame pertama ke frame berikutnya.
14
2. Hierarchical Navigation Storyboard yang memiliki cabang sehingga pengguna dapat mengakses ke jalur yang berlainan sesuai dengan alur yang ditetapkan. 3. Nonlinear navigation Storyboard yang memiliki alur tidak berurutan sehingga dapat diakses secara bebas sesuai keinginan penggunanya. 4. Composite navigation Merupakan gabungan dari storyboard hierarchical dan nonlinear. Pengguna dapat mengakses secara nonlinear dalam storyboard tersebut namun tetap dalam batasan yang telah ditentukan.
2.2 Teori – Teori Tematik Pada teori tematik akan dibahas mengenai teori – teori dasar yang digunakan dalam pengembangan aplikasi game ini. 2.2.1 Metode Agile Menurut Pressman (2010:68), metode agile merupakan sebuah metode dalam proses pengembangan aplikasi yang dapat menerima perubahan dan mengubahnya dalam waktu yang singkat. Metode agile mampu menyesuaikan terhadap perubahan – perubahan requirement yang terjadi pada saat proses pengembangan aplikasi. Di antara semua metode agile, Extreme Programming (XP) merupakan metode yang paling sering digunakan pada saat pengembangan aplikasi. 2.2.1.1
Extreme Programming Menurut Pressman (2010:72-73) terdapat 5 (lima) nilai yang menjadi dasar dari metode Extreme Programming, antara lain: 1. Komunikasi (Communication) Agar hubungan komunikasi antara pihak pengembang aplikasi dan pengguna dapat berjalan secara efektif, maka dalam metode Extreme Programming menyarankan adanya kolaborasi yang baik antara pengembang aplikasi dengan pengguna, sehingga menghasilkan sebuah komunikasi yang
15
efektif
dalam
menyampikan
konsep
penting
dalam
pengembangan aplikasi serta umpan balik secara terus menerus. 2. Kesederhanaan (Simplicity) Agar kesederhanaan dapat tercapai, XP membatasi pengembang aplikasi untuk mengembangkan kebutuhan yang mendesak dibandingkan dengan kebutuhan yang diperlukan pada waktu mendatang. Hal tersebut bertujuan untuk membuat sebuah rancangan sederhana yang dapat diimplementasikan secara mudah dalam kode. Bila terjadi perubahan pada design, dapat dilakukan dengan melakukan refactoring pada waktu mendatang. 3. Umpan Balik (Feedback) Umpan balik dalam Extreme Programming diperoleh dari 3 (tiga) sumber, yaitu software itu sendiri, pengguna dan anggota tim pengembangan software lainnya. Umpan balik tersebut berupa output, fungsi dan karakteristik dari use case. 4. Dorongan (Courage) Extreme
Programming
dalam
pelaksanaannya
menuntut pada dorongan atau disiplin untuk lebih tepatnya. Sebuah tim harus mempunyai kedisiplinan untuk merancang kebutuhan pada saat ini, dengan mengetahui bahwa perubahan yang akan datang dapat berubah tanpa terduga yang meyebabkan kemungkinan perubahan rancangan dan implementasi pada kode. 5. Saling Menghargai (Respect) Dengan memegang prinsip – prinsip yang telah disebutkan, maka tim dapat menanamkan rasa saling menghargai di antara anggota tim, stakeholder ataupun kepada software itu sendiri. Menurut pendapat Pressman (2010:73-77), Extreme Programming menggunakan pendekatan object-oriented yang
16
meliputi serangkaian aturan. Extreme Programming terdiri dari 4 (empat) buah kerangka kerja, antara lain: 1. Planning Pada tahapan ini, semua orang yang terlibat dalam pengembangan aplikasi berdiskusi mengenai output, fitur dan fungsionalitas hasil aplikasi yang akan dikembangkan. Hasil dari diskusi akan menghasilkan user stories yang merupakan gambaran kebutuhan user. 2. Design Tahapan design pada metode Extreme Programming mengikuti aturan keep it simple (KIS). Rancangan yang sederhana lebih diutamakan daripada rancangan yang kompleks. Dalam metode XP juga menyarankan penggunaan CRC cards sebagai mekanisme yang efektif dalam konteks perancangan berorientasi objek. Untuk perancangan yang rumit, XP menyarankan penggunaan Spike Solution. Tujuannya
adalah
untuk
mengurangi
resiko
ketika
implementasi aplikasi yang sebenarnya dilakukan serta melakukan validasi terhadap estimasi awal untuk story yang berisi masalah rancangan. XP juga menyarankan refactoring yang merupakan penyederhanaan pada struktur kode tanpa mengubah fungsionalitas pada kode tersebut. 3. Coding Pada tahapan ini para pengembang aplikasi harus terlebih dahulu membuat serangkaian unit test yang akan menguji
setiap
pendapat
dan
apa
yang
harus
diimplementasikan agar dapat melewati proses testing. Pada tahap
ini
juga
dilakukan
pair
programming.
XP
menyarankan bahwa dua orang bekerja sama untuk melakukan penulisan kode dalam pengembangan aplikasi. Setiap orang memegang peranan yang berbeda, dimana salah satu orang akan memikirkan tentang rincian coding yang akan diterapkan sesuai dengan rancangan yang ada,
17
sedangkan yang lainnya memastikan penulisan kode akan memenuhi
persyaratan
pada
unit
test
yang
telah
dikembangkan untuk melakukan validasi antara kode dan story yang dibuat. 4. Testing Dalam testing akan dilakukan pengujian kode pada serangkaian unit testing. Pada tahap ini juga terdapat acceptance test atau dapat disebut juga dengan customer test yang dilakukan oleh pengguna aplikasi untuk melihat keseluruhan fitur dan fungsionalitas dari aplikasi yang telah dikembangkan. Acceptance test diperoleh dari user stories yang telah diimplementasikan.
Gambar 2.1 Proses Extreme Programming (Sumber: Software Engineering A Practitioner’s Approach – Pressman, 2010:74)
2.2.2 Game Pada bagian ini akan dibahas teori mengenai pengertian game, game genre, dan game balancing. 2.2.2.1
Pengertian Game Manusia bermain game untuk menghibur diri. Menurut Adams (2010:3) game adalah kegiatan bermain dalam realitas yang dibuat-buat, dimana peserta ingin mencapai sebuah tujuan dengan
18
dibatasi oleh aturan-aturan. Dari definisi tersebut maka dapat disimpulkan bahwa game memiliki beberapa elemen. Elemen tersebut adalah play, pretending, goals dan rules. Play atau bermain adalah sebuah bentuk partisipasi dari hiburan. Pretending atau berpura-pura adalah membuat realitas khayalan dalam pikiran. Dalam game juga dibutuhkan tujuan yang harus dicapai oleh peserta. Karena tanpa tujuan yang jelas, maka peserta tidak tahu apa yang harus dilakukan. Pada game juga harus ada aturan-aturan yang membatasi aksi yang dilakukan oleh peserta. Aturan pada game biasanya disesuaikan dengan keadaan pada dunia nyata. Misalnya, ketika jatuh dari ketinggian maka akan terasa sakit.
2.2.2.2
Game Genre Menurut Adams (2010:70-71) terdapat beberapa jenis game genre, yaitu: 1. Action Game Action Game adalah game dimana tantangan di dalamnya membutuhkan keterampilan fisik dan koordinasi pemain. Pada action game biasanya pemain diharapkan untuk memiliki respons yang cepat. 2. Strategy Game Strategy game adalah game dimana tantangan di dalamnya merupakan konflik strategis yang membuat pemain harus
memiliki
planning
yang
baik
untuk
mencapai
kemenangan. Pada strategy game biasanya pemain akan menemukan banyak pilihan yang harus dibuat untuk membuat sebuah strategi yang baik. Pemain juga diharapkan dapat mengolah sumber daya yang disediakan dengan baik. 3. Role-playing Game Role-playing game adalah game dimana pemain mengendalikan sebuah karakter atau lebih dengan memandu karakter tersebut untuk menyelesaikan serangkaian cerita. Pengembangan karakter menjadi pusat dari game.
19
4. Sports Game Sports game adalah simulasi dari olahraga atletik nyata ataupun imajiner baik dalam bentuk pertandingan, ataupun kerjasama tim. 5. Vehicle Simulation Game Vehicle Simulation adalah game yang memberikan kesan mengendarai kendaraan darat, udara, maupun air. Game ini meliputi perlombaan dengan pemain lain, eksplorasi, atau hanya simulasi mengendarai kendaraan.
6. Construction and Management Simulation Game Construction and Management Simulation Game adalah game yang menekankan pada tantangan perkembangan ekonomi. Pemain diharapkan dapat mengelola keuangan dan sumber daya untuk mengembangkan sebuah kota, kebun binatang, atau tempat lainnya. 7. Adventure Game Adventure game adalah game yang memberikan cerita interaktif tentang sebuah karakter yang dimainkan oleh pemain. Cerita dan eksplorasi adalah bagian penting pada game. 8. Artificial Life Game Artificial life game adalah game dimana pemain akan memainkan siklus kehidupan makhluk hidup seperti manusia, hewan, ataupun tumbuhan. Pada game ini pemain diminta untuk memenuhi kebutuhan makhluk hidup dalam game untuk menjalani kehidupannya. 9. Puzzle Game Puzzle game adalah game yang memberikan tantangan kepada pemain untuk menyelesaikan serangkaian teka-teki yang membutuhkan logika pemain untuk menyelesaikannya. Puzzle game sering ditemui pada genre lain. Misalnya, pada game adventure dimana pemain harus mencari jalan keluar dari sebuah tempat.
20
2.2.2.3
Game Balancing Menurut
Schell
(2008:172-200)
terdapat
12
tipe
keseimbangan pada game: 1. Fairness Game harus adil bagi setiap pemain. Setiap pemain harus diberikan kesempatan yang sama. Keadilan pada game dibagi pada 2 tipe game yaitu game simetris dan game asimetris. a. Symmetrical Jika game termasuk tipe simetris maka keadilan pada game ini sederhana yaitu setiap pemain diberikan kekuatan dan sumber daya yang sama. b. Asymmetrical Pada game yang asimetris maka pemain dapat diberikan kemampuan yang berbeda tetapi tetap seimbang. Setiap kemampuan memiliki kelebihan dan kekurangan masing-masing. 2. Challenge vs. Success Pada game sebaiknya diberikan tingkatan tantangan yang berbeda. Setiap keberhasilan yang dicapai pemain maka tantangan yang diberikan akan semakin sulit, sehingga pemain tidak bosan. 3. Meaningful Choice Pada game sebaiknya pilihan yang diberikan harus memiliki arti. Misalnya pilihan dengan resiko rendah akan memberikan hadiah yang rendah juga, sedangkan pilihan dengan resiko tinggi akan memberikan hadiah yang besar. 4. Skill vs. Chance Pada game sebaiknya pemain diberikan kesempatan untuk mengembangkan diri melalui keterampilan ataupun kesempatan. Keterampilan misalnya pemain menyusun strategi. Kesempatan misalnya pemain mendapatkan sesuatu secara acak sehingga memberikan kesan yang tidak terduga.
21
5. Head vs. Hands Pada game harus seimbang antara aktivitas fisik dengan aktivitas pikiran. Pemain harus dapat beraksi dengan cepat tetapi juga membutuhkan strategi untuk pemecahan masalah. 6. Competition vs. Cooperation Keseimbangan antara kompetisi dan kerjasama pada game juga penting. Pemain dapat bekerja sama dengan pemain lain ataupun berkompetisi dengan pemain lain. 7. Long vs. Short Durasi dari game juga harus seimbang. Game sebaiknya tidak membuat pemain merasa bahwa game tersebut terlalu sebentar untuk dimainkan, ataupun pemain menjadi bosan karena merasa game terlalu lama. 8. Rewards Pada game hadiah yang diberikan kepada pemain juga harus seimbang. Semakin sulit tantangan maka semakin besar hadiah yang diberikan kepada pemain. 9. Punishment Pada game juga dibutuhkan hukuman jika pemain melakukan sesuatu yang salah. Sehingga pemain dapat berhatihati untuk tidak melakukan kesalahan lagi. Hukuman yang diberikan jangan terlalu berat bagi pemain. 10. Freedom vs. Controlled Experience Berikan pemain kebebasan untuk bermain tetapi juga diarahkan sesuai dengan rules yang ada. Dengan kebebasan bermain,
pemain
akan
mendapatkan
pengalaman
yang
menyenangkan. 11. Simple vs. Complex Beberapa bagian pada game haruslah simple sehingga mudah dimengerti oleh pemain. Tetapi juga berikan beberapa bagian yang kompleks sehingga pemain tidak bosan. Tetapi jangan terlalu kompleks sehingga membuat pemain bingung.
22
12. Detail vs. Imagination Game harus terdapat bagian yang rinci seperti dunia nyata,
tetapi
juga
harus
terdapat
bagian
yang
dapat
mengundang pemain unuk berimajinasi. Hal rinci pada game misalnya jika karakter pada game terluka maka karakter akan berdarah.
2.2.3 Interaksi Manusia dan Komputer Pada pengembangan sebuah antarmuka, didasarkan pada delapan aturan emas dan lima faktor manusia terukur agar antarmuka aplikasi dapat dengan mudah digunakan oleh pengguna. 2.2.3.1
Delapan Aturan Emas Menurut Shneiderman dan Plaisant (2010:88-89), dalam sebuah antarmuka harus memenuhi delapan aturan emas, antara lain: 1. Strive for consistency Antarmuka harus dibuat konsisten, biasanya dilihat konsisten pada tombol, pesan error atau berhasil, dialog konfirm, dialog help. Tujuannya adalah pengguna tidak perlu mempelajari kembali setiap tampilan yang dilihat. 2. Cater to universal usability Setiap rancangan yang dihasilkan harus fleksibel dan dapat digunakan oleh semua jenis pengguna. Beberapa faktor yang harus dipertimbangkan, seperti tingkat penguasaan, umur, ketidakmampuan
(cacat
fisik
dan
mental),
perbedaan
kecanggihan teknologi. Dengan menambahkan fitur untuk pemula, seperti penjelasan atau tutorial, dan fitur untuk para pengguna ahli, seperti shortcut untuk meningkatkan
kualitas
dari sistem antarmuka. 3. Offer informative feedback Setiap aksi yang dilakukan pengguna harus dibuat tanggapan dari sistem yang dapat berupa teks ataupun animasi. Syarat ini berguna untuk memperkecil kebingungan pengguna atas hasil dari input.
23
4. Design dialog to yield closure Dalam setiap urutan aksi harus dikelompokan menjadi awal, tengah, dan akhir. Urutan aksi harus dibuat akhir sehingga pengguna dapat dengan mudah mengetahui hasil dari input, disamping itu akhir dari urutan aksi tersebut dapat menjadi jembatan untuk melanjutkan aksi berikutnya. 5. Prevent errors Rancangan sistem harus dirancang agar kesalahan yang dilakukan oleh pengguna tidak fatal. Dan apabila pengguna melakukan kesalahan yang menyebabkan error, sistem antarmuka
harus
bisa
memunculkan
dan
menawarkan
pertolongan yang singkat, padat dan jelas untuk menolong pengguna keluar dari kesalahan tersebut. 6. Permit easy reversal of action Program mendukung pengguna untuk mengulang aksi apabila pengguna melakukan kesalahan. Fitur ini tidak diperlukan jika pengguna sudah mengetahui bahwa aksi yang sedang dilakukan tidak dapat diulang. 7. Support internal locus of control Pengguna menjadi operator yang kuat dan dapat mengendalikan seluruh aplikasi. Input user pada aplikasi menjadi inisiasi aksi lainnya, tidak hanya menghasilkan respon aplikasi saja. 8. Reduce short-term memory load Memberikan tampilan yang simple dan terintegrasi antar setiap tampilan. Urutan aksi menjadi kunci dalam pengintegrasian tampilan program.
2.2.3.2
Lima Faktor Manusia Terukur Mengacu pada pendapat Shneiderman dan Plaisant (2010:32) ada 5 (lima) faktor manusia terukur, antara lain:
24
1. Time to Learn Jumlah waktu yang diperlukan pengguna untuk mempelajari apa saja yang perlu dipelajari untuk melaksanakan atau menyelesaikan tugas mereka. 2. Speed of Performance Waktu yang diperlukan untuk menyelesaikan suatu tugas atau pekerjaan. 3. Rate of Error by Users Jumlah kesalahan dan kesalahan jenis apa yang dilakukan oleh pengguna. Dan jumlah tugas yang berhasil diselesaikan oleh pengguna. 4. Rentention Over Time Seberapa baik kemampuan pengguna untuk mengingat semua pengetahuan dan keterampilan setelah beberapa jangka waktu tertentu. 5. Subjective Satisfaction Besar kepuasan pengguna terhadap sistem yang ada, baik dari aspek penggunaan, desain, dan lainnya.
2.2.4 Android 2.2.4.1
Pengertian Android Android adalah sebuah software toolkit untuk perangkat mobile, yang dirancang oleh Google dan Open Handset Alliance (Burnette, 2009). Kini, Android sudah digunakan di dalam jutaan perangkat mobile, yang membuat Android menjadi wadah utama untuk para pengembang aplikasi. Android juga merupakan sebuah sistem operasi mobile versi modifikasi dari Linux (Lee, 2012:2). Android telah mengalami banyak update dan perbaikan sejak peluncuran pertama pada tahun 2009. Berikut ini adalah tabel versi Android sejak pertama diluncurkan hingga sekarang menurut Lee (2011).
25
Tabel 2.1 Tabel versi Android (Sumber: Beginning Android 4 Application Development – Wei-Meng Lee, 2011:3)
Versi Android
Tanggal
Nama Kode
Peluncuran
1.1
9 Februari 2009
1.5
30 April 2009
Cupcake
1.6
15 September 2009
Donut
2.0/2.1
26 Oktober 2009
Éclair
2.2
20 Mei 2010
Froyo
2.3
6 Desember 2010
Gingerbread
3.0/3.1/3.2
22 Februari 2011
Honeycomb
4.0
19 Oktober 2011
Ice Cream Sandwich
Android versi 4.1 diluncurkan pada pertengahan tahun 2012 dengan kode Jelly Bean. Sedangkan versi 4.2 diluncurkan pada akhir tahun 2012. Android versi 4.3 menjadi versi yang terbaru dari sistem operasi Android diluncurkan setahun kemudian pada Juli 2013.
2.2.4.2
Fitur-Fitur Android Karena sistem operasi Android bersifat gratis dan open source, para pengembang dan pabrik bebas untuk mengembangkan Android. Maka dari itu tidak ada ketentuan spesifikasi dari pengaturan hardware dan software. Berikut ini adalah beberapa fitur yang dapat ditemui dalam sistem operasi Android menurut Lee (2012:3): 1. Storage Untuk media penyimpanan data, Android menggunakan SQLite untuk mengatur relasi dalam database. 2. Connectivity Mendukung GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE dan WiMAX.
26
3. Messaging Android mendukung fitur SMS dan MMS. 4. Web Browser Menggunakan open source WebKit bersamaan dengan Chrome V8 JavaScript Engine. 5. Media Support Mendukung media-media seperti H.263, H.264, AAC, MP3, MP4, MIDI, WAV, JPEG, PNG, GIF dan lainnya. 6. Hardware Support Memiliki fitur sensor accelerometer, kamera, kompas digital, sensor proximity dan GPS. 7. Multi-touch Mendukung fitur layar sentuh dengan sentuhan lebih dari satu jari. 8. Multi-tasking Aplikasi dalam sistem operasi Android dapat berjalan lebih dari satu dan tidak akan mempengaruhi kinerja aplikasi lainnya. 9. Flash support Sistem operasi Android versi 2.3 mendukung Flash versi 10.1. 10. Tethering Mendukung fitur berbagi koneksi Internet dan berperan sebagai hotspot.
2.2.5 Aplikasi Mobile Pada zaman modern ini, penggunaan perangkat mobile terus meningkat. Perangkat mobile seperti smartphone dan tablet telah menjadi sesuatu yang biasa di masyarakat. Para penggunanya tidak hanya kalangan kelas menengah ke atas, namun kelas menengah ke bawah pun sudah dapat menikmati kecanggihan dari perangkat mobile. Bahkan pada tahun 2008, pengguna perangkat mobile diperkirakan mencapai 3,6 miliar orang, yaitu melebihi setengah dari populasi penduduk dunia. (Fling, 2009:18)
27
2.2.5.1
Sistem Operasi Mobile Berdasarkan pendapat Fling (2009:22) sistem operasi pada perangkat mobile umumnya memiliki peran penting agar aplikasiaplikasi yang berada dalam perangkat bisa saling berkomunikasi atau bertukar data. Sebuah perangkat mobile yang tidak memiliki sistem operasi akan menyebabkan aplikasi-aplikasinya berjalan sendiri-sendiri. Berikut ini adalah beberapa sistem operasi yang sudah umum, antara lain: 1. Symbian Merupakan sistem operasi open source yang dirancang untuk perangkat mobile. 2. Windows Mobile Windows Mobile adalah sistem operasi mobile yang beroperasi pada platform perangkat Windows Mobile. 3. Palm OS Palm OS merupakan sistem operasi yang digunakan pada perangkat mobile Palm dengan spesifikasi lower-end Centro line. 4. Linux Linux merupakan sistem operasi opensource yang penggunaannya terus meningkat dalam power smartphone, salah satu contohnya seperti Motorola RAZR2. 5. Mac OS X Mac OS X adalah versi spesial dari Apple yang digunakan dalam iPhone dan iPod Touch. 6. Android Android adalah salah satu dari sistem operasi open source yang terkenal di kalangan masyarakat. Desain dari sistem operasi Android bisa disesuaikan dengan operator dan produsen perangkat mobile yang ingin menggunakannya.
28
2.2.5.2
Jenis Aplikasi Mobile Orang-orang awam sering kali mempunyai pemahaman yang salah antara kategori dan jenis aplikasi mobile. Mereka menganggap itu adalah dua hal yang sama, padahal kategori dan jenis aplikasi mobile mempunyai pengertian yang berbeda. Yang dimaksud dengan kategori aplikasi mobile menurut Abhineet (2012) adalah Utility Apps, Entertainment Apps, Games, Banking Apps, dan lainnya. Sedangkan jenis aplikasi mobile menurut Manicor (2012) adalah sebagai berikut: 1. Native Apps Merupakan aplikasi yang dikembangkan dan digunakan pada sistem operasi tertentu. Kelebihan dari jenis aplikasi ini adalah kecepatan, kinerja dan antarmuka dari aplikasi paling optimal di antara semua jenis aplikasi. Selain itu, jenis aplikasi ini tidak membutuhkan koneksi internet. Namun, kelemahan dari jenis aplikasi ini adalah biaya pengembangan jenis aplikasi ini mahal karena hanya bisa berfungsi pada satu sistem operasi serta proses pengembangan memakan waktu yang lama. 2. Web-Based Apps Jenis aplikasi ini menggunakan web browser sebagai client yang dikembangkan dengan bahasa pemrograman yang dapat diolah dan dibaca oleh web browser seperti HTML, PHP, JavaScript dan lainnya. Kelebihan dari jenis aplikasi ini adalah biaya pengembangan yang murah, dapat diakses oleh semua perangkat yang memiliki fitur web browser dan penggunaan database yang kecil karena semua data tersimpan di server. Kelemahannya adalah jenis aplikasi ini membutuhkan koneksi internet agar aplikasi dapat digunakan. Kelemahan yang lain adalah apabila koneksi internet yang lemah atau tidak baik, akan menyebabkan mengurangi kinerja aplikasi. 3. Hybrid Apps Hybrid Apps adalah jenis aplikasi yang mirip dengan Native Apps, hanya saja data-data di aplikasi tersimpan di web, bukan di perangkat. Kelebihannya adalah jenis aplikasi dapat
29
diunduh melalui toko aplikasi, lebih mudah untuk diterapkan pada sistem operasi yang berbeda dibanding dengan Native Apps. Meskipun jenis aplikasi ini membutuhkan koneksi internet, namun tetap dapat berjalan ketika perangkat sedang dalam keadaan offline. Kelemahannya yaitu tidak berjalan semulus Native Apps, kinerja aplikasi ketika sedang dalam keadaan offline akan tidak stabil. Ketika aplikasi dirancang, pada umumnya akan berjalan dengan lancar baik di smartphone ataupun tablet. Web-Based Apps umumnya akan berjalan lancar pada kedua jenis perangkat tersebut. Sedangkan Native Apps dan Hybrid Apps biasanya memerlukan optimisasi untuk setiap jenis perangkat. Namun ini tidak berarti bahwa aplikasi tersebut hanya dapat digunakan di salah satu perangkat saja. Permasalahan seperti optimisasi ukuran layar, navigasi dan lainnya yang harus dipertimbangkan ketika akan diterapkan di kedua jenis perangkat tersebut.
2.2.5.3
Perkembangan Perangkat Mobile Dalam pengembangan aplikasi terdapat beberapa persoalan yang umum dan sering ditemui seperti integrasi dengan hardware, keamanan, kinerja, daya tahan dan batas penyimpanan. Namun beberapa tahun terakhir, perangkat mobile telah mengalami perkembangan yang cukup pesat. Berikut ini adalah beberapa keunggulan dari aplikasi mobile yang jarang ditemui di beberapa aplikasi biasa lainnya, antara lain: 1. Software pada aplikasi mobile bisa memiliki banyak aplikasi dari berbagai sumber yang dapat berinteraksi satu dengan yang lainnya. (Wasserman, 2010) 2. Perangkat
mobile
pada
umumnya
seperti
smartphone,
mempunyai accelerometer yang bisa mendeteksi pergerakkan penggunanya, layar sentuh yang bisa merespon beberapa sentuhan jari sekaligus, virtual keyboard, Global Positioning
30
System (GPS), microphone yang bisa digunakan dalam aplikasi lain selain untuk telepon, dan lainnya. (Wasserman, 2010) 3. Beberapa aplikasi mobile dapat menggunakan layanan data atau Internet melalui web browser untuk mengambil data dan menampilkannya pada layar. (Wasserman, 2010)
2.2.6 Prinsip Perancangan Antarmuka pada Aplikasi Mobile Seperti yang telah disebutkan di atas, perkembangan perangkat mobile terus meningkat dan membesar. Konvergensi dari cloud computing, kemudahan akses broadband dimana saja dan harga perangkat mobile yang semakin terjangkau telah mengubah segala aspek yang ada di dalam masyarakat. Dan diprediksi di tahun 2015, perangkat mobile akan menggantikan peran komputer PC sebagai sarana utama untuk kebutuhan browsing, dan lainnya. (Stark, 2012) Walaupun perangkat PC dan smartphone dikategorikan sebagai perangkat computing, tetapi pada dasarnya kedua perangkat tersebut sangat berbeda. Perbedaan tersebut bisa dilihat dari segi ukuran layar, konektivitas, bandwidth, sumber listrik, dan lainnya. Pada kenyataannya banyak keunggulan lain yang dimiliki oleh smartphone. Smartphone bersifat pribadi, selalu tersambung dan teralamat dengan baik. Selain itu, smartphone juga memiliki fitur sensor yang bisa medeteksi lokasi, pergerakan, percepatan, orientasi dan keadaan lingkungan sekitar smartphone. (Stark, 2012) Berikut ini adalah 10 (sepuluh) prinsip dasar dari perancangan antarmuka aplikasi mobile menurut Stark (2012): 1. Pola Pikir Mobile (Mobile Mindset) Antarmuka harus disusun secara fokus sehingga pengguna dapat melihat langsung tujuan dari setiap antarmuka
yang
dimunculkan. Pembuatan antarmuka harus unik, menarik, dan harus menampilkan antarmuka sesuai kebutuhan tujuan pengguna. 2. Konteks Mobile (Mobile Contexts) Aplikasi harus dapat digunakan saat pengguna dalam keadaan bosan (bored), sibuk (busy), ataupun saat sedang tidak mengenali situasi pada lingkungan sekitarnya (lost). Pada saat pengguna yang
31
sedang dalam keadaan bosan, aplikasi harus memberikan pengalaman yang menyenangkan bagi pengguna serta dapat membuat pengguna bertahan untuk menggunakan aplikasi dalam jangka waktu yang panjang. Sedangkan pada saat pengguna dalam keadaan sibuk, aplikasi harus mampu untuk menyelesaikan setiap permintaan pengguna dalam waktu singkat dan sempurna, sehingga menimbulkan bahwa aplikasi yang digunakan dapat diandalkan dalam situasi kritis. Sedangkan ketika pengguna sedang berada dalam lingkungan sekitar yang tidak dikenalinya, konektivitas yang sederhana dan daya tahan baterai akan menjadi permasalahan yang besar. Aplikasi harus mampu untuk menawarkan dukungan dalam bentuk offline dan tidak memakan daya baterai yang terlalu besar pada saat penggunaan aplikasi oleh pengguna. 3. Pedoman Global (Global Guidelines) Beberapa
hal
yang
harus
disediakan
dalam
aplikasi
diantaranya harus responsif dan mempunyai gambar yang halus. Di samping itu harus mempunyai tombol-tombol yang mudah dijangkau oleh ibu jari pengguna, serta pengguna dapat dengan mudah memperkirakan tujuan dari tampilan yang dimunculkan. 4. Model Navigasi (Navigation Models) Terdapat banyak sekali jenis-jenis navigasi untuk aplikasi mobile. Namun dalam memilih jenis navigasi harus dengan penuh pertimbangan agar aplikasi dapat tampil secara maksimal. Jenis-jenis navigasi antara lain seperti Single Screen, Tab Bar dan Drill Down. 5. Inputan Pengguna (User Input) Di dalam sebuah aplikasi mobile, akan terdapat banyak input yang dilakukan oleh pengguna. Jenis input yang digunakan akan disesuaikan kebutuhan input yang dilakukan pengguna. Misalnya, ketika pengguna akan memasukkan alamat e-mail, maka tampilan keyboard akan berganti untuk input alamat e-mail. 6. Gerakan (Gestures) Salah satu fitur paling menonjol dari antarmuka layar sentuh adalah fitur gesture. Contoh dari gesture seperti zoom in dan zoom out
32
pada aplikasi “Gallery” untuk melihat foto pada Android dan “Maps” di iOS menggunakan gerakan menjepit oleh jari jempol dan telunjuk. 7. Orientasi (Orientation) Orientasi dalam mobile terdiri dari 2 (dua) jenis, yaitu portrait dan landscape. Potrait adalah orientasi yang paling umum dan terkenal, namun bila sebuah aplikasi mobile banyak menggunakan pengetikan, maka sebaiknya aplikasi tersebut mendukung orientasi landscape agar pengguna dapat mengakses keyboard yang lebih lebar dan mudah dalam mengetik. 8. Komunikasi (Communications) Sebuah aplikasi yang bagus harus mempunyai komunikasi timbal balik kepada penggunanya. Pengguna akan mengira bahwa aplikasi tersebut hang atau macet bila tidak ada timbal balik yang jelas. Timbal balik bisa berhubungan dengan indera perasa atau penglihatan. Contohnya seperti vibrasi atau cahaya berkelap-kelip pada layar. Bila pengguna ingin melakukan sebuah kegiatan atau operasi yang membutuhkan proses waktu sedikit lebih lama, maka aplikasi harus menampilkan progress bar atau spinner agar pengguna tahu bahwa apa yang mereka lakukan atau inginkan sedang dalam proses pengerjaan. Apabila pengguna ingin melakukan sebuah kegiatan atau operasi yang membutuhkan pesan konfirmasi, ada baiknya aplikasi memunculkan sebuah kotak konfirmasi yang menanyakan pilihan pengguna. Tujuan dari konfirmasi adalah untuk menghindari kesalahan yang dilakukan oleh pengguna yang dapat berakibat buruk. 9. Peluncuran (Launching) Pada saat aplikasi dijalankan, disarankan agar halaman loading sesederhana mungkin. Halaman loading yang terlalu interaktif akan menyebabkan pengguna frustasi terhadap antarmuka. Ketika pengguna menjalankan kembali aplikasi setelah menjalankannya beberapa waktu yang lalu, diusahakan agar aplikasi menjalankan operasi, kegiatan atau halaman terakhir yang pengguna lakukan. Ini akan memberikan kesan kepada pengguna bahwa aplikasi memiliki respon yang cepat.
33
10. Kesan Pertama (First Impressions) Kesan pertama menjadi hal yang penting ketika pengguna pertama kali menjalankan aplikasi. Sebuah aplikasi akan tidak bernilai ketika seorang pengguna baru kebingungan dan frustasi ketika mempelajari dan memahami aplikasi tersebut. Jika sebuah aplikasi mempunyai
fungsionalitas
yang
kompleks,
diusahakan
agar
menyertakan petunjuk tips and trick ke dalam aplikasi tersebut.
2.2.7 Unified Modeling Language (UML) Kesulitan
utama
dalam
pengembangan
software
adalah
menentukan kebutuhan pengguna. Sangat sering dijumpai sebuah sistem yang dirancang tidak memuaskan pengguna, hal ini yang mendorong seorang sistem analis harus mengetahui kebutuhan penggunanya terlebih dahulu sebelum memulai perancangan. Sehingga diperlukan beberapa analisis sebelum pembuatan program. Pada bagian ini akan dibahas mengenai use-case diagram, class diagram, activity diagram, dan sequence diagram. 2.2.7.1
Use Case Diagram Use
case
berperan penting
dalam
mendeskripsikan
fungsional-fungsional yang ada di dalam sebuah sistem yang dilihat dari sudut pandang pengguna. Use case dirancang dengan menggunakan cara dan istilah yang dapat dimengerti oleh pengguna. (Whitten dan Bentley, 2007:246)
34
Gambar 2.2 Use Case Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:247)
Dalam use-case diagram terdapat 2 (dua) komponen, yaitu actor dan relationship. Actor merupakan pengguna eksternal yang berhubungan langsung serta memicu aktivitas sistem dengan tujuan menyelesaikan tugas yang menghasilkan nilai tertentu. (Whitten dan Bentley, 2007:247)
Gambar 2.3 Simbol actor pada Use Case Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:247)
Relationship
digambarkan
oleh
sebuah
garis
yang
menghubungkan dua buah simbol dalam use case diagram. Perbedaan arti setiap relationship, dilihat dari perbedaan jenis garis
35
yang digambarkan dan jenis simbol yang dihubungkan. Berikut ini adalah jenis relationship menurut Whitten dan Bentley (2007): 1. Associations Association digambarkan sebagai sebuah garis sambung yang menghubungkan actor dengan use case, dimana actor melakukan fungsionalitas dari use case yang dihubungkan. Association dibagi menjadi 2 jenis, yaitu Association dengan anak panah dan Association tanpa anak panah.
Gambar 2.4 Hubungan association dalam Use Case Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:248)
2. Extends Extends merupakan garis yang pada ujungnya diberikan tanda panah, serta dilengkapi dengan tanda “<<extends>>”. Extends bertujuan untuk menyambungkan beberapa use case yang dipecah dari beberapa fungsional yang rumit agar lebih mudah dimengerti.
Gambar 2.5 Hubungan extends dalam Use Case Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:249)
36
3. Include (Uses) Merupakan garis yang pada ujungnya diberikan tanda panah,
serta
dilengkapi
dengan
“<
>”
atau
“<<uses>>”. Pada umumnya akan sering ditemui beberapa use case yang mengakses ke use case yang sama. Maka dari itu, dibuat sebuah use case yang memiliki fungsional yang mirip agar dapat diakses oleh use case yang lainnya. Use case ini dikenal dengan abstract use case. Include digunakan untuk mengurangi redundansi dari penggunaan use case.
Gambar 2.6 Hubungan Include dalam Use Case Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:249)
4. Depends On Merupakan garis yang pada ujungnya diberikan tanda panah, serta dilengkapi dengan “<<depends on>>”. Use-case yang menunjuk hanya dapat dikerjakan apabila use-case yang ditunjuk selesai dikerjakan.
37
Gambar 2.7 Hubungan Depends On dalam Use Case Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:250)
5. Inheritance Inheritance diterapkan dengan cara membuat sebuah abstract actor untuk menghubungkan dua / lebih actor yang mengakses ke dalam satu use-case yang sama. Tujuan Inheritance adalah mengurangi redundansi dalam sistem.
Gambar 2.8 Hubungan Inheritance dalam Use Case Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:250)
38
Use-case
dijelaskan
lebih
lanjut
pada
use-case
narrative. Tujuannya untuk memperjelas kondisi setiap usecase secara rinci. Use-case narrative pun dibuat dengan 2 (dua) buah model, yaitu high-level dan expanded version use-case.
2.2.7.2
Class Responsibility Collaboration (CRC) Card Menurut responsibility
Whitten
dan
collaboration
Bentley (CRC)
(2007:657)
card
pertama
class kali
diperkenalkan oleh Kent Beck dan Ward Cunningham. Dalam sebuah CRC card terdapat semua behavior dan responsibilities dari keseluruhan sebuah use-case yang berhubungan dengan class tersebut. Dalam sebuah CRC card terdiri atas 3 (tiga) bagian menurut pendapat Whitten dan Bentley (2007:658-659). Ketiga bagian tersebut adalah class, responsibility dan collaborators. Class berisi nama class yang terlibat dalam sebuah proses usecase. Responsibility berisi tugas-tugas yang harus dilakukan oleh sebuah class ketika proses use-case sedang berjalan. Collaborators berisi class lain yang terhubung dengan class tersebut dalam melakukan proses sebuah use-case.
Gambar 2.9 Contoh CRC Card (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:658)
39
2.2.7.3
Class Diagram Class diagram merupakan penggambaran struktur class pada sistem yang berisi beberapa class yang disusun dengan relationship antara beberapa class tersebut.
Gambar 2.10 Contoh Class Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:375)
Sesuai pada gambar diatas, sebuah class terdapat tiga bagian penting, yaitu: a. Class Name b. Attribute c. Behavior (operation)
Gambar 2.11 3 (tiga) cara representasi Class Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:374)
40
Class diagram dapat direpresentasikan dengan 3 cara sesuai dengan gambar diatas. Ketiga cara tersebut adalah: a. Menampilkan hanya nama class b. Menampilkan nama dengan attribute class c. Menampilkan nama, attribute, dan behavior dari class Setiap class pada class diagram dihubungkan dengan relationship. Terdapat beberapa macam relationship, yaitu: a. Association Merupakan garis yang menghubungkan relasi antara class. Association merepresentasikan relasi statis antara objekobjek dari 2 class.
Gambar 2.12 Hubungan association dalam Class Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:377)
b. Generalization and Specialitation Teknik pengelompokan sifat (attributes dan behaviors) yang sama dan dimiliki beberapa class dikelompokan pada sebuah class supertype. Sifat dari class supertype akan diwariskan pada class subtype.
41
Gambar 2.13 Hubungan generalization dalam Class Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:375)
c. Aggregation and Composition Aggregation menggambarkan hubungan sebuah class merupakan bagian dari class lain. Contohnya: sebuah komputer terdiri dari CPU, mouse, keyboard, printer, dan lainnya.
Gambar 2.14 Hubungan aggregation dalam Class Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:379)
42
Hubungan yang lebih kuat dari aggregation dinamakan composition. Dimana dalam composition, objek komputer tidak dapat dibuat jika ada salah satu dari objek komponennya (CPU, motherboard, VGA, dan lainnya) tidak lengkap. Namun, aggregation tidak lagi digunakan pada UML 2.0, karena aggregation tidak dapat mendefinisikan perbedaan yang signifikan (indistinction) pada pemrograman seperti yang dapat didefinisikan
oleh
composition.
(Whitten
dan
Bentley,
2007:378)
Gambar 2.15 Hubungan composition dalam Class Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:379)
Multiplicity
merupakan
jumlah
hubungan
yang
diperbolehkan antara objek yang dibentuk. Terdapat beberapa jenis multiplicity, yaitu:
Tabel 2.2 Jenis-jenis multiplicity (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:379)
Multiplicity Exactly one
Notasi UML Multiplicity 1..1 atau 1 atau leave blank
43
Multiplicity
2.2.7.4
Notasi UML Multiplicity
Zero or one
0..1
Zero or more
0..* atau *
One or more
1..*
Specific range
4..8 (7..9 jika range 7 hingga 9)
Activity Diagram Model untuk menunjukan langkah-langkah, proses, atau aktifitas sebuah sistem. Tujuannya adalah untuk menggambarkan alur yang berurut dari aktifitas sebuah use-case. Sebuah use-case dapat membentuk satu atau lebih activity diagram. Banyaknya activity diagram ditentukan dari panjang dan kompleksitas sebuah use-case diagram.
44
Gambar 2.16 Contoh Activity Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:392) Berikut adalah beberapa notasi yang umum dipakai pada penggambaran activity diagram: 1. Initial node – lingkaran penuh merepresentasikan mulainya proses. 2. Activity – segi empat tidak lancip merepresentasikan tahap aktifitas. 3. Flow – tanda panah yang mengarahkan proses aktifitas sistem.
45
4. Decision – bentuk diamond yang mempunyai 1 arus masuk dan 2 atau lebih arus keluar. Tujuannya mencabangkan arah aktifitas dengan kondisi benar dan salah. 5. Merge – bentuk diamond yang mempunyai 2 arus masuk dan 1 arus keluar. Tujuannya untuk menggabungkan 2 arah aktifitas yang sebelumnya dicabangkan dengan decision. 6. Fork – garis hitam tebal yang mempunyai 1 arus masuk dan 2 atau lebih arus keluar. Hasil dari fork dapat berjalan secara paralel dan dalam waktu bersamaan. 7. Join – garis hitam tebal yang mempunyai 2 atau lebih arus masuk dan 1 arus keluar. Seluruh aksi yang masuk harus telah selesai untuk memproses aksi selanjutnya. 8. Activity final – lingkaran penuh merepresentasikan berakhirnya proses.
Untuk memperjelas sebuah activity diagram, biasanya dilengkapi dengan actor yang melakukan tahap pada activity diagram. Actor pada activity diagram dapat digambarkan dengan swimlanes.
Terdapat 2 (dua) buah fitur tambahan pada activity diagram, yaitu:
9. Subactivity indicator – digambarkan pada aktifitas dengan simbol garpu yang menunjukan bahwa aksi tersebut dijelaskan pada activity diagram lain. Tujuannya untuk mencegah activity diagram yang terlalu kompleks. 10. Connector – sebuah huruf kapital didalam sebuah lingkaran yang menghubungkan activity diagram yang sama. Fitur ini dipakai jika activity diagram tidak cukup digambarkan pada sebuah kertas.
46
2.2.7.5
Sequence Diagram
Gambar 2.17 Contoh Sequence Diagram (Sumber: System Analysis and Design Method – Whitten dan Bentley, 2007:395)
Menggambarkan bagaimana sebuah objek berinteraksi dengan objek lainnya melalui sebuah pesan yang dieksekusi dari sebuah use-case. Sequence diagram merupakan scenario dari sebuah use-case. Pada sebuah sistem sequence diagram yang lengkap, beberapa diagram yang berbeda dapat menggambarkan satu use-case diagram. Berikut ini merupakan notasi yang dipakai pada sequence diagram: 1. Actor – menginisiasi aktor dari use-case. 2. System – kotak yang mengidentifikasi sistem. Digambarkan dengan kotak berisi warna. Beberapa sistem dibuat dengan
47
tulisan yang diawali dengan tanda titik dua (:), yang artinya notasi dari objek yang sedang digunakan sistem. 3. Lifelines – garis putus-putus secara vertikal yang digambar dari aktor ke bawah, dimana mengidentifikasi kehidupan dari sequence. 4. Activation Bars – merupakan kotak putih yang menunjukan bahwa periode peserta sedang aktif. 5. Input Messages – merupakan panah lurus yang bertujuan untuk meminta verifikasi atau data dari actor ke sistem. Garis digambar secara sambung. 6. Output Messages – merupakan panah lurus yang menunjuk dari sistem ke actor. Dimana garis panah digambar secara putusputus. Dimana hasil dari sistem merupakan data yang diminta pada input messages. 7. Receiver Actor – eksternal actor yang menerima hasil sistem. 8. Frame – kotak yang membagi sequence menjadi beberapa bagian yang dapat diulang (loop frame), dipilih frame yang dijalankan (optional frame), atau menjadi frame yang dapat dijalankan sesuai kebutuhan (alternate frame).
2.2.8 Eclipse Sebuah Integrated Development Environtment (IDE) dan extensible plug-in yang dapat digunakan untuk mengembangkan aplikasi dengan beberapa bahasa, Java, C, C++, PHP, Phyton, Ruby, dan lainnya.
2.2.9 Database Menurut Connolly dan Begg (2010:54), database adalah sekumpulan data-data yang terelasi secara logis dan deskripsi dari data, yang dirancang untuk kebutuhan informasi dari sebuah perusahaan atau organisasi. Agar sebuah database dapat terintegrasi dengan baik dan maksimal, maka diperlukan sebuah software system yang menjadi jembatan antara pengguna dan database bernama DBMS (Database Management System). DBMS menyediakan fitur-fitur kepada pengguna
48
untuk merancang, memperbaiki, mengontrol dan mengakses ke dalam database tersebut. Dalam penggunaan DBMS menurut Connolly dan Begg (2010:77), terdapat keunggulan dan kelemahan. Keunggulan DBMS adalah pengontrolan data dari redundansi (pengulangan), konsistensi data, integritas data, sekuritas data dan lainnya. Kelemahan dari DBMS adalah kompleksitas data, biayanya yang mahal dan bila terjadi kegagalan pada sistem akan memberikan dampak yang besar terhadap perusahaan.
2.2.10 SQLite Relational Database Management System (RDBMS) yang mengandung library kecil dengan bahasa C. Merupakan hasil penanaman SQL database engine, namun tidak seperti SQL database lainnya, SQLite tidak mempunyai proses server yang terpisah. Ukuran yang kecil dalam penyimpanan datanya menjadikan SQLite banyak dipilih untuk database engine pada smartphone, PDAs, dan MP3 player.
2.2.11 Classical Elements Berdasarkan pada teori Aristoteles dalam bukunya berjudul On Generation and Corruption (2004), terdapat 4 (empat) jenis elemen, yaitu angin, api, tanah, dan air.
2.2.12 Color Histogram Berdasarkan penelitian yang dilakukan oleh Jadhav dan Ahmed (2012) warna memegang peran penting dalam mengambil informasi dari sebuah gambar, terutama dalam content-based image retrieval (CBIR). Menurut Meskaldji, Boucherka dan Chikhi (2012) Color Histogram adalah sebuah metode yang menjelaskan isi warna dalam sebuah gambar. Color Histogram menghitung jumlah titik warna yang muncul pada setiap jenis warna. Cara kerja metode Color Histrogram menurut Kaisha (2013) adalah gambar dipilah menjadi daerah warna oleh sebuah satuan kuantisasi warna. Kemudian sistem akan mencari daerah yang mengandung warna spesifik dalam daerah warna yang telah ditentukan
49
tersebut. Pada akhirnya sistem akan menghitung jumlah titik warna pada setiap jenis warna yang berada dalam daerah warna tersebut dan sistem akan menggambarkan dalam bentuk diagram vektor.
2.2.13 Weather Detection Menurut pendapat yang dikemukakan oleh Xiang Li dkk (2013) sistem pendeteksi cuaca menggunakan sensor yang berbeda-beda untuk mendeteksi kondisi cuaca yang berbeda-beda seperti sensor uap air, sensor suhu jalanan, sensor kepadatan kabut, sensor tingkat ketebalan lapisan es dan sensor tingkat ketebalan salju. Banyak sistem pendeteksi cuaca yang dapat meramal keadaan cuaca dengan tepat dan memberikan kemudahan bagi orang yang akan melakukan aktivitas di luar seperti berkendara, piknik, memanjat gunung, dan sebagainya.
2.3
Hasil Penelitian Sebelumnya 2.3.1 Color Histogram Dalam beberapa tahun terakhir, sudah banyak penelitian yang dilakukan dalam bidang color histogram untuk mengatasi masalah – masalah yang sering dialami dalam representasi gambar seperti tekstur, bentuk, rotasi, translasi dan kuantisasi warna. Mengacu pada penelitian yang dilakukan oleh Suhasini, Krishna dan Krishna (2009) di antara semua elemen visual, warna merupakan elemen yang mudah untuk dibandingkan dalam sejumlah aplikasi gambar. Oleh karena itu, informasi warna dalam sebuah gambar direpresentasikan ke dalam sebuah data kurva yang bernama color histogram. Color histogram yang digunakan pada mulanya untuk merepresentasikan informasi warna adalah conventional color histogram (CCH). Meskipun conventional color histogram mudah dan sederhana ketika dikomputasikan, namun menurut Suhasini Suhasini, Krishna dan
Krishna
(2009)
conventional color
histogram
memiliki
dimensionalitas yang tinggi dan tidak dapat melakukan rotasi maupun translasi gambar. Masalah tersebut kemudian diatasi dengan menggunakan teknik invariant color histogram (ICH) dan fuzzy color histogram (FCH) untuk mengatasi kekurangan yang ada pada CCH.
50
Pada penelitian lain yang dilakukan oleh Sandhu dan Kochhar (2012) dalam bidang color histogram yang menggunakan konsep Content-Based Image Retrieval (CBIR) untuk menganalisis tekstur, warna dan bentuk dari sebuah gambar. Cara kerja CBIR menurut penelitian yang dilakukan oleh Sandhu dan Kochhar (2012) adalah sistem CBIR akan mencari gambar pada database yang relevan dan sesuai dengan informasi tekstur, warna dan bentuk yang diberikan. Color histogram menurut Sandhu dan Kochhar (2012) merupakan metode yang umumnya digunakan untuk mengambil informasi warna dari sebuah gambar. Color histogram juga diimplementasikan ke dalam sistem CBIR pada saat proses pengambilan informasi warna. Penelitian ini menyimpulkan bahwa hasil gambar mempunyai kemiripan yang signifikan dengan informasi tekstur, warna dan bentuk yang diberi. Namun penelitian ini masih memiliki kelemahan karena tingkat akurasi dari hasil pengolahan informasi warna hanya sebesar 62 persen.
Gambar 2.18 Cara Kerja pada Sistem CBIR (Sumber: Content Based Image Retrieval using Texture, Color and Shape for Image Analysis – Sandhu and Kochhar, 2012)
Penelitian lain mengenai color histogram juga dilakukan oleh Kucuktunc, Gudukbay, Ulusoy (2009) yang menggunakan fuzzy color histogram
untuk
melakukan
shot-boundary
detection
dalam
segmentasi video. Cara kerja fuzzy color histogram dalam segmentasi video menurut penelitian Kucuktunc, Gudukbay dan Ulusoy (2009)
51
adalah dengan mengambil salah satu frame gambar untuk dihitung ukuran dimensinya dalam video tersebut, kemudian frame gambar akan dibagi menjadi beberapa bagian dan ukuran tertentu sesuai dengan ukuran dimensinya. Setelah itu akan menghasilkan informasi warna
sesuai
dengan
perhitungan
algoritma
fuzzy color histogram. Dalam waktu yang hampir bersamaan, penelitian yang dilakukan
oleh
Kucuktunc
dan
Zamalieva
(2009) mengenai
penggunaan metode fuzzy color histogram (FCH) di dalam sistem content-based image retrieval (CBIR) untuk mengurangi kepekaan terhadap perubahan iluminasi warna dan kesalahan dalam kuantisasi warna. Hasil penelitian menunjukkan bahwa kemampuan metode fuzzy color histogram mengungguli metode RGB color histogram, L*a*b* color histogram dan Intensity histogram. Namun kelemahan dari metode fuzzy color histogram adalah metode tersebut belum mampu untuk diimplementasikan ke bidang lain seperti kernel tracking dan lainnya.
Gambar 2.19 Gambar Perbandingan FCH dengan RGB Color Histogram dan L*a*b* Color Histogram
52
(Sumber: Fuzzy Color Histogram-based CBIR System – Kucuktunc and Zamalieva, 2009) 2.3.2 Weather Detection Perubahan iklim dan cuaca dapat terjadi setiap saat. Dalam 5 tahun terakhir, global warming dan efek rumah kaca yang semakin terasa di sekitar kita membuat cuaca terkadang berubah tidak menentu. Oleh sebab itu, saat ini berbagai jenis penelitian mengenai weather detection telah dilakukan. Menurut penelitian yang dilakukan oleh Xiang Li dkk (2008) dengan menggunakan konsep Algorithm Development and Mining (ADAM) yang terdiri dari Mesocyclones dan Storm Detection Algorithm (SDA) untuk mendeteksi badai pada suatu daerah. Algoritma tersebut kemudian dikolaborasikan dengan software yang dikembangkan para ahli meteorologi bernama Linked Environments
for
Atmospheric
Discovery
Cyberinfrastructure
(LEAD-CI). Hasil penelitian menyimpulkan bahwa dengan adanya LEAD-CI yang dikolaborasikan dengan ADAM memudahkan pekerjaaan para peneliti cuaca untuk mendeteksi keberadaan badai. Namun penelitian ini belum mampu untuk melacak pertumbuhan dan pergerakkan badai dalam waktu tertentu.
Gambar 2.20 Cara Kerja Software LEAD-CI (Sumber: Real-time Storm Detection and Weather Forecast Activation through Data Mining and Events Processing – Xiang Li dkk, 2008)
53
Penelitian lain mengenai weather detection juga dilakukan oleh Moneeshaa dan Sairam (2013) dengan menggunakan Hue Saturation Light (HSL), Region of Interest (ROI), Watershed, Demirel dan Color Segmentation. Objek penelitian yang diteliti adalah gambar awan tipis yang dikirim dari satelit infrared. HSL berfungsi untuk menganalisis rasio warna yang ada pada gambar. ROI berfungsi untuk menghilangkan awan dan barang – barang langit lainnya.
Sedangkan algoritma
Watershed dan
Demirel akan
melakukan segmentasi pada awan tipis. Kemudian warna pada gambar tersebut akan dibandingkan dengan gambar yang ada pada database untuk menghasilkan prakiraan cuaca. Hasil penelitian ini menghasilkan solusi yang efektif karena semua algoritma memberikan persentase output yang tinggi. Sehingga disimpulkan bahwa weather detection dengan konsep thin cloud akan lebih efisien. Qian, Zhang dan Feng (2013) melakukan penelitian untuk mendeteksi cuaca ekstrim dengan menggunakan metode phase synchronization clustering. Hasil penelitian menunjukkan bahwa simulasi dari phase synchronization dengan menggunakan onedimension data detection dapat mendeteksi proses sementara dari keadaan cuaca ekstrim. Namun penelitian ini belum dapat melakukan phase synchronization dengan multi-dimension data untuk mendeteksi keadaan cuaca ekstrim.
2.4
Related Works Berikut ini adalah daftar – daftar penelitian mengenai color histogram dan weather detection serta metode yang digunakan dalam penelitian tersebut.
No 1
Nama
Judul
Metode
Keterangan
P.S.Suhasini,
CBIR Using
Invariant Color
Penelitian ini
Dr. K.Sri Rama
Color
Histogram
bertujuan untuk
Krishna, Dr.
Histogram
(ICH), Fuzzy
mengimplementasikan
I.V. Murali
Processing
Color
konsep ICH dan FCH
54
No
Nama Krishna
Judul (2009)
Metode
Keterangan
Histogram
untuk mengatasi
(FCH)
kekurangan yang ada pada CCH.
2
Amanbir
Content Based
Texture Feature
Penelitian ini
Sandhu, Aarti
Image Retrieval
Extraction
mengimplementasikan
Kochhar
using Texture,
Model using
sistem CBIR untuk
Color and
Gray Level Co-
menganalisis
Shape for Image occurrence
kemiripan sebuah
Analysis (2012)
Matrix
gambar melalui
(GLCM), Color
informasi tekstur,
Feature
warna dan bentuk.
Extraction Model using CBIR system, Shape Feature Extraction, Similarity Feature Extraction 3
Onur
Fuzzy Color
L*a*b color
Penelitian ini
Kucuktunc,
Histogram-
space linking to
bertujuan untuk
Daniya
based CBIR
fuzzy color
menguji kepekaan
Zamalieva
System (2009)
histogram bins
iluminasi cahaya dan
using Mamdani- kesalahan dalam
4
style inference
kuantisasi warna pada
system.
gambar.
Onur
Fuzzy Color
Fuzzy Color
Penelitian ini
Kucuktunc,
Histogram-
Histogram-
bertujuan untuk
Ugur
based Video
based Shot-
mengembangkan
Gudukbay,
Segmentation
boundary
konsep Fuzzy Color
Ozgur Ulusoy
(2009)
Detection
Histogram yang
Algorithm
dikolaborasikan
55
No
Nama
Judul
Metode
Keterangan
specialized for
dengan algoritma
Content-Based
Shot-boundary
Copy Detection
Detection untuk
applications.
mencari kesamaan warna dan isi pada dua buah video yang berbeda.
5
6
Xiang Li, Beth
Real-time Storm Mesocyclones,
Penelitian ini
Plale, Nithya
Detection and
Storm Detection bertujuan untuk
Vijayakumar,
Weather
Algorithm
mengembangkan
Rahul
Forecast
(SDA)
konsep Algorithm
Ramachandran,
Activation
Development and
Sara Graves,
through Data
Mining (ADAM)
Helen Conover
Mining and
yang dikolaborasikan
Events
dengan software
Processing
LEAD-CI untuk
(2009)
mendeteksi badai
J. Moneeshaa,
Algorithms for
Hue Saturation
Penelitian ini
N.Sairam
Weather
Light (HSL),
menggunakan
Prediction
Region of
berbagai jenis
Using Thin
Interest (ROI),
algoritma untuk
Clouds (2013)
Watershed,
mendeteksi cuaca
Demirel and
dengan konsep thin
Color
cloud.
Segmentation 7
Zhonghua
Detection of
Phase
Penelitian ini
Qian, Zenping
The Process
Synchronization
bertujuan untuk
Zhang, Guolin
about Extreme
Clustering with
mengembangkan
Feng
Weather Events
One –
konsep PSC dalam
(2013)
dimensional
mendeteksi cuaca
data
ekstrim. Namun konsep ini belum
56
No
Nama
Judul
Metode
Keterangan mampu dijalankan dalam multidimesional data.
57