BAB 2 TINJAUAN PUSTAKA
2.1
Interaksi Manusia dan Komputer 2.1.1 Pengertian interaksi manusia dan komputer Interaksi manusia dan komputer merupakan integrasi dan terapan berbagai macam disiplin ilmu dan metode psikologi untuk memperbaiki tools of computer science yang sudah ada (Shneiderman, 2010:22).
2.1.2 Faktor manusia terukur Menurut Shneiderman (2010:32), ada 5 faktor manusia terukur yang diperlukan untuk merancang suatu interface: 1. Waktu untuk mempelajari Merupakan
suatu
keadaan
berapa
lama
pengguna
dapat
mempelajari langkah-langkah yang diperlukan untuk melaksanakan satu tugas tertentu. 2. Kecepatan kinerja Seberapa cepat suatu tugas dapat diselesaikan. 3. Tingkat kesalahan pengguna Berapa banyak error yang dilakukan pengguna dan error yang ditemukan saat melaksanakan suatu tugas. 4. Daya Berapa
ingat lama
pengguna
setelah
pengguna
dapat
jangka mengingat
waktu
tertentu
langkah-langkah
penyelesaian suatu tugas tertentu. 5. Kepuasan subjektif Seberapa besar pengguna menyukai aspek-aspek yang terdapat dalam system.
7
8
2.1.3 Eight golden rules Menurut Shneiderman (2010:88), konsep delapan aturan emas dalam rancangan suatu interface terdiri dari: 1. Consistency Merupakan keadaan saat suatu interface memiliki keadaan yang konsisten. Dalam hal ini dapat berupa penggunaan warna, font, bahasa, layout. 2. Universal usability Mempunyai fasilitas yang memadai untuk melayani berbagai kebutuhan pengguna, misalnya help atau tutorial untuk pengguna novice, atau shortcut untuk tugas tertentu bagi pengguna expert. 3. Informative feedback Setiap aksi pengguna akan mendapatkan umpan balik (feedback) dari system dan umpan balik harus dapat dimengerti oleh pengguna. 4.
Design dialog to yield closure Mempunyai urutan aksi yang terorganisir terdiri dari awal, tengah dan akhir. Kemudian setiap urutan aksi tersebut
memberikan
informative
feedback
untuk
memandu pengguna menyelesaikan suatu tugas. 5. Prevent error Sistem dirancang agar mampu untuk mendeteksi kesalahan yang dilakukan oleh pengguna dan melakukan tindakan recovery jika pengguna melakukan kesalahan. 6. Permit easy reversal of actions
9
Pengguna
dapat
kembali
pada
aksi
sebelumnya.
Misalnya memberikan opsi cancel saat melakukan copy data. 7. Support internal locus of control Pengguna harus ditempatkan sebagai pengendali sistem bukan sebagai yang dikontrol. Sistem hanya akan merespon pada aksi pengguna.
8. Reduce short term memory Manusia mempunyai keterbatasan dalam ingatan. Oleh karena itu, perancang harus menggunakan komponenkomponen yang telah dikenal secara umum dalam rancangan interface. Misalnya, memunculkan daftar dokumen dalam jumlah besar daripada pengguna harus mengetik nama dokumen tersebut.
2.2
Multimedia
2.2.1 Pengertian multimedia Menurut Vaughan (2011:Chapter 1 - Introduction), multimedia adalah kombinasi manipulasi antara text, foto, suara, animasi, dan video yang dipresentasikan menggunakan perangkat elektronik. Multimedia bila digabungkan dengan user control menghasilkan interactive multimedia.
2.2.2 Elemen-elemen multimedia Elemen multimedia terdiri dari 5 elemen yang terdiri dari: 1. Text Menurut Vaughan (2011:25-26), Teks memberikan informasi yang dapat memiliki makna yang kuat. Secara umum typeface dari teks terbagi menjadi dua yaitu serif dan sans-serif yang memiliki perbedaan
10
pada ada atau tidaknya dekorasi pada akhir goresan huruf.
Gambar 2. 1 Serif (kiri) dan Sans Serif (kanan) (Vaughan, 2011:25) 2. Images Gambar yang digunakan di dalam multimedia dapat berupa bitmap atau vector. 1. Gambar bitmap Terdiri dari elemen bit sederhana yang memberikan tanda on atau off, hitam atau putih, true atau false, 1 (benar) atau 0 (salah). Gambar bitmap terdiri dari kumpulan matriks bit sederhana yang membentuk image (Vaughan, 2011:71). 2. Gambar vector Vektor merupakan garis yang dideskripsikan dengan dua titik dan diterapkan dengan koordinat kartesian dalam bentuk perpotongan antara dua garis yakni garis horisontal dan garis vertikal. Selanjutnya, kumpulan
dari
perpotongan
tersebut
akan
membentuk gambar. 3. Animation Animasi merupakan tindakan membuat presentasi statis menjadi hidup ketika ada perubahan visual dari waktu ke waktu dan menambahkan pengalaman baru
11
dalam
proyek
multimedia
dan
halaman
web
(Vaughan, 2011:140). 4. Sound Menurut Vaughan (2011:104), suara merupakan suatu bentuk getaran di udara yang bergerak back dan forth mirip seperti cone dan membentuk gelombang suara. Gelombang ini bergerak seperti riak air. Ketika gelombang ini mencapai gendang telinga, maka gendang telinga merasakan perubahan tekanan atau getaran udara. Perubahan inilah yang disebut suara dan diukur dengan satuan decibels (dB). 5. Video Manusia sampai saat ini masih tertarik dengan video. Video dapat digunakan sebagai media bertukar informasi karena kedekatannya dengan dunia nyata. Walaupun begitu, video adalah salah satu media yang membutuhkan spesifikasi komputer lebih tinggi daripada yang lainnya (Vaughan, 2011: 164).
2.2.3 Storyboard Menurut Vaughan (2011: 183), Storyboard merupakan rancangan kerja seperti apa proyek multimedia yang akan dihasilkan nanti. Storyboard menghasilkan langkah-langkah sequential dari proyek
yang
dikerjakan
mencakup
pewarnaan,
pergerakan,
lingkungan, pencahayaan dan sebagainya yang dibutuhkan dalam proyek tersebut (Vaughan, 2011: 183).
2.3
Unified Modeling Language (UML)
2.3.1 Pengertian UML
12
Kaidah model yang digunakan untuk menspesifikasikan atau untuk menjelaskan sistem in terms of objects (Whitten and Bentley, 2007: 371). 2.3.2 Use case diagram Use
case
digunakan
untuk
mengidentifikasikan
dan
mendeskripsikan fungsi sistem. Fungsi-fungsi ini dijelaskan oleh external users dan dalam terminologi yang dimengerti secara umum. Use case direprentasikan oleh elips horizontal yang digunakan untuk mereprentasikan satu tujuan dari sistem dan menggambarkan urutan aktivitas serta interaksi user untuk menyelesaikan tugas (Whitten and Bentley, 2007: 246).
Gambar 2. 2 Use Case Diagram (Whitten and Bentley, 2007:246)
Actor pada use case diagram adalah segala sesuatu yang membutuhkan interaksi dengan sistem untuk bertukar informasi. Actor digambarkan dengan stick figures (Whitten and Bentley, 2007:247).
13
Gambar 2. 3 Actor Symbol (Whitten and Bentley, 2007:247)
Beberapa jenis tipe relationship dalam use case diagram antara lain: 1. Associations Menurut
Whitten
and
Bentley
(2007:248),
associations merupakan relasi yang terjadi antara aktor dan use case, hubungan tersebut bisa terjadi searah atau dua arah.
Gambar 2. 4 Associations Relationship (Whitten and Bentley, 2007:248)
2. Extends Menurut Whitten and Bentley (2007:248), sebuah use case mungkin saja terdiri dari fungsi-fungsi yang kompleks sehingga untuk menyederhanakan fungsi tersebut diciptakan ekstraksi menjadi fungsi use case yang lebih kecil. Hasil dari ekstraksi
ini
disebut
extension
use
case.
Hubungan antara extension use case dengan use
14
case
yang
terekstraksi
disebut
extends
relationship.
Gambar 2. 5 Extends Relationship (Whitten and Bentley, 2007:248)
3. Includes (or uses) Menurut
Whitten
and
Bentley
(2007:249),
hubungan antara use case yang menunjukkan bahwa satu use case tidak dapat dilakukan sampai use case yang lain dilakukan disebut depends on.
Gambar 2. 6 Depends On Relationship (Whitten and Bentley, 2007:249)
15
2.3.3 Use Case Narrative Menurut Whitten and Bentley(2007:157-158), use case narrative merupakan dokumentasi dari setiap use case yang telah dibuat. Bagian-bagian dari use case narrative meliputi: 1.
Use case name Nama use case harus menggambarkan tujuan dari kegiatan yang akan diselesaikan dan dimulai dengan kata kerja.
2.
Description Ringkasan singkat use case mengenai garis besar tujuan dan aktivitas yang dilakukan.
3.
Primary Business actor Primary business actor merupakan pelaku atau yang mendapat keuntungan langsung dari eksekusi suatu use case.
4.
Triggers Triggers merupakan kejadian yang diinisiasi oleh karena adanya eksekusi suatu use case.
5.
Precondition Precondition merupakan keadaan sistem sebelum use case dieksekusi.
2.3.4 Activity diagram Merupakan diagram yang digunakan untuk menggambarkan aliran proses bisnis, langkah-langkah use case, dan logika dari perilaku objek (Whitten and Bentley, 2007:390). Menurut
Whitten
and
Bentley
(2007:391),
beberapa
komponen yang digunakan pada activity diagram antara lain: 1. Initial node Digambarkan dengan lingkaran hitam penuh (solid circle) yang merepresentasikan proses awal. 2. Actions
16
Digambarkan mempunyai
dengan sudut
yang
persegi
panjang
melengkung
yang
(rounded
rectangle) yang merepresentasikan masing-masing proses. 3. Flow Digambarkan dengan garis yang memiliki panah untuk menandakan arah dari actions. Flow input dan hanya mempunyai satu flow output. 4. Activity final Digambarkan dengan lingkaran hitam penuh yang dilapisi oleh lingkaran luar dan menandakan bahwa proses telah selesai.
Gambar 2. 7 Activity Diagram
17
2.3.5 Class diagram Menurut Whitten dan Bentley (2007:373), sebuah
class
diagram menggambarkan hubungan kelas-kelas dan komponenkomponen yang digunakan dalam software yang terdiri dari: 1. Class merupakan objek yang memiliki atribut dan behaviour yang sama (Whitten dan Bentley 2007:373). 2. Class Relationship merupakan hubungan antara satu atau lebih objek dan class (Whitten dan Bentley 2007:373). 3. Association merupakan hubungan antara satu kelas dengan kelas lain yang dihubungkan oleh garis
(Whitten dan Bentley
2007:378). 4. Composition merupakan hubungan yang saling bergantung antara satu class dengan class lain (Whitten and Bentley 2007:373). 5. Multiplicity jumlah minimum atau maksimum object occurence dapat terjadi (Whitten and Bentley 2007:377).
18
Gambar 2. 8 Class Associations and Multiplicity Notations
Class diagram juga mempunyai beberapa level akses dari atribut dan method dari class yang disebut visibility. Visibility terbagi menjadi tiga jenis yaitu publik (+), protected (#), private (-) (Whitten and Bentley, 2007:650). Method pada class diagram didefinisikan sebagai logika software yang dieksekusi untuk memberikan response kepada message yang diterima (Whitten and Bentley, 2007:651). Class diagram juga mempunyai atribut yang didefinisikan sebagai data yang merepresentasikan karakteristik dari objek.
19
Gambar 2. 9 Class Diagram (Whitten and Bentley, 2007:661) 2.4
Software Engineering
2.4.1 Pengertian software engineering Software penerapan
engineering
sistematis
dan
merupakan pendekatan
disiplin
ilmu
kuantitatif
teknik dalam
pengembangan, operasi, dan pemeliharaan software (Pressman, 2010:13).
2.4.2 Pengertian process model Merupakan kerangka kerja, tugas, jaminan kualitas, dan mekanisme kontrol untuk setiap proyek (Pressman, 2010:38-39).
20
2.4.3 Incremental process model Model incremental mengkombinasikan elemen-elemen dari linear dan parallel process flow. The first increment biasanya adalah core product. Core product telah memenuhi kebutuhan dasar requirement namun fitur-fitur tambahan lain yang diperlukan (baik yang telah diketahui dan yang belum diketahui) masih belum terpenuhi. Core product biasanya digunakan oleh customer atau melalui evaluasi secara mendetail. Hasil dari penggunaan atau evaluasi digunakan sebagai increment selanjutnya. Rencana modifikasi ditujukkan pada core product untuk semakin memenuhi kebutuhan user, memberikan fitur baru dan fungsi tambahan. Proses ini terus berulang mengikuti setiap penambahan fitur sampai produk yang lengkap dihasilkan (Pressman, 2010:41-42).
Menurut Pressman (2010:115-116), beberapa tahapan di dalam incemental model process meliputi: 1. Communication Komunikasi berfokus pada kebutuhan untuk mengurangi tingkat kesalahan, menambah komunikasi antara developer dan customer agar dapat mencapai komunikasi yang
efektif.
2. Planning Planning mempunyai tujuan untuk memberikan pedoman terbaik perencanaan sampai kepada hasil produk yang lengkap. Perencanaan bisa saja dirancang untuk memberikan satu increment atau didefinisikan untuk satu proyek penuh. Perencanaan harus mengetahui apa yang harus dilakukan, siapa yang
akan
melakukannya,
dan
kapan
pekerjaan
akan
diselesaikan. 3. Modeling Modeling meliputi analisa dan desain, menjelaskan representasi software secara rinci. Modeling ditujukan untuk menyamakan
21
gagasan
mengenai
tugas
yang
akan
diselesaikan
dan
menyediakan pedoman teknis dalam implementasi software. 4. Construction Pada tahap construction dilakukan kegiatan coding dan testing. Prinsip coding didefinisikan sebagai tindakan umum menulis code untuk menghasilkan program. Testing merupakan proses eksekusi program dengan tujuan untuk menemukan error. 5. Deployment Deployment terjadi dalam setiap software increment. Software dipresentasikan pada customer yang meliputi penyampaian, dukungan, dan umpan balik. Prinsip-prinsip penyampaian software
mempertimbangkan
ekspetasi
customer
dan
menyediakan dukungan informarsi customer.
Gambar 2. 10 Incremental Process Model (Pressman, 2010:42)
22
2.5
Object Oriented Design and Programming 2.5.1
Object oriented analysis design Merupakan analisa, perancangan dan pengembangan sistem
berbasis objek (Deitel, 2012:12).
2.5.2
Object oriented programming Merupakan pembuatan program yang mengimplementasikan
Object Oriented Design (OOD) sebagai basis dan menjadikannya sebagai working system (Deitel, 2012:12).
2.6
Game
2.6.1 Pengertian game Game didefinisikan sebagai aktivitas bermain yang dilakukan dalam konteks pretended reality. Partisipan mencoba untuk mencapai satu keinginan atau tujuan sesuai dengan ketentuan yang berlaku (Adams, 2010:3).
2.6.2 Game genre Genre merupakan pengelompokkan karakter game melalui kumpulan tantangan tertentu tanpa menghiraukan pengaturan dalam game atau isi dari game-world tersebut (Adams, 2010:70). Menurut Adams (2010:70-71), ada beberapa game genre yang terdiri dari: 1. Action games Action games memasukkan elemen fisik sebagai komponen utama. Genre ini juga memungkinkan elemen puzzle didalamnya. Jenis permainan balap, berbagai macam tantangan konflik, diantara karakter.
Action
games kadang-kadang menyimpan tantangan ekonomi,
23
biasanya melalui pengumpulan objek tertentu. Action games jarang memasukkan strategi atau tantangan konseptual. Action games umumnya terbagi menjadi dua tipe yaitu shooter games dan fighting games.
2. Strategy games Strategy games memasukkan tantangan strategi, taktikal, dan kadang logika. Strategy games juga mungkin memberikan tantangan ekonomi dan eksplorasi untuk memperpanjang durasi dan memberikan lebih banyak keanekaragaman. Dalam suatu waktu mungkin saja strategy games memberikan tantangan fisik yang sangat mengganggu bagi player game jenis ini. 3. Role playing games Mempunyai tantangan taktikal, logika, dan eksplorasi. Role-playing
games
juga
memasukkan
tantangan
ekonomi. Game ini biasanya mempunyai loot collecting dan kemudian menukarnya dengan peralatan (weapons) yang lebih baik. Role-playing games kadang-kadang memasukan elemen puzzle dan tantangan konseptual, namun jarang yang bersifat physical. 4. Real-word simulation Memasukkan
elemen
olahraga
atau
kendaraan
didalamnya, termasuk kendaraan militer. Real-world simulations mempunyai banyak tantangan fisik dan taktik tetapi tidak ada tantangan eksplorasi, ekonomi atau konseptual. 5. Construction and management game Construction
and
management
game
seperti
RollerCoaster Tycoon diutamakan dalam tantangan
24
ekonomi dan konseptual. Game jenis ini sangat jarang elemen konflik atau eksplorasi dan game jenis ini tidak pernah memasukkan elemen fisik. 6. Adventure game Mengutamakan penyediaan eksplorasi dan puzzlesolving. Adventure games terkadang juga mempunyai tantangan
konseptual.
Adventure
games
mungkin
memasukkan elemen fisik tapi sangat jarang. 7. Puzzle game Menawarkan tantangan logika dan konseptual hampir seluruhnya walaupun ada elemen time pressure atau elemen aksi. 2.6.3 Game design Merupakan proses mengimajinasikan game, mendefinisikan bagaimana
game
bekerja,
menjelaskan
elemen-elemen
yang
terkandung dalam game (konseptual, fungsional, artistik, dan lainnya), dan mentransmisikan informasi game kepada developer (Adams, 2010:29).
2.6.4 Game balancing Supaya game dapat dinikmati, maka game harus mempunyai balancing yang baik. Game yang balanced mempunyai sifat fair saat dimainkan. Artinya, tidak terlalu mudah ataupun terlalu sulit dan kemampuan player menjadi faktor penentu kesuksesan. Game balancing menunjuk pada sebuah koleksi desain dan tuning yang membentuk kualitas game terus berkembang (Adams, 2010:324).
2.6.5 Game machines Game
machines
mengindikasikan
sebuah
game
dapat
dimainkan. Peralatan input-output, kecepatan processor, besar
25
penyimpanan data, definisi cakupan game merupakan faktor kunci yang diperhatikan. Oleh karena itu, perlu mengetahui kelebihan dan kelemahan dari berbagai game machine dan bagaimana player menggunakan berbagai game machine (Adams, 2010:78).
2.6.6 Game engine Perangkat lunak yang mengimplementasikan aturan game. Core mechanics menentukan apa yang akan dilakukan oleh game engine akan tetapi core mechanics tidak mengatur bagaimana game engine akan melakukan aturan tersebut. Jika ada lebih dari satu cara untuk mencapai aturan yang sama dalam permainan, programmer memutuskan cara mana yang akan digunakan (Adams, 2010:288).
2.7
Unity 3D Unity3D memberikan permulaan yang bagus bagi pengembangan game,
balancing features dan fungsionalitas. Unity3D mengijinkan orang untuk bereksperimen, belajar, mengembangkan, dan menjual games. Pengguna awal Unity cenderung diarahkan untuk bermigrasi dari Flash dan Director, membuat lingkungan scripting menjadi mudah diadaptasi. (Blackman, 2013:xxvi). Scripting merupakan sekumpulan instruksi dan berisi sejumlah informasi yang terorganisasi sehingga game engine dapat mengetahui bagaimana dan kapan menggunakan informasi. Di dalam Unity3D, keberadaan sebuah script akan bersama dengan objek. Script akan memanipulasi dengan suatu scene, seperti perubahan pencahayaan dapat menimbulkan suatu aksi pada objek yang berbeda. Script dapat bersifat sederhana dan dapat digunakan kembali (reusable), atau bersifat kompleks dan terspesialisasi. (Blackman, 2013:63).
26
2.8
Windows Platform Komputer berbasis Windows bukan merupakan komputer “bundling”
seperti Mac, tetapi merupakan satu kesatuan yang terikat bersama karena kebutuhannya. Power supply, processor, monitor, keyboard, harddisk, CDROM, video device, audio device merupakan sebagian kecil dari banyak komponen yang membentuk kesatuan platform Windows (Vaughan, 2011:201).
2.9
Computational Intelligence and Tower Defence Games Togelius (2011) menjelaskan bahwa Tower Defence Games merupakan
salah satu game strategi yang berfokus pada alokasi sumber daya dan penempatan unit bertahan (tower). Pada Tower Defence Games, player membeli dan mengorganisasi unit bertahan (tower) yang akan menyerang sejumlah unit (creep) penyerang. Akan tetapi, semakin berkembangnya Tower Defence Games banyak jenis tower dan creep tercipta sehingga semakin sulit jika melakukan balancing secara manual. Developer akhirnya menggunakan
bantuan
Computational
Intelligence
untuk
membantu
melakukan game balancing.
2.10
Artificial Intelligence for Dynamic Difficulty Adjustment Hunicke dan Chapman (2004) menyatakan game didesain untuk
memberikan pengalaman lebih bagi penggunanya, berbeda dengan film yang bersifat searah. Game bersifat interaktif, yang berarti player dapat berinteraksi dengan lingkungan yang diciptakan dari game tersebut. Dynamic Difficulty Adjustment merupakan model game balancing berdasarkan Computational
Intelligence.
Dynamic
Diffculty
Adjustment
akan
menggantikan metode balancing secara manual oleh developer. Dengan adanya Dynamic Difficulty Adjustment ini diharapkan game yang dirancang akan menyesuaikan tingkat kesulitan secara otomatis sesuai dengan assesment dari berbagai pattern terhadap player pada saat game sedang dimainkan.
27
2.11
Adaptive Game AI Adaptive gane AI mempunyai kemampuan untuk mengubah situasi yang sedang terjadi. Game AI sendiri diartikan sebagai kelakuan cerdas dari karakter game oleh peneliti akademis. Namun bagi para pengembang game, game AI digunakan dengan cakupan yang lebih luas seperti pathfinding, sistem animasi, tingkatan geometri, collision physics, vehicle dynamics, dan generation of random numbers.
Adaptive game AI agar dapat diterapkan dengan optimal harus memenuhi 4 kebutuhan komputasional, jika game AI tidak memenuhi kebutuhan komputasional maka game AI tersebut tidak berguna dalam penerapan. Selain komputasional requirements terdapat juga functional requirements. Functional requirements bersifat opsional bergantung pada preferensi game developer. 1. Kriteria computanional requirements yaitu : 1. Speed Adaptive game AI harus cepat secara komputasional. 2. Effecftiveness Adaptive game AI harus bisa menghasilkan tujuan yang masuk akal. Sebagai contoh, ketika player mengalami kesulitan, adaptive game AI akan menghasilkan perhitungan baru secara langsung untuk menurunkan tingkat kesulitan, sehingga tujuan adaptive game AI menjadi jelas untuk menyeimbangkan AI dengan kemampuan player. 3. Robustness Game harus bisa memberikan toleransi kesalahan dalam perhitungan agar game tetap dapat berjalan walaupun terjadi sedikit kesalahan. 4. Efficiency Efisiensi
berkaitan
dengan
script
yang
akan
menghasilkan
perhitungan langsung mengarah ke tujuan dari adaptive tersebut dan perhitungan harus dilakukan dengan cepat dan tepat.
28
2. Kriteria functional requirements yaitu : 1. Clarity Adaptive
game
AI
harus
menghasilkan
output
yang
dapat
diinterpretasikan dengan mudah. 2. Variety Script yang digunakan harus bervariasi agar player tidak bisa memprediksi respon dari system. 3. Consistency Hasil perhitungan dari adaptive game AI harus konsisten bersesuaian dengan kemampuan player. Sebagai contoh, ketika player bermain dengan baik maka tingkat kesulitan meningkat lebih besar. 4. Scalability Adaptive game AI harus mempunyai skala tingkat kesulitan dari player.