SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
ASEP WAHYU NUGRAHA
10109140
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
v
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... ix
DAFTAR SIMBOL ... x
DAFTAR LAMPIRAN ... xiii
BAB I PENDAHULUAN ... 1
I.1. Latar Belakang Masalah ... 1
I.2. Identifikasi Masalah ... 2
I.3. Maksud dan Tujuan ... 2
I.4. Batasan Masalah ... 2
I.5. Metodologi Penelitian ... 3
I.6. Sistematika Penulisan ... 5
BAB II LANDASAN TEORI ... 7
II.1. Banjir ... 7
II.1.1. Macam-macam Banjir ... 7
II.1.2. Penyebab Terjadinya Banjir ... 8
II.1.3. Dampak yang ditimbulkan oleh Banjir ... 10
II.2. Game ... 11
II.2.1. Klasifikasi Game ... 11
II.2.1.1. Berdasarkan Jenis Platform yang digunakan ... 11
II.2.1.2. Berdasarkan Genre permainannya ... 12
II.2.2. Sudut Pandang Game ... 17
II.3. Kecerdasan Buatan ... 17
II.3.1. Agen Cerdas ... 18
vi
BAB III ANALISIS DAN KEBUTUHAN ALGORITMA ... 27
III.1. Analisis Masalah ... 27
III.2. Analisis Game ... 27
III.3. Analisis Masukan ... 28
III.4. Analisis Metode / Algoritma ... 29
III.4.1 Penerapan Algoritma Moving Target Search ... 29
III.5. Analisis Kebutuhan Non-Fungsional ... 40
III.5.1 Analisis Kebutuhan Perangkat Lunak ... 40
III.5.2 Analisis Kebutuhan Perangkat Keras ... 40
III.5.3 Analisis Pengguna ... 41
III.6. Analisis Kebutuhan Fungsional ... 41
III.6.1 Use Case Diagram ... 41
III.6.2 Activity Diagram ... 46
III.6.3 Sequence Diagram ... 48
III.6.4 Class Diagram ... 50
III.7. Perancangan Sistem ... 50
III.7.1 Perancangan Struktur Menu ... 51
III.7.2 Perancangan Antarmuka ... 51
III.7.3 Perancangan Pesan ... 53
III.7.4 Jaringan Semantik ... 53
III.7.5 Perancangan Method ... 53
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 59
IV.1. Implementasi ... 59
IV.1.1.Implementasi Perangkat Keras ... 59
IV.1.2.Implementasi Perangkat Lunak ... 60
IV.2. Implementasi Aplikasi ... 60
IV.3. Implementasi Class ... 60
vii
IV.5.1.2. Kasus dan Hasil Pengujian (Black Box Testing) ... 62
IV.5.1.3. Kasus dan Hasil Pengujian (White Box Testing) ... 63
BAB V KESIMPULAN DAN SARAN ... 69
V.1. Kesimpulan ... 69
V.2. Saran ... 69
71
DAFTAR PUSTAKA
[1] Peter K. K. Loh and Edmond C. Prakash.2009. Performance Simulations of
Moving Target Search Algorithms.
[2] Adam, E,.2010., Fundamentals of Game Design (2�� Edition), New Rider:
Berkeley.
[3] A,Rosa.S,. Shalahudin,M,. (2013), Rekayasa Perangkat Lunak, Bandung:
Informatika.
[4] Dharma Kasman, Akhmad., 2013, Trik Mudah Menguasai OOP dengan
PHP, Lokomedia, Yogyakarta.
[5] Pranowo, Galih. (2011), Kreasi Animasi Interaktif dengan Action Script 3.0
pada Flash CS5, Yogyakarta: Andi.
[6] Ishida Toru and Ricard E. Korf. Moving Target Search.Japan-Los Angles, Ca.
[7] J. Pearl, Heuristics: Intelegent Search Strategies for Computer Problem
Solving. Addison-Wesley, Reading, Mass., 1984.
[8] Sommerville, Ian. (2011), Software Engineering, 9th, Addison Wesley.
[9] Suparman, Artificial Intellegence, Penerbit Andi Offset Yogyakarta, Edisi
iii Assalamu’alaikum Wr. Wb.
Puji dan syukur penulis panjatkan ke hadirat Allah SWT, atas rahmat dan
karunia-Nya penyusunan skripsi dengan judul “Implementasi Algoritma Moving
Target Search Pada Game Penyelamatan Korban Banjir” dapat diselesaikan
tepat pada waktunya.Skripsi ini diajukan untuk memenuhi syarat dalam
menempuh ujian akhir sarjana program strata satu (S1) Program Studi Teknik
Informatika Universitas Komputer Indonesia Bandung.
Selama penyusunan tugas akhir ini, penulis telah mendapatkan banyak
sekali bimbingan dan bantuan serta motivasi dari berbagai pihak dengan segenap
hati dan keihklasan dalam menyelesaikan tugas akhir ini. Penulis ucapkan terima
kasih yang sebesar-besarnya kepada:
1. Allah SWT yang telah memberikan rahmat, kasih dan hidayah-Nya
sehingga dapat diselesaikannya penelitian dan skripsi ini.
2. Keluarga tercinta terutama kedua orang tua Ibu Oom Hasanah dan Bapak
(Alm) Utim Surtim yang selalu memberikan doa, kasih sayang, semangat
dan dorongan moril maupun materil.
3. Ibu Dian Dharmayanti, S.T.,M.Kom. selaku dosen pembimbing yang telah
banyak memberikan dukungan dan masukan dalam penulisan skripsi ini.
4. Bapak Adam Mukharil Bachtiar, S.Kom.,M.T.selaku dosen reviewer yang
telah banyak memberikan pengetahuan dan masukan dalam penulisan
skripsi ini.
5. Dosen-dosen Teknik Informatika yang telah mengajari berbagai hal dan
berbagai bidang ilmu pengetahuan.
6. Mohamad Aspullah selaku sahabat yang telah memberikan bantuan,
iv motivasi dan masukan.
9. Rekan-rekan kelas IF-4 angkatan 2009 dan rekan satu bimbingan.
10.Semua pihak yang telah membantu penulis yang tidak bisa penulis
sebutkan satu persatu.
Penulis menyadari bahwa dalam penyusunan skripsi ini masih terdapat
banyak kekurangan dan jauh dari predikat sempurna, maka untuk itu kritik dan
saran yang membangun sangat penulis harapkan dari para pembaca.
Terlepas dari kekurangan yang ada semoga skripsi ini dapat bermanfaat
bagi saya khususnya dan bagi para pembaca pada umumnya dalam upaya
meningkatkan pengetahuan kita semua. Amin. Wassalamu’alaikum Wr. Wb.
Bandung, Agustus 2014
Penulis
1 I.1. Latar Belakang Masalah
Game merupakan suatu permainan yang dilakukan baik secara indivindu
maupun berkelompok untuk dapat menyelesaikan misi yang diberikan pada game
tersebut. Game biasanya digunakan sebagai media untuk mengisi waktu luang,
kesenangan, dan pendidikan.
Algoritma Moving Target Search merupakan salah satu algoritma
pemecahan masalah yang berbasis pencarian terhadap target dan juga memiliki
jangkauan deteksi atau daerah dimana dapat mendeteksi target [1]. Melihat dari
permasalahan yang dialami oleh tim penyelamat, algoritma Moving Target Search
sangat cocok diterapkan pada tim penyelamat karena perilaku algoritma ini sendiri
dapat melakukan pencarian dan mendeteksi korban atau target yang akan dicari.
Banjir adalah peristiwa atau keadaan dimana terendamnya suatu daerah
atau daratan karena volume air yang meningkat. Di Indonesia banjir sudah
menjadi hal yang biasa apalagi di daerah Ibu Kota Jakarta hampir setiap tahunnya
menjadi langganan banjir. Di tahun 2014 ini menjadi peristiwa banjir terparah dari
tahun-tahun sebelumnya, bukan hanya di Jakarta kota-kota besar seperti Bekasi,
Tanggerang, Subang, Indramayu, Semarang, Sulawesi Utara dan lain sebagainya.
Banyak rumah yang terendam oleh banjir sehingga banyak korban yang
terjebak dirumah mereka masing-masing. Dengan adanya kejadian ini korban sulit
sekali untuk keluar dari banjir tersebut. Hal ini dikarenakan arus banjir yang
sangat deras sehingga orang-orang tidak mampu untuk menolong korban banjir.
Dalam kasus korban banjir ini tim penyelamat ditugaskan untuk menolong korban
banjir yang ada di dalam rumah mereka masing-masing yang terendam oleh
banjir. Tim penyelamat harus menelusuri setiap rumah untuk menyelamatkan
Dari permasalahan diatas, penulis tertarik untuk menerapkan algoritma
Moving Target Search pada masalah pencarian target atau korban dan mengambil
pokok bahasan skripsi bagaimana menerapkan algoritma tersebut pada perangkat
lunak untuk mencari solusi penyelesaiannya dengan judul “Implementasi
Algoritma Moving Target Searchpada game Penyelamatan Korban Banjir”.
I.2. Identifikasi Masalah
Berdasarkan uraian yang ada di latar belakang masalah, maka identifikasi
masalahnya adalah :
1. Bagaimana cara menyelamatkan korban yang terjebak oleh banjir?
2. Bagaimana mengimplementasikan algoritma Moving Target Search pada
game penyelamatan korban banjir?
I.3. Maksud dan Tujuan
Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan
tugas akhir ini adalah untuk menerapkan algoritma Moving Target Search pada
game penyelamatan korban banjir.
Adapun tujuan yang akan dicapai dari penerapan algoritma Moving Target
Search adalah sebagai berikut:
1. Mendeteksi keberadaan korban.
2. Menentukan jalur terdekat dengan keberadaan korban.
3. Menyelamatkan korban yang terjebak banjir.
I.4. Batasan Masalah
Batasan masalah dalam pembangunan aplikasi ini adalah sebagai berikut :
1. Aplikasi game yang akan dibangun berbasis desktop.
2. Aplikasi game yang akan dibangun bergrafis 2 dimensi dan offline.
3. Aplikasi game ini ditujukan khususnya untuk pemain mulai usia 18 tahun
ke atas, yang dijadikan bahan simulasi penyelamatan korban banjir.
4. Genre game adalah life simulation.
6. Game yang akan dibangun berupa prototype.
7. Jumlah korban pada game ini ada 2 karakter.
8. Device input yang digunakan untuk permainan ini yaitu mouse dan
keyboard.
9. Bahasa pemrograman yang digunakan yaitu action script.
I.5. Metodologi Penelitian
Metodologi yang digunakan dalam penulisan tugas akhir ini adalah
sebagai berikut :
1. Tahap pengumpulan data
Metode Pengumpulan data yang digunakan dalam penelitian adalah
sebagai berikut :
a. Studi Pustaka
Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper
dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.
b. Observasi
Teknik pengumpulan data dengan mengadakan penelitian dan
peninjauan langsung terhadap permalasahan yang diambil.
2. Tahap pembuatan perangkat lunak
Teknik analisis data dalam pembuatan perangkat lunak menggunakan
paradigma perangkat lunak secara waterfall, yang meliputi beberapa
Gambar 1.1. Metode Waterfall
1. Requirements definition
Proses pengumpulan kebutuhan diintensifkan dan difokuskan
khususnya pada perangkat lunak untuk memahami sifat program yang
dibangun. Hal ini sangat penting, mengingat software harus dapat
berinteraksi dengan elemen-elemen lain yang lain seperti hardware,
database,dsb.
2. System and Software Design
Proses desain sistem mengalokasikan persyaratan baik untuk perangkat
keras atau perangkat lunak sistem dengan membentuk arsitektur sistem
secara keseluruhan. Software desain melibatkan mengidentifikasi dan
menggambarkan abstraksi sistem perangkat lunak yang mendasar dan
hubungannya antar sistem.
3. Implementation and Unit Testing
Selama tahap ini, desain perangkat lunak direalisasikan sebagai
serangkaian program atau program unit. Unit pengujian melibatkan
verifikasi bahwa setiap unit memenuhi spesifikasinya.
4. Integration and System Testing
Merupakan tahap pengujian terhadap perangkat lunak yang dibangun.,
unit-unit di integrasikan ke dalam sistem yang lengkap selama fase
berkoordinasi. Dan sistem secara keseluruhan berperilaku sesuai
dengan spesifikasi.
5. Operation and Maintenance
Pemeliharaan melibatkan mengoreksi kesalahan yang tidak ditemukan
pada tahap-tahap awal dari siklus hidup, meningkatkan implementasi
unit sistem dan meningkatkan layanan sistem sebagai persyaratan baru
yang ditemukan.
I.6. Sistematika Penulisan
Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran
umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini
adalah sebagai berikut :
BAB I PENDAHULUAN
Bab ini menjelaskan tentang latar belakang masalah, mengidentifikasi
permasalahan dengan merumuskan inti dari permasalahan, menentukan
maksud dan tujuan penelitian, membatasi permasalahan yang diteliti,
menjelaskan metodologi penelitian yang akan digunakan, dan menyusun
sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi pembahasan mengenai deskripsi game, klasifikasi game,
kecerdasan buatan, object oriented programming (OOP), unified modeling
language (UML), dan berisi uraian tentang tools yang digunakan.
BAB III ANALISIS DAN KEBUTUHAN ALGORITMA
Bab ini berisi tentang sistem yang digunakan, analisis permainan yang
akan dibangun, analisis pembangunan aplikasi yang akan dibangun,
analisis dan kebutuhan fungsional yang berupa diagram-diagram UML,
serta analisis dan kebutuhan non-fungsional yang terdapat perancangan
antarmuka pada aplikasi permainan yang dibangun.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi implementasi dari perangkat keras yang digunakan,
yang telah dibangun, dan implementasi antarmuka, serta berisi hasil
pengujian pada aplikasi permainan menggunakan metode pengujian white
box dengan tahap pengujian alpha dan beta.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari hasil pengujian bahwa tujuan awal dalam
pembangunan aplikasi permainan telah tercapai atau tidak, serta berisi
7 II.1. Banjir
Banjir adalah tergenangnya suatu wilayah daratan yang normalnya kering
dan diakibatkan oleh sejumlah hal antara lain air yang meluap yang disebabkan
curah hujan yang tinggi dan semacamnya.
II.1.1. Macam-macam Banjir
Terdapat berbagai macam banjir yang disebabkan oleh beberapa hal,
diantaranya:
1. Banjir Air
Banjir yang satu ini adalah banjir yang sudah umum. Penyebab banjir ini
adalah meluapnya air sungai, danau, atau selokan sehingga air akan meluber lalu
menggenangi daratan. Umumnya banjir seperti ini disebabkan oleh hujan yang
turun terus-menerus sehingga sungai atau danau tidak mampu lagi menampung
air.
2. Banjir Cileunang
Jenis banjir yang satu ini hampir sama dengan banjir air. Namun banjir
cileunang ini disebakan oleh hujan yang sangat deras dengan debit air yang sangat
banyak. Banjir akhirnya terjadi karena air-air hujan yang melimpah ini tidak bisa
segera mengalir melalui saluran atau selokan di sekitar rumah warga. Jika banjir
air dapat terjadi dalam waktu yang cukup lama, maka banjir cileunang adalah
banjir dadakan (langsung terjadi saat hujan tiba).
3. Banjir Bandang
Tidak hanya banjir dengan materi air, tetapi banjir yang satu ini juga
mengangkut material air berupa lumpur. Banjir seperti ini jelas lebih berbahaya
daripada banjir air karena seseorang tidak akan mampu berenang ditengah-tengah
banjir seperti ini untuk menyelamatkan diri. Banjir bandang mampu
terjadi di area dekat pegunungan, dimana tanah pegunungan seolah longsor karena
air hujan lalu ikut terbawa air ke daratan yang lebih rendah. Biasanya banjir
bandang ini akan menghanyutkan sejumlah pohon-pohon hutan atau batu-batu
berukuran besar. Material-material ini tentu dapat merusak pemukiman warga
yang berada di wilayah sekitar pegunungan.
4. Banjir Rob (Laut Pasang)
Banjir rob adalah banjir yang disebabkan oleh pasangnya air laut. Banjir
seperti ini kerap melanda kota Muara Baru di Jakarta. Air laut yang pasang ini
umumnya akan menahan air sungai yang sudah menumpuk, akhirnya mampu
menjebol tanggul dan menggenangi daratan.
5. Banjir Lahar Dingin
Salah satu dari macam-macam banjir adalah banjir lahar dingin. Banjir
jenis ini biasanya hanya terjadi ketika erupsi gunung berapi. Erupsi ini kemudian
mengeluarkan lahar dingin dari puncak gunung dan mengalir ke daratan yang ada
di bawahnya. Lahar dingin ini mengakibatkan pendangkalan sungai, sehingga air
sungai akan mudah meluap dan dapat meluber ke pemukiman warga.
6. Banjir Lumpur
Banjir lumpur ini identik dengan peristiwa banjir Lapindo di daerah
Sidoarjo. Banjir ini mirip banjir bandang, tetapi lebih disebabkan oleh keluarnya
lumpur dari dalam bumi dan menggenangi daratan. Lumpur yang keluar dari
dalam bumi bukan merupakan lumpur biasa, tetapi juga mengandung bahan dan
gas kimia tertentu yang berbahaya. Sampai saat ini, peristiwa banjir lumpur panas
di Sidoarjo belum dapat diatasi dengan baik, malah semakin banyak titik-titik
semburan baru di sekitar titik semburan lumpur utama.
II.1.2. Penyebab Terjadinya Banjir
Terdapat beberapa penyebab terjadinya banjir, diantaranya :
1. Sungai
a. Lama
Endapan dari hujan atau pencairan salju cepat melebihi kapasitas
tropis, angin luar dan hujan panas yang mempengaruhi salju. Rintangan
drainase tidak terduga seperti tanah longsor, es, atau puing-puing dapat
mengakibatkan banjir perlahan di sebelah hulu rintangan.
b. Cepat
Termasuk banjir bandang akibat curah hujan konvektif (badai
petir besar) atau pelepasan mendadak endapan hulu yang terbentuk di
belakang bendungan, tanah longsor, atau gletser.
Sungai-sungai yang membelah Jakarta sudah tidak lagi berfungsi
maksimal dalam menampung air. Selain karena pendangkalan dan
rumah-rumah penduduk yang menyemut di sepanjang pinggirannya, juga karena
sungai-sungai ini penuh dengan sampah. Berbagai jenis sampah dapat
ditemukan di badan sungai. Di beberapa tempat, tumpukan sampah itu begitu
banyak sehingga menjadi sebuah daratan yang dapat diinjak manusia.
2. Muara
Biasanya diakibatkan oleh penggabungan pasang laut yang diakibatkan
angin badai. Banjir badai akibat siklon tropis atau siklon ekstra tropis masuk
dalam kategori ini.
3. Pantai
Diakibatkan badai laut besar atau bencana lain seperti tsunami atau
hurikan. Banjir badai akibat siklon tropis atau siklon ekstrat ropis masuk
dalam kategori ini.
4. Peristiwa Alam
Diakibatkan oleh peristiwa mendadak seperti jebolnya bendungan atau
bencana lain seperti gempa bumi dan letusan gunung berapi.
5. Manusia
Kerusakan akibat aktivitas manusia, baik disengaja atau tidak merusak
keseimbangan alam.
6. Lumpur
Banjir lumpur terjadi melalui penumpukan endapan di tanah pertanian.
Sedimen kemudian terpisah dari endapan dan terangkut sebagai materi tetap
mulai mencapai daerah berpenghuni. Banjir lumpur adalah proses lembah
bukit, dan tidak sama dengan aliran lumpur yang diakibatkan pergerakan
massal.
7. Lainnya
a. Banjir dapat terjadi ketika air meluap di permukaan kedap air
(misalnya akibat hujan) dan tidak dapat terserap dengan cepat
(orientasi lemah atau penguapan rendah).
b. Rangkaian badai yang bergerak ke daerah yang sama.
Berang-berang pembangun bendungan dapat membanjiri wilayah
perkotaan dan pedesaan rendah, umumnya mengakibatkan kerusakan
besar.
II.1.3. Dampak yang ditimbulkan oleh Banjir
1. Primer
Kerusakan fisik: Mampu merusak berbagai jenis struktur, termasuk
jembatan, mobil, bangunan, sistem selokan bawah tanah, jalan raya, dan kanal.
2. Sekunder
a. Persediaan air: Kontaminasi air. Air minum bersih mulai langka.
b. Penyakit: Kondisi tidak higienis. Penyebaran penyakit bawaan air.
c. Pertanian dan persediaan makanan: Kelangkaan hasil tani disebabkan oleh
kegagalan panen. Namun, dataran rendah dekat sungai bergantung kepada
endapan sungai akibat banjir demi menambah mineral tanah setempat.
d. Pepohonan: Spesies yang tidak sanggup akan mati karena tidak bisa
bernapas.
e. Transportasi: Jalur transportasi rusak, sulit mengirimkan bantuan darurat
kepada orang-orang yang membutuhkan.
3. Dampak Tersier/Jangka Panjang
a. Ekonomi: Kesulitan ekonomi karena kerusakan pemukiman yang terjadi
akibat banjir, dalam sector pariwisata menurunnya minat wiasatawan,
biaya pembangunan kembali, kelangkaan makanan yang mendorong
Dari berbagai dampak negatif yang ditimbulkan, ternyata banjir (banjir air
skala kecil) juga dapat membawa banyak keuntungan, seperti mengisi kembali air
tanah, menyuburkan serta memberikan nutrisi kepada tanah. Air banjir
menyediakan air yang cukup di kawasan kering dan semi-kering yang curah
hujannya tidak menentu sepanjang tahun. Air banjir tawar memainkan peran
penting dalam menyeimbangkan ekosistem di koridor sungai dan merupakan
faktor utama dalam penyeimbangan keragaman makhluk hidup di dataran. Banjir
menambahkan banyak nutrisi untuk danau dan sungai yang semakin memajukan
industri perikanan pada tahun-tahun mendatang, selain itu juga karena kecocokan
dataran banjir untuk pengembangbiakan ikan (sedikit predasi dan banyak nutrisi).
II.2. Game
Game merupakan suatu permainan yang dapat dilakukan baik secara
individu maupun berkelompok untuk dapat menyelesaikn misi yang diberikan
pada game tersebut. Game biasanya digunakan sebagai media untuk mengisi
waktu luang, kesenangan dan pendidian.
Kelincahan intelektual, pada tingkat tertentu, merupakan ukuran sejauh
mana game itu menarik untuk dimainkan secara maksimal. Pada awalnya, game
indentik dengan permainan anak-anak. Kita selalu berpikir game merupakan suatu
kegiatan yang dilakukan oleh anak-anak yang dapat menyenangkan hati mereka.
Dengan kata lain, segala bentuk kegiatan yang memerlukan pemikiran, kelincahan
intelektual dan pencapaian terhadap target tertentu dapat dikatakan sebagi game
[5].
II.2.1. Klasifikasi Game
Berikut ini adalah klasifikasi game berdasarkan jenis platform yang
digunakan dan juga berdasarkan genre permainannya.
II.2.1.1.Berdasarkan Jenis Platform yang digunakan
1. Arcade games, yaitu yang sering disebut ding-dong di Indonesia, biasanya
memang khusus di design untuk jenis video games tertentu dan tidak
jarang bahkan memiliki fitur yang dapat membuat pemainnya lebih merasa
masuk dan menikmati , seperti pistol, kursi khusus, sensor gerakan, sensor
injakkan dan stir mobil (beserta transmisinya tentunya)
2. PC Games, yaitu video game yang dimainkan menggunakan Personal
Computer.
3. Console games, yaitu video games yang dimainkan menggunakan console
tertentu, seperti Playstation 2, Playstation 3, XBOX 360, dan Nintendo
Wii.
4. Handheld games, yaitu yang dimainkan di console khusus video game
yang dapat dibawa kemana-mana, contoh Nintendo DS dan Sony PSP.
5. Mobile games, yaitu yang dapat dimainkan atau khusus untuk mobile
phone atau PDA.
II.2.1.2.Berdasarkan Genre permainannya
1. Aksi Shooting, video game jenis ini sangat memerlukan kecepatan refleks,
koordinasi mata-tangan, juga timing, inti dari game jenis ini adalah
tembak, tembak dan tembak. Termasuk didalam-nya:
a. First person shooting (FPS) seperti Counter Strike dan Call of Duty.
b. 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.
c. Shoot em up, seperti Raiden, 1942, dan gradius.
d. Beat em up (tonjok hajar) seperti Double Dragon dan Final Fight, lalu
hack and slash (tusuk tebas) seperti Shinobi dan Legend of Kage.
Light gun shooting, yang menggunakan alat yang umumnya berbentuk
seperti senjata, seperti Virtua Cop dan Time Crisis.
2. Fighting (pertarungan) Ada yang mengelompokan video game fighting
dibagian Aksi, namun penulis berpendapat berbeda, jenis ini memang
memerlukan kecepatan refleks dan koordinasi mata-tangan, tetapi inti dari
mengeksekusinya), pengenalan karakter dan timing sangatlah penting, iya,
combo-pun menjadi esensial untuk mengalahkan lawan secepat mungkin.
Dan berbeda seperti game Aksi pada umumnya yang umumnya hanya
melawan Artificial Intellegence atau istilah umumnya melawan komputer
saja, pemain jenis fighting game ini baru teruji kemampuan sesungguhnya
dengan melawan pemain lainnya. Seri Street Fighter, Tekken, Mortal
Kombat, Soul Calibur dan King of Fighter adalah contohnya [2].
3. Aksi Petualangan. Memasuki gua bawah tanah, melompati bebatuan
diantara lahar, bergelayutan dari pohon satu ke pohon lain, bergulat
dengan ular sambil mencari kunci untuk membuka pintu kuil legendaris,
atau sekedar mencari telepon umum untuk mendapatkan misi berikutnya,
itulah beberapa dari banyak hal yang karakter pemain harus lakukan dan
lalui dalam video game jenis ini. Menurut penulis, game jenis ini sudah
berkembang jauh hingga menjadi genre campuran action beat-em up juga,
dan sekarang, di tahun 2000 an, jenis ini cenderung untuk memilik visual
3D dan sudut pandang orang ke-tiga. Tomb Rider, Grand Theft Auto dan
Prince of Persia termasuk didalamnya [2].
4. Petualangan. Bedanya dengan jenis video game aksi-petualangan, refleks
dan kelihaian pemain dalam bergerak, 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. Termasuk
didalamnya:
a. Petualangan dengan teks atau sistem tunjuk dan klik, contoh: Kings
Quest, Space Quest, Heroes Quest, Monkey Island, Sam and Max.
b. Novel atau film interaktif, seperti game dating yang banyak beredar di
jepang, Dragons Lair dan Night Trap.
5. Simulasi, Konstruksi dan manajemen. Video Game jenis ini sering kali
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 [2].
6. 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 seiring 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, senjata yang semakin sakti, ataupun jumlah teman
maupun mahluk peliharaan.Secara kebudayaan, pengembang game Jepang
biasanya membuat Role Playing Game (RPG) ke arah cerita linear yang
diarahkan seolah karakter kita adalah tokoh dalam cerita itu, seperti Final
Fantasy, Dragon Quest dan Xenogears. Sedangkan pengembang game
RPG Eropa, cenderung membuat karakter kita bebas memilih jalan cerita
sendiri secara non-linear, seperti Ultima, Never Winter Nights, baldurs
gate, Elder Scroll, dan Fallout [2].
7. Strategi. Kebalikan dari video game jenis action yang berjalan cepat dan
perlu refleks secepat kilat, video game jenis strategi, layaknya bermain
catur, justru lebih memerlukan keahlian berpikir dan memutuskan setiap
gerakan secara hati-hati dan terencana. Video game strategi biasanya
memberikan pemain atas kendali tidak hanya satu orang tapi minimal
sekelompok orang dengan berbagai jenis tipe kemampuan, sampai
kendaraan, bahkan hingga pembangunan berbagai bangunan, pabrik dan
pusal pelatihan tempur, tergantung dari tema ceritanya. Pemain game
strategi melihat dari sudut pandang lebih meluas dan lebih kedepan
dengan waktu permainan yang biasanya lebih lama dan santai
dibandingkan game action. Unsur-unsur permainannya biasanya berkisar
memanfaatkan sumberdaya (uang, besi, kayu, minyak,dll), hingga ke
pembelian dan pengembangan pasukan atau teknologi. Game jenis ini
terbagi atas:
a. Real Time Strategy
Game berjalan dalam waktu sebenarnya dan serentak antara semua
pihak dan pemain harus memutuskan setiap langkah yang diambil saat
itu juga berbarengan mungkin saat itu pihak lawan juga sedang
mengeksekusi strateginya. Contoh: Starcraft, Warcraft, dan Command
and Conquer.
b. Turn Based Strategy
Game yang berjalan secara bergiliran, saat kita mengambil keputusan
dan menggerakan pasukan, saat itu pihak lawan menunggu, begitu pula
sebaliknya, layaknya catur. Contoh: Front Mission, Super robot wars,
Final Fantasy tactics, Heroes of might and magic, Master of Orion.
Sebenarnya ada yang memilah lagi menjadi jenis tactical dan strategi,
namun penulis cenderung untuk menggabungkannya karena
perbedaannya hanya ada di masalah skala dan kerumitan dalam
manajemen sumber daya saja [2].
8. Puzzle. Video game jenis ini sesuai namanya berintikan mengenai
pemecahan teka-teki, baik itu menyusun balok, menyamakan warna bola,
memecahkan perhitungan matematika, melewati labirin, 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.
9. 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. Terbagi atas beberapa jenis:
Video game simulasi kendaraan yang sempat tenar di tahun 90-an ini
mengajak pemain untuk menaiki kendaraan dan berperang melawan
kendaraan lainnya. Dan kebanyakan diantaranya memiliki judul sama
dengan nama kendaraannya. Contoh : Apache 64, Comanche, Abrams,
YF-23, F-16 fighting eagle [2].
b. Balapan
Dari namanya sudah jelas, siapa sampai duluan di garis finish dialah
pemenangnya! Terkadang malah pemain dapat memilih kendaraan,
mendandani, upgrade mesin bahkan mengecatnya. Contoh: Top Gear,
Test Drive, Sega Rally Championship, Daytona, Grand Turismo, Need
For Speed, Mario Cart, ManXTT.
c. Luar Angkasa
Walau masih dapat dikategorikan simulasi kendaraan perang, tetapi
segala unsur fiksi ilmiah dan banyaknya judul yang beredar membuat
subgenre ini pantas dikategorikan diluar simulasi kendaraan perang.
Jenis ini memungkinkan pemain untuk menjelajah luar angkasa,
berperang dengan mahluk alien, mendarat di planet antah berantah atau
sekedar ingin merasakan bagaimana menjadi kapten di film fiksi
ilmiah kesayangan kamu. Contoh : Wing Commander, Freelancer ,
Star Wars X-Wing, Star Wars Tie Fighter, dl [2].
d. Mecha
Pendapat bahwa hampir tidak ada orang yang terekspos oleh film robot
jepang saat kecilnya tidak memimpikan ingin mengendalikan robot,
memang sulit dibantah. Dipopulerkan oleh serial Mechwarrior oleh
Activision, subgenre Simulasi Mecha ini memungkinkan pemainnya
untuk mengendalikan robot dan menggunakannya untuk
menghancurkan gedung, helikopter dan tentu saja robot lainnya.
Contoh : Mechwarrior, Gundam Last war Chronicles, dan Armored
Core.
10.Olahraga. Singkat, padat, jelas, bermain sport di PC atau konsol anda.
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].
II.2.2. Sudut Pandang Game
Sebuah game biasanya mempunyai sudut pandang permainan tersendiri
disesuaikan berdasarkan genre game yang diambil. Berikut beberapa macam sudut
pandang permainan yang biasa digunakan :
1. Side Scrolling
Side Scrolling adalah sudut pandang permainan yang terlihat
dari samping dan memungkinkan karakter utama untuk bergerak dari
kiri ke kanan serta memungkinkan background pada game seolah-olah
bergeser mengikuti pergerakan karakter utama.
2. Top Down
Top Down adalah sudut pandang permainan yang memungkinkan
karakter utama bermanuver ke empat arah namun cara permainannya
sendiri bergeser dari bawah ke atas, dan biasanya game yang
menggunakan sudut pandang permainan jenis ini adalah shooter game.
3. Isometric
Isometric adalah sudut pandang permainan yang memungkinkan
permainan terlihat diantara sisi Side Scrolling dan juga Top Down,
dan biasanya diterapkan pada game dengan genre RTS.
II.3. Kecerdasan Buatan
Kecerdasan buatan merupakan sub-bidang ilmu komputer (computer
science) yang khusus ditujukan untuk membuat perangkat lunak dan perangkat
keras yang sepenuhnya bisa menirukan beberapa fungsi otak manusia, atau
cabang ilmu komputer yang mempelajari otomatisasi tingkah laku cerdas
(intelegent) [9].
Kecerdasan harus didasarkan pada prinsip-prinsip teoritikal dan terapan
1. Struktur data yang digunakan dalam representasi pengetahuan (knowledge
representation).
2. Algoritrma yang diperlukan dalam penerapan pengetahuan.
3. Teknik-teknik bahasa dan pemrograman yang dipakai dalam
implementasinya.
Kecerdasan buatan menawarkan baik media maupun uji teori kecerdasan.
Teori-teori semacam ini dapat dinyatakan dalam bahasa program komputer dan
dibuktikan melalui eksekusinya pada komputer.
Bidang-bidang teknik kecerdasan buatan diantaranya adalah [9]:
1. Sistem pakar (expert system).
2. Robot (robotic).
3. Logika samar (fuzzy logic).
4. Jaringan saraf (neural networks) tiruan.
5. Pengolahan bahasa alami (natural language processing).
6. Pengolahan citra.
II.3.1. Agen Cerdas
Agen (agent) adalah sesuatu yang dapat melihat, merasakan (perceiving),
memahami, dan mengerti lingkungannya melalui detektor (detektor) / sensor
(censor) dan bertindak (acting) atas lingkungan itu pula melalui media sarananya
(effector).
Manusia mempunyai agen berupa mata, dan telinga yang berupa
detektor/sensor, sedangkan tangan, kaki, dan mulut merupakan efektornya. Robot
mempunyai kamera dan detektor infra merah sebagai sensor, dan motor-motor
listrik, lengan mekanik sebagai efektornya.
Tugas dari kecerdasan buatan adalah merancang program agen (agent
program), yaitu suatu fungsi yang mengimplementasikan peta agen dari persepsi
hingga aksi. Sedangkan program yang dijalankan tersebut memerlukan sebuah
peralatan tertentu yang dapat berupa komputer atau perangkat keras khusus untuk
II.3.2. Moving Target Search
a. Pengertian Moving Target Search
Algoritma Moving Target Search didefinisikan sebagai salah satu
algoritma pemecahan masalah yang berbasis pencarian terhadap target dan juga
memiliki jangkauan deteksi atau daerah dimana dapat mendeteksi target [1].
b. Pergerakan Moving Target Search
Ada dua peristiwa berbeda yang terjadi pada algoritma MTS yang
pertama adalah pergerakan dari tim penyelamat dan pergerakan dari target
yang masing-masing bisa disertai dengan memperbarui nilai heuristik. Tim
penyelamat dan target bergerak secara bergantian, sampai posisi dari tim
penyelamat dan target menduduki posisi yang sama. Algoritma MTS ini
dijelaskan lebih detail seperti di bawah ini [6]:
1. Pada saat target diam, maka tim penyelamat bergerak dari titik awal ke
tujuan selanjutnya dengan menggunakan perhitungan sebagai berikut :
… Persamaan 2.1
Dimana :
a. F(x’,y) adalah fungsi evaluasi (jumlah Heuristik + 1). F(x’,y)
merupakan merupakan sebuah nama variable satu kesatuan bukan
terpisah, x’ dan y terbungkus atau tergabung dalam nilai F.
b. H(x’,y) adalah perkiraan nilai pergerakan simpul awal menuju tujuan
selanjutnya. Fungsi ini seringkali disebut dengan fungsi heuristik,
dinamakan heuristik karena perhitungan tersebut berdasarkan perkiraan.
c. X adalah nama variabel dari tim penyelamat. Posisi awal dari X sudah
ditentukan sedangkan untuk X’ adalah perpindahan posisi dari posisi
awal ke tejuan selanjutnya.
d. Y adalah nama varibel dari korban. Posisi awal dari Y sudah ditentukan
sedangkan untuk Y’ adalah perpindahan posisi dari posisi awal ke
tujuan selanjutnya.
2. Ketika target mulai bergerak dari titik awal ke tetangganya, maka tim
penyelamat memperhatikan pergerakannya, kemudian akan selalu
memperbaharui nilai perpindahan dari korban, dengan menggunakan
perhitungan sebagai berikut :
… Persamaan 2.2
Dimana :
a. F(x,y’) adalah fungsi evaluasi (jumlah Heuristik + 1). F(x,y’)
merupakan merupakan sebuah nama variable satu kesatuan bukan
terpisah, x dan y’ terbungkus atau tergabung dalam nilai F.
b. H(x,y’) adalah perkiraan nilai pergerakan simpul awal menuju tujuan
selanjutnya. Fungsi ini seringkali disebut dengan fungsi heuristik,
dinamakan heuristik karena perhitungan tersebut berdasarkan perkiraan.
c. X adalah nama variabel dari tim penyelamat. Posisi awal dari X sudah
ditentukan sedangkan untuk X’ adalah perpindahan posisi dari posisi
awal ke tejuan selanjutnya.
d. Y adalah nama varibel dari korban. Posisi awal dari Y sudah ditentukan
sedangkan untuk Y’ adalah perpindahan posisi dari posisi awal ke
tujuan selanjutnya.
c. Fungsi Heuristik
Sama seperti kebanyakan algoritma pencarian lainnya, kinerja
algoritma MTS bergantung pada fungsi heuristik yang digunakan, game ini
menggunakan fungsi heuristic Non-Manhattan Distance, dengan fungsi
heuristic yang digunakan adalah sebagai berikut [7]:
… Persamaan 2.3 h_diagonal(n) = min(abs(n.x - goal.x) +
abs(n.y – goal.y))
h_orthogonal(n) = (abs(n.x - goal.x) +
abs(n.y – goal.y))
h(n) = h_diagonal(n) + (h_orthogonal (n) –
(2 * h_diagonal(n)))
Dimana :
a. h_diagonal(n) adalah banyaknya langkah diagonal yang bisa
diambil untuk mencapai goal dari node n.
b. h_orthogonal(n) adalah banyaknya langkah lurus yang bisa diambil
untuk mencapai goal dari node n.
c. n.X adalah koordinat X tetangga dari tim penyelamat.
d. n.Y adalah koordinat Y tetangga dari tim penyelamat.
e. goal.X adalah koordinat X dari target.
f. goal.Y adalah koordinat Y dari target.
II.4. Pemrograman Berorientasi Objek
OOP (Object Oriented Programing) adalah sebuah pendekatan untuk
pengembangan suatu software, dimana dalam struktur software tersebut
didasarkan kepada interaksi objek dalam penyelesaian suatu proses atau tugas.
Interaksi tersebut mengambil form dari pesan-pesan dan mengirimkannya
kembali antar objek tersebut. Object akan merespon pesan tersebut menjadi
sebuah tindakan (action) atau metode.
Konsep OOP dimulai pada pertengahan 1960-an dengan bahasa program
SIMULA, kemudian dilanjutkan pada era 70-an dengan SMALLTALK.
Meskipun developer software tidak secara intensif mengembangkan OOP, tetapi
metodologi Object Oriented tetap digunakan.
Konsep dasar umum yang biasanya terdapat pada semua bahasa
pemrograman yang mendukung semua bahasa pemrograman yang mendukung
OOP [4]:
1. Objek
Objek merupakan segala sesuatu yang dapat dibedakan satu sama
lainnya. Segala sesuatu yang ada dialam semesta ini adalah objek.
Contohnya manusia, mobil, hewan, tumbuhan, tempat, atau bahkan
yang tidak bersifat fisik seperti kejadian atau konsep-konsep. Sehingga bisa
disimpulkan bahwa objek tidak harus bersifat fisik, karena jika dikaitkan
Dalam bahasa teoritis OOP, objek berfungsi untuk membungkus data
dan fungsi bersama menjadi satu unit dalam sebuah program komputer. Objek
merupakan dasar dari modularitas dan struktur dalam sebuah program
komputer yang berorientasi pada objek. Setiap objek memiliki dua ciri khas,
yaitu Atribut atau Properti (data merupakan cirri-ciri objek) dan Method atau
behavior.
2. Class
Definisi Class yaitu template untuk membuat objek. Class merupakan
prototipe atau blue print yang mendefinisikan variabel-variabel dan
method-method secara umum. Objek merupakan hasil dari instances dari suatu class.
Proses pembentukan objek dari suatu class disebut sebagai instances. Objek
disebut juga sebagai instances. Dalam bahasa OOP, class merupakan
kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu
tujuan tertentu.
3. Properti
Properti atau atribut adalah data yang membedakan antara objek satu
dengan yang lainnya. Atribut dibedakan menjadi dua jenis, yaitu Instance
Variable dan Class Variable.
Instance Variable adalah atribut untuk setiap objek dari class yang
sama. Setiap objek mempunyai dan menyimpan nilai atributnya sendiri. Jadi,
setiap objek dari class yang sama boleh mempunyai nilai yang sama atau
berbeda.
Class Variable adalah atribut untuk semua objek yang dibuat dari class
yang sama. Semua objek mempunyai nilai atribut yang sama. Jadi, semua
objek dari class yang sama mempunyai hanya satu nilai yang isinya sama.
4. Method
Behavior atau tingkah laku adalah hal-hal yang bisa dilakukan oleh
objek dari suatu class. Behavior dapat digunakan untuk mengubah nilai atribut
suatu objek, menerima informasi dari objek lain, dan mengirim informasi ke
objek lain untuk melakukan suatu tugas (task). Dalam class, behavior disebut
suatu class yang menghandle suatu task tertentu. Cara objek berkomunikasi
dengan objek yang lain dengan menggunakan method.
5. Encapsulation (Pembungkusan)
Salah satu cirri penting OOP adalah encapsulaption. Definisi
encapsulaption secara teoritis adalah pembungkusan variabel dan method
dalam sebuah objek yang terlindungi serta menyediakan interface untuk
mengakses variabel tersebut. Variabel dan method yang dimiliki oleh suatu
objek, bisa ditentukan hak aksesnya.
Dengan kata lain, enkapsulasi berfungsi untuk memastikan pengguna
sebuah objek tidak dapat mengganti keadaan dalam atau dari sebuah objek
dengan cara yang tidak layak hanya method 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.
6. Inheritance (Pewarisan)
Inheritance merupakan pewarisan atribut dan method dari sebuah class
ke class lainnya. Class yang mewarisi disebut superclass dan class yang
diwarisi disebut subclass. Subclass bisa berlaku sebagai superclass bagi class
lainnya, disebut sebagai multilevel inheritance.
Prinsip dasar inheritance yaitu persamaan-persamaan yang dimiliki
oleh beberapa class dapat digabungkan dalam sebuah class induk sehingga
setiap kelas diturunkannya memuat hal-hal yang spesifik untuk class yang
bersangkutan. Secara singkat bisa diartikan teknik yang menyatakan bahwa
anak dari objek akan mewarisi data atau atribut dan metode dari induknya
langsung.
7. Polimorfisme
Polimorfisem adalah kemampuan suatu objek untuk mempunyai lebih
dari satu bentuk. Polimorfisme tidak bergantung kepada pemanggilan subrutin.
Metode tertentu yang berhubungan dengan sebuah pengiriman pesan
Polimorfisme bisa juga diartikan sebagai aksi yang sama yang dapat
dilakukan terhadap beberapa objek. Polimorfisme berarti bahwa operasi yang
sama mungkin mempunyai perbedaan dalam class yang berbeda.
II.5. Unified Modeling Language (UML)
UML hanya berfungsi untuk melakukan pemodelan. Jadi penggunaan
UML tidak terbatas pada metodologi tertentu, meskipun pada kenyataanya UML
paling banyak digunakan pada metodologi berorientasi objek. Berikut merupakan
macam-macam diagram UML [8]:
1. Use Case Diagram
a. Menggambarkan bagaimana sistem digunakan
b. Mendeskripsikan apa yang sistem lakukan tanpa mendeskripsikan
bagaimana sistem menyelesaikannya.
c. Dibuat berdasarkan interaksi dan relasi dari individual use case.
d. Berisi aktor, event, dan use case.
e. Titik awal untuk pemodelan UML.
2. Use Case Scenario
Sebuah artikulasi verbal pengecualian terhadap perilaku utama yang
dijelaskan oleh kasus penggunaan utama. Use case skenario merupakan
hasil instansiasi dari setiap use case. Terbagi menjadi tiga bagian, yaitu:
a. Identifikasi dan inisiasi.
b. Step perfomed.
c. Kondisi, asumsi dan pertanyaan.
3. Activity Diagram
Menggambarkan berbagai alir aktivitas dalam sistem yang sedang
dirancang, bagaimana masing-masing alir berawal, decision yang mungkin
terjadi, dan bagaimana mereka berakhir.
4. Sequence Diagrams
Menggambarkan interaksi antar objek di dalam dan di sekitar sistem
digambarkan terhadap waktu. Sequence diagrams terdiri atas dimensi
vertical (waktu) dan dimensi horizontal (objek-objek yang terkait).
5. Class Diagram
Menggambarkan keadaan suatu sistem dengan menjelaskan keterhubungan
antara suatu class dengan class yang lain yang terdapat pada sistem.
II.6. Adobe Flash CS5
Flash merupakan program atau software yang ditujukan untuk membuat
animasi, desain, web, aplikasi, game, dan sebagaianya. Flash lebih dikenal
khalayak ramai sebagai software pembuat animasi. Seiring perkembangan zaman
yang semakin maju dan pesat dalam bidang teknologi khususnya dalam bidang
teknologi informasi, flash sampai sekarang telah mencapai versi 11 atau lebih
dikenal dengan Adobe Flash CS5 Profesional yang dirilis oleh perusahaan
software ternama di Amerika Serikat, yaitu Adobe System Incorporated.
Flash CS5 yang sekarang banyak dikenal dengan kemampuan yang andal
dalam membuat animasi-animasi, tetapi tidak jarang yang mengenal sisi lain dari
kelebihan Flash ini. Salah satunya adalah mempunyai bahasa pemrograman yang
sangat ampuh dalam segala hal, yaitu Action Script yang sekarang sudah dirilis
samapai ke versi 3.0 yang dimiliki oleh Flash CS3,CS4, dan CS5.
Adobe Flash CS5 menawarkan beberapa pembaruan yang komplet dengan
penawaran penggunaan lebih menyenangkan. Fasilitas seperti 3D Effect atau
transformations yang sangat menarik dapat digunakan untuk membuat efek-efek
animasi 3 dimensi yang menarik. Berbagai fasilitas dan fitur terbaru telah
disediakan untuk kemudahan dalam pengolahan para penggunanya. Adobe Flash
CS5 merupakan penyempurnaan dari versi sebelumnya (CS4) [5].
Beberapa komponen kerja program Adobe Flash CS5 telah ditampilkan
sebagai tampilan standart. Masih banyak lagi komponen yang masih tersembunyi
sehingga memerlupan perintah tertentu untuk menampilkannya. Berikut ini adalah
beberapa komponen kerja dari Adobe Flash CS5 [5]:
1. Toolbox.
Timeline berguna untuk menentukan durasi animasi, jumlah layer,
frame, menempatkan script dan beberapa keperluan animasi lainnya.
Semua bentuk animasi yang Anda buat akan diatur dan ditempatkan pada
layer dalam timeline.
3. Output.
4. Compiler errors.
5. Motion Editor
Motion editor berguna untuk melakukan control animasi yang telah
dibuat seperti : mengatur motion, transformasi, pewarnaan, filter dan
parameter animasi lainnya.
6. Stage
Stage adalah lembar kerja yang digunakan untuk membuat atau
mendesain objek yang akan dianimasikan. Objek yang dibuat dalam
lembar kerja dapat berupa objek vector, movie clip, text, button dan
lain-lain.
7. Properties, Library.
8. Color, Swatches.
27 III.1.Analisis Masalah
Analisis masalah pada pembangunan game penyelamatan korban banjir
yaitu sebagai berikut:
1. Bagaimana cara menyelamatkan korban yang terjebak oleh banjir?
2. Bagaimana mengimplementasikan algoritma Moving Target Search pada
game penyelamatan korban banjir?
3. Kurangnya pengetahuan dan keterampilan yang di miliki oleh masyarakat
dalam bidang penyelamatan korban banjir.
III.2.Analisis Game
Pada bagian ini menjelaskan tentang game yang akan dikembangkan.
Penjelasan terutama untuk bagian-bagian dalam game yang akan diterapkan
algoritma. Dalam game ini terdapat beberapa karakter. Adapun karakter beserta
perilakunya adalah sebagai berikut :
1. Tim Penyelamat
a. Jumlah Karakter Tim Penyelamat
Jumlah dari karakter tim penyelamat ada tiga orang.
b. Perilaku Karakter Tim Penyelamat
Perilaku dari karakter tim penyelamat yaitu dua orang bertugas untuk
mendayung perahu karet dan satu orang bertugas untuk mengatur arah
jalan yang akan ditempuh. Secara keseluruhan tim penyelamat
bertugas untuk mencari dan menyelamatkan korban yang ada di
tiap-tiap rumah mereka masing-masing kemudian membawa korban ke
2. Korban
a. Jumlah Karakter Korban
Jumlah korban yang terkena bencana banjir ada dua orang.
b. Perilaku Karakter Korban
Perilaku dari karakter koran yaitu hanya menunggu bantuan dari tim
penyelamat dan mencari tempat aman agar tidak terbawa arus air yang
deras.
III.3.Analisis Masukan
Pada bagian ini menjelaskan data masukan yang diperlukan algoritma
yang akan diperoleh dari dalam game. Terdapat dua variabel pada game ini.
Adapun variabel yang digunakan adalah :
a. Jarak
Jarak adalah angka yang menunjukkan seberapa jauh suatu benda
berubah posisi melalui suatu lintasan tertentu. Dalam game ini jarak yang
dihitung yaitu jarak Xawal dan Yawal dari tim penyelamat sampai
ketemu dengan Xakhir dan Yakhir dari kordinat tim penyelamat.
Masing-masing dari karakter tersebut mempunyai titik kordinat
tertentu, dimana korban mempunyai titik kordinat statik atau diam dan
tim sars mempunyai titik kordinat yang dinamis atau bergerak mencari
korban. Tim penyelamat akan mencapai goal jika titik kordinat Xawal =
Xakhir dan Yawal = Yakhir, artinya tim penyelamat akan berhasil
menemukan korban.
b. Jumlah Korban
Dalam game ini jumlah korban yang akan dicari oleh tim
penyelamat ada dua orang korban. Karakter dari korban yang pertama
berada di atas atap rumah menunggu datangnya tim penyelamat, dan
yang kedua terbawa hanyut oleh arus air. Korban yang terbawa hanyut
III.4. Analisis Metode / Algoritma
Algoritma Moving Target Search didefinisikan sebagai salah satu
algoritma pemecahan masalah yang berbasis pencarian terhadap target dan juga
memiliki jangkauan deteksi atau daerah dimana dapat mendeteksi target.
III.4.1. Penerapan Algoritma Moving Target Search
Penerapan Algortima Moving Target Search pada Game Penyelamatan
Korban Banjir secara ringkas langkah demi langkahnya adalah sebagai berikut :
Algoritma MovingTarget Search pada game Penyelamatan Korban Banjir
diterapkan pada Tim Penyelamat atau disebut juga NPC (Non Playable
Character) yaitu dimana algoritma tersebut tidak diterapkan pada pemain. Pada
algoritma ini menerapkan Tim Penyelamat sebagai pencarian target yang bergerak
untuk menyelamatkan target yaitu korban. Contoh penerapan Tim Penyelamat dan
korban pada algoritma Moving Target Search bisa dilihat pada gambar dibawah
ini.
1. Diawali dengan menempatkan tim penyelamat atau titik biru pada starting
point dengan koordinat X (5,1), kemudian memasukkan seluruh simpul yang
bertetangga dan tidak memilik atribut penghalang dengan tim penyelamat ke
dalam tujuan selanjutnya untuk bergerak.
Tetangga 1: koordinat X’ (4,1) Tetangga 2: koordinat X’ (4,2) Tetangga 3: koordinat X’ (5,2) Tetangga 4: koordinat X’ (6,2) Tetangga 5: koordinat X’ (6,1) Tetangga 6: koordinat X’ (6,0) Tetangga 7: koordinat X’ (5,0) Tetangga 8: koordinat X’ (4,0)
2. Menempatkan korban atau target pada starting point dengan koordinat Y
(1,5), dan koordinat korban yang sekarang akan menjadi node tujuan akhir.
Bila korban bergerak maka koordinat tujuan akhirnya akan berubah menjadi
koordinat Y’ yang akan dituju oleh korban.
3. Setelah menempatkan posisi awal dari masing-masing karakter, kemudian
mencari nilai F terkecil dari node-node tetangga tim penyelamat untuk tujuan
selanjutnya dengan menggunakan fungsi heuristic.
4. Jika korban dalam keadaan diam, maka hitung semua tetangga yang akan
dituju oleh tim penyelamat dengan menggunakan perhitungan 2.1.
5. Jika korban dalam keadaan bergerak, maka hitung semua tetangga yang akan
dituju oleh tim penyelamat dengan menggunakan perhitungan 2.2.
Misalkan :
a. Koordinat X’ = (4,1)
Nilai n.x = 4
F (x,y’) = H (x,y’) - 1
h_diagonal(n) = min(abs(n.x - goal.x) + abs(n.y – goal.y))
h_orthogonal(n) = (abs(n.x - goal.x) + abs(n.y – goal.y))
h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))
Nilai n.y = 1
node tujuan (1,5), sehingga goal.x = 1, goal.y = 5
h_diagonal(n) = min (abs(n.x - goal.x) + abs(n.y – goal.y))
= min (abs(4 – 1) + abs(1 – 5))
= min (abs(3) + (-4))
= -3 + -4
= -7
h_orthogonal(n) = (abs(n.x - goal.x) + abs(n.y – goal.y))
= (abs(4 – 1) + abs(1 – 5))
= ((3) + abs(-4))
= 3 + 4
= 7
h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))
= -7 + (7 – (2 * (-7)))
= -7 + (7 – (-14))
= -7 + 21
= 14
F(x,y’) = h(x,y’) – 1
= 14 – 1
= 13
b. Koordinat X’ = (4,2)
Nilai n.x = 4
Nilai n.y = 2
node tujuan (1,5), sehingga goal.x = 1, goal.y = 5
h_diagonal(n) = min (abs(n.x - goal.x) + abs(n.y – goal.y))
= min (abs(4 – 1) + abs(2 – 5))
= min (abs(3) + (-3))
= -3 + -3
= -7 + 21
= 14
F(x,y’) = h(x,y’) – 1
= 14 – 1
= 13
d. Koordinat X’ = (6,2)
Nilai n.x = 6
Nilai n.y = 2
node tujuan (1,5), sehingga goal.x = 1, goal.y = 5
h_diagonal(n) = min (abs(n.x - goal.x) + abs(n.y – goal.y))
= min (abs(6 – 1) + abs(2 – 5))
= min (abs(5) + (-3))
= -5 + -3
= -8
h_orthogonal(n) = (abs(n.x - goal.x) + abs(n.y – goal.y))
= (abs(6 – 1) + abs(2 – 5))
= ((5) + abs(-3))
= 5 + 3
= 8
h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))
= -8 + (8 – (2 * (-8)))
= -8 + (8 – (-16))
= -8 + 24
= 16
F(x,y’) = h(x,y’) – 1
= 16 – 1
= -9 + (9 – (-18))
= -9 + 27
= 18
F(x,y’) = h(x,y’) – 1
= 18 – 1
= 17
h. Koordinat X’ = (4,0)
Nilai n.x = 4
Nilai n.y = 0
node tujuan (1,5), sehingga goal.x = 1, goal.y = 5
h_diagonal(n) = min (abs(n.x - goal.x) + abs(n.y – goal.y))
= min (abs(4 – 1) + abs(0 – 5))
= min (abs(3) + (-5))
= -3 + -5
= -8
h_orthogonal(n) = (abs(n.x - goal.x) + abs(n.y – goal.y))
= (abs(4 – 1) + abs(0 – 5))
= ((3) + abs(-5))
= 3 + 5
= 8
h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))
= -8 + (8 – (2 * (-8)))
= -8 + (8 – (-16))
= -8 + 24
= 16
F(x,y’) = h(x,y’) – 1
= 16 – 1
Sebagaimana terlihat pada gambar diatas, node yang akan dijadikan sebagai
node tujuan selanjutnya adalah node yang memiliki nilai f paling kecil, dan
terpilihlah node dengan nilai f = 11 dari koordinat (4,2). Selanjutnya node
tetangga dari koordinat (4,2) akan dievaluasi dan dihitung seperti perhitungan
yang sebelumnya. Langkah pertama menghasilkan node-node di dalam tujuan
selanjutnya dijelaskan pada tabel 3.1.
Tabel 3.1. Perhitungan Langkah Pertama
Node-node Tetangga (4,1) (4,2) (5,2) (6,2) (6,1) (6,0) (5,0) (4,0)
Node Awal (5,1)
Node Selanjutnya (4,2)
Pada perhitungan selanjutnya, korban bergerak dan node tujuan akhir
pun berubah menjadi node tujuan korban yang akan dituju. Berikut adalah
langkah kedua yang berada pada node dengan koordinat (4,2) dapat dilihat
pada gambar 3.3.
Gambar 3.3. Hasil Perhitungan Kedua
Tabel 3.2 menunjukan penjelasan tentang pencarian jalur terpendek
untuk langkah kedua.
Tabel 3.2. Perhitungan Langkah Kedua
Node-node Tetangga (3,2) (3,3) (4,3) (5,3) (5,2) (4,1) (3,1)
Node Awal (4,2)
Node Selanjutnya (3,3)
Perhitungan pada langkah ketiga yang berada pada node dengan
koordinat (3,3) dapat dilihat pada gambar 3.4.
Tabel 3.3 menunjukan penjelasan tentang pencarian jalur terpendek
untuk langkah ketiga.
Tabel 3.3. Perhitungan Langkah Ketiga
Node-node Tetangga (2,3) (2,4) (3,4) (4,4) (4,3) (3,2) (2,2)
Node Awal (3,3)
Node Selanjutnya (3,4)
Perhitungan pada langkah keempat yang berada pada node dengan
koordinat (3,4) dapat dilihat pada gambar 3.5.
Tabel 3.4 menunjukan penjelasan tentang pencarian jalur terpendek
untuk langkah keempat.
Tabel 3.4. Perhitungan Langkah Keempat
Node-node Tetangga (2,4) (2,5) (3,5) (4,5) (4,4) (4,3) (2,3)
Node Awal (3,4)
Node Selanjutnya (4,5)
6. Kesimpulan
Berdasarkan hasil akhir dari perhitungan di atas, korban dapat
ditemukan dan diselamatkan. Ini membuktikan bahwa algoritma Moving
Target Search dapat diterapkan pada masalah pencarian target dan
pengambilan jalur terdekat atau tercepat agar dapat sampai ke tempat target.
III.5.Analisis Kebutuhan Non-Fungsional
Analisis non-fungsional merupakan analisis yang dibutuhkan untuk
menentukan spesifikasi kebutuhan sistem. Spesifikasi ini juga meliputi elemen
atau komponen-komponen apa saja yang dibutuhkan untuk sistem yang akan
dibangun sampai dengan sistem tersebut diimplementasikan. Pada analisis
kebutuhan sistem non-fungsioal ini dijelaskan analisis kebutuhan perangkat
lunak, analisis kebutuhan perangkat keras, dan analisis pengguna.
III.5.1. Analisis Kebutuhan Perangkat Lunak
Kebutuhan perangkat lunak yang dibutuhkan untuk mengembangkan game
Penyelamatan Korban Banjir yaitu:
a. Sistem Operasi Windows Xp dan Windows 7.
b. Adobe Flash CS 5.
III.5.2. Analisis Kebutuhan Perangkat Keras
Agar game penyelamatan korban banjir berjalan dengan baik, maka
diperlukan spesfikasi kebutuhan perangkat keras yang sesuai dengan game yang
akan dibangun. Spesifikasi minimum perangkat keras yang dibutuhkan yaitu:
1. Memori minimal 1 Gb.
2. VGA minimal 128 Mb.
3. Processor minimal 1 Ghz.
4. Hardisk minimal 40 Gb.
5. Keyboard : standar.
III.5.3. Analisis Penggguna
Analisis pengguna diperlukan untuk mengetahui spesifikasi pengguna
untuk dapat memainkan game penyelamatan korban banjir. Spesifikasinya bisa
dilihat pada tabel 3.5.
Tabel 3.5. Spesifikasi Pengguna
Karakter Fisik Pengguna
Umur 18 tahun keatas
Gender Laki-laki dan Perempuan
Disabilities Tidak buta dan tidak mempunyai cacat fisik
seperti cacat tangan
Pengetahuan dan Pengalaman Pengguna
Computer literacy Dapat menggunakan dan mengoperasikan
Komputer
Education 18 tahun keatas
III.6.Analisis Kebutuhan Fungsional
Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan
diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan
sistem agar sistem dapat berjalan dengan baik sesuai kebutuhan.
III.6.1. Use Case Diagram
Use Case Diagram merupakan pemodelan yang menunjukkan interaksi
antara sistem dan lingkungannya. Use Case Diagram memberikan gambaran
yang cukup sederhana dari interaksi sehingga harus memberikan lebih rinci untuk
memahami apa yang terlibat [8].
Berikut adalah perancangan proses-proses yang terdapat pada game
penyelamatan korban banjir, yang digambarkan dengan use case diagram yang
Gambar 3.6. Use Case Diagram Game Penyelamatan Korban Banjir
Use case terdiri dari tiga bagian yaitu definisi Actor, definisi use case, dan
skenario use case.
1. Definisi Actor
Actor yaitu pihak yang mengakses use case. Hanya ada satu actor yang
berperan yaitu player yang akan memainkan game.
2. Definisi Use Case
Use case berfungsi untuk mewakili apa yang sistem bisa lakukan.
Definisi use case bisa dilihat pada tabel 3.6.
Tabel 3.6. Definisi Use Case
No Use Case Deskripsi
1 Mulai Permainan Untuk memulai simulasi penyelamatan korban banjir:
1. Player menekan tombol Mulai
Permainan.
2. Simulasi permainan dimulai dengan menempatkan posisi awal dari tim penyelamat dan korban.
3. Tim penyelamat kemudian menghitung seluruh nilai tetangganya yang berjumlah 8 tetangga dari posisi awal yang telah
System
Mulai
Permainan
ditentukan.
4. Perhitungan tetangga menggunakan fungsi Heuristik. Dalam kasus game
simulasi ini fungsi Heuristik yamg digunakan yaitu Non-Manhattan Distance (8 arah).
5. Setelah fungsi Heuristik dihitung, selanjutnya menghitung nilai F dengan memasukan hasil perhitungan Heuristik. Nilai F digunakan untuk menentukan arah selanjutnya dari tim penyelamat, nilai F yang dipilih oleh tim penyelamat adalah nilai F terkecil dari tetangga-tetangga tim pemyelamat.
6. Tim Penyelamat mulai bergerak untuk mencari korban dengan perhitungan yang sudah dihitung.
7. Selama posisi tim penyelamat tidak sama dengan posisi korban, maka perhitungan Heuristik akan terus berulang sampai posisi tim penyelamat sama dengan posisi korban.
8. Jika korban sudah ditemukan, maka tim penyelamat memasukan korban ke dalam perahu karet.
9. Kemudian korban dibawa ke tempat yang aman.
2 Tentang Pembuat Menampilkan profil atau data diri.
3. Skenario Use Case
Skenario use case merupakan hasil instansiasi dari setiap use case. Berikut
adalah skenario jalannya masing-masing use case game penyelamatan korban
banjiryang telah didefinisikan sebelumnya:
Nama use case: Mulai Permainan