Implementasi Logika Fuzzy Untuk Mengatur Behavior dan Route Finding Unit-Unit Pada Game Bertipe Real Time Strategy (RTS)

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

RESA NUR URFAN

10109111

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2014


(2)

v

ABSTRACT... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... ... ix

DAFTAR TABEL... ... .... xii

DAFTAR SIMBOL ... ... .. xiii

DAFTAR LAMPIRAN...xviii

BAB 1 PENDAHULUAN ...1

1.1 Latar Belakang Masalah ...1

1.2 Perumusan Masalah ...2

1.3 Maksud dan Tujuan ...2

1.4 Batasan Masalah ... 3

1.5 Metodologi Penelitian ...4

1.5.1 Metode Pengumpulan Data ... 4

1.5.2 Metode Pembangunan Perangkat Lunak ...4

1.6 Sistematika Penulisan ...6

BAB 2 LANDASAN TEORI ...7

2.1 Kecerdasan Buatan ...7

2.1.1 Algoritma Logika Fuzzy ...8

2.1.1.1 Fungsi Keanggotaan Fuzzy ...8

2.1.1.2 Algoritma Logika Fuzzy Tsukamoto...12

2.1.1.3 Algoritma Logika Fuzzy Sugeno ...13

2.1.1.4 Algoritma Logika Fuzzy Mamdani ...13

2.2 PengertianGame ...15


(3)

vi

2.4.4Sequence Diagram ...23

2.5Unity ...25

2.6 Pemrograman C ... 25

BAB 3 ANALISIS DAN PERANCANGAN ...27

3.1 Analisis ...27

3.1.1 Analisis Masalah ...27

3.1.2 AnalisisGame...27

3.1.3 Analisis Komponen PembuatanGame ...28

3.1.4 Analisis Masukan...29

3.1.5 Analisis Algoritma...29

3.1.5.1 Analisis Logika Fuzzy ... 30

3.2 Analisis Kebutuhan Perangkat Lunak ... 41

3.2.1 Analisis Kebutuhan Non-Fungsional ...42

3.2.1.1 Analisis Perangkat Keras ... 42

3.2.1.2 Analisis Perangkat Lunak ... 42

3.2.2 Analisis Kebutuhan Fungsional ... 43

3.2.2.1 Use Case Diagram...43

3.2.2.2 Identifikasi Aktor ...44

3.2.2.3 Identifikasi Use Case ... 45

3.2.2.4 Skenario Use Case...46

3.2.2.5 Skenario Use CaseMemilih Pasukan Player ... 46

3.2.2.6 Skenario Use CaseMenyerang Musuh ...47

3.2.2.7 Skenario Use Case Route Finding...48


(4)

vii

3.2.2.12 Skenario Use CaseMengatur Jarak Tembak... 53

3.3 Activity Diagram ...54

3.3.1Activity DiagramMemilih Pasukan Player ... 54

3.3.2Activity DiagramMenyerang Musuh...54

3.3.3Activity Diagram Route Finding...56

3.3.4Activity DiagramMengatur Range (Jarak) ... 57

3.3.5Activity DiagramMengidentifikasi Life(Nyawa) Musuh ...58

3.3.6Activity DiagramMengidenifikasi Power (Kekuatan) Musuh.59 3.3.7Activity DiagramMengatur Posisi Menyerang... 60

3.3.8Activity DiagramMengatur Jarak Tembak ... 61

3.4 Class Diagram...62

3.5 Sequence Diagram...62

3.5.1Sequence DiagramMemilih Pasukan Player ... 63

3.5.2Sequence DiagramMenyerang Musuh ...64

3.5.3Sequence Diagram Route Finding...65

3.5.4Sequence DiagramMengatur Range (Jarak) ... 66

3.5.5Sequence DiagramMengidentifikasiLife (Nyawa) Musuh ..67

3.5.6Sequence DiagramMengidentifikasiPower (Kekuatan) Musuh ...68

3.5.7Sequence DiagramMengatur Posisi Menyerang...69

3.5.8Sequence DiagramMengatur Jarak Tembak ... 70

3.6 Perancangan ... 71

3.6.1 Perancangan Perangkat Lunak ...71

3.6.1.1 Perancangan Antar Muka ...71


(5)

viii

4.1.1.1 Pengujian Algoritma dan Skenario Pertama ...81

4.1.1.2 Pengujian Algoritma dan Skenario Kedua ...83

4.2 PengujianWhite-Box ...85

BAB 5 KESIMPULAN DAN SARAN ...95

5.1 Kesimpulan ...95

5.2 Saran ...95


(6)

96

Menggunakan Fuzzy Logic”, Jurnal Komputer dan Informatika

(KOMPUTA) Edisi I Volume 1 Maret 2012, Bandung.

[2] Kusumadewi, Sri, (2002), “Aplikasi Logika Fuzzy untuk Pendukung

Keputusan Edisi 2”, Graha Ilmu,ISBN:978-979-756-632-6.

[3] Pamungkas, Wijanarko Sukma, (2008), “Implementasi Automated Path dan Route Finding Untuk Unit Behavior Pada Real Time Strategy Game

Menggunakan Fuzzy Logic”, Institut Teknologi Sepuluh November (ITS),

Surabaya.

[4] Lexy J Moleong, “Metode Peneltian Kualitatif”,(1991), Bandung, Remaja

Rosda Karya.

[5] R. Turton, R.C. Bailie, W.B. Whiting and J.S. Shaeiwitz (2002).

Analysis, Synthesis, and Design of Chemical Processes (2nd Edition

ed.)”. Prentice Hall. ISBN 0-13-064792-6.

[6] Pembelajaran Multimedia, www.ilmukomputer.com/pembelajaran +multimedia, diakses pada tanggal 17 Maret 2014 pukul 07.30 WIB. [7] Heather Maxwell Chandler and Rafael Chandler. (2011), “Fundamentals

of Game Development“. Jones & Barlett Learning, LLC.

[8] Satria, Romi Wahono, (2003), “Pengantar Unified Modelling (UML)”,

Jurnal Kuliah Umum Ilmu Komputer, Bandung.

[9] Pratama M. Octaviano, (2012), “Mudah Membuat Game J2ME”, Jurnal

Kuliah Umum Ilmu Komputer, Bandung.

[10] Arif, Miftahul Yunifa, (2011),“Integrasi Hierarchy Finite State Machine

dan Logika Fuzzy Untuk Desain Srategi NPC Game”, Jurnal Jurusan

Pasca Sarjana Teknik Elektro ITS, Surabaya.

[11] Taufiq, Andi, (2010), “Pemrograman Grafik Dengan Java”, Bandung,


(7)

[12] Nugroho, Adi, (2010), “Rekayasa Perangkat Lunak dengan Metode

USDP(Unified Software Development Process)”, Bandung, Andi.

[13] Prof. Elmer Dadios, (2012),“Fuzzy LogicControls, Concepts, Theories

and Appliacations”, In Tech, ISBN 978-953-51-0396-7

[14] Logika fuzzy, www.informatika.web.id/category/fuzzy diakses pada tanggal 2 Juni 2014 pukul 08.47 WIB


(8)

iii

Puji syukur penulis panjatkan ke hadirat Allah SWT karena tidak ada kata terindah selain mengucap syukur kepada-Nya yang telah memberikan rahmat dan ridho-Nya hingga penulis dapat menyelesaikan skripsi ini. Skripsi yang berjudul

“IMPLEMENTASI LOGIKA FUZZY UNTUK MENGATUR BEHAVIOR DAN ROUTE FINDING UNIT-UNIT PADA GAME BERTIPE REAL TIME STRATEGY (RTS)” penulis ajukan sebagai syarat nilai mata kuliah skripsi

program studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia. Yang dalam penyusunannya berlandaskan pada teori-teori yang penulis dapatkan selama mengikuti kuliah, melakukan penelitian, menggunakan buku-buku dan pihak-pihak yang telah memberi bantuan. Dalam penulisan skripsi ini penulis melibatkan berbagai pihak. Pada kesempatan ini penulis mengucapkan terima kasih kepada semua pihak yang telah membantu tersusunnya skripsi ini, yakni kepada :

1. Keluarga tercinta yang selalu memberikan do’a, kasih sayang, semangat dan

dukungan moril maupun materil.

2. Bapak Galih Hermawan,S.Kom.,M.T., Ibu Ednawati Rainarli, S.Si, M.Si dan Ibu Kania Evita Dewi, S.Pd, M.Si selaku penguji yang senantiasa mengarahkan dan membimbing penulis dalam menyelesaikan penulisan skripsi.

3. Seluruh staf pengajar dan sekretariat Teknik Informatika, yang telah membantu proses belajar penulis.

4. Seluruh teman-teman IF-3 2009 terima kasih atas saran, dukungan serta kebersamaannya.

5. Semua rekan-rekan mahasiswa Teknik Informatika 2009 terima kasih atas saran, dukungan serta kebersamaannya.

6. Pihak-pihak lain yang membantu penulis untuk dapat menyelesaikan skripsi ini yang tidak dapat disebutkan satu per satu.


(9)

iv

Akhir kata semoga Allah SWT membalas segala kebaikan yang telah penulis terima dan harapan penulis semoga skripsi ini dapat bermanfaat bagi pihak yang membutuhkan.

Bandung, Agustus 2014


(10)

D-1 Nama : Resa Nur Urfan

TTL : Bandung, 15 Maret 1991 Umur : 23 Tahun

Jenis Kelamin : Laki - laki

Alamat : Jl. Barulaksana No. 83 RT 02 RW 14 Desa Jayagiri Lembang No. Tlp : 087823930924

Pendidikan Formal

1997–2003 SD Negeri 5 Lembang 2003–2006 SMP Negeri 1 Lembang 2006–2009 SMA Pasundan 2 Bandung 2009–2014 Universitas Komputer Indonesia

Penulis,


(11)

1

Real Time Strategy Game atau dapat disingkat RTS merupakangameyang

mengharuskan pemain untuk mengatur unit-unit, mengatur resources dan mengalahkan setiap lawan yang ada pada suatu virtual battlefield yang sering disebutmap[1]. Di dalam game Real Time Strategy(RTS), salah satu aspek yang menjadi daya tarik dari game RTS adalah kecerdasan buatan (AI) dari unit, semakin pintar dan cerdas unit-unit yang ada maka semakin menarik game

tersebut.

Kebutuhan kecerdasan buatan (AI) pada game Real Time Strategy (RTS) yaitu untuk memunculkan perilaku yang relevan dan efektif sehingga unit dapat mengambil keputusan yang cerdas. Kecerdasan buatan yang dapat digunakan pada

game RTS salah satunya menggunakan logika fuzzy. Logika fuzzy merupakan logika yang mempunyai kemampuan penalaran yang sederhana dan dapat dikombinasikan dengan teknik-teknik kendali konvensional yang digunakan untuk pengambilan keputusan. Alasan digunakannya logika fuzzy pada game RTS, logika fuzzy dapat digunakan untuk mengoptimalkan parameter-parameter yang ada pada game RTS seperti nyawa dan kekuatan yang nantinya parameter-parameter tersebut dapat memunculkan perilaku yang relevan dan efektif untuk pengambilan keputusan.

Pola perilaku menyerang pada game RTS biasa menggunakan pola

auto-attack. PadagameRTS pada saat ini polaauto-attackhanya mengacu pada posisi

dan jangkauan tembak. Dengan menggunakan logika fuzzy, pola auto-attack

dapat dikembangkan sehingga tidak hanya mengacu kepada posisi musuh dan jangkauan tembak, namun dapat ditambahkan parameter-parameter lain seperti nyawa dan kekuatan. Hasilnya target auto-attack dapat diprioritaskan untuk menyerang yang paling lemah dan jarak paling dekat dengan player. Selain perilaku menyerang padagameRTS juga identik dengan pola route finding. Route


(12)

tempat yang diinginkan player. Dengan menggunakan logika fuzzy route finding

dapat dikombinasikan dengan pola auto-attack selain digunakan untuk menggerakan unit ke tempat yang diinginkan player juga dapat digunakan untuk mendapatkan posisi dan jarak yang tepat untuk menyerang.

Berdasarkan permasalahan yang telah dijelaskan sebelumnya, maka peneliti mengambil topik penelitian tugas akhir dengan judul “Implementasi Logika Fuzzy untuk Mengatur BehaviordanRoute Finding Unit-Unit padaGame

BertipeReal Time Strategy(RTS)”

1.2 Perumusan Masalah

Berdasarkan latar belakang masalah yang telah diuraikan di atas, yang menjadi permasalahan dalam penelitian ini adalah :

1. Bagaimana menerapkan logika fuzzy untuk mengatur pola menyerang

auto-attack dan route findingsehingga dapat memunculkan perilaku yang relevan

dan efektif untuk pengambilan keputusan.

2. Bagaimana mengatur prioritas serangan menggunakan pola menyerang

auto-attackdengan target utama yang paling lemah dan paling dekat denganplayer

dan mendapatkan posisi dan jarak yang tepat untuk menyerang dengan menggunakan polaroute finding.

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang telah dikemukakan di atas, maka maksud dari penelitian ini adalah mengimplementasikan logika fuzzy untuk mengatur

behaviordanroute findingunit-unit padagamebertipeReal Time Strategy(RTS).

Sedangkan tujuan dari penelitiannya adalah :

1. Dapat mengatur pola perilaku menyerang dengan auto-attack dan polaroute

finding untuk memunculkan perilaku yang relevan dan efektif untuk

pengambilan keputusan.

2. Dapat mengatur prioritas serangan dengan pola menyerang auto-attack


(13)

dan mendapat posisi dan jarak yang tepat untuk menyerang dengan menggunakan polaroute finding.

1.4 Batasan Masalah

Agar penelitian fokus, permasalahan yang ditinjau tidak terlalu luas dan sesuai dengan maksud tujuan yang ingin dicapai, maka perlu dibuat batasan masalah. Batasan masalah dalam penelitian ini adalah sebagai berikut :

1. Unit yang digunakan dan dimodelkan dalam penelitian dan gameyang dibuat yaitu Pasukan, Pasukan Musuh dan Bangunan Musuh.

2. Logika fuzzy diterapkan pada PasukanPlayer.

3. Metode inferensi yang digunakan sebagai kaidah/rule dari logika fuzzy yaitu metode inferensi Mamdani.

4. Metode untuk proses defuzzikasi menggunakan metode centroid.

5. Perilaku yang difokuskan pada penelitian dan dalam pembuatan gamenya adalah pada perilaku menyerang.

6. Objek yang digunakan sebagai sasaran serangan pasukan player yaitu pasukan musuh, dan bangunan musuh.

7. Parameter masukan yang digunakan dalam logika fuzzy sebagai parameter untuk menyerang dari unit yaitu :

a.Range(Jarak),

b.Life(Nyawa), dan

c.Power(Kekuatan).

8. Rule atau Kaidah pada komposisi aturan fuzzy merupakan skala prioritas serangan.

9. Parameter keputusan yang dihasilkan yaitu menyerang prioritas ke-1 dan menyerang prioritas ke-2.

10. Metode pembangunan perangkat lunak yang digunakan adalah metodeLinear

Process Flow.

11. Aplikasi yang dibuat berbasisdesktop.

12. Bahasa pemrograman yang digunakan untuk membangun aplikasinya yaitu menggunakan C#.


(14)

13.Toolsyang digunakan untuk membangun aplikasinya menggunakanUnity.

1.5 Metodologi Penelitian

Dalam penelitian ini pendekatan yang dilakukan adalah melalui pendekatan kualitatif, artinya data yang dikumpulkan bukan berupa angka-angka melainkan data tersebut berasal dari dokumen resmi lainnya. Metode kualitatif adalah metode yang digunakan untuk meneliti kondisi objek yang alamiah dimana peneliti sebagai instrument kunci [4].

1.5.1 Metode Pengumpulan Data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah dengan melakukan studi literatur. Studi literatur merupakan pengumpulan dengan cara mempelajari sumber kepustakaan diantaranya abstrak hasil penelitian, indeks,

review, jurnal, buku referensi yang berkaitan dengan penelitian yang dilakukan

yaitu tentang implementasi logika fuzzy terhadapgame Real Time Strategy(RTS). Tujuan utama melakukan studi literatur yaitu :

1. Menemukan variabel-variabel yang akan diteliti khususnya hal-hal yang berhubungan dengan logika fuzzy dan game bertipe Real Time Strategy

(RTS).

2. Membedakan hal-hal yang dari penelitian tentang penerapan logika fuzzy pada game bertipe Real Time Strategy (RTS) sudah dilakukan sebelumnya dan menentukan hal-hal yang perlu dilakukan untuk membuat penelitian baru untuk penerapan logika fuzzy padagamebertipeReal Time Strategy(RTS). 3. Melakukan sintesa dari penelitian yang dilakukan dan memperoleh perspektif

baru dari penelitian yang dilakukan.

1.5.2 Metode Pembangunan Perangkat Lunak

Dalam penelitian ini akan dibangun perangkat lunak, adapun metode yang digunakan adalah menggunakan metode Linear Process Flow. Linear Process Flow merupakan model sistematik untuk pembangunan perangkat lunak yang mempunyai tahapan-tahapan dalam proses pembangunan perangkat lunaknya


(15)

mulai dari proses analisis sampai proses testing [5]. Berikut adalah proses dari metodeLinear Process Flowpada gambar 1.1.

Gambar 1.1 MetodeLinear Process Flow[5]

Adapun langkah-langkah yang dilakukan untuk pembangunan perangkat lunak antara lain :

1. Tahap Analisis

Pada tahap analisis mulai mencari fungsionalitas-fungsionalitas yang dibutuhkan untuk membangun suatu aplikasi yang dalam hal ini meliputi analisis algoritma logika fuzzy, analisis masalah, analisis masukan serta analisis kebutuhan fungsional dan nonfungsional.

2. TahapDesign

Pada tahap ini melakukan perancangan dari aplikasi yang dibuat meliputi perancangan antarmuka, perancangan metode, serta mendesain unit-unit yang digunakan yaitu pasukanplayer, pasukan musuh dan bangunan musuh.

3. TahapCode

Pada tahap code yaitu mulai mengeksekusi analisis dan perancangan-perancangan yang dilakukan sebelumnya ke dalam bahasa pemrograman. 4. TahapTesting

Pada tahap testing yaitu menguji implementasi dari aplikasi yang dibuat, untuk menemukan kesalahan-kesalahan terhadap aplikasi untuk diperbaiki.


(16)

1.6 Sistematika Penulisan

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

BAB 1 PENDAHULUAN

Bab ini berisi latar belakang, rumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian dan sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab ini berisi landasan teori yang membahas tentang kecerdasan buatan, algoritma logika fuzzy, algoritma logika fuzzy Mamdani, pengertian game, klasifikasigame

berdasarkangenre,Unified Modelling Language (UML),use case diagram,class

diagram,activity diagram,sequence diagram,Unitydan Pemrograman C.

BAB 3 ANALISIS DAN PERANCANGAN

Bab ini berisi mengenai analisis masalah, analisisgame, analisis masukan, analisis algoritma, analisis kebutuhan perangkat lunak yang meliputi analisis kebutuhan fungsional dan analisis nonfungsional, serta perancangan perangkat lunak yang meliputi perancangan antar muka dan perancanganmethod.

BAB 4 IMPLEMENTASI ALGORITMA DAN HASIL PENGUJIAN

Bab ini berisi hasil implementasi dari hasil analisis algoritma yang digunakan disertai juga dengan skenario hasil pengujian dari algoritma yang digunakan.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan yang diperoleh dari pelaksanaan penelitian skripsi dan berisi beberapa saran dari penulis yang berkaitan dengan penyusunan penelitian skripsi.


(17)

7

2.1 Kecerdasan Buatan (Artificial Intelligence)

Menurut Prof. Elder Dadios [13] kecerdasan buatan adalah bagian dari ilmu komputer yang mempelajari bagaimana membuat mesin (komputer) dapat melakukan pekerjaan seperti manusia bahkan bisa lebih baik dibandingkan manusia. Agar mesin (komputer) bisa cerdas maka harus diberi bekal pengetahuan dan mempunyai kemampuan untuk menalar. Ada dua bagian utama yang dibutuhkan aplikasi kecerdasan buatan yaitu :

1. Basis Pengetahuan (Knowledge Base) adalah berisi fakta-fakta, teori, pemikiran dan hubungan satu dengan lainnya.

2. Motor Inferensi (Inference Engine) adalah kemampuan menarik kesimpulan berdasarkan pengetahuan.

Kecerdasan buatan mempunyai kelebihan dibanding dengan kecerdasan alami antara lain :

1. Lebih bersifat permanen. Sebab kecerdasan buatan tidak berubah selama sistem komputer dan program tidak mengubahnya.

2. Lebih mudah diduplikasi dan disebarkan.

3. Lebih murah, karena menyediakan layanan komputer yang lebih mudah dan murah dibandingkan mendatangkan seseorang untuk mengerjakan sejumlah pekerjaan dalam jangka waktu yang lama.

4. Bersifat konsisten dan teliti.


(18)

2.1.1 Algoritma Logika Fuzzy

Logika fuzzy adalah salah satu komponen pembentuk soft computing. Logika fuzzy pertama kali diperkenalkan oleh Prof Lotfi A. Zadeh pada tahun 1965 [14]. Dasar logika fuzzy adalah teori himpunan fuzzy, peranan derajat keanggotaan sebagai penentu elemen dalam suatu himpunan. Nilai keanggotaan atau derajat keanggotaan

atau membership function menjadi ciri utama dalam penalaran dengan logika fuzzy

tersebut [2]. Dalam prosesnya logika fuzzy memiliki beberapa tahapan diantaranya : 1. Proses Fuzzyfikasi

Artinya himpunan fuzzy dan penentuan derajat keanggotaan daricrisp inputpada sebuah himpunan fuzzy.

2. Proses Inferensi

Merupakan evaluasi kaidah/aturan/rule fuzzy untuk menghasilkan output dari setiaprule.

3. Komposisi

Merupakan kombinasi dari keluaran semuarule. 4. Proses Defuzzikasi

Merupakan perhitungan hasil kombinasi dari output setiap rule yang menghasil

crisp output.

2.1.1.1 Fungsi Keanggotaan Fuzzy

Fungsi keanggotaan atau Membership Function menurut Kusumadewi [2] adalah suatu kurva yang menunjukan pemetaan titik-titik input ke dalam nilai atau derajat keanggotaanya yang memiliki interval antara 0 dan 1. Salah satu cara untuk mendapatkan keanggotaan adalah melalui pendekatan fungsi. Ada beberapa fungsi yang bisa digunakan antara lain :


(19)

a. Representasi Linear

Ada dua kemungkinan himpunan fuzzy linear yaitu kenaikan himpunan dimulai pada domain yang memiliki derajat keanggotaan nol [0] bergerak ke kanan menuju nilai domain yang memiliki derajat keanggotaan lebih tinggi. Berikut adalah gambar contoh representasi linear naik pada gambar 2.1

a b

1

0 Domain

Gambar 2.1 Contoh Representasi Linear Naik

Fungsi keanggotaan pada contoh representasi linear naik adalah :

Sedangkan untuk representasi linear turun garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi dari sisi kiri, kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan rendah. Berikut adalah gambar contoh representasi linear turun pada gambar 2.2.


(20)

a 1

0 Domain b

Gambar 2.2 Contoh Representasi Linear Turun

Fungsi keanggotaan pada contoh representasi linear turun adalah :

b. Representasi Kurva Segitiga

Kurva segitiga pada dasarnya merupakan gabungan antara dua garis linear. Berikut adalah gambar contoh representasi kurva segitiga pada gambar 2.3.


(21)

a 1

0 Derajat Keanggotaan

µ [x]

b c

Domain

Gambar 2.3 Contoh Representasi Kurva Segitiga

Fungsi keanggotaan dari contoh representasi kurva segitiga adalah :

c. Representasi Kurva Trapesium

Kurva trapesium pada dasarnya bentuknya seperti trapesium hanya saja ada beberapa titik yang memiliki nilai keanggotaan 1. Berikut adalah gambar contoh representasi trapesium pada gambar 2.4.


(22)

a 1

0 Derajat Keanggotaan

µ [x]

b c

Domain

d

Gambar 2.4 Contoh Representasi Kurva Trapesium

Fungsi keanggotaan dari contoh representasi kurva trapesium adalah :

2.1.1.2 Algoritma Logika Fuzzy Tsukamoto

Algoritma logika fuzzy Tsukamoto merupakan algoritma perluasan dari penalaran monoton [1]. Pada dasarnya metode Tsukamoto mengaplikasikan penalaran monoton pada setiap aturannya. Karena menggunakan konsep dasar penalaran monoton setiap konsekuen pada aturan yang berbentuk IF-THEN harus direpresentasikan dengan suatu hinpunan fuzzy dengan fungsi keanggotaan monoton.


(23)

2.1.1.3 Algoritma Logika Fuzzy Sugeno

Algoritma logika fuzzy Sugeno merupakan metode yang penalarannya menghasilkan output bukan berupa himpunan fuzzy tapi berupa konstanta atau persamaan linier [1]. Pada algoritma Sugeno terdapat dua jenis model yaitu model fuzzy Sugeno Orde-Nol dan Model Fuzzy Sugeno Orde-Satu.

2.1.1.4 Algoritma Logika Fuzzy Mamdani

Logika fuzzy Mamdani sering juga dikenal dengan nama metode Max-Min. Metode ini pertama kali Ebrahim Mamdani pada tahun 1975 [14]. Berikut adalah tahapan-tahapan dari metode Mamdani :

1. Pembentukan Himpunan Fuzzy

Merupakan proses menentukan variabel fuzzy dan himpunan fuzzynya, kemudian menentukan derajat keanggotaan antara data input dengan himpunan fuzzy yang telah didefinisikan untuk setiap variabelinput.

2. Aplikasi Fungsi Implikasi

Fungsi implikasi yang digunakan adalah min. melakukan implikasi fuzzy berdasar pada kuat penyulutan dan himpunan fuzzy terdefinisi untuk setiap variabel keluaran di dalam bagian konsekuensi dari setiap aturan [2]. Hasil implikasi fuzzy dari setiap aturan ini kemudian digabungkan untuk menghasilkan keluaran infrensi fuzzy.

3. Komposisi Aturan

Merupakan inferensi yang diperoleh dari korelasi beberapa aturan. 4. Defuzzikasi

Merupakan himpunan fuzzy dari komposisi aturan-aturan fuzzy, sedangkan

output yang dihasilkan merupakan suatu bilangan pada domain himpunan fuzzy


(24)

Pada proses defuzzikasi ada beberapa metode yang digunakan salah satunya menggunakan metode centroid. Dimana pada metode centroid, solusi crisp output

diperoleh dengan cara mengambil titik pusat daerah fuzzy [13]. Metode centroid bertujuan mencari nilai pada output fuzzy yang berada diantara interval A dan interval B sehingga diketahui nilainya, perhitungan pada metode centroid menghitung jumlah tiap variabel dan perhitungan pada variabel z, variabel z sendiri merupakan hasil perhitungan dari derajat keanggotaan dikalikan dengan jumlah rule yang ada berikut adalah rumus untuk perhitungan menentukan variabel z pada rumus 2.1.

(2.1)

Keterangan :

µ : nilai domain dari derajat keanggotaan min [i] : nilai minimum dariruleke-i

n : jumlahrule

Setelah diperoleh nilai dari perhitungan menentukan variabel z maka tahap selanjutnya mencari nilai rata-rata dari seluruh nilai yang diperoleh dari perhitungan penentuan variabel z. Berikut adalah rumus perhitungan dari metode centroid rumus persamaan 2.2.

(2.2) Keterangan :

Z : Nilai yang dicari untuk memperoleh nilai defuzzikasi. n : Banyaknya nilai tiap variabel.

j : Banyaknya perhitungan pada variabel z.


(25)

µ

: Nilai yang diperoleh dari fungsi keanggotaan.

Ada dua keuntungan menggunakan metode centroid, yaitu [2] :

a. Nilai defuzzifikasi akan bergerak secara halus sehingga perubahan dari suatu himpunanfuzzyjuga akan berjalan dengan halus.

b. Lebih mudah dalam perhitungan.

2.2 PengertianGame

Dalam bahasa Indonesia “Game” berarti “permainan”. Permainan yang

dimaksud dalamgamejuga merujuk pada pengertian sebagai “kelincahan intelektual”

(intellectual playability). Sementara kata “game” bisa diartikan sebagai arena

keputusan dan aksi pemainnya [10]. Ada target-target yang ingin dicapai pemainnya. Kelincahan intelektual, pada tingkat tertentu, merupakan ukuran sejauh mana game

itu menarik untuk dimainkan secara maksimal. Game adalah bentuk seni dimana penggunanya disbut dengan pemain (player), diharuskan membuat keputusan-keputusan dengan tujuan mengelola sumber daya yang diperoleh dari kesempatan-kesempatan bermain miliknya untuk mencapai tujuan tertentu.

2.2.1 KlasifikasiGameBerdasarkanGenre

Gamedapat dibagi menjadi beberapa macam sesuai dengan karakter atau alur cerita darigametersebut berikut adalah macam-macam yang ada :

1. Shooting yaitu game yang memerlukan kecepatan refleks, koordinasi mata,

tangan, juga timing, inti darigamejenis ini adalah menembak target yang dituju. Contohnya yaitugame Call Of DutydanBattlefield.

2. Fighting yaitu game yang permainannya memerlukan refleks dan koordinasi mata dan tangan dengan cepat, tetapi inti dari game ini adalah penguasaan hafalan jurus. Contohnya yaitugame Mortal KombatdanTekken.


(26)

3. Petualangan yaitu game yang lebih menekankan pada jalan cerita dan kemampuan berfikir pemain dalam menganalisia tempat secara visual, memecahkan teka-teki maupun menyimpulkan berbagai peristiwa. Contohnya yaitugame RaymandanTomb Rider.

4. Simulasi, Konstruksi, Manajemen yaiu game yang seringkali menggambarkan dunia di dalamnya sedekat mungkin dengan dunia nyata dan memperhatikan dengan detail berbagai faktor. Contohnya yaitugame The Sims.

5. Strategi (RTS) yaitu game jenis ini memerlukan koordinasi dan strategi dalam memainkan permainan ini bisa dengan mengumpulkan resource yang banyak, upgrade level dari karakter sehingga menjadi kuat. Kebanyakan game strategi adalahgameperang. Contohnya yaitugame WarcraftdanEmpire Earth.

6. Role Playing Game (RPG) yaitu game yang biasanya dimainkan dengan satu karakter atau dengan berkelompok untuk melawan musuh dengan tujuan tertntu yang sudah diatur dari alur cerita yang dibuat. Contohnya yaitu game Final FantasydanSuikoden.

7. Sport yaitu game yang merupakan adaptasi dari kenyataan olahraga yang dimainkan seperti sepak bola, basket dan tenis serta membutuhkan kelincahan dan juga strategi dalam memainkannya. Contohnya yaitu game Pro Evolution Soccerdan NBA.

8. Puzzle yaitu game yang bisa disebut game teka-teki, pemain diharuskan memecahkan teka-teki dalam game tersebut. Contohnya yaitu game Tetris, dan

Bejeweled.

9. Edugames yaitu game yang dibuat dengan tujuan spesifik sebagai alat pendidikan, bisa untuk belajar mengenal warna untuk balita, mengenal huruf dan angka, matematika, sampai belajar bahasa asing. Contohnya yaitu game Dora The Explorer.


(27)

2.3 Unified Modelling Language(UML)

Unified Modelling Language (UML) adalah sebuah bahasa yang telah menjadi

standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak [12]. UML menawarkan sebuah standar untuk merancangan model sebuah sistem. Dengan menggunakan UML dapat membuat model untuk semua jenis aplikasi perangkat lunak, aplikasi tersebut dapat berjalan pada perangkat keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka UML lebih cocok untuk penulisan dalm bahasa berorientasi objek seperti C++, Java, C#, atau VB.NET. Walaupun demikian UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C .

UML mendefinisikan notasi dan syntax, notasi UML merupakan sekumpulan bentuk khusus untuk meggambarkan berbagai diagram piranti lunak [12]. Setiap bentuk memiliki makna tertentu dan UML syntaxmendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya yaitu Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modelling Technique), Ivan Jacobsen OOSE (

Object-Oriented Software Engineering).

2.3.1 Use Case Diagram

Use Case Diagram menggambarkan fungsionalitas yang diharapkan dari

sebuah sistem. Yang ditekankan adalah apa yang diperbuat sistem. Sebuah use case

merepresentasikan sebuah interaksi antara aktor dengan sistem [8]. Use case dapat sangat membantu apabila sedang menyusun requirement untuk sebuah sistem, mengkomunikasikan rancangan untuk semua fitur yang ada pada sistem.

Sebuah use case juga dapat memasukan fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwause caseyang


(28)

normal [8]. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yangcommon.

Contoh pada use case diagram transaksi bank mempunyai enam fungsionalitas yang terdiri dari :

a. Transaksi Bank artinya nasabah berinteraksi dengan bank setelah proses penerimaannya oleh mesin ATM.

b. Menarik Uang Tunai artinya nasabah memasukkan kode PIN, jika Pin sah, rekening nasabah dapat diakses.

c. Memeriksa Transaksi artinya jika kode pin yang dimasukan pengguna tidak sah, maka mesin ATM akan menampilkan pesan yang sesuai.

d. Usulan Transaksi artinya nasabah berinteraksi dengan sistem bank setelah nasabah memasukan kode PIN yang sah, dengan meminta sejumlah uang tertentu. Jika jumlah uang/saldo pada rekeningnya memang cukup maka transaksi dilaksanakan.

e. Penarikan Ditolak artinya jika jumlah yang diminta oleh nasabah lebih besar dari jumlah yang ada pada rekeningnya (saldo) maka transaksi penarikan itu ditolak dan sistem/perangkat lunak memunculkan pesan tertentu.

f. Pin Salah artinya pada saat tertentu nasabah kadang mengetahui transaksi-transaksi yang telah nasabah lakukan pada periode waktu tertentu.


(29)

Berikut adalah contoh dariuse diagramtransaksi bank pada gambar 2.5.

Gambar 2.5 ContohUse Case DiagramTransaksi Bank

2.3.2 Class Diagram

Class adalah spesifikasi yang jika diinisasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class

menggambarkan atribut suatu sistem, sekaligus menawarkan layanan untuk manipulasi keadaan tersebut atau metode yang digunakan pada sistem tersebut [8].

Class diagram menggambarkan struktur dan deskripsi, class, package, dan objek

berserta hubungan satu sama lain seperti asosiasi,inheritancedan lain-lain.

Class memiliki tiga area pokok yaitu Nama Kelas, Atribut dan Metode.

Atribut dan metode dapat memiliki salah satu sifat berikut :

1. Private artinya data yang dikendalikan oleh suatu kelas tertentu dan tidak dapat

diakses oleh objek-objek yang berbeda kelas. Satu ciri metode sharing yang bersifat private adalah hanya fungsi-fungsi atau metode – metode dalam kelas/objek yang bersangkutan yang dapat mengakses metode atau variabel serta

Sistem

<Include>

<Include>

<Include> <Extends> Nasabah

T ransaksi Bank

Memeriksa T ransaksi

Usulan T ransaksi Menarik Uang T unai

Pin Salah Penarikan Ditolak <Extends>


(30)

atribut dalam kelas tanpa batasan. Biasanya tanda (-) digunakan untuk atribut atau metode yang bersifatprivate.

2. Protected artinya atribut atau metode yang bersifat protectedhanya bisa diakses

oleh kelas yang bersangkutan serta kelas-kelas yang merupakan turunannya mengikuti hierarki dari generalisasi. Biasanya tanda (#) digunakan untuk atribut atau metode yang bersifatprotected.

3. Public artinya metode atau atribut yang bersifatpublic dapat diakses oleh semua

objek dalam aplikasi tertentu tanpa batasan apa pun. Biasanya tanda (+) digunakan untuk atribut atau metode yang bersifatpublic.

Pewarisan (Inheritance) adalah hubungan antar class yang dapat diturunkan ke

class yang lain dan mewarisi semua atribut dan metode class asalnya dan

menambahkan fungsionalitas baru, sehingga anak dari class yang mewarisinya. Berikut adalah contoh class diagram pemesanan tiket pertunjukan mempunyai tujuh

classantara lain :

a. Class Pelanggan, mempunyai atribut Nama dan No_Telepon dengan tipe data

Stringdan mempunyai sifatpublicdan untuk metode tambah (nama, no_telepon)

() dengan sifatpublic.

b. Class Reservasi, mempunyai atribut tanggal dengan tipe data Date dan

mempunyai sifatpublic.

c. Class Reservasi Langganan, mempunyai atribut jumlah dengan tipe data integer

dan mempunyai sifatpublic.

d. ClassReservasi Mandiri.

e. Class Tiket, mempunyai atribut ketersediaan dengan tipe data boolean dan

mempunyai sifatpublic, dan untuk metodenya penjualan () dengan sifatpublic

f. Class Pertunjukan, mempunyai atribut nama dengan tipe data String dan


(31)

g. Class Penampilan, mempunyai atribut tanggal_penampilan dengan tipe data

Date, atribut jam dengan tipe data Time, dan atribut jumlah_kursi dengan tipe

dataintegeryang masing-masing atribut mempunyai sifatpublic.

Berikut adalah contoh class diagram pemesanan tiket pertunjukan pada gambar 2.6.

0..1 0..* 0..1 0..*

0..1 0..* 0..1 0..* 0..1 0..* Pelanggan + + Nama No_T elepon : String : String + tambah(nama,no_telepon) ()

Reservasi

+ tanggal : Date

Reservasi Langganan

+ jumlah : int

Reservasi Mandiri

T iket

+ ketersediaan : boolean

+ penjualan ()

Penampilan + + + tanggal_penampilan jam jumlah_Kursi : Date : T ime : int Pertunjukan

+ nama : String

Gambar 2.6 ContohClass DiagramPemesanan Tiket Pertunjukan

2.3.3 Activity Diagram

Activity diagram menggambarkan berbagai alir aktifitas dalam sistem yang

sedang dirancang, bagaimana masing-masing alir berawal, keputusan yang mungkin terjadi dan bagaimana berakhirnya. Activity diagram juga dapat menggambarkan proses pararel yang mungkin terjadi pada beberapa eksekusi [8]. Activity diagram


(32)

sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal

processing). Oleh karena ituactivity diagramtidak menggambarkan perilaku internal

sebuah sistem secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktifitas dari level atas secara umum.

Sebuah aktifitas dapat direalisasikan oleh suatu use case atau lebih. Aktifitas menggambarkan proses yang berjalan sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktifitas. Contoh pada

activity diagram pengembalian buku perpustakaan, pada activity diagram

pengembalian buku perpustakaan mempunyai alir aktifitas sebagai berikut :

a. Anggota perpustakaan mengembalikan buku perpustakaan kepada pustakawan. b. Pustakawan memvalidasi data buku yang dipinjam oleh anggota perpustakaan. c. Apabila anggota perpustakaan mengembalikan buku melebihi batas waktu maka

anggota perpustakaan akan mendapat denda dengan membayar sejumlah uang. d. Kemudian pustakawan memvalidasi data anggota perpustakaan.

e. Apabila anggota perpustakaan mengembalikan buku tidak melebihi batas waktu pengembalian maka anggota tidak mendapat denda.

Berikut adalah contohactivity diagrampengembalian buku perpustakaan pada gambar 2.7.


(33)

Anggota Pustakawan

Mengembalikan Buku

Denda

Bayar Denda Ya

Validasi Data Buku

Validasi Data Melebihi Tenggat Waktu

Tidak

Gambar 2.7 ContohActivity DiagramPengembalian Buku Perpustakaan

2.3.4 Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan di

sekitar sistem berupa message yang digambarkan terhadap waktu.Sequence diagram

terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait)

[8]. Sequence diagram biasa digunakan untuk menggambarkan skenario atau

rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktifitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Contoh pada sequence diagram login mempunyai interaksi sebagai berikut :


(34)

a. Administrator (Aktor) melakukan login, maka method User ID, Password () memanggil kelas LayarLogin.

b. Kelas Layar Login memanggil kelas Cek User untuk mengecek User ID dan

Password.

c. Kelas Cek User memanggil kelas Data User untuk memvalidasi User ID dan

Passworddidatabase.

d. Apabila User ID dan Password valid maka Administrator beerhasil melakukan

Login.

Berikut adalah contoh darisequence diagram loginpada gambar 2.8.

Sequence Diagram Login

5 : Membuka Menu Utama () 4 : Validasi ()

3 : User ID, Password () 2 : User ID, Password ()

1 : User ID, Password () Administrator

Layar Login Cek User Data User Menu Utama

5 : Membuka Menu Utama () 4 : Validasi ()

3 : User ID, Password () 2 : User ID, Password ()

1 : User ID, Password ()


(35)

2.4 Unity

Unity adalah sebuah game developing software. Dengan menggunakan

software ini karena dapat membuat game 3D. Karena software ini sangat mudah

menggunakannya, dengan GUI yang memudahkan kita untuk membuat, memanpulasi dan membuat script untuk menciptakan sebuah game berkonsep 3D. Selain itu bisa untuk build game PC, Unity juga dapat digunakan untuk membangun game console

seperti Nintendo Wii, PS3, Xbox 360, juga Ipad. Iphone dan Android. Namun masing-masih membutuhkan biaya lisensinya sendiri. Selain itu juga bisa juga membuat web, hanya membutuhkan install unity web player. Berikut adalah tampilan

dariUnitypada gambar 2.9.

Gambar 2.9 TampilanUnity

2.5 Pemrograman C

Bahasa pemrograman C diciptakan oleh Dennis Ritchie pada tahun 1972 di Bell Laboratories. Bahasa pemrograman C memiliki kelebihan yaitu :


(36)

1. Bahasa C tersedia hampir di semua jenis komputer.

2. Kode bahasa C sifatnya adalah portable dan flesksibel untuk semua jenis komputer.

3. Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci.

4. Prosesexecutableprogram bahasa C lebih cepat. 5. Bahasa C mempunyai dukungan pustaka yang banyak. 6. Bahasa C merupakan bahasa yang terstruktur.

7. Bahasa C termasuk bahasa tingkat menengah.

Penempatan ini hanya menegaskan bahwa C bukan bahasa pemrogaman yang berorintasi pada mesin yang merupakan ciri bahasa tingkat rendah, melainkan berorientasi objek tetapi dapat diintrepertasikan oleh mesin dengan cepat secepat bahasa mesin. Inilah salah satu kelebihan C yaitu memiliki kemudahan dalam menyusun programnya semudah bahasa tingkat tinggi namun dalam mengeksekusi program secepat bahasa tingkat rendah.

Selain kelebihan bahasa pemrograman C juga memiliki kekurangan yaitu : 1. Banyaknya operator serta fleksibilitas penulisan program kadang-kadang

membingungkan pengguna.

2. Bagi pemula pada umumnya akan kesulitan dalam menggunakan pointer.

Dalam mengkompilasi program baru dapat dijalankan setelah melalui tahap kompilasi dan penggabungan. Tahap kompilasi dimaksudkan untuk memeriksa

source program sesuai dengan kaidah-kaidah yang berlaku di dalam bahasa

pemrograman C. Tahap kompilasi akan menghasilkanrelocatable object file.File-file

objek tersebut kemudian digabung dengan perpustakaan fungsi yang sesuai untuk menghasilkan suatuexecutable program.


(37)

27 3.1 Analisis

Pada proses analisis ini mencakup berbagai analisis diantaranya analisis masalah, analisis game, analisis masukan, analisis algoritma, analisis kebutuhan perangkat lunak yang mencakup analisis kebutuhan fungsional dan nonfungsional serta perancangan-perancangan dalam pembuatan perangkat lunak.

3.1.1 Analisis Masalah

Game yang bertipe Real Time Strategy (RTS) merupakan game yang mengharuskan pemain mengatur unit-unit, mengatur resources dan mengalahkan lawan. Pada game RTS yang dibuat memiliki konsep bagaimana mengatur perilaku menyerang dan route finding untuk mendapatkan prioritas serangan yang dilakukan dengan mendapatkan posisi dan jarak yang tepat untuk menyerang. Logika fuzzy merupakan solusi yang bisa diterapkan padagame bertipeReal Time Strategy (RTS) untuk mengatur perilaku menyerang dengan pola auto-attackdan route finding. Pola menyerang pada game RTS pada saat ini pada umumnya mengacu pada posisi dan jangkauan tembak atau serangan, sementara itu pada game RTS juga ada pola yang dinamakan route finding, dimana route finding pada saat ini juga digunakan untuk menggerakan unit ke tempat yang diinginkanplayer.

3.1.2 AnalisisGame

Misi utama dari game RTS yang dibuat adalah menyerang musuh, yang menjadi objek atau target sasaran serangannya adalah pasukan musuh dan bangunan musuh. Penggunaan logika fuzzy digunakan untuk mengatur perilaku menyerang dengan pola auto-attack danroute findingkemudian mendapat posisi dan jarak yang tepat untuk menyerang. Peran player pada game yang dibuat adalah menggerakan


(38)

unit pasukan ke tempat yang diinginkan player, kemudian menyerang satu pasukan musuh untuk serangan selanjutnya logika fuzzy yang berperan untuk mengatur perilaku menyerang auto-attack dan route finding dimana player tidak perlu memerintahkan unit pasukan untuk menyerang tetapi unit pasukan akan bergerak dan menyerang secara otomatis apabila musuh berada pada jarak dan jangkauan serangan unit pasukan, maka unit pasukan akan menyerang musuh.

Parameter-parameter yang dimiliki musuh menjadi acuan serangan sebab pasukan akan mendapat prioritas serangan berdasarkan life dan power yang dimiliki musuh, peran logika fuzzy yaitu untuk menghasilkan pengambilan keputusan dan prioritas serangan untuk pasukan player, yang sebelumnya melalui tahapan dari logika fuzzy mulai dari tahap fuzzifikasi sampai tahap defuzzikasi. Sehingga keputusan yang dihasilkan relevan dan efektif untuk menyerang musuh.

3.1.3 Analisis Komponen PembuatanGame

Berikut merupakan komponen-komponen yang digunakan dalam pembuatan aplikasi yang dibuat pada penelitian untukgamebertipeReal Time Strategy(RTS).

Tabel 3.1 Komponen PembuatanGame

No Komponen Keterangan

1 Kecerdasan Buatan (AI) Menggunakan logika fuzzy untuk mengatur perilaku menyerang dengan menggunakan pola

auto-attackdanroute finding. 2 Karakter Pemain dan

Musuh

Unit yang dimodelkan dan objek yang digunakan sebagai sasaran serangan yaitu :

1. Pasukan (Player), dan

2. Musuh (Pasukan Musuh dan Bangunan Musuh)


(39)

tujuan menerapkan algoritma logika fuzzy untuk mengatur perilaku menyerang dan route finding

pasukanplayer untuk mendapat prioritas serangan yang dilakukan dengan mendapat posisi dan jarak yang tepat untuk menyerang berdasarkan life dan

poweryang dimiliki musuh.

3.1.4 Analisis Masukan

Analisis masukan yang dilakukan dalam penelitian ini adalah menganalisis parameter dalam algoritma logika fuzzy pada Game yang bertipe Real Time Strategy

(RTS), parameter tersebut antara lain jarak, nyawa dan kekuatan yang dimiliki pasukan player, yang nantinya parameter- parameter tersebut berpengaruh pada prioritas serangan yang dilakukan pasukan player. Berikut rentang nilai masukan yang diperbolehkan untuk dimasukan ke dalam parameter jaak, nyawa dan kekuatan musuh pada tabel 3.2.

Tabel 3.2 Parameter Masukan Musuh dan Rentang Nilai Masukannya

No Parameter Rentang Nilai

1 Range(Jarak) 10–80

2 Life(Nyawa) 1–100

3 Power(Kekuatan) 0–100

3.1.5 Analisis Algoritma

Analisis algoritma yang dilakukan dalam penelitian ini adalah menerapkan logika fuzzy pada perilaku menyerang dengan menggunakan pola auto-attack dan

route finding pada unit pasukan player. Logika fuzzy yang digunakan adalah logika


(40)

3.1.5.1 Analisis Logika Fuzzy

Logika fuzzy pada game yang dibuat diterapkan pada unit pasukan, untuk mengatur perilaku menyerang danroute finding, dengan tujuan digunakannya logika fuzzy agar keputusan yang unit lakukan menjadi relevan dan efektif. Pada gameyang dibuat ada beberapa tahapan yang digunakan dalam penerapan logika fuzzy untuk mengatur perilaku menyerang dan route finding unit pasukan player menggunakan logika fuzzy Mamdani. Berikut adalah gambar proses dari logika fuzzy Mamdani.

HIMPUNAN FUZZY

FUNGSI IMPLIKASI

KOMPOSISI

ATURAN DEFUZZYKASI

Gambar 3.1 Proses Logika Fuzzy Mamdani

Adapun tahapan-tahapan dari proses logika fuzzy Mamdani antara lain : 1. Pembentukan himpunan fuzzy

Terdapat empat parameter yang digunakan dalam pembentukan himpunan fuzzy antara lain :

a. ParameterRange(Jarak) sebagaiinput. b. ParameterLife(Nyawa) sebagaiinput. c. ParameterPower(Kekuatan) sebagaiinput. d. Parameter Target sebagaioutput.

2. Aplikasi Fungsi Implikasi

Terdapat tiga parameter implikasi yang digunakan antara lain :

a. Range(Jarak) : Dekat dan Jauh.

b. Life(Nyawa) : Lemah, dan Kuat.


(41)

3. Komposisi Aturan

Pada kompisisi aturan yang digunakan menggunakan inferensi min. Berikut adalah komposisi aturan untuk logika fuzzy yang digunakan.

a. ParameterRange(Jarak)

Parameter Range (Jarak) dibagi menjadi tiga bagian yaitu Dekat dan Jauh. Rentang nilai dari parameter jarak yaitu antara 10–80. Berikut adalah derajat keanggotaan dari parameterRange(Jarak) pada gambar 3.2.

10 20 30 40 50 60 70 80

0 0.2 0.6 0.8 1

Dekat Jauh

Jarak

0.4

Gambar 3.2 Derajat KeanggotaanRange(Jarak)

Pada parameter jarak (Dekat) fuzzifikasinya dihitung berdasarkan grafik yang berbentuk trapesium sebelah kiri. Berikut adalah persamaan untuk parameter jarak (Dekat) pada persamaan 3.1.


(42)

µ

Dekat [x] = (3.1)

Pada parameter jarak (Jauh) fuzzifikasinya dihitung berdasarkan grafik yang berbentuk trapesium sebelah kanan. Berikut adalah persamaan untuk parameter jarak (Jauh) pada persamaan 3.2.

µ

Jauh [x] = (3.2)

b. ParameterLife(Nyawa)

Parameter Life (Nyawa) dibagi menjadi dua bagian yaitu : Lemah dan Kuat. Rentang nilai dari parameter Life(Nyawa) yaitu antara 1-100. Berikut adalah derajat keanggotaanLife(Nyawa) pada gambar 3.3

10 20 30 40 50 60 70 80 90 100

1 0 0.2 0.6 0.8 1

Lemah Kuat


(43)

Pada parameter nyawa (Lemah) fuzzifikasinya dihitung berdasarkan grafik yang berbentuk trapesium sebelah kiri. Berikut adalah persamaan untuk parameter nyawa (Lemah) pada persamaan 3.3.

µ

Lemah [x] = (3.3)

Pada parameter nyawa (Kuat) fuzzifikasinya dihitung berdasarkan grafik yang berbentuk trapesium sebelah kanan. Berikut adalah persamaan untuk parameter nyawa (Kuat) pada persamaan 3.4.

µ

Kuat [x] = (3.4)

c. ParameterPower(Kekuatan)

ParameterPower(Kekuatan) dibagi menjadi dua bagian yaitu : Lemah dan Kuat. Rentang nilai parameterPower(Kekuatan) yaitu antara 0-100. Berikut adalah derajat keanggotaan parameterPower(Kekuatan) pada gambar 3.4.


(44)

10 20 30 40 50 60 70 80 90 100 0

0 0.2 0.6 0.8 1

Kekuatan

Lemah Kuat

Gambar 3.4 Derajat KeanggotaanPower(Kekuatan)

Pada parameter kekuatan (Lemah) fuzzifikasinya dihitung berdasarkan grafik yang berbentuk trapesium sebelah kiri. Berikut adalah persamaan untuk parameter kekuatan (Lemah) pada persamaan 3.5.

µ

Lemah [x] = (3.5)

Pada parameter kekuatan (Kuat) fuzzifikasinya dihitung berdasarkan grafik yang berbentuk trapesium sebelah kanan. Berikut adalah persamaan untuk parameter kekuatan (Lemah) pada persamaan 3.6.


(45)

d. Kaidah /RulesFuzzy

Berikut adalah aturan perilaku yang berlaku berdasarkan kaidah atau rules yang diterapkan dalam penentuan perilaku menyerang dari unit pasukan player untuk mendapat prioritas serangan diantaranya adalah :

1) If (Range is Dekat) and (Life is Lemah) and (Poweris Lemah) then (Menyerang

Prioritas Ke-1).

2) If (Range is Dekat) and (Life is Lemah) and (Power is Kuat) then (Menyerang

Prioritas Ke-2).

3) If (Range is Dekat) and (Life is Kuat) and (Power is Lemah) then (Menyerang

Prioritas Ke-1)

4) If (Range is Dekat) and (Life is Kuat) and (Power is Kuat) then (Menyerang

Prioritas Ke-2).

5) If (Range is Jauh) and (Life is Lemah) and (Power is Lemah) then (Menyerang

Prioritas Ke-1).

6) If (Range is Jauh) and (Life is Lemah) and (Power is Kuat) then (Menyerang

Prioritas Ke-2).

7) If (Range is Jauh) and (Life is Kuat) and (Power is Lemah) then (Menyerang

Prioritas Ke-1).

8) If (Range is Jauh) and (Life is Kuat) and (Power is Kuat) then (Menyerang

Prioritas Ke-2).

e. Defuzzikasi

Merupakan suatu proses untuk memperoleh nilai crisp sebagai solusi dari sistem fuzzy menggunakan metode centroid. Metode centroid akan mencari nilai z yang nantinya menjadi pengambilan keputusan pasukan player untuk menyerang prioritas utama atau prioritas kedua berdasarkan rumus 2.1.

Pada parameter target yaitu menyerang prioritas ke-1 dan menyerang prioritas ke-2 mempunyai rentang nilai antara 10–80 dijelaskan sebagai berikut :


(46)

1. Menyerang Prioritas Ke-1 = 10–30 2. Menyerang Prioritas Ke-2 = 50–80

10 20 30 40 50 60 70 80

0 0.2 0.6 0.8 1

Menyerang Prioritas Ke- 1

Menyerang Prioritas Ke- 2

Target

0.4

Z

Gambar 3.5 Derajat Keanggotan Target

Untuk menghitung target menyerang prioritas ke-1 menggunakan perhitungan dengan rumus 2.1. Berikut perhitungan untuk target menyerang prioritas ke-1.

30–(min[i] * 8)

Sedangkan untuk menghitung target menyerang prioritas ke-2 menggunakan perhitungan dengan rumus 2.1, Berikut perhitungan untuk target menyerang prioritas ke-2


(47)

Contoh Kasus PadaGame

Misal apabila Range (Jarak) antara pasukan player dan pasukan musuh memiliki nilai [31], Life (Nyawa) yang dimiliki pasukan player memiliki nilai [45],

dan Power (Kekuatan) yang dimiliki pasukan player memiliki nilai [25], maka

tahapan-tahapan yang menentukan output sesuai dengan aturan yang sudah dibuat akan dijelaskan sebagai berikut :

1. Pembentukan Himpunan Fuzzy

a. Pembentukan himpunan fuzzy dengan menghitung Range(Jarak) setiap parameter yaitu Dekat dan Jauh. Apabila nilai Range (Jarak) antara pasukan player dan pasukan musuh memiliki nilai [31] untuk fungsi keanggotaan Dekat dihitung berdasarkan persamaan 3.1, sedangkan untuk fungsi keanggotaan Jauh dihitung berdasarkan persamaan 3.2.

µDekat [31] = = 0.95 µJauh [31] = 31≤50 = 0

Maka diperoleh nilai untuk fungsi keanggotaan untuk parameter Range

(Jarak) yaitu :

1. Fungsi Keanggotaan Dekat = 0.95 2. Fungsi Keanggotaan Jauh = 0

b. Pembentukan himpunan fuzzy dengan menghitung Life (Nyawa) setiap parameter yaitu Lemah dan Kuat. Apabila nilai Life (Nyawa) yang dimiliki musuh memiliki nilai [45] untuk fungsi keanggotaan Lemah dihitung berdasarkan persamaan 3.3, sedangkan untuk fungsi keanggotaan Kuat dihitung berdasarkan persamaan 3.4.

µ Lemah [45] = = 0.75 µKuat [45] = 45≤60 = 0


(48)

Maka diperoleh nilai untuk fungsi keanggotaan untuk parameterLife(Nyawa) yaitu :

1. Fungsi Keanggotaan Lemah = 0.75 2. Fungsi Keanggotaan Kuat = 0

c. Pembentukan himpunan fuzzy dengan menghitung Power (Kekuatan) setiap parameter yaitu Lemah dan Kuat. Apabila nilai Power (Kekuatan) yang musuh memiliki nilai [25] untuk fungsi keanggotaan Lemah dihitung berdasarkan persamaan 3.5, sedangkan untuk fungsi keanggotaan Kuat dihitung berdasarkan persamaan 3.6.

µ Lemah [25] = 25≤ 40 = 1

µKuat [25] = 25≤60 = 0

Maka diperoleh nilai untuk fungsi keanggotaan untuk parameter Power

(Kekuatan) yaitu :

1. Fungsi Keanggotaan Lemah = 1 2. Fungsi Keanggotaan Kuat = 0

2. Aplikasi Fungsi Implikasi dan Komposisi Aturan

Setelah fungsi keanggotaan didapat, maka nilai-nilai tersebut harus dibandingkan sesuai dengan rule yang ada, tujuannya untuk mencari nilai minimum untuk setiap

rule yang dihitung. Berikut adalah fungsi implikasi yang dibandingkan dengan rule

yang telah ditentukan antara lain :

1. If (Range is Dekat) and (Life is Lemah) and (Poweris Lemah) then (Menyerang

Prioritas Ke-1)

Range(Dekat) = 0.95


(49)

Power(Lemah) = 1 Min (0.95, 0.75, 1) = 0.75

2. If (Range is Dekat) and (Life is Lemah) and (Power is Kuat) then (Menyerang

Prioritas Ke-2).

Range(Dekat) = 0.95

Life(Lemah) = 0.75

Power(Kuat) = 0

Min (0.95, 0.75, 0) = 0

3. If (Range is Dekat) and (Life is Kuat) and (Power is Lemah) then (Menyerang

Prioritas Ke-1).

Range(Dekat) = 0.95

Life(Kuat) = 0

Power(Lemah) = 1

Min (0,95, 0, 1) = 0

4. If (Range is Dekat) and (Life is Kuat) and (Power is Kuat) then (Menyerang

Prioritas Ke-2)

Range(Dekat) = 0.95

Life(Kuat) = 0

Power(Kuat) = 0

Min (0,95, 0, 0) = 0

5. If (Rangeis Jauh) and (Life is Lemah) and (Poweris Lemah) then (Menyerang

Prioritas Ke-1).

Range(Jauh) = 0

Life(Lemah) = 0.75

Power(Lemah) = 1

Min (0, 0,75, 1) = 0

6. If (Range is Jauh) and (Life is Lemah) and (Power is Kuat) then (Menyerang

Prioritas Ke-2).


(50)

Life(Lemah) = 0.75

Power(Kuat) = 0

Min (0, 0,75, 0) = 0

7. If (Range is Jauh) and (Life is Kuat) and (Power is Lemah) then (Menyerang

Prioritas Ke-1).

Range(Jauh) = 0

Life(Kuat) = 0

Power(Lemah) = 1

Min (0, 0, 1) = 0

8. If (Range is Jauh) and (Life is Kuat) and (Power is Kuat) then (Menyerang

Prioritas Ke-2).

Range(Jauh) = 0

Life(Kuat) = 0

Power(Kuat) = 0

Min (0, 0, 0) = 0

3. Defuzzikasi

Setelah nilai keanggotaan didapat melalui proses fungsi implikasi maka langkah berikutnya adalah menentukan himpunan nilai z dari setiap rule. Berikut adalah proses menentukan nilai z menggunakan rumus perhitungan 2.1 pada tabel 3.3.

Tabel 3.3 Proses Menentukan Nilai Z

Rule Perhitungan Target Menyerang

1

Z = 30–(0,75 * 8) = 23.25

Prioritas Ke-1

2

Z = 30–(0,95 * 8) = 22.8

Prioritas Ke-2

3

Z = 30–(0 * 8) = 30


(51)

4

Z = 50–(0 * 8) = 50

Prioritas Ke-2

5

Z = 30–(0 * 8) = 30

Prioritas Ke-1

6

Z = 30–(0 * 8) = 30

Prioritas Ke-2

7

Z = 30–(0 * 8) = 30

Prioritas Ke-1

8

Z = 50–(0 * 8) = 50

Prioritas Ke-2

Setelah mendapatkan nilai dari setiap rules maka langkah selanjutnya adalah menentukan nilai defuzzifikasi dengan menggunakan rumus metode centroid pada rumus 2.1.

Z = = 33.42

Jadi nilai yang dihasilkan berdasarkan rule/aturan yang sudah dibentuk sebelumnya. Sesuai dengan contoh dari perhitungan yang dihasilkan dari nilaiRange

(Jarak) [31], nyawa [45] dan Kekuatan [25] yang dimiliki pasukan player dengan nilai Z yang didapatkan yaitu 33.42 maka keputusannya adalah target menyerang prioritas Ke-1.

3.2 Analisis Kebutuhan Perangkat Lunak

Pada tahap ini meliputi elemen-elemen yang diperlukan dalam mengimplementasikan logika fuzzy yaitu terdiri dari kebutuhan non-fungsional dan


(52)

kebutuhan fungsional. Spesifikasi kebutuhan perangkat lunak akan dibagi kedalam dua bagian yaitu Kebutuhan Fungsional dan Spesifikasi Kebutuhan Non-Fungsional.

3.2.1 Analisis Kebutuhan Non-Fungsional

Analisis kebutuhan non-fungsional adalah langkah pembangunan perangkat lunak dengan menganalisis sumber daya yang akan dibutuh dan digunakan serta menggunakan perangkat lunak yang digunakan untuk membangun sistem. Perangkat keras dan perangkat lunak yang dimiliki harus sesuai dengan kebutuhan, sehingga dapat ditentukan kompabilitas aplikasi yang dibangun terhadap sumber daya yang ada.

3.2.1.1 Analisis Perangkat Keras

Perangkat keras atauhardware merupakan salah satu hal yang penting karena tanpa hardware yang memenuhi syarat, sistem yang akan dibuat tidak akan dapat berjalan. Perangkat keras minimum yang digunakan :

1. Processor Dual Core 1,80 Ghz 2. RAM 1 GB

3. VGA 512 MB 4. Hard disk 80 GB 5. Monitor

6. Keyboard

3.2.1.2 Analisis Perangkat Lunak

Perangkat lunak atau software merupakan hal yang terpenting dalam mendukung kinerja sebuah sistem. Perangkat lunak digunakan dalam sebuah sistem merupakan perintah-perintah yang diberikan kepada perangkat keras agar dapat saling berinteraksi diantara keduanya. Perangkat lunak yang dibutuhkan untuk membangun aplikasigameini adalah sebagai berikut :


(53)

1. Sistem operasi Microsoft Windows 8. 2. Unity sebagai editor.

3.2.2 Analisis Kebutuhan Fungsional

Tahap pertama yang dilakukan dalam melakukan analisis berorientasi objek adalah salah satunya menggunakan Unified Modelling Language (UML) dengan menentukan aktor yang ada pada sistem. Aktor pada UML yaitu dengan menampilkan peran atau roles dari sistem yang dapat dikembangkan pada aspek perangkat lunak, perangkat keras dan lain sebagainya.

3.2.2.1Use Case Diagram

Diagram use case akan sangat membantu analisis sistem dan juga program untuk merumuskan spesifikasi kebutuhan untuk sistem atau perangkat lunak yang akan dibangun maupun untuk dikembangkan. Dari hasil analisis gameyang dibangun maka diagranuse caseseperti pada gambar 3.6.


(54)

Gambar 3.6Use Case Diagram

3.2.2.2 Identifikasi Aktor

Mengidentifikasi aktor adalah sangat penting, sepenting mengidentifikasi kelas-kelas, struktur, relasi, atribut dan perilaku. Kata aktor dalam konteks UML adalah menampilkan peran pengguna sistem. Identifikasi aktor diterangkan pada tabel 3.4.

Tabel 3.4 Identifikasi Aktor

Aktor Deskripsi

Pemain Pemain atau Orang yang memainkan


(55)

3.2.2.3 IdentifikasiUse Case

Setelah mengidentifikasi aktor kemudian mengidentifikasi dari use case

dengan melihat pekerjaan-pekerjaan dan fungsi-fungsi yang aktor lakukan, secara representatif yang mencerminkan layanan spesifik atau fungsionalitas yang diharapkan dari sistem atau perangkat lunak yang dibangun serta mendeskripsikan masing-masing kelas dalam konteks use case agar tidak muncul pemahaman ganda (ambigu). Berikut identifikasiuse casepada tabel 3.5.

Tabel 3.5 IdentifikasiUse Case

No Use Case Deskripsi

1 Memilih Pasukan Player Pemain memilih pasukan player

2 Menyerang Musuh Pasukan player menyerang musuh pertama yang dipilih pemain, selanjutnya menyerang musuh secara otomatis dengan menyerang prioritas ke-1 dan prioritas ke-2.

3 Route Finding Route finding digunakan pasukan untuk

bergerak ke tempat yang diinginkan pemain kemudian mendapat posisi untuk menyerang 4 MengaturRange(Jarak) Pasukan mengatur jarak dan jangkauan

tembak 5 MengidentifikasiLife(Nyawa)

musuh

Pasukan mengidentifikasi Life (Nyawa) yang dimiliki oleh musuh

6 MengidentifikasiPower

(Kekuatan) musuh

Pasukan mengidentifikasiPower(Kekuatan) yang dimiliki oleh musuh

7 Mengatur posisi menyerang Pasukan mengatur posisi untuk menyerang musuh


(56)

3.2.2.4 SkenarioUse Case

Skenario use case berisi tentang flow of event atau alur dari use case utama, yang menggambarkan urutan interaksi Aktor denganuse casedari awal sampai akhir. Skenariouse casepadagameyang dibuat adalah :

3.2.2.5 SkenarioUse CaseMemilih Pasukan Player

Skenario use case memilih pasukan player, digunakan pemain untuk memilih pasukan player yang digunakan. Skenario use case memilih pasukan seperti pada tabel 3.6.

Tabel 3.6 SkenarioUse CaseMemilih Pasukan Player Identifikasi

NamaUse Case Memilih Pasukan Player

Aktor Pemain

Tujuan Setfocus ke pasukan player

Kondisi Awal Pasukan pada posisidefaultatau awal

Kondisi Akhir Pemain sudah memilih pasukan player kemudian

setfocuske pasukan player

Skenario

Aksi Aktor Sistem

a. Memilih pasukan player

b. Setfocuske pasukan player

3.2.2.6 SkenarioUse CaseMenyerang Musuh

Skenario use case menyerang musuh, bertujuan agar pasukan player menyerang musuh tanpa perintah dari pemain dan menyerang musuh secara

auto-attack kemudian mendapat prioritas serangan dengan menyerang prioritas ke-1 dan


(57)

Tabel 3.7 SkenarioUse CaseMenyerang Musuh Identifikasi

NamaUse Case Menyerang Musuh

Aktor Pemain

Tujuan Menyerang musuh Prioritas 1 dan prioritas ke-2

Kondisi Awal Pasukan pada posisidefaultatau awal

Kondisi Akhir Pasukan menyerang musuh dengan prioritas ke-1 dan prioritas ke-2

Skenario

Aksi Aktor Sistem

a. Memilih pasukan player

b. Setfocuske pasukan player

c. Memilih musuh yang diserang pertama

d. Pasukan player menyerang musuh yang dipilih pemain e. Pasukan player

mengidentifikasilife,power

sertarangemusuh yang berada pada jangkauan tembak pasukan

f. Menyerang Prioritas Ke-1 dan Menyerang Prioritas Ke-2


(58)

3.2.2.7 SkenarioUse Case Route Finding

Skenario use case route finding digunakan agar pasukan player mendapatkan posisi yang tepat untuk menyerang. Skenariouse case route findingseperti pada tabel 3.8.

Tabel 3.8 SkenarioUse Case Route Finding Identifikasi

NamaUse Case Route Finding

Aktor Pemain

Tujuan Pasukan mendapat posisi menyerang Kondisi Awal Pasukan pada posisidefaultatau awal

Kondisi Akhir Pasukan mendapatkan posisi yang tepat untuk menyerang

Skenario

Aksi Aktor Sistem

a. Memilih pasukan player

b. Setfocuske pasukan player

c. Memilih musuh yang diserang pertama

d. Pasukan menyerang musuh yang dipilih pemain

e. Pasukan player

mengidentifikasilife,power

sertarangemusuh yang berada pada jangkauan tembak pasukan f. Pasukan player

mendapatkan posisi yang tepat untuk menyerang


(59)

3.2.2.8 SkenarioUse CaseMengaturRange(Jarak)

Skenario use case mengatur Range (Jarak) digunakan pasukan player untuk mengatur jarak untuk menyerang musuh. Skenario use case mengaturRange (Jarak) seperti pada tabel 3.9.

Tabel 3.9 SkenarioUse CaseMengaturRange(Jarak) Identifikasi

NamaUse Case MengaturRange(Jarak)

Aktor Pemain

Tujuan Mengatur jarak untuk menyerang Kondisi Awal Pasukan pada posisidefaultatau awal Kondisi Akhir Pasukan mengatur jarak untuk menyerang

Skenario

Aksi Aktor Sistem

a. Memilih pasukan player

b. Setfocuske pasukan player

c. Memilih musuh yang diserang pertama

d. Pasukan player menyerang musuh yang dipilih pemain e. Pasukan player

mengidentifikasirange

musuh yang berada pada jangkauan tembak pasukan f. Pasukan player mengatur

jarak untuk menyerang musuh


(60)

3.2.2.9 SkenarioUse CaseMengidentifikasiLife(Nyawa) Musuh

Skenario use case mengidentifikasi Life (Nyawa) musuh digunakan pasukan player untuk mendapatkan prioritas serangan dengan mengetahui nyawa yang dimiliki musuh. Skenariouse casemengidentifikasiLife(Nyawa) musuh seperti pada tabel 3.10.

Tabel 3.10 SkenarioUse CaseMengidentifikasiLife(Nyawa) Musuh Identifikasi

NamaUse Case MengidentifikasiLife(Nyawa) Musuh

Aktor Pemain

Tujuan Pasukan dapat mengetahui life yang dimiliki musuh

Kondisi Awal Pasukan pada posisidefaultatau awal

Kondisi Akhir Pasukan mengetahuilifeyang dimiliki musuh Skenario

Aksi Aktor Sistem

a. Memilih pasukan player

b. Setfocuske pasukan player

c. Memilih musuh yang diserang pertama

d. Pasukan player menyerang musuh yang dipilih pemain e. Pasukan player

mengidentifikasilifemusuh yang berada pada jangkauan tembak pasukan

f. Pasukan player mengetahui


(61)

3.2.2.10 SkenarioUse CaseMengidentifikasiPower(Kekuatan) Musuh

Skenariouse case Power (Kekuatan) musuh digunakan pasukan player untuk mendapatkan prioritas serangan dengan mengetahui kekuatan yang dimiliki musuh. Skenariouse casemengidentifikasiPower(Kekuatan) musuh seperti pada tabel 3.11.

Tabel 3.11 SkenarioUse CaseMengidentifikasiPower(Kekuatan) Musuh Identifikasi

NamaUse Case MengidentifikasiPower(Kekuatan) Musuh

Aktor Pemain

Tujuan Pasukan player dapat mengetahui power yang dimiliki musuh

Kondisi Awal Pasukan player pada posisidefaultatau awal Kondisi Akhir Pasukan player mengetahuipowermusuh

Skenario

Aksi Aktor Sistem

a. Memilih pasukan player

b. Setfocuske pasukan player

c. Memilih musuh yang diserang pertama

d. Pasukan player menyerang musuh yang dipilih pemain e. Pasukan player

mengidentifikasipower

musuh yang berada pada jangkauan tembak pasukan f. Pasukan player mengetahui


(62)

3.2.2.11 SkenarioUse CaseMengatur Posisi Menyerang

Skenario use case mengatur posisi menyerang digunakan pasukan player untuk mendapatkan posisi yang tepat untuk menyerang musuh. Skenario use case

mengatur posisi menyerang seperti pada tabel 3.12.

Tabel 3.12 SkenarioUse CaseMengatur Posisi Menyerang Identifikasi

NamaUse Case Mengatur Posisi Menyerang

Aktor Pemain

Tujuan Pasukan player mendapatkan posisi yang tepat untuk menyerang

Kondisi Awal Pasukan player pada posisidefaultatau awal Kondisi Akhir Pasukan player dapat mengatur posisi menyerang

Skenario

Aksi Aktor Sistem

a. Memilih pasukan player

b. Setfocuske pasukan player

c. Memilih musuh yang diserang pertama

d. Pasukan player menyerang musuh yang dipilih pemain e. Pasukan player

mengidentifikasilife,power

sertarangemusuh yang berada pada jangkauan tembak pasukan

f. Pasukan player mengatur posisi untuk menyerang


(63)

3.2.2.12 SkenarioUse CaseMengatur Jarak Tembak

Skenario use case mengatur jarak tembak digunakan pasukan player untuk mengatur jarak tembak untuk menyerang. Skenario use case mengatur jarak tembak seperti pada tabel 3.13.

Tabel 3.13 SkenarioUse CaseMengatur Jarak Tembak Identifikasi

NamaUse Case Mengatur Jarak Tembak

Aktor Pemain

Tujuan Pasukan player dapat mengatur jarak tembak untuk menyerang

Kondisi Awal Pasukan player pada posisidefaultatau awal Kondisi Akhir Pasukan player mengatur jarak tembak

Skenario

Aksi Aktor Sistem

a. Memilih pasukan player

b. Setfocuske pasukan player

c. Memilih musuh yang diserang pertama

d. Pasukan player menyerang musuh yang dipilih pemain e. Pasukan player

mengidentifikasilife,power

sertarangemusuh yang berada pada jangkauan tembak pasukan

f. Pasukan player mengatur jarak tembak


(64)

3.3 Activity Diagram

Activity diagram menggambarkan berbagai alir aktifitas dalam sistem yang

dirancang dan bagaimana alir-alir berawal. Activity diagram juga dapat menggambarkan proses pararel yang mungkin terjadi pada beberapa eksekusi.

Activity diagram merupakan state program khusus, dimana sebagian state adalah

action.

3.3.1 Activity DiagramMemilih Pasukan Player

Activity diagram memilih pasukan player, dimana pemain memilih pasukan

player. Berikut adalahactivity diagrampasukan pada gambar 3.7.

Pemain Sistem

Memilih Pasukan Player

Setfocus ke Pasukan Player

Gambar 3.7Activity DiagramMemilih Pasukan

3.3.2 Activity DiagramMenyerang Musuh

Activity diagram menyerang musuh, pemain memilih pasukan player untuk

menyerang musuh pertama yang dipilih pemain untuk serangan selanjutnya pasukan mengidentifikasi life, power, range dan jangkauan tembak kemudian menyerang musuh yang menjadi target serangan pasukanplayer. Berikut adalah activity diagram


(65)

Pemain Sistem

Memilih Pasukan Player

Memilih musuh yang diserang pertama

Setfocus ke Pasukan Player

Pasukan player menyerang musuh yang dipilih pemain

Pasukan player mengidentifikasi life,power, serta range musuh yang berada pada jangkauan tembak pasukan

Menyerang Musuh

Menyerang Prioritas Ke-1 Menyerang Prioritas Ke-2


(66)

3.3.3 Activity Diagram Route Finding

Activity diagram route finding dimana digunakan pasukan player untuk

mendapat posisi yang tepat untuk menyerang. Berikut adalah gambar activity

diagram route findingpada gambar 3.9.

Pemain Sistem

Memilih Pasukan Player

Memilih musuh yang diserang pertama

Setfocus ke Pasukan Player

Pasukan player menyerang musuh yang dipilh pemain

Pasukan player mengidentifikasi life,power serta range musuh yang berada pda jangkauan tembak pasukan

Pasukan player mendapatkan posisi yang tepat untuk menyerang


(67)

3.3.4 Activity DiagramMengaturRange(Jarak)

Activity diagram mengatur Range (Jarak) digunakan pasukan player untuk

mengetahui jarak musuh dan jangkauan menembak dari pasukan player. Berikut adalah gambaractivity diagramMengaturRange(Jarak) pada gambar 3.10.

Pemain Sistem

Memilih Pasukan Player

Memilih musuh yang diserang pertama

Setfocus ke Pasukan Player

Pasukan player menyerang musuh yang dipilh pemain

Pasukan player mengidentifikasi range musuh yang berada pada jangkauan tembak pasukan

Pasukan player mengatur jarak untuk menyerang


(68)

3.3.5 Activity DiagramMengidentifikasiLife(Nyawa) Musuh

Activity diagram mengidentifikasi Life (Nyawa) musuh merupakan parameter

yang dimiliki musuh yang akan diidentifikasi oleh pasukan player. Berikut adalah gambaractivity diagram mengidentifikasiLife(Nyawa) musuh pada gambar 3.11.

Pemain Sistem

Memilih Pasukan Player

Memilih musuh yang diserang pertama

Setfocus ke Pasukan Player

Pasukan player menyerang musuh yang dipilh pemain

Pasukan player mengidentifikasi life musuh yang berada pada jangkauan tembak pasukan

Pasukan player mengetahui life yang dimiliki musuh


(69)

3.3.6 Activity DiagramMengidentifikasiPower(Kekuatan) Musuh

Activity diagram mengidentifikasi Power (Kekuatan) musuh merupakan

parameter yang dimiliki musuh yang akan diidentifikasi oleh pasukan player. Berikut adalah gambar activity diagram mengidentifikasi Power (Kekuatan) musuh pada gambar 3.12.

Pemain Sistem

Memilih Pasukan Player

Memilih musuh yang diserang pertama

Setfocus ke Pasukan Player

Pasukan player menyerang musuh yang dipilh pemain

Pasukan player mengidentifikasi power musuh yang berada pada jangkauan tembak pasukan

Pasukan player mengetahui power yang dimiliki musuh


(70)

3.3.7 Activity DiagramMengatur Posisi Menyerang

Activity diagram mengatur posisi menyerang digunakan pasukan player untuk

mendapat posisi yang tepat untuk menyerang. Berikut adalah gambar mengatur posisi menyerang pada gambar 3.13.

Pemain Sistem

Memilih Pasukan Player

Memilih musuh yang diserang pertama

Setfocus ke Pasukan Player

Pasukan player menyerang musuh yang dipilh pemain

Pasukan player mengidentifikasi life,power serta range musuh yang berada pada jangkauan tembak pasukan

Pasukan player mengatur posisi untuk menyerang


(71)

3.3.8 Activity DiagramMengatur Jarak Tembak

Activity diagram mengatur jarak tembak digunakan pasukan player untuk

mengatur jarak tembak untuk menyerang. Berikut adalah gambar activity diagram

mengatur jarak tembak pada gambar 3.14.

Pemain Sistem

Memilih Pasukan Player

Memilih musuh yang diserang pertama

Setfocus ke Pasukan Player

Pasukan player menyerang musuh yang dipilh pemain

Pasukan player mengidentifikasi life,power serta range musuh yang berada pada jangkauan tembak pasukan

Pasukan player mengatur jarak tembak


(72)

3.4 Class Diagram

Class diagrammerupakan diagram menggambarkan struktur sistem dari aspek

pendefinisian kelas-kelas yang dibuat pada sistem. Class diagram pada aplikasi yang dibuat dapat dilihat pada gambar 3.15.

Player + + + + + + username human startMoney startMoneyLimit startPower startPowerLimit : String : Boolean : int : int : int : int + + + +

void awake () void start () void update () void MouseClick ()

: int : int : int : int Tank (Pasukan Player) - aimRotation : int + + # # #

-void start () void update () CanAttack () UseWeapon () Void AimatTarget () MovingIntoPosition () : int : int : int : int : int : Float Projectile -setrange setrange2 setrange3 settarget settarget2 settarget3 : float : float : float : float : float : float + + + + +

void update () void SetRange () void SetTarget () CanAttack () UseWeapon () : int : float : int : int : int

Refinery (Bangunan Musuh) - Capacity : float +

+

void start () void update ()

: int : int WorldObject + + + + + + + + + + + + hasil_jarak_dekat hasil_jarak_jauh hasil_nyawa_lemah hasil_nyawa_kuat hasil_power_lemah hasil_power_kuat HitPoints maxHitPoints damage power nyawa2 power2 : float : float : float : float : float : float : int : int : int : int : int : int # # # # # # # # -#

void awake () void start () void update () void OnGui () void SetPlayer () void fuzzy_jarak () void fuzzy_nyawa () void fuzzy _power () void performattack () void performattack2 () void SetTeamColor ()

: int : int : int : String : int : float : int : int : int : int : String

Worker (Pasukan Musuh) - amounBuilt : float +

+

void start () void update ()

: int : int

Gambar 3.15Class Diagram

3.5 Sequence Diagram

Sequence Diagram menggambarkan interaksi antar objek baik yang ada di

dalam sistem maupun yang berada di sekitar sistem, berupa pesan ataumessage yang digambarkan terhadap waktu. Sequence Diagram terdiri dari dimensi vertikal (waktu) dan dimensi horisontal (objek-objek terkait).


(73)

Sequence Diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan output tertentu. Diawali aktifitas, proses dan perubahan apa saja yang terjadi danoutputyang dihasilkan.

3.5.1 Sequence DiagramMemilih Pasukan Player

Sequence diagram pasukan dimana pemain memerintahkan pasukan player.

Berikut dalah gambarsequence diagrammemilih pasukan pada gambar 3.16.

Sequence Diagram Memilih Pasukan Player

3 : void update ()

2 : void awake () 1 : void start ()

Pemain

Tank (Pasukan Player)

3 : void update ()

2 : void awake () 1 : void start ()


(1)

92 3 4 5 6 7 8 9 10 11 12 13 14 15 16

if (jarak = dekat and nyawa = lemah and power = kuat) Target = Prioritas ke-2 ;

if (jarak = dekat and nyawa = kuat and power = lemah) Target = Prioritas ke-1;

if (jarak = dekat and nyawa = kuat and power = kuat) Target = Prioritas ke-2

if (jarak = jauh and nyawa = lemah and power = lemah) Target = Prioritas ke-1;

if (jarak = jauh and nyawa = lemah and power = kuat) Target = Prioritas ke-2;

if (jarak = jauh and nyawa = kuat and power = lemah) Target = Prioritas ke-1;

if (jarak = jauh and nyawa = kuat and power = kuat) Target = Prioritas ke-2;

Gambar 4.11PseudocodeTerhadapRuleatau Kaidah Fuzzy

Berdasarkan pseudocode terhadap rule atau kaidah fuzzy diatas maka diagram alirnya pada gambar 4.12.

1 6 2 7 3 8 4 9 5 10 11 12 13 14 15 16 17


(2)

93

Berdasarkan diagram alirpseudocodeterhadapruleatau kaidah fuzzy maka dapat dihitungcyclometic complexity, yaitu :

1. Flowgraph mempunyai 2 region. 2. V(G) = 22 edge–17 node + 2 = 6 3. V(G) = 2 predicate node + 1 = 3

Dari hasil perhitungan cyclometic complexity terdapat 6 independent path yaitu :

Path 1 : 1–2–3–4–5–6–7–8–9 Path 2 : 1–2–4–5–6–7–8–9 Path 3 : 1–2–4–6–8–9

Path 4 : 9–10–12–14–16–17

Path 5 : 9–10–12–13–14–15–16–17 Path 6 : 1–10–12–13–14–15–16–17

f. Pengujian white-box terhadap proses defuzzikasi

Berikut adalah pseudocode untuk proses defuzzikasi pada gambar 4.13 1 2 3 4 5 6 7

if(rjarak == "Dekat") {

z = jarak_dekat[1] - (min * 8); ztemp = ztemp + (z * min); } else {

z = jarak_jauh[1] - (min * 8); ztemp = ztemp + (z * min); }

Gambar 4.13 Pseudocode Untuk Proses Defuzzikasi

Berdasarkanpseudocodeproses defuzzikasi diatas maka diagram alirnya pada gambar 4.14.


(3)

94

2

1

3

6

7

4

5

Gambar 4.14 Diagram AlirPseudocodeProses Defuzzikasi

Berdasarkan diagram alirpseudocodeterhadap proses defuzzikasi maka dapat dihitungcyclometic complexity, yaitu :

4. Flowgraph mempunyai 1 region. 5. V(G) = 7 edge–7 node + 2 = 2 6. V(G) = 1 predicate node + 1 = 2

Dari hasil perhitungan cyclometic complexity terdapat 2 independent path yaitu :

Path 1 : 1–2–3–4–5–6–7 Path 2 : 1–2–3–4–7


(4)

95 BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan penelitian mengenai implementasi logika fuzzy untuk mengatur behavior dan route finding pada unit-unit pada game bertipe Real Time Strategy (RTS) maka dapat dibuat kesimpulan :

1. Logika fuzzy dapat digunakan untuk mengatur perilaku menyerang dengan pola auto-attack dan route finding untuk memunculkan perilaku yang relevan dan efektif.

2. Logika fuzzy dapat digunakan untuk mengatur prioritas serangan menggunakan polaauto-attackdengan target utama yang paling lemah dan paling dekat dengan player serta dapat digunakan juga untuk mendapat posisi dan jarak yang tepat untuk menyerang dengan menggunakan polaroute finding.

5.2 Saran

Untuk meningkatkan penelitian ke depan mengenai implementasi logika fuzzy terhadap gameRTS penulis mengusulkan beberapa saran yang dapat dijadikan pertimbangan yaitu :

1. Dalam menentukan prioritas serangan, logika fuzzy digunakan secara multiplayer artinyaplayermemiliki lebih dari satu pasukan.


(5)

(6)