• Tidak ada hasil yang ditemukan

Implementasi algoritma genetika dan fuzzy logic pada Game Tower Defense

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi algoritma genetika dan fuzzy logic pada Game Tower Defense"

Copied!
111
0
0

Teks penuh

(1)

1 Blizzard. Blizzard merupakan sebuah perusahaan pembuat game ternama yang telah berhasil meluncurkan berbagai game yang sering kali merebutkan hati para gamer di dunia. Inti dari permainan Tower Defence ini adalah gamer ditugaskan untuk melindungi goal point (basis pertahanan) dari serbuan musuh yang menyerang. Musuh ini akan datang secara bergelombang dan dalam jumlah yang banyak. Gamer melindungi target-tower atau menara-menara pertahanan yang akan menembaki setiap musuh yang mendekati target.

Pada analisis aplikasi permainan yang ber-genre tower defense dengan judul “Tree Of Life Tower Defense” [11] . Aplikasi permainan tersebut mempunyai catatan permainan yang lebih sedikit dimainkan dibanding dengan aplikasi permainan tower defense yang lainnya. Pada review permainan dikatakan bahwa game tersebut pada pemilihan jalur bersifat monoton. Hal tersebut disebabkan karena dalam permainan ini masih menggunakan system static-line dalam mencapai goal point , yang artinya jalur yang di tempuh oleh Non Playable Character (NPC ) tidak dinamis dan tidak mengalami perubahan sesuai dengan strategi yang dilakukan oleh player . Pada perilaku unit tower pun hanya menggunakan jarak sebagai acuan target tembak pada NPC tower , hal ini dinilai kurang efektif , karena sulit untuk mengklasifikasikan unit musuh dengan tingkat bahaya tinggi dan unit musuh dengan tingkat bahaya rendah sebagai target serang atau target tembak. Oleh karena itu dibutuhakan kecerdasan buatan atau bisa disebut juga AI (Artificial Intelligence) pada aplikasi permainan yang dibuat sebagai nilai tambah, sehingga aplikasi permainan yang dibuat akan menjadi lebih menarik dan mempunyai tantangan.

(2)

star , algoritma greedy , algoritma genetika dan lain – lain . Dalam kasus ini akan digunakan algoritma genetika untuk menyelesaikan masalah pemilihan jalur karena algoritma ini dapat digunakan untuk menyelesaikan masalah multi objek yaitu kasus – kasus yang mempunyai banyak solusi , salah satunya adalah dalam kasus pencarian jalur dimana tidak ada kepastian solusi terbaik [1] .

Untuk menyelesaikan masalah perilaku unit tower akan menggunakan logika fuzzy. Logika Fuzzy adalah salah satu cabang dari kecerdasan buatan. Logika Fuzzy digunakan untuk mengatasi masalah – masalah yang memiliki jawaban lebih dari satu. Oleh karena itu logika Fuzzy lebih mirip dengan cara berfikir manusia ke dalam bentuk algoritma yang kemudian dijalankan oleh mesin. Dengan memetakan nilai titik – titik input data kedalam nilai keanggotaannya. Pembentukan aturan dengan menggunakan operator dasar Fuzzy atau operator dasar Zadeh (AND,OR dan NOT) dan yang terakhir adalah proses penalaran atau inferensi yaitu proses pengolahan inputan Fuzzy menjadi output Fuzzy. Apabila diambil contoh berdasarkan permasalahan di atas , maka akan ditentukan beberapa variable dari enemy yang kemudian akan diolah menjadi sebuah output fuzzy , yaitu target priority. Hasil dari proses inferensi tersebut akan dijadikan acuan dalam penentuan target tembak sebagai dasar pengambilan keputusan pada NPC tower [1].

Berdasarkan latar belakang masalah yang dibahas di atas akan dibuatlah sebuah Game dengan genre Tower Defense dengan mengimplementasikan algoritma genetika pada proses pencarian jalur serta fuzzy logic sebagai kecerdasan buatan dalam pengambilan keputusan pada tower .

1.2. Rumusan Masalah

(3)

3

1.3. Maksud dan Tujuan

Maksud dari penelitian ini adalah untuk menyelesaikan masalah pemilihan jalur enemy dan juga bagaiman membuat tower berperilaku dalam mengambil keputusan. Sedangkan tujuan yang diharapan aplikasi yang dibangun ini adalah : 1. Membantu pergerakan enemy dan membuat menjadi lebih dinamis dalam

melakukan pemilihan jalur menuju goal point atau base player .

2. Membantu tower dalam memutuskan enemy mana yang akan dihancurkan terlebih dahulu berdasarkan tingkat kerusakan yang ditimbulkan.

1.4. Batasan Masalah

Batasan masalah dari penelitian ini adalah sebagai berikut:

1. Implementasi algoritma akan di implementasikan pada game bergenre Tower Defense

2. Impelementasi algoritma pada game ini akan menggunakan algoritma Genetika dan Fuzzy Logic.

3. Proses yang terjadi dalam algoritma genetika terbagi menjadi beberapa tahap dimulai dari inisialisasi , evaluasi kromosom , seleksi kromosom , crossover dan mutasi.

4. Proses seleksi pada algoritma genetika menggunakan metode Roulette Wheel.

5. Proses crossover pada algoritma genetia menggunakan metode Partial Mapped Crossover(PMX).

6. Proses mutasi menggunakan metode swapping mutation.

7. Pada Fuzzy Logic metode yang digunakan adalah fuzzy tsukamoto dengan pencarian nilai minimum.

8. Pemodelan menggunakan UML diagram.

1.5. Metodologi Penelitian

(4)

yang dilakukan metodologi yang akan di lakukan mencakup metode pengumpulan data dan metode pengembangan perangkat lunak.

1.5.1. Metode Pengumpulan Data 1. Studi Pustaka

Tahap ini merupakan tahap pengumpulan pengetahuan dari sumber-sumber seperti buku , dokumen atau publikasi dari berbagai sumber-sumber dan perguruan tinggi. Sumber pengetahuan tersebut dijadikan sebagai landasan teori untuk mengembangkan Game “Benteng Bertahan”.

2. Observasi

Observasi dilakukan dengan pengamatan langsung terhadap game sejenis yang telah ada. Disini akan dilakukan pengamatan tentang kelebihan dan kekurangan pada game yang telah ada sebelumnya.

1.5.2. Metode Pengembangan Perangkat Lunak

Metode pengembangan perangkat lunak yang akan digunakan adalah linear process flow . Linear process flow merupakan bagian dari generic process model . Generic process model terdiri dari 5 aktifitas umum dalam pembangunan perangkat lunak , yaitu :

1. Communication 2. Planning 3. Modeling 4. Costruction 5. Deployment

Adapun berikut alur dari linear process flow [2] adalah sebagai berikut :

(5)

5

1. Analysis

Langkah ini merupakan analisis terhadap kebutuhan system. Pengumpulan data dalam tahap ini bisa dilakukan dengan melakukan penelitian , wawancara atau study literatur. Tahapan ini akan menghasilkan dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan dengan kebutuhan program yang akan di bangun. 2. Design

Proses desain akan menerjemahkan syarat kebutuhan ke sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirement. Dokumen inilah yang akan digunakan programmer untuk melakukan aktivasi pembuatan sistemnya.

3. Code

Coding merupakan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer. Dilakukan oleh programmer yang akan mengaplikasikan design yang telah di buat dan juga memasukan bahasa pemprograman yang bisa di mengerti oleh sistem supaya program dapat berjalan.

4. Test

Testing mempunyai tujuan untuk menemukan kesalahan-kesalahan terhadap sistem yang telah dibuat agar dapat melihat kesalahan yang terjadi dan dapat memperbaikinya.

1.6. Sistematika Penulisan

(6)

BAB I PENDAHULUAN

Pada bab ini diuraikan secara ringkas pembahasan tentang Latar Belakang, Identifikasi Masalah, Batasan Masalah, Maksud dan Tujuan Penelitian , Metode Penelitian , dan Sistematika Penulisan

BAB II LANDASAN TEORI

Bab ini menjelaskan landasan teori yang meliputi pengertian aplikasi Game, klasifikasi Game dan tentang sejarah Tower Defense itu sendiri. Disini juga akan dibahas mengenai algoritma genetika dan fuzzy logic serta aplikasi apa saja yang akan di gunakan dalam membangun Game ini .

BAB III ANALISIS DAN KEBUTUHAN ALGORITMA

Bab ini bersikan tentang perancangan aplikasi Game Tower Defense , mulai dari analisis masalah , analisis algoritma genetika dan fuzzy logic , analisis Game yang akan dikembangkan analisis kebutuhan fungsional berupa proses kegiatan yang akan diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan sistem agar sistem dapat berjalan dengan baik sesuai dengan kebutuhan , dan non fungsional yaitu analisis kebutuhan perangkat lunak , analisis kebutuhan perangkat keras, dan analisis pengguna , serta dilanjutkan dengan perancangan aplikasi “Game Tower Defense”

BAB IV IMPLEMENTASI SISTEM

Bab ini menjelaskan tentang implementasi , perangkat pendukung yang digunakan , perangkat keras (hardware) , perangkat lunak (software), implementasi aplikasi , implementasi antar muka serta pengujian terhadap sistem.

BAB V KESIMPULAN DAN SARAN

(7)

7 BAB 2

LANDASAN TEORI

2.1. Game

2.1.1. Pengertian Game

Dalam kamus bahasa Indonesia “Game”diartikan sebagai permainan. Permainan adalah sesuatu yang dapat dimainkan dengan aturan tertentu sehingga ada yang menang dan ada yang kalah. Permainan dalam hal ini merujuk pada pengertian “kelincahan intelektual” (intellectual playability). Game juga bisa diartikan sebagai arena keputusan dan aksi pemainnya. Ada target-target yang ingin dicapai pemainnya.

Berikut adalah Pengertian Game menurut para ahli :

1. Menurut David Parlett, Game adalah sesuatu yang memiliki "akhir dan cara mencapainya": artinya ada tujuan, hasil dan serangkaian peraturan untuk mencapai keduanya

2. Menurut Roger Caillois seorang sosiolog Perancis, dalam bukunya yang berjudul Les jeux et les hommes menyatakan game adalah aktivitas yang mencakup karakteristik berikut:

a. Fun (bebas bermain adalah pilihan bukan kewajiban) b. Separate (terpisah).

c. Uncertain, non-productive, governed by rules (ada aturan). d. Fictitious (pura-pura).

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

4. Menurut Bernard Suits, Game adalah upaya sukarela untuk mengatasi rintangan yang tidak perlu.

5. Menurut Greg Costikyan, Game adalah sebentuk karya seni di mana peserta, yang disebut Pemain, membuat keputusan untuk mengelola sumber daya yang dimilikinya melalui benda di dalam game demi mencapai tujuan.

(8)

Dalam beberapa kutipan di atas game dapat mempunyai banyak arti tetapi mempunyai inti yang sama yaitu memecahkan masalah atau konflik yang di bangun dan mencapai goal tertentu .

2.2. Tower Defense

Tower Defense adalah sebuah game real time strategy yang merupakan MOD (modifikasi) dari game strategi popular Warcraft 3 yang diporoduksi oleh Blizzard. Blizzard merupakan sebuah perusahaan pembuat game ternama yang telah berhasil meluncurkan berbagai game yang sering kali merebutkan hati para gamer di dunia.

Inti dari permainan Tower Defence ini adalah gamer ditugaskan untuk melindungi goal point (basis pertahanan) dari serbuan musuh yang dikendalikan oleh AI (artificial intelligence). Musuh ini akan datang secara bergelombang dan dalam jumlah yang banyak. Gamer melindungi target-tower atau menara-menara pertahanan yang akan menembaki setiap musuh yang mendekati target.

Permainan ini dibagi dalam tingkatan-tingkatan yang dimulai dari tingkatan rendah, menegah , hingga tingkatan tinggi sesuai dengan tingkat keberhasilan gamer dalam mempertahankan goal point setiap tingkatannya. Dan semakin tinggi tingkatan yang dicapai, musuh yang menyerbu semakin kuat dan banyak. Serta uang yang didapatkan dari membunuh musuh-musuh ini pun semakin meningkat untuk digunakan mendirikan menara-menara pertahan yang lebih canggih dan kuat.

2.3. Artificial Intelligence (Kecerdasan Buatan)

Banyak yang menerjemahkan Artificial Intelligence sebagai kecerdasan buatan, kecerdasan artifisial, intelijensia artifisial, atau intelejensia buatan. Pada bukunya [6], Suyanto sengaja tidak menerjemahkan istilah Artificial Intelligence ke bahasa Indonesia karena istilah tersebut sudah sangat akrab bagi orang Indonesia dan banyak digunakan.

(9)

9

juga yang mendefinisikan AI lebih luas pada tingkah laku manusia. Stuart Russel dan Peter Norvig mengelompokkan definisi AI, yang diperoleh dari beberapa textbook berbeda, ke dalam empat kategori [7], yaitu :

A. Thinking humanly : the cognitive modeling approach

Pendekatan ini dilakukan dengan dua cara sebagai berikut :

1. Melalui introspeksi : mencoba menangkap pemikiran-pemikiran kita sendiri pada saat kita berpikir. Tetapi, seorang psikolog Barat mengatakan “how do you know that you understand?” Bagaimana anda tahu bahwa anda mengerti? Karena pada saat anda menyadari pemikiran anda. Sehingga definisi ini terkesan mengada-ngada dan tidak mungkin dilakukan.

2. Melalui eksperimen-eksperimen psikologi. B. Acting humanly : the Turing test approach

Pada tahun 1950, Alan Turing merancang suatu ujian bagi komputer berintelijensia untuk menguji apakah komputer tersebut mampu mengelabui seorang manusia yang menginterogasinya melalui teletype (komunikasi berbasis teks jarak jauh). Jika interrogator tidak dapat membedakan yang d2nterogasi adalah manusia atau komputer, maka komputer berintelijensia tersebut lolos dari Turning test. Komputer tersebut perlu memiliki kemampuan : Natural Language Processing, Knowledge Representation, Automated Reasoning, Machine Learning, Computer Vision, Robotics. Turing test sengaja menghindari interaksi fisik antara interrogator dan komputer karena simulasi fisik manusia tidak memerlukan intelijensia.

C. Thinking rationally : the laws of thought approach Terdapat dua masalah dalam pendekatan ini, yaitu :

1. Tidak mudah untuk membuat pengetahuan informal dan menyatakan pengetahuan tersebut ke dalam formal term yang diperlukan oleh notasi logika, khususnya ketika pengetahuan tersebut memiliki kepastian kurang dari 100%.

2. Terdapat perbedaan besar antara dapat memecahkan masalah “dalam

(10)

D. Acting rationally : the rational agent approach

Membuat inferensi yang logis merupakan bagian dari suatu rational agent. Hal ini disebabkan satu-satunya cara untuk melakukan aksi secara rasional adalah dengan menalar secara logis. Dengan menalar secara logis, maka bisa didapatkan kesimpulan bahwa aksi yang diberikan akan mencapai tujuan atau tidak. Jika mencapai tujuan, maka agent dapat melakukan aksi berdasarkan kesimpulan tersebut.

Thinking humanly dan acting humanly adalah dua definisi dalam arti yang sangat luas. Sampai saat ini, pemikiran manusia yang diluar rasio, yakni reflex dan intuitif (berhubungan dengan perasaan), belum dapat ditirukan sepenuhnya oleh komputer. Dengan demikian, kedua definisi ini dirasa kurang tepat untuk saat ini..

Definisi thinking rationally terasa lebih sempit daripada acting rationally. Oleh karena itu, definisi AI yang paling tepat untuk saat ini adalah acting rationally dengan pendekatan rational agent. Hal ini berdasarkan pemikiran bahwa komputer bisa melakukan penalaran secara logis dan juga bisa melakukan aksi secara rasional berdasarkan hasil penalaran tersebut.

2.3.1. Algoritma Genetika 2.3.1.1 Pengertian

Algoritma genetik adalah algoritma yang berusaha menerapkan pemahaman mengenai evolusi alamiah pada tugas-tugas pemecahan-masalah (problem solving). Pendekatan yang diambil oleh algoritma ini adalah dengan menggabungkan secara acak berbagai pilihan solusi terbaik di dalam suatu kumpulan untuk mendapatkan generasi solusi terbaik berikutnya yaitu pada suatu kondisi yang memaksimalkan kecocokannya atau lazim disebut fitness. Generasi ini akan merepresentasikan perbaikan-perbaikan pada populasi awalnya. Dengan melakukan proses ini secara berulang, algoritma ini diharapkan dapat mensimulasikan proses evolusioner.

(11)

11

masalah direpresentasikan sebagai kromosom. Tiga aspek yang penting untuk penggunaan algoritma genetik:

1. Defenisi fungsi fitness

2. Defenisi dan implementasi representasi genetik 3. Defenisi dan implementasi operasi genetik

Jika ketiga aspek di atas telah didefinisikan, algoritma genetik akan bekerja dengan baik. Tentu saja, algoritma genetik bukanlah solusi terbaik untuk memecahkan segala masalah. Sebagai contoh, metode tradisional telah diatur untuk untuk mencari penyelesaian dari fungsi analitis convex yang “berperilaku baik” yang variabelnya sedikit. Pada kasus-kasus ini, metode berbasis kalkulus lebih unggul dari algoritma genetik karena metode ini dengan cepat menemukan solusi minimum ketika algoritma genetik masih menganalisa bobot dari populasi awal.

2.3.1.2 Teori Genetika

(12)

asam amino yang nantinya akan menghasilkan protein, hubungan antara himpunan nucleotide tersebut dengan asam amino itulah yang disebut kode genetik. Untuk itu sampai saat ini banyak penelitian yang terus bereksperimen dengan mengganti-ganti himpunan susunan dari DNA agar dapat menghasilkan bentuk sifat yang diinginkan dari makhluk hidup.

2.3.1.3 Struktur Umum

Algoritma genetik memberikan suatu pilihan bagi penentuan nilai parameter dengan meniru cara reproduksi genetik, pembentukan kromosom baru serta seleksi alami seperti yang terjadi pada makhluk hidup. Inisialisasi populasi awal dilakukan untuk menghasilkan solusi awal dari suatu permasalahan algoritma genetika. Inisialisasi ini dilakukan secara acak sebanyak jumlah kromosom/populasi yang diinginkan. Selanjutnya dihitung nilai fitness dan seterusnya dilakukan seleksi dengan menggunakan metode roulette – wheel ,. Kemudian dilakukan perkawinan silang (crossover) dan mutasi. Setelah melalui beberapa generasi maka algoritma ini akan berhenti sebanyak generasi yang diinginkan. Algoritma Genetika secara umum dapat diilustrasikan dalam gambar 2.1 :

Gambar 2.1 Alur Proses Algoritma Genetika

(13)

13

proses inisialisasi. Pembangkit populasi secara random ini menghasilkan calon solusi awal yang akan melalui tahap – tahap dalam algoritma genetika. Lalu kemudian dilakukan evaluasi terhadap nilai fitness kemudian dilakukan seleksi terhadap kormosom yang dihasilkan lalu dilakukan proses reproduksi crossover dan mutasi yang kemudian akan menghasilkan populasi baru.

Golberg (1989) mengemukakan bahwa algoritma genetik mempunyai karakteristik-karakteristik yang perlu diketahui sehingga dapat terbedakan dari prosedur pencarian atau optimasi yang lain, yaitu:

1. Algoritma genetika dengan pengkodean dari himpunan solusi permasalahan berdasarkan parameter yang telah ditetapkan bukan dengan parameter itu sendiri.

2. Algoritma genetika pencarian pada sebuah solusi dari sejumlah individu-individu yang merupakan solusi permasalahan bukan hanya dari sebuah individu.

3. Algoritma genetika informasi fungsi objektif (fitness), sebagai cara untuk mengevaluasi individu yang mempunyai solusi terbaik, bukan turunan dari suatu fungsi.

4. Algoritma genetik menggunakan aturan transisi peluang, bukan aturan-aturan deterministik.

Keempat karakteristik yang ada ini merupakan pembeda algoritma genetika dari prosedur pencarian atau optimasi yang lain.

2.3.1.4 Operator Genetika

(14)

bahwa solusi yang diperoleh adalah hasil optimum lokal. Operator genetika yang digunakan setelah proses evaluasi tahap pertama membentuk populasi baru dari generasi sekarang. Operator-operator tersebut adalah operator seleksi, crossover dan mutasi.

1. Seleksi

Seleksi bertujuan memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang paling fit. Langkah pertama dalam seleksi ini adalah pencarian nilai fitness. Masing-masing kromosom dalam suatu wadah seleksi akan menerima probabilitas reproduksi yang tergantung pada nilai objektif dirinya sendiri terhadap nilai objektif dari semua kromosom dalam wadah seleksi tersebut. Nilai fitness inilah yang nantinya akan digunakan pada tahap seleksi berikutnya [1].

Ada beberapa metode untuk memilih kromosom yang sering digunakan antara lain adalah seleksi roda rolet (roulette wheel selection), seleksi ranking (rank selection) dam seleksi turnamen (tournament selection).

Dalam penelitian ini, metode yang digunakan adalah seleksi roda rolet (roulette wheel selection). Pada seleksi ini, orang tua dipilih berdasarkan fitness mereka. Lebih kecil nilai suatu kromosom, lebih besar peluangnya untuk terpilih. Probabilitas suatu individu terpilih untuk crossover sebanding dengan fitness-nya. Cara penyeleksian ini merupakan peniruan dari permainan roda rolet.

Metode seleksi dengan roullete - wheel ini merupakan metode yang paling sederhana dan sering dikenal dengan nama stochastic sampling with replacement. Cara kerja metode ini adalah sebagai berikut :

a. Dihitung nilai inverse fitness (Q) dari masing-masing kromosom (fi, dimana I adalah individu ke-1 s/d ke - i) dengan persamaan

[�] = ��1 .. (2.1)

(15)

15

telah di cari.

c. Dihitung probabilitas (P) dari masing-masing individu

P[�] =� ���[�] ..(2.2)

d. Dari probabilitas tersebut, akan mulai terlihat kromosom yang mempunyai fitness paling kecil mempunyai probabilitas untuk terpilih pada generasi selanjutny lebih besar dari individu yang lainnya.

e. Sebelum dilakukanny proses seleksi menggunakan roulette – wheel terlebih dahulu di cari nilai kumulatif probabilitas (C)

C[�] = [�] + � [� + ] ..(2.3)

f. Setelah didapatkan nilai kumulatif probabilitas (C) maka proses seleksi dengan menggunakan roulette – wheel dapat dilakukan. Prosesnya adalah dengan membangkitkan bilangan acak R dalam range 0 – 1. Putar roullete – wheel sebanyak jumlah populasi yang di bangkitkan .

2. Crossover

Kawin silang (crossover) adalah operator dari algoritma genetika yang melibatkan dua induk untuk membentuk kromosom baru. Pindah silang menghasilakn titik baru dalam ruang pencarian yang siap untuk diuji. Operasi ini tidak selalu dilakukan pada semua indiidu yang ada. Individu dipilih secara acak untuk dilakukan crossing . Jika pindah silang tidak dilakukan , maka nilai dari induk akan diturunkan kepada keturunan.

Prinsip dari pindah silang ini adalah dengan melakukan operasi (pertukaran , aritmatika) pada gen – gen yang bersesuaian dari dua induk untuk menghasilkan individu baru. Proses crossover dilakukan pada setiap individu dengan probabilitas crossover yang di tentukan.

(16)

crossover dua titik , crossover banyak titik dan crossover aritmatika biasanya terdapat pada crossover bilangan biner .

Dalam kasus ini crossover yang akan digunakan adalah crossover untuk representasi permutasi. Sejak pertengahan 80’an, beberapa metode operator pindah silang diciptakan untuk representasi permutasi, seperti partial-mapped crossover, order crossover, cycle crossover, position-based crossover, order-based crossover,heuristic crossover, dll.

Metode representasi permutasi yang akan digunakan adalah Partial-Mapped Crossover (PMX). PMX diciptakan oleh Goldberg dan Lingle. PMX merupakan rumusan modifikasi dari pindah silang dua-poin. Hal yang penting dari PMX adalah pindah silang 2-poin ditambah dengan beberapa prosedur tambahan. PMX mempunyai langkah kerja sebagai berikut :

Prosedur PMX

Langkah 1 : Tentukan dua posisi pada kromosom dengan aturan acak. Substring yang berada dalam dua posisi ini dinamakan daerah pemetaan. Langkah 2 : Tukar dua substring antar induk untuk menghasilkan proto-child. Langkah 3 : Tentukan hubungan pemetaan di antara dua daerah pemetaan. Langkah 4 : Tentukan kromosom keturunan mengacu pada hubungan pemetaan. Prosedur ini dapat dilihat ilustrasinya pada Gambar 2.2.

(17)

17

Pada ilustrasi crossover dengan PMX operator kromosom yang dijadikan induk dipilih secara acak dan jumlah kromosom yang ditukarkan secara acak. Kemudian dilakukan penentuan posisi tempat terjadinya pemotongan substring secara acak . Setelah itu menentukan hubungan mapping dengan menukarkan substring yang telah dipilih dari induk 1 ke induk 2 yang kemudian menghasilkan keturunan baru yang mengacu pada hubungan mapping .

2. Mutasi

Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen dalam suatu kromosom. Operasi crossover yang dilakukan pada kromosom dengan tujuan untuk memperoleh kromosom-kromosom baru sebagai kandidat solusi pada generasi mendatang denga fitness yang lebih baik, dan lama-kelamaan menuju solusi optimum yang diinginkan. Akan tetapi, untuk mencapai hal ini, penekanan selektif juga memegang peranan yang penting. Jika dalam proses pemilihan kromosom-kromosom cenderung pada kromosom yang memiliki fitness yang tinggi saja, konvergensi premature, yaitu mencapai solusi yang optimal lokal sangat mudah terjadi.

Untuk menghindari konvergensi premature tersebut dan tetap menjaga perbedaan (diversity) kromosom-kromosom dalam populasi, selain melakukan penekanan selektif yang lebih efisien, operator mutasi juga dapat digunakan. Proses mutasi dalam system biologi berlangsung dengan mengubah isi allele gen pada suatu locus dengan allele yang lain. Proses mutasi ini bersifat acak sehingga tidak selalu menjamin bahwa setelah proses mutasi akan diperoleh kromosom dengan fitness yang lebih baik.

(18)

pada sekitar satu gen saja. Contoh :

( 1 2 3 4 5 6 7 9 8 ) = > (1 7 3 4 5 6 2 9 8 )

2.3.2. Fuzzy Logic (Logika Fuzzy) 2.3.2.1.Pengertian

Fuzzy secara bahasa diartikan sebagai kabur atau samar-samar. Suatu nilai dapat bernilai besar atau salah secara bersamaan. Dalam fuzzy dikenal derajat keanggotaan yang memiliki rentang nilai 0 (nol) hingga 1(satu). Berbeda dengan himpunan tegas yang memiliki nilai 1 atau 0 (ya atau tidak).

Algoritma Fuzzy merupakan suatu logika yang memiliki nilai kekaburan atau kesamaran (fuzzyness) antara benar atau salah. Dalam teori Algoritma Fuzzy satu nilai bias bernilai benar atau salah secara bersama. Namun berapa besar keberadaan dan kesalahan suatu tergantung pada bobot keanggotaan yang dimilikinya. Algoritma Fuzzy memiliki derajat keanggotaan dalam rentang 0 hingga 1. Berbeda dengan logika digital yang hanya memiliki dua nilai 1 atau 0. Algoritma Fuzzy digunakan untuk menterjemahkan suatu besaran yang diekspresikan menggunakan bahasa (linguistic), misalkan besaran kecepatan laju kendaraan yang diekspresikan dengan pelan, agak cepat, cepat, dan sangat cepat. Dan Algoritma Fuzzy menunjukan sejauh mana suatu nilai itu benar dan sejauh mana suatu nilai itu salah. Tidak seperti logika klasik (crisp) tegas, suatu nilai hanya mempunyai 2 kemungkinan yaitu merupakan suatu anggota himpunan atau tidak. Derajat keanggotaan 0 (nol) artinya nilai bukan merupakan anggota himpunan dan 1 (satu) berarti nilai tersebut adalah anggota himpunan.

Algoritma Fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input kedalam suatu ruang output, mempunyai nilai kontinyu. Fuzzy dinyatakan dalam derajat dari suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu sesuatu dapat dikatakan sebagian benar dan sebagian salah pada waktu yang sama.

(19)

19

seperti "sedikit", "sedang" dan "banyak" [1].

Adapun alur yang terjadi dalam fuzzy secara garis besar adalah dapat dilihat pada gambar 2.3 .

Gambar 2.3 Alur Proses Fuzzy

Pertama dimasukan inputan yang kemudian akan diproses untuk mencari nilai bobot . Kemudian pada proses fuzzifikasi mencari aturan / rule yang berlaku setelah itu mengkomposisikan bobot yang didapatkan dari aturan . Lalu yang terakhir menghitung nilai keluarang dengan menggunakan metode yang berlaku yang kemudian akan menghasilkan output .

2.3.2.2.Konsep Dasar Logika Fuzzy

(20)

1. Konsep logika fuzzy mudah dimengerti. Konsep matematis yang mendasari penalaran fuzzy sangat sederhana dan mudah dimengerti.

2. Logika fuzzy sangat fleksibel.

3. Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat.

4. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear yang kompleks. 5. Logika fuzzy dapat membangun dan mengaplikasikan

pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan. 6. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara

konvensional.

7. Logika fuzzy didasarkan pada bahasa alami.

Dalam logika fuzzy dikenal berhingga keadaan dari nilai “0” sampai ke nilai “1”. Logika fuzzy tidak hanya mengenal dua keadaan tetapi juga mengenal sejumlah keadaan yang berkisar dari keadaan salah sampai keadaan benar. Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy ini, yaitu : 1. Variabel Fuzzy

Variabel Fuzzy merupakan variabel yang hendak dibahas dalam suatu sistem Fuzzy.

2. Himpunan Fuzzy

Himpunan Fuzzy adalah himpunan yang tiap elemennya mempunyai derajat keanggotaan tertentu terhadap himpunannya.

Himpunan Fuzzy memiliki dua atribut, yaitu :

a. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami.

b. Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu variabel.

(21)

21

Gambar 2.4 Variable Temprature [1]

Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam satu himpunan A, yang sering ditulis dengan μA[x], memiliki 2 kemungkinan, yaitu: a. Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu

himpunan, atau

b. Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.

Contoh : Jika diketahui:

S = { 1, 2, 3, 4, 5, 6} adalah semesta pembicaraan. A = {1, 2, 3}

B = {3, 4, 5}

bisa dikatakan bahwa:

Nilai keanggotaan 2 pada himpunan A, μA[2]= 1, karena 2 anggota . Nilai keanggotaan 3 pada himpunan A, μA[3]= 1, karena 3 anggota A.

(22)

Nilai keanggotaan 3 pada himpunan B, μB[3]= 1, karena 3 anggota B. 3. Semesta Pembicaraan

Semesta pembicaraan adalah suatu keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel Fuzzy. Nilai semesta pembicaraan dapat berupa bilangan positif atau bilangan negatif.

4. Domain

Domain himpunan Fuzzy adalah keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan Fuzzy. Nilai domain dapat berupa bilangan positif maupun bilangan negatif.

2.3.2.3.Karakteristik Logika Fuzzy

Logika Fuzzy memiliki beberapa karakteristik yaitu himpunan Fuzzy dan fungsi keanggotaan [8].

1. Himpunan Fuzzy

Pada logika boolean, sebuah individu dipastikan sebagai anggota dari salah satu himpunan saja, sedangkan pada himpunan fuzzy sebuah individu dapat masuk pada dua himpunan yang berbeda. Seberapa besar eksistensinya dalam himpunan tersebut dapat dilihat pada nilai keanggotaannya.

2. Fungsi Keanggotaan (Membership Function)

Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan titik-titik input data ke dalam nilai keanggotaannya (disebut juga dengan derajat keanggotaan) yang memiliki interval antara 0 sampai 1. Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi. Derajat keanggotaan dalam himpunan (degree of membership) dilambangkan dengan µ .

Dalam sistem fuzzy banyak dikenal bermacam-macam fungsi keanggotaan (membership function) antara lain adalah fungsi keanggotaan linear , fungsi keanggotaan segitiga dan fungsi keanggotaan trapesium . Dalam game tower defense “Benteng Bertahan” fungsi keanggotaan yang akan digunakan adalah fungsi keanggotaan trapesium dan fungsi keanggotaan segitiga.

(23)

23

Kurva trapesium dinamakan demikian karena berbentuk trapesium. Dapat dilihat pada gambar 2.5 :

Gambar 2.5 Fungsi Keanggotan Kurva Trapesium

Fungsi keanggotaan trapesium :

.. (2.4)

�[ ] {

; �

�−�

−� ; �

�[ ] {

; �

−�

−� ; �

Representasi Kurva Segitiga

Kurva segitiga pada dasarnya merupakan gabungan antara dua garis dapat dilihat pada gambar 2.6 :

(24)

Fungsi keanggotaan Segitiga:

Seperti halnya konvensional , ada beberapa operasi yang didefinisikan secara khusus untuk mengkombinasi dan memodifikasi himpunan fuzzy. Nilai keanggotaan sebagai hasil dari operasi dua himpunan sering dikenal dengan namafire strength atau α-predikat. Ada tiga operator dasar yang diciptakan oleh zadeh , yaitu :

1. Operator AND

Operator ini berhubungan dengan operasi interseksi pada himpunan. Fire strength sebagai hasil operasi dengan operator AND diperoleh dengan mengambil nilai keanggotaan terkecil antar elemen pada himpunan-himpunan yang bersangkutan.

� ∩ � = min � [ ], �� [ ]

.. (2.6)

2. Operator OR

Operator ini berhubungan dengan operasi union pada himpunan. Fire strength sebagai hasil operasi dengan operator OR diperoleh dengan mengambil nilai keanggotaan terbesar antara elemen pada himpunan-himpunan yang bersangkutan.

� � = max � [ ], �� [ ]

..

(2.7)

3. Operator NOT

(25)

25

Fire strength sebagai hasil operasi dengan operator NOT diperoleh dengan mengurangkan nilai keanggotaan elemen pada himpunan yang bersangkutan dari 1.

� [ ] = − � [ ] .. (2.8)

Operator Dasar zadeh yang akan digunakan adalah operator AND . Setelah setiap parameter dihitung dan kemudian mendapatkan nilai bobot , setiap nilai tersebut akan dibandingkan dan akan dicari nilai terkecil sesuai dengan aturan fuzzy tsukamoto

2.3.2.5.Fuzzyfikasi

Fuzzifikasi adalah pengubahan seluruh variabel input/output ke bentuk himpunan fuzzy. Rentang nilai variabel input dikelompokkan menjadi beberapa himpunan fuzzy dan tiap himpunan mempunyai derajat keanggotaan tertentu.

Bentuk fuzzifikasi yang dipakai pada sistem ini adalah bentuk segitiga dan bentuk bahu. Bentuk fuzzifikasi menentukan derajat keanggotaan suatu nilai rentang input/output. Derajat keanggotaan himpunan fuzzy dihitung dengan menggunakan rumus fungsi keanggotaan dari segitiga fuzzifikasi [8].

2.3.2.6.Inferensi Fuzzy

Setelah fungsi keanggotaan untuk variabel masukan dan keluarannya ditentukan, basis aturan pengendalian dapat dikembangkan untuk menghubungkan aksi keluaran pengendali terhadap kondisi masukannya. Tahap ini disebut sebagai tahap inferensi, yakni bagian penentuan aturan dari sistem logika fuzzy. Sejumlah aturan dapat dibuat untuk menentukan aksi pengendali fuzzy[8].

(26)

Metode Tsukamoto pertama kali dperkenalkan oleh tsukamoto . Setiap konsekuen (kesimpulan) pada setiap aturan IF-THEN harus direpresentasikan dengan suatu himpunan fuzzy dengan fungsi keanggotaan monoton. Output hasil inferensi dari setiap aturan deberikan secara tegas (crip) berdasarkan α – predikat , kemudian menghitung rata-rata terbobot (weight average) yang kemudian dalam kasus ini pada tiap nilai akan dibandingkan dan kemudian akan mendapatkan nilai terkecil yang kemudian menjadi output bagi tower berupa perioritas serangan yang dilakukan oleh tower.

2.4. Object Oriented Programing

Object Oriented Programming (OOP) merupakan paradigm pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus ke dalam kelas-kelas atau objek-objek. Kelebihan penggunaan model data berorientasi objek adalah memberikan fleksibilitas.

Kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek–objek apa yang dapat melakukan pemecahan masalah tersebut. Pemrograman berorientasi objek menekankan konsep berikut:

(27)

27

dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.

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

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

mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin 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.

(28)

fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

6. Inheritas (Inheritance) - Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) behavior mereka tanpa harus mengimplementasi ulang behavior tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas) [10].

2.5. UML (Unified Modeling Language)

UML (Unified Modeling Language) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun system (Flowler,2006). Unified Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM.

UML adalah suatu bahasa yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi. UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus meningkat. Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan System [9] .

UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu :

1. Use Case Diagram untuk memodelkan proses bisnis.

(29)

29

3. Sequence Diagram untuk memodelkan pengiriman pesan (message) antar objects.

4. Collaboration Diagram untuk memodelkan interaksi antar objects. 5. State Diagram untuk memodelkan perilaku objects di dalam sistem.

6. Activity Diagram untuk memodelkan perilaku Use Cases dan objects dalam Sistem.

7. Class Diagram untuk memodelkan struktur kelas. 8. Object Diagram untuk memodelkan struktur object.

9. Component Diagram untuk memodelkan komponen object. 10. Deployment Diagram untuk memodelkan distribusi aplikasi.

2.6. Tools yang digunakan 2.6.1. Adobe Flash Pro CS5.5

Adobe Flash Profesional CS 5.5 merupakan salah satu program animasi 2D vektor yang sangat digemari oleh para animator. Dalam perkembangannya, program adobe flash pro melakukan banyak penyempurnaan pada setiap versinya. Program ini dapat menampilkan beberapa fitur baru yang membuat adobe flash semakin canggih untuk urusan animasi 2D berbasis vektor.

Berbagai aplikasi animasi 2D mulai dari animasi kartun, animasi interaktif, game, company profile, presentasi, video clip, animasi web dan aplikasi animasi lainnya sesuai kebutuhan dapat diolah. Dan kini flash didukung dengan kemampuannya dalam embuat animasi transformasi 3D, serta panel yang khusus untuk membuat animasi dengan ActionScript yang lebih mudah pemakaiannya.

2.6.2. Adobe Illustrator CS5.1

(30)

2.6.3. Adobe Photoshop

(31)

31 BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Masalah

Berdasarkan latar belakang masalah diatas, maka dapat dirumuskan masalah adalah bagaimana menyelesaikan masalah tentang perilaku tower dalam mengambil keputusan serta pencarian jalur terbaik bagi enemy dalam mencapai base player. Selanjutnya , perumusan masalah dari permasalahan di atas adalah sebagai berikut :

1. Bagaimana membuat pergerakan enemy lebih dinamis dalam melakukan pemilihan jalur.

2. Bagaimana membuat tower berperilaku dalam mengambil keputusan .

3.2. Analisis Game

Game yang akan dibangun berjudul “Benteng Bertahan” yang ber-genre Strategy, dimana player harus berusaha mempertahankan kota yang menjadi benteng terakhir bagi manusia.

3.2.1. Storyline

Tower defense “Benteng Bertahan” menceritakan tentang penyerbuan enemy

terhadap manusia. Kekuatan enemy yang jauh diluar perkiraan manusia membuat semua benteng yang ada di dunia berhasil di hancurkan oleh enemy dengan sangat mudah. Enemy juga membunuh semua manusia yang hidup sehingga ras manusia terancam punah dan musnah.

(32)

Di suatu tempat di sebuah kota bernama Rain City , hiduplah seorang pemuda . Pemuda tersebut adalah seorang ahli strategi yang sangat jenius. Dia berhasil mempertahankan banyak benteng tempat tinggalnya umat manusia dari serangan para enemy yang mencoba untuk menghancurkan ras manusia. Dengan taktik dan strategi dalam penempatan tower sehingga tidak seekor enemy pun bisa memasuki benteng – benteng yang telah dia jaga. Tetapi kedamaian tidak selamanya terjadi , tiba - tiba enemy datang !!! kali ini enemy berusaha untuk menghancurkan Benteng Takesi . Penduduk benteng tersebut memanggil sang pemuda jenius untuk menyelamatkan mereka dari serangan enemy .

Player adalah seorang ahli strategi yang sangat jenius. Ia harus menghentikan enemy yang akan mencoba untuk menghancurkan Benteng Takesi yang menjadi benteng pertahanan umat manusia dengan berbekal kemampuan strategi dan tower – tower yang akan membantu player dalam mempertahankan dan menghentikan usaha enemy untuk menghancurkan Benteng Takesih !!!

3.2.2. Gameplay

(33)

33

pada node B – C mempunyai nilai sebesar 32 , apabila player meletakan tower diantara node B – C maka nilai jarak antara node B – C akan menjadi sebesar 52 . Dalam kasus pemasangan tower yang melalui 2 jalur node maka tiap jalur node akan mendapatkan tambahan nilai sebesar 20. Misalkan tower di pasang melalui jalur node B – C dan C – D yang terletak pada persimpangan . Apabila node B – C mempunyai nilai sebesar 32 dan node C – D mempunyai nilai sebesar 7 , maka nilai node B – C yang baru akan menjadi 52 dan node C – D akan menjadi 27 .

Dalam game ini juga digunakan fuzzy logic sebagai kecerdasan buatan bagi tower dalam mengambil keputusan dalam menyerang berdasarkan tingkat prioritas enemy. Dalam fuzzy logic parameter yang akan digunakan adalah Health Point Enemy (HPE ) , Damage Point Enemy (DPE) dan Jarak Enemy (JE) . Jarak Enemy dalam fuzzy logic berbeda dengan jarak yang digunakan dalam algoritma genetika . Pada jarak dalam kasus perhitungan fuzzy logic akan digunakan sebagai parameter yang menentukan posisi enemy . Apabila enemy sudah memasuki jarak tembak tower maka tower akan mulai melakukan perhitungan dengan menggunakan fuzzy tsukamoto berdasarkan inputan parameter berupa HPE , DPE dan JE . Nilai – nilai yang dihasilkan dalam perhitungan fuzzy kemudian akan masuk dalam proses fuzzyfikasi . Setelah proses fuzzyfikasi dilakukan nilai terebut akan dibandingkan dalam proses inferensi fuzzy yang mana akan di cari nilai MIN sesuai dengan aturan fuzzy tsukamoto. Setelah itu dilakukan proses deffuzifikasi yaitu perhitungan nilai keluaran dengan rata – rata terbobot yang kemudian akan menghasilkan output berupa prioritas serangan terhadap enemy .

(34)

Di dalam permainan, terdapat 6 wave yang harus diselesaikan pemain. Setiap wave memiliki waktu jeda sebanyak 10 detik sebelum wave berikutnya keluar. Jadi selama rentang waktu tersebut, player harus membangun tower-tower untuk menghancurkan enemy dan juga terdapat beberapa jenis tower yang dapat dibangun oleh player. Player dapat membangun 3 jenis tower dengan kemampuan yang berbeda pada setiap tower. Diantaranya adalah Tower Api , Tower Es dan Tower Listrik . Tower api mempunyai damage point terbesar diantara tower – tower yang lain . Tower Es dapat memperlambat pergerakan enemy dan Tower Listrik mempunya kecepatan serangan yang tinggi.

Pada stage 1 benteng diserang oleh enemy . Tiba – tiba enemy datang , mereka mencoba menghancurkan benteng takesi tempat umat manusia tinggal . Pada stage 1 setting jalan menuju benteng , player mempunyai misi untuk menghancurkan enemy yang berusaha memasuki base dan memukul mundur enemy keluar menjauhi kota. Player akan memenangkan permainan apabila berhasil mempertahnkan kota dan memukul mundur enemy .

Pada stage sebelumnya enemy berhasil dipukul mundur oleh player menjauhi benteng. Pada stage 2 ini perjuangan player belum selesai . Player harus menghancurkan sisa pasukan enemy yang masi berusaha memasuki benteng. Permainan akan berakhir apabila player berhasil menghancurkan semua sisa enemy yang berusaha memasuki kota .

3.3. Analisis Data Masukan

3.3.1. Data Masukan Algoritma Genetika

(35)

35

buah node . Pada setiap node mempunyai nilai yang akan menjadi acuan dalam perhitungan algoritma genetika.

Gambar 3.1 Play area node

3.3.2. Data Masukan Fuzzy Logic

(36)

tersebut berasal dari parameter atau atribut yang dimiliki oleh enemy. Faktor-faktor yang menjadi data masukan tersebut antara lain :

a. JE (Jarak Enemy) adalah jarak tembak tower terhadap enemy . Apabila enemy telah memasuki jarak tembak tower maka secara otomatis tower akan bereaksi terhadap enemy dan mulai menyerang untuk menghentikan laju enemy menuju base player. Jarak enemy berkisar antara 1 – 10 yang mana 1 merupakan jarak terdekat enemy terhadap tower dan 10 merupakan jarak terjauh yang bisa di serang oleh tower . Jarak dari tower ke enemy dihitung berdasarkan perhitungan antara posisi tower dan enemy dengan menggunakan rumus : dalam jarak dengan satuan px .

(37)

37

60 60 px

70 70 px

80 80 px

90 90 px

100 100 px

Apabila nilai dalam hitungan fuzzy didapatkan nilai 10 maka pada jarak antara tower dan enemy sebesar 10 px .

b. DPE (Damage Point Enemy) adalah jumlah point serangan yang diberikan oleh enemy terhadap tower. Damage Point pada setiap enemy dibangkitkan secara random dengan rentang nilai antara 1 – 10 . Jadi pada setiap enemy akan mempunyai damage point berkisar antara 1 sampai dengan 10 point . Apabila enemy mempunyai point serangan sebesar 10 point maka tower pemain akan berkurang sebanyak 10 point .

Assumsi Enemy dengan DPE sebesar 10 point menyerang Tower Api Pengurangan HPT (Health Point Tower) dapat dihitung dengan rumus : HPT = HPT sebelum – DPE

HPT untuk Tower Api sebesar 175

Tabel 3.2 Assumsi serangan Enemy terhadap Tower Api

NO Tower Api

HP DPE

(38)

2 165 10

3 155 10

4 145 10

5 135 10

6 125 10

7 115 10

8 105 10

9 95 10

10 85 10

11 75 10

12 65 10

13 55 10

14 45 10

15 35 10

16 25 10

17 15 10

18 5 10

19 -5 -

(39)

39

Assumsi Enemy dengan DPE sebesar 10 point menyerang Tower Es Pengurangan HPT (Health Point Tower) dapat dihitung dengan rumus : HPT = HPT sebelum – DPE

HPT untuk Tower Es sebesar 150

Tabel 3.3 Assumsi serangan Enemy terhadap Tower Es

NO Tower Es

HP DPE

1 150 10

2 140 10

3 130 10

4 120 10

5 110 10

6 100 10

7 90 10

8 80 10

9 70 10

10 60 10

11 50 10

12 40 10

13 30 10

14 20 10

15 10 10

(40)

Pada tabel3.3 dapat dilihat proses pengurangan Health Point (HP) Tower Es ketika mendapat serangan dari enemy dengan damage sebesar 10 point .

Assumsi Enemy dengan DPE sebesar 10 point menyerang Tower Listrik Pengurangan HPT (Health Point Tower) dapat dihitung dengan rumus : HPT = HPT sebelum – DPE

HPT untuk Tower Listrik sebesar 100

Tabel 3.4 Assumsi serangan Enemy terhadap Tower Listrik

NO Tower Listrik

HP DPE

1 100 10

2 90 10

3 80 10

4 70 10

5 60 10

6 50 10

7 40 10

8 30 10

9 20 10

10 10 10

(41)

41

Pada tabel3.4 dapat dilihat proses pengurangan Health Point (HP) Tower Petir ketika mendapat serangan dari enemy dengan damage sebesar 10 point .

Keterangan :

DPE = Damage yang di hasilkan enemy terhadap tower HPT = Health Point yang dimiliki oleh tower

HPT sebelum = Health Point yang dimiliki oleh tower sebelum terkena serangan oleh enemy

c. HPE (Health Point Enemy) adalah point yang dimiliki enemy agar tetap hidup dan bergerak menuju base player. Enemy akan berhenti bergerak dan kalah apabila HPE mencapai nilai 0. HPE yang dipunyai setiap enemy ketika pertama kali muncul adalah 100 dan akan terus berkurang apabila mendapatkan serangan dari tower .

Assumsi Tower Api menyerang Enemy .

Pengurangan HPE (Health Point Enemy) dapat dihitung dengan rumus : HPE = HPE sebelum – DPT

Tabel 3.5 Assumsi Tower Api menyerang Enemy

NO Enemy

HP DPT

1 100 4

2 96 4

3 92 4

(42)

5 84 4

6 80 4

7 76 4

8 72 4

9 68 4

10 64 4

11 60 4

12 56 4

13 52 4

14 48 4

15 44 4

16 40 4

17 36 4

18 32 4

19 28 4

20 24 4

21 20 4

22 16 4

23 12 4

24 8 4

25 4 4

(43)

43

Pada tabel 3.5 dapat dilihat proses pengurangan Health Point (HP) Enemy ketika mendapat serangan dari Tower Api dengan damage sebesar 4 point .

Assumsi Tower Es menyerang Enemy .

Pengurangan HPE (Health Point Enemy) dapat dihitung dengan rumus : HPE = HPE sebelum – DPT

Tabel 3.6 Assumsi Tower Es menyerang Enemy

NO Enemy

HP DPT

1 100 2

2 98 2

3 96 2

4 94 2

5 92 2

6 90 2

7 88 2

8 86 2

9 84 2

10 82 2

11 80 2

12 78 2

13 76 2

(44)

15 72 2

16 70 2

17 68 2

18 66 2

19 64 2

20 62 2

21 60 2

22 58 2

23 56 2

24 54 2

25 52 2

26 50 2

27 48 2

28 46 2

29 44 2

30 42 2

31 40 2

32 38 2

33 36 2

34 34 2

35 32 2

36 30 2

37 28 2

(45)

45

39 24 2

40 22 2

41 20 2

42 18 2

43 16 2

44 14 2

45 12 2

46 10 2

47 8 2

48 6 2

49 4 2

50 2 2

51 0 -

Pada tabel3.6 dapat dilihat proses pengurangan Health Point (HP) Enemy ketika mendapat serangan dari Tower Es dengan damage sebesar 2 point .

Assumsi Tower Listrik menyerang Enemy .

(46)

Tabel 3.7 Assumsi Tower Listrik menyerang Enemy

NO Enemy

HP DPT

1 100 5

2 95 5

3 90 5

4 85 5

5 80 5

6 75 5

7 70 5

8 65 5

9 60 5

10 55 5

11 50 5

12 45 5

13 40 5

14 35 5

15 30 5

16 25 5

17 20 5

18 15 5

19 10 5

20 5 5

(47)

47

Pada tabel3.7 dapat dilihat proses pengurangan Health Point (HP) Enemy ketika mendapat serangan dari Tower Listrik dengan damage sebesar 5 point .

Keterangan :

DPT = Damage yang di hasilkan tower terhadap enemy HPE = Health Point yang dimiliki oleh enemy

HPE sebelum = Health Point yang dimiliki oleh enemy sebelum terkena serangan oleh tower

3.4. Analisis Algoritma

3.4.1. Analisis Proses Algoritma Genetika

(48)

Gambar 3.2 Play area dengan Asumsi Peletakan Tower

(49)

49

ke node C terdapat tower yang di pasang maka jarak yang semula bernilai 72 akan di tambah dengan nilai 20 dan akan menjadi 92 . Dalam kasus peletekan tower pada persimpangan yang dilewati 2 jalur node pada tiap jalur node akan dikenakan nilai sebesar 20 . Contohnya , apabilah melakukan pemasangan tower pada jalur node E – F serta node C – E maka nilai untuk jalur node E – F yang semula mempunyai nilai 2 akan menjadi 22 sedangkan untuk node C – E yang semula mempunyai nilai sebesar 32 akan menjadi 52. Adapun proses yang terjadi dalam algoritma genetika dapat dilihat pada gambar 3.3 .

Gambar 3.3 Alur Proses Algoritma Genetika

3.4.1.1 Inisialisasi

(50)

Kromosom[1] : A B D E G C F H Kromosom[6] : A B D E G C F H

Evaluasi kromosom dilakukan dengan menghitung nilai fitness dari kromosom yang telah dibangkitkan. Perhitungan nilai fitness dari kromosom [1] yaitu A B D E G B F H diperoleh dengan cara menjumlahkan biaya dari node A – B , B – D , D – E , E – G , G – B , B – F , F – H serta menjumlah nilai tower yang terdapat pada tiap jalur .

Tabel 3.8 Nilai Jarak Antar Node

(51)

51

Tabel 3.9 Nilai Fitness dari tiap Kromosom

Kromosom Node Yang dilalui Fitness 1 A B D E G C F H 213 2 A B C E D F G H 242 3 A B C G F E D H 261 4 A B C E D F G H 242

5 A B D F E C G H 205

6 A B D E G C F H 213 7 A B C G F E D H 261

8 A B D F E C G H 205

9 A B C G F E D H 261

10 A B D F E C G H 205

Nilai jarak antar node adalah nilai yang di dapat dari penjumlahan jarak antara 1 titik node ke titik node yang dituju sedangkan nilai fitness dari tiap kromosom didapatkan dengan cara menjumlahkan titik – titik node yang ada sesuai dengan node – node pada jalur yang dipilih.

3.4.1.3 Seleksi Kromosom

Hal yang pertama kali dilakukan dalam proses seleksi adalah mencari nilai perhitungan invers kromosom (Q) . Nilai perhitungan invers kromosom (Q) akan dihitung menggunakan persamaan 2.1 :

(52)

Tabel 3.10 Nilai Invers Fitness dari tiap Kromosom Kromosom Nilai Invers [Q]

1 0.0046

2 0.0041

3 0.0038

4 0.0041

5 0.0048

6 0.0046

7 0.0038

8 0.0048

9 0.0038

10 0.0048

Total = Q [1] + Q [2] + Q [3] + Q [4] + Q [5] + Q [6] + Q [7] + Q [8] + Q [9] + Q [10]

= 0,0046 + 0,0041 + 0,0038 + 0,0041 + 0,0048 + 0,0046 + 0,0038 + 0,0048 + 0,0038 + 0,0048

= 0,0432

(53)

53

Nilai probabilitas kromosom pertama P [1] : P [ ] = ,, = ,

Sehingga pada tabel 3.11 diperoleh untuk nilai probabilitas dari 10 kromosom yang dibangkitkan.

Tabel 3.11 Nilai Probabilitas dari tiap Kromosom Kromosom Nilai Probabilitas [P]

1 0,106

2 0,094

3 0,087

4 0,094

5 0,111

6 0,106

7 0,087

8 0,111

9 0,087

10 0,111

Untuk proses seleksi digunakan roulette wheel , untuk itu terlebih dahulu dicari nilai kumulatif probabilitasnya (C) dengan persamaan 2.3 :

C[1] = 0,106

(54)

C[7] = 0,598 + 0,087 = 0.685 C[8] = 0,685 + 0,111 = 0,796 C[9] = 0,796 + 0,087 = 0,883 C[10]= 0,883 + 0,111 = 0,994

Setelah dihitung kumulatif probabilitasnya maka proses seleksi menggunakan roulette – wheel dapat dilakukan. Prosesnya adalah dengan membangkitkan bilangan acak R dalam range 0 – 1 . Putar roulette – wheel sebanyak jumlah populasi yaitu 10 kali (bangkitkan bilangan acak R) .

R [1] = 0,587 R [2] = 0,142 R [3] = 0,511 R [4] = 0,211 R [5] = 0,743 R [6] = 0,432 R [7] = 0,104 R [8] = 0,392 R [9] = 0,501 R[10]= 0,657

Angka acak pertama R[1] adalah lebih besar dari C[1] dan lebih kecil daripada C[2] . Maka kromosom [2] akan digunakan sebagai kromosom pada populai baru :

(55)

55

Kromosom [6] = Kromosom [5] Kromosom [7] = Kromosom [7] Kromosom [8] = Kromosom [8] Kromosom [9] = Kromosom [9] Kromosom [10] = Kromosom [10]

Populasi baru akan terbentuk :

Kromosom [1] = [2] = A B C E D F G H

Melakukan operasi crossover , satu bagian kromosom dengan tetap menjaga urutan node yang bukan bagian dari kromosom tersebut. Misalkan ditentukan crossover probabilitas adalah sebesar 10%

Bangkitkan bilangan acak sebanyak jumlah populasi yaitu 10 kali .

(56)

R [6] = 0,480 R [7] = 0,265 R [8] = 0,425 R [9] = 0,598 R[10]= 0,752

Kromosom yang mempunyai R[k] terendah misalkan 2 dan 4 .Melakukan Partial – Mapped Crossover (PMX) .

Kromosom [2] >< Kromosom [4]

A B D E G C F H A B C G F E D H

Disini substring yang akan di acak adalah substring ke 5 pada setiap kromosom

G

F

Keturunan 1 = A B D E F C G H Keturunan 2 = A B C F G E D H

3.4.1.5 Mutasi

(57)

57

Hitung total gen = jumlah gen dalam kromosom * jumlah kromosom = 8 * 10

= 80

Memilih posisi gen yang mengalami mutasi dengan membangkitkan bilangan acak antara 1 sampai panjang total gen yaitu 1 – 80 , Apabila pm = 10%, maka

Mengevaluasi setiap populasi dengan menghitung nilai fitness setiap individu pada generasi ke 10 . Dari hasil perhitungan didapatkan gen terbaik adalah A B D F E C G H dengan fitness sebesar 0.0048 dan probabilitas sebesar 0,111 . Jadi rute terbaik yang diambil adalah dari node A , kemudian node B , kemudian node D , kemudian node F , kemudian node E , kemudian node C , kemudian node G dan terakhir adalah node H.

3.4.2. Analisis Proses Fuzzy Logic

(58)

Gambar 3.4 Proses Serangan tower terhadap enemy

(59)

59

dikomposisikan bobot yang didapatkan dengan operator zadeh , dalam kasus ini akan menggunakan operator and yang kemudian akan dicari nilai terkecil sesuai dengan metode MIN pada fuzzy tsukamoto. Setelah itu akan didapatkan nilai keluaran terhadap prioritas tower dalam menghancurkan enemy.

Data masukan yang ditunjukan pada Gambar 3.4 , harus dihitung dalam fungsi keanggotaan fuzzy , data masukan fuzzy sendiri terdiri dari HPE (Health Point Enemy) , JE (Jarak Enemy) dan DPE (Damage Point Enemy).

3.4.2.1. Basis Pengetahuan

Pada sistem ini berbasis pengetahuan berisi kriteria pengambilan keputusan dan himpunan fuzzy masing-masing kriteria. Kriteria tersebut digolongkan menjadi himpunan bahasa Variabel penentuan sebagai berikut :

1. HPE (Health Point Enemy ) : Sedikit , Sedang dan Banyak 2. JE (Jarak Enemy ) : Dekat , Sedang dan Jauh

3. DPE ( Damage Point Enemy ) : Kecil , Sedang dan Kuat

(60)

Tabel 3.12 Semesta Pembicara

Nama Variabel Semesta

Pembicaraan Keterangan Health Point Enemy [ 0 – 100 ] Health Point yang

dimiliki oleh enemy

Jarak Enemy [ 0 – 100] Jarak yang enemy dengan Tower

Damage Point Enemy [ 0 – 10] Damage Point yang

dimiliki oleh enemy

Fungsi Derajat Keanggotaan

Pada fungsi derajt keanggotaan menggunakan Tsukamoto dibagi menjadi keanggotaan jumlah HPE , JE dan DPE .

Fungsi keanggotaan DPE (Damage Point Enemy ) diambil berdasarkan jumlah DPE yang didapatkan dari rentang 10 – 100.

Tabel 3.13 Fungsi Keanggotaan HPE Fungsi Keanggotaan Rentang Nilai

Sedikit 0 – 30

Sedang 20 – 80

(61)

61

Gambar 3.5 Grafik Fungsi Keanggotaan HPE

a. Himpunan Fuzzy sedikit

Himpunan Fuzzy sedikit memiliki domain nilai antara 0 – 30 , dimana fungsi keanggotaanya dihitung berdasar fungsi transpesium .. (2.4) .

µSedikit =

{

; − −

;

, , ,

b. Himpunan Fuzzy sedang

(62)

µSedang =

Himpunan Fuzzy banyak memiliki domain nilai antara 70 – 100 , dimana fungsi keanggotaanya dihitung berdasar fungsi transpesium .. (2.4) .

µBanyak = {

Tabel 3.14 Fungsi Keanggotaan JE Fungsi Keanggotaan Rentang Nilai

Dekat 0 – 30

Sedang 20 – 80

(63)

63

Gambar 3.6 Grafik Fungsi Keanggotaan JE

a. Himpunan Fuzzy dekat

Himpunan Fuzzy dekat memiliki domain nilai antara 0 – 30 , dimana fungsi keanggotaanya dihitung berdasar fungsi transpesium .. (2.4) .

µDekat =

Himpunan Fuzzy sedang memiliki domain nilai antara 20 – 80 , dimana fungsi keanggotaanya dihitung berdasar fungsi segitiga .. (2.5) .

(64)

c. Himpunan Fuzzy Jauh

Himpunan Fuzzy Jauh memiliki domain nilai antara 70 – 100 , dimana fungsi keanggotaanya dihitung berdasar fungsi transpesium .. (2.4) .

µJauh = {

; −

− ;

,, ,

Fungsi keanggotaan DPE (Damage Point Enemy ) diambil berdasarkan jumlah DPE yang didapatkan dari rentang 1 – 10.

Tabel 3.15 Fungsi Keanggotaan DPE Fungsi Keanggotaan Rentang Nilai

Lemah 0 – 3

Sedang 2 – 8

Kuat 7 – 10

(65)

65

a. Himpunan Fuzzy Lemah

Himpunan Fuzzy Lemah memiliki domain nilai antara 0 – 3 , dimana fungsi keanggotaanya dihitung berdasar fungsi transpesium .. (2.4) .

µLemah =

Himpunan Fuzzy sedang memiliki domain nilai antara 2 – 8 , dimana fungsi keanggotaanya dihitung berdasar fungsi segitiga .. (2.5) .

µSedang =

Himpunan Fuzzy Kuat memiliki domain nilai antara 70 – 100 , dimana fungsi keanggotaanya dihitung berdasar fungsi transpesium .. (2.4) .

µKuat = {

(66)

proposisi yang mengikuti THEN disebut konsekuen. Berikut ini adalah tetapan aturan pemilihan target tembak pada NPC Tower .

Tabel 3.16 Tetapan Aturan Pemilihan Target Tembak NPC Tower

ANTESEDEN KONSEKUEN

Operator Jarak Operator HPE Operator DPE Operator Prioritas

IF

Operator HPE Operator JE Operator DPE Operator Prioritas

(67)

67

Jauh Kuat Sangat

Tinggi

ANTESEDEN KONSEKUEN

Operator DPE Operator HPE Operator JE Operator Prioritas

(68)

Enemy pertama :

µℎ� ��� = − = = ,

µ �� = − = =

µ � � ��� = −

− = = ,

Enemy kedua :

µℎ� ��� = − = =

µ � ��� = −

− = =

µ � � ��� = −− = =

Enemy ketiga :

µℎ� ��� �� = −

− = = ,

µ � ℎ = − = =

(69)

69

(70)

= min (µ �� ��� �� ∩ µ � ℎ ∩ µ � � = min (0,66 ; 1 ; 0)

= 0

Proses inferensi pada fuzzy tsukamoto menggunakan metode MIN , yaitu mengambil nilai terkecil dari predikat , seingga nilai predikat1 = 0,45 nilai predikat2 = 1 nilai predikat3 = 0 . Maka nilai terkecil terdapat pada predikat2 yaitu sebesar 0 . Hasil kesimpulan aturan predikat3 dapat dilihat pada gambar 3.8 .

Gambar 3.8 Daerah Hasil Komposisi Aturan Metode Min Predikat2

Berdasarkan Gambar 3.8 enemy dengan predikat3 terletak pada area dengan prioritas “Sangat Tinggi” dan akan menjadi prioritas tower dalam melakukan serangan .

3.5. Analisis Kebutuhan Sistem

Analisis kebutuhan sistem ini mencakup kebutuhan fungsional dan kebutuhan non-fungsional. Kebutuhan fungsional akan dijelaskan menggunakan Object Oriented Modeling (OOM) dengan Unified Modeling Language.

Gambar

Gambar 3.1 Play area node
Tabel 3.2 Assumsi serangan Enemy terhadap Tower Api
Tabel 3.5 Assumsi Tower Api menyerang Enemy
Tabel 3.6 Assumsi Tower Es menyerang Enemy
+7

Referensi

Dokumen terkait

Konsumen adalah setiap orang atau badan yang membeli tenaga listrik dari pemegang Izin Usaha Penyediaan Tenaga Listrik untuk digunakan sebagai pemanfaatan akhir dan tidak

Gam Arab perencat hijau sering digunakan sebagai satu bahan salutan dan kini ia diterapkan dalam pembangunan bahan plat dwikutub bagi aplikasi sel fuel memandangkan

25 Kemudian ia berkata: Di sini, pada awal permulaan kita melihat dengan jelas perbedaan antara agama Kristen (asal) ini dengan agamanya kaisar konstantin yang

Vastauksista kävi ilmi myös raakaruokinnan positiivisiksi koetut vaikutukset koirien kehonkoostumukseen, sillä 36 (6,5 %) omistajaa raportoi koiran lihasmassan

Sebagai contoh ketika murid menjawab soalan yang diberikan oleh guru dengan betul maka guru boleh memberikan pujian kepadanya atau dengan memberikannya hadiah supaya

Apoteker bertanya kepada pasien tentang informasi yang diberikan dokter, cara penggunaan obat, dan harapan dokter setelah pasien mengkonsumsi obat tersebut. Apoteker

Pasal 42 yang menyatakan bahwa “Anak sah adalah anak yang dilahirkan dalam atau sebagai akibat perkawinan yang sah”, dan Pasal 43 ayat (1) yang menyatakan: “Anak yang

Hasil simulasi menunjukkan bahwa skema PI-AW mampu menghasilkan respon terbaik untuk kecepatan dan torsi dengan sinyal kendali yang dihasilkan tidak melebihi