BAB 2 LANDASAN TEORI 1.1
Teori Umum Teori umum merupakan teori dasar yang dijadikan sebagai landasan dari teoriteori yang dipakai dalam penulisan skripsi ini. 1.1.1 Multimedia Multimedia terdiri dari 2 kata yaitu multi dan media. Multi artinya banyak, majemuk, atau beraneka ragam. Media berarti perantara atau penghubung. Jadi multimedia merupakan media yang isinya menggabungkan beberapa atau beraneka-ragam unsur. Multimedia banyak sekali digunakan dalam dunia hiburan, dunia game, dunia pendidikan, dan dunia bisnis. Menurut Vaughan (2010, p.xiv), multimedia adalah kombinasi antara teks, suara, gambar, animasi, dan video yang disampaikan kepada kita oleh komputer atau perangkat elektronik secara digital untuk dinikmati kemudian. Unsur–unsur dalam multimedia dapat dikontrol oleh pengguna (user), maka disebut sebagai multimedia interaktif. Lima unsur dalam multimedia menurut Vaughan (2010): o
Teks (Text) •
Menurut Vaughan (2010, p.18), teks adalah suatu tulisan dan
simbol yang telah ada sejak 6000 tahun lalu, yang sudah digunakan untuk menyampaikan informasi atau untuk berkomunikasi hingga sekarang ini. Dikatakan bahwa teks merupakan gerbang utama menuju pengetahuan dan kekuasaan. o
Suara (Sound)
•
Menurut Vaughan (2010, p.18), suara adalah suatu gelombang
yang menghasilkan perbedaan tekanan yang sangat signifikan, yang dihantarkan
melalui
udara
sehingga
dapat
menggetarkan
indera
pendengaran. •
Adapun suara digital, yaitu suara yang dibuat secara digitizing.
Digitizing adalah proses pembuatan gelombang suara yang menggunakan angka – angka: -
MIDI Musical Instrumen Digital Interface, adalah suara musik yang
direkam secara digital. Pada umunya MIDI memiliki ukuran yang kecil. -
Digital Audio Digital audio terbentuk ketika gelombang suara digambarkan
dan dikarakteristikan menggunakan angka. Proses ini disebut sebagai digitizing. o
Gambar (Image) •
Gambar adalah media komunikasi visual yang berupa grafik
dua dimensi, yang menginterpretasikan suatu bentuk, agar informasi dapat disampaikan secara efektif dan efisien. •
Menurut Vaughan (2010, p.71), gambar bisa menjadi unsur
paling penting dari suatu proyek multimedia. • -
Terdapat dua jenis gambar, yaitu: Bitmap/Raster Gambar bitmap/raster dalah suatu gambar yang dibuat dari
banyak elemen gambar (pixel). Ukuran gambar bitmap lebih besar
karena menyimpan informasi berupa warna, koordinat dan intensitas warna. Gambar bitmap biasanya disimpan dengan ekstensi .BMP (Bitmap Image) dan .TIFF (Tagged Image Format File). -
Vector Gambar Vector adalah gambar yang dibuat berdasarkan
perhitungan matematik, yang mendukung gambar agar tidak terjadi jaggies ketika di perbesar (zoom in). Ukuran gambar vector lebih kecil dibandingkan dengan gambar bitmap. o
Animasi (Animation) •
Animasi adalah sekumpulan gambar atau objek visual yang
berubah-ubah
per waktu
sesuai
dengan
urutannya,
yang dapat
menghasilkan presentasi visual yang lebih hidup. (Vaughan, 2010, p.140) o
Video •
Video merupakan gambar-gambar bergerak yang dijalankan
dengan kecepatan yang berbeda. Video biasanya disertai dengan suara/audio. Menurut Vaughan (2010, p.164) video merupakan unsur dari multimedia yang paling menarik perhatian dari keramaian di pameran dagang, atau menarik minat siswa dalam proyek pembelajaran berbasis komputer. 1.1.2 Interaksi Manusia dan Komputer Interaksi manusia dan komputer merupakan disiplin ilmu yang mempelajari perancangan, evaluasi, dan implementasi suatu sistem komputer yang interaktif, yang akan dan dapat digunakan oleh manusia. Menurut Shneiderman & Plaisant (2010, p.22-23), interaksi manusia dan komputer
berkaitan dengan tampilan antarmuka (interface) yang digunakan oleh pengguna (user), untuk berkomunikasi atau berinteraksi dengan komputer. Dalam merancang antarmuka suatu aplikasi komputer, sangat penting diperhatikan mengenai kepentingan pengguna. Oleh karena itu, diharapkan aplikasi yang dibuat harus interaktif dan dapat digunakan dengan mudah oleh pengguna. Menurut Shneiderman & Plaisant (2010, p.32), terdapat 5 faktor yang perlu diperhatikan dalam perancangan antarmuka agar mudah dimengerti oleh pengguna (user friendly), yaitu: o
Waktu belajar •
Berapa
lama
waktu yang diperlukan
pengguna
untuk
mempelajari penggunaan aksi yang relevan terhadap suatu pekerjaan atau tugas. o
Kecepatan kinerja •
Berapa
lama
waktu yang diperlukan
pengguna
untuk
mengerjakan suatu pekerjaan atau tugas. o
Tingkat kesalahan pengguna •
Estimasi banyaknya kesalahan yang akan dilakukan oleh
pengguna dan jenis kesalahan apa yang sering dilakukan oleh pengguna dalam melakukan pekerjaan atau tugas itu. Pengendalian kesalahan adalah suatu komponen kritis dari penggunaan sistem antarmuka yang layak untuk dipelajari. o
Daya ingat •
Seberapa lama kemampuan pengguna untuk mempertahankan
ingatan mereka akan sesuatu yang telah dipelajari setelah waktu tertentu.
Sangat erat kaitannya antara daya ingat dan waktu belajar. Frekuensi penggunaan juga memiliki pengaruh terhadap daya ingat pengguna. o
Kepuasan subjektif •
Kepuasan yang didapatkan oleh pengguna dari suatu tampilan
antarmuka dapat diketahui dari hasil wawancara atau survei tertulis yang termasuk komentar bebas maupun tingkat kepuasan. Untuk merancang tampilan antarmuka (user interface) yang baik dan mempunyai tingkat usability yang tinggi, terdapat 8 aturan emas (8 Golden Rules) yang digunakan untuk merancang suatu antarmuka yang dapat dijadikan pedoman menurut Shneiderman & Plaisant (2010, p88-89), yaitu: •
Konsisten •
Antarmuka dirancang secara konsisten, baik menu, layout, jenis
huruf, bahasa dasar, dan lain lain. •
Melayani kebutuhan universal •
Dengan memperhatikan keragaman pengguna, maka rancangan
antarmuka harus mempertimbangkan perbedaan pengguna itu. Seperti usia, hambatan fisik, dan kemampuan mengenal teknologi. Perlu diadakan petunjuk dalam sistem antarmuka untuk pengguna yang awam dan shortcuts untuk pengguna yang sudah berpengalaman. •
Memberikan umpan balik yang informatif •
Untuk setiap aksi yang dilakukan oleh pengguna terhadap
sistem, harus terjadi umpan balik yang diberikan oleh sistem. Umpan balik itu haruslah sopan dan tidak berlebihan. •
Merancang dialog untuk menghasilkan keadaan akhir
•
Dalam merancang komunikasi arus balik dengan pengguna,
urutan tindakan harus diatur dengan mengetahui keadaan awal, pertengahan, dan akhir. Umpan balik yang informatif akan memberikan indikasi bahwa tindakan yang dilakukan sudah benar dan pengguna dapat mengetahui apa yang harus dilakukan berikutnya. •
Adanya pencegahan kesalahan dan penanganan kesalahan •
Sedapat mungkin agar sistem dirancang sehingga pengguna
tidak melakukan kesalahan yang fatal. Apabila terjadi kesalahan, sistem harus bisa mendeteksi kesalahan tersebut, dan menyampaikan instruksi kepada pengguna untuk memperbaikinya sebagai penanganan kesalahan. •
Memungkinkan pengembalian aksi yang mudah •
Setiap aksi yang terdapat dalam sistem sebisa mungkin
dirancang agar dapat diulang atau dikembalikan (reversible) jika pengguna melakukan kesalahan. Hal ini dapat mengurangi kekhawatiran pengguna karena menyadari bila terjadi kesalahan dapat dibatalkan seperti menjelajahi menu-menu yang baru atau yang belum dikenali oleh user. •
Mendukung pusat kendali internal •
Pengguna menjadi pengendali sebagai pemberi aksi pada
sistem. Kemudian sistem tersebut harus memberikan respon atau umpan balik, sehingga pengguna dapat menggunakan dan mengontrol programprogram yang ada di dalam sistem tersebut. •
Mengurangi beban ingatan jangka pendek •
Tampilan rancangan antarmuka harus dibuat sederhana,
sehingga pengguna tidak perlu banyak menghafal. Bisa dengan
menambahkan petunjuk di setiap halaman, agar pengguna tidak tersesat (lost) karena terlalu dalam membuka menu. 1.1.3 Storyboard Berdasarkan
teori Pardew
(2005,
p.3-4),
storyboard
merupakan
sekumpulan sketsa yang diurutkan dan menggambarkan kejadian-kejadian secara berururutan. Guna storyboard dalam game adalah untuk menggambarkan bagaimana game tersebut akan berjalan, dan juga untuk menampilkan urutan kejadian atau adegan sinematik yang akan terjadi dalam game. Dengan menggunakan storyboard, akan terlihat bagaimana sistem navigasi bekerja dalam game.
Gambar 2.1 Contoh storyboard (Sumber: Pardew, 2005, p5)
1.1.4 UML (Unified Modelling Lenguage)
Menurut Ambler (2005, p.1), salah satu kegiatan yang ada di dalam Agile Modeling adalah membuat sebuah model atas coding yang akan dilakukan. Untuk membuat model ini, dibutuhkan sebuah standar yang diakui oleh para developer. Model yang mengikuti notasi-notasi yang digunakan secara umum
dan mengikuti guideline yang efektif akan lebih mudah dimengerti. Salah satu model yang ada ialah UML(Unified Modeling Language) diagram. Penggunaan UML adalah sesuatu yang bagus karena UML ini mendefinisikan notasi dan semantik-semantik untuk model berorientasi objek yang umum. Berikut ini beberapa tipe diagram UML yang dipakai, yaitu: •
Use Case Diagram •
Menurut Ambler (2005, p.33), Use case diagram menjelaskan
interaksi antara pengguna dan sistem. Pengguna tersebut bisa berupa orang atau berupa sistem lain. Use case diagram memperlihatkan apa saja yang dapat berinteraksi dengan pengguna serta pengguna dapat melakukan apa saja dalam sistem tersebut. •
Pada umumnya use case diagram mempunyai tiga bagian,
yaitu: o
Actor, menggambarkan peran dari pemain atau sebuah alat yang berinteraksi langsung dengan sistem. Biasanya aktor digambar berupa stick figures.
o
Use case, merupakan aksi-aksi yang dapat dijalankan oleh aktor. Use case biasanya berbentuk elips.
o
Association, menggambarkan hubungan antara dua atau lebih objek, biasanya mewakilkan hubungan yang diperbolehkan dalam proses dalam suatu sistem. Association berupa garis lurus dan jika dibutuhkan ditambah panah pada ujungnya untuk memberitahukan arah koneksi tersebut.
Gambar 2.2 Contoh use case diagram (Sumber: Ambler, 2005, p.39) •
Class Diagram •
Menurut Ambler (2005, p. 47), Class diagram adalah sebuah
diagram yang digunakan untuk memperlihatkan struktur dari sebuah sistem, dimana diagram ini menampilkan kelas dari sistem tersebut beserta attribute dan method-nya. •
Secara umum, class diagram dibagi menjadi tiga bagian, yaitu:
o
Class name, terdapat pada bagian paling atas dari class diagram.
o
Attribute, terdapat pada bagian tengah class diagram
o
Method, terdapat pada bagian paling bawah diagram •
Dalam class diagram juga terdapat hubungan generalisasi,
yaitu: o
Inheritance, suatu hubungan antara superclass dan subclass, dilambangkan dengan anak panah yang solid dari subclass ke superclass.
o
Implementation, dilambangkan dengan garis putus – putus dengan panah solid.
•
Selain itu, terdapat hubungan association, yaitu hubungan yang
memiliki arti mempunyai. Terdapat dua jenis hubungan association, yaitu: o
Composition Hubungan composition memiliki arti memiliki. Tetapi memiliki dalam hal ini berarti class yang satu merupakan bagian dari bagian yang lain, dimana jika class yang satu dihilangkan, maka class
pasangannya
akan
ikut
menghilang.
Hubungan
ini
dilambangkan dengan garis tebal dengan panah belah ketupat solid. o
Aggregation Hubungan aggregation juga tidak jauh berbeda dengan composition, bedanya adalah dalam hubungan aggregation, jika class dihilangkan, maka class yang memiliki hubungan aggregation dengan class tersebut tidak akan ikut menghilang. Hubungan ini dilambangkan dengan garis tebal dengan panah belah ketupat transparan. •
Terakhir, ada hubungan yang disebut dengan dependency, yaitu
hubungan yang memiliki arti ketergantungan antara class yang satu dengan class yang lain. Hubungan ini dilambangkan dengan garis titiktitik dengan panah terbuka.
Gambar 2.3 Contoh Class Diagram
(Sumber: Ambler, 2005, p. 71) •
Sequence Diagram •
Menurut Ambler (2005, p. 80), Sequence diagram adalah
sebuah teknik permodelan yang dinamis yang digunakan untuk: •
Memvalidasi dan menyempurnakan logika dan kelengkapan penggunaan suatu skenario, mendeskripsikan bagaimana sebuah sistem dapat bekerja.
•
Menjelajahi sebuah desain dengan menyediakan cara untuk memvisualisasikan
permintaan
dari
operasi
yang
didefinisikan. •
Mengetahui class yang kompleks dari sebuah sistem.
•
Mendeteksi adanya bottleneck dalam desain, dengan melihat pesan apa saja yang dikirim ke sebuah objek.
•
Berikut merupakan pedoman untuk membuat sebuah Sequence
Diagram: •
Strive for Left-to-Right Ordering of Messages •
Aliran pesan dari sequence diagram dimulai dari
sudut kiri atas, dan pengiriman pesan antar objek digambar berurutan dari atas ke bawah. Namun, bila memang tidak memungkinan, pesan tidak harus diurutkan seperti ini. Proactive Actor pada sistem digambar di paling kiri, sedangkan Reactive Actor digambar pada posisi paling kanan. •
Give an Actor the Same Name as a Class if Necessary
•
Name Objects Only When You Reference Them in Messages
•
Objek pada diagram memiliki label nama dalam
bentuk
“name:
ClassName”,
dimana
“name”
adalah
optional. Objek yang memiliki nama disebut objects, sedangkan objek yang tidak memiliki nama disebut anonymous objects. Bila sebuah objek tidak disebut dalam sebuah pesan, maka sebuah objek tidak perlu dinamai. •
Justify Message Names Beside the Arrowhead •
Pesan dinamai dengan nama fungsi ditambah
dengan (). Pesan ini ditaruh di sebelah atas panah dan ditulis dalam cetak miring. •
Do not Model Obvious Return Values •
Return Value secara optional diindikasi dalam
bentuk dashed arrow dengan label yang menandakan sebuah return. Jika tidak jelas bahwa sebuah tindakan akan menghasilkan return value, maka tidak perlu digambar.
• Gambar 2.4 Contoh Sequence Diagram (Sumber: Ambler, 2005, p. 87)
•
Activity Diagram •
Menurut
Ambler
(2005,
p.113),
Activity
diagram
menggambarkan suatu proses yang sedang berjalan, berbeda dengan use case diagram dimana menggambarkan aktor yang menggunakan sistem. Activity diagram menjelaskan bagaimana alur proses dari keputusan pertama kali diambil sampai proses itu berakhir. •
Dalam activity diagram terdapat building block yang
merupakan bagian dari activity diagram, sebagai berikut: -
Initial Node, merupakan titik awal dari activity diagram. Berupa lingkaran hitam penuh.
-
Final Node, merupakan tanda dimana semua proses telah selesai. Berupa lingkaran hitam penuh dan dilapisi oleh lingkaran lagi.
-
Flow Final, merupakan proses harus diberhentikan karena aksi-aksi tertentu. Biasa berupa lingkaran dengan tanda silang didalamnya.
-
Action Nodes, merupakan nodes yang menggambarkan proses yang akan diproses. Biasa berupa kotak tumpul.
-
Fork Nodes, merupakan nodes yang membuat proses menjadi paralel dalam suatu proses. Biasa berupa dua panah yang tergabung menjadi satu panah.
-
Join Node, merupakan nodes yang menggabungkan proses paralel menjadi satu. Biasa berupa satu panah yang terbagi dua.
-
Decision Nodes, merupakan node yang membuat proses menjadi paralel tergantung dari pilihan yang akan dibuat. Biasa bergambar satu panah menjadi dua panah dengan pilihan yang disesuaikan.
-
Merge Nodes, merupakan proses yang menggabungkan beberapa langkah menjadi satu. Biasa bergambar dua panah menunjuk ke bentuk belah ketupat lalu menjadi satu panah.
Gambar 2.4 Contoh Activity Diagram (Sumber: Ambler, 2005, p. 114) 1.1.5 Mobile Computing Platform Menurut B’Far (2005, p.3), Mobile computing adalah sistem komputasi yang dapat dengan mudah dipindahkan secara fisik dan kemampuan komputasinya dapat digunakan ketika sedang dipindahkan. Contohnya adalah laptop, personal digital assistant, dan ponsel. Perangkat lunak mobile berkaitan dengan karakteristik dan persyaratan aplikasi mobile. •
Keterbatasan Mobile Computing
o
Rentang & Bandwidth: akses Mobile ke Internet umumnya lebih lambat dibandingkan koneksi kabel langsung, dengan menggunakan teknologi seperti GPRS dan EDGE, HSDPA, HSUPA 3G, dan jaringan 4G. Jaringan ini biasanya tersedia dalam jangkauan menara ponsel komersial. LAN nirkabel berkecepatan tinggi, murah tetapi memiliki rentang yang sangat terbatas.
o
Standar keamanan: Bekerja secara mobile bergantung pada jaringan publik, yang membutuhkan perhatian dalam menggunakan VPN. Keamanan adalah perhatian utama dari standar mobile computing. Seseorang dengan mudah dapat menyerang VPN melalui sejumlah besar dari jaringan interkoneksi.
o
Konsumsi daya: Ketika sebuah stopkontak listrik atau generator portabel tidak tersedia, komputer mobile harus bergantung sepenuhnya pada daya baterai. Dikombinasikan dengan ukuran banyak perangkat mobile, ini berarti baterai yang luar biasa mahal harus digunakan untuk mendapatkan masa pakai baterai yang dibutuhkan.
o
Interferensi transmisi: Cuaca, medan, dan kisaran dari titik sinyal terdekat semua bisa mengganggu penerimaan sinyal. Penerimaan dalam terowongan, beberapa bangunan, dan daerah pedesaan seringkali sangat sulit.
o
Potensi bahaya kesehatan: Orang yang menggunakan perangkat mobile saat mengemudi sering terganggu dan karena itu dianggap banyak terlibat dalam kecelakaan lalu lintas. Ponsel dapat
mengganggu perangkat medis yang sensitif. Pertanyaan tentang radiasi ponsel dan kesehatan telah dibesarkan. o
Antarmuka manusia dengan perangkat: Layar dan keyboard cenderung kecil, yang mungkin membuatnya sulit untuk digunakan. Metode input alternatif seperti pembicaraan atau pengenalan tulisan tangan membutuhkan pelatihan.
1.1.6 Kecerdasan Buatan Menurut Bourgh & Seemann (2004, p.1) kecerdasan buatan atau Artificial Intellegence (AI) adalah perilaku cerdas yang ditunjukan oleh mesin yang telah dibuat, atau mungkin otak buatan dibalik perilaku cerdas tersebut. Namun interpretasi tersebut tidaklah lengkap. Untuk beberapa orang, studi AI belum tentu bertujuan untuk menciptakan mesin yang cerdas, tetapi bertujuan untuk memperoleh wawasan yang lebih baik dalam sifat kecerdasan manusia. •
Latar Belakang Kecerdasan Buatan •
Pada awalnya komputer diciptakan untuk membantu manusia
melakukan perhitungan. Namun seiring berjalannya waktu, fungsi computer pun semakin meluas hingga ke berbagai aspek, dimulai dari aspek hiburan hingga aspek pengambilan keputusan atau pembuat solusi. •
Manusia menjadi pintar dalam menyelesaikan persoalan yang
dihadapi karena manusia memiliki pengetahuan dan pengalaman. Pengetahuan didapatkan dari proses belajar, dan pengalaman didapat berdasarkan perjalanan waktu dan kehidupan yang dialami oleh manusia. Semakin luas pengetahuan dan banyak pengalaman yang dimiliki oleh seseorang diharapkan orang itu lebih mampu menyelesaikan persoalan yang dihadapinya.
•
Komputer perlu diberi bekal pengetahuan dan diberikan
kemampuan untuk menalar agar dapat bertindak seperti dan sebaik manusia. Untuk itu, kecerdasan buatan akan memberikan metode yang diperlukan untuk membekali komputer dengan kedua komponen tersebut agar komputer bisa menjadi mesin yang cerdas yang dapat membantu manusia. •
Tujuan Kecerdasan Buatan • o
Adapun tujuan dari kecerdasan buatan adalah sebagai berikut:
Untuk mengembangkan metode dan sistem dalam penyelesaian suatu masalah. Masalah yang biasa diselesaikan melalui aktifitas intelektual manusia, misalnya pengolahan citra, perencanaan, pemahaman akan suatu hal, meningkatkan kinerja sistem informasi yang berbasis komputer
o
Untuk meningkatkan pemahaman manusia pada bagaimana otak manusia dapat bekerja
•
Basic Chasing and Evading •
Menurut Bourgh & Seemann (2006, p.1), dalam pengembangan
suatu game, akan dihadapkan pada karakter non-player (NPC) pada game yang berusaha mengejar atau lari dari karakter pemain. Dalam roleplaying game meliputi bagaimana membuat musuh atau monster atau makhluk lainnya mengejar karakter pemain. Dibutuhkan logika yang membuat musuh atau monster yang non-player untuk mengejar pemain. Pada tingkat paling dasar, pathfinding merupakan proses pemindahan posisis karakter game dari lokasi awal ke tujuan yang diinginkan. •
Greedy Algorithm
•
Menurut Cormen, Leiserson, Rivest, dan Stein (2001, p.16),
Algoritma Greedy adalah sebuah algoritma penyelesaian masalah dengan membuat pilihan yang terbaik saat ini, hal ini menyebabkan algoritma greedy tidak selalu menghasilkan penyelesaian yang optimal. Meskipun terdapat algoritma lain yang dapat menghasilkan penyelesaian optimal, seperti dynamic programming, algoritma greedy cukup simpel dan efisien untuk menghasilkan sebuah solusi. •
Selain itu, penggunaan algoritma yang rumit dan memiliki
proses yang panjang, dapat membuat sebuah aplikasi game menjadi tersendat atau bahkan membuat permainan tidak dapat dimainkan sama sekali, karena terlalu lama menunggu respons dari sistem. 1.1.7 Rekayasa Piranti Lunak •
Pengertian Software Engineering •
Menurut Pressman (2005, p.34), Software Engineering adalah
kegiatan yang menghubungkan antara proses, metode, dan alat dalam pembuatan suatu perangkat lunak. Ada berbagai macam model proses yang bisa digunakan dalam pengembangan perangkat lunak. Namun dari sekian banyak model proses tersebut memiliki beberapa tahapan yang sama dalam aturan, konsep, maupun metode pengembangannya. 1.1.7.1 System Development Life Cycle(SDLC) •
Dalam membangun suatu rekayasa piranti lunak, diperlukan
tahapan-tahapan, yaitu: o
Rekayasa Sistem Dimulai dengan mentapkan semua sistem elemen dan mengalokasikan beberapa bagiannya ke dalam usulan pada
perangkat lunak, kemudian menggabungkan semua level sistem dengan melakukan pengkajian dari level atas dalam pendesainan dan analisis. o
Analisis Kebutuhan Perangkat Lunak Merupakan proses untuk mengerti tentang domain informasi, fungsi, kinerja, dan halaman antarmuka pada perangkat lunak.
o
Desain Pada desain, prinsipnya adalah mengubah kebutuhan menjadi software yang layak dari segi kualitas sebelum proses pengkodean.
o
Pengkodean Proses pengkodean yaitu mengubah ke dalam bentuk yang dapat dibaca oleh mesin.
o
Pengetesan Proses yang memastikan semua kalimat dalam program telah dilakukan pengujian sehingga memberikan input sesuai dengan yang diinginkan.
o
Pemeliharaan Perangkat lunak akan mengalami perubahan setelah dikirim ke pengguna, maka proses pemeliharaan dilakukan dengan menerapkan setiap langkah daur ulang sebelumnya disertai perbaikan.
1.1.8 Metodologi Scrum Menurut Cohn (2009, p.21), Scrum merupakan metodologi yang mengatur jalannnya proses pembuatan perangkat lunak.
Gambar 2.5 Siklus metodologi scrum (Sumber: Mike Cohn, Software Development using Scrum, 2009, p43) Cara kerja metode Scrum menurut Sutherland (2010, p10), yaitu : •
Product backlog merupakan daftar kebutuhan backlog items, yaitu fitur dan produk yang akan diselesaikan dan diatur berdasarkan skala prioritas. Backlog adalah daftar prioritas apa yang diminta, peringkat dalam urutan nilai kepada pelanggan atau bisnis, dengan nilai barang tertinggi di atas urutan daftar.
•
The Sprint merupakan daftar tahap pengerjaan untuk penyelesaian backlog items yang dibuat secara mandiri oleh Scrum Team.
•
Sprint Planning adalah meeting yang dihadiri oleh Scrum Master, Scrum Team, dan Product Owner untuk membahas perencanaan diawal setiap iterasi(sprint). Fokus meeting ini ada dua hal yaitu:
•
o
Menentukan product backlog dan hasil akhir sprint.
o
Menentukan sprint backlog.
Daily Scrum adalah pertemuan singkat sekitar 15 menit yang dipimpin oleh Scrum Master sebelum memulai sprint setiap harinya. Pertanyaan yang biasa ditanyakan pada pertemuan ini adalah: o
Apa yang sudah dilakukan pada Scrum terakhir?
o
Apa yang akan kalian lakukan untuk Scrum berikutnya?
o
Apa yang membuat pekerjaan kalian tertunda?
Tujuan dari pertemuan singkat ini adalah melacak progress dari sprint dan membentuk komitmen yang kuat antar anggota tim. •
Sprint Review and Retrospective dilaksanakan pada akhir sprint dan mendemonstrasikan hasil sprint kepada Product Owner. Setelah Review Sprint, tim mendapatkan bersama-sama mendapatkan retrospektif yang merupakan kesempatan bagi tim untuk mendiskusikan apa bekerja dan apa yang tidak bekerja, dan menyetujui perubahan untuk dilakukan percobaan.
1.2
Teori Khusus 1.2.1 Android Menurut Burnette (2010, p.18), Android merupakan sistem operasi untuk mobile yang berbasis linux. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Kelebihan Andorid antara lain: •
Sangat terbuka dan bebas sebagai software yang open source.
•
Arsitekturnya bersifat Component-based sehingga setiap part dari suatu aplikasi yang sudah jadi dapat digunakan kembali untuk membuat aplikasi yang lain.
•
Banyak memiliki built-in services seperti GPS, SQL database, dan sebagainya.
•
Management otomatis untuk siklus hidup aplikasi.
•
Kualitas gambar dan suara yang bagus.
•
Karena menggunakan bahasa Java maka Android juga sangat portable untuk banyak perangkat keras. Awalnya Google Inc. membeli Android Inc. yang merupakan pendatang
baru yang membuat software untuk smartphone. Kemudian dibentuklah Open Handset Alliance untuk pengembangan Android. Open Handset Alliance (OHA) merupakan konsorsium dari 34 perusahaan perangkat keras, perangkat lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, TMobile, dan Nvidia. Saat perilisan perdana Android pada 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan open source pada perangkat mobile. Di lain pihak, Google merilis kode-kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan open platform untuk mobile. Berikut merupakan beberapa versi Android: •
Android versi Beta, dirilis 5 November 2007
•
Android versi 1.0, dirilis 23 September 2008
•
Android versi 1.1, dirilis 9 Maret 2009
•
Android versi 1.5 (Cupcake), dirilis pertengahan Mei 2009
•
Android versi 1.6 (Donut), dirilis September 2009
•
Android versi 2.0 / 2.1 (Eclair), dirilis 3 Desember 2009
•
Android versi 2.2 (Froyo : Frozen Yoghurt), dirilis Mei 2010
•
Android versi 2.3 (Gingerbread), dirilis 6 Desember 2010
•
Android versi 3.0 (Honeycomb), dirilis Mei 2011
•
Android versi 4.0 (Ice Cream Sandwich), dirilis 19 Oktober 2011
1.2.2 Eclipse Menurut Ghumalia (2010, p.9) Eclipse merupakan IDE (Integrated Development Environment) yang digunakan untuk pengembangan suatu perangkat lunak, dan dapat dijalankan di semua platform. Eclipse memiliki beberapa sifat sebagai berikut: •
Multi-platform •
Beberapa sistem operasi yang menjadi target Eclipse adalah
Microsoft Windows, Mac OS X, Linux, Solaris, AIX, HP-UX. •
Multi-language •
Eclipse adalah perangkat lunak untuk pengembangan aplikasi
multi bahasa meskipun kebanyakan ditulis dalam bahasa pemrograman Java. Selain bahasa Java, Eclipse dapat digunakan untuk pengembangan aplikasi dalam bahasa pemrograman Ada, C, C++, COBOL, Fortran, Haskell, Perl, PHP, Python, R, Ruby (termasuk Ruby on Rails framework ), Scala, Clojure, Groovy, dan Scheme. •
Multi-role •
Selain untuk mengembangkan perangkat lunak, Eclipse juga
dapat digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak seperti untuk dokumentasi, pengembangan web, tes perangkat lunak, dan lain sebagainya. Kelebihan Eclipse yang membuatnya popular adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan
plug-in. Eclipse dirilis di bawah persyaratan Lisensi Publik Eclipse, Eclipse SDK bersifat gratis dan open source software (meskipun tidak sesuai dengan GNU General Public License). Itu adalah salah satu IDE pertama yang berjalan di bawah GNU Classpath dan berjalan tanpa masalah di bawah IcedTea. 1.2.3 Game Menurut Adams (2010, p.2), game adalah suatu kegiatan bermain yang melibatkan act untuk peran tertentu di mana participant harus mencapai goal tertentu dan bertindak sesuai rule. •
Game elements •
Menurut Adams (2010, p.2), game memiliki beberapa element
yaitu: o
Play Play adalah bentuk partisipasional dari entertainment. berbeda dengan buku, film, atau teater yang adalah bentuk presentasional. Saat kita membaca buku, sang author yang menghibur kita namun saat kita bermain maka kita menghibur diri sendiri. Alur buku tidak dapat berubah namun sebuah game memiliki jalan cerita sesuai dengan cara kita bermain.
o
Pretending Setiap pemain dalam game menciptakan realitas sendiri dalam pikirannya. Dunia realitas ini dinamakan the magic circle. Di dunia realitas buatan ini pemain akan berpura-pura memainkan peran tertentu dan memiliki karakter yang sesuai dengan game. Setiap pemain dapat memiliki kemampuan-kemampuan imaginary seperti bergerak secepat cahaya, dsb.
o
Goal Setiap game harus memiliki satu atau lebih goal. Goal ini akan menentukan akhir dari game. Game akan selesai apabila goal tercapai. Goal ini berkaitan juga dengan rule. Rule dari game biasanya menentukan goal dari suatu game sebagai kondisi menang. Untuk beberapa game yang aneh, kondisi menang ini adalah ketika game tersebut tidak lagi dimainkan (sampai pemain merasa bosan).
o
Rule Rule adalah definisi atau instruksi yang disetujui pemain ketika memainkan game untuk mencapai goal. Rule ini berfungsi untuk membangun objektif dari game dan memberi makna dari setiap aktivitas dan peristiwa yang terjadi di dalam dunia the magic circle. Selain itu fungsi yang lain adalah agar pemain mengetahui kegiatan yang diijinkan dan tidak diijinkan dalam peran dan dapat mengevaluasi tindakan terbaik untuk mencapai goal.
•
Game genre • o
Menurut Rogers (2011, p.2), Ada beberapa genre game yaitu:
Skill atau Action games Game ini dimainkan dengan menggunakan real-time action seperti melompat di waktu yang tepat atau menembak target yang bergerak. Subtipe dari jeni game ini mencakup: -
Maze Games
-
Platform Games
-
Tower Defense Games
Pemain harus melindungi tower atau sesuatu dari pasukan yang datang. o
Shooter Games
o
One on one Fighting Games Pertarungan satu lawan satu.
o
One to many Fighting Games Pemain harus bertarung melawan satu kelompok lawan.
o
First Person Shooters
o
Third Person Shooters
o
Strategy Games Game ini membutuhkan lebih sedikit reaksi daripada action games. Game ini lebih berfokus pada merencanakan dan mengimplementasikan strategi untuk melampaui hambatan atau musuh. Subtipe game ini mencakup: -
Turn Based Games Mencakup juga game papan tradisional.
-
Timed Strategy Games Setiap gerakan muncul pada waktu yang tetap.
-
MMORPG Pemain
memerankan
peran
tertentu
dan
dapat
mengembangkan karakternya. o
Adventure atau Storytelling Games Game ini memiliki cerita yang kaya. Biasanya game ini mengambil cerita-cerita dari film atau buku. Subtipe dari tipe game ini yaitu:
o
-
Simple 2D story games
-
Complex 3D story games
Simulation Games Game ini mensimulasikan keadaan sebenarnya seperti bagaimana pemain menjalankan suatu kendaraan. Biasanya game ini membutuhkan alat yang membantu pemain dalam memainkan game ini lebih nyata. Tujuan dari game ini adalah agar pemain dapat mengoperasikan situasi yang nyata sebaik saat pemain bermain game ini. Mencakup:
o
-
Sports Simulators
-
Flight atau Space Simulators
-
Driving atau Racing Simulators
-
Boat atau Submarine Simulators
-
Life Simulators
Puzzle Games Banyak puzzle games adalah hasil translasi dari puzzle yang nyata, juga mencakup game mencocokkan atau hidden object games. Untuk game yang kompleks bahkan ada puzzle kecil yang harus dilakukan untuk melengkapi puzzle yang lebih besar. Beberapa tipe puzzle games yaitu: -
Word Based
-
Number/Math Based
-
Visual Matching
-
Hidden Object
-
Construction from a set of pieces
o
Augmented-Reality Games Merupakan game yang menggunakan teknologi yang canggih yang memasukkan informasi nyata ke dalam dunia komputer. Dengan teknologi ini maka game ini dapat mengambil gerakan nyata pemain sebagai input dalam game.
•
Game Design •
Menurut Overmars (2010, p.101), ada beberapa tips bagaimana
membuat game design yang baik yaitu: o
Pikirkan berapa banyak waktu game ini akan dimainkan setiap kali main. Waktu bermain ini akan berbeda antara computer game dan mobile game.
o
Perhatikan learning curve. Game seharusnya dimulai dengan tingkat mudah dan bertambah tingkat kesulitannya sedikit demi sedikit. Untuk mobile game penambahan tingkat kesulitan ini sebaiknya berjalan lebih lambat. Namun untuk orang-orang yang menyukai bermain game berlama-lama, penambahan tingkat kesulitan yang lambat akan membosankan. Hal ini dapat diatasi dengan memperhatikan gambar, animasi, dan element-element game yang menarik meskipun untuk level yang mudah.
o
Tutorial. Biasanya pemain sekarang lebih menyukai mempelajari cara memainkan game di lingkungan yang aman sebelum benarbenar masuk ke dalam game.
o
Collecting things. Dalam game biasanya ada hal-hal yang harus dikumpulkan oleh karakter. Contohnya dalam game “Angry Birds”, pemain dapat mengumpulkan golden eggs. Hal ini juga dapat
meningkatkan waktu bermain. Namun harus diperhatikan bahwa collecting things ini harus reachable atau setidaknya terlihat reachable agar tidak membuat pemain frustasi. Selain itu jumlah yang sudah dikumpulkan dan jumlah yang belum dikumpulkan harus jelas. Selain itu harus ada stimulasi yang membuat pemain memulai mencari seperti reward atau achievement. o
Konten game harus cukup. Pemain akan merasa kesal apabila game tersebut dapat diselesaikan terlalu cepat. Sebaiknya game dapat dimainkan cukup lama. Bahkan game sebaiknya dibuat ada perpanjangan setelah game tersebut selesai.
o
Multiplayer game sangat bagus karena saat game tersebut dimainkan multiplayer, game kita akan semakin dikenal. Namun jangan membuat seluruh game bergantung pada multiplayer. Kebanyakan orang bermain game di mobile secara sendiri.
•
Game balancing •
Menurut Schell (2008, p.172) Game balancing terdiri dari
beberapa tipe yaitu: o
Tipe 1: Fairness -
Symmetrical Salah satu faktor terpenting dalam game balancing adalah membuat sebuah game adil. Yang artinya antar pemain memiliki kesempatan untuk menang yang sama, resource di dalam game yang sama. Yang membedakan hanyalah skill atau decision yang dilakukan oleh pemain. Hampir semua tradisional board game seperti catur, monopoly, ludo, halma
menggunakan aturan ini. Selain itu semua olahraga juga menggunakan aturan ini. Hal ini dikarenakan aturan keadilan ini dapat menentukan pemain mana yang terbaik berdasarkan skill dan strategy. -
Asymmetrical Namun terkadang ada juga game yang menggunakan aturan asimetris. Alasan untuk menggunakan aturan asimetris ini ada beberapa yaitu:
Untuk mensimulasikan situasi di kehidupan nyata.
Untuk memberi pemain cara lain untuk mengeksplor game. Contohnya adalah game fighting. Dalam game ini pemain
dapat
memilih
karakter
dengan
berbeda
kemampuan dan membutuhkan perbedaan strategi dan cara memainkannya.
Personalisasi. perbedaan
Masing-masing
kemampuan
dalam
pemain bermain.
memiliki Dengan
memberi pemain kekuatan dan resource yang sesuai dengan kemampuan pribadi pemain akan membuat sang pemain merasa powerful.
Untuk memberikan tingkat kesulitan dalam game. Pada beberapa game, kesimbangan antara skill musuh dan karakter utama hanya akan membuat game terlalu mudah. Misalkan saja pada game pacman. Apabila game tersebut bersifat symmetrical yaitu jumlah ghost dan
pacman sama-sama satu, maka game tersebut akan menjadi terlalu mudah dan membosankan.
Untuk menciptakan situasi yang menarik. Dengan menciptakan situasi yang tidak simetris maka pemain akan
lebih
penasaran
dengan
kemampuan
atau
keuntungan yang dimiliki lawan dan bagaimana menghadapinya dengan menggunakan kelebihannya sendiri. o
Tipe 2: Challenge vs. Success Skill
karakter
dan
pemain
harus
seimbang
dengan
tantangannya. Tingkat kesulitan tantangan harus semakin tinggi sesuai dengan meningkatnya skill karakter dan pemain. Misalnya saja, dengan meningkatnya kekuatan equipment dan item serta bertambahnya skill dan status karakter maka kekuatan monster atau musuh yang ditemui juga semakin tinggi dan membutuhkan strategi yang berbeda. o
Tipe 3: Meaningful Choices Setiap pilihan dalam game seharusnya mempunyai pengaruh terhadap apa yang akan terjadi di dalam game dan bagaimana game tersebut akan berjalan. Banyak desainer game jatuh pada pembentukan pilihan yang salah. Contohnya adalah ketika dalam sebuah racing game diberikan 50(lima puluh) pilihan karakter namun setiap kendaraan tidak memiliki perbedaan dalam status dan cara memainkannya maka sama saja seperti tidak ada pilihan. Contoh kesalahan lain adalah
dalam pemilihan senjata dalam shooting game. Jika diberikan pilihan 10(sepuluh) jenis senjata namun satu dari senjata itu jelas lebih baik dari senjata yang lain, maka itu juga sama dengan tidak ada pilihan. o
Tipe 4: Skill vs. Chance Hal ini berkaitan dengan jenis serious atau casual game. Skill lebih dibutuhkan ketika kita mambuat serious game yang tingkat kesulitannya lebih tinggi sedangkan Chance lebih dibutuhkan ketika kita membuat casual game yang tingkat kesulitannya lebih rendah.
o
Tipe 5: Head vs. Hands Hal ini berkaitan juga dengan tipe game yang akan dibuat. Sebarapa besar game tersebut membutuhkan tindakan fisik seperti kecepatan menekan tombol atau memutar setir. Seberapa besar game tersebut lebih membutuhkan kemampuan berpikir dan membuat strategi.
o
Tipe 6: Competition vs. Cooperation Kompetisi dan kooperasi adalah hal dasar bahkan dalam kehidupan nyata. Sudah merupakan insting dasar mahkluk hidup untuk secara kompetisi lebih baik dari yang lain. Namun juga sudah merupakan kebutuhan dasar untuk bekerjasama dengan yang lain karena keterbatasan kemampuan sendiri. Dalam game hal ini perlu diseimbangkan agar game menjadi menarik.
o
Tipe 7: Short vs. Long Satu
hal
yang
penting
dalam
game
adalah
untuk
menyeimbangkan lama bermain. Jika game tersebut terlalu singkat
maka akan menyebabkan pemain tidak mendapat kesempatan untuk berkembang atau menerapkan strategi yang berarti. Namun jika game terlalu lama juga dapat mengakibatkan pemain akan merasakan bosan atau bahkan menghindari memainkannya karena membutuhkan waktu yang lebih lama. o
Tipe 8: Rewards Rewards adalah salah satu bentuk keseimbangan antara kemampuan pemain dengan score atau rewards yang didapat. Ada berbagai bentuk rewards dalam game yaitu: -
Praise: Pujian dari game berupa teks dengan efek-efek suara atau ucapan karakter game.
-
Points: Nilai yang akan menunjukkan apa yang sudah dicapai pemain.
-
Prolonged Play: Penambahan lama bermain. Contohnya adalah dengan mendapat bola atau nyawa tambahan dalam game pinball.
-
A Gateway: Terbukanya level baru, senjata baru, skill baru atau karakter baru. (sesuatu yang baru untuk dieksplorasi).
-
Spectacle: Munculnya sesuatu yang menarik atau indah untuk disaksikan seperti musik dan animasi.
-
Expression: Sesuatu untuk mengekspresikan keberhasilan dalam game seperti special clothes atau decoration.
-
Powers: Menjadi kuat adalah salah satu bentuk reward. Contohnya adalah mendapat special weapon.
-
Resources: Untuk jenis casino games, mendapat uang sebagai resource untuk memainkannya lagi adalah salah satu bentuk reward.
-
Completion: Menyelesaikan game adalah salah satu bentuk reward yang membuat pemain merasa puas. Namun hal ini membuat pemain tidak butuh memainkan game tersebut lebih lama lagi.
o
Tipe 9: Punishment Hukuman walau terlihat seperti mengurangi ketertarikan sebuah game namun kenyataannya justru menambah keasyikan dari game tersebut. Beberapa alasannya adalah: -
Hukuman menambah nilai dari sesuatu. Misalnya dengan hukuman berkurangnya resource maka nilai dari resource tersebut akan bertambah.
-
Resiko itu menarik. Menambah resiko berarti membuat kesuksesan setelah melewatinya menjadi lebih berharga dan menyenangkan.
-
Menambah tantangan. Game yang terlalu mudah akan cepat membosankan.
o
Tipe 10: Freedom vs. Controlled Experience Kita harus memikirkan sebaik-baiknya batasan-batasan apa saja yang perlu dibuat dalam game. Game yang terlalu bebas dapat menimbulkan kejenuhan namun game yang terlalu dibatasi akan menjadi tidak menarik. Contohnya adalah dalam game GTA. Dalam game tersebut pemain sangat bebas melakukan apa saja namun tetap
dibatasi sebagai karakter kriminal, dibatasi area map-nya, dan tetap ada quest atau challenge nya untuk membuatnya tetap menarik. o
Tipe 11: Simple vs. Complex Game yang terlalu simple biasanya juga dapat mengakibatkan rasa jenuh namun terkadang game yang simple juga dapat dibilang elegant. Begitu juga dengan kompleksitas. Game yang terlalu kompleks terkadang dapat dinilai terlalu membingungkan atau dapat juga dinilai secara positif sebagai sesuatu yang menarik. Hal ini bergantung pada selera atau target pemainnya. Karena itu kita harus menyeimbangkan tingkat kompleksitas game terhadap target pemainnya, casual atau serious.
o
Tipe 12: Detail vs. Imagination Hal ini juga berkaitan dengan tipe game. Biasanya Serious game akan lebih membutuhkan detail daripada imajinasi sedangkan casual game akan lebih banyak mengandung hal-hal imajinasi.
1.2.4 Tilemap Menurut Rogers (2011, p.174), tilemap adalah sebuah gambar yang terbentuk dari array polygon yang berulang. Tilemap akan terdiri dari banyak cell di mana setiap cell nya akan menunjukkan satu gambar dari tile set yang ada. Kumpulan atau gabungan dari setiap cell tersebut akan membentuk keseluruhan map.
Gambar 2.6 Contoh tilemap gurun
Gambar 2.7 Contoh tile set dari map gurun •
Isometric Tilemap •
Menurut Jan (2000, p7), isometric adalah sebuah proyeksi
dimana ketiga x,y, dan z pada sebuah objek 3D membentuk sudut yang sama. Menurut Cai, Deng, Han, Jiawei, dan Xiaofei (2007, p.2), isometric
adalah sebuah proyeksi dimana seluruh sudut pada objek memiliki derajat yang sama, yang menyebabkan setiap garis pada objek tersebut menjadi sejajar.
Isometric tilemap adalah salah satu jenis tilemap yang
menggunakan sudut isometric. Idenya adalah untuk membentuk sebuah Pseudo-3D sehingga membuat game terlihat 3D. •
Keuntungan Tilemap • o
Tilemap memiliki 2 keuntungan yang paling kritikal yaitu:
Banyak dari game dirancang untuk memiliki area map yang sangat besar dan dapat diperluas. Jika kita tidak menggunakan teknik tilemap maka untuk menghasilkan map yang demikian besar dibutuhkan memory yang sangat besar. Tilemap membantu untuk menghemat memory dan waktu untuk merender map.
o
Tiles dapat membantu memfasilitasi collision detection yang diperlukan dalam game. Dengan menggunakan garis-garis pada tilemap maka kita dapat membuat collision dengan hanya menggunakan sedikit computing resource.