Implementasi algoritma genetika dan fuzzy logic pada Game Tower Defense

(1)

1

Tower Defense adalah sebuah game real time strategy yang merupakan MOD (modifikasi) dari game strategi popular Warcraft 3 yang diproduksi 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 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.

Berangkat dari masalah di atas , pada masalah pemilihan jalur dapat diselesaikan dengan berbagai macam jenis Algoritma , diantaranya algoritma a –


(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

Berdasarkan latar belakang masalah yang diteliti , maka dapat dirumuskan masalah adalah bagaimana membuat pergerakan enemy lebih dinamis dalam melakukan pemilihan jalur dan juga bagaimana membuat tower berperilaku dalam mengambil keputusan .


(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

Metodologi penelitian adalah sekumpulan peraturan , kegiatan , dan prosedur yang digunakan. Metodologi juga merupakan analisis teoritis mengenai suatu cara atau metode yang akan digunakan dalam penelitian . Dalam 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)

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

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


(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

Bab ini berisi kesimpulan berdasarkan data hasil analisa yang diperoleh dari pengujian, serta saran dari hasil penelitian yang dilakukan.


(7)

7 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.

AI diartikan secara berbeda-beda tergantung pada sudut pandang para ahli masing-masing. Ada yang hanya focus pada logika berpikir manusia saja dan ada


(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.

Pada akhirnya, akan didapatkan solusi-solusi yang paling tepat bagi permasalahan yang dihadapi. Untuk menggunakan algoritma genetik , solusi


(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

Teori tentang genetika sudah berkembang sejak lama. Teori yang menyatakan bahwa makhluk hidup menurunkan sifat dari induknya telah dikembangkan sejak zaman pra sejarah. Dimana teori tersebut digunakan dalam proses penyatuan jenis tumbuhan maupun hewan untuk didapatkan sifat yang sesuai dengan keinginan. Walaupun ilmu genetika modern yang menelusuri proses penurunan sifat itu dimulai sejak pertengahan abad ke-19 yang dilakukan oleh Gregor Mendel. Walaupun dia tidak tahu basis utama dari kesamaan sifat yang diturunkan itu, Mendel mengobservasi bahwa makhluk hidup menurunkan sifat melalui sebuah unit penurunan yang bukan lain adalah gen. Sejak ditemukan penurunan sifat melalui gen inilah proses perkembangan teori genetika ini berkembang dengan pesat. Mendel menyatakan gen terbagi dalam berbagi bagian dalam sel makhluk hidup yang adalah DNA, sebuah molekul yang dibangun dari himpunan 4 nucleotide yang berbeda. 4 nucleotide ini terhimpun secara selang seling dimana akan terbentuk himpunan DNA yang berbeda – beda. Himpunan yang berbeda inilah yang akhirnya akan menghasilakn sifat yang berbeda – beda pula. Himpunan nucleotide tersebut akan di terjemahkan oleh sel membentuk


(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

Pada gambar 2.1 dapat dilihat alur proses algoritma genetika secara umum. Pertama – tama dibangkitkan populasi random awal sesuai dengan yang diinginkan. Tidak ada aturan khusus dalam pembangkitan populasi awal dalam


(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

Algoritma genetika merupakan proses pencarian yang heuristik dan acak sehingga penekanan pemilihan operator yang digunakan sangat menentukan keberhasilan algoritma genetika dalam menemukan solusi optimum suatu masalah yang diberikan. Setelah dilakukan pembangkitan populasi awal , hal lain yang harus diperhatikan adalah bagaimana menghindari terjadinya konvergensi premature, yaitu mencapai solusi optimum yang belum waktunya, dalam arti


(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)

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.

Operator crossover ini tergantuk pada representasi kromosom yang dilakukan. Berbagai model crossover sesuai dengan representasi kromosom. Ada pun beberapa contoh operator crossover antara lain crossover satu titik ,


(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)

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.

Prosedur mutasi sangatlah sederhana. Untuk semua gen yang ada, jika bilangan random yang dibangkitkan kurang dari probabilitas Pmutasi yang ditentukan maka ubah gen tersebut menjadi nilai kebalikannya (dalam binary encoding, 0 diubah 1, dan 1 diubah 0). Dalam kasus ini mutasi yang akan digunakan adalah swapping mutation . Dalam swapping mutation dilakukan pertukaran tempat node . Biasanya Pmutasi diset sebagai 1/n , dimana n adalah jumlah gen dalam kromosom . Dengan Pmutasi sebesar ini berarti mutasi terjadi


(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.

Algoritma Fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat keabuan dan juga hitam dan putih, dan dalam bentuk linguistik, konsep tidak pasti


(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

Teori himpunan fuzzy diperkenalkan pertama kali oleh Lotfi A. Zadeh pada tahun 1965. Ada beberapa alasan mengapa orang menggunakan logika fuzzy, antara lain :


(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.

Contoh Himpunan Fuzzy : Misalkan Variabel temperatur, terbagi menjadi 5 himpunan fuzzy, yaitu: DINGIN, SEJUK, NORMAL, HANGAT, dan PANAS. Dapat dilihat pada gambar 2.4:


(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.

Nilai keanggotaan 4 pada himpunan A, μA[4]= 0, karena 4 bukan anggota A. Nilai keanggotaan 2 pada himpunan B, μB[2]= 0, karena 2 anggota B.


(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)

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:

�[ ] {

; � �

�−� −�; � −� − ;

.. (2.5)

2.3.2.4.Operator Dasar Zadeh

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)

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].

Pada basis aturan, aturan If-Then tersebut dapat menghubungkan banyak variabel masukan dan keluaran. Masukan x dipetakan menjadi keluaran y. Aturan if-then diinterpretasikan sebagai implikasi fuzzy. Terdapat banyak sekali model interpretasi implikasi yang telah dikembangkan. Pada aplikasi Game ini, metode yang digunakan adalah Metode Tsukamoto


(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:

1. Kelas (Class) - kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh “class of dog” adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam behavior atau perilaku dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi objek. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek


(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.

5. Polimorfisme (Polimorphism) - melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor serigala menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa


(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)

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

Adobe Illustrator merupakan aplikasi pengolah vektor yang handal dalam menciptakan bentuk-bentuk geometri dasar, seperti titik, garis, kurva dan juga polygon dapat di kreasikan secara menarik. Fungsi utama dari aplikasi ini adalah sebagai pengolah vektor namun tidak hanya itu, aplikasi ini juga dapat menggambar kartun dan juga membuat efek-efek untuk sebuah gambar.


(30)

2.6.3. Adobe Photoshop

Photoshop adalah sebuah software photo editing dan desain grafis yang dibuat oleh Adobe yang sudah diakui kehandalannya, karena fasilitas yang diberikan didalamnya tergolong lengkap dari mulai fitur mengedit foto, memanipulasi foto, serta menciptakan kreasi – kreasi grafis yang menarik .


(31)

31

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.

Sisa – sisa manusia yang hidup membangun sebuah senjata yang dapat menghentikan langkah enemy dalam menghancurkan ras manusia. Senjata tersebut adalah tower dengan kekuatan yang dasyat yang dapat menghancurkan enemy dengan mudah dan menjadi harapan terakhir manusia yang bertahan di dalam benteng. Tower – tower tersebut akhirnya di pasang di setiap benteng yang ditinggali oleh manusia untuk mencegah enemy menyerang ras manusia .


(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

Pada aplikasi game yang akan dibangun ini akan menggunakan algoritma genetika yang akan diimplementasikan terhadap enemy dalam mencari jalur menuju base player. Hal yang pertama kali dilakukan adalah proses inisialisasi pembangkitan populasi secara random , kemudian dilakukan evaluasi kromosom dilanjutkan dengan seleksi kromosom. Pada proses seleksi akan dilakukan dengan metode roulette – wheel dalam prosesnya. Kemudian dilanjutkan dengan operasi crossover dengan menggunakan metode Partial –Mapped Crossover (PMX) lalu kemudian dilakukan proses mutasi dengan metode swapping mutation. Pada proses pencarian nilai fitness awal yang menjadi nilai fitness adalah penjumlahan jarak semua node dalam jalur yang muncul . Jarak disini berbeda dengan jarak yang menjadi nilai input dalam fuzzy logic . Apabila pada jalur terdapat tower yang di pasang oleh player maka pada tiap tower yang dipasang akan ditambah nilai sebesar 20 pada jarak antar node . Misalkan


(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 .

Di awal permainan, pemain diberikan modal gold sebanyak 1000 gold . Setiap pemain membunuh enemy , pemain akan mendapatkan gold untuk membangun tower atau melakukan upgrade tower . Masing – masing tower maksimal hanyak bisa di-upgrade sebanyak 5 level. Setiap pemain meng-di-upgrade tower , maka akan menambah level , damage , kecepatan tembak , jarak tembak tower dan jumlah HPE ( Health Point 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

Pada kasus ini algoritma genetika di gunakan untuk menentukan best route enemy dalam menuju goal point . Pada gambar 3.1 dapat dilihat setiap node dinyatakan sebagai simpul graf, sedangkan sisi menyatakan jalan yang menghubungkan antara dua buah node . Bobot pada sisi menyatakan jarak antara dua


(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

Dalam penelitian ini, yang menjadi data masukan ialah faktor-faktor yang mempengaruhi keputusan atau aksi apa yang akan dilakukan oleh tower, Faktor


(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 :

Jarak = − 1 + − 1

Dimana :

Jarak = Total Jarak = Koordinat x Enemy 1 = Koordinat x Tower

= Koordinat y Enemy 1 = Koordinat y Tower

Pada table 3.1 akan di jelaskan tentang berapa nilai hitungan fuzzy dalam jarak dengan satuan px .

Tabel 3.1 Nilai jarak dalam perhitungan fuzzy Nilai Jarak (dalam px)

0 0 px

10 10 px

20 20 px

30 30 px

40 40 px


(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 -

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


(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)

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)

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)

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 .

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


(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)

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

Persoalan pencarian jalur pada game ini diselesaikan dengan menggunakan algoritma genetika. Dalam algoritma genetika , pembentukan generasi baru (anak) dilakukan dengan tiga operasi , yaitu seleksi , crossover dan mutasi , kemudian melakukan evaluasi terhadap setiap populasi dengan menghitung nilai fitness setiap kromosom hingga kriteria berhenti dipenuhi. Bila kriteria berhenti belum terpenuhi , maka akan dibentuk lagi generasi baru dengan mengulangi langkah seleksi , crossover dan mutasi. Beberapa kriteria berhenti yang sering digunakan antara lain berhenti pada generasi tertentu , berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness tertinggi/terendah, berhenti bila dalam n generasi berikutnya tidak diperoleh nilai fitness yang lebih tinggi/rendah.


(48)

Gambar 3.2 Play area dengan Asumsi Peletakan Tower

Gambar 3.2 menunjukan desain play area dimana terdapat pada setiap persimpangan jalur. Dalam desain terdapat 8 buah titik yang merupakan acuan dalam perhitungan pada setiap jalur yang akan di gunakan. Start Point pada map dimulai dari node 0 yang merupakan titik spawn enemy pertama kali, sedangkan Goal Point terletak pada node 7 merupakan tempat tujuan terakhir enemy. Kotak yang terdapat pada gambar 3.2 merupakan asumsi peletakan tower pada tile – tile yang ada. Untuk setiap pemasangan tower mempunyai nilai sebesar 20. Apabila pada jalur dari node B


(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

Inisialisasi dilakukan dengan membentuk generasi baru (anak). Populasi inisialisasi dibangkitkan secara random , misalkan didapatkan 10 kromosom sebagai berikut :


(50)

Kromosom[1] : A B D E G C F H Kromosom[6] : A B D E G C F H Kromosom[2] : A B C E D F G H Kromosom[7] : A B C G F E D H Kromosom[3] : A B C G F E D H Kromosom[8] : A B D F E C G H Kromosom[4] : A B C E D F G H Kromosom[9] : A B C G F E D H Kromosom[5] : A B D F E C G H Kromosom[10]: A B D F E C G H

3.4.1.2 Evaluasi Kromosom

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

Node Node yang di lalui Nilai

A – B A – B 5

B – C B – C + tower + tower 112

B – D B – D 21

C – E C – E 34

C – G C – G 36

D – E D – E + tower 35

D – F D – F 63

E – C E – C + tower 52

E – D E – D 15

F – E F – E 22

F – G F – G 7

G – C G – C 36

G – F G – F 7


(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 :

Nilai inverse kromosom pertama Q [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

Setelah didapatkan nilai total invers , kemudian di cari nilai probabilitas (P) dari individu yang kemudian akan digunakan untuk mencari nilai kumulatif probabilitas (C) yang akan digunakan dalam proses seleksei menggunakan metode roulette – wheel . Untuk mencari nilai probabilitas (P) digunakan persamaan 2.2 :


(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

C[2] = 0,106 + 0,094 = 0,200 C[3] = 0,200 + 0,087 = 0,287 C[4] = 0,287 + 0,094 = 0,381 C[5] = 0,381 + 0,111 = 0,492 C[6] = 0,492 + 0,106 = 0,598


(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 :

Kromosom [1] = Kromosom [2] Kromosom [2] = Kromosom [1] Kromosom [3] = Kromosom [4] Kromosom [4] = Kromosom [3] Kromosom [5] = Kromosom [6]


(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 Kromosom [2] = [1] = A B D E G C F H Kromosom [3] = [4] = A B C E D F G H Kromosom [4] = [3] = A B C G F E D H Kromosom [5] = [6] = A B D E G C F H Kromosom [6] = [5] = A B D F E C G H Kromosom [7] = [7] = A B C G F E D H Kromosom [8] = [8] = A B D F E C G H Kromosom [9] = [9] = A B C G F E D H Kromosom [10] = [10] = A B D F E C G H

3.4.1.4 Crossover

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 .

R [1] = 0,637 R [2] = 0,192 R [3] = 0,551 R [4] = 0,252 R [5] = 0,792


(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

Proses mutasi yang akan digunakan adalah swapping mutation yaitu proses dengan menukarkan gen yang dipilih secara acak dengan gen sesudahnya.


(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 jumlah gen yang akan dimutasi adalah = 0,1 x 80 = 8. Setelah diacak pada posisi 4 , 16 , 20 , 32 , 50 , 60 , 68 , 76

Proses mutasi

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

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

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

Game yang akan dibuat bercerita tentang tower defense dimana player akan meletakan 5 tower dengan posisi sesuai dengan strategi yang diinginkan player. Pada setiap wave akan tersedia enemy dengan tingkat kesulitan yang berbeda- beda . Setiap enemy akan mempunyai 3 parameter berupa HPE (Health Point Enemy) , JE (Jarak Enemy) dan DPE (Damage Point Enemy) yang akan menjadi inputan pada fuzzy logic. Gambar 3.4 menunjukkan proses input hingga output yang akan di proses oleh fuzzy logic.


(58)

Gambar 3.4 Proses Serangan tower terhadap enemy

Pada Gambar 3.4 , dimulai dari proses input , input atau masukan berupa HPE (Health Point Enemy) , JE (Jarak Enemy) dan DPE (Damage Point Enemy) . Inputan tersebut akan masuk ke proses fuzziikasi untuk didapatkan bobot berupa HPE (Health Point Enemy) , JE (Jarak Enemy) dan DPE (Damage Point Enemy) menggunakan fungsi keanggotaan fuzzy , setelah mendapatkan bobot , maka dicari aturan atau rule dengan menggunakan Metode Tsukamoto. Setelah aturan didapatkan , maka akan


(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

Sedangkan semesta pembicaraan yang menjelaskan tentang rentang nilai yang terdapat pada HPE , JE dan DPE dapat dilihat pada tabel 3.12.


(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)

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

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


(62)

µSedang = {

; −

− − −

, , atau ,

c. Himpunan Fuzzy banyak

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

µBanyak = {

; −

− ;

,, ,

Fungsi keanggotaan JE (Jarak Enemy ) diambil berdasarkan jumlah JE yang didapatkan dari rentang 1 – 10.

Tabel 3.14 Fungsi Keanggotaan JE Fungsi Keanggotaan Rentang Nilai

Dekat 0 – 30

Sedang 20 – 80


(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 =

{

; − − ;

, , ,

b. Himpunan Fuzzy sedang

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

µSedang =

{

; −

− − −

, , atau ,


(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)

a. Himpunan Fuzzy Lemah

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

µLemah = { ; − − ; , , ,

b. Himpunan Fuzzy sedang

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

µSedang = { ; − − − −

, , atau ,

c. Himpunan Fuzzy Kuat

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

µKuat = {

; − − ; ,, ,

3.4.2.2. Aturan Fuzzy

Setelah pembentukan himpunan Fuzzy , maka dilakukan pembentukan aturan Fuzzy. Aturan – aturan dibentuk untuk menyatakan relasi antara input dan output. Tiap aturan merupakan suatu implikasi . Operator yang digunakan untuk input – output adalah IF – THEN . Proposisi yang mengikuti IF disebut anteseden, sedangkan


(1)

iii

KATA PENGANTAR

Assalamu’alaikum Wr.Wb.

Puji syukur alhamdulillah penulis panjatkan kehadirat Allah SWT, atas rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul

“Implementasi Algoritma Genetika dan Fuzzy Logic pada Game Tower Defense” sebagai syarat untuk menyelesaikan program studi Strata 1 Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer pada Universitas Komputer Indonesia dapat selesai sebagaimana mestinya.

Penyusunan skripsi ini tidak akan terwujud tanpa mendapat dukungan, bantuan dan masukan dari berbagai pihak. Untuk itu, penulis ingin menyampaikan terimakasih yang sebesar-besarnya kepada :

1. Ibu dan Bapak tercinta yang selalu mendoakan setiap saat dan juga dukungan baik moril maupun materil yang tak terhingga selama ini.

2. Bapak Dr. Ir. Eddy Suryanto Soegoto, M.Sc., selaku Rektor Universitas Komputer Indonesia.

3. Bapak Irawan Afrianto, S.T., M.T. selaku Ketua Program Studi Teknik Informatika Universitas Komputer Indonesia.

4. Bapak Alif Finandhita, S.Kom selaku dosen wali IF16 angkatan 2009.

5. Ibu Nelly Indriani W., S.Si., M.T. selaku dosen pembimbing yang telah membimbing dan memberikan pengarahan dalam tugas akhir ini.

6. Ibu Ednawati Rainarli, S.Si., M.Si. selaku dosen reviewer yang telah memberikan banyak sekali waktu dan masukan yang sangat berarti bagi penulis.

7. Galih Hermawan, S.Kom., M.T. selaku pembimbing, yang telah membimbing penulis dalam menyelesaikan tugas akhir


(2)

iv

8. Teman-teman IF-16 angkatan 2009 Arrie, Agus, Armi, Dunant, Dimas, Fariz, Gema, Ikra, Iqbal, Maruli, Mahesa, Rian, Saeful , Dewi dan Valentinus yang selalu mendukung penulis dalam penulisan Tugas Akhir ini .

9. Untuk rekan-rekan seperjuangan yang selalu bersama-sama sabar dan tabah menghadapi semua cobaan yang ada.

10.Seluruh Dosen dan Staff pengajar Program Studi Teknik Informatika Universitas Komputer Indonesia.

11.Untuk Rani Triana telah sabar menghadapi keterpurukan mental mahasiswa yang sedang skripsi.

12.Semua pihak yang terlibat dan ikut membantu dalam tugas akhir ini baik secara langsung maupun tidak langsung.

Sangat disadari bahwa dalam pelaksanaan dan penyusunan laporan tugas akhir skripsi ini masih banyak kekurangan dan jauh dari kesempurnaan. Oleh karena itu saran dan kritik yang membangun sangat diharapkan untuk pengembang ke arah yang lebih baik.

Akhir kata, semoga skripsi ini dapat bermanfaat bagi para pembaca.

Wassalamu’alaikum Wr.Wb.

Bandung, Januari 2015


(3)

(4)

BIODATA PENULIS

1. DATA PRIBADI

Nama : Armi Yuliansyah Perdana Tempat / Tanggal Lahir : Bengkulu, 15 Juli 1989 Jenis Kelamin : Laki-Laki

Agama : Islam

Alamat : Jl. RE. Martadinata II RT 27/05 Pagar Dewa, Bengkulu

No. Telp : 085720000793

E-mail : armineverdie@gmail.com

2. RIWAYAT PENDIDIKAN

1. Taman Kanak-kanak : TK Pembina Padang Harapan Bengkulu Tahun Ajaran 1994-1995

2. Sekolah Dasar : SDN 20 Bengkulu Tahun Ajaran 1995-2001 3. Sekolah Menengah Pertama : SMPN 3 Bengkulu

Tahun Ajaran 2001-2004 4. Sekolah Menengah Atas : SMAN 1 Taktakan Serang

Tahun Ajaran 2004-2007 5. Perguruan Tinggi : FTIK UNIKOM Bandung

Tahun Ajaran 2009-2015

Demikian Riwayat Hidup ini saya buat dengan sebenar-benarnya dalam kedaan sadar dan tanpa paksaan.

Bandung, 24 Februari 2015


(5)

(6)