Anda di halaman 1dari 15

PENEMPATAN TOWER PADA PERMAINAN TOWER

DEFENSE DENGAN ALGORITMA GREEDY


(TOWER PLACEMENT ON TOWER DEFENSE GAME WITH GREEDY ALGORITHM)

Disusun Oleh :
1. Devy Nurlina 1100178
2. Jidni Ilman Mubarak 1102083
3. M Arief Budiman 1103961
4. Nurfitriany Dewi 1100330

PROGRAM STUDI ILMU KOMPUTER


FAKULTAS PENDIDIKAN MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS PENDIDIKAN INDONESIA

2013
KATA PENGANTAR

Puji syukur kami panjatkan ke hadirat Tuhan Yang Maha Esa, karena dengan
pertolonganNya kami dapat menyelesaikan karya ilmiah yang berjudul Penempatan
Tower Pada Permainan Tower Defense Dengan Algoritma Greedy.

Kami ucapkan terima kasih kepada dosen pembimbing yang telah membantu
kami dalam pengerjaan makalah ini. Kami juga mengucapkan terima kasih kepada
pihak lain yang tidak dapat disebutkan satu persatu dalam kontribusi yang diberikan
baik secara langsung maupun tidak langsung dalam pembuatan makalah ini.

Makalah ini membahas tentang implementasi/penerapan Algoritma Greedy


dalam permainan Tower Defense yang mengasah kemampuan logika pemain dalam
mengatur Tower yang ada dan menyerang musuh yang melintas. Makalah ini juga
ditujukan untuk memenuhi tugas makalah Analisis dan Desain Algoritma.

Makalah ini tidak luput dari berbagai kesalahan, oleh karena itu penyusun
sangat harapkan kritik dan saran yang membangun untuk kesempurnaan makalah ini.
Kami berharap makalah ini dapat bermanfaat dan memberikan nilai guna
sebagaimana mestinya.

Bandung, 4 Maret 2013

Tim Penyusun

2
DAFTAR ISI

KATA PENGANTAR ........................................................................................................................ 2


DAFTAR ISI .................................................................................................................................... 3
ABSTRAK ....................................................................................................................................... 4
BAB I PENDAHULUAN ................................................................................................................... 5
1.1 Latar Belakang Masalah ................................................................................................ 5
1.2 Identifikasi Masalah ...................................................................................................... 5
BAB II PEMBAHASAN .................................................................................................................... 6
2.1 Tower Defense Game .......................................................................................................... 6
2.2 Algoritma Greedy ................................................................................................................ 7
2.3 Implementasi Algoritma Greedy pada penempatan tower ................................................ 8
BAB III PENUTUP ......................................................................................................................... 14
3.1 Simpulan ........................................................................................................................... 14
DAFTAR PUSTAKA ....................................................................................................................... 15
LAMPIRAN.... 16

3
ABSTRAK

Makalah ini membahas tentang bagaimana Algoritma Greedy bekerja pada


permainan Tower Defense. Dalam permainan Tower Defense, pemilihan tempat
penyimpanan tower dianggap krusial dan sangat penting untuk diperhatikan. Salah
satu nilai tolak ukur keberhasilan pemain dalam bermain Tower Defense yaitu posisi
Tower terhadap musuh yang melintas, dan skor yang didapat. Algoritma Greedy
diharapkan dapat mengatasi masalah penempatan tower secara efektif dan optimum
(maximization optimization problems) untuk mendapatkan skor yang maksimal.

Dalam makalah ini hanya akan dibahas tentang : 1) Penjelasan Permainan


Tower Defense, 2) Pengertian Singkat Algoritma Greedy, 3) Implementasi Algoritma
Greedy pada Optimum Tower Location.

4
BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Permainan Tower Defense merupakan genre Game minimalis yang dirancang


untuk mengasah kemampuan logika. Dalam Tower Defense, pemain akan diberikan
gold/mata uang untuk membeli tower yang akan dibangun. Pemain dapat
membangun tower di lokasi yang sudah ditentukan sebelumnya dan tidak dapat
membangun tower pada wave path atau jalur yang dilalui musuh. Dalam segi
penempatan tower, sering dijumpai kesalahan seperti lokasi tidak efektif, atau lokasi
penempatan terlalu jauh dari wave path, sehingga skor yang didapatkan relatif kecil
atau mengalami game over.

1.2 Identifikasi Masalah

Dengan memperhatikan latar belakang masalah yang terjadi, di sini hanya di


bahas tentang masalah berikut :
1. Apa itu Tower Defense.
2. Apa itu Algoritma Greedy.
3. Implementasi Algoritma Greedy pada penempatan tower.

5
BAB II PEMBAHASAN

2.1 Tower Defense Game


Tower Defense merupakan salah satu genre game minimalis pada PC dengan
sub-genre dari Real-Time Strategy. Gameplay dari Tower Defense sangat sederhana,
yakni pemain mencoba menghentikan musuh yang melintasi suatu jalan tertentu
dengan tower/bangunan yang dapat menyerang. Tower dapat menyerang musuh
dengan kemampuan beragam dan biaya yang berbeda. Ketika tower mengalahkan
salah satu musuh dari wave, akan mendapatkan gold/uang dan skor. Gold atau uang
pada Tower defense dapat digunakan untuk membeli tower baru, upgrade tower, atau
membeli hal lain sesuai fitur dari Tower defense yang dimainkan.

Contoh Screenshoot Game Tower Defense :

BioBots Tower Defense

Penempatan Posisi Tower adalah hal yang sangat penting dan perlu diperhatikan,
karena tower memiliki radius serangan tertentu (AOE, Area Of Effect ). Strategi
penempatan tower adalah hal yang perlu dilakukan untuk mendapatkan skor yang
maksimal.

6
Layout Peta dari Screenshoot Game Tower Defense Diatas :

Keterangan :

2.2 Algoritma Greedy

Algoritma greedy merupakan metode yang paling populer untuk memecahkan


persoalan optimisasi. Sesuai dengan nama dari algoritmanya, Algoritma Greedy
Bersifat Rakus dan Tamak. take what you can get now! adalah prinsip utama dari
algoritma greedy dengan cara membentuk solusi langkah per langkah (step by step).
pada setiap langkahnya, algoritma greedy mengambil keputusan berdasarkan nilai
terbaik (minimasi dan maksimasi) tanpa mengambil konsekuensi langkah dan pilihan
di depan (langkah selanjutnya).

Elemen-elemen algoritma greedy:

1. Himpunan kandidat.

2. Himpunan solusi.

3. Fungsi seleksi (selection function).

4. Fungsi kelayakan (feasible).

5. Fungsi obyektif.

7
2.3 Implementasi Algoritma Greedy pada penempatan tower

Yang harus diperhatikan pada permainan Tower Defense adalah kita harus
mampu mengeliminasi atau membunuh musuh yang melintas semaksimal mungkin
dengan membangun tower di tempat yang strategis dan memiliki jangkauan serangan
yang besar terhadap jalur musuh.

Studi Kasus Simulasi Penempatan Tower dengan Algoritma Greedy

Diberikan simulasi Tower Defense dengan batasan :

Tower
o Hanya digunakan 1 grade tower (no upgradable)
o Hanya digunakan 1 jenis tower
o Radius serangan 1 blok AOE (Area Of Effect)
o Tower tidak dapat dipindah (bersifat statis)
Musuh
o Berjalan pada jalur yang tetap
o Tidak dapat bergerak mundur
o Kecepatan musuh statis/tidak berubah
o Tidak dapat menyerang tower
o Dinyatakan menang jika tidak terbunuh sebanyak x kali sampai akhir
jalur
Battleground
o Dibuat dengan matriks 10 blok x 10 blok (Array 2 dimensi)
o Jalur dengan satu arah tanpa percabangan
o Jumlah Tower yang bisa dibeli sesuai dengan gold/uang yang dimiliki

8
Layout Simulasi Battleground Tower Defense :

Dengan persoalan harus membunuh sebanyak mungkin musuh, maka


diperlukan penempatan tower yang strategis karena total tower yang bisa disimpan
terbatas dengan persediaan gold/uang yang ada. Dalam persoalan ini Algoritma
Greedy dapat digunakan untuk penyelesaian masalah.

Algoritma Greedy dapat menempatkan tower pada lokasi optimum dengan


radius yang efektif untuk membunuh musuh dengan tujuan memperoleh skor
maksimal.

9
Elemen Algoritma Greedy pada simulasi tower defense ini :

o Himpunan kandidat, himpunan titik-titik pada Battleground atau pada


peta tower defense
o Fungsi Seleksi, memilih titik yang sesuai pada Battleground. Titik yang
dipilih adalah titik yang memiliki AOE (area yang memungkinkan bisa
dilakukan serangan) paling besar.
o Fungsi Kelayakan, untuk mengecek apakah suatu titik dapat dibangun
tower atau tidak. Titik dapat dibangun tower jika tidak terdapat tower
lain dan tidak berada pada wave path dan limit tower yang bisa
dibangun (sesuai dengan jumlah gold/uang yang dimiliki).
o Fungsi Objektif, untuk memaksimalkan skor dengan memperoleh AOE
sebesar mungkin untuk memungkinkan tower dapat menyerang musuh.
o Himpunan Solusi , himpunan titik yang merupakan tempat strategis
tower dapat dibangun.

Algoritma untuk mendapatkan titik himpunan solusi :

o Mengambil titik-titik pada peta yang memenuhi fungsi kelayakan (dapat


dibangun tower) dengan fungsi generateArea dan memberikan nilai
representasi tiap titik.

0, representasi dari wilayah yang


dapat dibangun tower
9, representasi dari wave path dan
tidak dapat dibangun tower
1, representasi dari bangunan
tower yang sudah dibuat dan tidak
bisa dibangun tower kembali

10
Dapat diambil himpunan titik layak bangun dengan fungsi makeEnable yaitu
fungsi untuk mengambil area manakah yang bias dibangun tower atau area
manakah yang memiliki nilai 0 pada list atau array battleground.

T={{1,A},{1,H},{1,I},{1,J},{2,A},{2,C},{2,D},{2,E},{2,F},{2,H},{2,I},{2,J},{3,A},{3,C},{3,
D},{3,H},{4,A},{4,C},{4,D},{4,F},{4,G},{4,H},{4,J},{5,A},{5,C},{5,D},{5,J},{6,A},{6,D},{
6,E},{6,F},{6,G},{6,H},{6,I},{6,J},{7,A},{7,B},{7,E},{7,F},{7,G},{7,H},{7,I},{7,J},{8,A},{
8,B},{8,C},{8,F},{8,G},{9,A},{9,B},{9,C},{9,D},{9,I},{9,J},{10,A},{10,B},{10,C},{10,D},{
10,E},{10,F},{10,G},{10,H},{10,I},{10,J}}

o Pada array T[10][10] atau himpunan titik T dapat dicari radius tower paling
besar dengan fungsi findMaxAoe, dan return/feedback dari fungsi findMaxAoe
adalah titik yang memiliki radius AOE paling besar sesuai dengan algoritma
greedy yang bersifat take what you can get now!.
Proses pencarian titik dengan AOE terbesar adalah mencari titik dengan nilai
9 yang merepresentasikan jalur musuh paling banyak.
Pada langkah ini didapatkan titik layak bangun pertama adalah (2,F) dengan
area terbesar 7 titik. Dan tower dibangun pada titik yang telah ditemukan
dengan procedure buildTower.

o Proses pembangunan tower dapat dilakukan dengan cara mengubah nilai


representasi pada titik yang akan dibangun dengan nilai 1 yang
merepresentasikan bahwa di titik tersebut terdapat tower dan tidak dapat
dibangun tower kembali. Dan nilai 2 pada AOE titik tower tersebut untuk
mengantisipasi adanya tower yang dibangun di sekitarnya padahal daerah
tersebut sudah di handle oleh tower yang sudah dibangun (Karena Tower
dibangun dengan melihat nilai 9 pada battleground).

11
Layout Simulasi Battleground dengan Tower yang sudah dibangun :

Keterangan :

o Langkah diatas dilakukan terus menerus sampai limit membangun tower habis
(pada kasus nyata, habisnya gold atau uang).

o Jika ditemukan titik dengan besar AOE yang sama, maka tower akan dibangun
pada titik pertama yang ditemukan algoritma greedy.

Pseudo Code untuk Algoritma diatas :

function generateArea(input P:battleground,point: titik)


=> Integer
{fungsi ini akan mengembalikan nilai integer dengan
representasi 1 untuk tower yang sudah dibangun, 2
untuk AOE tower, 9 untuk jalur musuh yang melintas, dan
0 untuk wilayah layak bangun tower pada variabel nilai}

function makeEnable(input P:battleground) => array of


point
{fungsi ini mengembalikan titik di battleground yang layak
dibangun tower atau memiliki nilai 0 pada representasi
titik menggunakan fungsi generateArea dan variabel nilai}

function findMaxAoe(input listT : array of point,


P:battleground) => point

12
{fungsi ini untuk mengembalikan titik dengan radius
AOE/radius erang terbesar dan mengeluarkan titik tersebut
dari list atau himpunan titik layak bangun}

Procedure buildTower(input P:battleground, place:point)


{titik place dibangun tower dan variabel nilai diberi
nilai 1. Radius 1 blok dari titik place diberi nilai 2
untuk menghandle terjadinya kasus penempatan tidak
optimal}

battleground : P
list : array of point
nilai : array[1..10,1..10] of integer
gold : integer
towerPrice : integer

list <- makeEnable(P)


while (not isEmpty(list) and gold>towerPrice)
buildTower(P,findMaxAoe(list,P))

13
BAB III PENUTUP

3.1 Simpulan

Dapat disimpulkan bahwa efektifitas penempatan tower pada permainan tower


defense dapat dilakukan dengan cara Algoritma Greedy dengan solusi optimum. Namun tidak
menjamin 100% solusi tersebut menjadi solusi paling optimal dan efektif, karena kemungkinan
lain masih bisa terjadi kemungkinan lain pada kasus penempatan tower tersebut. Seperti
tower tidak dapat ditempatkan berdampingan karena AOE/radius daerah tersebut sudah
dihandle tower lain. Padahal sering terjadi dalam tower defense, mengadaptasi keadaan
semakin banyak tower yang menghandle satu daerah yang sama, maka akan semakin kuat
pertahanan yang didapatkan.

Algoritma Greedy menjadikan tower dalam tower defense menjadi terpisah-pisah


karena menggunakan Strategi AOE. Dalam kasus nyata, terdapat kemungkinan wave yang
melintas pada path cenderung memiliki kemampuan khusus sehingga dengan mudahnya
melewati tower yang hanya berdiri sendiri di wilayah yang jauh dengan tower lain.

14
DAFTAR PUSTAKA

Prasetiya, Taufik. (2011). Penggunaan Algoritma Greedy Dalam Permainan


Warcraft III Tower Defense. (Online)
Tersedia: http://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2011-
2012/Makalah2011/MakalahIF3051-2011-065.pdf
(4 Maret 2013)

M, Irsyad Arif. (2010). Penerapan Perilaku Cerdas Pada Obyek di dalam Game
Flash Tower Defense. (Online)
Tersedia: http://digilib.its.ac.id/public/ITS-Undergraduate-17655-
Presentation.pdf
(4 Maret 2013)

15

Anda mungkin juga menyukai