1 Proposal Tesis ALGORITMA GAME ENGINE BERBASIS FROZEN SPOTS DAN HOT SPOTS UNTUK MEMPERCEPAT PROSES PENGEMBANGAN GAME Oleh: Irvan Abraham Salihi P31.2008.00533 Proposal diajukan sebagai salah satu syarat Untuk memperoleh gelar Magister Komputer PROGRAM PASCASARJANA MAGISTER TEKNIK INFORMATIKA UNIVERSITAS DIAN NUSWANTORO SEMARANG 2009
50
Embed
Proposal Tesis ALGORITMA GAME ENGINE BERBASIS FROZEN SPOTS DAN HOT SPOTS UNTUK MEMPERCEPAT PROSES PENGEMBANGAN GAME Oleh
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Proposal Tesis
ALGORITMA GAME ENGINE BERBASIS FROZEN SPOTSDAN HOT SPOTS UNTUK MEMPERCEPAT PROSES
PENGEMBANGAN GAME
Oleh:
Irvan Abraham Salihi
P31.2008.00533
Proposal diajukan sebagai salah satu syarat
Untuk memperoleh gelar
Magister Komputer
PROGRAM PASCASARJANA
MAGISTER TEKNIK INFORMATIKA
UNIVERSITAS DIAN NUSWANTORO
SEMARANG
2009
2
UNIVERSITAS DIAN NUSWANTORO
PERSETUJUAN PROPOSAL TESIS
JUDUL TESIS : ALGORITMA GAME ENGINE BERBASIS FROZEN
SPOTS DAN HOT SPOTS UNTUK MEMPERCEPAT
PROSES PENGEMBANGAN GAME
PENYUSUN : IRVAN ABRAHAM SALIHI
NPM : P31.2008.00533
Berdasarkan deskripsi yang kami baca dan penjelasan dari mahasiswa yang
bersangkutan, topik tersebut dari segi kualitas dan kuantitas menurut pandangan
kami dapat digunakan sebagai mat eri penyusunan tesis Program Pasca Sarjana
Magister Komputer Teknik Informatika Universitas Dian Nuswantoro
Semarang, Januari 2010
Dr. Ir. Edi Noersasongko, M. Kom Romi Satria Wahono, M. Eng
Pembimbing Utama Pembimbing Pembantu
3
UNIVERSITAS DIAN NUSWANTORO
PERSETUJUAN PROPOSAL TESIS
JUDUL TESIS : ALGORITMA GAME ENGINE BERBASIS FROZEN
SPOTS DAN HOT SPOTS UNTUK MEMPERCEPAT
PROSES PENGEMBANGAN GAME
PENYUSUN : IRVAN ABRAHAM SALIHI
NPM : P31.2008.00533
Proposal ini telah disetujui untuk diseminarkan dihadapan komite seminar
Semarang, Januari 2010
Dr. Ir. Edi Noersasongko, M. Kom Romi Satria Wahono, M. Eng
Pembimbing Utama Pembimbing Pembantu
4
Abstraksi
Game adalah sebuah sistem formal tertutup yang merupakan sistem yang bersifat
subjektif dari sebuah kenyataan . Game dikatakan sebagai sebuah s istem formal
tertutup disebabkan tidak adanya aturan lain selain dari aturan yang telah dibuat pada
sebuah game tersebut dan aturan itu sendiri dibuat dari sebuah algoritma yang
disusun secara sistematis . Proses pembuatan algoritma game membutuhkan waktu
yang lama dan hal ini sangat berpengaruh pada percepatan proses pengembangan
game, oleh karena itu setiap pengembang sangat membutuhkan game engine dalam
pengembangan game. Game engine terdiri dari beberapa komponen yang saling
berhubungan satu dengan yang lainnya di antaranya: Graphic, Audio, Event, physics,
Artificial Intelligence (AI), events, memory/process, Networking, Scripting dan
Streaming. Dalam penelitian ini akan dibahas salah satu komponen dari game engine
tersebut yaitu scripting, di mana scripting itu sendiri di bentuk dari beberapa bentuk
algoritma dasar yang sangat penting dalam pembuatan game. Algoritma nantinya
akan dibuat menggunakan bahasa pemrograman java dan diatur ke dalam library
yang berisi class-class membentuk sebuah Application Programming Interfaces
(API) yang dinamakan algoritma game engine. Ini berfungsi sebagai framework
software dengan menggunakan konsep frozen spots dan hot spots.
Algoritma Game Engine diharapkan dapat membantu pengembang game dari segi
waktu pembuatan game sehingga proses pengembangan game tidak membutuhkan
waktu yang lama.
Kata kunci : Algoritma game engine, framework, frozen spots, hot spots
5
Kata Pengantar
Alhamdulillah Puji Syukur kehadirat Allah SWT , Proposal dengan judul
“ALGORITMA GAME ENGINE BERBASIS FROZEN SPOTS DAN HOT SPOTS
UNTUK MEMPERCEPAT PROSES PENGEMBANGAN GAME ” ini dapat
penulis selesaikan karena dukungan dari berbagai pihak yang tidak ternilai besarnya.
Oleh karena itu penulis menyampaikan terima kasih kepada:
1. Bapak Dr. Ir. Edi Noersasongko, M.Kom selaku Rektor Universitas Dian
Nuswantoro dan Pembimbing Utama Tesis penulis, yang telah memberikan
bimbingan dan arahan penelitian.
2. Bapak Dr. Abdul Syukur, M. Kom selaku Direktur Pasca Sarjana Universitas
Dian Nuswantoro, yang juga memberikan pengarahan dan arahan selama
penyusunan proposal
3. Bapak Romi Satria Wahono, M .Eng . selaku Pembimbing Tesis dan dosen, yang
telah memberikan pengetahuan dan membagi pengalaman di jalan legendanya
kepada penulis.
4. Bapak-bapak Dosen Pasca Sarjana Universitas Dian Nuswantoro yang telah
memberikan pengarahan selama penyusunan proposal
5. Seluruh keluarga yang memberikan dukungan kepada penulis se tiap saat.
6. Seluruh rekan kuliah Angkatan XIII atas dukungan dan sharing ilmunya hingga
terselesainya proposal tesis ini
7. Semua Pihak yang telah membantu penulis yang tidak dapat disebutkan satu
persatu
Kesempurnaan hanya milik Allah SWT, tentunya masih banyak kekurangan dalam
penyusunan proposal ini. Oleh sebab itu, kritik, saran, dan masukan yang
membangun sangat membantu penulis dalam penyusunan tesis nantinya.
Semoga proposal ini bermanfaat buat perkembangan ilmu khu susnya dalam bidang
teknologi game
Semarang, Januari 2010
Penulis
6
Daftar Isi
Halaman Judul ...........................................................................Error! Bookmark not defined.
Networking, Scripting (Algorithm) dan Streaming sebagaimana yang dijelaskan
pada gambar 1 di bawah ini:
11
Gambar 1 Game engine
Pada penelitian ini akan dibahas tentang pembuatan framework software untuk
algoritma game engine berbasis frozen spots dan host spots. Menurut H. Conrad
Cunningham, Yi Liu dan Pallavi Tadepalli menyatakan “ Frozen spots sifatnya
umum serta dapat digunakan oleh semua hots spots dengan menyesuaikan
spesifikasi yang dibutuhkan oleh setiap hots spots” (H. Conrad Cunningham,
2006). Langkah-langkah dalam membuat framework terdiri dari:
1) Membuat model aplikasi tetap
2) Analisa dan spesifikasi hot spots
3) Desain hot spots
4) Transformasi generalisasi
Dalam pendekatan schmid, model aplikasi tetap merupakan desain object
oriented dalam aplikasi tertentu. Saat model yang komplet telah ada, designer
framework menganalisa model dan domain untuk menemukan dan
menspesifikasikan hot spots. Fitur-fitur dari hot spots diakses melalui common
interface pada kelas abstrak. Bagaimanapun juga, desain hot spots subsystem
menyediakan kumpulan concrete sub kelas pada base class (kelas dasar) yang
digunakan untuk menyediakan variant behavior.
12
Desain yang akan dibuat dinamakan algoritma game engine sebagai framework
software dengan menggunakan konsep frozen spots dan hot spots. Algoritma
Game Engine diharapkan dapat membantu pengembang game dari segi waktu
pembuatan game sehingga proses pengembangan game tidak membutuhkan
waktu yang lama.
2. Perumusan Masalah
Dari latar belakang di atas maka rumusan masalah dalam mempercepat
perkembangan game adalah “ Pengembang game memerlukan waktu lama pada
proses pembuatan algoritma game” sehingga perlu membangun sebuah
framework software yang dinamakan algoritma game engine berbentuk
Application Programming Interface (API) yang berisi tentang algoritma-
algoritma yang dipakai dalam pembuatan game.
3. Tujuan Penelitian
Penelitian ini dibuat dengan tujuan membangun sebuah framework software
yaitu algoritma game engine berbasis konsep frozen spots dan hot spots agar
dapat mempercepat proses pengembangan game
4. Manfaat Penelitian
Adapun penelitian ini dapat memberikan manfaat antara lain sebagai berikut:
1. Manfaat praktisi dari hasil penelitian ini diharapkan agar pen gembang game
tidak lagi memerlukan waktu yang lama dalam proses pembuatan algoritma
game. Karena semua algoritma yang dibutuhkan sudah disediakan pada
algoritma game engine yang memiliki peran sebagai library.
2. Manfaat teoritis dari hasil penelitian ini diharapkan dapat memberikan
masukan terhadap pengembang teori algoritma game engine.
3. Manfaat kebijakan dari hasil penelitian ini dapat digunakan untuk
pengembangan game. Pengembang game yang ingin mengembangkan game
bisa menggunakan algoritma game engine sebagai alat bantu dalam proses
pembuatan game.
13
4. Sebagai acuan bagi peneliti se lanjutnya, khususnya yang memiliki keterkaitan
dengan pengembangan game dalam hal algoritma agar nant inya menambah
bentuk algoritma yang belum dibahas pada penelitian ini.
5. Landasan Teori
5.1. Game
Menurut Goknur Kaplan Akilli mendefinisikan game adalah “Sebuah aktivitas
kompetitif yang kreatif dan menyenangkan pada dasarnya, yang dibatasi oleh
aturan tertentu dan memerlukan keahlian tertentu ” (Akilli, 2007). Game terdiri
dari peraturan yang menjelaskan tentang pergerakan yang diijinkan, batasan, hak
dan hukuman untuk tindakan yang ilegal.
Miguel De Aguilera dan Alfonso Mendiz menjelaskan bahwa g ame juga dapat
menekankan pemain untuk melakukan segala bentuk kegiatan (Aguilera &
Mendiz, 2003):
1. Reading: Game juga dapat digunakan untuk mempromosikan membaca buku
sesuai dengan game yang sedang dimainkan, misalnya lord of the rings.
2. Logical Thinking: Game membantu dalam berfikir bagaimana mem cahkan
masalah dengan mengusulkan strategi, mengorganisir elemen dalam
mengantisipasi tujuan.
3. Observation: Pemain menggunakan kemampuan observasi dalam bermain
dengan mengamati perbedaan visual dan ruang serta jumlah elemen dalam
layar.
4. Spatially, Geography: Mengembangkan kemampuan pemain dalam
membaca peta dan mengenali bentuk ruang
Menurut wolf, game komputer dikelompokkan dalam berbagai genre atau jenis
permainannya (Wolf, 2000), antara lain :
1. Side Scrolling Game : Dalam game ini, pemain dapat menggerakkan
karakter kekanan, kiri, atas maupun bawah. Contoh game ini adalah Mario
bros.
14
2. Shooting Game : Pemain harus mencari dan menembak musuh untuk
mencapai tujuan tertentu. Game jenis ini dapat dibedakan menjadi 2
kategori, yaitu First Person Shooting , dan Third Person Shooting . Contoh
game yang masuk ke dalam jenis game ini diantaranya adalah counter
strike.
3. Role Playing Game (RPG) : Pada game ini pemain diminta untuk
memerankan suatu karakter dan mengemban misi khusus. Game ini
terhitung memiliki kompleksitas frame yang cukup tinggi. Sebagai contoh,
ketika bertemu dengan karakter lain, maka pemain akan dibawa ke tampilan
frame baru, dan pada saat itu kita akan mendapatkan sesuatu atau malah
melakukan pertarungan. Contoh game yang tergolong RPG diantaranya
adalah: Final Fantasy, Ragnarok, dan lain sebagainya.
4. Real Time Strategy (RTS) : Sebagian besar game yang masuk kategori ini
merupakan game peperangan. Pada game ini pemain dibebani misi tertentu
dan dibekali dengan pasukan seadanya (sebagai modal). Selanjutnya pemain
dapat menggerakkan, memperbanyak, dan melengkapi persenjataan
pasukan pasukan tersebut sambil merancang strategi untuk
mempertahankan dan menguasai.
5. Simulation : Merupakan game yang mensimulasikan suatu keadaa n
riil.Contohnya simulasi pengendalian pesawat terbang pada game Microsoft
Flight Simulator, kemudian simulasi kehidupan sehari -hari pada game The
SIMS, dan simulasi seorang manajer tim sepakbola pada game
Champhionship Manager.
6. Racing : Game racing merupakan suatu permainan balap otomotif. Contoh
game racing yang paling terkenal adalah: Need for Speed, Grand Tourismo,
Nascar Rumble, Top Gear, dan lain sebagainya.
7. Fighting : Yang masuk kategori game jenis ini adalah game-game fighting
atau tarung. Contoh yang sangat terkenal dari game fighting ini diantaranya
adalah: Street Fighter, Mortal Combat, Teken, dan lain sebagainya.
8. Educational Game : Merupakan suatu permainan yang secara khusus
didesain untuk mengajarkan tentang subjek -subjek tertentu, pendalaman
terhadap suatu konsep, pengenalan terhadap kejadian -kejadian bersejarah,
15
atau membantu mereka dalam mempelajari suatu keterampilan yang mereka
miliki.
5.2. Algoritma Game
Dalam penulisan program komputer, tujuan kita menerapkan algoritma
menjadi sebuah metode tidak lain untuk memecahkan masalah. Metode yang
digunakan sering bergantung kepada komputer tertentu yang akan digunakan,
kemungkinan sama-sama cocok untuk banyak komputer dan banyak ke
bahasa komputer. Algoritma jika kita dikaitkan dengan ilmu komputer
menurut robert sedgewick “menjelaskan sebuah metode pemecahan masalah
yang cocok untuk pelaksanaan program komputer” (Sedgewick, 2002).
Algoritma selalu melibatkan pengorganisasian data yang terlibat dalam
perhitungan, hal ini disebut juga dengan struktur data. Berbicara tentang
algoritma maka terkait juga dengan struktur data yang merupakan hasil dari
sebuah algoritma. Kerumitan struktur data bergantung pada algoritma yang
dibuat. Penggunaan komputer dalam memecahkan sebuah permasalahan
kemungkinan melahirkan berbagai bentuk hasil dengan pendekatan yang
beraneka ragam. Dan hal ini menjadi motivasi untuk merancang sebuah
metode agar dapat menyelesaikan sebuah permasalahan dalam waktu dan
ruang yang seefisien mungkin. Robert sedgewick menyatakan “Algoritma
yang efektif adalah yang mampu memecahkan masalah yang besar
bagaimanapun kondisinya” (Sedgewick, 2002).
5.2.1 Bilangan Acak (Random Number)
Algoritma random number merupakan sala satu permasalahan yang paling
sulit dalam ilmu komputer. Kesulitan di antaranya memahami kata ‘acak’
karena tidak ada satu angka atau bilangan yang bisa menjadi acak tanpa
melalui proses aritmatika. Dengan demikian, Park dan Miller menyatakan
bahwa “Algoritma random number yaitu proses mensimulasikan nilai yang
serampangan dengan nilai tak terbatas yang di distribusikan pada suatu
interval” (Jouni Smed, 2006). Perkembangan teori tentang algoritma acak
16
sekarang ini sudah berkembang luas secara sederhana dan cepat. Ciri khas
dari algoritma ini adanya variasi nilai output yang di dasarkan atas nilai input
dengan proses pengulangan sebuah alg oritma. Robert Sedgewick menyatakan
“Setiap nilai yang dihasilkan memiliki kemungkinan untuk ditampilkan tetapi
setelah didefinisikan dengan konsep matematika ”(Robert Sedgewick, 1983).
Untuk membuktikan hal tersebut maka kita memerlukan batasan atau interval
nilai yang akan kita tampilkan. Misalnya sebuah data memiliki interval nilai
antara 1 sampai dengan 100 kemudian akan ditampilkan nilai dari interval
tersebut yang dipanggil secara acak maka besar kemungkinan peluang
munculnya nilai lebih dari satu kali akan terjadi , begitupun sebaliknya nilai
tertentu tidak akan muncul dalam beberapa kali . Jouni smed menyatakan
“Metode Algoritma random number telah banyak digunakan dalam berbagai
simulasi melibatkan beberapa program dari aspek yang di ambil dari dunia
nyata” (Jouni Smed, 2006). Metode ini di terapkan pada aplikasi yang luas
dan sangat besar dalam jumlah data, seperti halnya jejak pendapat politik
secara nasional akan tetapi tidak semua data pada masalah tersebut di ambil,
tetapi di ambil berdasarkan sampel acak. Dalam hal ini Robert sedgewick
juga mengatakan “Algoritma random number termasuk metode yang efisien
untuk digunakan dalam sebuah algoritma untuk membantu dalam
pengambilan keputusan”(Robert Sedgewick, 1983). Beberapa metode yang
digunakan dalam bilangan acak menurut jouni smed (Jouni Smed, 2006)
yaitu:
1) Linier congruential method for generating random numbers
2) Las vegas method for generating random numbers from an interval
3) Generating random number using weight
4) Generating all permutations
5) Random shuffle
6) Method for generating stars and planets
7) Generating simple random terrain
8) Generating limited random terrain
9) Generating particle deposition terrain
17
10) Generating fault line terrain
11) Generating circle hill terrain
12) Generating midpoint displacement terrain
Linier Congruential Method
Pada tahun 1950, D.H. Lehmer mengusulkan penggunaan algoritma untuk
membangkitkan bilangan acak yang dikenal dengan metode linier
congruential (Jouni Smed, 2006). Algoritma ini sederhana sehingga dalam
pelaksanaannya hanya menggunak an 4 (empat) parameter integer tertentu
yaitu modulus, multiplier, increment dan starting value, di mana :: :: :1) Modulus (m)
Penggunaan nomor acak terbatas oleh karena itu dilakukan proses
perulangan. Nilai modulus (m) adalah yang paling utama
direkomendasikan dan harus memiliki nilai terbesar . Pengurangan nilai
modulus dilakukan dengan cara 2 ∏ 2 12) Multiplier (a)
Periode maksimum nilai 1: 1 . Dari ketentuan
tersebut dihasilkan angka acak 0, 1, 2, 3, ... , m - 1, 0, 1, 2. Dalam
multiplier jika nilai m adalah nilai utama, maka untuk menghasilkan
seluruh periode digunakan a=1, tapi jika nilai m di bagi, maka ada
kebebasan untuk menentukan nilai a. Jadi untuk nilai a di atur dengan
ketentuan 0.01 0.993) Increment (c)
Dalam menentukan nilai c maka tidak ada unsur keadaan yang
berpengaruh terhadap nilai m. kita bisa menentukan nilai c=1 dan c=a.
18
Jika nilai c =0 kita bisa menambahkan operasi penjumlahan untuk dapat
menghapus percepatan proses dan pengurangan panjang periode.
4) Starting value
Menentukan dari mana nilai akan di ambil untuk menampilkan
bilangan acak dengan melakukan inisialisasi dari beberapa sumber seperti
halnya nilai tetap dari waktu komputer dan nilai akhir dari hasil ketika di
jalankan. Selain itu menggunakan beberapa nilai yang sama untuk
perulangan secara bertahap.
Beberapa bentuk parameter di atas, kita dapat mengurutkan proses pengerjaan
dari Algoritma random number dengan linier congruential Method adalah
sebagai berikut: di manaMenurut Eric Weisstein bahwa “Metode persamaan linier ini untuk
menghasilkan acak (pseudorandom) di mana nilai a dan c harus
mengasumsikan nilai tetap tertentu, m merupakan nilai modulus, dan
adalah nomor awal yang dikenal dengan benih ” (Weisstein, 2009). Dalam hal
ini, bilangan acak ke n dari deretnyabilangan acak sebelumnyafaktor penggalic incrementm modulusa, c, dan m semuanya konstantaAlgoritma 1 menguraikan dua implementasi varian dari metode persamaan
linier. Cara pertama digunakan bila a(m - 1) tidak melebihi bilangan bulat
terbesar, contoh jika m adalah bilangan integer yang pertama, maka a(m -1)
harus mengevaluasi bilangan integer yang kedua. Bilangan yang kedua dapat
diterapkan bila ⁄ . Hal ini dapat mempercepat proses
modulus dalam bentuk untuk menjamin evaluasi dalam interval
19
, . Karena komputer memiliki keakuratan angka yang terbatas, nilai
m biasanya di batasi sesuai nilai maksimum dari komputer. Jika kita ingin
membangkitkan bilangan acak di mana nilai di distribusikan di antara nilai
0 dan 1, kita dapat menggunakan bagian yang sangat kecil ⁄sebagai pengganti dan pemanggil secara rutin unit random. Apa akibatnya
jika kita ingin bilangan integer acak dengan menentukan jarak panjang0 ? solusinya adalah kita menggunakan pendekatan
monte carlo dan memberikan nilai atau jalan lainnya
memberikan nilai . Akan tetapi, masalah dengan menggunakan
metode ini tidak menjamin keseragaman sebagaimana dijelaskan dalam
gambar 1 berikut ini:
Gambar 2 Metode Monte Carlo
Akan tetapi metode monte carlo mengurangi kurang lebih permasalahan pada
saat proses berjalan. Dalam masalah ini, kita dapat menambah jarak bilangan
asli secara acak, sebagai contoh membangkitkan beberapa bilangan acak dan
menggabungkannya, yang mana akan membuat pembagian secara seragam
tapi membutuhkan perhitungan. Pendekatan metode las vegas menjamin
ketepatan dan memberikan permasalahan sederhana, pembagian seragam,
menyelesaikan permasalahan. Pembagian jarak dalam metode ini sebagai
berikut:
0, 1 , , 1 1 , 1 ,
0 1 2 3 4 5 6 7 8 9
0 1 2 3
m=10
w=4
20
Nilai i diberikan nilai dengan jarak 0 1 . Pada jarak terakhir
terjadi kelebihan dan pertimbangan yang tidak berlaku sesuai dengan gambar
2 berikut ini:
Gambar 3 Metode Las Vegas
Algoritma 1 Linier Congruential Method
Out: random integer r (0 ≤ r ≤ m − 1)
Constant: modulus m; multiplier a; increment c; starting value (1 ≤ m ∧ 0≤ a, c, ≤ m − 1 ∧ a ≤ /(m − 1), where is the largest possibleinteger value)
Local: previously generated random number x (initially x = )
1: r ← (a · x) mod m
2: r ← Modulo-Sum(r, c, m)
3: x ← r
4: return r
Out: random integer r (0 ≤ r ≤ m − 1)
Constant: modulus m; multiplier a; increment c; starting value ) (1 ≤ m ∧0 ≤ a, c, ) ≤ m − 1 ∧ (m mod a) ≤ ⁄ )
Local: previously generated random number x (initially x = )
1: q ← m div a
2: p ← m mod a
3: r ← a · (x mod q) − p · (x div q)
4: if r < 0 then
0 1 2 3 4 5 6 7 8 9
0 1 2 3
m=10
w=4
Excess
21
5: r ← r + m
6: end if
7: r ← Modulo-Sum(r, c, m)
8: x ← r
9: return r
Modulo-Sum(x,y,m)
In: addends x and y; modulo m (0 ≤ x, y ≤ m − 1)
Out: value (x + y) mod m without intermediate overflows in [0, m − 1]
1: if x ≤ m − 1 − y then
2: return x + y
3: else
4: return x − (m − y)
5: end if
5.2.2 Pertandingan (Tournament)
Algoritma Tournament menurut jouni smed, harri hakonen ditemukan oleh
tujuh bersaudara dari Jukola dengan “Sebuah metode permainan terbaik dari
Kyykka. Mereka menemukan beberapa bentuk/seri algoritma tournament
yang masing-masing mempunyai peraturan sendiri-sendiri “( lihat gambar 3,
4 , 5) (Jouni Smed, 2006).
Gambar 4 Pertandingan Angka (Scoring Tournament)
M6 M11 M15 M18 M20
M1 M7 M12 M16 M19
M2 M8 M13 M17
M3 M9 M14
M4 M10
M5
Juhani
Thomas
Thomas
Aapo
Aapo
Simeoni
Simeoni
Timo
Timo
Lauri
Lauri
Eero
M0
22
Dalam aturan pertandingan in i di jelaskan sebagai berikut:
a. Untuk pertandingan angka (Scoring Tournament) setiap orang memiliki
kesempatan untuk bertemu kembali dengan siapa saja, total pertemuan
dalam pertandingan tersebut jika kita hitung sebanyak 21 kali
pertandingan.
b. Dalam menentukan peringkat dalam pertandingan angka aturannya
relative, di mana setiap yang menang dalam pertandingan di beri nilai 2
poin , yang kalah 0 poin dan jika seri masing-masing mendapatkan 1
poin. Dan diakhir pertandingan siapa yang mengumpulkan angka lebih
banyak, maka dia pemenangnya.
Gambar 5 Pertandingan Penyisihan (Elimination Tournament)
Untuk pertandingan penyisihan ( elimination tournament) dibagi dalam
beberapa kelompok , masing-masing dalam kelompok bertanding, yang
menang akan bertemu dengan pemenang pada kelompok lainnya untuk babak
penyisihan berikutnya. Pemain yang kalah dalam pertandingan kelompok
tidak bisa melanjutkan pertandingan berikutnya, yang menjadi pemenang
adalah dia yang memenangkan setiap babak penyisihan
Juhani
Thomas
Aapo
Simeoni
Timo
Lauri
Eero
M0
M1
M2
M4
M3
M5
23
Gambar 6 Pertandingan peringkat (Rank adjustment Tournament )
Pertandingan memanjat (hill-climbing tournament) atau dikenal dengan
pertandingan penyesuaian peringkat maka di bagi dalam beberapa seri,
pemenang setiap seri akan berusaha memenangkan setiap seri untuk menjadi
pemenang di akhir seri sebanyak 6 kali pertandingan. Jika pemenang pada
seri sebelumnya kalah maka yang melanjutkan adalah pemenang baru untuk
seri selanjutnya.
Dalam merencanakan dan mengorganisir sebuah pertandingan dalam dunia
nyata meliputi ketidakleluasaan perhatian terhadap kerugian, buku tempat
peristiwa, tempat pertandingan, manajemen resiko, dan sumber daya yang
terbatas lainnya. Untuk itu dalam pengaturan pertandingan kita akan fokus
dalam pengaturan jadwal atau waktu untuk mempertemukan dua pemain ,
menurut jouni smed dalam pertandingan (tournament) kita membagi dalam 3
(tiga) kategori yaitu rank adjustment tournament , elimination tournament dan
scoring tournament (Jouni Smed, 2006). Beberapa bentuk algoritma yang
digunakan pada tournament sebagai berikut:
1) Constucting initial ranking in rank adjustment tournament
2) Match in ladder tournament
3) Hill-climbing tournament
4) Match in a pyramid tournament
5) King of the hill tournament
6) Random selection tournament
M0
M1
M2
M3
M4
M5
Juhani
Thomas
Aapo
Simeoni
Timo
Lauri
Eero
24
7) Random pairing tournament
8) Standard seeding for an elimination bracket
9) Ordered standard seeding for an elimination bracket
10) Equitable seeding for an elimination bracket
11) Single elimination tournament
12) Straightforward pairings for a round robin tournament
13) Normalized pairings for a round robin tournament
14) Round robin tournament inc luding a scoring for the match result
15) Maximum value in parallel
Pertandingan Penyesuaian Peringkat (Rank adjustment tournament )
Dalam pertandingan penyesuaian peringkat kita memiliki 0,1,….. 2⁄pemain dalam waktu yang sama. Hal yang tidak mungkin untuk memasukan
dan menghapus pemain dalam pertandingan tanpa berdasarkan peringkat.
untuk itu pertama kali memberikan inisialisasi peringkat pemain dengan
simbol P dengan menggunakan struktur S sesuai dengan algoritma 2.
Peringkat dalam struktur S memiliki ukur an di mana | |, maka kita akan
menemukan perbedaan peringkat yang terdiri dari 0, 1, .. m-1. Nilai
menunjukkan berapa banyak pemain memiliki peringkat yang sama dalam
pertandingan. Dengan kata lain, yang pantas mendapat peringkat yaitu hasil| |.Algoritma 2 Rank Adjustment Tournament
In: set P of n unranked players in the tournament; sequence S of m non -
negative integers in which Si de fines the number of players that have the
same rank i ∑Out: set R of ranked players having the ranking structure S
Local: match sequences M and M’of players
1: R ← copy P
25
2: M ← enumeration(R)
3: for i ← 0 ... ( − 1) do
4: rank( ) ← 0
5: end for
6: c ←
7: for r ← 1 ... (m − 1) do
8: W ← rankeds(R, r − 1)
9: M ← enumeration(W)
10: for i ← 0 ... ( − 1) do
11: rank( + i ) ← r
12: j ← i mod | |13: if rank then
14: R ← Ladder-Match(R, , +i )
15: end if
16: end for
17: c ← c +
18: end for
19: return R
5.2.3 Permainan Turunan (Game Tree)
Permainan jenis ini menurut jouni smed merupakan “Permainan yang
memungkinkan para pemain dapat melihat segala bentuk kemungkinan,
dengan kata lain tidak ada informasi yang tersembunyi ” (Jouni Smed, 2006).
Pemain dapat merancang strategi untuk menentukan gerakan selanjutnya,
contoh permainan yang menggunakan algoritma game tree adalah catur.
Algoritma game tree berisi dua tipe tanda yakni tanda MAX dan tanda MIN,
di mana pemain pertama di sebut dengan MAX dan pemain kedua disebut
MIN. Pemain pertama dan kedua saling mengandalkan satu sama lain untuk
memberikan perubahan situasi dalam permainan. Pada gambar 7 kita bisa
melihat upaya pemain untuk menjadikan simbol X dan 0 menjadi simetris
26
agar bisa menjadi pemenang. Setiap lapisan pada gambar tersebut
menunjukkan langkah ataupun tindakan yang diambil setiap pemain.
Gambar 7 Game Tree pergerakan tanda nol dan tanda silang
Jouni smed menyatakan “Tanda max dan min digambarkan dengan
simbol dan ∆ . Dalam operator logika, maka max dan min di gambarkan
dengan simbol dan ” (Jouni Smed, 2006). Permainan ini mengandung
unsur nilai acak untuk menentukan berbagai bentuk siasat yang akan
digunakan. Pada awalnya kita mendefinikan simbol pada permainan ini,
kemudian menemukan strategi kemenangan untuk MAX atau MIN dari simbol
. Algoritma game tree menggunakan sala satu metode yang disebut dengan
metode minimax sebagaimana diuraikan pada algoritma 3. Metode ini
menggunakan simbol yang menggambarkan awal permainan, peluang max
dan peluang min dalam sebuah permainan. Permainan ini memberikan nilai
dari sebuah peluang kemenangan setiap pergerakan untuk MAX +1 dan untuk
MIN -1, di mana MAX berusaha memaksimalkan peluang untuk
memenangkan sebuah permainan dan sementara MIN berusaha sebaliknya
meminimalkan kemungkinan MAX menuju kemenangan (memaksimalkan
peluang MIN untuk meraih kemenangan) . Nilai minimax untuk simbol
didefinisikan sebagai berikut:
minmax
0 X
XX X
X X X X X0 00 0
0X X
00
X X X X0 0
0 0
27
Pada definisi tersebut dijelaskan di mana .
Jouni smed membagi game tree dalam beberapa bentuk algoritma yang
uraikan sebagai berikut:
1) Minimax
2) Negamax
3) Aplha-beta pruning using minimax
4) Alpha-beta pruning using negamax
5) Principal variation search using negamax
6) Expectiminimax using alpha-beta pruning and fail-soft enhancement
Algoritma 3 Minimax
in: node v
out: utility value of node v
1: if children(v)= ∅ then
2: return value(v)
3: else if label(v)= min then
4: e ←+∞
5: for all u ∈ children(v) do
6: e ← min{e, Minimax(u)}
7: end for
8: return e
9: else
10: e ←−∞
11: for all u ∈ children(v) do
12: e ← max{e, Minimax(u)}
13: end for
28
14: return e
15: end if
5.2.4 Pencarian Jalan (Path finding)
Algoritma Path finding menurut jouni smed merupakan “Metode yang
digunakan dalam mencari jalan menuju tujuan yang diinginkan dari titik awal
di mulainya perjalanan dengan mempertimbangan jalur yang terpendek yang
baik untuk dilalui” (Jouni Smed, 2006). Untuk mencapai tujuan berbagai
macam masalah yang ditemukan seperti jalan yang diblokir atau ada
hambatan sebuah objek dan sebagainya, sehingga terjadi umpan balik kepada
pemain untuk mencari jalan lain untuk mencapai tujuan tanpa mengabaikan
aturan awal yaitu mencari jalur terpendek. Metode ini diuraikan pada gambar
8, di mana perjalanan di mulai dari titik s hingga berakhir pada tujuan akhir r
dengan ketergantungan dari sebuah perjalanan terletak pada jarak, lokasi dan
cara yang digunakan.
Gambar 8 Vektor dan sambungan dari awal menuju tujuan akhir perjalanan
Jouni smed mengutarakan dalam dunia game memberikan indikasi tentang
“Proses discretization yang seharusnya terus dilakukan pada jenis game yang
menggunakan algoritma path finding” (Jouni Smed, 2006). Pemilihan jalur
berhubungan bentuk geometri pada game tersebut dan dikaitkan dengan jarak
atau bentuk pola lingkungan. Penentuan arah meskipun dapat dilakukan
secara manual pada tingkat desain, tapi dalam prosesnya dilakukan secara
29
otomatis. Pendekatan pada teknik penentukan arah di bagi menjadi dua yakni
menggunakan kotak atau menggunakan navigasi yang disesuaikan dengan
geometri yang ada sebagaimana yang dijelaskan pada gambar 9 , 10.
Gambar 9 Geometri game berbentuk kotak
Gambar 10 Geometri game berbentuk navigasi
Dalam memilih bentuk jaringan dalam sebuah game memerlukan
pertimbangan, karena hal tersebut yang menentukan bentuk sambungan
lokasi satu dengan lainnya atau arah jalur yang akan ditempuh untuk
mencapai tujuan. “Penggunaan jaringan yang digunakan untuk jalur
pencarian harus bisa di akses secara konstan dan penyimpanan jaringan pada
sebuah game” menurut van de sterren memerlukan memori (Jouni Smed,
2006). Bentuk-bentuk jaringan di bagi menjadi 3 (tiga) yai tu segitiga sama
sisi (triangles grid), bujur sangkar(squares grid) dan segi enam(hexagonal
grid).
30
Gambar 11 Triangles grid, squares grid dan hexagonal grid
Jouni smed menyatakan bahwa proses pencarian jalur pada geometri
berbentuk kotak harus terlebih dahulu memutuskan apakah kita hanya
mempertimbangkan ubin berdekatan dengan tepian kotak atau kotak yang
berbagi dengan titik sudut kotak (Jouni Smed, 2006). Gambar 12
mengilustrasikan situasi di kotak persegi: dalam kasus yang pertama kami
memiliki empat konektivitas, dan berikutnya memiliki delapan konektivitas
yang bergerak diagonal lebih panjang daripad a yang vertikal atau horizontal.
Untuk jaringan heksagonal memungkinkan hanya enam konektivitas dan
semuanya jaringan menempatkan pusat kotak sebagai titik arah jalur. Akan
tetapi untuk geometri berbentuk navigasi jouni smed menyampaikan “Sebuah
navigasi mesh adalah partisi cembung dunia game, di mana semua poligon
berdekatan berbagi hanya dua poin dan satu sisi, dan tidak ada tumpang
tindih poligon satu dengan poligon lain ” (Jouni Smed, 2006). Kecembungan
menjamin bahwa kita dapat bergerak dalam garis lurus di dalam polygon
(misalnya dari posisi saat ini ke titik a rah pertama, dan dari akhir ke titik arah
tujuan) dan dari satu poligon ke polygon yang lain
31
Gambar 12 Geometri berbentuk kotak (a) empat konektivitas (b) delapankonektivitas
Pencarian dengan menggunakan jalur terpendek dalam grafik ditentukan
dengan banyaknya jumlah simpul yang ada. Di mana | | dinyatakan sebagai
simpul awal dan | | jumlah simpul tepi. Untuk rinciannya diuraikan oleh
Cormen et al pada tahun 2001 (Jouni Smed, 2006) sebagai berikut:
1. Breadth-first search merupakan teknik pencarian yang di mulai dari titik
simpul k kemudian melanjutkan pencarian ke simpul lainnya dengan
ketentuan jarak k+1. Waktu pencarian didefinisikan dengan nilai O
(| | | | , di mana V adalah puncak s impul dan E adalah simpul
pinggiran.
2. Depth-first search merupakan teknik pencarian dengan cara memperluas
proses pencarian ke simpul yang belum ditemukan, sampai tujuan simpul
ditemukan. Waktu pencarian didefinisikan dengan Θ | | | | .
3. Dijkstra’s algorithm adalah pencarian jalur terpendek dari simpul awal ke
semua simpul dengan beban non -negatif. Implementasinya menghasilkan
waktu dengan | | , di mana | | log| | | | .
Dalam pathfinding terdapat beberapa bentuk algoritma di antaranya:
1) Hertel-Mehlhorn method for convex partition
2) Algorithm A*
32
Algoritma A*
Algoritma 4 menggambarkan sebuah implementasi pencarian jalur terpendek
dari sebuah Algoritma A *. Untuk lebih jelasnya di uraikan pada g ambar 13
di mana algoritma A* bekerja, dalam gambar tersebut di jalaskan titik awal
dimulai dari titip simpul s di akhiri pada simpul r sebagai tujuan akhir. Dari
titik s tersebut pencarian dilanjutkan pada titik a dan b, penentuan jarak
ditentukan dari nilai vertical dan horizontal ke arah simpul yang menjadi
tujuan selanjutnya. Terdapat 4 jalur terakhir menuju ke simpul r di antaranya
jalur 1 (a, c, f, r=14), jalur 2(b, c, f, r=14) , jalur 3(b, d, g, r=12) dan jalur 4(b,
e, d, g, r=14), maka di dapat jalur terpendek menuju simpul r adalah jalur 3
(b, d, g, r=12).
Gambar 13 Pencarian Jalur terpendek dengan Algoritma A*
33
Algoritma 4 A*
in: graph G = (V,E); start vertex s; goal vertex r
out: mapping π : V → V
local: open list S; cost function g(u v); heuristic lower bound estimate h(uv)
1: for all v ∈ V doInitialization.
2: g(s v) ←∞
3: π(v) ← nil
4: end for
5: g(s s) ← 0
6: S ←{s}
7: precalculate h(s r)
8:while S= ∅ doSearch.
9: v ← vertex , ∈ S that minimizes g(s v) + h(v r)
10: if v = r thenIs the goal reached?
11: return π
12: end if
13: S ← S \{v}
14: for all u ∈ successors(v) do
15: if π(u) = nil or else (u ∈ S and g(s v) + weight(v,u) <g(s u)) thenOpen u.
16: S ← S ∪ {u}
17: g(s u) ← g(s v) + weight(v,u)
18: π(u) ← v
19: precalculate h(u r)
20: end if
21: end for
34
22: end while
23: error no path from s to r exists
5.2.5 Pengambilan Keputusan (Decision making)
Adanya aksi dan interaksi dalam game antar setiap pemain membuat
pengambilan keputusan sangat penting dilakukan. Dalam hal ini Jouni smed
menyatakan “Hampir semua metode algoritma dapat digunakan dalam
pengambilan keputusan, tetapi karena adanya perbedaan setiap metode
tersebut membuat kita memahami yang mana metode yang terbaik dalam
kondisi tersebut” (Jouni Smed, 2006).
Kaukoranta menyatakan bahwa Artificial Intellegence (AI) dalam sistem
permainan komputer terdiri dari dua bagian yaitu “Pola pengakuan dan
sistem pengambilan keputusan” (Jouni Smed, 2006).
Gambar 14 menggambarkan pola dunia nyata atau simulasi yang terdiri dari
peristiwa dan fenomena yang dijelaskan dalam pengenalan pola. Informasi
yang dihasilkan saat ini (dan mungkin sebelumnya) dalam fenomena ini
kemudian diteruskan ke sistem pengambilan keputusan. Segala bentuk
kejadian di dunia nyata memungkinkan serangkaian tindakan yang mungkin ,
dan sistem pengambilan keputusan yang memilih untuk melaksanakan.
Gambar 14 Jalur pengambilan keputusan
35
Pada algoritma decision making jouni smed membaginya dalam beberapa
bentuk algoritma di antaranya sebagai berikut:
1) Flocking
2) Steering behavior rules
3) Decision-making for a wumpus hunter using influence maps
Flocking
Flocking menurut jouni smed digambarkan dengan “Perilaku yang
berkelompok, bereaksi untuk melakukan suatu perubahan gerakan di daerah
sekitarnya seperti halnya sekolompok burung, ikan, hewan ternak seperti
domba” (Jouni Smed, 2006) . Algoritma flocking diperkenalkan oleh CW
Reynolds pada tahun 1987 yang merupakan hasil dari pengamatan segala
bentuk perilaku berkelompok dari hewan tersebut dan hal itu dibagi dalam 4
kategori perilaku sebagaimana yang dijelaskan pada gambar 15.
1. Separation merupakan tindakan pemeliharaan jarak, untuk menghindari
benturan antar boid.
2. Aligment merupakan gerakan kearah yang sama di antara boid serta
mencocokkan kecepatan tiap boid.
3. Cohesian merupakan gerakan ke posisi rata -rata flockmates lokal, dan
setiap boid harus tetap dekat dengan flockmates terdekat.
4. Avoidance merupakan gerakan menghindar dari rintangan atau musuh dan
setiap boid harus menghindar dari bahaya yang terjadi.
Dalam hal ini jouni smed menyatakan “Setiap gerakan pemisahan didasarkan
atas flockmates yang mengabaikan kecepatan setiap boid sebaliknya
keterpaduan didasarkan atas flockmates yang mengabaikan posisi setiap boid
yang ada” (Jouni Smed, 2006)
36
Gambar 15 Aturan perilaku
Algoritma 5 menjelaskan tentang flocking dan ke empat aturan perilaku yang
dijelaskan di atas dijelaskan pada algoritma 6 dengan menggunakan fungsi
sebagai berikut:
1: 02: / | |Mengembalikan fungsi vektor ke arah , atau satuan vektor menunjuk arah
acak jika v adalah vektor nolAlgoritma 5 Flocking
1: F ← copy B
2: R ← ∅3: while F ∅ doUpdate each boid once.
4: f ← a boid from F
5: F ← F \ f
37
6: V ← visible(F ∪ R,f )
7: ← 08: if V = ∅ or leader(B) = f then
9: realize an individual movement
10: elseThere are visible flockmates.
11: ← + ws · Separation(V,f )
12: ← + wa· Alignment(V,f )
13: ← + wc· Cohesion(V,f )
14: end if
15: ← + wv· Avoidance(visible(A, f ), f )
16: b ← copy fThe boid is updated.
17: velocity(b) ← velocity(b)+
18: if |velocity(b)| > thenIs velocity too high?
19: velocity(b) ← · Unit-Vector(velocity(b))
20: end if
21: position(b) ← position(b)+ velocity(b)
22: R ← R ∪ {b}
23: end while
24: return R
38
Algoritma 6 Steering behavior rules
Separation(M,f )
in: set M of flockmates; boid f
out: normalized correction vector
constant: ideal flockmate separation distance ds
1: m ← the flockmate in M nearest to f
2: ← position(m) − position(f )
3: r ← 1 − 2 · ds /(| |+ ds )
lim| |→0 r =−1, lim| |→∞ r = 1,
and r = 0if | |= ds .
4: return r · Unit-Vector( )
Alignment(M,f )
in: set M of flockmates; boid f
out: unit vector of the heading of the nearest flockmate
1: m ← the flockmate in M nearest to f
2: return Unit-Vector(velocity(m))
Cohesion(M,f )
in: set M of flockmates; boid f
out: unit vector towards the centre, or zero vector if already there
1: ←0
39
2: for all m ∈ M do
Iterate over the flockmates.
3: ← + position(m)
4: end for
5: ← /|M|
6: ← position(v) − position(f )
7:if = 0 then return Unit-Vector( )
Not at the centre.
8: else return 0 end if
Avoidance(A, f )
in: set A of objects to be avoided; boid f
out: unit vector indicating avoidance, or zero vector if nothing to avoid
constant: avoidance distance da
1: a ← the object in A nearest to f
2: ← position(f ) − position(a)
3: if | | <da then return Unit-Vector( )
Is the object close enough?
4: else return 0 end if
40
5.2.6 Model Ketidakpastian (Modeling uncertainty)
Modeling uncertainty menurut jouni smed diklasifikasi menjadi dua
pengertian yaitu “Sesuatu yang akan datang tapi tidak pasti dan sesuatu yang
didapatkan menjadi tidak pasti” (Jouni Smed, 2006). Jouni smed membagi
modeling uncertainty dalam beberapa bentuk algoritma sebagai berikut:
1) Combining two mass functions
2) Ordered weighted aggregation
3) Fuzzy decision-making for Dog Eat Dog
“Penentuan keputusan dalam model ketidakpastian menurut jouni smed
berdasarkan pada data statistik” (Jouni Smed, 2006), ada beberapa teknik
pemodelan probabilistik yang digunakan di antaranya:
1. Baye’s Theorem
Baye’s Theorem diperkenalkan oleh T Bayes pada abad ke 18 dengan
metode perhitungan probabilitas kondisional dalam menentukan hipotesis
, bukti serta asumsi bukti | dijelaskan dengan rumus
sebagai berikut: |Dengan penulisan rumus lain| | .Secara umum, jika kita memiliki banyak hipotesis 0, 1, … … ,
maka disajikan sebagai berikut:| | .∑ .
41
2. Bayesian networks
Bayesian networks mencoba menyelesaikan masalah dengan melakukan 2
pendekatan di antaranya:
a. Mengamati perubahan yang menyebabkan probabilitas
b. Mengamati pengaruh perubahan dari probabilitas
Menurut Jouni Smed Bayesian networks merupakan “Perbedaan yang
jelas antara dua hal yang menggambarkan hubungan antara sebab dan
akibat” (Jouni Smed, 2006).
5.3. Framework
Perkembangan suatu framework berbeda dari pengembangan aplikasi standar.
Menurut Jan Bosch, Peter Molin, Michael Mattson dan PerOlof Bengtsson
bahwa “Sebuah framework harus meliputi semua relevan konsep dalam suatu
daerah, sedangkan untuk aplikasi hanya membutuhkan kaitan dengan kebutuhan
aplikasi itu sendiri” (Jan Bosch, 2000). Beberapa permasalahan yang akan
didapatkan pada perkembangan framework sebagai berikut:
1. Model bisnis (business model)
Sebuah framework suatu daerah tertentu dilihat dari sisi perspektif teknologi
yang digunakan, mungkin tidak menguntungkan dari segi bisnis. Akan tetapi
rasio laba dari biaya pengembangan sebuah framework bisa jadi terjadi
dengan penjualan framework itu sendiri kepada perus ahaan lain
Digunakan pada berbagai perbedaan, pada jalan yang tidak dikenal, menaksir
kepandaian dan ketepatan merupakan kemampuan yang dilakukan oleh
framework secara umum.
3. Framework menyelesaikan masalah ( framework release problem)
Penyelesaian framework untuk perkembangan aplikasi memerlukan ukuran-
ukuran di antaranya: stability, reusability, exibility , dan documentation
Pemakaian framework pada umumnya menciptakan aplikasi -aplikasi kompleks
yang berdasar pada sebuah framework. Menurut Jan Bosch, Peter Molin, Michael
42
Mattson dan PerOlof Bengtsson pemakaian framework menemukan berbagai
bentuk permasalahan dalam penggunaannya contoh pada saat menggunakan
white box framework dan black-bos framework. Pemahaman framework adalah
sala satu syarat mutlak untuk mengevaluasi sebuah framework, Penyesuaian
sejumlah adaptasi yang diperlukan dan bagaimana adaptasi dapat dilaksanakan.
Dibawah ini beberapa permasalahan dalam pemakaian framework:
1. Penerapan framework (Applicability of the framework )
2. Perkiraan pengembangan aplikasi(Estimation of the application development )
3. Debugging the application
Gambar berikut menjelaskan tentang perbedaan aplikasi yang menggunakan
sebuah pengembangan framework ( Framework Development Process) dengan
yang tidak menggunakan proses framework ( Traditional object-oriented Design).
Gambar 16 Development Process of Framework
Framework itu sendiri tidak dijalankan (executable). Untuk menghasilkan file
executable, user haruslah menurunkan framework tersebut dengan
mengimplementasikan pada aplikasi tertentu untuk tiap aplication
42
Mattson dan PerOlof Bengtsson pemakaian framework menemukan berbagai
bentuk permasalahan dalam penggunaannya contoh pada saat menggunakan
white box framework dan black-bos framework. Pemahaman framework adalah
sala satu syarat mutlak untuk mengevaluasi sebuah framework, Penyesuaian
sejumlah adaptasi yang diperlukan dan bagaimana adaptasi dapat dilaksanakan.
Dibawah ini beberapa permasalahan dalam pemakaian framework:
1. Penerapan framework (Applicability of the framework )
2. Perkiraan pengembangan aplikasi( Estimation of the application development )
3. Debugging the application
Gambar berikut menjelaskan tentang perbedaan aplikasi yang menggunakan
sebuah pengembangan framework ( Framework Development Process) dengan
yang tidak menggunakan proses framework ( Traditional object-oriented Design).
Gambar 16 Development Process of Framework
Framework itu sendiri tidak dijalankan (executable). Untuk menghasilkan file
executable, user haruslah menurunkan framework tersebut dengan
mengimplementasikan pada aplikasi tertentu untuk tiap aplication
42
Mattson dan PerOlof Bengtsson pemakaian framework menemukan berbagai
bentuk permasalahan dalam penggunaannya contoh pada saat menggunakan
white box framework dan black-bos framework. Pemahaman framework adalah
sala satu syarat mutlak untuk mengevaluasi sebuah framework, Penyesuaian
sejumlah adaptasi yang diperlukan dan bagaimana adaptasi dapat dilaksanakan.
Dibawah ini beberapa permasalahan dalam pemakaian framework:
1. Penerapan framework (Applicability of the framework )
2. Perkiraan pengembangan aplikasi( Estimation of the application development )
3. Debugging the application
Gambar berikut menjelaskan tentang perbedaan aplikasi yang menggunakan
sebuah pengembangan framework ( Framework Development Process) dengan
yang tidak menggunakan proses framework ( Traditional object-oriented Design).
Gambar 16 Development Process of Framework
Framework itu sendiri tidak dijalankan (executable). Untuk menghasilkan file
executable, user haruslah menurunkan framework tersebut dengan
mengimplementasikan pada aplikasi tertentu untuk tiap aplication
43
5.4. Frozen Spots dan Hot Spots
H. Conrad Cunningham, et. al mendefinisikan A software framework adalah
“Aplikasi generik yang memungkinkan aplikasi berbeda menjadi sebuah keluarga
bersama” (H. Conrad Cunningham, 2006) . Menurut H. Conrad Cunningham
Frozen Spots adalah “The Property common to all family members ” sedangkan
Hot spots adalah “The Property that vary among family members” (H. Conrad
Cunningham, 2006).
Hal terpenting dari desain framework terdiri dari:
1. Menentukan point-point yang harus digolongkan sebagai frozen spots, frozen
spot bersifat umum untuk memenuhi kebu tuhan aplikasi
2. Menentukkan aplikasi-aplikasi yang digolongkan sebagai hot spots.
Menurut Marcus Eduardo Markiewicz dan Carlos J.P. Lucena bahwa “Titik
fleksibilitas dari sebuah framework adalah hot spots” (Marcus Eduardo
Markiewicz, 2001). Hot spots itu sendiri adalah kelas abstrak atau sebuah metode
yang harus dilaksanakan. Setelah hot spots mendefinisikan setiap class,
framework akan menggunakan class untuk membuat type class yang baru,
pendekatan framework ini dinamakan “ old code calls new code”. Frozen spots
tidak sama dengan hot spots, karena frozen spots merupakan potongan kode yang
ada pada framework yang nantinya akan dipanggil oleh satu atau banyak hot
spots.
Marcus Eduardo menjelaskan tentang frozen spots dan hot spots pada sebuah
framework adalah “Sebuah generator listrik (frozen spots) yang menggerakkan
banyak mesin motor (hot spots)” (Marcus Eduardo Markiewicz, 2001) . Generator
listrik berupa aplikasi kode yang spesifik yang memiliki kete rkaitan dengan
aplikasi yang dibuat pada setiap hot spots. Mesin motor tidak akan bisa
dijalankan sampai semua titik disambungkan ke generator. Penjelasan di atas
dikiaskan pada gambar dibawah ini.
44
Gambar 17 Framework
Marcus Eduardo dan Carlos J.P. Lucena menjelaskan bahwa “ Kapabilitas kode
dan desain dari object oriented frameworks memungkinkan produktivitas lebih
tinggi dan waktu yang singkat dalam hal pemasaran dari sebuah pengembangan
aplikasi, hal ini berbeda dengan penge mbangan software system traditional“
(Marcus Eduardo Markiewicz, 2001)
6. Metode Penelitian
Dalam penelitian ini akan dibagi menjadi beberapa tahapan kegiatan yaitu:
a. Pengembangan Algoritma Game Engine
1. Indentifikasi sistem
Dilakukan untuk mendapatkan karakteristik sistem yang ada saat ini, dan
identifikasi kebutuhan sistem yang terbagi sebagai berikut :
a. Tahapan identifikasi sistem
1) Mengidentifikasi masalah
a) Mengidentifikasi penyebab masalah
b) Mengidentifikasi titik keputusan
c) Mengidentifikasi personel kunci
45
2) Memahami kerja sistem yang ada
a) Menentukan jenis penelitian
b) Merencanakan jadwal penelitian
c) Membuat penugasan penelitian/survey
d) Membuat agenda wawancara
e) Mengumpulkan hasil penelitian
b. Jenis dan sumber data
1) Data primer
Data yang diperoleh dari sumbernya dengan melakukan
wawancara terhadap pengembang game yang ada di game
technology research Center Universitas Dian Nuswantoro
2) Data Skunder
Data yang diperoleh secara tidak langsung bersumber dari
dokumentasi, literatur, buku, jurnal, dan informasi lainnya yang
ada hubungannya dengan masalah yang diteliti.
c. Metode pengumpulan data
Untuk mendapatkan data yang benar – benar akurat, relevan, valid
dan dapat dipercaya maka pengumpulan data dilakukan sebagai
berikut:
1) Observasi
Pengumpulan data melalui pengamatan dan pencatatan terhadap
berbagai bentuk game yang menggunakan algoritma game
(random number, tournament, game tree, path finding, decision
making, dan modeling uncertainty). Pengamatan dilakukan di
game technology research center Universitas Dian Nuswantoro.
2) Interview
Pengumpulan data dengan cara tatap muka dan tanya jawab
langsung dengan sumber data, yaitu dosen game technology serta
mahasiswa game technology sebagai calon pengembang game
yang akan menggunakan algoritma game engine.
46
3) Survei
Pengumpulan data dengan melakukan survey ke lokasi game
technology research center Universitas Dian Nuswantoro.
4) Studi pustaka
Pengumpulan data dengan cara membaca serta m empelajari
dokumen – dokumen , literatur, buku, jurnal, video / gambar yang
berhubungan dengan obyek penelitian guna mendapatkan teori
ataupun konsep yang dapat digunakan sebagai landasan teori dan
kerangka pemikiran dalam penelitian dan untuk mencari
metodologi yang sesuai serta membandingkan teori yang ada
dengan fakta yang ada di lapangan.
2. Tahap analisis
a. Melakukan perincian analisis permasalahan dan kebutuhan dengan
cara mengamati pelaksanaan metode pembuatan algoritma game
engine
b. Memilih metode penyelesaian masalah berdasarkan pengolahan data
dan studi pustaka untuk mendapatkan teori -teori yang berhubungan
dengan metode pembuatan algoritma game engine
c. Menyusun kerangka penyelesaian masalah berdasar hasil pengolahan
data dan studi pustaka
3. Tahap perancangan
proses perancangan mulai dari pendefinisian algoritma, menerjemahkan
algoritma menggunakan bahasa pemrograman java dan membentuknya
menjadi sebuah framework software (algoritma game engine) dengan
menggunakan teori frozen spots dan hot spots.
4. Tahap pembangunan
Berdasarkan hasil rancangan yang telah dibuat pada tahap perencanaan,
maka dibangun sebuah framework software (algoritma game engine) yang
sesuai dengan kebutuhan yang diuraikan ke dalam modul – modul
program (menu utama) dan metode / alat yang digunakan untuk
pengetesan program.
47
5. Pengujian algoritma game engine
Melakukan pengetesan terhadap algoritma game engine yang telah
selesai dibuat sebelum diimplementasikan dengan menggunakan teknik
pengujian perangkat lunak yang telah ada, diantaranya:
1) Pengujian white box
2) Pengujian black box
b. Implementasi Algoritma Game Engine
Pada bagian ini, prototipe algoritma game engine yang dibuat setelah melalui
tahapan pembangunan sebelumnya, akan diujikan pada mahasiswa game
technology / calon pengembang game technology research center Universitas
Dian Nuswantoro. Tahapan ini berfungsi memberi masukan melalui
pengamatan tentang hal – hal apa yang perlu ditambahkan dalam algoritma
game engine ini, diharapkan dengan mengetahui keinginan pengguna,
algoritma game engine ini dapat lebih dikembangkan dan dapat lebih
disempurnakan
c. Pengukuran penelitian
Dalam proses ini, peneliti akan membandingkan hasil pretest yang
dilaksanakan sebelum pengguna menggunakan Algoritma game engine ini,
dengan hasil posttest yang dilakukan setelah pengguna menggunakan
Algoritma game engine ini sebagai alat bantu mempercepat proses
pengembangan game. Hasil tersebut nantinya akan diuji hipotesa
menggunakan metode t-test. Metode ini digunakan karena t-test dapat
digunakan untuk menguji kecocokan atas perbedaan pada suatu eksperimen
yang menggunakan satu kelompok sampel. Apabila sebelum melakukan
eksperimen, peneliti melakukan pengukuran awal ( pretest), maka peneliti
akan mempunyai dua kelompok nilai yang berasal d ari satu kelompok
sampel. Apabila eksperimen itu mempunyai dampak terhadap hasil (tujuan
eksperimen), maka kedua kelompok skor tersebut akan menunjukkan
perbedaan yang signifikan (Irianto, 2004)
48
7. Kerangka Pemikiran
Pemikiran peneliti berawal dari permasalahan bahwa pengembang game
memerlukan waktu yang lama pada proses pembuatan algoritma game. Oleh
karena itu peneliti menggunakan konsep Algorithm Game Engine untuk
mengatasi masalah tersebut. Dalam pengembangannya pe neliti menjelaskan
spesifikasi dan desain menggunakan UML, dalam pembuatan Algoritma Game
Engine menggunakan bahasa pemrograman Java Standard Edition. serta
menggunakan Whitebox dan Blackbox dalam pengujian sistem tersebut.
Penelitian ini akan diimplementa si pada Game Technology Researh Center
dengan melakukan Pretest (sebelum menggunakan Engine) dan Posttest (setelah
menggunakan Engine). Hasil dari penelitian akan di tunjukan dengan Grafik
perbedaan Pretest-Posttest. Untuk lebih jelasnya kerangka pikir dari penelitian
ini digambarkan sebagai berikut:
Gambar 18 Kerangka Berpikir
49
Daftar Pustaka
Aguilera, M. D., & Mendiz, A. (2003, October). Video Games and Education (Education inthe Face of parallel School). ACM Computers in Entertainment Vol 1 Article 01 .
Akilli, G. K. (2007). Games and Simulations : A New Approach in Education ? Pennsylvania:Information Science Publishing.
Blow, J. (2004). Game Development : Harder Than You Think. Queue, volume 1 Issue 10 , 36.
Champandard, A. J. (2004). AI Game Development. Indianapolis: New Riders Publishing.
Edmonds, J. (2008). How to Think About Algorithms. New York: Cambridge University Press.
Fabio Petrillo, M. P. (2009). What Went Wrong? A Survey of Problems ini GameDevelopment. ACM Computers in Entertainment, Vol. 7, No 1, Article 13 , 13.
H. Conrad Cunningham, Y. L. (2006). Framework Design Using Function Generalization:ABinary Tree Traversal Case Study. ACM SE’06 , 312.
Irianto, P. D. (2004). Statistik konsep dasar dan aplikasinya. Jakarta: Kencana.
Jan Bosch, P. M. (2000). Object -Oriented Framework-base Software Development:Problemsand Expreriences. ACM , 4.
Jouni Smed, H. H. (2006). Algorithm and Networking for computer game. England: JohnWiley & Sons, Ltd.
Marcus Eduardo Markiewicz, C. J. (2001). Object Oriented Framework Development. ACM ,1.
Ritzhaupt, A. D. (2009). Creating a Game Development Course with Limited Resources:AnEvaluation Study . ACM Transactions on Computing Education, Vol. 9, No. 1, Article 3 ,3:1,3:2.
Robert Sedgewick. (1983). Algorithms. Marly-le-Roi: Addison-Wesley.
Sedgewick, R. (2002). Algorithm in Java. Boston: Addison Wesley.
Stefan Marks, J. W. (2007). Evaluation of Game Engines for Simulated Surgical Training. TheAssociation for Computing Machinery, inc , 274.
Weisstein, E. (2009, Oct 04). Wolfram MathWorld Reseacrh . Retrieved Oct 2009, 06, fromLinierCongruenceMethod: http://mathworld.wolfram.com/LinearCongruenceMethod.html
Wolf, M. J. (2000). Genre and The Video Game. The Medium of The Video Game. Texas:University of Texas Press.