BAB 2 LANDASAN TEORI
2.1
Teori Umum Teori umum merupakan teori pokok yang dijadikan landasan teori dalam
perancangan game “The Demolitor”. Berikut adalah teori-teori umum yang berhubungan dengan perancangan game “The Demolitor”:
2.1.1
Multimedia Menurut Vaughan (2008, p0), multimedia adalah segala kombinasi antara
teks, gambar, suara, animasi dan video yang disajikan melalui komputer atau media elektronik lain atau media manipulasi digital lainnya. Elemen multimedia mencakup text, gambar, animasi, suara dan video. (Vaughan, 2008, p4) 1. Teks Satu kata dapat diselubungi oleh banyak arti, sehingga ketika bekerja dengan teks, sangatlah penting untuk memperhatikan keakuratan dan ketepatan pemilihan kata. Dalam multimedia, ini adalah kata-kata yang tampil dalam judul, menu, dan bantuan navigasi serta dalam multimedia atau narasi. (Vaughan, 2008, p50) Dua jenis pengkategorian huruf yang paling sederhana adalah serif dan sans serif. Hurf serif umumnya digunakan untuk bagian badan pada halaman 8
9
cetak. Namun untuk layar computer, sans serif lebih baik dan atraktif untuk digunakan. (Vaughan, 2008, p54) 2. Suara Suara mungkin merupakan elemen multimedia yang paling sensual. Hal itu merupakan cara bicara yang paling berarti dalam semua bahasa, mulai dari bisikan hingga teriakan. Suara dapat menyajikan kenikmatan dari musik, tekanan yang menakjubkan dari special effects ataupun suara latar yang mempengaruhi suasana hati. (Vaughan, 2008, p96) 3. Gambar Gambar dapat menjadi elemen paling penting dalam multimedia, hal ini dikarenakan gambar yang ada sangat berpengaruh pada hasil visual dari gambar. (Vaughan, 2008, p134) 4. Animasi Menurut Vaughan (2008, p170), animasi adalah perubahan visual sepanjang waktu yang dapat membuat presentasi multimedia menjadi lebih hidup. 5. Video Video digital merupakan bagian multimedia yang paling memikat, dan merupakan perangkat yang kuat untuk membawa user lebih dekat ke dunia nyata. (Vaughan, 2008, p192)
10
2.1.2
Interaksi Manusia dan Komputer (IMK) Menurut Shneiderman dan Plaisant (2010, p32), ada lima faktor manusia
terukur yang dapat dijadikan sebagai pusat evaluasi, yaitu: 1. Waktu belajar Berapa lama waktu yang dibutuhkan untuk kebanyakan anggota dari sebuah komunitas user untuk mempelajari bagaimana menggunakan aksi yang relevan untuk sekumpulan tugas? 2. Kecepatan kinerja Berapa lama waktu yang dibutuhkan untuk menyelesaikan tugas yang ditentukan? 3. Tingkat kesalahan user Berapa banyak dan jenis kesalahan apa saja yang dibuat user dalam menyelesaikan tugas yang ditentukan? 4. Daya ingat Seberapa baik user dapat mempertahankan pengetahuan mereka setelah 1 jam, 1 hari atau 1 minggu? 5. Kepuasan subjektif Seberapa suka user menggunakan aspek yang beragam dari antarmuka?
Selain itu, menurut Shneiderman dan Plaisant (2010, p88-89), terdapat delapan aturan emas dalam merancang antarmuka, yaitu: 1. Berusaha untuk konsisten
11
Rangkaian aksi yang konsisten diperlukan untuk situasi yang sama, istilah yang sama sebaiknya digunakan untuk perintah, menu dan tampilan bantuan, warna, tampilan, penggunaan huruf kapital, font dan yang lainnya harus disamakan juga. Pengecualian, seperti konfirmasi perintah penghapusan harus dapat dipahami dan jumlahnya terbatas. 2. Dapat digunakan secara universal Pahami kebutuhan user yang berbeda dan gunakan desain yang terlihat dan memfasilitasi perubahan konten. 3. Menawarkan umpan balik yang informatif Untuk setiap kegiatan user, harus ada umpan balik dari sistem. Untuk aksi yang sering dan yang kurang penting, respon haruslah sederhana, sedangkan untuk aksi yang lebih jarang dan penting, respon harus lebih kuat. Tampilan visual dari objek yang menarik dapat memberikan lingkungan yang nyaman untuk menampilkan perubahan secara eksplisit. 4. Merancang dialog yang memberikan penutupan. Serangkaian aksi harus disusun menjadi kelompok-kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif dari serangkaian aksi memberikan kepuasan kepada user dalam hal prestasi, rasa lega, mengisyaratkan untuk membuang kemungkinan-kemungkinan yang akan terjadi dalam pikiran mereka, dan sebuah indikator untuk memulai sekumpulan aksi berikutnya. 5. Mencegah kesalahan.
12
Sebisa mungkin, desain sistem yang tidak mengijinkan user membuat kesalahan yang serius. Jika user membuat kesalahan, antarmuka harus mendeteksi kesalahan dan memberikan instruksi yang sederhana, konstruktif dan spesifik untuk pemulihan. Aksi yang salah tidak boleh mengubah kondisi sistem atau antarmuka harus memberikan instruksi untuk pemulihan kondisi. 6. Memungkinkan pembalikan aksi yang mudah. Sebisa mungkin aksi harus dapat dikembalikan. Fitur ini menghilangkan kegelisahan, karena user tahu bahwa kesalahan dapat dibatalkan, dan mendorong eksplorasi terhadap pilihan yang tidak familiar. Pembalikan aksi dapat dilakukan dengan aksi tunggal, pengisian data atau sekumpulan aksi. 7. Mendukung kendali internal User yang berpengalaman ingin agar mereka mendapat kontrol terhadap suatu antarmuka dan bahwa antarmuka akan merespon tindakan mereka. Mereka tidak menginginkan kejutan ataupun perubahan yang sama, dan user juga tidak menginginkan tindakan pengulangan dalam memasukan data secara terusmenerus, kesulitan dalam memperoleh informasi, dan ketidakmampuan untuk menghasilkan sesuatu yang diinginkan. 8. Mengurangi beban ingatan jangka pendek Keterbatasan kemampuan manusia untuk mengolah informasi dalam ingatan jangka pendek membutuhkan agar tampilan dibuat sederhana, beberapa halaman dapat digabung, pergerakan window dikurangi, dan waktu pelatihan yang cukup mengenai kode, mnemonics dan serangkaian aksi.
13
2.1.3
Metode Scrum Menurut Roger S. Pressman (2010, P83), Scrum adalah sebuah metode
pengembangan software agile yang dirancang oleh Jeff Sutherland dan timnya di awal tahun 1990. Dalam beberapa tahun terakhir, pengembangan lebih lanjut dari metode Scrum telah dilakukan oleh Schwaber dan Beedle. Prinsip-prinsip
Scrum
digunakan
untuk
memandu
aktifitas-aktifitas
pengembangan di dalam sebuah proses yang menggabungkan aktifitas-aktifitas kerangka kerja berikut : Requirement, Analysis, Design, Evolution, dan Delivery. Dalam setiap aktifitas framework, tugas-tugas terjadi didalam sebuah pola proses yang disebut sprint. Pekerjaan yang dilakukan didalam sebuah sprint (banyaknya sprint yang diperlukan tiap aktifitas kerangka kerja akan bervariasi tergantung dari kompleksitas produk dan ukuran) diadaptasikan ke permasalahan yang terjadi dan didefinisikan bahkan sering dimodifikasi secara real-time oleh tim Scrum. Berikut adalah ilustrasi keseluruhan aliran proses Scrum :
14
Gambar 0.1 Gambar besar aliran proses Scrum Sumber : http://www.scrum-kompakt.de/files/2010/03/abb10_scrum_prozess.jpg
Scrum menekankan penggunaan satu set pola proses software yang telah terbukti efektif untuk proyek dengan timeline yang ketat, perubahan kebutuhan, dan kritikal bisnis. Tiap proses mendefinisikan satu set kegiatan pengembangan. Backlog sebuah list prioritas kebutuhan proyek atau fitur yang menyediakan nilai bisnis untuk pelanggan. Hal-hal dapat ditammbahkan ke backlog kapanpun. (ini adalah bagaimana perubahan terjadi). Manajer produk menilai backlog dan mengupdate prioritas seperti yang dibutuhkan. Sprints terdiri dari unit kerja yang dibutuhkan untuk mencapai kebutuhan yang didefinisikan di dalam backlog yang harus sesuai dengan waktu yang telah didefinisikan. (biasanya 30 hari). Tidak ada perubahan selama sprint. Karenanya, sprint memperbolehkan anggota tim untuk bekerja dalam waktu yang singkat tapi dalam lingkungan yang stabil.
15
Scrum meeting adalah pertemuan singkat yang diadakan setiap hari oleh tim Scrum. 3 pertanyan kunci ditanyakan dan dijawab oleh semua tim : 1. Apa yang telah dilakukan sejak pertemuan tim terakhir? 2. Hambatan apa yang dihadapi? 3. Hal apa yang direncanakan untuk diraih di pertemuan berikutnya? Seorang pemimpin tim, atau scrum master, memimpin rapat dan menilai respon dari tiap orang. Pertemuan Scrum membantu tim untuk menggali potensial masalah secepat mungkin. Pertemuan Scrum juga mengarah ke “knowledge socialization” dan menghasilkan stuktur tim yang mandiri. Demos memberi perkembangan software untuk pengguna sehingga fungsi yang telah diimplementasikan, diadaptasikan, didemonstrasikan dan dievaluasi oleh pengguna.
Penting
untuk
dicatat
bahwa demo tidak
mungkin
berisi semua
fungsi yang direncanakan, melainkan fungsi-fungsi yang dapat diselesaikan dalam time-box yang direncanakan. Beedle dan rekannya menyajikan sebuah diskusi yang komprehensif dari pola-pola, dimana mereka menyatakan : “Scrum mengasumsikan kekacauan di muka”. Pola proses Scrum memungkinkan sebuah software team untuk bekerja secara sukses di dunia dimana eliminasi ketidakpastian yang tidak memungkinkan. Menurut Jeff Sutherland (2011, P16), Scrum adalah kerangka kerja yang berulang dan incremental untuk proyek dan produk atau pengembangan aplikasi. Scrum menstrukturkan pengembangan di dalam siklus-siklus kerja yang dikenal dengan istilah sprints. Setiap iterasi ini tidak lebih dari 1 bulan, dan terjadi satu demi satu tapa jeda. Sprint memiliki sifat time-boxed – Sprint selesai pada tanggal yang
16
spesifik walaupun pekerjaannya sudah selesai atau belum dan tidak pernah diperpanjang waktunya. Di awal setiap sprint, sebuah tim cross-functional memilih item (kebutuhan konsumen) dari sebuah daftar prioritas. Tim sepakat untuk menyelesaikan item pada akhir dari sprint. Selama sprint, item yang dipilih tidak berubah.
Setiap hari tim berkumpul untuk menginspeksi perkembangan, dan
menentukan langkah yang perlu diselesaikan selanjutnya untuk menyelesaikan tugas yang tersisa. Pada akhir sprint, tim mengevaluasi sprint ke stakeholder, dan mendemonstrasikan yang sudah di buat. Orang-orang akan mendapat umpan balik yang dapat dimasukkan ke dalam sprint selanjutnya. Scrum menekankan pengerjaan produk pada akhir dari sprint yang benar-benar sudah selesai; di dalam kasus pembuatan software, ini berarti kodenya sudah diintegrasikan, telah diuji sepenuhnya dan sudah mungkin untuk digunakan. Peran kunci dan peristiwa seputar scrum diringkas pada gambar dibawah ini.
17
Gambar 0.2 Detail aliran proses Scrum Sumber : http://www.noffke.com/wp-content/uploads/2010/08/Scrum.png
Tema
utama
dalam
Scrum
adalah
memeriksa
dan
mengadaptasi/
menyesuaikan. Karena perkembangan pasti melibatkan pembelajaran, inovasi dan kejutan,
Scrum
menekankan
pada
pengambilan
langkah
pendek
untuk
pengembangan, memeriksa baik pada produk yang dihasilkan dan keberhasilan dari praktek saat ini, dan lalu mengadaptasikan tujuan produk dan praktek proses. Berulang terus, selamanya.
2.1.4
UML (Unified Modeling Language) Menurut Whitten dan Bentley (2007,P371), Unified Modeling Language
adalah sebuah set ketentuan modeling yang digunakan untuk menspesifikasi atau mendeskripsikan sebuah sistem software dalam hal objek.
18
1. Class Diagram Menurut Whitten dan Bentley (2007,P400), class diagram adalah penggambaran grafis mengenai struktur objek statis dari sebuah sistem, menunjukkan kelas-kelas objek yang menyusun sebuah sistem dan juga hubungan antara kelas objek tersebut. Class Diagram digunakan secara grafis untuk menggambarkan objek dan asosiasinya. Menurut Roger S. Pressman (2010, P842-845), Class diagram digunakan untuk memodelkan kelas-kelas, termasuk atribut dan operasinya serta hubungan dan asosiasinya dengan kelas lainnya. Class diagram menyediakan sebuah gambaran statis atau struktural dari sebuah sistem. Class diagram tidak memperlihatkan komunikasi dinamis antar objek dari kelas yang ada dalam diagram. Elemen utama dalam class diagram adalah kotak, yang digunakan untuk menggambarkan kelas dan interface. Setiap kotak di bagi secara horizontal. Bagian atas berisi nama kelas, bagian tengah diisi dengan atribut-atribut yang ada dalam kelas. Atribut adalah sesuatu yang dimiliki atau diketahui oleh objek dari kelas. Bagian bawah dari class diagram berisi operasi atau behaviors dari kelas. Operasi adalah hal yang dapat dilakukan objek dari kelas. Biasanya diimplementasikan sebagai method dalam kelas. Setiap atribut memiliki nama, tipe dan level visibility. Tipe dan visibility dalam atribut adalah optional. Tipe dituliskan setelah nama, dan di pisahkan dengan sebuah tanda titik dua (colon). Visibility diindikasikan dengan awalan tanda -,#,~ atau + yang mengindikasikan masing-masing, private, protected,
19
package, atau public visibility. Setiap operasi dituliskan dengan level of visibility, parameter dengan nama dan tipe, serta return type Sebuah abstract class atau abstract method, direpresentasikan dengan penulisan nama dengan style italic. Sebuah interface diindikasikan dengan penambahan frasa “<
>” diatas nama. Class diagram dapat menunjukan relasi antar kelas-kelas. Sebuah kelas yang merupakan subclass dari kelas lainnya di hubungkan dengan sebuah tanda panah dengan garis solid untuk batangnya dan segitiga panah berongga. Panah menunjuk dari subclass menuju ke superclass. Dalam UML, hubungan seperti ini disebut generalisasi. Panah dengan garis putus-putus dan segitiga panah berongga mengindikasikan implementasi dari sebuah interface. Dalam UML hubungan seperti ini disebut realization. Sebuah asosiasi diantara 2 kelas menandakan adanya hubungan strukturan diantara mereka. Asosiasi digambarkan dengan garis solid. Asosiasi dapat diberi label di tiap ujungnya untuk mengindikasi role dari setiap kelas dalam sebuah asosiasi. Panah di salah satu atau kedua ujung garis asosiasi menunjukkan navigability. Setiap ujung dari garis asosiasi bisa menunjukkan multiplicity value. Sebuah asosiasi dapat pula menghubungkan kelas itu sendiri dengan menggunakan loop. Asosiasi seperti ini mengindikasikan hubungan dari sebuah objek dari kelas dengan objek dari kelas yang sama.
20
Sebuah asosiasi dengan panah disalah satu ujung mengindikasikan kemampuan navigasi satu arah. Jadi, dari satu kelas, kita dapat dengan mudah mengakses kelas ke dua yang terasosiasi, tapi dari kelas yang ke dua, kita tidak dapat seharusnya dengan mudah mengakses kelas yang pertama. Sebuah asosiasi tanpa panah biasanya mengindikasikan asosiasi dua arah atau dapat pula mengindikasikan bahwa navigability tidak penting. Hubungan dependency ditunjukan dengan garis putus-putus dengan panah dan label optional. Sebuah kelas tergantung dengan kelas lainnya jika perubahan pada kelas kedua membutuhkan perubahan-perubahan di kelas yang pertama. Multiplicity pada ujung sebuah asosiasi menandakan jumlah objek dari kelas tersebut yang terhubung dengan kelas lainnya. Multiplicity dispesifikasikan dengan integer yang tidak negatif atau dengan range dari integer. Multiplicity yang di tandai dengan “0..1” menandakan ada 0 atau 1 objek pada asosiasi. Multiplicity yang di tandai dengan “1..*” menandakan ada 1 atau lebih objek pada asosiasi. Multiplicity yang di tandai dengan “0..*” atau “*” menandakan ada 0 atau lebih objek pada asosiasi.
21
Gambar 0.3 Contoh Class Diagram Sumber : http://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Decorator_UML_class_diagram.svg/400pxDecorator_UML_class_diagram.svg.png
2. Use case Diagram Menurut
Whitten
dan
Bentley
(2007,P244-256),
Use
case
modeling/pemodelan use case adalah sebuah pendekatan yang memfasilitasi pengembangan berpusatkan kegunaan. Pemodelan use case awalnya disusun oleh Dr. Ivar Jacobson pada tahun 1986, dan terbukti menjadi sebuah alat bantu yang sangat berharga dalam menghadapi tantangan uuntuk menentukan apa yang harus dilakukan oleh sistem menurut perspektif pengguna dan stakeholder. Pemodelan use case secara luas dikenal sebagai aplikasi terbaik dalam menentukan, mendokumentasi, dan memahami persyaratan fungsional sistem informasi. Ada dua alat utama yang digunakan saat menyajikan pemodelan use case yaitu :
22
•
Use case Diagram Use case Diagram adalah diagram yang menggambarkan interaksi antara sistem dengan sistem eksternal dan pengguna, yang secara grafis menggambarkan siapa yang akan menggunakan sistem dan dengan cara apa pengguna mengharapkan untuk berinteraksi dengan sistem.
Gambar 0.4 Contoh Use Case Diagram Sumber : http://wiki.triastelematica.org/images/thumb/2/25/Use_case2.JPG/500px-Use_case2.JPG
•
Use case Narrrative Deskripsi tekstual kegiatan bisnis dan bagaimana pengguna akan berinteraksi dengan sistem untuk menyelesaikan suatu tugas.
3. Activity Diagram Menurut Whitten dan Bentley (2007,P390), activity diagram adalah sebuah diagram yang dapat digunakan utnuk menggambarkan secara grafis aliran dari sebuah proses bisnis, langkah-langkah dari sebuah use case, atau logika dari
23
method objek. UML menawarkan diagram tambahan yang disebut activity diagram untuk memodelkan proses langkah-langkah atau aktifitas dari sistem. Activity diagram menyediakan mekanisme untuk menggambarkan aktifitas yang terjadi secara paralel. Jika dalam diagram diperlukan spesifikasi siapa yang melakukan aksi apa, activity diagram dapat dibagi menjadi partisi-partisi yang menampilkan aksi yang dilakukan oleh kelas yang spesifik atau aktor. Notasi dalam activity diagram adalah : •
Initial node Lingkaran solid yang merepresentasikan awal dari proses
•
Actions Kotak bundar yang merepresentasikan langkah individual. Urutan dari aksi, membuat total aktifiktas tampak dengan diagram
•
Flow Panah dalam diagram yang mengindikasikan pergerakan melalui aksiaksi.
Kebanyakan
flow
tidak
memerlukan
kata-kata
untuk
mengidentifikasikannya kecuali flow yang keluar dari decision. •
Decision Bentuk belah ketupat dengan satu flow yang masuk ke dalamnya dan dua atau lebih flow yang keluar darinya. Bentuk belah ketupat ini menggambarkan sebuah kegiatan keputusan.
•
Merge
24
Bentuk belah ketupat dengan dua atau lebih input flow dan satu flow output / yang keluar darinya. Ini mengkombinasikan flow yang sebelumnya dipisahkan oleh decisions. Pemrosesan dilanjutkan dengan salah satu flow yang masuk ke merge. •
Fork Sebuah bar hitam dengan satu flow input/masuk, dan dua atau lebih flow yang keluar. Simbol ini memungkinkan analis untuk menggambar kegiatan yang dapat muncul secara paralel.
•
Join Sebuah bar hitam dengan dua atau lebih flow input/yang masuk ke simbol ini dan satu flow yang keluar, yang menandakan akhir dari proses yang berlangsung. Aksi-aksi yang mengarah ke join harus selesai semua sebelum proses dilanjutkan ke flow berikutnya.
•
Activity Final Titik solid di dalam sebuah lingkaran menggambarkan akhir dari sebuah proses.
25
Gambar 0.5 Contoh Activity Diaram Sumber : http://cuplis.net/wp-content/uploads/2009/12/ad-pencatatandataanggota.jpeg
4. Sequence Diagram Menurut Whitten dan Bentley (2007,P394), sequence diagram adalah diagram yang menggambarkan interaksi antara aktor dan sistem untuk sebuah skenario use case. Sequence diagram menggambarkan bagaimana objek saling berinteraksi satu sama lain melalui messages dalam eksekusi dari sebuah use case atau operasi. Diagram ini menggambarkan langkah-langkah pesan dikirim dan diterima antara objek. Notasi dalam sequence diagram : •
Actor Aktor pemulai dari use case yang digambarkan dengan simbol aktor pada use case.
26
•
System Kotak yang mengindikasikan sistem sebagai sebuah black box, atau sebagai sebuah keseluruhan. Tanda titik dua “:” adalah notasi standar sequence diagram untuk mengindikasikan instance yang berjalan dalam sistem.
•
Lifelines Garis putus-putus vertikal yang diperpanjang ke bawah dari simbol aktor dan sistem, yang mengindikasikan hidup sequence.
•
Activation bars Bar yang di set di atas lifeline yang mengindikasikan periode waktu kapan partisipan aktif dalam interaksi.
•
Input message Panah horizontal dari aktor ke sistem yang mengindikasikan input message. Tiap message disebut dengan behavior/method dari kelas. Message diawali dengan kata pertama dalam huruf kecil dan huruf besar pada awal setiap kata berikutnya, tanpa spasi. Dalam tanda kurung, dapat disertai parameter yang perlu di kirimkan, dengan pemisah koma untuk setiap parameternya.
•
Output message/Return Message Panah horizontal dengan garis putus-putus yang mengembalikan message. Setiap behavior harus mengembalikan sesuatu, paling tidak message true/false yang mengindikasikan apakah behaviour tersebut sukses atau tidak. Tapi untuk menjaga simplicity, beberapa return
27
message terkadang diasumsikan dan tidak digambarkan dalam sequence diagram •
Frame Sebuah kotak yang melampirkan satu atau lebih message untuk memisahkan fragmen dalam sequence. Frame dapat menggambarkan looping, alternate fragment, atau langkah optional. Untuk kondisi optional,
kondisi
yang
ditampilkan
dalam
kurung
persegi
mengindikasikan kondisi untuk setiap langkah yang akan dijalankan.
Gambar 0.6 Contoh Sequence Diagram Sumber : http://dinusajnani.com/cbc/umlSequenceDiagram.jpg
28
2.1.5
Database Menurut Thomas Connoly dan Carolyn Begg (2002, P14-15), Database
adalah koleksi bersama dari data terkait yang logis, dan deskripsi dari data tersebut, yang didesain untuk memenuhi kebutuhan data dari sebuah organisasi. Database adalah sebuah tempat penyimpanan data yang besar dan tunggal yang dapat digunakan secara simultan oleh banyak departemen dan user. Semua item data terintegrasi dengan jumlah duplikasi yang minimal. Entity Relational Modeling adalah pendekatan top down untuk desain database yang dimulai dengan mengidentifikasi data penting yang disebut entities dan relationships diantara data yang harus direpresentasikan dalam model. Langkah selanjutnya adalah menambahkan detail informasi mengenai entities dan relationship yang disebut atribut dan constrain pada entities, relationships dan attributes.
2.1.6
Kuisioner Menurut Bentley dan Whitten (2007,P220-222), salah satu teknik
pengumpulan data (fact-finding) adalah melakukan survei melalui kuisioner. Kuisioner adalah dokumen yang memungkinkan analis untuk mengumpulkan informasi dan opini dari responden. Dokumen dapat diproduksi secara massal dan didistribusikan ke responden dimana mereka dapat menyelesaikan kuisioner pada waktu yang tersedia bagi mereka. Kuisioner memungkinkan analis mengumpulkan data dari jumlah peserta yang banyak. Saat berurusan dengan peserta dalam jumlah yang banyak, tidak ada teknik pengumpulan data lain yang dapat mentabulasi fakta yang sama se-efisien kuisioner.
29
2.1.7
Object Oriented Programming Menurut M.Blaha, W.Premerlani, F. Eddy dan W.Lorensen (1991), Object
Orientation adalah prinsip yang paling umum digunakan dalam riset software dan pengembangannya pada masa sekarang ini. Object Orientation mencakupi tahaptahap life cycle software yang bervariasi, dari implementasi, selama desain sampai analisa sistem.
2.2
Teori Khusus Teori khusus adalah teori yang berhubungan dengan topik yang dibahas dalam
skripsi ini. Berikut adalah teori-teori khusus yang berhubungan dengan perancangan game”The Demolitor”:
2.2.1
Computer Game Menurut Chris Crawford (1997,P2), Computer Game adalah satu bentuk seni
karena menghadirkan pengalaman berkhayal bagi pemainnya dan menstimulasi emosi pemainnya. Menurut Chris Crawford (1997,P38), fitur paling utama dari game dalam komputer adalah kemampuan respon/tanggapannya. Kemampuan respon adalah kunci vital utnuk interaktifitas, sehingga sangat penting dalam game. Komputer dapat merespon kemauan pemain dalam cara yang begitu bervariasi.
30
Menurut Lindsay Grace (2005,p1), game dibedakan menjadi beberapa jenis berdasarkan gameplay-nya, yaitu: 1. Action Action game adalah game yang menekankan pada intensitas dari aksi sebagai atraksi utamanya. Respon reflek adalah kemampuan utama yang diperlukan dalam memainkan game bertipe action. 2. Adventure Adventure game adalah game yang menyediakan eksplorasi dan pemecahan misteri sebagai atraksi utamanya. Adventure game umumnya menawarkan cerita yang mengasyikan. Pemikiran, creatifitas, dan rasa penasaran adalah kemampuan umum yang diperlukan untuk menjadi pemain adventure game. 3. Puzzle Puzzle game adalah game yang menyediakan puzzle sebagai atraksi utamanya. Game bertipe puzzle biasanya diluncurkan dalam anggaran yang rendah melalui web. 4. Role Playing Role Playing game (RPG) adalah game yang menyediakan pemain sebuah peluang untuk menghayati situasi dari karakter game. Role playing game memiliki karakter yang tergolong banyak, memiliki durasi yang panjang, dan manajemen karakter merupakan hal teknis. 5. Simulation
31
Elemen utama dari game bertipe simulation adalah kemampuan untuk menyamai situasi pada dunia nyata. Simulation game menyediakan kesenangan melalui pemeragaan. 6. Strategy Strategy game adalah game yang menghibur melalui pemikiran dan dan pemecahan misteri.
2.2.2
Puzzle Game Menurut Andrew Rollings dan Ernest Adams (2003, P487-489), Puzzle
Game adalah game dimana unsur utamanya adalah mengenai puzzle solving, terkadang tanpa menggabungkan puzzle ke dalam storyline atau tujuan yang lebih besar. Puzzle game biasanya berupa variasi dari tema yang sama. Agar sukses secara komersial, Puzzle game harus bisa menantang, tapi tidak terlalu sulit, menarik secara visual, dan yang paling utama adalah menghibur untuk dimainkan. Menurut Scot Kim, ada 8 langkah dalam mendesign puzzle game. 4 langkah pertama meliputi proses spesifikasi aturan-aturan, dan 4 langkah terakhir meliputi proses pengembangan puzzle dan game itu sendiri. Berikut langkah untuk mendesign puzzle game :
32
1. Mencari Inspirasi Inspirasi dapat ditemukan dari berbagai sumber, termasuk dari game lainnya. Inspirasi dapat didapat dari sebuah seni, cerita, atau pokok bahasan tertentu. 2. Menyederhanakan (Simplify) Setelah menemukan ide untuk puzzle, Hal yang membuat aksi dalam game menarik adalah dengan menyederhanakan aksi tersebut ke inti utama aksi tersebut. Pertama-tama identifikasi keterampilan utama yang diperlukan dalam game, lalu eliminasi detail yang tidak relevan. Langkah selanjutnya adalah buat keseragaman atau tipe standar dari objek dalam game, dan terakhir, sederhanakan kontrol. Temukan gerakan utama, dan rancang kontrol yang mengimplementasikannya dengan gesekan yang seminim mungkin. 3. Membuat Construction Set Satu-satunya cara utuk meyakinkan bahwa konsep puzzle bekerja dengan baik adalah dengan memainkannya. Tapi, biasanya kita tidak ingin mengkodekan keseluruhan game sebelum kita mengetahui apakah konsep ini menghibur atau tidak. Dapat dibuat sebuah paper prototype atau versi sederhana dari game tersebut untuk melihat apakah konsep ini bekerja dengan baik. 4. Mendefinisikan aturan-aturan Bagian utama dari mendesign puzzle game adalah mendefinisikan aturan. Kebanyakan puzzle dikarakterisasi menjadi 4 bagian yaitu : board, pieces, moves, dan tujuan atau kondisi menang.
33
5. Membangun Puzzle Sebuah Puzzle menantang pemain untuk mendapat solusi dari sebuah masalah, tapi tentunya jalan untuk menemukan solusinya tidak mudah. Semua Puzzle menuntut pemain untuk membuat pilihan, beberapa membuat pemain masuk ke dead end. 6. Testing Testing membuat banyak hal diketahui, apakah puzzle terlalu mudah atau sulit, dan apakah game menarik atau tidak. Testing juga membuat alternatif solusi dalam game yang dapat ditemukan. Testing membantu dalam penemuan error pada rules, dan komentar pemain terhadap user interface game. Karena Puzzle game cenderung berulang-ulang, user interface harus dirancang dengan baik. 7. Merancang Sequence Puzzle Setelah langkah testing, langkah berikutnya adalah menyusun puzzle ke dalam urutan. Pengaturan yang paling umum adalah urutan linear dari level yang mudah sampai ke level yang sulit, tapi dalam pelaksanaannya, pengaturan ini membuat pemain lelah dan tidak semangat. Pengaturan yang lebih baik adalah dengan sawtooth shape, yaitu ada masanya tingkat kesulitannya tinggi, lalu kembali ke kondisi yang mudah, and seterusnya, berulang-ulang. 8. Merancang presentasi dan unsur-unsur lainnya Akhirnya, dibutuhkan perancangan untuk detail design game lainya, seperti suara, grafik, animasi, elemen user interface, storyline, dan lainnya.
34
2.2.3
Online Game Menurut Andrew Rollings dan Ernest Adams (2003, P499-501), game online
telah beralih dari fraksi yang kecil dari dunia hiburan interaktif menjadi pasar utama yang yang berdiri sendiri. Game online memiliki kualitas yang unik, baik maupun buruk, serta tantangan desain yang unik. Game online adalah sebuah teknologi yang bukan genre.
Keuntungan dari game online Game online memiliki kualitas positif. Beberapa diantaranya keuntungan untuk pengembang game dan fitur yang menarik bagi pemain yaitu: 1. Sosialisasi pemain. Manfaat terbesar utama bermain game online, selama pemain saling terhubung adalah menawarkan kesempatan untuk interaksi sosial. Tentu saja, pemain tidak dapat berbicara secara langsung jika mereka berada di ruangan yang sama bersama-sama, dan mereka tidak dapat saling memiliki kontak fisik, tetapi ini adalah pertimbangan minor. Aspek sosial tidak mempengaruhi ekonomi internal pada banyak game, tetapi memiliki efek yang berbeda pada kenikmatan pemain dari pengalaman. Salah satu alasan bahwa anak perempuan dan perempuan secara tradisional kurang tertarik dalam hiburan interaktif, terutama karena game untuk komputer pribadi kebanyakan merupakan aktivitas sendiri. Tetapi perempuan memiliki proporsi yang jauh lebih besar di pasar game online
35
daripada di pasar game komputer pribadi, terutama untuk alasan mereka menikmati berinteraksi dengan orang lain. Pada saat ini, kemampuan sosialisasi biasanya terbatas pada teks mengetik ("chatting"), yang terasa sulit ketika mencoba untuk memainkan permainan cepat, namun beberapa game mulai meliputi komunikasi suara. Ketika cukup banyak orang mendapatkan akses broadband, mungkin sosialisasi dapat melalui video juga. Unsur sosial membuat game online lebih dari sekedar permainan. Mereka menjadi tempat di mana orang berkumpul untuk bersenang-senang. Sebagai pencipta ruang sosial, pengembang game lebih dari sekedar desainer game, Pengembang game juga harus menjadi seorang arsitek sosial. Ini merupakan tantangan terberat, jauh lebih sulit daripada merancang mekanik inti dari permainan single-player. Pada sebuah game online pengembang game tidak dapat mempengaruhi pemain, game online adalah cawan untuk pertumbuhan situasi sosial, dan hampir tidak mungkin untuk memprediksi terlebih dahulu apa yang akan terjadi di sana. 2. Human Intelligence daripada Artificial Intelligence Dalam permainan single-player, pemain bersaing melawan komputer, sehingga komputer harus memiliki cukup kecerdasan buatan untuk menjadi lawan yang baik. Pada game kompleks, perancangan
Artificial Intelligence
adalah tugas pemrograman yang sangat besar dan sulit. Jika pemain bersaing satu sama lain, karena mereka dalam permainan online, pengembang tidak
36
memerlukan Artificial Intelligence apapun. Para pemain memberikan semua kecerdasan yang dibutuhkan. Tentu saja, pengembang masih dapat merancang permainan sedemikian rupa sehingga diperlukan Artificial Intelligence. Game mungkin memiliki karakter non-player (NPC) yang memerlukan perilaku cerdas, atau game dapat dirancang di mana semua pemain bermain secara kooperatif terhadap lawan buatan. Tapi game online banyak bergantung pada pemain mereka untuk menyediakan intelijen dalam permainan, dan ini bisa membuat permainan lebih mudah untuk dikembangkan. Intelijen, dalam hal gameplay, berarti lebih dari sekedar kecerdasan, ini memiliki arti pemahaman tentang perilaku manusia. Perangkat lunak komputer terutama lemah dalam hal ini sedangkan, manusia sangat baik. Permainan melawan setiap orang yang dapat memberi tipuan, penyergapan, memancing lawan keluar dari persembunyian dengan lame-duck tactics, dan mencoba segala macam deguerre Russes yang tidak akan terhandle saat melawan lawan Artificial Intelligence (atau, lebih buruk lagi, akan bekerja secara konsisten setiap waktu ). Saat melawan lawan manusia, pemain dapat mempelajari gaya pemain lain dan mencari cara untuk mengeksploitasi kecenderungan, seiring dengan pemain menjadi sadar bahwa dia belajar dari pemain lain juga.
37
2.2.4
Game Design Menurut Andrew Rollings dan Ernest Adams (2003, P4-6), Game design
adalah proses dari : 1. Mengimaginasikan game 2. Mendefinisikan cara kerjanya 3. Mendeskripsikan elemen-elemen yang membentuk game (conceptual, functional, artistic, dan lainnya) 4. Mentransmisikan informasi-informasi tersebut ke tim yang akan membuat game Mendesign sebuah game adalah craft / kerjainan. Sebuah game mengandung baik elemen artistik maupun elemen fungsional. Game harus estetis namun harus bekerja dengan baik dan menghibur untuk dimainkan. Game yang baik mengkombinasikan semua atribut ini dengan baik, dan mencapai kualitas dunia yang baik. Game design tidak dapat dijabarkan ke suatu set instruksi atau proses. Tidak ada formula yang dapat diikuti dan memproduksi sebuah game design yang sempurna, yang siap untuk dilanjutkan ke tahap pengkodean oleh tim programming. Walaupun demikian, dapat dicontoh beberapa prinsip yang diaplikasikan untuk semua game yang sukses.
38
2.2.5
Game Balancing Menurut Martin Heni dan Andreas Beckermaann
(2006, P17), Game
Balancing adalah seni menyesuaikan permainan sehingga semua elemen dalam permainan berada dalam hubungan baik dengan satu sama lain. Ini adalah aspek penting karena pemain hanya akan terus bermain permainan jika itu menantang, menarik, dan adil. Balancing merupakan isu utama di semua game, termasuk game komersial, bahkan kadang-kadang game menunjukkan contoh tipikal dari ketidakseimbangan dalam karakter atau unit, yang dapat menjadi tidak menarik dalam permainan. Contoh-contoh ketidakseimbangan terjadi dalam permainan di mana beberapa karakter yang lebih lemah dari yang lain, seperti tokoh-tokoh diplomatik atau medis. Suatu game harus menciptakan keseimbangan secara keseluruhan dalam permainan untuk memastikan bahwa dua pemain memiliki keterampilan yang sama akan memiliki kemungkinan yang sama untuk memenangkan permainan. Hal ini sangat penting untuk membuat permainan yang adil. Setiap item, karakter, sumber daya, dan unit permainan harus berada dalam hubungan yang seimbang satu sama lain, dan biaya manfaat rasio keseluruhan harus konstan atau setidaknya mirip. Jika tidak, beberapa unit akan lebih disukai oleh orang lain, unit tertentu akan menjadi lebih efektif dan berguna. Hal ini menyebabkan pemain hanya memilih pilihan yang sangat spesifik, dan akibatnya, permainan menjadi membosankan. Selain
keseimbangan
permainan
secara
keseluruhan,
perlu
dijaga
keseimbangan konstan selama bermain game. Tentu saja, ketika satu pemain memperoleh keuntungan, pada titik tertentu dalam permainan, ia harus dihargai
39
sehingga penghargaan berikutnya lebih mudah untuk didapatkan dan pemain memiliki kesempatan lebih tinggi untuk memenangkan permainan (umpan balik positif). Namun, umpan balik ini positif hanya harus bekerja pada tingkat yang moderat sehingga keuntungan yang sedikit tidak akan secara otomatis menyebabkan pemain dijamin menang, yang akan membuat permainan tidak adil dan melelahkan. Namun perlu diingat bahwa jika tidak ada umpan balik positif dalam permainan, juga bisa membosankan. Oleh karena itu untuk keseimbangan permainan yang tepat, terdapat hal yang perlu dihindari pada skenario berikut: 1. Jika seorang pemain memiliki pilihan antara beberapa alternatif dalam permainan, seperti membangun unit untuk strategi permainan, tapi salah satu dari mereka jauh lebih kuat daripada yang lain, pemain selalu akan memilih yang satu ini. Karena itu, game ini membosankan 2. Jika selama permainan keuntungan kecil dari satu pemain secara besarbesaran mengalami peningkatan (umpan balik positif) dan mengarah ke kemenangan tertentu, permainan muncul tidak adil. 3. Jika selama permainan terdapat kelebihan dari
sebuah pemain tidak
berpengaruh, permainan akan menjadi tidak menarik 4. Jika satu sisi lebih kuat dari sisi lain, terdapat kepastian menang atau kalah, game akan menjadi tidak menarik.
40
2.2.6
Internet Menurut Fred T. Hofstetter (2001, P13), Internet adalah koneksi seluruh
penjuru dunia dengan lebih dari 72 juta komputer dengan menggunakan Internet Protocol (IP) untuk berkomunikasi. Internet Protocol diciptakan untuk US Department of Defense Advanced Research Project Agency (ARPA). Tujuannya adalah untuk menciptakan sebuah jaringan yang akan terus berfungsi jika sebuah bom menghancurkan satu atau lebih node jaringan, informasi akan mendapatkan dialihkan secara otomatis sehingga masih bisa dijangkau. Sebagai hasil dari desain ini, setiap pengguna di internet dapat berkomunikasi dengan pengguna lain, terlepas dari lokasi mereka.
2.2.7
World Wide Web Menurut Fred T. Hofstetter (2001, P14), World Wide Web (WWW) adalah
jaringan sistem hypertext yang memungkinkan dokumen untuk dibagikan melalui internet. Dikembangkan pada Pusat Fisika Partikel Eropa (CERN) di Jenewa, Swiss, tujuan awal Web adalah agar peneliti di seluruh dunia bekerja sama dalam dokumen yang sama tanpa bepergian. Hypertext merupakan sebuah kata yang diciptakan oleh Ted Nelson (1965). Hal ini mengacu pada teks yang telah terkait. Ketika Anda melihat hypertext dan klik sebuah kata yang telah dikaitkan, komputer Anda akan menjalankan objek link tersebut. Link memberikan teks sebuah dimensi tambahan, itulah sebabnya mengapa disebut hyper. Ketika Web dimulai, itu murni berbasis teks. Pada tahun 1993, National Center for Supercomputer Application (NCSA) merilis Mosaic, antarmuka pengguna
41
grafis yang membuat Web sangat mudah digunakan. Selain teks, Mosaic memungkinkan halaman Web berisi gambar, dengan link ke audio dan video juga. Hal ini menyebabkan Web menjadi layanan yang paling populer di internet.
2.2.8
Action Script Menurut dokumen Adobe System Incorporate (2006, P12), Action Script
adalah bahasa pemograman untuk Flash Player runtime environment. Action Script memberikan interaktifitas, meng-handle data, dan banyak lainnya di dalam isi dan aplikasi flash. Action Script dieksekusi oleh Action Script Virtual Machine, yang merupakan bagian dari Flash Player. Kode action script biasanya di-compile oleh compiler yang terbuat di dalam Flash Authoring Tool atau Flex framework kedalam format bytecode. Bytecode tersebut ter-embed dalam file swf, yang dieksekusi oleh runtime environment Flash Player. Action Script 3 adalah versi terbaru dari action script. Action Script 3 menawarkan model pemrograman yang kuat yang akan familiar untuk pengembang dengan kemampuan dasar dari object oriented programming.
42
2.2.9
Adobe Flex Menurut Colin Eberhardt (P6), Adobe Flex adalah sebuah set aplikasi API
yang dibangun diatas Flash. Versi pertama dari plugin flash di release oleh Macromedia pada tahun 1996, yang menyediakan grafik vektor dan animasi berdasarkan timeline. Konten berbasis Flash menambahkan untuk apa yang dapat disebut sebagai pengalaman web statis, yang terbatas dengan teknologi HTML, dan internet bandwith yang terbatas. Flash banyak digunakan untuk game, banner iklan dan demo produk yang interaktif. Tapi, bagaimanapun juga, timeline-based nature dari flash membuatnya sulit untuk digunakan untuk pengembangan dari aplikasi. Saat popularitas AJAX berkembang, versi pertama Flex direlease. Flex adalah sebuah layar yang berkedudukan di atas flash, menyediakan sebuah model pemrograman yang lebih familiar untuk pengembang aplikasi. User interface-nya dapat di definisikan secara deklaratif menggunakan MXML, yaitu sebuah bahasa markup berbasis XML. Beberapa user interface yang umum, seperti button, list, trees dan grid sudah disediakan. Logika interaksi dikembangkan dalam Action Script, sebuah bahasa object oriented yang menggunakan sintaks yang sama dengan Java Script.
43
Gambar 0.7 Flash Runtime Sumber : http://scottlogic.co.uk/blog/colin/wp-content/uploads/2011/05/Flex-Silverlight-HTML5.pdf
Proses pengembangan biasanya dilakukan didalam IDE FlashBuilder, yaitu sebuah development environment yang berbasis eclipse.Ini menyediakan lingkungan yang familiar bagi pengembang Java. Karena Flex adalah abstraction layer yang melakukan eksesusi terhadap Flash runtime, sebuah aplikasi flex biasanya akan mengandung library flex sebagai bagian dari distribusinya, ditambahkan ke dalam sebuah footprint dari sebuah solution berbasis Flex. Flex juga adalah teknologi yang matang, memiliki track record yang baik sejak pertama di release pada tahun 2004.
44
2.2.10
Box2D Menurut Erin Catto(2011,P2), Box2D adalah library untuk simulasi 2
dimensi yang sering digunakan di game. Programmer dapat menggunakan library ini dalam game mereka untuk membuat objek bergerak dengan cara yang realistis dan membuat dunia game menjadi lebih efektif. Box2D adalah physic engine yang sering digunakan dalam game komputer. Dari pandangan game engine, physic engine adalah sebuah sistem untuk animasi prosedural.
Box2D ditulis dalam
portable C++.
2.2.11
WEB2PY Menurut Massimo Di Pierro (2009,P1-2), WEB2PY adalah framework web
gratis dan open source untuk pengembangan aplikasi web database yang aman. WEB2PY adalah framework yang lengkap, yang mengandung semua komponenkomponen yang dibutuhkan untuk membangun aplikasi web yang berfungsi secara keseluruhan. WEB2PY ditulis dengan menggunakan bahasa Phyton, dan dapat diprogram dengan menggunakan Phyton. WEB2PY didesign untuk mengarahkan pengembang web untuk mengikuti software enginering practice yang baik, seperti dengan menggunakan pola Model View Controller (MVC). WEB2PY memisahkan data representation (model) dari data presentation (view) dan juga dari application logic dan workflow (controller). WEB2PY mengutamakan keamanan. WEB2PY secara otomatis mengatasi banyak hal yang dapat mengarah ke menyerang kerentanan keamanan. Sebagai contoh, WEB2PY menvalidasikan semua input (untuk menghindari injeksi),
45
melakukan rename file yang ter-upload (untuk menghindari directory traversal attack), dan menyimpan semua informasi session di server side. WEB2PY berbeda dengan web framework lainnya. WEB2PY adalah framework yang menganut sepenuhnya paradigma Web 2.0, dimana web adalah komputer. WEB2PY tidak memerlukan instalasi dan konfigurasi dan dapat dijalankan di berbagai arsitektur yang dapat menjalankan Phyton, contohnya Windows, Windows CE, Mac OS X, iPhone, dan Unix/Linux. Tahap development, deployment, dan maintenance pada aplikasi WEB2PY dapat dilakukan melalui local atau remote web interface.
2.2.12
MySQL Menurut Miftakhul Huda dan Bunafit Komputer (2011,P181), MySQL
adalah sebuah perangkat lunak sistem managemen basis data SQL atau yang dikenal dengan DBMS (Database Management System), database ini multithread, multiuser. MySQL adalah Relational Database Managemenet System (RDBMS) yang didistribusikan secara gratis dibawah lisesnsi GPL (General Public License), dimana setiap orang bebas menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat closed source atau komersil. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Stuctured Query Language).
46
2.2.13
FB API Menurut Wolfram Koska (2007,P5-11), Aplikasi Facebook adalah program
yang menggunakan Facebook API dan bisa di tambahkan atau dihapus kapanpun oleh user account mereka masing-masing. Tipe aplikasi yang paling umum adalah internal web application, yang dapat diakses langsung dalam website Facebook. Facebook API dapat digunakan dari external web application, external desktop applications dan internal web applications. Setiap aplikasi
yang
menggunakan API harus melakukan autentikasi sebelum pertukaran informasi dari antara Facebook dan aplikasi. External web applications adalah aplikasi dimana user diarahkan ke Facebook dan ia harus melakukan autentikasi dengan menggunakan username dan password. Dari sana, user akan diarahkan kembali ke external web application dengan token autentikasi. Facebook API menyediakan panggilan untuk autentikasi, untuk mendapat informasi dari user, group user, teman, notifikasi, event dan feeds. Di setiap API call, ada deskripsi detail dari parameter dan xml yang dikembalikan.
2.2.14
Action Message Format Menurut situs http://www.pyamf.org/ (2012),
PyAMF menyediakan
dukungan Action Message Format (AMF) untuk Phyton yang compatible dengan Adobe Flash Player. PyAMF menyediakan integrasi dengan web framework Phyton seperti Django, Pylons, Twisted, SQLAlchemy, web2py dan lainnya. Adobe Integrated Runtime dan Adobe Flash Player menggunakan AMF untuk komunikasi antar aplikasi dengan remote server. AMF melakukan encode pada
47
remote procedure calls (RPC) kedalam sebuah representasi binary yang padat yang dapat di transfer melalui protocol HTTP/HTTPS atau RTMP/RTMPS. Objek dan nilai data di-serialized kedalam format binary ini, yang meningkatkan performance, memperbolehkan aplikasi untuk me-load data 10 kali lebih cepat dari pada textbased format seperti XML atau SOAP. AMF3 yang merupakan serialisasi standar untuk Action Script 3, menyediakan berbagai macam keuntungan daripada AMF0, yang digunakan oleh Action Script 1.0 dan 2.0. AMF 3 mengirimkan data melalui jaringan dengan lebih efisien daripada AMF0. AMF3 menydiakan pengiriman obyek int dan uint sebagai integer dan mendukung tipe data yang hanya tersedia dalam Action Script 3.0, contohnya ByteArray, ArrayCollection, ObjectProxy, dan IExternalizable.