BAB 2 LANDASAN TEORI
2.1 Teori yang Berkaitan dengan Interactive Multimedia Teori umum adalah teori – teori pokok yang dijadikan sebagai landasan dari teori – teori yang dipakai dalam penulisan skripsi ini. 2.1.1 Multimedia Vaughan (2011: 1) mendeskripsikan multimedia sebagai “kombinasi dari text, art, sound, animation dan video yang disampaikan menggunakan komputer atau alat elektronik lainnya atau dimanipulasi secara digital.” 2.1.1.1 Elemen – elemen Multimedia Menurut Vaughan (2011: 18 – 190), multimedia terdiri dari lima elemen, yaitu: 1. Text Text adalah sebuah alat komunikasi yang sudah mulai dipakai sejak 6.000 tahun lalu. Text digunakan untuk mengkomunikasikan pikiran, ide, serta fakta – fakta di hampir semua aspek kehidupan manusia. 2. Images Image adalah representasi grafik dan visual dari informasi yang dapat ditampilkan pada layar komputer atau tercetak. Image dapat dibagi menjadi dua tipe, yaitu: a. Bitmap / Raster Bitmap adalah matrix yang terdiri dari titik kecil yang membentuk suatu gambar dan ditampilkan pada layar komputer atau dicetak. b. Vector Vector adalah sebuah garis yang dideskripsikan berdasarkan lokasi dari 2 titik. Gambar vector menggunakan Cartesian coodinates dimana angka yang ada mendeskripsikan sebuah
9
10 titik pada ruang dua dimensi sebagai persimpangan dari garis horizontal dengan vertical. 3. Sound Sound adalah vibrasi (getaran) cepat yang ditransmisikan sebagai variasi dalam tekanan udara. Sound terdiri dari dua jenis, yaitu: a. MIDI MIDI atau Musical Instrument Digital Interface adalah sebuah standar komunikasi yang dibuat pada awal tahun 1980-an untuk alat music elektronik dan komputer. b. Digital Audio Digital
Audio
terbentuk
ketika
gelombang
suara
dikarakteristikkan menggunakan angka, atau biasa disebut digitizing. 4. Animation Animation dapat didefinisikan sebagai sebuah aksi yang membuat sesuatu menjadi hidup atau membuat presentasi static menjadi hidup. Teknik animasi terdiri dari beberapa jenis, yaitu: a. 2D animation 2D animation adalah perubahan visual yang membuat gambar terlihat hidup dan berlangsung pada bidang X dan Y dari layar. b. 3D animation Pada 3D animation, software membuat dunia virtual dalam tiga dimensi, dan perubahan berupa gerakan dikalkulasikan dalam tiga bidang (x, y, dan z). 5. Video Video merupakan elemen multimedia yang paling menarik, metode yang sangat baik untuk menyampaikan multimedia dan sebagai alat yang paling efektif untuk membawa pengguna komputer lebih dekat ke dunia nyata.
11
2.1.2 Interaksi Manusia dan Komputer (IMK) Menurut Shneiderman (2010: 88-89), mengatakan bahwa terdapat delapan prinsip dalam interface design yang dapat diaplikasikan dalam sistem interaktif yang disebut “golden rules”, yang terdiri dari: 1.
Strive for consistency Konsistensi dibutuhkan pada suatu kondisi yang mirip atau identik. Terminologi yang identik biasanya digunakan pada menu, dan help screens. Selain itu warna, layout, huruf kapital, fonts, dan sebagainya juga membutuhkan konsistensi yang menyeluruh.
2.
Cater to universal usability Mengenali kebutuhan pengguna yang beragam, seperti perbedaan antara level pengguna, rentang usia, penyandang cacat, dan perbedaan teknologi. Penambahan fitur untuk pemula seperti penjelasan, dan fitur untuk yang sudah ahli seperti penggunaan shortcut dapat memperkaya interface design dan meningkatkan kualitas sistem.
3.
Offer informative feedback Untuk setiap aksi dari pengguna, harus ada umpan balik dari sistem. Untuk aksi yang sering dan minor respon sistem dapat lebih sederhana, sedangkan untuk aksi yang jarang dan utama, respon sistem harus lebih substansial.
4.
Design dialog to yield closure Urutan aksi hendaknya disusun menjadi kelompok awal, tengah, dan akhir. Umpan balik yang informatif pada penyelesaian salah satu kategori aksi untuk user yang sudah melakukan aksi dengan benar, memberikan kepuasan atau rasa lega, dan menjadi indikator untuk melakukan urutan aksi selanjutnya.
5.
Prevent errors Sedapat mungkin, sistem didesign sedemikian rupa agar user tidak dapat membuat kesalahan yang serius. Jika user membuat kesalahan,
12 sistem harus dapat mendeteksi kesalahan dan memberikan instruksi yang mudah dimengerti dan jelas untuk memperbaikinya. 6.
Permit easy reversal of actions Dalam suatu aplikasi, sebisa mungkin aksi yang dilakukan oleh user dapat diulang. Fitur ini dapat mengurangi rasa cemas, karena user tahu bahwa kesalahan dapat dibatalkan.
7.
Support internal locus of control User yang berpengalaman sangat menginginkan suatu kondisi dimana mereka yang memegang kendali penuh atas interface dan interface juga merespon terhadap aksi yang dilakukan oleh user.
8.
Reduce short-term memory load Keterbatasan manusia dalam memproses informasi dalam waktu jangka waktu yang pendek dibutuhkan tampilan yang sederhana, penggabungan halaman-halaman, pengurangan frekuensi windowmotion, pemberian waktu latihan yang cukup untuk kode-kode, hafalan, dan rangkaian aksi.
2.1.3 Storyboard Vaughan (2011: 295) mengatakan bahwa storyboard atau graphic outlines menjelaskan projek dalam detail yang sesuai, menggunakan katakata dan sketsa kasar untuk setiap gambar, suara, dan pilihan navigasi hingga warna yang spesifik, isi dari teks, bentuk tombol, dan berbagai hal lainnya (pendekatan ini sangat cocok untuk tim yang dapat membuat prototype dengan cepat dan dapat mengubahnya menjadi produk yang sudah jadi dengan cepat). Selain itu menurut Vaughan (2011: 295) juga terdapat metode storyboard lain yang dapat digunakan, yaitu storyboard yang kurang detail yang digunakan sebagai pandukan skematis yang menggunakan sedikit desain, dimana membutuhkan usaha yang lebih dalam pembuatannya.
13
2.1.4 Unified Modeling Languange (UML) Menurut Whitten dan Bentley (2007: 371) UML adalah “kumpulan dari konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem piranti lunak yang terkait dengan objek”. UML terdiri dari beberapa tipe diagram antara lain : 2.1.4.1 Use-Case Diagram Whitten dan Bentley (2007: 246) menjelaskan use-case diagram adalah “diagram yang menggambarkan interaksi antara sistem, sistem eksternal, dan pengguna”. Dengan kata lain, diagram ini menjelaskan siapa saja yang akan menggunakan sistem dan cara apa yang dibutuhkan oleh user untuk dapat berinteraksi dengan sistem.
Gambar 2.1 Contoh Use Case Diagram (Whitten dan Bentley, 2007: p.246) a.
Use Case Pemodelan use-case mengidentifikasi dan menggambarkan fungsi-fungsi sistem dengan menggunakan alat yang disebut use case. Use case mendeskripsikan fungsi-fungsi sistem dari sudut pandang pengguna eksternal dan dalam sebuah terminologi yang
14 mereka pahami (Whitten dan Bentley, 2007: 246). Gambar 2.2 Use Case (Whitten dan Bentley, 2007: p.246)
b.
Actor Pengguna eksternal yang menginisialisasi atau memicu usecase dinamakan actor/pelaku. Actor menginisialisasi kegiatan sistem, use case, dengan tujuan menyelesaikan beberapa proses yang menghasilkan sesuatu yang dapat diukur. Seorang actor ditampilkan secara grafis berupa stick figure dengan nama peran yang dimainkan oleh actor (Whitten dan Bentley, 2007: 247).
Gambar 2.3 Aktor (Whitten dan Bentley, 2007: p.247)
Hubungan (Relationship)
c.
Pada diagram use case, hubungan digambarkan sebagai sebuah garis antara dua simbol. Setiap hubungan memiliki makna yang berbeda-beda tergantung dari bagaimana cara garis digambar dan tipe simbol yang digunakan untuk menghubungkan garis tersebut (Whitten dan Bentley, 2007: 248). Berikut ini merupakan hubungan yang ada pada sebuah diagram use case: 1.
Associations (Saling Berhubungan) Hubungan antara pelaku dengan use-case yang terjadi pada saat sebuah use-case menjelaskan sebuah interaksi diantara mereka. Pada Gambar 2.4, sebuah hubungan association
15 yang mengandung tanda panah di akhir garis (1) mengindikasikan sebuah use case yang ditiru oleh pelaku di sebelah kiri. Hubungan association tanpa tanda panah (2), mengindikasikan sebuah interaksi antara use case dan pelaku penerima atau penyedia luar.
Gambar 2.4 Contoh hubungan association (Whitten dan Bentley, 2007: p.248)
2.
Extends (Memanjang) Relasi antara extension use-case dengan use-case yang diperpanjang disebut extends relationship. Extension usecase adalah use-case yang mengandung langkah-langkah yang di extract dari use-case yang lebih kompleks dengan tujuan untuk menyederhanakannya.
Gambar 2.5 Contoh hubungan extends (Whitten dan Bentley, 2007: p.249)
3.
Uses/Includes (Menggunakan/Termasuk)
16 Hubungan antara abstract use-case dengan use-case yang menggunakannya disebut uses relationship (atau disebut include relationship). Abstract use-case adalah use-case yang mengurangi redudansi antara dua use-case atau lebih dengan menggabungkan steps yang ditemui dalam usecase tersebut.
Gambar 2.6 Contoh hubungan uses (Whitten dan Bentley, 2007: p.249)
4.
Depends On (Bergantung) Depends on adalah sebuah hubungan antara use-case yang menandakan bahwa sebuah use-case tidak dapat dijalankan sampai use-case lainnya sudah dikerjakan. Garis dengan tanda panah pada gambar 2.7 menandakan bahwa use-case tersebut bergantung ke sebuah use-case yang ditunjuk.
17
Gambar 2.7 Contoh hubungan depends on (Whitten dan Bentley, 2007: p.250) 5.
Inheritance (Warisan) Inheritance dalam use-case adalah sebuah hubungan antara
actor
yang
dibuat
untuk
menyederhanakan
penggambaran pada saat abstract actor diwariskan peran dari actor lainnya.
Gambar 2.8 Contoh hubungan inheritance (Whitten dan Bentley, 2007: p.250)
d.
Use Case Narrative
18 Whitten dan Bentley (2007: 246) juga menjelaskan bahwa ada jenis use-case lain yang berisi detail dari setiap event dan menjelaskan bagaimana user berinteraksi dengan sistem pada saat event berlangsung yang disebut use-case narrative. Gambar 2.9 mewakilkan apa saja yang terdapat dalam use-case narrative untuk Member Services System’s Place New Order use case.
Gambar 2.9 Versi Pengembangan dari Place New Order UseCase Narratives (Whitten dan Bentley, 2007: p.259-260)
19
Berikut penjelasan dari Gambar 2.9 1. Use-case name: nama use-case yang merepresentasikan tujuan dari use-case. 2. Primary business actor: stakeholder yang mendapatkan keuntungan dari pengeksekusian use-case. 3. Precondition: keadaan dari sistem sebelum use-case dapat dijalankan. 4. Typical course of event: urutan normal dari aktivitas yang dijalankan dari pelaku dan sistem untuk menyelesaikan use-case serta terdapat interaksi antara keduanya.
2.1.4.2 Class Diagram Menurut Whitten dan Bentley (2007: 382), class diagram menggambarkan struktur objek yang terdapat pada sebuah sistem. Diagram ini menunjukkan bahwa sistem serta relasi antar objek terbuat dari objek – objek class.
20
Gambar 2.10 Class Diagram (Whitten dan Bentley, 2007: p.406)
21 Class diagram menggambarkan struktur dan deskripsi class, package, dan objek beserta hubungan satu sama lain seperti pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok yaitu: 1.
Name (stereotype), merupakan nama dari sebuah class.
2.
Attributes, merupakan properti dari sebuah class. Atribut melambangkan batas nilai yang mungkin ada pada objek dari class.
3.
Method, merupakan sebuah software logic yang dieksekusi sebagai respons terhadap suatu pesan.
Whitten dan Bentley (2007: 650) menjelaskan bahwa ada 3 level dari visibility yang mendefinisikan bagaimana attribute dan method diakses oleh kelas lainnya, yaitu: a.
Private,
tidak
dapat
dipanggil
dari
luar
class
yang
bersangkutan dan ditampilkan dalam bentuk (-) dalam Class Diagram. b.
Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya. Sifat protected ditampilkan dalam bentuk (#) dalam Class Diagram.
c.
Public, dapat dipanggil oleh siapa saja dan ditampilkan dalam bentuk (+) dalam Class Diagram.
Berikut merupakan notasi dari class diagram: a.
Class Class adalah blok-blok pembangun pada pemrograman berorientasi objek. Sebuah class digambarkan pada sebuah kotak yang terbagi atas tiga bagian, yaitu: nama class, definisi atribut
dan
definisi
fungsi.
22
b.
Association Sebuah asosiasi merupakan sebuah hubungan paling umum antara dua class. Garis ini dapat melambangkan tipe-tipe hubungan dan juga hukum-hukum multiplicity pada sebuah hubungan.
Gambar 2.11 Relasi Association Pada Class Diagram (Whitten dan Bentley, 2007: p.377)
c.
Aggregation Hubungan antar class dimana sebuah class yang besar atau whole class memiliki satu atau lebih bagian class yang lebih kecil. Sebuah hubungan “aggregation” digambarkan sebagai garis dengan ujung berbentuk jajaran genjang.
Gambar 2.12 Relasi Aggregation Pada Class Diagram (Whitten dan Bentley, 2007: p.379)
23
d.
Composition Composition merupakan bentuk yang lebih kuat dari aggregation.
Composition
adalah
sebuah
hubungan
aggregation dimana “whole” class bertanggung jawab atas pembuatan dan penghancuran dari bagian dirinya. Sebuah agregasi dilambangkan sebagai sebuah garis dengan sebuah jajaran genjang berisi atau solid.
Gambar 2.13 Relasi Composition Pada Class Diagram (Whitten dan Bentley, 2007: p.379)
e.
Generalization Sebuah teknik dimana attribute dan perilaku dari beberapa objek class yang sama dikelompokkan menjadi suatu class khusus yang disebut supertype, dan kemudian attribute dan method dari supertype diwariskan ke objek class atau subtypes (Whitten dan Bentley, 2007:373).
24 Gambar 2.14 Relasi Generalization Pada Class Diagram (Whitten dan Bentley, 2007: p.376)
Gambar 2.15 Objek Asosiasi Kelas dan Multiplicity (Whitten dan Bentley, 2007: p.377)
25
2.1.4.3 Activity Diagram Menurut Whitten dan Bentley (2007: 390), activity diagram adalah diagram yang dapat digunakan untuk menggambarkan aliran dari proses, jalannya use-case atau logic dari method secara grafis.
Gambar 2.16 Contoh Activity Diagram dengan partisi (Whitten dan Bentley, 2007: p.393)
26
Berikut adalah simbol-simbol yang digunakan pada activity diagram : a) Initial Node Berbentuk lingkaran penuh yang melambangkan awal proses.
Gambar 2.17 Notasi Initial Pada Activity Diagram (Whitten dan Bentley, 2007: p.392)
b) Actions Berbentuk
rounded-rectangle
yang
melambangkan
langkah-langkah individual dari proses.
Gambar 2.18 Notasi Action Pada Activity Diagram (Whitten dan Bentley, 2007: p.392)
c) Flow Berbentuk tanda panah yang menunjukkan perkembangan dari action. Flow tidak perlu menggunakan kata-kata pada tanda panah untuk menjelaskan alurnya, kecuali berasal dari decision.
Gambar 2.19 Notasi Flow Pada Activity Diagram (Whitten dan Bentley, 2007: p.392)
27
d) Decision Berbentuk diamond dengan satu flow masuk dan dua/lebih flow keluar. Flow yang keluar dari decision menunjukkan suatu kondisi tertentu.
Gambar 2.20 Notasi Decision Pada Activity Diagram (Whitten dan Bentley, 2007: p.392)
e) Merge Berbentuk diamond dengan dua/lebih flow masuk dan satu flow keluar. Merge bertujuan untuk menggabungkan flow yang terpisah oleh decision
Gambar 2.21 Notasi Merge Pada Activity Diagram (Whitten dan Bentley, 2007: p.392)
f) Fork Berbentuk batangan hitam dengan satu flow masuk dan dua/lebih flow keluar. Action yang ada secara paralel dibawah fork menandakan action tersebut bisa terjadi pada saat yang bersamaan.
28
Gambar 2.22 Notasi Fork Pada Activity Diagram (Whitten dan Bentley, 2007: p.392) g) Join Berbentuk batangan hitam dengan dua/lebih flow masuk dan satu flow keluar. Semua action yang masuk ke dalam join harus selesai terlebih dahulu sebelum memulai action berikutnya.
Gambar 2.23 Notasi Join Pada Activity Diagram (Whitten dan Bentley, 2007: p.392)
h) Activity Final Berbentuk lingkaran penuh yang berada dalam lingkaran lagi di bagian luar yang melambangkan akhir proses.
Gambar 2.24 Notasi Final Pada Activity Diagram (Whitten dan Bentley, 2007: p.392)
29
2.2 Teori yang Terkait Tema Penelitian (tematik) Teori yang Terkait Tema Penelitian merupakan teori yang dipakai sebagai dasar yang memiliki hubungan erat dengan pengembangan aplikasi. 2.2.1 Game Engine Menurut Jeff Ward (2008) dalam artikel “What is a Game Engine” secara umum, konsep game engine cukup sederhana: game engine ada untuk meringkas rincian-rincian dalam melakukan tugas-tugas umum yang terkait dengan game, seperti rendering, physics dan input, sehingga pengembang (seniman, desainer, penulis script, dan bahkan programmer) dapat fokus pada detail yang membuat game mereka menjadi unik. Game
engine
menawarkan
komponen-komponen
yang
dapat
dimanipulasi untuk membuat suatu game menjadi hidup. Loading, menampilkan, dan menganimasikan model, pendeteksian benturan antara objek, physics, input, grafis antarmuka pengguna (GUI), dan bahkan kecerdasan buatan dalam game dapat menjadi komponen yang membentuk engine tersebut. 2.2.1.1 Unity Menurut Sue Blackman (2013: xxvi) unity merupakan pilihan yang tepat bagi studio kecil, pengembang indie, dan bagi mereka yang ingin membuat game mereka sendiri. Unity memiliki basis pengguna yang banyak dan komunitas pemakai yang aktif dimana memungkinkan semua orang awam bertukar pengalaman dari para veteran. Unity membuka peluang untuk game developer dan artist untuk PC berbasis Windows pada musim semi tahun 2009. Sejak saat itu, Unity terus memberikan dukungan pada iPhone, Android, iPad, dan Wii dan dukungan pengembangan pada Xbox 360 dan PS3. Pengguna awal dari engine Unity cenderung untuk berpindah dari Flash dan Director, membuat scripting menjadi lebih mudah diterapkan. Sementara pemakai Unity memiliki latar belakang ActionScript dalam membuat game Flash. Ada banyak bahan
30 untuk membuat game memakai Unity, meliputi game first person shooting, game racing, platform jumper, dan sebagainya. 2.2.1.2 Java Script Menurut Tom Negrino dan Dori Smith (2011: 2), Javascript adalah bahasa pemrograman berupa script yang digunakan untuk membuat halaman web lebih interaktif. Tetapi JavaScript juga banyak digunakan sebagai script dalam pembuatan sebuah aplikasi ataupun game tersebut bisa dijalankan. JavaScript lebih dikenal sebagai bahasa scripting atau “scripting language”, dengan implikasi di mana lebih mudah untuk dibuat berupa script dari pada program-nya. Meskipun JavaScript dan Java memiliki nama yang hampir sama, sebenarnya dua bahasa pemrograman tersebut tidak ada hubungannya satu dengan yang lain. Java adalah bahasa pemrograman dengan fitur penuh yang dibuat Sun Microsystem dan dipasarkan oleh Oracle. Java merupakan turunan dari bahasa pemrograman C dan C++ yang bisa dijalankan di berbagai operating system seperti Windows, Mac dan Unix. Sedangkan JavaScript adalah bahasa pemrograman client-side dimana JavaScript di desain untuk bekerja pada mesin pengguna, bukan di server (Tom Negrino & Dori Smith, 2011: 3-7). 2.2.2 Agile Software Development Method: SCRUM 2.2.2.1 Pengertian SCRUM Kymber Waltmunson (2011: 1) menjelaskan di dalam artikel berjudul “Scrum: a tool from the software world can improve analytical project outcomes” bahwa SCRUM merupakan salah satu pendekatan Project Management yang membantu dalam Software Development. SCRUM merupakan tipe pendekatan Agile Software Development Method di mana tim developer memiliki pertemuan yang rutin dan intens untuk mengevaluasi dan melakukan testing pada fitur-fitur yang diselesaikan setiap harinya.
31 SCRUM memiliki pendekatan yang berbeda dengan Project Management tradisional. Project Management tradisional memiliki Ruang Lingkup yang fix dan Daya serta Jadwal yang diperkirakan untuk Ruang Lingkup tersebut. Pada pendekatan SCRUM yang pasti adalah Daya dan Jadwal, sedangkan Ruang Lingkup (visi dan nilai yang ingin dicapai) diperkirakan dari Daya dan Jadwal yang dimiliki. Ini membuat SCRUM memiliki keunggulan untuk mengatur kompleksitas, ambiguitas dan kecepatan perubahan lingkungan dalam
software development secara efektif. Gambar 2.25 Perbandingan Pendeketan SCRUM Tradisional (Waltmunson, 2011: p.2) 2.2.2.2 Nilai Penggunaan SCRUM SCRUM memberikan keluaran proyek secara bertahap, nilainilai dari fitur utama diberikan secara bertahap dimulai dari fitur paling penting terlebih dahulu. Pendekatan SCRUM membuat proyek semakin dipahami nilai-nilai dan artinya oleh setiap anggota tim sehingga ketika proyek harus diakhiri atau dihentikan sekalipun setiap anggota tim memetik manfaat dan nilai yang banyak dari proyek tersebut. Keunggulan SCRUM yang lain terletak pada aktivitas kerja dan pencarian kebutuhan yang sangat jelas dan spesifik, mengurangi pembahasan yang berlarut-larut dan tidak perlu dalam analisis seperti pendekatan tradisional. Setiap anggota tim bertanggung jawab
32 terhadap bagiannya dalam peningkatan pengerjaan proyek yang mendorong rasa memiliki serta akuntabilitas dalam proyek. SCRUM sangat unggul dalam proyek yang menghadapi kompleksitas, ambiguitas dan kecepatan perubahan lingkungan yang sangat besar seperti proyek aplikasi untuk End-User yang sangat ditentukan trend dan kebutuhan yang terus berubah. Pendekatan SCRUM menekankan peninjauan terus menerus untuk proyek yang sedang dilakukan dan dapat menyesuaikan diri dengan perubahan secara cepat. 2.2.2.3 Penggunaan SCRUM Dalam Project Management Dalam pendekatan SCRUM ada 3 hal penting yang harus diingat yaitu SCRUM roles (peran), tools (peralatan), dan processes (proses). SCRUM Roles terdiri dari: 1.
SCRUM Master, peran dari SCRUM Master adalah membantu SCRUM Team memberikan performa terbaik dan mengatasi masalah yang dihadapi dalam proyek. SCRUM Master tidak memberi tugas / mengarahkan tugas untuk dikerjakan SCRUM Team melainkan fokus pada SCRUM Team dan tantangan yang dihadapi oleh SCRUM Team.
2.
SCRUM Team merupakan tim yang bergerak secara mandiri dan menentukan sendiri tugas-tugas yang akan diselesaikan dalam sprint, yaitu siklus kerja regular dan rutin berkisar antara 1-4 minggu yang diberikan.
3.
Product
Owner
adalah
stakeholders
atau
pihak
yang
berkepentingan dengan proyek ini dan menentukan tujuan dari proyek. Jika dianalogikan Product Owner dapat diibaratkan sebagai pihak yang menentukan tujuan dalam peta, SCRUM Team adalah mobil yang membawa proyek sampai ke tujuan dan SCRUM Master adalah pihak yang memastikan mobil berjalan dengan baik dengan
33 cara menyediakan bahan bakar, peta, ban cadangan, peralatan untuk memperbaiki, dan lain-lain. SCRUM Tools terdiri dari: 1.
Shippable Product adalah produk atau fitur yang telah diselesaikan dan siap memasuki tahap akhir yaitu deployment.
2.
Product Backlog adalah daftar fitur-fitur dan produk yang akan diselesaikan untuk keseluruhan proyek dan diatur berdasarkan skala prioritas.
3.
Sprint Backlog adalah fitur-fitur yang akan diselesaikan terlebih dahulu dalam sebuah siklus kerja 1-4 minggu yang disebut sprint.
Gambar 2.26 Basic SCRUM Process (Waltmunson, 2011: p.4)
a.
Basic SCRUM process Setiap fitur-fitur / produk yang akan diselesaikan dalam proyek terdapat dalam Product Backlog dan secara rutin akan dilakukan pengaturan ulang skala prioritas dari fitur yang akan diselesaikan dan juga penghilangan/penambahan fitur dalam product backlog. Fitur yang berada pada prioritas teratas product backlog akan dimasukkan dalam Sprint Backlog. Fungsi Sprint Backlog adalah mengeksekusi pembuatan fitur dalam Project Management, fitur yang telah diambil dari product backlog akan dipecah-pecah menjadi to-do list spesifik yang akan dieksekusi selama Sprint Process. Inti dari
34 pendekatan SCRUM ada dalam Sprint Process, sebuah siklus kerja singkat selama 1-4 minggu dengan siklus kecil harian seperti yang ditunjukkan dalam gambar. Dalam siklus harian ada pertemuan rutin yang dilakukan setiap anggota SCRUM Team untuk koordinasi, membahas progress dan hambatan yang dihadapi oleh setiap tim dalam Sprint Process. Pada akhir setiap Sprint Process akan dilakukan dua pertemuan yaitu Sprint Review dan Sprint Retrospective. Seperti artinya, dalam sprint review tim akan mendemonstrasikan shippable products kepada product owner dan melihat apakah produk ini telah memenuhi harapan product owner serta mengatur ulang isi product backlog dan prioritas pengerjaannya. Sedangkan Sprint Retrospective merupakan waktu SCRUM Master dan SCRUM Team untuk menganalisa sprint process yang dilakukan dan menemukan cara yang lebih efektif dan efisien dalam meningkatkan siklus sprint berikutnya. b.
SCRUM : Perencanaan dan Eksekusi Bertahap Konsep utama dari SCRUM berkaitan dengan pendekatannya terhadap perencanaan dan eksekusi. Ada pendekatan yang melakukan analisis keseluruhan sebelum melakukan eksekusi terhadap proyek, ada juga pendekatan yang melakukan analisis sembari mengeksekusi proyek.
Manakah
yang
lebih
baik?
Keduanya
memiliki
keunggulannya sendiri. Seringkali dalam proyek masa kini hambatanhambatan, masalah ataupun kebutuhan tidak bisa dipahami secara menyeluruh hanya melalui analisis awal. Ada beberapa kebutuhan yang justru ditemukan ketika proyek sedang berjalan dan dibutuhkan daya lebih untuk menyelesaikan kebutuhan tersebut. Di sinilah SCRUM melakukan pendekatan yang mengelaborasi suatu proyek secara bertahap. Dibandingkan melakukan analisis besar di awal kemudian mengeksekusi proyek, pada pendekatan SCRUM dilakukan elaborasi dan analisis proyek secara bertahap pada siklus-siklus kerja pendek yang disebut Sprint Process. SCRUM Team terus diingatkan akan tujuan awal pembuatan proyek dan dituntut untuk aktif
35 memikirkan cara mencapai tujuan tersebut dalam setiap siklus-siklus kerja pendek yang dilakukan.
Pada pendekatan SCRUM perubahan tidak dilihat sebagai ancaman melainkan kesempatan untuk menemukan informasi yang dibutuhkan dalam perencanaan dan eksekusi selanjutnya. Fleksibilitas terhadap proyek seperti inilah yang dibutuhkan dalam pembuatan aplikasi yang berpusat pada user yang seleranya mudah berubah-ubah. c.
SCRUM : Hasil yang sesuai dengan ekspektasi Pendekatan SCRUM memiliki sebuah proses unik yang dinamakan User Stories untuk memastikan hasil dari suatu proyek sesuai dengan harapan dari user yang bermacam-macam. Format user stories itu sendiri sebagai berikut : Sebagai
saya ingin aplikasi yang agar Contohnya: Sebagai mahasiswa saya ingin aplikasi chat yang membantu saya mengatur pertemuan dengan teman-teman agar dapat bersosialisasi dengan mudah dan murah. User stories yang bermacam-macam ini membuat tim dapat melihat harapan dari setiap user dan memastikan hasil produk yang memenuhi harapan dan nilai yang diinginkan tersebut. Akan tetapi, ketika menghadapi konflik kepentingan antar user maka hasil akhir produk akan disesuaikan dengan pedoman pengerjaan proyek yang telah disepakati di awal, standar pengerjaan proyek serta prioritas pemenuhannya.
d.
SCRUM : Hasil Keluaran yang bertahap Masalah yang sering terjadi pada pengerjaan proyek adalah hasil yang tidak sesuai dengan ekspektasi pemiliknya. Hasil sebuah proyek tidak dapat diketahui sampai semua proses perancangan dan pembuatannya selesai, akibatnya ketika proyek selesai banyak bagian
36 yang ternyata telah melenceng dari harapan awal pemiliknya, untuk memperbaikinya tentu memerlukan waktu dan
daya yang tidak
sedikit. Dalam SCRUM process hasil keluaran yang berguna akan dihasilkan pada setiap siklus sprint yang berlangsung dalam waktu 14 minggu. Hasil keluaran ini akan digunakan oleh pemilik produk dan disesuaikan kembali untuk keluaran selanjutnya. Contoh: Jika yang ingin dihasilkan adalah sebuah proyek untuk menghitung gaji seluruh karyawan perusahaan di semua cabang, keluaran dari sprint awal adalah sebuah aplikasi yang bisa menghitung gaji karyawan dalam satu cabang terlebih dahulu. Melalui hasil keluaran yang bertahap ini, pemilik produk dapat melihat apakah produk yang dihasilkan telah sesuai dengan harapan dan nilai yang disampaikan pada tahap analisa awal. Jika proyek tersebut diputuskan untuk dihentikan sekalipun telah dihasilkan sebuah produk yang memiliki nilai dan fungsi sehingga daya yang dikeluarkan tidak menjadi sia-sia. Keunggulan lainnya adalah ketika dihasilkan sebuah produk yang berfungsi dan bisa memenuhi nilainilai yang diharapkan, itu akan menjadi pertimbangan bagi pemilik produk untuk melanjutkan pengembangan proyek tersebut sampai tahap finalnya. e.
SCRUM : Efisiensi dan Produktivitas Kekuatan utama pendekatan SCRUM ada pada akuntabilitas, spesifik dan transparannya proyek. Pertemuan yang rutin setelah Sprint Process harian membuat setiap anggota tim termotivasi dan meningkatkan moral serta produktifitas tim. Spesifiknya setiap tugas yang akan diselesaikan serta koordinasi dan identifikasi masalah secara harian membantu setiap individu dan tim mengatur proses kerja mereka. Pada pertemuan harian yang berlangsung dalam waktu 15 menit cukup ditanyakan 3 buah pertanyaan pada SCRUM Team : 1. Apa yang kamu lakukan kemarin? 2. Apa yang akan kamu lakukan hari ini?
37 3. Apakah ada halangan dalam menyelesaikan tugas yang kamu janjikan? Daripada menunggu berminggu-minggu atau berbulan-bulan sebelum menyelesaikan masalah dan menghadapi penundaan. SCRUM Team bergerak cepat dalam menyelesaikan tugas dan masalah yang dihadapi serta menggunakan akuntabilitas melalui pertemuan harian sebagai motivasi pendorong. Peran SCRUM Master bagi tim adalah untuk menyelesaikan setiap masalah dan hambatan yang dihadapi tim. Sembari SCRUM Team mengerjakan bagian-bagian penting dari proyek,
SCRUM
Master dapat mencari - pendukung seperti literatur, source code untuk menyelesaikan masalah yang dihadapi tim, memberi dukungan moral, atau bahkan membawakan kopi bagi anggota tim. Tugas utama dari SCRUM Master adalah memastikan kemudahan bagi SCRUM Team dalam menyelesaikan setiap tugas yang mereka hadapi. Sprint
retrospective
juga
merupakan
kekuatan
yang
meningkatkan efisiensi dan produktifitas proyek. Pada akhir setiap Sprint Process tim akan bertemu dan membahas apa yang telah baik dalam sprint kali ini, apa yang dapat ditingkatkan dan perubahan seperti apa yang dapat dilakukan dalam siklus sprint berikutnya. Hal ini membuat tim dapat belajar dari setiap proses untuk meningkatkan kualitas siklus berikutnya. Dapat disimpulkan bahwa SCRUM merupakan pendekatan yang sesuai untuk sebuah proyek yang kompleks dan dinamis. Prosesproses serta peran dalam SCRUM meningkatkan efisiensi kerja dari tim serta hasil keluaran yang berguna secara bertahap. Pendekatan SCRUM membuat proses analisis dan eksekusi dalam proyek sebagai hal yang menyenangkan dan sederhana tanpa kehilangan elemen kunci dari manajemen proyek seperti perencanaan, metodologi, manajemen resiko, komunikasi internal dan eksternal, manajemen waktu dan manajemen output.
38
f.
Bagaimana memulai SCRUM Project? Sebelum memulai sebuah SCRUM project dibutuhkan fase perencanaan awal. Pada fase ini SCRUM Team harus membuat arsitektur proyek dan chief architect yang bertanggung jawab sebagai arsitek utama proyek. Selama proyek berjalan arsitektur yang dibuat dapat berubah, namun SCRUM Team memerlukan sebuah rencana awal, sebuah arsitektur dan seorang chief architect untuk memulai proyek. Peran chief architect adalah terus mengingatkan visi dari proyek yang sedang berlangsung berdasarkan arsitektur yang telah disepakati di awal dan memastikan konsistensi visi tersebut dalam setiap fase pengembangan. Faktor penting dalam mengimplementasikan SCRUM dengan sukses: 1.
Karakter personal dari Product Owner, SCRUM Master dan Team Member berpengaruh terhadap reaksi dan keputusan yang diambil saat kemampuan tim tidak memenuhi kebutuhan proyek.
2.
Karakteristik dari User Stories (requirement) yang dituangkan dalam siklus Sprint dan kemudian diimplementasikan sebagai produk untuk stakeholder.
3.
Proyek membutuhkan kompetensi dari tim, bisa jadi tim tidak memiliki semua skill yang dibutuhkan untuk menyelesaikan proyek.
4.
Otonomi tim, tim memiliki kebebasan dan independen dalam membuat keputusan yang berkaitan dengan proyek seperti tools atau teknologi yang digunakan, membuat goal, menangani perubahan user requirement dan memilih personil dalam tim.
5.
Keberagaman dalam tim, keberagaman dalam tim berupa skill, area keahlian, pengalaman kerja, dan fungsi dari anggotanya.
6.
Respon
tim
terhadap
penambahan
atau
ekstensi
dari
requirement, seberapa jauh tim melayani perubahan requirement dalam lingkup sistem, input data, ouput data, aturan atau proses bisnis, struktur data, dan user interface.
39 7.
Efisiensi tim, waktu, biaya, personel dan daya yang dibutuhkan oleh tim untuk memenuhi perubahan requirement yang diberikan.
8.
Performa dari software development, selesai tepat waktu, sesuai anggaran, dan memenuhi fungsionalitas yang diinginkan adalah dimensi yang penting untuk mengevaluasi performa dari software development.
2.2.3 Game Rogers (2010: 3) menjelaskan game sebagai “sebuah aktifitas bermain, yang dilakukan dalam konteks realita semu dimana memerlukan setidaknya satu orang pemain, memiliki aturan, dan memiliki sebuah kondisi kemenangan”. Rogers juga mengatakan bahwa sebuah game membutuhkan objectives atau tujuan. Di dalam buku “Art of Game Design: A Book of Lenses”, Schell (2008: 34), menyimpulkan bahwa sebuah game harus memiliki kualitas – kualitas yang membedakan game dengan aktifitas lainnya. Game harus diikuti secara sukarela, memiliki tujuan, konflik, dan aturan, terdapat pihak yang menang dan kalah, interaktif, memiliki tantangan, dapet menciptakan suatu nilai internal, melibatkan pemain, dan merupakan sebuah sistem formal yang tertutup. Schell juga menambahkan bahwa sebuah game memiliki masalah untuk diselesaikan, namun tidak semua masalah adalah game. Berdasarkan hal ini serta seluruh kualitas dari sebuah game, Schell (2008: 37) menyimpulkan bahwa game adalah “sebuah aktifitas penyelesaian masalah yang menggunakan sikap bermain dalam pendekatannya”. Sebuah game memiliki banyak elemen – elemen penting yang menyusunnya. Schell (2008: 41-42) mengatakan ada 4 elemen penting yang menyusun sebuah game: 1. Mechanic Mechanic adalah aturan, dan prosedur yang berlaku pada sebuah game. Mechanic menentukan tujuan pemain, apa yang dapat dilakukan untuk mencapai tujuan itu dan apa yang tidak dapat dilakukan. Ketika memilih mechanic yang sesuai untuk gameplay yang akan dibuat, developer harus
40 memilih teknologi yang dapat mendukungnya, estetik yang jelas untuk pemain, serta cerita yang membuat mekanisme game masuk akal untuk pemain. 2. Story Story atau cerita adalah kejadian berurutan yang terjadi di dalam sebuah game. Cerita dapat berbentuk linear dan pre-scripted atau bercabang dan muncul tiba – tiba. Ketika sudah memiliki cerita yang ingin disampaikan melalui game yang akan dibuat, developer harus memilih mekanik yang dapat menguatkan cerita tersebut. 3. Aesthetics Aesthetics atau estetika adalah penampilan luar dari sebuah game. Estetika merupakan aspek yang sangat penting dari game design karena memiliki hubungan langsung dengan player experience. Untuk membuat pemain merasakan kesan terbawa dalam game, developer harus memilih teknologi yang tidak hanya membuat estetik terlihat, tetapi juga memperjelas dan menguatkannya. Selain itu dibutuhkan juga mekanik yang dapat membuat pemain merasa di dalam dunia yang dideskripsikan oleh estetik dan juga cerita yang membuat estetik terlihat dengan fase yang tepat. 4. Technology Technology atau teknologi adalah seluruh material dan media interaksi yang membentu suatu game. Teknologi yang dipilih untuk sebuah game menentukan apa yang dapat dilakukan oleh game tersebut dan apa yang tidak. Teknologi adalah perantara dimana estetik berjalan, mekanik terjadi, dan tempat dimana cerita dalam game akan diceritakan. Keempat elemen game ini sama pentingnya serta saling mendukung dan mempengaruhi satu sama lain. Cerita menentukan estetika yang akan digunakan
serta
mechanic
yang
akan
diberlakukan.
Mechanic
mempengaruhi pemilihan teknologi yang akan digunakan serta estetika bagaimana mechanic itu sendiri akan ditampilkan. Teknologi dapat menentukan sejauh apa estetika sebuah game dapat dibuat dan tentunya akan membatasi mechanic dari game.
41
Gambar 2.27 Elemen game (Schell, 2008: p.42) Perkembangan teknologi telah memungkinkan berbagai macam media muncul sebagai sarana untuk memainkan game. Rogers (2010: 4-8) menjelaskan jenis – jenis media, atau platform, sebagai berikut: 1. Arcade Arcade adalah sebuah mesin game yang pertama kali tersedia secara komersial. Arcade pertama kali diciptakan pada tahun 1971 oleh pendiri perusahaan Atari, Ted Dabney dan Nolan Bushnell. Arcade merupakan sebuah mesin yang didedikasikan untuk sebuah game dan terdiri dari prosesor, layar, serta controller yang umumnya berupa joystick. Bagian luarnya diberi tampilan yang menarik dan sesuai dengan tema dari game tersebut. Di Indonesia, mesin arcade dapat ditemukan di arena permainan yang berada di pusat perbelanjaan. 2. Console Console adalah sebuah mesin game yang dapat dimainkan di rumah. Berbeda dengan arcade yang hanya memuat satu game dalam satu mesin, console dapat memiliki berbagai judul game dengan memanfaatkan media penyimpanan seperti cartridge dan disk. Konsol pertama muncul di akhir tahun 1970an dan sejak saat itu sudah banyak konsol yang beredar. Beberapa konsol yang terkenal adalah Atari 2600, Jaguar, Nintendo Entertaiment System (NES), Super Nintendo, Sega Genesis, Playstation 1 & 2 (Sony), Xbox (Microsoft), Wii (Nintendo). Lalu console yang masih
42 beredar sekarang ini seperti Playstation 3 (Sony), Xbox 360 (Microsoft) dan WiiU (Nintendo), serta Next Gen Console seperti Playstation 4 dan Xbox One. 3. Handheld games Handheld games, merupakan sebuah mesin game yang memiliki layar, processor, dan controller sendiri seperti arcade, namun memiliki ukuran yang kecil dan sesuai dengan ukuran tangan pemain. Pada awalnya satu handheld hanya memiliki sebuah game. Namun pada perkembangannya, handheld menggunakan media penyimpanan berupa cartridge sehingga dapat memainkan berbagai judul game. Saat ini perkembangan konsol handheld sangatlah signifikan dan memiliki kemampuan yang sangat kuat. Selain pada mesin khusus, handheld game juga dapat berupa game yang dapat dimainkan pada perangkat mobile seperti handphone / smartphone yang biasa disebut Mobile games. Seiring berjalannya waktu Mobile game menjadi semakin popular dikarenakan games untuk mobile game lebih cepat dan lebih murah untuk diproduksi. 4. Personal Computer Personal Computer atau PC adalah perangkat komputer rumahan. Saat PC mulai populer di akhir tahun 1970-an, berbagai macam percobaan untuk emulai game arcade dilakukan dengan menyimpan game tersebut kedalam sebuah media penyimpanan berupa floppy disk. Namun dengan adanya keyboard, memungkinkan input yang lebih baik sehingga membuat banyak genre game baru yang muncul seperti text-adventure game. Lamanya waktu yang dihabiskan didepan komputer juga berarti
gaming experience dan simulasi yang lebih lama. Seiring dengan berkembangnya hardware, memory, dan media penyimpanan ke CD dan DVD, game komputer menjadi lebih terperinci dan kompleks.
43
2.2.3.1 Game Genre Game dapat dikelompokan menjadi beberapa genre yang berbeda sesuai dengan gameplay dari game tersebut. Rogers (2010: 9-11) membagi game menjadi 10 genre, yang terdiri dari: 1. Action Game dengan genre action mengutamakan waktu bereaksi dan koordinasi mata dan tangan. Action games adalah salah satu genre yang memiliki banyak sub-genre seperti action-adventure, action-arcade, platformer, stealth, fighting, dan beat ‘em up / hack ’n’ slash. Contoh game yang memiliki genre action antara lain adalah Dynasty Warrior dan Super Mario Bros. 2. Strategy Game dengan genre strategy berfokus pada perancanaan dan taktik serta pengaturan pasukan dan daya. Umumnya game dengan genre ini memiliki tema berupa penjelajahan dan penguasaan. Strategy Game dapat dibagi menjadi beberapa sub-genre seperti real time strategy (RTS), turnbased, dan tower defense. Contoh dari game dengan genre ini adalah Command and Conquer, Civilization, dan Total War. 3. Sports Game dengan genre sports mensimulasikan olahraga yang ada di dunia nyata. Game dengan genre ini mengutamakan pada simulasi yang detail sehingga menyerupai olahraga yang sesungguhnya. Contoh dari game dengan genre sports adalah Pro Evolution Soccer, NBA Live, Tony Hawk’s Pro Skater. 4. Construction and Management Game dengan genre construction and management berfokus pada pengaturan daya yang digabungkan dengan pembangunan sesuatu. Meskipun sama-sama menggunakan daya, genre ini berbeda dengan strategi dikarenakan pada genre ini lebih berfokus pada pertumbuhan. Pada umumnya game dengan genre ini dibuat berdasarkan pada sistem yang diterapkan pada dunia nyata. Pemain diharuskan untuk mengatur
44 pertumbuhan bisnis atau kota dengan baik sambil memperhatikan kondisi keuangan. Contoh dari game dengan genre ini adalah SimCity, Zoo Tycoon. 5. Vehicle Simulation Game dengan genre simulation menekankan pada simulasi kegiatan yang dibuat sehingga mendekati kenyataan. Pemain seakan akan mengendarai kendaraan mulai dari mobil hingga pesawat. Contoh dari game dengan genre vehicle simulation ini adalah X-Plane, Gran Turismo. 6. Adventure Game dengan genre adventure lebih berfokus pada pengaturan inventory, pengumpulan barang, dan pemecahan teka – teki. Meski hampir mirip dengan genre role playing, pada genre ini perkembangan karakter tidak dipengaruhi oleh pemain. Adventure game dapat dibagi menjadi beberapa sub-genre seperti graphical adventure, role-playing game (RPG), survival/horror. Contoh game dari genre ini adalah Assasins Creed, Prince of Persia, Resident Evil. 7. Music/Rhythm Game dengan genre music / rhythm biasanya meminta pemain untuk mengikuti irama dengan menekan tombol yang sesuai ketika irama sudah sesuai dengan tempatnya untuk mendapatkan point. Contoh game dengan genre ini adalah Dance Dance Revolution, DJ Max, Hatsune Miku Project Diva. 8. Party Game dengan genre party adalah game yang khusus di design untuk dapat dimainkan oleh banyak pemain dan biasanya dibuat berdasarkan game yang dapat dilombakan. Pada umumnya game dengan genre ini memiliki gameplay dengan format minigame. Contoh game dengan genre party adalah Mario Party, Buzz, Bishi Bashi. 9. Shooter Game dengan genre shooter memiliki fokus utama menembakkan peluru ke musuh. Pada umumnya genre ini memiliki sifat fast-paced atau memiliki permainan yang serba cepat. Sama halnya dengan genre action, genre ini terbagi menjadi beberapa subgenre seperti first person shooter,
45 shoot ‘em up dan third person shooter. Contoh game dengan genre ini adalah Contra, Space Invader, Team Fortress
10. Life Simulation Game dengan genre life simulation hampir mirip dengan genre construction / management, hanya pada genre ini hanya mencakup pada pembangunan dan pemeliharaan hubungan pada mahkluk hidup buatan baik hewan maupun manusia. Contoh game dari genre life simulation adalah The Sims, Tamagotchi. Ernest Adams (2010: 75) membagi pemain game atau gamer dibagi menjadi 2 jenis, yaitu: 1. Core Gamer Core gamer adalah gamer yang memainkan banyak game dan suatu permainan dinilai lebih dari sebuah hiburan ringan. Mengalahkan atau menyelesaikan sebuah permainan adalah sebuah kebahagiaan bagi Core gamer. Kebanyakan core gamer tidak menyukai game yang mudah, mereka menyukai game yang menantang. 2. Casual Gamer Casual gamer bermain game hanya untuk kesenangan semata. Jika game sudah tidak nyaman untuk dimainkan atau menimbulkan frustasi, maka casual gamer akan berhenti bermain. Seorang casual gamer sama sekali tidak bersedia untuk menghabiskan waktunya untuk belajar memainkan sebuah game. 2.2.3.2 Game Balancing Menurut Schell (2008: 172) game balancing dapat dilihat dalam berbagai rupa, karena setiap game yang berbeda memiliki faktor yang berbeda yang harus diseimbangkan. Inti menyeimbangkan sebuah game adalah harus memeriksanya dengan teliti. Schell (2008: 172-200) juga memaparkan bahwa ada 12 tipe penyeimbang game yang sering digunakan, yakni sebagai berikut: 1. Fairness
46 Pemain ingin pihak lawan tidak memiliki suatu kelebihan yang membuat mereka mustahil dikalahkan. Salah satu caranya adalah dengan membuat game yang simetris dimana kedua belah pihak memiliki kekuatan yang setara. Namun, seringkali dibutuhkan suatu kondisi asimetris yang membuat pihak – pihak yang terlibat tidak memiliki kekuatan yang setara. Hal ini dapat dilakukan dengan membagi kekuatan masing – masing dan memberinya nilai. Total nilai dari kekuatan ini harus dipastikan setara untuk setiap pihak. Namun, perlu diperhatikan, meskipun total nilai sudah setara, namun saat dimainkan belum tentu terasa seimbang. Cara yang terakhir adalah memberikan salah satu pihak suatu keuntungan atas pihak lain, namun memiliki kelemahan dengan pihak yang lainnya lagi. Contoh sederhana dari game balancing ini adalah permainan suit di mana tiap pilihan memiliki kekuatan dan kelemahan. 2. Challenge vs. Success Ketika sebuah game terlalu menantang, pemain dapat menjadi frustasi. Tetapi jika game terlalu mudah, pemain akan cepat menjadi bosan. Sebuah game yang seimbang harus dapat menemukan titik tengah dari kedua hal ini. Salah satu caranya adalah dengan mempersulit permainan setiap kali pemain mendapatkan keberhasilan. Hal ini membuat pemain secara perlahan meningkatkan kemampuannya sehingga dapat mengatasi bagian yang sulit. Cara lainnya adalah membuat suatu bagian dari game yang mudah untuk dapat dilewati dengan cepat. Ini akan membuat pemain yang sudah ahli akan cepat maju untuk mencapai bagian di mana tantangan yang ada sesuai dengan kemampuan mereka. Pola paling umum adalah memberikan ranking untuk kinerja pemain dalam mencapai keberhasilannya. Pemain yang merasa bagian tersebut sulit akan senang mendapatkan ranking minimum untuk lolos ke bagian selanjutnya, sedangkan pemain yang sudah ahli akan berusaha mencoba mendapatkan ranking tertinggi. Cara yang sering digunakan adalah membiarkan pemain memilih tingkat kesulitan. Cara ini dapat membuat pemain bermain dengan tingkat kesulitan yang sesuai dengan keinginannya. 3. Meaningful Choices Dalam suatu game ada banyak cara untuk memberikan pilihan kepada pemain. Hal yang harus diperhatikan adalah bahwa pilihan – pilihan
47 tersebut harus bermanfaat. Pilihan yang berarti adalah pilihan dimana tidak ada pilihan yang tidak diinginkan, sama, atau pasti akan dipilih. Pilihan yang berarti memiliki pilihan – pilihan yang berbeda namun memiliki kelebihan dan kekurangan. Dalam pilihan, Schell (2008: 181) juga menjelaskan mengenai apa yang disebut dengan tringularity, yaitu suatu kondisi dimana pemain dihadapkan pada dua pilihan dimana pilihan yang satu mudah dilakukan namun memiliki hadiah yang kecil sedangkan pilihan lainnya sulit untuk dilakukan namun memberikan hadiah yang besar. 4. Skill vs. Chance Kedua hal ini bertolak belakang satu sama lain. Terlalu banyak kemungkinan akan menghilangkan kemampuan pemain, begitu pula sebaliknya. Memilih antara kedua hal ini cukup sulit, karena keinginan pemain berbeda – beda. Bagaimana kemampuan dan kemungkinan diseimbangkan akan menentukan karakter dari suatu game. Salah satu cara yang paling umum digunakan adalah melakukan keduanya secara bergantian. 5. Head vs. Hands Hal ini berfokus pada berpusat dimanakah sebuah game. Apakah pada hal – hal yang mengharuskan untuk berpikir, atau hal – hal yang membutuhkan aktifitas fisik. Hal yang sering dilakukan dan banyak kita lihat pada berbagai game adalah dengan melakukan keduanya secara bersamaan. Hal yang perlu diperhatikan adalah apa yang lebih disukai oleh target pasar game tersebut. Hal ini akan menentukan perbandingan antara berpikir dan bertindak dalam permainan. 6. Competition vs. Cooperation Kedua hal ini adalah suatu sifat dasar makhluk hidup. Pemain berusaha berkompetisi satu sama lain untuk menentukan siapa yang lebih hebat. Namun ada pula waktu di mana para pemain akan bekerja sama untuk mendapatkan suatu tujuan yang lebih besar. Meskipun keduanya bertolak belakang, namun keduanya dapat digabungkan. Hal ini dapat dilakukan dalam sebuah kompetisi tim. Pemain dalam satu tim akan bekerja sama dan masing – masing tim berkompetisi untuk mengalahkan tim lawannya.
48 7. Short vs. Long Hal yang terpenting untuk diseimbangkan adalah lama permainan. Bila terlalu sebentar, pemain tidak akan sempat untuk mendalami dan menciptakan strategi. Namun bila terlalu lama, pemain akan menjadi bosan. Hal utama yang mempengaruhi lama permainan adalah kondisi menang atau kalah. Perubahan pada kondisi ini dapat mengubah lama permainan. 8. Rewards Para pemain banyak yang mengincar score dan point dalam sebuah game demi untuk mendapatkan hadiah. Tipe hadiah ini bermacam – macam, namun memiliki satu kesamaan, yaitu memenuhi keinginan pemain. Hadiah yang paling sederhana adalah pujian yang eksplisit dari game tersebut. Dalam beberapa game, point digunakan untuk mengukur kemampuan pemain. Point ini sering menjadi hadiah yang memuaskan, terutama apabila dilihat dan dibandingkan dengan orang lain. Salah satu hadiah yang sering digunakan adalah perpanjangan waktu main. Hal ini sering digunakan pada permainan yang menggunakan “nyawa”, sehingga hadiah sebuah tambahan nyawa sangatlah berarti. Salah satu hadiah yang terkadang digunakan adalah pertunjukan. Hadiah ini sederhana dan berupa musik atau animasi sebagai hadiahnya, namun seringkali disertai oleh hadiah tambahan lainnya. Dalam game yang menggunakan daya virtual, daya tersebut seringkali menjadi hadiah yang menarik. Hadiah ini dapat digunakan untuk membeli bermacam macam hal di dalam game. Hadiah yang terakhir didapatkan pemain adalah perasaan puas terutama setelah menyelesaikan tantangan yang sulit. Sebagian besar hadiah yang terdapat dalam game merupakan gabungan dari tipe – tipe diatas. Cara untuk menyeimbangkan unsur hadiah salah satunya adalah dengan menambah jumlah hadiah secara bertahap. Cara lainnya adalah dengan membuat nilai hadiahnya tidak pasti. 9. Punishment Hukuman dalam game, bila digunakan dengan baik akan menambah kenikmatan yang didapat oleh pemain. Alasan dibutuhkan hukuman antar lain untuk membuat suatu nilai dalam game menjadi lebih berarti, mengambil resiko seringkali menyenangkan, dan adanya hukuman akan
49 meningkatkan tantangan. Hukuman dapat berupa membuat malu, kehilangan point, mengurangi waktu bermain, menyelesaikan permainan, kemunduran, kehilangan kekuatan, atau kehilangan daya. Saat hukuman dibutuhkan, kita harus memikirkan seberapa banyak hukuman yang dibutuhkan. Kombinasi dari hukuman – hukuman seringkali cukup untuk membuat pemain berhati – hati. Selain itu, sangat penting untuk semua hukuman yang ada dapat dimengerti dan dicegah oleh pemain. 10.
Freedom vs. Controlled Experience
Game adalah sebuah media interaktif yang berarti pemain memiliki kendali atas pengalamannya. Namun, kita harus berhati – hati agar tidak terlalu banyak memberikan kendali pada pemain. Hal ini dapat membuat pemain bosan karena terlalu banyak yang harus dikendalikan. Yang harus diperhatikan adalah kapan memberikan pemain kebebasan dan sebanyak apa kebebasan yang diberikan. 11.
Simple vs. Complex
Tingkat kerumitan dibagi menjadi kerumitan bawaan dan kerumitan yang timbul. Kerumitan bawaan adalah kerumitan yang tercipta dari aturan – aturan yang rumit. Sedangkan kerumitan yang timbul adalah kerumitan yang terjadi karena sebuah aturan yang seringkali sederhana. Kerumitan seperti inilah yang disukai oleh banyak orang. Namun, terkadang sebuah game harus menjadi menarik karena adanya kerumitan bawaan. Harus diingat bahwa aturan yang terlampau rumit akan menciptakan kerumitan bawaan yang besar dan seringkali membuat orang menjadi enggan untuk bermain. Suatu hal sederhana yang dapat memberikan banyak kerumitan yang timbut disebut elegan. 12.
Detail vs. Imagination
Sebuah game harus dapat menyediakan beberapa tingkat kedetailan dan menyerahkan sisanya untuk diisi sendiri oleh pemain. Detail dan imajinasi pemain harus diseimbangkan dengan baik agar bayangan yang tercipta di pikiran pemain sesuai dengan yang diinginkan. Berikan detail yang dapat dibuat dengan baik. Bila kesulitan dalam membuat detail yang baik, akan lebih baik bila ditiadakan sama sekali. Berikan detail yang dapat digunakan untuk berimajinasi. Detail tersebut akan membantu
50 pemain dalam memahami permainan dan sisanya akan dilakukan oleh imajinasi pemain. Bila membuat dunia yang umum dan mudah dikenali, jangan gunakan banyak detail, biarkan imajinasi pemain yang bekerja. Pergunakan binocular-effect, yaitu dengan menampilkan karakter kita dengan
detail
di awal
permainan,
pemain
akan
menggunakan
imajinasinya untuk membayangkan karakter yang sedang dimainkan dan yang terakhir adalah berikan detail yang menginspirasi imajinasi pemain. Dengan detail yang baik, pemain akan mulai berimajinasi seputar detail yang diberikan. 2.2.3.3 Game Design Document Ernest Adams (2010: 56-58) menjelaskan bahwa terdapat banyak tipe game design document, berdasarkan aplikasi yang akan dibuat game design document secara kronologikal dibagi menjadi, yaitu: 1. High Concept Menulis dokumen high concept merupakan langkah pertama setelah menulis ide awal. Tujuannya adalah untuk mengekspresikan semangat dasar dari game tersebut. Seperti halnya tujuan resume, yaitu adalah untuk mendapatkan sebuah wawancara kerja, tujuan dokumen konsep tinggi adalah untuk menarik minat seseorang, seperti
produser
atau
eksekutif
penerbitan.
High
concept
menempatkan ide-ide utama di atas kertas berupa potongan-potongan singkat yang biasa dibaca dalam beberapa menit. Biasanya resume dan high concept sangat singkat, tidak lebih dari 2-4 halaman. 2. Game Treatment Tujuan dari game treatment adalah untuk menyajikan game secara garis besar kepada seseorang yang telah tertarik pada suatu game dan ingin mengenal lebih jauh mengenai game tersebut. Game treatment didesain utnuk memuaskan keingintahuan awal dan untuk menstimulasi rasa antusias terhadap game tersebut. Game treatment pada awalnya berupa dokumen sederhana yang hamper berupa brosur yang meringkas ide-ide dasar pada game. 3. Character Design Document
51 Character design document biasanya digunakan untuk mencatat design dari karakter yang akan dipakai dalam game seperti avatar. Tujuan utamanya adalah untuk memperlihatkan tampilan karakter serta semua pergerakan dan animasinya. Selain itu juga harus memiliki cukup concept art dari karakter dalam berbagai pose dan ekspresi wajah. 4. Game Script Game script merupakan yang terbesar dan paling akhir dari 3 dokumen desain game. Game script bukanlah peralatan penjualan, melainkan sesuatu yang lebih besar dan menyeluruh untuk itu. Game script bertujuan untuk mendokumentasikan keputusan desain, bukan untuk membujuk orang. Game script berisi referensi pasti untuk semua hal yang berkaitan dengan struktur dan organisasi dari game. Apa yang pemain lihat dan lakukan, yaitu gameplay. Game script ini juga mencakup alur cerita permainan, karakter, antarmuka pengguna, dan aturan bermain. 2.2.4 Android 2.2.4.1 Sejarah Android Menurut McWherter dan Gowell (2012:151), Android mulai terlihat di publik setelah Android Inc. diakuisisi oleh Google pada tahun 2005. Sisi perangkat keras dari Android didukung oleh OHA (Open Handset Alliance) yang merupakan gabungan dari banyak produsen ponsel, sedangkan sisi perangkat lunak dikelola oleh Android Open Source Project yang dipimpin oleh Google. Android merilis produk utamanya pada akhir tahun 2008, perusahaan ponsel pertama yang mendukung adalah T-Mobile dan ponsel yang sebenarnya yaitu HTC Dream (G1). Sistem operasi Android dibuat dalam kernel Linux yang telah dimodifikasi dan aplikasi ditulis dalam Java, dengan menggunakan Java sebagai kerangka kerja pengembangan untuk aplikasi, Android memampukan pengembang untuk mengembangkan aplikasinya pada semua platform sistem operasi besar. Mario Zechner dan Robern
52 Green (2012: 2-3) menjelaskan berbagai sistem operasi Android yang telah dirilis, yaitu:
1. Android versi 1.1 Pada 9 Maret 2009, Google merilis Android versi 1.1. Versi ini dilengkapi dengan pembaruan pada aplikasi, jam alarm, voice search, pengiriman pesan melalui “Gmail” dan pemberitahuan e-mail. 2. Android versi 1.5 (Cupcake) Terdapat beberapa pembaharuan, termasuk juga penambahan fitur dalam versi ini, yaitu kemampuan merekam dan menonton video dengan modus kamera, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem. Dirilis pada pertengahan Mei 2009. 3. Android versi 1.6 (Donut) Dirilis pada September 2009 dengan menampilkan proses pencarian yang lebih baik disbanding sebelumnya, penggunaan baterai indikator dan control applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus, kamera, camcorder dan galeri yang diintegrasi, CDMA/EVDO, VPN, Gestures dan Text-to-speech engine, kemampuan dial kontak dan pengadaan resolusi WVGA. 4. Android versi 2.0/2.1 (Eclair) Android versi ini diluncurkan pada 3 September 2009. Dilakukan perubahan, yaitu pengoptimalan hardware, perubahan User Interface (UI) dengan browser baru dengan dukungan HTML.5, daftar kontak yang baru, peningkatan Google Maps 3.1.2. Dukungan flash untuk kamera 2MP, digital zoom dan Bluetooth 2.1. 5. Android versi 2.2 (Froyo) Pada 20 Mei 2010 Google kembali meluncurkan ponsel Android dengan versi terbaru. Perubahan yang dilakukan meliputi optimasi
53 kecepatan, memori, dan kinerja sistem operasi secara keseluruhan, dukungan untuk menginstal aplikasi pada memori eksternal, dukungan Adobe Flash 10.1 serta fungsi USB tethering maupun Wi-Fi hotspot. Di dalam versi ini, sudah mendukung fitur multi-touch, di mana sistem dapat menerima masukan aksi lebih dari satu posisi pada layar. 6. Android versi 2.3 (Gingerbread) 1 Desember 2010, Google kembali meluncurkan versi terbaru dari Android yaitu 2.3 (Gingerbread). Pada versi ini terdapat peningkatan manajemen daya, kontrol melalui aplikasi, penggunaan multiple kamera, peningkatan performa serta penambahan sensor seperti gyroscope. 7. Android versi 3.0/3.1 (Honeycomb) Versi ini berbeda dengan versi-versi sebelumnya, Versi ini dirancang khusus untuk PC Tablet sehingga memiliki User Interface yang berbeda dan mendukung ukuran layar yang lebih besar. Selain itu pada versi ini memungkinkan penggunaan multiprosesor dan akselerasi perangkat keras untuk grafis. SDK versi pertama diluncurkan Februari 2011. 8. Android versi 4.0 (Ice Cream Sandwich) Versi ini adalah penggabungan dari versi 3.1 (Honeycomb) dan versi 2.3 (Gingerbread) menjadi satu set fitur yang dapat berfungsi pada tablet dan smartphone dengan baik. 9. Android versi 4.1/4.2/4.3 (Jellybean) Versi ini mengalami peningkatan pada cara penggabungan dan rendering user interface. Upaya ini dikenal sebagai “Project Butter”, perangkat pertama yang menggunakan sistem operasi ini adalah tablet Google Nexus 7. 2.2.4.2 Arsitektur Android Berikut ini merupakan penjelasan arsitektur Android:
54 a.
Application: lapisan ini adalah lapisan aplikasi, serangkaian aplikasi terdapat pada perangkat mobile. Aplikasi ditulis dalan bahasa pemrograman Java.
b.
Application
Framework:
arsitektur
ini
di
rancang
untuk
menyederhanakan penggunaan kembali komponen. Aplikasi apapun dapat mempublikasikan kemampuan dan aplikasi lain dapat menggunakan kemampuan mereka sesuai batasan keamanan. c.
Libraries: suatu set libraries dalam bahasa pemrograman C/C++ yang digunakan oleh komponen pada sistem Android.
d.
Android Runtime: suatu set libraries inti yang menyediakan sebagian besar fungsi yang tersedia di libraries inti dari bahasa pmerograman Java. Setiap aplikasi berjalan sebagai proses sendiri pada Davlik Virtual Machine.
e.
Linux Kernel: Android bergantung pada Linux Kernel 2.6 untuk layanan
sistem
inti
seperti
keamanan,
manajemen
memori,
manajemen proses, network stack, dan model driver. Kernel bertindak sebagai lapisan antar hardware dengan seluruh software. 2.2.4.3 Android Framework Menurut Mario Zechner (2011: 7-9) sisi Android yang berhadapan dengan developer adalah sebuah platform yang mengabstraksi bagian pokok Kernel Linux dan diprogram menggunakan Java. Dari pandangan High Level, Android memiliki beberapa fitur yang baik: a.
Sebuah application-framework yang menyediakan kumpulan API yang kaya untuk menciptakan berbagai macam jenis aplikasi. Hal itu juga
memungkinkan
penggunaan
kembali
dan
penggantian
komponen-komponen yang disediakan oleh platform dan aplikasi pihak ketiga. b.
Davlik virtual machine, yang bertanggung jawab menjalankan aplikasi-aplikasi pada Android.
c.
Sekumpulan graphic library untuk pemrograman 2D dan 3D.
d.
Media support untuk format audio, video, dan gambar umum seperti Ogg Vorbis, MP3, MPEG-4, H.264 dan PNG.
55 e.
API untuk mengakses komponen peripheral seperti kamera, Global Positionng System (GPS), kompas, accelerometer, layar sentuh, dan keyboard.
Gambar 2.28 Gambar Overview dan Arsitektur Android (Zechner, 2012: p.6) 2.2.5 Black-Box Testing Menurut Pressman (2010: 495), black-box testing berfokus pada persyaratan fungsional perangkat lunak. Artinya, teknik black-box testing memungkinkan untuk menghasilkan sebuah program yang semua persyaratan fungsionalnya terpenuhi. Berikut adalah kesalahan yang dapat ditemukan dengan melakukan test ini: 1.
Fungsi yang tidak tepat dan hilang
2.
Kesalahan pada interface
3.
Kesalahan pada struktur data atau akses external database
4.
Kesalahan kinerja
5.
Inisialisasi dan kesalahan terminasi
56
2.3 Hasil Penelitian atau Produk Sebelumnya Untuk mendukung materi, maka digunakan e-journal yang berisikan materi hasil penelitian atau produk sebelumnya. Berikut ini e-journal yang digunakan: 1. E-journal yang berjudul “Increasing Speed of Processing with Action Video Games” yang dibuat oleh Green, Bavelier, dan Dye (2009). E-journal ini berisikan tentang faktor dari beberapa situasi dalam sehari-hari yang salah satunya adalah kecepatan berpikir. Kecepatan berpikir ini dapat dilatih dengan pelatihan yang tepat, dalam satu individu, di berbagai tugas, dan tanpa mengorbankan tingkat akurasi. Salah satu pelatihan untuk meningkat kecepatan berpikir adalah action video game. Acton video game dapat memberikan pelatihan yang efisien untuk menginduksi laju waktu reaksi persepsi tanpa mengurangi akurasi kinerja.
2. Artikel yang berjudul “A Mobile Game for Teaching and Learning History” dari International Journal of Mobile and Blended Learning yang disusun oleh Wake dan Baggetun (2009). E-journal ini berisikan tentang perkembangan teknologi mobile phone dan meningkatnya minat penelitian dalam menggunakan komputer. Game adalah faktor penting dalam berkembangnya bidang mobile. Game yang disisipkan
dengan
ilmu
pengetahuan
adalah
sebuah
sarana
untuk
pembelajaran bagi pemain yang baik dan menarik
3. E-journal yang berjudul “Designing Mobile Games for Engagement and Learning” yang disusun oleh Parsons, Petrova, dan Ryu (2011). E-journal ini berisikan tentang game berbasis mobile learning menjadi semakin popular, sekarang mobile devices menyediakan dukungan untuk konten multimedia, augmente reality, dan konektivitas. Tantangan bagi game developer untuk mobile learning adalah untuk menggabungkan pengalaman bermain yang menarik dan pembelajaran yang berharga kedalam satu aplikasi yang sama.