• Tidak ada hasil yang ditemukan

Pembangunan game first person shooter (FPS) 3D Palagan Ambarawa berbasis desktop

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pembangunan game first person shooter (FPS) 3D Palagan Ambarawa berbasis desktop"

Copied!
152
0
0

Teks penuh

(1)
(2)
(3)
(4)
(5)

nama : Deni Ocktaviyan jenis kelamin : Laki-laki

tempat, tanggal lahir : Tasikmalaya, 30 Oktober1989

agama : Islam

kewarganegaraan : Indonesia

status : Belum kawin

anak ke : Lima dari lima bersaudara

alamat : Jl. Jend. Sudirman No. 842 RT. 05/01 Kelurahan Maleber Kecamatan Andir

Bandung

telepon : +62857 2020 9095

e-mail : cyclon_nitrous@yahoo.co.id

2. RIWAYAT PENDIDIKAN

1. Sekolah Dasar : SD Negeri Garuda 3 Bandung

tahun ajaran 1996-2002

2. Sekolah Menengah Pertama : SMP Negeri 9 Bandung

tahun ajaran 2002 – 2005

3. Sekolah Menengah Atas : SMK Pasundan 2 Bandung

tahun ajaran 2005 – 2008

4. Perguruan Tinggi : FTIK UNIKOM Bandung

tahun ajaran 2008 – 2013

Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan sadar dan tanpa paksaan.

Bandung

(6)

PEMBANGUNAN GAME FIRST PERSON SHOOTER 3D

PALAGAN AMBARAWA BERBASIS DESKTOP

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Studi S1 Teknik Informatika

Fakultas Teknik dan Ilmu Komputer

DENI OCKTAVIYAN

10108502

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(7)

III

KATA PENGANTAR

Assalammu’alaikum Wr.Wb.

Puji syukur alhamdulillah penulis panjatkan atas kehadirat Allah SWT sang Pencipta alam semesta, manusia, dan kehidupan beserta seperangkat aturan Nya, karena berkat limpahan rahmat, taufiq, hidayah serta inayah-Nya, sehingga penulis dapat menyelesaikan Skripsi yang berjudul ”Pembangunan Game First Person Shooter 3D Palagan Ambarawa Berbasis Desktop” ini dapat terselesaikan

tidak kurang dari pada waktunya.

Skripsi ini dibuat sebagai salah satu syarat kelulusan pada program Strata 1 Fakultas Teknik dan Ilmu Komputer, Program Studi Teknik Informatika di Universitas Komputer Indonesia. Penulis menyadari bahwa skripsi ini masih banyak kekurangan dari berbagai macam hal. Namun berkat bantuan dan bimbingan dari beberapa pihak akhirnya skripsi ini dapat diselesaikan tepat pada waktunya.

Dengan penuh rasa syukur, ucapan terima kasih yang mendalam serta penghargaan yang tidak terhingga penulis sampaikan kepada:

1. Allah SWT, yang telah memberikan rahmat dan hidayah-Nya kepada penulis sehingga dapat menyelesaikan skripsi ini dengan baik.

2. Nabi Muhammad SAW yang telah menyampaikan wahyu Allah dan sebagai idola nomor satu.

(8)

IV

4. Yth. Ibu Tati Harihayati M., S.T, M.T., selaku pembimbing yang telah memberikan pengarahan dan masukan-masukan yang berharga kepada penulis dalam mengerjakan laporan tugas akhir.

5. Yth. Ibu Nelly Indriani. W, S.Si., M.T., selaku penguji 1 yang telah memberikan banyak masukan yang berarti bagi penulis.

6. Yth. Ibu Riani Lubis, S.T, M.T., selaku penguji 2 yang telah memberikan banyak masukan yang berarti bagi penulis.

7. Yth. Bapak Irawan Afrianto, S.T., M.T., selaku Ketua Program Studi Teknik Informatika Universitas Komputer Indonesia sekaligus dosen wali kelas IF-10 angkatan 2008.

8. Seluruh dosen pengajar dan staff tata usaha.

Selain itu tidak lupa juga penulis ucapkan terima kasih yang setulus-tulusnya dan penghargaan yang setinggi-tingginya kepada:

1. Kakak-kaka penulis tercinta yaitu Tomi Krisna, Dani Indrayana, Luki Lexmana dan Adi Regawa yang selalu menyemangati dan mendorong penulis untuk terus berusaha menggapai mimpi.

2. Teman-teman penulis yaitu Triantoro, Lutfi MA, Refi Dj, Ahmad, Arif, Deni McD, Toge, Doni, Yudi, Edi, Ozan, Yana Afika, Beni, Amin, Aji, Ali, Joel, Atep, Bret, Ahmad, Ridwan, Febri, Tiwi, Eci, Yuni, Devi, Fadli, Fauzan, Iman, Angga Padalarang, Oksa, Ipank, Puskey, Aziw, Hendi, Cecep, Yoi, Aldi, Rosadi, Rendy, Agi, Nday, dan semua teman-teman di kampus maupun di rumah, terimakasih untuk segala momen yang telah kalian berikan selama ini.

3. Paman penulis yaitu Pak Usep Kuswara, Pak Ade Wijaya, Pak Atep Dedi yang selalu menyemangati dan mendorong penulis untuk terus berusaha menggapai mimpi.

(9)

V

memberi motivasi dan memberi pengertiannya disamping tugas mengajar di sekolah.

5. Spesial kepada orang yang penulis sayangi yang telah medukung dan mendoakan penulis untuk tidak putus semangat dalam menghadapi kesulitan dalam mengerjakan skripsi ini.

6. Semua pihak yang telah membantu dalam menyelesaikan skripsi ini yang tidak bisa disebutkan satu persatu oleh penulis.

Dengan segala kerendahan hati, dalam penulisan skripsi ini penulis telah berusaha semaksimal mungkin walaupun demikian penulis menyadari bahwa skripsi ini masih banyak kesalahan dan kekurangan. Oleh karena itu penulis mohon saran dan kritikannya untuk kesempurnaan skripsi ini. Akhir kata penulis hanya berharap semoga skripsi ini dapat bermanfaat bagi penulis dan para pembaca umumnya.

Wassalamu’alaikum wr. Wb

Bandung, Februari 2013

(10)

VI

ABSTRACT ... II

KATA PENGANTAR ... III

DAFTAR ISI ... VI

DAFTAR GAMBAR ... VIII

DAFTAR TABEL ... viii

DAFTAR SIMBOL ... xiii

DAFTAR REFERENSI PROPERTI GAME ... viii

DAFTAR LAMPIRAN ... xvi

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Perumusan Masalah ... 2

1.3 Maksud dan Tujuan ... 2

1.4 Batasan Masalah... 2

1.5 Metodologi Penelitian ... 3

1.6 Sistematika Penulisan ... 6

BAB 2 LANDASAN TEORI ... 7

2.1 Game ... 7

2.1.1 Pengertian Game ... 7

2.1.2 Jenis-jenis Game ... 8

2.1.3 Genre Game ... 9

2.2 Game Edukasi ... 11

2.2 Kriteria Game Edukasi ... 11

2.3 Algoritma A * (A star) ... 13

2.4 Palagan Ambarawa... 18

2.5 Unity ... 19

2.6 3D Studio Max ... 20

2.7 Pemrograman C # ... 21

(11)

VII

2.8.2.2 Class Diagram ... 25

2.8.2.3 Component Diagram ... 25

2.8.2.4 Deployment Diagram ... 26

2.8.2.5 State Diagram ... 26

2.8.2.6 Sequence Diagram ... 26

2.8.2.7 Collaboration Diagram ... 26

2.8.2.8 Activity Diagram ... 27

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 29

3.1 Analisis Sistem ... 29

3.1.1 Analisis Masalah ... 29

3.1.2 Analisis Game sejenis ... 30

3.1.3 Analisis Game yang dibangun ... 33

3.1.4 Storyline ... 33

3.1.5 Gameplay ... 34

3.1.6 Analisis Tingkat Kesulitan ... 35

3.1.7 Analisis Scoring ... 35

3.1.8 Analisis AI (A Star) ... 35

3.2 Analisis dan Kebutuhan Non-Fungsional ... 56

3.2.1 Analisis dan Kebutuhan Perangkat Lunak ... 56

3.2.2 Analisis dan Kebutuhan Perangkat Keras ... 56

3.2.3 Analisis User ... 57

3. 2.3.1 User Knowledge and Experience ... 57

3. 2.3.2 Users Physical Characteristic ... 58

3.3 Analisis dan Kebutuhan Fungsional ... 58

3.3.1 Use Case Diagram ... 58

3.3.2 Definisi Actor ... 59

3.3.3 Definisi Use Case ... 59

(12)

VIII

3.3.4.4 Skenario Use Case Permainan Level 1 ... 62

3.3.4.5 Skenario Use Case Permainan Level 2 ... 63

3.3.4.6 Skenario Use Case Permainan Level 3 ... 63

3.3.5 Activity Diagram ... 64

3.3.5.1 Activity Diagram Memulai Permainan ... 64

3.3.5.2 Activity Diagram Petunjuk Permainan ... 65

3.3.5.3 Activity Diagram Informasi Permainan ... 66

3.3.5.4 Activity Diagram Permainan Level 1 ... 66

3.3.5.5 Activity Diagram Permainan Level 2 ... 67

3.3.5.6 Activity Diagram Permainan Level 3 ... 68

3.3.6 Class Diagram ... 69

3.3.7 Sequence Diagram ... 70

3.3.7.1 Sequence Diagram Memulai Permainan ... 71

3.3.7.2 Sequence Diagram Petunjuk Permainan ... 72

3.3.7.3 Sequence Diagram Informasi Permainan ... 72

3.3.7.4 Sequence Diagram Permainan Level 1 ... 73

3.3.7.4 Sequence Diagram Permainan Level 2 ... 74

3.3.7.4 Sequence Diagram Permainan Level 3 ... 75

3.4 Perancangan Sistem ... 77

3.4.1 Perancangan Komponen Permainan ... 77

3.4.1.1 Karakter ... 77

3.4.1.2 Storyboard ... 80

3.4.2 Perancangan Arsitektur ... 83

3.4.2.1 Perancangan Struktur Menu ... 83

3.4.3 Perancangan Antarmuka ... 83

3.4.3.1 Perancangan Antarmuka Menu Utama ... 84

3.4.3.2 Perancangan Antarmuka Permainan ... 84

(13)

IX

3.4.5 Perancangan Method ... 87

3.4.5.1 Method FPSwalker.FixedUpdate() ... 87

3.4.5.2 Method FPSPlayer.ApplyDamage() ... 88

3.4.5.3 Method FPSPlayer.PlayStepSounds() ... 88

3.4.5.4 Method FPSPlayer.UpdateGUI ... 89

3.4.5.5 Method MusuhAI.CanSeeTarget() ... 90

3.4.5.6 Method MusuhAI.AttackPlayer() ... 91

3.4.5.7 Method MusuhAI.Patrol() ... 92

3.4.5.8 Method MisiSelesai.MisiSelesai() ... 93

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 95

4.1 Implementasi ... 95

4.1.1 Implemenatasi Perangkat Keras ... 95

4.1.2 Implementasi Perangkat Lunak ... 95

4.1.3 Implementasi Instalasi Aplikasi Game ... 95

4.1.4 Implementasi Antarmuka ... 96

4.2 Pengujian ... 100

4.2.1 Kasus dan Hasil Pengujian (Black Box Testing) ... 101

4.2.2 Kasus dan Hasil Pengujian (White Box Testing) ... 104

4.2.3 Pengujian Beta ... 114

4.2.4 Kuesioner ... 114

BAB 5 KESIMPULAN DAN SARAN ... 125

5.1 Kesimpulan ... 125

5.2 Saran ... 125

(14)

127

[2] Sukmayanti, Ratna, (2008), Ilmu Pengetahuan Sosial 3, Penerbit BSE Elektronik, Bandung.

[3] Kuswardayan , Imam. P10Ner, Game Pertempuran 10 Nopember http://www.gameedukasi.com/2010/10/p10ner-pertempuran-10

nopember/ (diakses tanggal 12 September 2012)

[4] Dodi ,(2008), Dasar multimedia, http://pertama.site88.net/Howto.html, diakses pada tanggal 25 maret 2012, 22.43 WIB

[5] Martin, Fowler, (2004), UML Distilled 3th Edition. Panduan Singkat Bahasa Pemodelan Objek Standar, Andi, Yogyakarta.

[6] Tilawah, Hapsari, (2011), Penerapan Algoritma A-Star(A*) Untuk Menyelesaikan Masalah Maze, Jurnal, Teknik Informatika, Institut Teknologi Bandung, Bandung

[7] Nurdiansah, Wijaya, (2011), Pembangunan Aplikasi Game 2D Kabayan Saving Aou Cultures, Skripsi, Teknik Informatika, Universitas Komputer Indonesia, Bandung..

[8] Jaya, Dicky, (2012), Rancang Bangun Game Edukasi Sejarah Kemerdekaan Indonesia, Skripsi, Teknik Informatika, Universitas Komputer Indonesia, Bandung.

[9] Suyanto, (2007), Artificial Intelligence, Informatika, Bandung.

[10] Andi, Komputer, Wahana. (2008). Belajar Pemrograman C#.

(15)

[11] Hadi, Ariesto, Analisis dan Desain Berorientasi Objek, J&J Learning, Yogyakarta.

[12] Narul , D. (2011), Penerapan Algoritma A* (A Star) Dalam Pencarian Jalan Terpendek Pada Game PathFinding,Skripsi, Teknik Informatika, Universitas Komputer Indonesia, Bandung.

[13] UnityTechnologies. (2012). http://unity3d.com/unity/. diakses tanggal 21 September 2012 pukul 09.00 (GMT +7).

[14] Autodesk, (2012). http://usa.autodesk.com/3ds-max/. diakses tanggal 21 September 2012 pukul 10.00 (GMT +7).

(16)

1

BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Seiring dengan berkembangnya peradaban saat ini membuat kebudayaan asing mudah masuk hal ini berdampak kepada berkurangnya kepedulian remaja terhadap sejarah, padahal pendidikan sejarah sangatlah penting sebagaimana yang telah disampaikan oleh G. J. Reiner seorang ahli sejarah yang menggemukakan bahwa dengan belajar sejarah orang akan senantiasa berdialog antara masa kini dan masa lampau.

Materi pelajaran mengenai sejarah palagan ambarawa di lembaga pendidikan formal yakni sekolah, diperkenalkan sejak siswa-siswi menduduki kelas XI Sekolah Menengah Atas (SMA) pada mata pelajaran Ilmu Pengetahuan Sosial (IPS). Berdasarkan hasil wawancara dengan Bapak Ade Oma.S.Pd., guru di SMA Pasundan 1 Cimahi bahwa paradigma siswa-siswi mengenai pelajaran tersebut tidak baik. Siswa-siswi merasa pelajaran tersebut membuat jenuh karena kompleksitas materi yang cukup rumit, luas, dan cenderung banyak hapalan. Palagan ambarawa sendiri merupakan salah satu cerita pertempuran yang terjadi di Indonesia yang saat ini mulai terlupakan oleh siswa padahal cerita tersebut merupakan salah satu pertempuran yang penuh dengan nilai historis yaitu dengan kegigihan Kolonel Sudirman yang memimpin pertempuran melawan sekutu dalam keadaan sakit.

(17)

1.2 Rumusan Masalah

Berdasarkan uraian latar belakang masalah yang telah di uraikan pada sub bab 1.1, maka dapat dirumuskan beberapa masalahnya yaitu :

1. Bagaimana membangun suatu game yang memberikan informasi tentang cerita sejarah Palagan Ambarawa.

2. Bagaimana membangun suatu game yang membantu memperkenalkan materi sejarahPalagan Ambarawa lebih interaktif dan mengurangi kejenuhan ketika mempelajari sejarah Palagan Ambarawa

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas akhir ini adalah membangun game First Person Shooter (FPS) dengan grafis 3D sejarah pertempuran Palagan Ambarawa.

Tujuan yang ingin dicapai dari dibangunnya Game First Person Shooter 3D Palagan Ambarawa adalah :

1. Menjadikan media alternatif pembelajaran sejarah yang dapat menyampaikan materi sejarah pertempuran Palagan Ambarawa berupa game edukasi.

2. Menjadikan media edukasi yang memperkenalkan materi sejarah Palagan Ambarawa lebih interaktif dan mengurangi kejenuhan ketika mempelajari sejarah Palagan Ambarawa.

1.4 Batasan Masalah

Permasalahan yang dikaji sangatlah luas, agar penyajian lebih terarah dan mencapai sasaran yang ditentukan, maka diperlukan suatu pembatasan masalah atau ruang lingkup kajian yang meliputi hal-hal sebagai berikut :

1. Game yang dihasilkan berupa game edukasi yang dimainkan oleh seorang pemain saja

2. Target utama Game Edukasi Sejarah pertempuran Palagan Ambarawa ini adalah siswa-siswi kelas XI SMA .

(18)

4. Game yang akan dibangun berbasis desktop.

5. Aplikasi ini dirancang dengan tiga dimensi (3D) dengan aturan permainan yang tidak terlalu rumit.

6. Metode yang digunakan pada karakter teman adalah metode A* (A Star) untuk merespon pergerakan karakter

7. Model analisis dalam pemodelan berorientasi objek menggunakan UML (Unifed Modelling Language).

8. Aplikasi dibangun menggunakan bahasa pemrograman javascript dan c#

dengan tools Unity 3D

1.5 Metodologi Penelitian

Metode penelitian yang digunakan dalam penulisan skripsi ini adalah metode analisis deskriptif, yaitu metode yang menggambarkan dan menginterpretasikan objek sesuai dengan apa adanya.

Metode analisis deskriptif terbagi menjadi dua, yaitu : 1. Metode Pengumpulan data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :

a. Studi Literatur

Studi Literatur adalah metode pengumpulan data dengan cara mengumpulkan literature, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul judul penelitian.

b. Wawancara

Wawancara adalah metode pengumpulan data dengan mengadakan tanya jawab secara langsung dengan Bapak Ade Oma, S.Pd., salah satu guru SMA swasta di kota Cimahi

c. Observasi

(19)

d. Kuesioner

Kuesioner adalah metode pengumpulan data dengan mengadakan pernyataan terstruktur yang diisi sendiri oleh siswa-siswi salah satu SMA swasta di kota Cimahi.

2. Metode pembuatan perangkat lunak

Metode pembangunan perangkat lunak yang digunakan menggunakan model

waterfall, karena menghasilkan sistem yang terstruktur dengan baik ditiap prosesnya. Waterfall merupakan salah satu model pembangunan software, dimana kemajuan suatu proses dipandang sebagai aliran yang mengalir ke bawah seperti air terjun, maka tahapan dalam model ini disusun bertingkat. Setiap tahap dalam model ini dilakukan berurutan, selain itu dari satu tahap kita dapat kembali ke tahap sebelumnya. Tahapan yang meliputi beberapa proses tersebut lebih jelasnya terlihat pada gambar 1.1, dengan proses sebagai berikut :

a. Requirtments analysis and definition

Requirtments analysis and definition merupakan tahap dimana tugas, kendala dan tujuan sistem ditentukan melalui konsultasi dengan pemakai sistem. Kemudian ditentukan cara yang dapat dipahami, baik oleh

user maupun pengembang. b. System and software desain

System and software desain adalah tahap dimana proses desain sistem terbagi dalam kebutuhan perangkat keras dan perangkat lunak secara keseluruhan. Desain perangkat lunak mewakili fungsi sistem perangkat lunak dalam suatu bentuk yang dapat ditransformasikan ke dalam satu atau lebih program yang dapat dieksekusi.

c. Implementation and unit testing

(20)

unit-unit program. Pengujian unit-unit mencakup kegiatan verifikasi terhadap suatu unit sehingga memenuhi syarat spesifikasinya.

d. Integration and system testing

Integration and system testing merupakan tahap dimana unit program secara individual diintegrasikan dan diuji sebagai satu sistem yang lengkap untuk memastikan bahwa kebutuhan perangkat lunak disampaikan kepada user.

e. Operation and maintenance

Operation and maintenance secara normal walaupun tidak selalu diperlukan, tahap ini merupakan bagian siklus hidup yang panjang. Sistem telah terpasang dan sedang dalam penggunaan. Pemeliharaan mencakup perbaikan kesalahan yang tidak ditemukan dalam tahap-tahap sebelumnya, meningkatkan implementasi unit-unit sistem dan mempertinggi pelayanan sistem yang disebabkan oleh ditemukannya kebutuhan baru.

(21)

1.6 Sistematika Penulisan

Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran umum tentang tugas akhir yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini berisi latar belakang permasalahan, rumusan masalah, maksud dan tujuan dibuatnya aplikasi, batasan masalah, metodologi penelitian serta sistematika penulisan dari tugas akhir yang akan dibuat.

BAB 2 LANDASAN TEORI

Bab ini membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik pembuatan Aplikasi Game, kecerdasan buatan yang dalam hal ini menggunakan algoritma pencarian A* (A star), OOP (object oriented programming), UML (unified modeling language), unity 3D dan 3D Studio Max.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi tentang analisis masalah yang dihadapi dalam pembuatan Aplikasi Game 3D First Person Shooter 3D Palagan Ambarawa Berbasis

Desktop. Baik dari segi gameplay ataupun AI yang akan dipergunakan.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi tentang perancangan dalam pembuatan sistem dan tahapan-tahapan yang dilakukan untuk menerapkan sistem yang telah dirancang. Mulai perancangan dan pembuatan karakter, map dan environment game sampai pada penerapan AI.

BAB 5 KESIMPULAN DAN SARAN

(22)

7

2.1 Game

Game merupakan kata dalam bahasa inggris yang berarti permainan. Permainan adalah sesuatu yang dapat dimainkan dengan aturan tertentu sehingga ada yang menang dan ada yang kalah, biasanya dalam konteks tidak serius atau dengan tujuan refreshing. Suatu cara belajar yang digunakan dalam menganalisa interaksi antara sejumlah pemain maupun perorangan yang menunjukkan strategi strategi yang rasional. Teori permainan pertama kali ditemukan oleh sekelompok ahli Matematika pada tahun 1944. Teori itu dikemukakan oleh John von Neumann and Oskar Morgenstern yang berisi :

Permainan terdiri atas sekumpulan peraturan yang membangun situasi bersaing dari dua sampai beberapa orang atau kelompok dengan memilih strategi yang dibangun untuk memaksimalkan kemenangan sendiri atau pun untuk meminimalkan kemenangan lawan. Peraturan-peraturan menentukan kemungkinan tindakan untuk setiap pemain, sejumlah keterangan diterima setiap pemain sebagai kemajuan bermain, dan sejumlah kemenangan atau kekalahan dalam berbagai situasi.” (Theory of Games and Economic Behavior (3d ed. 1953)) [8].

2.1.1 Pengertian Game

Pengertian game menurut beberapa ahli[7] :

1. Menurut Agustinus Nilwan dalam bukunya Pemrograman Animasi dan Game

(23)

2. Menurut Clark C. Abt, Game adalah kegiatan yang melibatkan keputusan pemain, berupaya mencapai tujuan dengan dibatasi oleh konteks tertentu (misalnya, dibatasi oleh peraturan).

3. Menurut Chris Crawford, seorang computer game designer mengemukakan bahwa game, pada intinya adalah sebuah interaktif, aktivitas yang berpusat pada sebuah pencapaian, ada pelaku aktif (player), ada pelaku pasif (NPC). 4. Menurut David Parlett, Game adalah sesuatu yang memiliki "akhir dan cara

mencapainya" : artinya ada tujuan, hasil dan serangkaian peraturan untuk mencapai keduanya.

5. Menurut Roger Caillois, seorang sosiolog Perancis, dalam bukunya yang berjudul Les jeux et les hommes menyatakan game adalah aktivitas yang mencakup karakteristik berikut: fun (bebas bermain adalah pilihan bukan kewajiban), separate (terpisah), uncertain, non-productive, governed by rules

(ada aturan), fictitious (pura-pura).

6. Menurut Greg Costikyan, Game adalah “sebentuk karya seni di mana peserta,

yang disebut Pemain, membuat keputusan untuk mengelola sumberdaya yang dimilikinya melalui benda di dalam gamedemi mencapai tujuan”.

2.1.2 Jenis-Jenis Game

Berikut klasifikasi game berdasarkan jenis platform yang digunakan [7]: 1. Arcade games,

(24)

2. PC Games.

PC Games yaitu video game yang dimainkan menggunakan Personal Computers.

3. Console games.

Console games yaitu video games yang dimainkan menggunakan console tertentu, seperti Playstation 2, Playstation 3, XBOX 360, dan Nintendo Wii. 4. Handheld games.

Handheld games yaitu yang dimainkan di console khusus video game

yang dapat dibawa kemana-mana, contoh Nintendo DS dan Sony PSP. 5. Mobile games.

Mobile games yaitu yang dapat dimainkan atau khusus untuk mobilephone atau PDA.

2.1.3 Genre Game

Berikut klasifikasi game berdasarkan genre permainannya [7] : 1. Aksi Shooting

Video game jenis ini sangat memerlukan kecepatan refleks, koordinasi mata dan tangan, juga timing, inti dari game jenis ini adalah tembak, tembak dan tembak. Termasuk didalamnya tedapat :

a. First person shooting (FPS) seperti Counter Strike dan Call of Duty.

Drive n shoot, menggunakan unsur simulasi kendaraan tetapi tetap dengan tujuan utama menembak dan menghancurkan lawan, contoh : Spy Hunter, Rock and Roll Racing, Road Rash.

b. Shoot em up, seperti Raiden, 1942, dan gradius.

c. Beat em up (tonjok hajar) seperti Double Dragon dan Final Fight, lalu hack and slash (tusuk tebas) seperti Shinobi dan Legend of Kage.

d. Light gun shooting, yang menggunakan alat yang umumnya berbentuk seperti senjata, seperti Virtua Cop dan Time Crisis.

(25)

koordinasi mata-tangan, tetapi inti dari game ini adalah penguasaan jurus (hafal caranya dan lancar mengeksekusinya).

2. Petualangan.

Jenis video game aksi-petualangan memerlukan kelihaian pemain dalam bergerak, refleks, berlari, melompat hingga memecut atau menembak tidak diperlukan di sini. Video Game murni petualangan lebih menekankan pada jalan cerita dan kemampuan berpikir pemain dalam menganalisa tempat secara

visual, memecahkan teka-teki maupun menyimpulkan rangkaian peristiwa dan percakapan karakter hingga penggunaan benda-benda tepat pada tempat yang tepat.

3. Simulasi, Konstruksi dan manajemen.

Video Game jenis ini seringkali menggambarkan dunia di dalamnya sedekat mungkin dengan dunia nyata dan memperhatikan dengan detil berbagai faktor. Video Game jenis ini membuat pemain harus berpikir untuk mendirikan, membangun dan mengatasi masalah dengan menggunakan dana yang terbatas. Contoh: Sim City, The Sims, Tamagotchi.

4. Role Playing.

Video game jenis ini sesuai dengan terjemahannya, bermain peran, memiliki penekanan pada tokoh/peran perwakilan pemain di dalam permainan, yang biasanya adalah tokoh utamanya, dimana siring kita memainkannya, karakter tersebut dapat berubah dan berkembang ke arah yang diinginkan pemain ( biasanya menjadi semakin hebat, semakin kuat, semakin berpengaruh, dll) dalam berbagai parameter yang biasanya ditentukan dengan naiknya level, baik dari status kepintaran, kecepatan dan kekuatan karakter. seperti Final Fantasy, Dragon Quest dan Xenogears. Never Winter Nights, baldurs gate, Elder Scroll, dan Fallout.

5. Puzzle.

(26)

masuk ke tempat yang seharusnya, itu semua termasuk dalam jenis ini. Sering pula permainan jenis ini adalah juga unsur permainan dalam video game

petualangan maupun game edukasi. Tetris, Minesweeper, Bejeweled, Sokoban

dan Bomberman.

6. Simulasi kendaraan.

Video Game jenis ini memberikan pengalaman atau interaktifitas sedekat mungkin dengan kendaraan yang aslinya, muskipun terkadang kendaraan tersebut masih eksperimen atau bahkan fiktif, tapi ada penekanan khusus pada detil dan pengalaman realistik menggunakan kendaraan tersebut.

7. Olahraga.

Video Game jenis ini bersifat singkat padat jelas, bermain sport di PC atau konsol anda. Biasanya permainannya diusahakan serealistik mungkin walau kadang ada yang menambah unsur fiksi seperti NBA JAM. Contohnya pun jelas, Seri Winning Eleven, seri NBA, seri FIFA, John Madden NFL, Lakers vs Celtics, Tony hawk pro skater, dll.

2.2 Game Edukasi

Game edukasi adalah game digital yang dirancang untuk pengayaan pendidikan (mendukung pengajaran dan pembelajaran), menggunakan teknologi multimedia interatif [8].

2.2.1 Kriteria Game Edukasi

Berikut kriteria game edukasi yang ideal [8] : 1. Rasa ingin tahu, fantasi dan kontrol pengguna

a. Motivasi intrinsik, menyenangkan untuk digunakan. Pengguna memiliki kontrol terhadap permainan.

b. Integrasi antara materi edukasi dan aspek fantasi permainan

c. Pengguna memegang kendali permainan dan dapat mengatur kecepatan bermain.

(27)

e. Pengguna dapat menyimpan kemajuan permainan.

f. Menyediakan lebih dari jalur. Ada beberapa cara untuk memenangkan permainan

g. Pengguna dapat melakukan trial-error untuk menyelesaikan permainan. h. Keberhasilan ditentukan oleh pengetahuan, bukan kebetulan.

i. Task disajikan secara incremental dan bertahap. j. Simulasi realistik dunia.

k. Materi edukasi disesuaikan dengan materi dunia nyata.

l. Personalisasi: pengguna dapat mengubah karakter dan objek-objek. m. Menyediakan banyak pilihan dan tema.

n. Hindari pengulangan, hindari drill-practice.

o. Sediakan elemen tidak terduga dan kejutan. p. Point tidak hilang saat menjawab pertanyaan. 2. Tantangan

a. Kinerja pemain terukur dan didefinisikan dengan baik.

b. Tantangan diberikan secara terus menerus tapi disesuaikan dengan tingkat pemahaman pemain.

c. Kompleksitas semakin berkembang sejalan dengan kemampuan pengguna. Tersedia banyak level.

d. Memonitor kinerja pengguna, berdasarkan hasil monitoring ini kesulitan kemudian disesuaikan.

e. Pengguna dapat melihat progressnya setiap saat.

f. Menyediakan hint dan instruksi untuk membantu pengguna.

g. Bantuk pengguna menemukan ‘flow state yaitu keseimbangan antara tantangan dengan kemampuan untuk menghadapi tantangan.

3. Sosialisasi

a. Pemain dapat berkolaborasi bersama. b. Pemain dapat saling berkompetisi.

c. Pemenang bisa lebih dari satu (multiple winner) 4. Pedagogi

(28)

b. Aktivitas pembelajaran dilaksanaan bersamaan dengan permainan.

c. Menyebutkan secara eksplisit target umur dan menyesuaikan rancangan permainan sesuai umur tersebut.

d. Memberi kesempatan kepada guru dan orangtua untuk ikut berperan. e. Memberikan petunjuk yang jelas sehingga pemain dapat berkonsentrasi

kepada isi permainan, bukan bagaimana cara menggunakan permainan. f. Menyediakan tutorial sehingga pemain tidak perlu membaca manual. 5. Teknologi

a. Menggunakan teknologi yang tersedia di sekolah dan masyarakat umum (tidak membutuhkan hardware yang terlalu tinggi)

b. Memberikan lisensi yang terjangkau sekolah. c. Menggunakan antarmuka yang intuitif.

6. Pengguna anak-anak dan yang berkebutuhan khusus

a. Memberikan petunjuk yang dibacakan selain petunjuk tertulis. b. Gambar, objek, layar tertata rapi.

c. Permainannya sendiri merupakan aktivitas yang penting (play for the sake of play)

d. Transformasi terlihat. Saat anak melakukan interaksi, ada instant

feedback.

e. Input dan output yang mudah terlihat. f. Tantangan diberikan secara gradual.

g. Permainan menyenangkan untuk diulang, beberapa karakter, musik mudah teringat oleh anak.

h. Objek dan suara diambil dari kehidupan sehari-hari yang mudah dikenali.

2.3 Algoritma A*

Algoritma ini merupakan algoritma Best First Search yang menggabungkan

(29)

Algorima A*, merupakan salah satu contoh algoritma pencarian yang cukup popular di dunia. Jika mengetikkan Algoritma A* pada sebuah mesin pencari, seperti google.com, maka akan ditemukan lebih dari sepuluh ribu literatur mengenai algoritma A*.

Beberapa terminologi dasar yang terdapat pada algoritma ini adalah starting point, simpul (nodes), A, open list, closed list, harga (cost), halangan (unwalkable). Starting point adalah sebuah terminologi untuk posisi awal sebuah benda. A adalah simpul yang sedang dijalankan dalam algortima pencarian jalan terpendek. Simpul adalah petak-petak kecil sebagai representasi dari area

pathfinding. Bentuknya dapat berupa persegi, lingkaran, maupun segitiga. open list adalah tempat menyimpan data simpul yang mungkin diakses dari starting point maupun simpul yang sedang dijalankan. Closed list adalah tempat menyimpan data simpul sebelum A yang juga merupakan bagian dari jalur terpendek yang telah berhasil didapatkan. Harga (F) adalah nilai yang diperoleh dari penjumlahan nilai G, jumlah nilai tiap simpul dalam jalur terpendek dari

starting point ke A, dan H, jumlah nilai perkiraan dari sebuah simpul ke simpul tujuan. Simpul tujuan yaitu simpul yang dituju. Rintangan adalah sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh A.

Prinsip algoritma ini adalah mencari jalur terpendek dari sebuah simpul awal (starting point) menuju simpul tujuan dengan memperhatikan harga (F) terkecil. Diawali dengan menempatkan A pada starting point, kemudian memasukkan seluruh simpul yang bertetangga dan tidak memilik atribut rintangan dengan A ke dalam open list. Kemudian mencari nilai H terkecil dari simpul-simpul dalam

(30)

terebut dilakukan berulangulang hingga terdapat solusi atau tidaka ada lagi simpul lain yang berada pada open list [6].

Terdapat beberapa hal yang perlu didefinisikan terlebih dahulu dalam kasus

game pathfinding dengan penerapan algoritma A* (A Star). Adapun istilah-istilah yang akan dibahas yaitu path, open list, closed list, nilai f, g dan n.

Algoritma A* menggunakan dua senarai yaitu OPEN dan CLOSED. OPEN

adalah senarai (list) yang digunakan untuk menyimpan simpul-simpul yang pernah dibangkitkan dan nilai heuristiknya telah dihitung tetapi belum terpilih sebagai simpul terbaik (best node) dengan kata lain, OPEN berisi simpul-simpul masih memiliki peluang untuk terpilih sebagai simpul terbaik, sedangkan

CLOSED adalah senarai untuk menyimpan simpul-simpul yang sudah pernah dibangkitkan dan sudah pernah terpilih sebagai simpul terbaik. Artinya, CLOSED

berisi simpul-simpul yang tidak mungkin terpilih sebagai simpul terbaik (peluang untuk terpilih sudah tertutup).

1. OPEN LIST adalah list yang menyimpan kemungkinan path yang akan diperiksa. OPEN LIST dibuat terurut berdasarkan nilai f. OPEN LIST

digunakan untuk menentukan secara selektif (berdasarkan nilai f) jalan yang dikira lebih dekat menuju pada path tujuan. OPEN berisi simpul-simpul yang masih memiliki peluang untuk terpilih sebagai simpul terbaik (best node). 2. CLOSED adalah senarai (list) untuk menyimpan simpul-simpul yang sudah

pernah dibangkitkan dan sudah pernah terpilih sebagai simpul terbaik (best node) atau senarai yang menyimpan jalan yang sudah diperiksa dari open list. Artinya, CLOSED berisi simpul-simpul yang tidak mungkin terpilih sebagai simpul terbaik (peluang untuk terpilih sudah tertutup). Kedua list (OPEN LIST

dan CLOSED LIST) ini bertujuan juga untuk menghindari penelusuran berkali-kali jalan (rute) yang memang sudah diidentifikasi agar tidak masuk kembali ke dalam OPEN LIST.

3. Nilai F adalah cost perkiraan suatu path yang teridentifikasi. Nilai F merupakan hasil dari f(n).

(31)

untuk menuju ke path sekarang.

5. Setiap simpul (node) harus memiliki informasi nilai h(n), yaitu estimasi harga simpul tersebut dihitung dari simpul tujuan yang hasilnya menjadi nilai H. Fungsi f sebagai estimasi fungsi evaluasi terhadap node n, dapat dituliskan :

(2.1)

dengan :

f(n) = fungsi evaluasi ( jumlah g(n) dengan h(n) )

g(n) = biaya (cost) yang dikeluarkan dari keadaan awal sampai keadaan n h(n) = estimasi biaya untuk sampai pada suatu tujuan mulai dari n

Perhitungan nilai H digunakan fungsi heuristic, metode yang digunakan di dalam contoh ini adalah metode Manhattan dimana perhitungan jumlah node

hanya yang bergerak secara vertical dan horizontal menuju tujuannya serta mengabaikan penghalang atau collision, yang kemudian nilainya dikalikan dengan 10. Atau dirumuskan dengan:

H = 10*(abs(currentX-targetX) + abs(currentY-targetY))

Secara umum dapat digambarkan dengan flowchart sebagai berikut:

f(n) = g(n) + h(n)

(32)

Pencarian Rute dengan A* Inisialisasi list OPEN = nil,

CLOSED = nil Masukkan node awal ke list OPEN Set Current Node = Best Node (OPEN)

Current Node = Goal?

Keluarkan Current Node dari OPEN, masukkan ke CLOSED For i:= to jumlah neighbor

Current Node do Node(i) dapat dilalui? Ada dalam CLOSED? Ada dalam OPEN?

Nilai g node(i) < g node dalam OPEN? Masukkan node (i) dalam OPEN, set

parent node(i) = Current Node, Hitung dan simpan nilai f,g,h

Set parent node (i) = Current Node Kalkulasi ulang nilai g dan f i

OPEN = nil? Rute tidak ada

[image:32.595.143.482.104.658.2]

Return Backtrack untuk Menampilkan rute Tidak Ya Ya Tidak Ya Tidak Ya Tidak Tidak Ya Ya Tidak

(33)

2.4 Palagan Ambarawa

Palagan Ambarawa adalah sebuah peristiwa perlawanan rakyat terhadap Sekutu yang terjadi di Ambarawa, sebelah selatan Semarang, Jawa Tengah. Pada tanggal 20 Oktober 1945, tentara Sekutu di bawah pimpinan Brigadir Bethell mendarat di Semarang dengan maksud mengurus tawanan perang dan tentara Jepang yang berada di Jawa Tengah. Kedatangan sekutu ini diboncengi oleh NICA. Kedatangan Sekutu ini mulanya disambut baik, bahkan Gubernur Jawa Tengah Mr Wongsonegoro menyepakati akan menyediakan bahan makanan dan keperluan lain bagi kelancaran tugas Sekutu, sedang Sekutu berjanji tidak akan mengganggu kedaulatan Republik Indonesia. [2]

Pasukan Sekutu dan NICA yang telah sampai di Ambarawa dan Magelang untuk membebaskan para tawanan tentara Belanda, para tawanan tersebut malah dipersenjatai sehingga menimbulkan kemarahan pihak Indonesia. Insiden bersenjata timbul di kota Magelang, hingga terjadi pertempuran. Di Magelang, tentara Sekutu bertindak sebagai penguasa yang mencoba melucuti Tentara Keamanan Rakyat dan membuat kekacauan. TKR Resimen Magelang pimpinan Letkol. M. Sarbini membalas tindakan tersebut dengan mengepung tentara Sekutu dari segala penjuru. Namun mereka selamat dari kehancuran berkat campur tangan Presiden Soekarno yang berhasil menenangkan suasana. Kemudian pasukan Sekutu secara diam-diam meninggalkan Kota Magelang menuju ke benteng Ambarawa. Akibat peristiwa tersebut, Resimen Kedu Tengah di bawah pimpinan Letkol. M. Sarbini segera mengadakan pengejaran terhadap mereka. Gerakan mundur tentara Sekutu tertahan di Desa Jambu karena dihadang oleh pasukan Angkatan Muda di bawah pimpinan Oni Sastrodihardjo yang diperkuat oleh pasukan gabungan dari Ambarawa, Suruh dan Surakarta.

(34)

sekitar Ambarawa. Pasukan Indonesia di bawah pimpinan Letkol. Isdiman berusaha membebaskan kedua desa tersebut, namun ia terlebih dahulu gugur terlebih dahulu. Sejak gugurnya Letkol. Isdiman, Komandan Divisi V Banyumas, Kol. Soedirman merasa kehilangan seorang perwira terbaiknya dan ia langsung turun ke lapangan untuk memimpin pertempuran. Kehadiran Kol. Soedirman memberikan napas baru kepada pasukan-pasukan RI. Koordinasi diadakan di antara komando-komando sektor dan pengepungan terhadap musuh semakin ketat. Siasat yang diterapkan adalah serangan pendadakan serentak di semua sektor. Bala bantuan terus mengalir dari Yogyakarta, Solo, Salatiga, Purwokerto, Magelang, Semarang, dan lain-lain.

Tanggal 23 November 1945 ketika matahari mulai terbit, mulailah tembak-menembak dengan pasukan Sekutu yang bertahan di kompleks gereja di Jl. Margo Agoeng. Pasukan Indonesia terdiri dari Yon. Imam Adrongi, Yon. Soeharto dan Yon. Soegeng. Tentara Sekutu mengerahkan tawanan-tawanan Jepang dengan diperkuat tanknya, menyusup ke tempat kedudukan Indonesia dari arah belakang, karena itu pasukan Indonesia pindah ke Bedono.

Sekutu memang tidak pernah berhenti berulah. Kedatangan awal di Semarang untuk semata mengurus tahanan perang Jepang justru berbuntut menjadi kekacauan. Rakyat marah ketika melihat para tahanan yang sebagian besar merupakan mantan tentara Belanda tersebut justru dipersenjatai. Serangan dilancarkan oleh Tentara Keamanan Rakyat yang berhasil memukul mundur pasukan Sekutu hingga mereka terpaksa bertahan di kompleks gereja. Tanggal 12 Desember 1945, kesatuan-kesatuan TKR datang untuk menyerang dan memulai perang selama 1,5 jam. Indonesia berhasil merebut Ambarawa dan memukul mundur Sekutu. [2]

2.5 Unity

(35)

secara gratis. Selain untuk membuat game, unity juga dapat digunakan untuk membuat konten yang interaktif lainnya seperti, visual arsitektur dan real-time 3D animasi. [13]

Unity adalah sebuah sebuah tool yang terintegrasi untuk membuat game, arsitektur bangunan dan simulasi. Unity bisa digunakan untuk games PC dan

games online. Untuk games online diperlukan sebuah plugin, yaitu Unity Web Player, yang sama halnya dengan flash player pada browser. Bahasa pemrograman yang digunakan bermacam-macam, mulai dari javascript, C#, dan

boo.

Unity tidak bisa melakukan desain atau modelling, dikarenakan unity

bukan merupakan tools untuk mendesain. Banyak hal yang bisa di lakukan di unity, ada fitur audio reverb zone , particle effect , sky box untuk menambahkan langit, dan masih banyak lagi, dan juga bisa langsung edit texture dari editor

seperti photoshop dll.[13]

Features (Scripting) di dalam unity adalah sebagai berikut:

1. Mendukung 3 bahasa pemrograman, JavaScript, C#, dan Boo.

2. Flexible and EasyMoving, rotating, dan scaling objects hanya perlu sebaris kode. Begitu juga dengan duplicating, removing, dan changing properties.

3. Multi Platform Game bisa di deploy di PC, Mac, Wii, iPhone, iPad dan

browser, android.

4. Visual Properties Variables yang di definisikan dengan scripts ditampilkan pada editor. Bisa digeser, di drag and drop, bisa memilih warna dengan color picker.

5. Berbasis .NET, penjalanan program dilakukan dengan Open Source .NET

platform, Mono.

2.6 3D Studio Max

(36)

Autodesk Media & Entertainment yang pada mulanya dikenal sebagai Discreet and Kinetix. 3D Max merupakan salah satu dari sekian banyak aplikasi modeling

untuk membuat model 3D dan paling banyak digunakan oleh perancang yang tersebar di seluruh dunia [14].

Sejalan dengan berkembangnya teknologi termasuk juga dalam bidang komputerisasi. 3D Max pun mengalami perubahan-perubahan untuk menyesuaikan dengan kemampuan komputer yang semakin tinggi dalam hal grafis. 3D Max dikembangkan dari aplikasi sebelumnya yang bernama 3D Studio for Dos, tetapi aplikasi ini hanya diperuntukan untuk platform Win32.

3D Max menjadi program animasi komputer 3D dengan penjualan terbesar di dunia. Software ini memiliki kemampuan modeling yang kuat dan merupakan

plugin architecture yang fleksibel dan bekerja dengan platform Microsoft Windows. 3D Studio Max banyak digunakan oleh para pembuat dan perancang

video game, visual architecture, design product dan juga studio TV untuk pembuatan animasi.[14]

2.7Pemrograman C#

(37)
[image:37.595.217.356.112.239.2]

Gambar 2. 2 Logo C# [10]

2.8Analisis Sistem Berorientasi Objek

Analisis dan desain berorientasi objek adalah cara baru dalam memikirkan suatu masalah dengan menggunkan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek, yang merupakan kombinasi antara struktur data dab perilaku dalam suatu entitas. Model berorientasi objek bermanfaat untuk memahami masalah, komunikasi dengan ahli aplikasi, pemodelan suatu organisasi, meyiapkan dokumentasi serta perancangan program dan basis data. Pertama-tama suatu model analisis dibuat untuk menggambarkan aspek dasar dari domain aplikasi, dimana model tersebut berisi objek yang terdapat dalam domain aplikasi termasuk deskripsi dari keterangan objek dan perilakunya.

2.8.1 OOP (Object Oriented Programing)

(38)

Konsep dasar dari Pemrograman Berorientasi Objek menekankan konsep berikut:

1. Class- kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP.

2. Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

3. Abstrak - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

4. Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

(39)

6. Inheritas (Inheritance) - Mengatur polimorfisme dan enkapsulasi denganmengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dariobjek yang sudah ada objek-objek ini dapat membagi dan memperluasperilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas).[11]

2.8.2 UML (Unified Modeling Language)

UML (Unified Modeling Language) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem (Flowler, 2006). Unified Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya.

UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP.

Gambar 2. 3 Logo UML [5]

(40)

standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem.

Bagian-bagian utama dari UML adalah view, diagram, model element, dan general mechanism [5]. Diagram berbentuk grafik yang menunjukkan simbol elemen model yang disusun untuk mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan biasanya

2.8.2.1Use Case Diagram

Use case adalah abstraksi dari interaksi antara system dan actor. Use case

bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah sistem dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai.

Use case merupakan konstruksi untuk mendeskripsikan bagaimana sistem akan terlihat di mata user. Sedangkan use case diagram memfasilitasi komunikasi diantara analis dan pengguna serta antara analis dan client. [5]

2.8.2.2Class Diagram

Class adalah dekripsi kelompok objek-objek dengan property, perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class diagram dapat memberikan pandangan global atas sebuah sistem. Hal tersebut tercermin dari kelas-kelas yang ada dan relasinya satu dengan yang lainnya. Sebuah sistem biasanya mempunyai beberapa class diagram. Class diagram sangat membantu dalam visualisasi struktur kelas dari suatu sistem. [5]

2.8.2.3Component Diagram

Component software merupakan bagian fisik dari sebuah sistem, karena menetap di komputer tidak berada di benak para analis. Component merupakan implementasi software dari sebuah atau lebih class. Component dapat berupa

(41)

membuat pemetaan dari logical view ke component view. Sehingga component diagram merepresentasikan dunia riil yaitu component software yang mengandung component, interface dan relationship. [5]

2.8.2.4Deployment Diagram

Deployment Diagram menggambarkan tata letak sebuah sistem secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian

hardware, menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis hubungannya. Di dalam nodes, executable component dan object

yang dialokasikan untuk memperlihatkan unit perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan komponen. [5]

2.8.2.5State Diagram

State Diagram menggambarkan semua state (kondisi) yang dimiliki oleh suatu object dari suatu class dan keadaan yang menyebabkan state berubah. Kejadian dapat berupa object lain yang mengirim pesan. State class tidak digambarkan untuk semua class, hanya yang mempunyai sejumlah state yang terdefinisi dengan baik dan kondisi class berubah oleh state yang berbeda. [5]

2.8.2.6Sequence Diagram

Sequence Diagram digunakan untuk menggambarkan perilaku pada sebuah scenario. Kegunaannya untuk menunjukkan rangkaian pesan yang dikirim antara object juga interaksi antara object, sesuatu yang terjadi pada titik tertentu dalam eksekusi sistem. [5]

2.8.2.7Collaboration Diagram

Menggambarkan kolaborasi dinamis seperti sequence diagram. Dalam menunjukkan pertukaran pesan, collaboration diagram menggambarkan object dan hubungannya (mengacu ke konteks). Jika penekannya pada waktu atau urutan gunakan sequence diagram, tapi jika penekanannya pada konteks gunakan

(42)

2.8.2.8Activity Diagram

(43)
(44)

29

3.1 Analisis Sistem

Analisis sistem merupakan proses penguraian konsep ke dalam bagian-bagian yang lebih sederhana, sehingga struktur logisnya menjadi lebih jelas. Pada analisis sistem ini akan mencakup analisis masalah, analisis kebutuhan non-fungsional dan analisis kebutuhan non-fungsional. Metode digunakan untuk menguji, membandingkan, menilai, dan memahami sistem pemikiran yang kompleks dan memecahkan permasalahan dan berinteraksi untuk mencapai tujuan yang dicapai.

3.1.1 Analisis Masalah

Berdasarkan hasil wawancara dengan Bapak Ade Oma.S.Pd., guru di SMA Pasundan 1 Cimahi bahwa paradigma siswa-siswi mengenai pelajaran tersebut tidak baik. Siswa-siswi merasa pelajaran tersebut membuat jenuh karena kompleksitas materi yang cukup rumit, luas, dan cenderung banyak hapalan. Palagan Ambarawa sendiri merupakan salah satu cerita pertempuran yang terjadi di Indonesia yang saat ini mulai terlupakan oleh siswa padahal cerita tersebut merupakan salah satu pertempuran yang penuh dengan nilai historis.

Berdasarkan uraian latar belakang masalah tersebut, maka dapat dirumuskan beberapa masalahnya yaitu :

1. Bagaimana membangun suatu game yang memberikan informasi tentang cerita sejarah Palagan Ambarawa.

2. Bagaimana membangun suatu game yang tidak hanya sekedar memberikan materi yang rumit dan cenderung banyak hafalan.

3.1.2 Analisis Game Sejenis

Analisis game sejenis dilakukan untuk memberikan gambaran sistem agar lebih mudah dalam pembangunan dan sebagai pembanding untuk kesempurnaan

(45)

Game P10NER, Pertempuran 10 November merupakan game yang menceritakan pertempuran yang terjadi di Surabaya pada tanggal 10 November 1945. Game ini mengambil setting di Hotel Yamato saat perobekan bendera Belanda. Berikut tampilan menu pada game P10NER terlihat pada gambar 3.1.

Gambar. 3.1 Game P10NER, Pertempuran 10 November 1945 [3].

Dalam game ini player berperan sebagai Wawan yaitu pejuang yang berusaha untuk mengalahkan serangan tentara Belanda yang dipersenjatai peralatan yang canggih, dan player diharuskan melewati beberapa misi seperti merebut Hotel Yamato dari tangan sekutu dan terakhir melewati misi yaitu pertempuran 10 November 1945.

Game ini memiliki keterbatasan yaitu, grafik yang tidak terlalu bagus dan pengambilan tempat yang ada pada game ini tidak sesuai dengan fakta yang ada. Fakta tersebut dapat dilihat di gambar 3.2 dan analisis yang terdapat game

P10NER dapat dilihat pada Tabel 3.1.

(46)

Tabel 3.1 Analisis game sejenis

Nama Game Genre Game Desain

Grafis

Storyline dan gameplay

Multipl

ayer Basis P10NER,

Pertempuran 10 November

First Person

Shooter

3D tetapi lebih

terkesan kartun dan

penuh warna.

alur cerita sedikit

berbeda dengan

fakta sejarah

pertempuran 10

November 1945

Tidak. Desktop

a. Gameplay

Pada game P10NER 10 November 1945, pemain harus mencari dan mengambil beberapa kunci yang disediakan oleh sistem disetiap level yang dimainkan, untuk digunakan pemain ketika akan membuka pintu yang membutuhkan kunci untuk membukanya.

b. Skenario Game

Skenario dalam permainan game P10NER dapat dilihat dari alur permaiannya sebagai berikut :

a. Pemain berada di dalam Hotel Yamato yang dipenuhi oleh musuh. b. Pemain harus mencari kunci apabila hendak membuka sebuah pintu atau

jalan utama ketika berada di dalam permainan.

c. Pemain harus menghindari dan mematikan musuh ketika berada di arena permainan.

d. Jika pemain terkena tembakan oleh musuh, maka darah / health point

akan berkurang dan apabila habis maka permainan diulangi ke awal permainan.

Alur sistem dari permainan game P10NER dapat di gambarkan melalui

(47)

Sistem Pemain

Menu mulai Menampilkan scene video

Menampilkan arena permainan Mengendalikan karakter

Berhasil menyelesaikan permainan' Gagal menyelesaikan permainan Menembak musuh Mengambil Kunci

Tampilan selesai permainan

Gambar 3.3 Alur permainan pada game P10NER

Game P10NER memiliki beberapa keterbatasan yaitu,

1. Game ini merupakan game edukasi akan tetapi konten edukasi yang diperlihatkan pada game ini tidak terlalu terlihat.

(48)

3. Materi tentang sejarah Pertempuran 10 November 1945 hanya diberikan melalui scene video.

Disamping ada beberapa keterbatasan, game P10NER sendiri memiliki banyak kelebihan seperti :

1. Terdapat fitur save dan load game

2. Senjata yang dapat digunakan player beragam.

3.1.3 Analisis game yang dibangun

Game Palagan Ambarawa yang akan dibangun yaitu game yang mempunyai grafis 3D yang ber-genre first person shooter (FPS). Game ini mempunyai alur cerita yang sama seperti sejarah Pertempuran Ambarawa yang sebenarnya.

Game dibangun dengan konsep sudut pandang orang pertama atau first person shooter dengan tujuan agar kesan pertempuran yang dihadirkan lewat

game lebih terlihat nyata.

Beberapa fitur yang ditawarkan di dalam game ini : 1. Single player

2. Game diangkat dari cerita salah satu sejarah pertempuran di Indonesia 3. Game dibuat dengan grafis 3D

4. Game dibuat dengan genre first person shooter dengan konsep sudut pandang orang pertama.

3.1.4 Storyline

Game yang dibangun single player atau dengan satu pemain yang dijalankan seorang actor yang bernama Tarmidji. Actor tersebut harus menyelesaikan 3 level yang tiap-tiap levelnya memiliki rintangan yang berbeda-beda.

Level 1, insiden ini bermula ketika tawanan Jepang yang awalnya akan dibebaskan tetapi malah dipersenjatai oleh sekutu. Hal ini menyebabkan kemarahan tentara Indonesia hingga terjadi pertempuran. Pada insiden ini actor

(49)

Level 2, pada level ini juga actor akan dihadapkan dengan serangkaian-serangkaian pertempuran dan pengejaran antara tentara Indonesia terhadap sekutu yang melarikan diri menuju Ambarawa. Pada insiden ini actor diharuskan mengejar tentara sekutu yang menuju Ambarawa dengan navigasi kemudian mengalahkan tentara sekutu yang menghalangi pengejaran.

Level 3, kematian Letkol Isdiman menjadi kemarahan tentara Indonesia saat itu maka pertempuran Ambarawa pun terjadi dibawah pimpinan Kolonel Sudirman yang saat itu sedang sakit. Pada insiden ini actor akan menghadapi tentara sekutu di Ambarawa dengan tujuan menguasai wilayah ambarawa dan mengusir tentara sekutu. Pertempuran dimenangkan oleh tentara Indonesia dan kegigihan Kolonel Sudirman diabadikan dengan didirikan “Monumen Pertempuran Ambarawa”.

3.1.5 Gameplay

Tugas utama pemain dalam memainkan game ini adalah menyelesaikan tiga misi yang diberikan. Misi dari game ini yaitu pemain harus menemukan bendera merah putih di markas para tawanan tentara sekutu di kota Magelang pada misi tersebut pemain harus mendapatkan informasi yang bisa di dapatkan dari tiap levelnya. Level pertama bendera merah putih berada di markas para tawanan tentara sekutu di kota Magelang. Anda harus mengalahkan para tawanan yang dipersenjatai oleh sekutu. Level kedua, pemain harus mampu mengalahkan para tentara sekutu yang melarikan diri ke desa jambu. Level ketiga, pemain harus mampu mengalahkan para tentara sekutu dan memukul mundur pasukan sekutu yang ada di Ambarawa.

3.1.6 Analisis Tingkat Kesulitan

Tingkat kesulitan dari tiap level akan dibedakan dari jumlah musuh dan

(50)

Tabel 3.2 Tingkat Kesulitan tiap Level

No Level 1 Level 2 Level 3

Jumlah Musuh 10 15 20

Delay Tembakan

Musuh Lambat Lambat Cepat

3.1.7 Analisis Scoring

Game Palagan Ambarawa ini tidak memiliki score, satu-satunya penilaian yang ada adalah sukses atau tidaknya misi dalam setiap level.

3.1.8 Analisis Algoritma A* (A Star)

Algoritma A* di dalam game akan diterapkan pada karakter teman sebagai penentuan jalur terpendek atau pathfinding menuju target. Cara kerja algoritma A* di dalam game lebih jelasnya dapat dilihat pada gambar 3.4.

Gambar 3. 4 Ilustrasi A*

(51)

merupakan node tujuan (node B), sedangkan node yang berwarna abu-abu merupakan dinding penghalang atau disebut collision. Diasumsikan pencarian jalan terbaik dimulai dari node A menuju node B dengan node

abu-abu sebagai collisionnya. Selanjutnya adalah, melakukan pencarian untuk menemukan jalan terpendek dengan cara memeriksa node-node

yang berdekatan dari node A sampai node B. Langkah-langkahnya adalah sebagai berikut:

1. Pertama, dimulai dari node A dan tambahkan ke dalam open list. Open list merupakan list untuk node-node yang harus diperiksa.

2. Periksa semua node yang berdekatan dengan node A apakah

walkable atau tidak, abaikan node dengan collision atau penghalang lalu tambahkan semua node tersebut ke dalam open list. Dan untuk setiap node yang baru ditambahkan, simpan

node A sebagai “parent” yang nantinya akan digunakan untuk

menelusuri jalan.

3. Hapus node A dari open list, dan tambahkan ke dalam closed list. Closed list merupakan list untuk node yang tidak perlu diperiksa atau dalam artian merupakan bagian dari jalur terpendek yang sudah didapatkan.

(52)

Gambar 3. 5 Ilustrasi open list dan closed list

Kotak yang berwarna biru adalah node A, dengan ditandai dengan garis berwarna biru muda yang berarti node tersebut sudah ditambahkan ke dalam closed list. Sedangkan kotak yang berada di sekelilingnya adalah

open list yang berarti node-node yang harus diperiksa. Masing-masing

node yang berada di dalam open list memiliki pointer yang mengarah ke

node A sebagai induknya atau parent yang merupakan node awalnya.

Node yang memiliki nilai F paling rendah di dalam open list

dengan menggunakan rumus F = G + H. G adalah biaya yang dikeluarkan dari node awal atau disini node A ke node yang ada di sekitarnya. Sedangkan H adalah fungsi heuristic yang digunakan untuk menghitung perkiraan biaya yang dikeluarkan dari node awal menuju node tujuan.

(53)

Gambar 3. 6 Ilustrasi perhitungan menentukan nilai F

Open list dari node A nilai F yang dihasilkan adalah 64 yang didapatkan dari menambahkan nilai G = 14 dan nilai H = 50. Di dalam contoh ini G akan diberi nilai 10 apabila node bergerak secara vertical atau

horizontal dan diberi nilai 14 apabila node bergerak secara diagonal. Perhitungan nilai H digunakan fungsi heuristic, metode yang digunakan di dalam contoh ini adalah metode Manhattan dimana perhitungan jumlah node hanya yang bergerak secara vertical dan

horizontal menuju tujuannya serta mengabaikan penghalang atau collision,

yang kemudian nilainya dikalikan dengan 10. Atau dirumuskan dengan: H = 10*(abs(currentX-targetX) + abs(currentY-targetY))

Node yang terletak disebelah kanan dari node A diberikan nilai H = 60 yang didapatkan dari perhitungan 6 langkah atau 6 node menuju node B dan dikalikan 10, 6*10 = 60.

(54)

kemudian disebut dengan current node, selanjutnya langkahnya adalah sebagai berikut.

1. Hapus current node tersebut dari open list dan masukkan ke dalam closed list.

2. Periksa semua node yang berdekatan dengan current node, abaikan node yang unwalkable atau dalam contoh ini adalah

node penghalang. Jika tidak ada pada open list, tambahkan ke dalam open list. Dan tambahkan “parent” untuk node tersebut. 3. Jika node sudah ada pada open list, periksa apakah ini jalan

yang lebih baik dari node awal, dengan kata lain periksa apakah nilai G-nya lebih rendah apabila kita menggunakan

node ini, jika lebih rendah maka hitung ulang nilai F dan G serta merubah arah pointer, jika tidak maka jangan lakukan apa-apa.

Langkah pertama menghasilkan node-node di dalam open list dan closed list dijelaskan pada tabel 3.2.

Tabel 3.2 Tabel Perhitungan langkah pertama Open List (2,1), (2,2), (2,3), (3,1), (3,3), (4,1), (4,2), (4,3)

Closed list (3,2)

Parent (3,2)

Current node (2,3)

Gambat 3.6 merupakan penjelasan langkah pertama pencarian jalur terpendek / pathfinding menggunakan tree. Node (2,3) merupakan current node

(55)

Gambar 3.7 Penjelasan A* dengan tree pada langkah pertama

Proses yang dijelaskan di atas, dilakukan berulang kali atau looping, dimulai dari open list dan menemukan node dengan nilai F paling rendah. Langkahnya adalah sebagai berikut :

1. Hapus current node tersebut dari open list dan masukkan ke dalam closed list.

2. Periksa semua node yang berdekatan dengan current node, abaikan node

yang unwalkable atau dalam contoh ini adalah node penghalang. Jika tidak ada pada open list, tambahkan ke dalam open list. Dan tambahkan “parent” untuk node tersebut.

3. Jika node sudah ada pada open list, periksa apakah ini jalan yang lebih baik dari node awal, dengan kata lain periksa apakah nilai G-nya lebih rendah apabila menggunakan node ini, jika lebih rendah maka hitung ulang nilai F dan G serta merubah arah pointer, jika tidak maka jangan lakukan apa-apa.

(56)

Gambar 3.8 Penjelasan Astar pada langkah kedua

Berikut ini penjelasan melalui tabel untuk pencarian jalan terpendek di langkah kedua dapat dilihat pada tabel 3.3.

Tabel 3.3 Tabel Perhitungan langkah kedua Open List (1,2), (1,3), (1,4), (2,2), (3,3)

Closed list (3,2),(2,3), (3,4)

Parent (2,3)

Current node (2,4)

(57)

Gambar 3.9 Penjelasan A* dengan tree pada langkah kedua

Perhitungan pada langkah ketiga yang berada pada node dengan koordinat (2,4) dapat dilihat pada gambar 3.10.

(58)

Berikut ini penjelasan melalui tabel untuk pencarian jalan terpendek di langkah ketiga dapat dilihat pada tabel 3.4.

Tabel 3.4 Tabel Perhitungan langkah ketiga Open List (1,3), (1,5), (3,3)

Closed list (2,3),(2,5),(3,4),(3,5), (3,4)

Parent (2,4)

Current node (1,4)

Berikut ini penjelasan melalui tree untuk pencarian jalan terpendek pada langkah ketiga dapat dilihat pada gambar .

Gambar 3.11 Penjelasan A* dengan tree pada langkah ketiga

(59)

Gambar 3.12 Penjelasan Astar pada langkah keempat

Berikut ini penjelasan melalui tabel untuk pencarian jalan terpendek di langkah keempat dapat dilihat pada tabel 3.5.

Tabel 3.5 Tabel Perhitungan langkah keepat

Open List (0,3),(0,4),(0,5), (1,3)

Closed list (2,3), (2,4),(2,5)

Parent (2,4)

Current node (1,5)

(60)

Gambar 3.13 Penjelasan A* dengan tree pada langkah keempat

(61)

Gambar 3.14 Penjelasan Astar pada langkah kelima

[image:61.595.104.466.112.376.2]

Berikut ini penjelasan melalui tabel untuk pencarian jalan terpendek di langkah kelima dapat dilihat pada tabel 3.6.

Tabel 3.6 Tabel Perhitungan langkah kelima Open List (0,4),(0,5),(0,6)

Closed list (1,4),(2,4),(2,5),(2,6)

Parent (1,5)

Current node (1,6)

(62)
(63)

Perhitungan pada langkah keenam yang berada pada node dengan koordinat (1,6) dapat dilihat pada gambar 3.16.

Gambar 3.16 Penjelasan Astar pada langkah keenam

Berikut ini penjelasan melalui tabel untuk pencarian jalan terpendek di langkah keenam dapat dilihat pada tabel 3.7.

Tabel 3.7 Tabel Perhitungan langkah keenam Open List (0,5),(0,6),(0,7),(2,7)

Closed list (1,5),(2,5),(2,6)

Parent (1,6)

Current node (1,7)

(64)
(65)

Perhitungan pada langkah ketujuh yang berada pada node dengan koordinat (1,7) dapat dilihat pada gambar 3.18.

Gambar 3.18 Penjelasan Astar pada langkah ketujuh

Berikut ini penjelasan melalui tabel untuk pencarian jalan terpendek di langkah ketujuh dapat dilihat pada tabel 3.8.

Tabel 3.8 Tabel Perhitungan langkah ketujuh Open List (0,6),(0,7),(0,8),(2,7),(2,8)

Closed list (1.6),(2,6)

Parent (1,7)

Current node (2,8)

(66)

Gambar

Gambar 2.1 Flowchart Algoritma A* [6]
Gambar 2. 2 Logo C# [10]
Tabel 3.6 Tabel Perhitungan langkah kelima
Gambar 3.19 Penjelasan A* dengan tree pada langkah ketujuh
+7

Referensi

Dokumen terkait

Memperhitungkan semua aturan yang ada dalam basis pengetahuan. Hasil dari proses inference dipresentasikan oleh suatu fuzzy set untuk setiap variabel bebas. Derajat

[r]

FPS Creator X10 merupakan game engine yang digunakan untuk membuat The Hidden Artefact.Pembuatan game The Hidden Artefact dengan menggunakan FPS Creator X10 bertujuan

Unreal Development Kit (UDK) adalah software yang merupakan game engine dari Epic Games disertai dengan berbagai tools yang dapat membantu develper dalam membuat game

video game Third Person Shooter 3D bernama Monster Boat Attack sebagai media pembelajaran tentang lingkungan laut dengan menggunakan metode SAW untuk memberi

Game yang dibuat ini bergenre Real-time Strategy (RTS) merupakan game dimana para pemain harus memikirkan, membuat strategi serta mengontrol tiap-tiap unit tempurnya

Pengujian yang telah dilakukan menunjukkan bahwa penggunaan video game Third Person Shooter 3D Monster Boat Attack sebagai media pembelajaran tentang lingkungan

FPS Creator X10 merupakan game engine yang digunakan untuk membuat The Hidden Artefact.Pembuatan game The Hidden Artefact dengan menggunakan FPS Creator X10 bertujuan