• Tidak ada hasil yang ditemukan

Implementasi Algoritma Particle Swarm Optimization Untuk Perilaku Non Player Character Menyerang Secara Berkelompok

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Particle Swarm Optimization Untuk Perilaku Non Player Character Menyerang Secara Berkelompok"

Copied!
106
0
0

Teks penuh

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

YOGA BASKARA

10109171

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(2)

v

1.5 Metodologi Penelitian ... 4

1.1 Sistematika Penulisan ... 5

2 BAB 2 LANDASAN TEORI ... 7

2.1 Kecerdasan Buatan / AI() ... 7

2.1.1 Lingkup utama kecerdasan buatan ... 8

2.1.2 Keuntungan Kecerdasan Buatan ... 8

2.2 Swarm Intelligence... 9

2.2.1 Sifat Sifat Dasar Swarm Intelligence ... 10

2.2.2 Prinsip Dasar Swarm Intelligence ... 10

2.2.3 Algoritma Swarm Intelligence ... 11

2.3 Algoritma particle swarm optimization (PSO) ... 11

2.3.1 Penyelesaian Dalam PSO ... 13

2.3.2 Kelebihan dan Kekurangan PSO ... 14

2.4 Game ... 15

2.4.1 Klasifikasi Game ... 15

2.5 Pemrograman Berorientasi Object (PBO) ... 19

(3)

vi

3.2.1 Perilaku NPC ... 25

3.2.2 Game Play ... 25

3.2.3 Story Line ... 26

3.2.4 Perancangan Karakter ... 26

3.3 Analisis Game Action RPG ... 27

3.3.1 Karakter Dalam Game Action RPG ... 27

3.3.2 Perilaku NPC Menyerang Secara Berkelompok ... 28

3.3.3 Story Game Action RPG ... 28

3.3.4 Arena Permainan Game Action RPG ... 28

3.4 Analisis Masukan ... 30

3.5 Analisis Algoritma ... 31

3.5.1 Langkah Penyelesaian Dalam PSO ... 32

3.5.2 Algoritma PSO Dalam Game ... 33

3.5.3 Alur Proses Penyelesaian Dalam PSO ... 34

3.6 Analisis Kasus ... 35

3.6.1 Penyelesaian ... 37

3.6.2 Kesimpulan Hasil Penyelesaian ... 49

3.7 Analisis Kebutuhan Non-Fungsional ... 55

3.7.1 Analisis Kebutuhan Perangkat Lunak ... 55

3.7.2 Analisis Kebutuhan Perangkat Keras ... 55

3.8 Analisis Kebutuhan Fungsional ... 56

(4)

vii

4.2 Pengujian Simulasi ... 69

4.2.1 Model Pengujian Ketepatan Pemilihan NPC Pemimpin ... 69

4.2.2 Model Pengujian Parameter C1 dan C2 ... 91

4.2.3 Kesimpulan Pengujian ... 98

5 BAB 5 KESIMPULAN DAN SARAN ... 99

5.1 Kesimpulan ... 99

5.2 Saran ... 99

(5)

iii

kehadirat sang Maha Pintar Allah SWT, karena dengan izin-Nya dan setitik ilmu pengetahuan yang dipinjamkan kepada mahluk-Nya laporan skripsi ini dapat diselesaikan tepat pada waktunya. Shalawat serta salam semoga senantiasa tercurahkan kepada baginda Nabi Besar Muhammad SAW beserta seluruh keluarga dan sahabatnya yang selalu membantu perjuangan beliau dalam menegakkan Dinullah di muka bumi ini.

Laporan skripsi dengan judul “Implementasi Algoritma Particle Swarm Optimization Untuk Perilaku Non Player Character Menyerang Secara

Berkelompok” ini disusun guna memenuhi salah satu syarat dalam menyelesaikan studi jenjang strata satu (S1) di Program Studi Teknik Informatika Universitas Komputer Indonesia. Selama menulis skripsi ini, penulis telah mendapatkan banyak sekali bimbingan dan bantuan dari berbagai pihak yang telah dengan segenap hati dan keikhlasan yang penuh membantu dan membimbing penulis dalam menyelesaikan laporan ini. Dengan kerendahan hati penulis ucapkan terima kasih kepada :

1. Kedua Orang Tua, Bapak Onny Prasetyo dan Ibu Siti Nuzulannur yang selalu berdoa serta memberikan kasih sayang, dukungan, dan bimbingan untuk anaknya.

2. Keluarga Besar yang selalu memberikan doa, nasehat-nasehat, semangat, dan motivasi yang begitu besar khususnya adik adik saya Candra Kirana dan Satria Maulana.

3. Ibu Nelly Indriani W, S.Si.,M.T. selaku dosen pembimbing yang selalu mengarahkan, membimbing dan memberikan saran-sarannya selama melakukan penelitian tugas akhir.

(6)

iv

6. Dwi Putri Permatasari yang selalu menyemangati penulis dalam menyelesaikan penelitian tugas akhir ini.

7. Teman-teman seperjuangan IF-4 2009 yang selalu ceria bersama-sama dalam menuntut ilmu di kampus yang penuh dengan suka dan duka.

8. Semua pihak yang turut memberikan dukungan dalam penulisan skripsi ini yang tidak bisa disebutkan satu persatu.

Penulis sadar bahwa dalam penulisan skripsi ini masih terdapat banyak kekurangan. Oleh karena itu penulis sangat mengharapkan segala bentuk saran dan kritik dari semua pihak demi penyempurnaan skripsi ini. Akhir kata, semoga Allah SWT senantiasa melimpahkan karunia-Nya dan membalas segala amal budi serta kebaikan pihak-pihak yang telah membantu penulis dalam penyusunan laporan ini dan semoga tulisan ini dapat memberikan manfaat bagi pihak-pihak yang membutuhkan.

Bandung, 19 Agustus 2014

(7)

101 NJ, IV,

[2] Waluyo S,R., Hariadi, M., Purnama, I,K,E.2010. Pencarian jalur terbaik menggunakan particle swarm optimization untuk mengoptimasi lalu lintas

kendaraan.surabaya : ITS Library

[3] Hermawan, G ., (2012). Implementasi algoritma particle swarm optimization untuk penentuan posisi strategis agent pada simulasi robot sepak

boladua dimensi. Jurnal Ilmiah Komputer dan Informatika, 1(2), pp.63-70.

[4] Minarto., Mardi, S., Hariadi, M., (2012). Aplikasi modified improved particle swarm optimization (MPSO) untuk skenario dinamik pada game

matematika . Seminar Nasional Aplikasi Teknologi Informasi. Yogyakarta. 2012. [5] A.S,Rosa dan Shalahudin,M. 2013. Rekayasa Perangkat Lunak terstruktur dan berorientasi objek. Bandung. Informatika

[6] Kusumadewi, Sri. 2003. Artificial inelligence (Teknik dan Aplikasinya) .

[9] Shu-Chuan Chu, Hsiang-Cheh Huang, John F. Roddick, and Jeng-Shyang Pan. 2011 .Overview of Algorithms for Swarm Intelligence .pp 28-41.ICCCI

[10] Eberhartt. Russellll C , Kennedy and shi .2001. Swarm Intelligence.

(8)

[11] Bai, Kinghai. 2010. Analysis of Particle Swarm Optimization Algorithm.Jurnal Ilmiah Komputer dan Informatika. 3(1), pp 180-184

[12] Prawira Tanjung, M,A. Analisis Pengaruh Storytelling Terhadap Game

Lorong Waktu – Pangeran Dipenogoro Sebagai Media Edukasi Sejarah. Jurnal

Ilmiah Komputer dan Informatika

[13] Hu , Xiaohui. 2006. “PSO Tutorial”,

http://www.swarmintelligence.org/tutorials.php

(9)

Jenis Kelamin : Laki-laki

Tempat & Tanggal Lahir : Mataram, 12 Februari 1991 Kewarganegaraan : Indonesia

Agama : Islam

Status : Belum Menikah

Golongan Darah : AB

Alamat : Jl. Banda Sraya No.56 Pagutan Pondok Indah Mataram – Lombok Barat - NTB.

Telepon : 087722401000

Email : yogabaskara95@yahoo.com

PENDIDIKAN FORMAL (1997 – 2003) : SD Negeri 42 Mataram (2003 – 2006) : SMP Negeri 7 Mataram (2006 – 2009) : SMA Negeri 5 Mataram

(2009 – 2014) : Program Strata 1 (S1) Teknik Informatika Universitas Komputer Indonesia

Demikian riwayat hidup saya yang dibuat dengan sebenar-benarnya dalam keadaan sadar dan tanpa paksaan.

Bandung, 19 Agustus 2014

(10)

1

Algoritma particle swarm optimization (PSO) pertama kali diperkenalkan oleh Kennedy dan R. Eberhart pada tahun 1995. Algoritma PSO ini merupakan salah satu hasil perkembangan dari kecerdasan buatan yang terinspirasi dari perilaku pergerakan kawanan hewan seperti ikan (school of fish), burung (flock),

dan kawanan serangga seperti semut rayap dan lebah. Tiap objek hewan disederhanakan menjadi partikel[1]. Algoritma ini menerapkan sifat masing masing individu dalam satu kelompok besar kemudian menggabungkan sifat sifat tersebut untuk menyelesaikan masalah. Algoritma PSO adalah salah satu metode dari teknik kecerdasan buatan swarm intelligence (SI) yang berlandaskan perilaku kolektif (collective beharviour) yang dapat mengatur dirinya sendiri ( self-organizing), dalam SI algoritma particle swarm optimization ini juga merupakan metode yang digunakan untuk penentuan posisi partikel terbaik [3].

(11)

Dengan saran dari penelitian yang dilakukan oleh Safril Rizki Waluyo, Mochamad Hariadi dan I ketut Eddy purnama, penelitian kali ini akan mencoba mengimplementasikan algoritma PSO untuk model perilaku non-player character

(NPC) menyerang secara berkelompok pada game action-RPG. Model perilaku NPC menyerang secara berkelompok ini merupakan model perilaku multi NPC dimana setiap NPC dalam suatu kelompok NPC tersebut dapat saling berkomunikasi dalam menyerang karakter player. Perilaku menyerang secara berkelompok dalam game ini ditunjukkan dari bagaimana kelompok NPC tersebut mengejar karakter player untuk menghalangi karakter player tersebut dalam mencapai misi tertentu dalam game.

Dalam mengejar karakter player setiap NPC dalam kelompok NPC ini akan berkomunikasi untuk menentukan NPC mana yang memiliki posisi terbaik, NPC yang memiliki posisi terbaik ini akan menjadi pemimpin dari NPC yang lainnya, untuk kemudian di ikuti oleh NPC lainnya tersebut dalam mengejar karakter player. Dengan itu timbul masalah bahwa setiap NPC dalam kelompok NPC tidak akan bisa begitu saja memilih NPC mana yang memiliki posisi terbaik untuk dijadikan pemimpin yang akan diikuti NPC lain yang bukan merupakan pemimpin dalam mengejar karakter player.

Untuk itu dibutuhkan algoritma yang dapat membuat setiap NPC dalam kelompok NPC tersebut untuk dapat memilih NPC mana yang menjadi pemimpin agar setiap NPC yang bukan merupakan pimimpin dapat mengikuti NPC pemimpin dalam mengejar karakter player.

Dengan latar belakang masalah diatas maka akan diimplementasikan algoritma PSO terhadap setiap NPC dalam kelompok NPC, agar setiap NPC dalam kelompok NPC tersebut dapat menentukan NPC mana yang memiliki posisi terbaik untuk dijadikan pemimpin dan NPC lain yang bukan merupakan NPC pemimpin dapat mengikuti NPC terbaik tersebut dalam mengejar karakter

player.

1.2 Rumusan Masalah

(12)

dapat memilih NPC mana yang memiliki posisi terbaik untuk dijadikan pemimpin dan diikuti NPC lain dalam mengejar karakter player.

1.3 Maksud dan Tujuan

Maksud dari penelitian ini adalah mengimplementasikan algoritma PSO kepada perilaku setiap NPC yang terdapat didalam kelompok NPC dengan model perilaku menyerang secara berkelompok.

Adapun tujuan dalam penelitian ini adalah untuk dapat memilih NPC yang memiliki posisi paling terbaik untuk dijadikan pemimpin.

1.4 Batasan Masalah

Batasan masalah dalam pembangunan aplikasi ini adalah sebagai berikut : 1. Aplikasi game berbasis desktop.

2. Game dalam bentuk Prototype.

3. Algoritma yang digunakan adalah algoritma particle swarm optimization

(PSO) yang diperkenalkan oleh Kennedy dan R. Eberhart pada tahun 1995.

4. Terdapat 10 NPC.

5. Posisi awal tiap partikel sudah ditentukan.

6. Prototype game hanya menunjukkan bagaimana kelompok NPC mengejar karakter player.

(13)

1.5 Metodologi Penelitian

Metodologi yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut:

1. Tahap pengumpulan data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah

study literatur. Study literatur merupakan tahapan pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian yaitu implementasi algoritma particle swarm optimization

untuk perilaku NPC menyerang secara berkelompok. 2. Tahap pembuatan perangkat lunak.

Dalam pembangunan prototype game sebagai sarana pengimplementasian algoritma PSO terhadap perilaku NPC menyerang secara berkelompok ini menggunakan paradigma perangkat lunak secara waterfal atau sering juga disebut degan metode sekuensial linier, adapun model paradigma ini meliputi beberapa proses diantaranya:

(14)

1. Analysis (Analisa kebutuhan)

Langkah ini merupakan analisa terhadap kebutuhan sistem. Dalam tahapan ini peneliti melakukan study literatur tentang algoritma yang akan diimplementasikan dan menggali informasi tentang algoritma tersebut untuk bagaimana nantinya akan diimplementasikan kepada perilaku NPC menyerang secara berkelompok pada game action-RPG.

2. System design

Pada proses ini peneliti mengalokasikan persyaratan baik untuk perangkat keras atau perangkat lunak sistem dengan membentuk arsitektur sistem secara keseluruhan. [5]

3. Coding (Pembuatan kode program)

Dalam tahapan ini peneliti melekukan pembuatan kode program dari hasil disain sistem yang dihasilkan dari tahapan sebelumnya.tahapan koding yang dilakukan peneliti menghasilkan game action-RPG dengan kelompok NPC didalamnya sudah terimplementasi algoritma PSO.

4. Testing (Pengujian)

Pada tahapan ini peneliti melakukan pengujian terhadap sistem apakah ada terjadi error atau tidak.

1.1 Sistematika Penulisan

(15)

BAB I PENDAHULUAN

Bab ini menjelaskan tentang latar belakang masalah, mengidentifikasi permasalahan dengan merumuskan inti dari permasalahan, menentukan maksud dan tujuan penelitian, membatasi permaslahan yang diteliti, menjelaskan metodologi penelitian yang akan digunakan, dan menyusun sistematika penulisan.

BAB II. LANDASAN TEORI

Bab ini berisi pembahasan mengenai deskripsi kecerdasan buatan /

artificial intelligence (AI), swarm intelligance, algoritma particle swarm optimization, game, pemrograman berorientasi objek dan UML

BAB III. ANALISIS MASALAH DAN PERANCANGAN

Bab ini berisi tentang analisis masalah, analsisis game yang akan dibangun, analsisis masukan, analisis metode algoritma PSO yang digunakan, fungsional yang berupa diagram-diagram UML,analisis kebutuhan non-fungsional

BAB IV. IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi implementasi dari perangkat keras yang digunakan, perangkat lunak yang digunakan, implementasi pada aplikasi permainan yang telah dibangun, dan implementasi antarmuka, serta berisi hasil pengujian dari pengimplementasian metode algoritma PSO yang digunakan.

BAB V. KESIMPULAN DAN SARAN

(16)

7

Kecerdasan Buatan adalah bagian ilmu komputer yang membuat agar mesin komputer dapat melakukan pekerjaan seperti dan sebaik yang dilakukan manusia. Pada awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun seiring dengan perkembangan jaman, maka peran komputer semakin mendominasi kehidupan manusia. Komputer tidak lagi hanya digunakan sebagai alat hitung, lebih dari itu, komputer diharapkan untuk dapat diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh manusia.

Manusia bisa menjadi pandai dalam menyelesaikan segala permasalahan di dunia ini karena manusia mempunyai pengetahuan dan pengalaman Pengetahuan diperoleh dari belajar. Semakin banyak bekal pengetahuan yang dimiliki oleh seseorang tentu saja diharapkan akan lebih mampu dalam menyelesaikan permasalahan. Namu bekal pengetahuan saja tidak cukup, manusia juga diberi akal untuk melakukan penalaran, mengambil kesimpulan berdasarkan pengetahuan dan pengalaman yang mereka miliki. Tanpa memiliki kemampuan untuk menalar dengan baik, manusia dengan segudang pengalaman dan pengetahuan tidak akan dapat menyelesaikan masalah dengan baik. Demikian pula dengan kemampuan menalar yang sangat baik, namun tanpa bekal pengetahuan dan pengalaman yang memadai, manusia juga tidak akan bisa menyelesaikan masalah dengan baik.

(17)

1.1.1 Lingkup utama kecerdasan buatan

Lingkup utama kecerdasan buatan antara lain[6] :

1. Sistem pakar. Komputer digunakan sebagai saran untuk menyimpan pengetahuan para pakar. Dengan demikian komputer akan memiliki keahlian untuk menyelesaikan masalah dengan meniru keahlian yang dimiliki para pakar

2. Pengolahan bahasa alami. Dengan pengolahan bahasa alami ini diharapkan user mampu berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari.

3. Pengenalan ucapan. Melalui pengenalan ucapan diharapkan manusia mampu berkomunikasi dengan komputer dengan menggunakan suara. 4. Robotika dan Sistem sensor.

5. Computer vision, mencoba untuk dapat mengintrepetasikan gambar atau objek-objek tampak melalui komputer.

6. Intelligent Computer aid Instruction. Komputer dapat digunakan sebagai tutor yang dapat melatih dan mengajar.

7. Game Playing

1.1.2 Keuntungan Kecerdasan Buatan

Keuntungan kecerdasan buatan antara lain[7] :

1. Kecerdasan buatan lebih bersifat permanen. Kecerdasan alami akan cepat mengalami perubahan. Hal ini dimungkinkan karena sifat manusia yang pelupa. Kecerdasan buatan tidak akan berubah sepanjang sistem komputer dan program tidak mengubahnya.

(18)

3. Kecerdasan buatan lebih murah dibanding dengan kecerdasan alami. Menyediakan layanan komputer akan lebih mudah dan lebih murah dibanding dengan harus mendatangkan seseorang untuk mengerjakan sejumlah pekerjaan dalam jangka waktu yang sangat lama.

4. Kecerdasan buatan bersifat konsisten. Hal ini disebabkan karena kecerdasan busatan adalah bagian dari teknologi komputer. Sedangkan kecerdasan alami senantiasa berubah-ubah.

5. Kecerdasan buatan dapat didokumentasikan. Keputusan yang dibuat komputer dapat didokumentasikan dengan mudah dengan melacak setiap aktivitas dari sistem tersebut. Kecerdasan alami sangat sulit untuk direproduksi.

6. Kecerdasan buatan dapat mengerjakan pekerjaan lebih cepat dibanding dengan kecerdasan alami

7. Kecerdasan buatan dapat mengerjakan pekerjaan lebih baik dibanding dengan kecerdasan alami.

1.2 SwarmIntelligence

Swarm Intelligence adalah salah satu teknik kecerdasan buatan yang berlandaskan kepada perilaku kolektif (collective behaviour) pada sistem yang terdesentralisasi dan dapat mengatur dirinya sendiri (self-organizing).[9]

(19)

1.2.1 Sifat Sifat Dasar SwarmIntelligence

Sifat sifat dari Swarm Intelligence diantaranya [9]: 1. Terdiri dari banyak individu

2. Individu yang relatif bersifat homogen(Baik yeng memiliki sifat yang sama maupun yang memiliki sifat atau tipe yang berbeda)

3. Interaksi antar individu didasari dari aturan perilaku sederhana yang memanfaatkan informasi lokal baik secara langsung atau melalui lingkungannya

Kemampuan setiap individu melakukan interaksi dengan sesama individu maupun dengan lingkungannya dalam swarm intelligence disebut dengan self-organizes. Ini menunjukkan bahwa setiap individu dapat mengatur dirinya sendiri.

1.2.2 Prinsip Dasar SwarmIntelligence

Prinsip dasar Swarm Intelligence : [10]

1. Prinsip Kedekatan : setiap individu harus dapat menyesuaikan ruang dan waktu dengan perhitungan sederhana

2. Prinsip kualitas : setiap individu harus dapat menanggapi faktor lingkungan

3. Prinsip respon Beragam : setiap individu tidak seharusnya melakukan kegiatannya pada jalur yang terlalu sempit

4. Prinsip stabilitas : populasi tidak harus mengubah modus perilakunya setiap kali perubahan lingkungan

(20)

1.2.3 Algoritma Swarm Intelligence

Adapun beberapa contoh algoritma atau metode yang populer dari swarm intelligence diantaranya [10] :

a.) Particle Swarm Optimization (PSO) b.) Ant Colony System (ACS)

c.) Artificial Bees Colony (ABC)

1.3 Algoritma particle swarm optimization (PSO)

Algoritma particle swarm optimization (PSO) merupakan algoritma yang dikembangkan oleh Kennedy dan R. Eberhart pada tahun 1995 yang terinspirasi dari perilaku pergerakan kawanan hewan seperti ikan (school of fish), hewan herbivora (herd), burung (flock), dan kawanan serangga seperti semut rayap dan lebah. Tiap objek hewan disederhanakan menjadi partikel. Algoritma ini menerapkan sifat masing masing individu dalam satu kelompok besar kemudian menggabungkan sifat sifat tersebut untuk menyelesaikan masalah.[1] Algoritma PSO adalah salah satu metode dari teknik kecerdasan buatan swarm intelligence

(21)

update partikel dilakukan dengan menggunakan persamaan dasar PSO [1] Vi(t+1) = Vi(t) + C1 r1 ( Pbest i– Xi(t) ) + C2 r2( Gbesti– Xi (t) ) (2.1)

Update posisi partikel dapat dilakukan dengan menggunakan persamaan [1]: Xi(t+1) = Xi(t) + Vi(t+1) (2.2)

Dimana :

Vi (t) adalah kecepatan partikel ke (i) pada iterasi ke (t) [1]

Xi (t) adalah Posisi partikel ke (i) pada iterasi ke (t) [1]

V adalah Velocity (kecepatan partikel) [1] X adalah Koordinat partikel (posisi partikel) [1] i adalah Partikel ke (1,2,3 . . . N) [1]

C1 dan C2 adalah Faktor cognitive dan sosial nilai ini adalah nilai konstanta

bernilai diantara ( 0 dan 1 ) [1] r1 dan r2 adalah Bilangan acak antara 0 – 1[1]

Pbest adalah Posisi terbaik yang dimiliki setiap partikel [1]

(22)

1.3.1 Penyelesaian Dalam PSO

Dalam PSO untuk menyelesaikan masalah langkah langkahnya adalah sebagai berikut :

1. Inisialisasi populasi partikel

Langkah ini merupakan tahap awal dimana jumlah dan koordinat partikel / posisi partikel ditentukan terlebih dahulu.

2. Melakukan perhitungan nilai fitness dari setiap partikel

Untuk memperoleh nilai fitness dibutuhkan nilai posisi setiap partikel tersebut untuk dievaluasi oleh fungsi fitness.

3. Menentukan Pbest (personal best)

Pbest adalah posisi terbaik setiap partikel. Posisi ini merupakan posisi yang ditempati oleh partikel saat ini.

4. Menentukan Gbest (Global best)

Nilai Gbest merupakan nilai posisi partikel yang memiliki posisi paling baik dari partikel lainnya. Nilai Gbest ini didapat dengan membandingkan nilai fitness dari setiap partikel untuk kemudian koordinat posisi dari partikel yang memiliki fitness paling optimal tersebut akan dijadikan Gbest. Nilai fitness dikatakan optimal tergantung kasus yang dimiliki apakah maksimasi ataupun minimasi 5. Menghitung nilai velocity (V)

Untuk mendapatkan nilai V terbaru dapat digunakan persamaan (2.1) untuk perbaharui kecepatan

6. Menghitung nilai koordinat terbaru

Memasukan hasil perhitungan nilai V dari setiap partikel kedalam persamaan (2.2)

7. Mengecek posisi partikel apakah sudah mencapai titik tujuan atau belum

Nilai dikatakan konveregen jika posisi partikel mencapai posisi tujuan. Jika partikel belum mencapai titik tujuan maka langkah 2 diulangi dengan

(23)

1.3.2 Kelebihan dan Kekurangan PSO

A. Kelebihan dari algoritma PSO [11]:

1. Algoritma PSO didasari oleh intelligence. Hal ini dapat diterapkan baik kedalam penelitian ilmiah maupun teknik.

2. Algoritma PSO tidak memiliki perhitungan mutasi yang tumpang tindih. Pencarian dapat dilakukan dengan kecepatan setiap partikel. partikel yang optimal dapat mengirim informasi sehingga partikel lain dapat cepat melakukan pencarian.

3. Perhitungan dari algoritma PSO sangat sederhana dibandingkan dengan perhitungan algoritma yang berkembang lainnya.Algoritma PSO ini memiliki tingkat optimasi yang paling tinggi dan dapat diselesaikan dengan perhitungan yang sederhana.

4. Algoritma PSO mengandung bilangan real

B. Kekurangan dari algoritma PSO [11]:

1. Algoritma ini mudah mengalami optimasi yang parsial yang mengakibatkan kurang tepatnya pengaturan terhadap kecepatan dan tujuan.

2. Algoritma ini tidak dapat bekerja diluar masalah optimasi.

(24)

1.4 Game

Game merupakan bentuk partisipatif, interaktif dan hiburan. Menonton televisi, membaca, dan pergi ke teater merupakan segala bentuk hiburan pasif. Sedangkan ketika seseorang bermain game, mereka terhibur dengan berpartisipasi secara aktif. Game ditempatkan pada sebuah dunia buatan yang diatur melalui aturan-aturan (rules). Aturan tersebut menentukan tindakan atau langkah yang pemain dapat dan tidak dapat lakukan dalam sebuah game. [12]

1.4.1 Klasifikasi Game

Game dapat diklasifikasikan menjadi beberapa jenis, yaitu berdasarkan

platform yang digunakan, dimensi, dan genre dari game itu sendiri. [12]

1.4.1.1 Klasifikasi Game Berdasarkan Platform

Platform merupakan kombinasi spesifik dari komponen elektronik atau perangkat keras komputer dengan perangkat lunak yang memungkinkan game

untuk beroperasi. Berdasarkan platform yang digunakan, game dapat dibagi menjadi beberapa jenis, diantaranya: [12]

1. Arcade Games

Arcade games, yaitu game yang biasanya memiliki box atau mesin yang memang khusus di desain untuk jenis video games tertentu, bahkan memiliki fitur yang dapat membuat pemainnya lebih merasa masuk dan menikmati , seperti pistol, kursi khusus, sensor gerakan, sensor injakkan dan stir mobil. Arcade games

biasanya berada di daerah/tempat khusus, sebagai contoh di Indonesia dikenal dengan sebutan ding-dong [12]

2. PC Games

(25)

3. Consolle Game

Console games, yaitu game yang dimainkan menggunakan konsol tertentu, seperti Playstation 2, Playstation 3, XBOX 360, dan Nintendo Wii [12]

4. Handheald Game

Handheld games, yaitu game yang dimainkan di konsol khusus video game

yang dapat dibawa kemana-mana (portable), sebagai contoh Nintendo DS dan

Sony PSP [12]

5. Mobile Game

Mobile games, yaitu game yang dapat dimainkan khusus untuk mobile phone

atau PDA [12]

1.4.1.2 Klasifikasi Game Berdasarkan Dimensi

Dimensi adalah angka yang berhubungan dengan sifat metrik atau topologi dari suatu objek. Berdasarkan dimensi dari objek-objeknya, game dapat dibagi menjadi beberapa jenis, diantaranya: [12]

1. Game 2D

Game dua dimensi atau 2D merupakan suatu konsep dimana semua objek berada pada satu bidang datar. Gerakan pada game 2D dibatasi hanya horizontal dan vertikal atau secara koordinat gerakan pemain dibatasi hanya dapat bergerak pada sumbu X danY. Pada game 2D terdapat dua pergerakan kamera. Pertama adalah kamera statis dimana gambar latar (backround) dan tempat game 2D tidak bergerak sama sekali, contoh dalam jenis ini adalah tetris. Kedua adalah Side Scrolling dimana game yang kita mainkan mempunyai kamera yang dapat bergeser ke kanan atau ke kiri dengan kecepatan sesuai dengan gerakan dan kecepatan karakter yang kita mainkan/gerakkan pada game tersebut, contoh game

yang termasuk pada jenis ini adalah Super Mario Bross, Sonic dan Megaman. [12]

(26)

Setelah game 2D, muncul game dengan tampilan 3D datar (3D Plane). Game

seperti ini bukan 2D tapi tidak juga full 3D. Teori grafik seperti ini disebut dengan 2.5D atau pseudo-3D, sedangkan pada istilah game lebih dikenal dengan istilah

isometric, diametric atau trimetric projection. Biasanya gameplay dari game 2.5D mirip 2D dimana kita hanya bisa bergerak secara horizontal dan vertikal, namun beberapa objek menggunakan teknik rendering secara 3D. Salah satu hal yang membuat developer game membuat game seperti ini karena pemrosesan 3D secara total memerlukan banyak waktu dan biaya untuk membuatnya[12]

3. Game 3D

Game 3D menggunakan tiga dimensional representasi geometris data (X, Y, Z) yang disimpan dalam komputer untuk keperluan perhitungan dan rendering

gambar 2D. Dalam sebuah game 3D, pemain bisa melihat sebuah objek dari sudut 360°. Terdapat tiga dasar dalam pembuatan sebuah objek 3D, yaitu 3D modeling, 3D rendering, dan 3D computer graphics software .

Genre pada suatu game memperlihatkan pola umum tantangan dari game

tersebut. Dengan perkembangan informasi seperti sekarang, genre dari game

masih terus berkembang, sebagai contoh simulasi menari (dance simulation) yang diperkenalkan oleh desainer game dari Jepang. Namun secara umum game dapat dibagi menjadi beberapa jenis [12]

1.4.1.3 Klasifikasi Game Berdasarkan Genre

Genre pada suatu game memperlihatkan pola umum tantangan dari game

tersebut. Dengan perkembangan informasi seperti sekarang, genre dari game

masih terus berkembang, sebagai contoh simulasi menari (dance simulation) yang diperkenalkan oleh desainer game dari Jepang. Namun secara umum game dapat dibagi menjadi beberapa jenis berdasarkan genre yang diterapkannya, yaitu: [12]

A.Game Strategi

(27)

menjadi 2 bentuk utama, yaitu classical turn-based strategy dan real-time strategy[12]

B.Role Playing Game (RPG)

Game RPG merupakan salah satu genre yang dibuat dari game yang berasal dari kertas dan pena. Dalam game RPG terdapat dua elemen utama yang menjadi kunci suksesnya sebuah game RPG. Fitur yang pertama adalah cerita (story) dan fitur yang kedua adalah pembangunan karakter (character development), dimana karakter merupakan tokoh hayalan yang akan di perankan oleh player. adapun game dengan jenis RPG ini di bagi menjadi 2 genre yaitu : [12]

1. Action – RPG

game dengan genre ini sama seperti game dengan genre game RPG (role playing game) pada umumnya hanya saja ditambahkan unsur

action sehingga sedikit membutuhkan keahlian dan kegesitan dalam memainkannya

2. Turn based RPG

Untuk ganregame RPG satu ini sistem pertarungan lebih cenderung ke strategi. Dimana kita harus memberikan perintah kepada karakter seperti Attack, Magic, Skill dan memilih musuh yang di serang dalam setiap pertarungan. kelebihan Turn Based RPG adalah kita di tuntut untuk membuat taktik agar dalam sebuah pertarungan karakter kita dapat memenangkan pertarungan dan mendapat experiencepoint.

C.Game Olahraga

Game olahraga mempunyai tantangan yang tidak biasa bagi seorang desainer

(28)

D.Simulasi Kendaraan

Pada simulasi kendaraan, pemain dihadapkan dalam suatu kondisi seolah-olah pemain mengemudikan atau menerbangkan sebuah kendaraan, secara nyata atau imajinasi. Pada simulasi kendaraan yang nyata, salah satu tujuan yang harus dicapai adalah kemiripan kendaraan, seperti karakteristik kinerja mesin (kecepatan dan manuver) dengan kendaraan yang sebenarnya. Namun, jika mendesain kendaraan imajinasi, kita bebas untuk membuat driving experience untuk pemain, tanpa harus terbatas oleh gravitasi, G-forces, kapasitas bensin, dan lainnya[12]

E.Game Petualangan

Game petualangan bukan merupakan sebuah kompetisi atau simulasi seperti

game yang lainnya. Game jenis ini tidak menawarkan proses untuk dikelola atau mengalahkan musuh melalui strategi dan taktik. Game petualangan merupakan cerita interaktif mengenai karakter yang dikontrol oleh pemain[12]

F. Game Puzzle

Game puzzle merupakan game yang bertujuan untuk memecahkan sebuah puzzle, terkadang tanpa menyatukan dengan jalan cerita atau tujuan yang lebih besar. Game jenis ini biasanya bervariasi pada satu tema saja. Untuk kesuksesan secara komersil, sebuah game puzzle haruslah memiliki tantangan, visual yang atraktif, dan disamping itu, nyaman untuk dimainkan[12]

G.Game Aksi

Games aksi merupakan sumber yang baik bagi elemen desain dari sebuah

game. Game ini relatif sederhana karena membuat analisis dari game tersebut lebih mudah, jika dibandingkan dengan genre lain. Aturan dari sebuah game action menjelaskan dasar dari mekanika game. Mereka biasanya lebih simpel dalam aturan, karena kealamian dari gameplaynya. Intinya, game action

merupakan game yang membutuhkan keterampilan seperti pengolahan informasi sensorik dan tindakan secara cepat. Hal ini memaksa pemain untuk membuat keputusan dan melakukan tanggapan pada kecepatan yang jauh lebih besar. [12]

1.5 Pemrograman Berorientasi Object (PBO)

(29)

berisi data dan operasi yang diberlakukan terhadapnya. Metologi berorientasi objek merupakan suatu cara bagaimana sistem perangkat lunak dibangun melalui pendekatan objek secara sistematis. Metode berorientasi objek didasarkan pada penerapan prinsip-prinsip pengelolaan kompleksitas. Metode berorientasi objek meliputi rangkaian aktifitas analisis berorientasi objek, perancangan berorientasi objek, pemrograman berorientasi objek dan pengujian berorientasi objek[5].

Dalam rekayasa perangkat lunak, konsep pendekatan berorientasi objek dapat diterapkan pada tahap analisis perancangan,pemrograman dan pengujian perangkat lunak. Ada berbagai teknik yang dapat digunakan pada masing-masing tahap tersebut, dengan aturan dan alat bantu pemodelan tersebut[5]

1.5.1 Konsep Dasar PBO

Berikut ini adalah beberapa konsep dasar yang harus dipahami tentangmetodologi berorientasi objek :[5]

1.5.1.1 Object

Objek adalah abstraksi dan sesuatu yang mewakili dunia nyata,seperti benda, manusia, satuan, tempat, kejadian, struktur, statusatau hal-hal lain yang bersifat abstrak. Objek merupakan suatuentitas yang mampu menyimpan informasi (status) dan mempunyaioperasi (kelakuan) yang dapat diterapkan atau dapat berpengaruhpada status objek. Objek mempunyai siklus hidup yaitu diciptakan,dimanipulasi dan dihancurkan.[5]

1.5.1.2 Kelas (Class)

(30)

1.5.1.3 Methode

Operasi atau metode atau method pada sebuah kelas hampir sama dengan fungsi atau prosedur pada metodologi struktural. Sebuah kelas boleh memiliki lebih dari satu metode atau operasi. Metode atau operasi yang berfungsi untuk memanipulasi objek itu sendiri.Operasi atau transformasi yang dapat dilakukan terhadap objek atau dilakukan oleh objek.Metode atau operasi dapat berasal dari event , aktivitas atau aksi keadaan, fungsi atau kelakuan dunia nyata. Contoh metode atau operasi misalnya :Read, Write, Move, Copy, dan sebagainya.[5]

1.5.1.4 Encapsulation

Pembukusan atribut data dan layanan (operasi-operasi) yang dipunyai objek untuk menyembunyikan implementasi dan objek sehingga objek lain tidak mengetahui cara kerja-nya. Misalkan seperti pada ilustrasi berikut. [5]

Gambar 1.1 Ilustrasi Enskapsulasi [5]

1.5.1.5 Inheritance (Pewarisan)

Mekanisme yang memungkinkan satu objek mewarisi sebagian atau seluruh definisi objek lain sebagai bagian dari dirinya.[5]

Kelas( Bungkusan)

Atribut( Variabel)

(31)

1.5.1.6 Polimorfisme

Kemampuan suatu objek untuk digunakan di banyak tujuan yangberbeda dengan nama yang sama sehingga menghemat barisprogram. [5]

1.5.1.7 Antarmuka

Antarmuka atau interface sangat mirip dengan kelas, tapi tanpa atribut kelas dan memiliki metode yang dideklarasikan tanpa isi.Deklarasi metode pada sebuah interface dapat diimplementasikan oleh kelas lain.Sebuah kelas dapat mengimplementasikan lebih dari satu antarmuka di mana kelas ini akan mendeklarasikan metode pada antarmuka yang dibutuhkan oleh kelas itu sekaligus mendefinisikanisinya pada kode program itu. Metode pada antarmuka yang diimplementasikan pada suatu kelas harus sama persis dengan yang ada pada antarmuka . antarmuka atau interface Biasanya digunakan agar kelas yang lain tidak mengakses langsung ke suatu kelas, mengakses antarmukanya. [5]

1.5.1.8 Reusability

Pemanfaatan kembali objek yang sudah didefinisikan untuk suatu permasalahan pada permasalahan lainnya yang melibatkan objek tersebut. [5]

1.5.1.9 Generalisasi Spesialisai

Menunjukkan hubungan antar kelas dan objek yang umum dengankelas dan objek yang khusus. Misalnya kelas yang lebih umum(generalisasi) adalah kendaraan darat dan kelas khususnya(spesialisasi) adalah mobil, motor dan kereta. [5]

1.5.1.10 Komunikasi Antar Object

Komunikasi antar objek dilakukan lewat pesan (message) yang dikirim dari satu objek ke objek lainnya. [5]

1.5.1.11 Package

(32)

1.5.1.12 Atribute

Atribut dari sebuah kelas adalah variabel global yang dimiliki sebuah kelas. Atribut dapat berupa nilai elemen-elemen data yang dimiliki oleh objek dalam kelas objek Atribut dipunyai secara individual oleh sebuah objek, misalnya berat, jenis, nama dan sebagainya. [5]

1.5.1.13 Abstraksi

Prinsip untuk merepresentasikan dunia nyata yang kompleksmenjadi satu bentuk model yang sederhana dengan mengabaikanaspek-aspek lain yang tidak sesuai dengan permasalahan. [5]

1.5.2 Unified Modelling Language (UML)

Unified Modelling Language (disingkat UML) adalah salah satu standar bahasa yang banyak digunakan di dunia industri untuk mendefinisikan kebutuhan (requirement), membuat analisis dan desain, serta menggambarkan arsitektur dalam pemrograman berorientasi objek.[5]

a. Menggambarkan bagaimana sistem digunakan

b. Mendeskripsikan apa yang sistem lakukan tanpa mendeskripsikan bagaimana sistem menyelesaikannya.

c. Dibuat berdasarkan interaksi dan relasi dari individual use case. d. Berisi aktor, event, dan use case.

e. Titik awal untuk pemodelan UML.

1.5.2.2 Activity Diagram

(33)

1.5.2.3 Sequence Diagram

Menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainnya) berupa message yang digambarkan terhadap waktu. Sequence diagrams terdiri atas dimensi vertical (waktu) dan dimensi horizontal (objek-objek yang terkait).

1.5.2.4 Class Diagram

(34)

25

Berdasarkan latar belakang masalah dengan mengevaluasi jurnal yang dibuat oleh Safril Rizki Waluyo, Mochamad Hariadi dan I ketut Eddy Purnama yang berjudul pencaian jalur terbaik menggunakan algoritma particle swarm optimization untuk optimasi lalulintas kendaraan, maka masalah yang teridentifikasi pada implementasi algoritma PSO untuk perilaku NPC menyerang secara berkelompok adalah bagaimana setiap NPC dalam suatu kelompok NPC dapat memilih NPC mana yang memiliki posisi terbaik untuk dijadikan pemimpin dan diikuti NPC lain dalam mengejar karakter player.

1.2 Analisis Game

Game yang akan dibangun merupakan game 2D dengan genre action-RPG dimana game yang dikembangkan berupa prototype dan berbasis desktop

1.2.1 Perilaku NPC

Berikut adalah rancangan perilaku setiap NPC dalam kelompok NPC : 1. Setiap NPC mengetahui posisi NPC lain yang ada disekitar 2. Setiap NPC mengetahui dimana posisinya sendiri

3. Setiap NPC memiliki satu tujuan yang sama dengan NPC lain

4. NPC pemimpin dapat memberikan informasi posisinya kepada NPC lain yang bukan pemimpin.

5. NPC lain yang bukan pemimpin mengikuti pergerakan NPC pemimpin dalam mengejar karakter player

1.2.2 Game Play

Dalam game ini terdapat 10 NPC yang akan mengejar dan menghalangi karakter player dalam menyelesaikan misi. Karakter player harus menghindari 10 NPC ini untuk melanjutkan misi. Pergerakan karakter player dapat dikontrol dengan tombol arah pada keyboard, karakter player harus mengumpulkan 12 buah kunci emas ajaib untuk dapat keluar dari stage ini. Nyawa karakter player

(35)

1.2.3 Story Line

Karakter player memerankan sosok hero dimana dalam satage ini hero

terjebak di sebuah padang rumput yang didalamnya terdapat 10 monster, untuk keluar dari kejaran monster, hero harus mengumpulkan 12 buah kunci emas, apabila semua kunci emas sudah terkumpul akan muncul pintu ajaib dimana pintu ini akan mengeluarkan hero dari padang rumput ini.

1.2.4 Perancangan Karakter

Tabel 1.1 Perancangan Karakter

Jenis Karakter Nama Karakter Gambar

Karakter Player Player

NPC NPC 1

NPC NPC 2

NPC NPC 3

NPC NPC 4

NPC NPC 5

(36)

NPC NPC 7

NPC NPC 8

NPC NPC 9

NPC NPC 10

1.3 Analisis Game Action RPG

Game action RPG merupakan pengembangan dari game RPG dimana game

dengan genre action RPG ini memiliki unsur action sehingga membutuhkan sedikit keahlian dan kegesitan dalam memainkannya. Game dengan genre ini adalah salah satu game yang berasal dari kertas dan pena. Dalam game

action-RPG terdapat dua elemen utama yang menjadi kunci suksesnya sebuah game

RPG. Fitur yang pertama adalah cerita (story) dan fitur yang kedua adalah pembangunan karakter (character development), dimana karakter merupakan tokoh hayalan yang akan di perankan oleh player.

1.3.1 Karakter Dalam Game Action RPG

Dalam game action-RPG adapun karakter dibagi menjadi 2 yaitu : 1. Karakter player / player character

2. Non player character (NPC)

1.3.1.1 Karakter Player / Player Character

Karakter player adalah karakter yang dimainkan atau dikendalikan oleh player

dimana pergerakan maupun tingkah laku dari karakter ini sepenuhnya tergantung dari bagaimana player mengendalikan dan memainkannya. Karakter player dalam

(37)

1.3.1.2 Non Player Character (NPC)

Bukan karakter player / NPC merupakan karakter yang dikendalikan sepenuhnya oleh sistem dimana tingkah laku maupun pergerakan dari NPC ini sudah dirancang sebelumnya didalam sistem. Dalam penelitian kali ini peneliti mencoba mengendalikan NPC dalam game action-RPG ini dengan mengimplementasikan algoritma PSO kedalam model perilaku NPC menyerang secara berkelompok.

1.3.2 Perilaku NPC Menyerang Secara Berkelompok

Model perilaku NPC menyerang secara berkelompok ini merupakan model perilaku multi NPC dimana setiap NPC dalam suatu kelompok NPC tersebut dapat saling berkomunikasi dalam menyerang karakter player. Perilaku menyerang secara berkelompok dalam game ini ditunjukkan dari bagaimana kelompok NPC tersebut mengejar karakter player untuk menghalangi karakter

player tersebut dalam mencapai misi tertentu dalam game.

Dalam mengejar karakter player setiap NPC dalam kelompok NPC ini akan berkomunikasi untuk menentukan NPC mana yang memiliki posisi terbaik, NPC yang memiliki posisi terbaik ini akan menjadi pemimpin dari NPC yang lainnya, untuk kemudian di ikuti oleh NPC lainnya tersebut dalam mengejar karakter

player.

1.3.3 Story Game Action RPG

Story atau cerita dalam game action RPG merupakan salah satu unsur yang juga penting dalam game ini dimana player akan mengacu terhadap cerita dari

game dalam memainkan gameaction RPG ini.

1.3.4 Arena Permainan Game Action RPG

(38)

ke kanan maka koordinat x pada tiap karakter akan berubah, begitu pula apabila tiap karakter bergerak ke atas atau ke bawah maka koordinat y pada tiap karakter akan berubah. Nilai dari koordinat setiap karakter bertipe integer dimana tipe data ini yang akan dieksekusi oleh algoritma dan menghasilkan sebuah nilai. Adapun pengimplementasian algoritma PSO terhadap model perilaku NPC menyerang secara berkelompok ini akan mempengaruhi pergerakan NPC, dimana pergerakan NPC ke kiri, ke kanan, ke atas, ke bawah maupun diagonal akan dipengaruhi dari hasil perubahan dari perhitungan algoritma PSO itu sendiri. Berikut arena dari

game action RPG dengan disertakan grid dari sumbu x dan sumbu y yang akan di bangun :

(39)

1.4 Analisis Masukan

Dalam algoritma PSO untuk mencapai suatu titik tujuan setiap partikel akan menentukan partikel mana yang memiliki posisi terbaik terlebih dahulu kemudian partikel lain yang tidak memiliki posisi terbaik akan memperbaharui kecepatan dan posisinya untuk mencapai posisi partikel yang memiliki posisi paling baik tersebut .untuk memperbaharui kecepatan dan posisi dari tiap partikel tersebut dibutuhkan masukan, diantaranya :

1. Nilai koordinat posisi setiap partikel

Nilai ini diperoleh dari nilai titik koordinat setiap NPC. Nilai titik koordinat awal dari setiap NPC sudah di tentukan sebelumnya[1]

2. Nilai Fitness

Nilai dari fitness diperoleh dengan mengevaluasi koordinat setiap partikel kedalam fungsi fitness[1] dimana fungsi fitness merupakan fungsi yang akan dioptimasi [13]

3. Nilai konstanta C1 dan C2

Nilai ini merupakan konstanta faktor cognitive dan sosial. Nilai C1 dan C2 ini berkisar antara 0 sampai dengan 1.

Adapun nilai C1 dan C2 ini ditentukan terlebih dahulu. Dimana nilai C1 dan C2

yang digunakan dalam tahap analisis = 1.

4. Bilangan acak r1 dan r2

Nilai ini merupakan nilai random.

Nilai ini diperoleh dari nilai random antara 0 sampai dengan 1 [1]

5. Nilai Pbest

Nilai Pbest atau personal best, nilai ini adalah nilai Posisi terbaik yang dimiliki setiap partikel.

Nilai ini diperoleh dari nilai titik koordinat setiap partikel [1] 6. Nilai Gbest

Nilai Gbest atau global best, nilai ini adalah posisi partikel yang memiliki posisi paling baik dari partikel lainnya.

(40)

1.5 Analisis Algoritma

Dalam penelitian kali ini algoritma PSO akan diimplementasikan terhadap perilaku NPC menyerang secara berkelompok, dimana algoritma PSO digunakan untuk menentukan posisi NPC terbaik untuk dijadikan pemimpin dan NPC lain yang bukan merupakan pemimpin dapat mengikuti NPC yang memiliki posisi terbaik tersebut dalam mengejar karakter player. Adapun dalam penelitian kali ini nilai fitness yang akan dioptimasi adalah jarak antara NPC dengan player dimana NPC yang memiliki jarak paling pendek dengan player maka NPC tersebut merupakan NPC pemimpin yang akan diikuti NPC lain dalam mengejar karakter

player. Berikut fungsi menghitung jarak antar player dengan NPC yang nantinya akan dioptimasi :

� � = (��� ��. − ���. )2+ (��� ��. − ���. )2 (3.1)

Dimana :

F(X) adalah fitness

��� ��. adalah koordinat X player

��� ��. adalah koordinat Y player

���. = koordinat X NPC

(41)

1.5.1 Langkah Penyelesaian Dalam PSO

adapun langkah langkah menyelesaikan masalah dalam algoritma PSO adalah sebagai berikut :

1. Inisialisasi populasi partikel

Langkah ini merupakan tahap awal dimana jumlah dan koordinat partikel / posisi partikel ditentukan terlebih dahulu.

2. Melakukan perhitungan nilai fitness dari setiap partikel

Untuk memperoleh nilai fitness dibutuhkan nilai posisi setiap partikel tersebut untuk dievaluasi oleh fungsi fitness

3. Menentukan Pbest (personal best)

Pbest adalah posisi terbaik setiap partikel. Posisi ini merupakan posisi yang ditempati oleh partikel saat ini.

4. Menentukan Gbest (Global best)

Nilai Gbest merupakan nilai posisi partikel yang memiliki posisi paling baik dari partikel lainnya.Nilai Gbest diperoleh dari koordinat partikel yang paling baik dimana partikel yang memiliki koordinat paling baik ini merupakan partikel yang memiliki fitness paling optimal,fitness dikatakan optimal tergantung kasus yang dimiliki minimasi atau maksimasi.

5. Menghitung nilai velocity (V)

Untuk mendapatkan nilai V terbaru dapat digunakan persamaan (2.1) untuk perbaharui kecepatan

6. Menghitung nilai koordinat terbaru

Memasukan hasil perhitungan nilai V dari setiap partikel kedalam persamaan (2.2)

7. Mengecek posisi partikel apakah sudah mencapai titik tujuan atau belum

(42)

1.5.2 Algoritma PSO Dalam Game

Dalam game yang akan dibangun penggunaan algoritma PSO hanya untuk pemilihan NPC mana yang menjadi pemimpin dan NPC yang bukan pemimpin bergerak menuju NPC pemimpin. Maka dari itu dalam game yang akan dibangun dibutuhkan algoritma lain untuk menggerakkan NPC pemimpin agar dapat mencapai posisi karakter player. Berikut gambar flowchart algoritma yang digunakan NPC pemimpin untuk mengejar karakter player :

Y

T

Y

(43)

1.5.3 Alur Proses Penyelesaian Dalam PSO

Berikut merupakan alur proses algoritma PSO yang diterapkan dalam game :

Belum

Sudah

Gambar 1.3 Alur Proses Penyelesaian Dalam PSO

Mulai

Inisialisasi posisi dan jumlah NPC

Evaluasi koordinat NPC dengan fungsi fitness

Menentukan nilai Pbest dan Gbest

Perbaharui Kecepatan

Perbaharui Posisi

Selesai

(44)

1.6 Analisis Kasus

Berikut contoh masalah yang akan diselesaikan menggunakan algoritma PSO Diketahui:

Kasus minimasi Fungsi fitness:

� � = (��� ��. − ���. )2+ (��� ��. − ���. )2

Titik koordinat player = (500,380)

C1 = C2 = 1 // Nilai C1 dan C2 sudah ditentukan (nilai antara 0 sampai dengan 1)

r1 , r 2 = nilai random // nilai berkisar antara 0 sampai dengan 1

Banyak partikel = 5

Nilai titik Koordinat awal NPC : Koordinat NPC1 : X1= (270,275)

Koordinat NPC2 : X2 = (430,290)

Koordinat NPC 3 : X3 = (360,250)

Koordinat NPC 4 : X4= (160,180)

(45)

Gambar 1.4 Posisi awal NPC dan Player

Nilai Velocity setiap partikel saat ini

Velocity NPC 1 : V1= 0

Velocity NPC 2 : V2= 0

Velocity NPC 3 : V3= 0

Velocity NPC 4 : V4= 0

(46)

1.6.1 Penyelesaian ITERASI KE 0

Nilai random pada iterasi ke 0 : r1 = 0,2 r2 = 0,5

Langkah pertama

Nilai koordinat NPC saat ini :

Koordinat NPC1 pada iterasi ke 0 : X1= (270,275)

Evaluasi posisi NPC dengan menggunakan fungsi fitness :

� � = (��� ��. − ���. )2+ (��� ��. ���. )2

Perhitungan nilai fitness tiap NPC :

Fitness NPC1 : F(X) 1= √ (500-270)2 + (380-275) 2 = 252

Nilai Pbest = nilai koordinat partikel saat ini Pbest NPC 1 : Pbest1 = (270,275)

Nilai Gbest merupakan nilai titik koordinat NPC yang memiliki nilai fitness

(47)

dengan player. NPC dengan jarak paling sedikit merupakan NPC yang paling optimal dan dijadikan pemimpin. Adapun nilai fitness yang di dapat :

Fitness NPC1 : F(X) 1 = 252

paling rendah adalah NPC ke 2.

Maka didapat nilai Gbest = koordinat NPC ke 2 = (430,290)

Langkah kelima

NPC lain yang bukan pemimpin memperbaharui kecepatan dengan persamaan sebagai berikut :

Vi (t+1) = Vi(t)+C1.r1(Pbest i– Xi(t)) + C2.r2(Gbest i–Xi(t))

Perhitungan nilai perbaharui kecepatan tiap NPC :

NPC1 : Vx1 (1) = 0 + 0.2(270– 270) + 0.5( 430 – 270) = 80

NPC lain yang bukan pemimpin memperbaharui posisi dengan persamaan sebagai berikut:

Xi (t+1) = Xi (t) +Vi (t+1)

Perhitungan perbaharui kecepatan tiap NPC : NPC 1 : X1(1) = 270 + 80 = 350

(48)

NPC3 : X3(1) = 360 + 35 = 395

Y3(1) = 250 +20 =270

NPC4 : X4(1) = 160 + 135 = 295

Y4(1) = 180 + 25 = 205

NPC 5 : X5(1) = 200 + 115 = 315

Y5(1) = 240 + 25 = 265 Hasil :

Nilai titik koordinat yang dihasilkan :

Titik awal tiap NPC : Koordinat baru yang dihasilkan NPC : X1(0) = (270,275) X1(1) = (350 , 282.5)

X3(0) = (360,250) X3(1) = (395 , 270)

X4(0) = (160,180) X4(1) = (295 , 205)

X5(0) = (200,240) X5(1) = (315 , 265) Langkah ketujuh

Mengecek posisi NPC apakah sudah konveregen atau belum

(49)

ITERASI KE 1

Nilai random pada iterasi ke 1 : r1 = 0,4 r2 = 0,7

Langkah pertama

Nilai koordinat NPC saat ini :

Koordinat NPC 1 pada iterasi ke 1: X1 = (350 , 282.5)

Evaluasi posisi NPC dengan menggunakan fungsi fitness :

� � = (��� ��. − ���. )2+ (��� ��. ���. )2

Perhitungan nilai fitness tiap NPC :

Fitness NPC1 : F(X) 1=√ (500-350)2 + (380-282.5) 2 = 178

Nilai Pbest = nilai koordinat partikel saat ini Pbest NPC 1 : Pbest1 = (350 , 282.5)

Nilai Gbest merupakan nilai titik koordinat NPC yang memiliki nilai fitness

(50)

Fitness NPC1 : F(X) 1 = 178

paling rendah adalah NPC ke 2.

Maka didapat nilai Gbest = koordinat NPC ke 2 = (430,290)

Langkah kelima

NPC lain yang bukan pemimpin memperbaharui kecepatan dengan persamaan sebagai berikut :

Vi (t+1) = Vi(t)+C1.r1(Pbest i– Xi(t)) + C2.r2(Gbest i–Xi(t))

Perhitungan nilai perbaharui kecepatan tiap NPC :

NPC1 : Vx1 (2) = 80 + 0.4(350– 350) + 0.7( 430 – 350) = 136

NPC lain yang bukan pemimpin memperbaharui posisi dengan persamaan sebagai berikut:

Xi (t+1) = Xi (t) +Vi (t+1)

Perhitungan perbaharui kecepatan tiap NPC : NPC 1 : X1(2) = 350 + 136 = 486

Y1(2) = 282.5 + 12.75 = 295.25

(51)

Y3(2) = 270 + 34 = 304

NPC4 : X4(2) = 295 + 229.5 = 524.5

Y4(2) = 205 + 114.5 = 319.5

NPC 5 : X5(2) = 315 + 195.5 = 510.5

Y5(2) = 265 + 42.5 = 307.5 Hasil :

Nilai titik koordinat yang dihasilkan :

Titik awal tiap NPC : Koordinat baru yang dihasilkan NPC : X1(1) = (350 , 282.5) X1(2) = (486 , 295.25)

X3(1) = (395 , 270) X3(2) = (454.5 , 304)

X4(1) = (295 , 205) X4(2) = (524.5 , 319.5)

X5(1) = (315 , 265) X5(2) = (510.5 , 307.5) Langkah ketujuh

Mengecek posisi NPC apakah sudah konveregen atau belum

(52)

ITERASI KE 2

Nilai random pada iterasi ke 2: r1 = 0,9 r2 = 0,2

Langkah pertama

Nilai koordinat NPC saat ini :

Koordinat NPC1 pada iterasi ke 2: X1= (486 , 295.25)

Evaluasi posisi NPC dengan menggunakan fungsi fitness :

� � = (��� ��. − ���. )2+ (��� ��. − ���. )2

Perhitungan nilai fitness tiap NPC :

Fitness NPC1 : F(X) 1=√ (500-486)2 + (380-295.25) 2 = 85

(53)

Nilai Gbest merupakan nilai titik koordinat NPC yang memiliki nilai fitness

paling optimal dimana dalam kasus ini akan meminimalkan jarak antara NPC dengan player. NPC dengan jarak paling sedikit merupakan NPC yang paling optimal dan dijadikan pemimpin. Adapun nilai fitness yang di dapat :

Fitness NPC1 : F(X) 1 = 85

paling rendah adalah NPC ke 4.

Maka didapat nilai Gbest = koordinat NPC ke 4 = (524.5, 319.5)

Langkah kelima

NPC lain yang bukan pemimpin memperbaharui kecepatan dengan persamaan sebagai berikut :

Vi (t+1) = Vi(t)+C1.r1(Pbest i– Xi(t)) + C2.r2(Gbest i–Xi(t))

Perhitungan nilai perbaharui kecepatan tiap NPC :

NPC1 : Vx1 (3) = 136 + 0.4(486– 486) + 0.7(524.5– 486) = 143.7

(54)

Xi (t+1) = Xi (t) +Vi (t+1)

Perhitungan perbaharui kecepatan tiap NPC : NPC 1 : X1(3) = 486 + 143.7 = 629.7

Nilai titik koordinat yang dihasilkan :

Titik awal tiap NPC : Koordinat baru yang dihasilkan NPC : X1(2) = (486 , 295.25) X1(3) = (629.7 , 312.85)

X2(2) = (454.5 , 304) X2(3) = (448.9 , 295.9)

X3(2) = (524.5 , 319.5) X3(3) = (698 , 421.6)

X5(2) = (510.5 , 307.5) X5(3) = (639.5 , 344.5) Langkah ketujuh

Mengecek posisi NPC apakah sudah konveregen atau belum

(55)

1.6.2 Kesimpulan Hasil Penyelesaian

Pada perhitungan diatas menunjukkan setiap NPC dalam kelompok NPC dapat menentukan NPC pemimpin dimana NPC pemimpin merupakan NPC yang memiliki posisi paling baik dari posisi NPC lainnya, posisi NPC paling baik merupakan NPC yang memiliki jarak terpendek dengan player. NPC yang memiliki posisi paling baik akan dijadikan pemimpin dan NPC yang lain akan mengikuti pergerakan NPC yang menjadi pemimpin tersebut. Untuk lebih jelasnya hasil perhitungan dan pergerakan NPC pada setiap iterasi dapat dilihat dibawah :

HASIL ITERASI KE 0

Pada iterasi ke 0 NPC 2 merupakan pemimpin, NPC lain yang bukan pemimpin bergerak mendekati NPC pemimpin. Berikut hasil perhitungan dari iterasi ke 0 yang menujukkan NPC lain yang bukan pemimpin bergerak mendekati NPC pemimpin :

Titik awal : Koordinat iterasi selanjutnya (1) : X1(0) = (270,275) X1(1) = (350 , 282.5)

X3(0) = (360,250) X3(1) = (395 , 270)

X4(0) = (160,180) X4(1) = (295 , 205)

(56)

Untuk pergerakan ditunjukkan pada gambar berikut :

Gambar 1.5 Posisi NPC Pada Iterasi ke 0

(57)

HASIL ITERASI KE 1

Pada iterasi ke 1 setelah melakukan evaluasi posisi setiap NPC maka diperoleh pemimpin yaitu NPC 2, NPC lain yang bukan pemimpin bergerak mendekati NPC pemimpin. Berikut hasil perhitngan dari iterasi ke 1 yang menujukkan NPC lain yang bukan pemimpin bergerak mendekati NPC pemimpin: Titik awal : Koordinat baru yang dihasilkan :

X1(1) = (350 , 282.5) X1(2) = (486 , 295.25)

X3(1) = (395 , 270) X3(2) = (454.5 , 304)

X4(1) = (295 , 205) X4(2) = (524.5 , 319.5)

X5(1) = (315 , 265) X5(2) = (510.5 , 307.5)

Untuk pergerakan NPC ditunjukkan pada gambar berikut :

(58)

Gambar 1.8 Posisi NPC Pada Iterasi ke 2

HASIL ITERASI KE 2

Pada iterasi ke 2 setelah melakukan evaluasi posisi NPC maka diperoleh pemimpin baru yaitu NPC 4, NPC lain yang bukan pemimpin bergerak mendekati NPC pemimpin. berikut hasil perhitungan yang dihasilkan pada iterasi ke 2: Titik awal : Koordinat baru yang dihasilkan : X1(2) = (486 , 295.25) X1(3) = (629.7 , 312.85)

X2(2) = (454.5 , 304) X2(3) = (448.9 , 295.9)

X3(2) = (524.5 , 319.5) X3(3) = (698 , 421.6)

X5(2) = (510.5 , 307.5) X5(3) = (639.5 , 344.5)

(59)

Pergerakan NPC 1 :

Gambar 1.9 Pergerakan NPC 1

Pergerakan NPC 3 :

(60)

Pergerakan NPC 4 :

Gambar 1.11 Pergerakan NPC 3

Pergerakan NPC 5 :

(61)

1.7 Analisis Kebutuhan Non-Fungsional

Analisis kebutuhan non fungsional dilakukan untuk mengetahui spesifikasi kebutuhan untuk sistem. Spesifikasi kebutuhan melibatkan analisis perangkat keras/hardware,analisis perangkat lunak/software.

1.7.1 Analisis Kebutuhan Perangkat Lunak

Perangkat lunak digunakan dalam sebuah sistem merupakan perintah-perintah yang diberikan kepada perangkat keras agar bisa dapat berinteraksi diantara keduanya. Adapun perangkat lunak yang dibutuhkan dalam pembangunan prototype game sebagai sarana implementasi algoritma PSO untuk perilaku NPC menyerang secara berkelompok pada game action-RPG ini adalah sebagai berikut :

1. Sistem Operasi Windows 7

2. Adobe Flash CS6

3. Adobe Photoshop CS5

1.7.2 Analisis Kebutuhan Perangkat Keras

Komputer terdiri dari perangkat keras dan perangkat lunak yang saling berinteraksi. Perangkat lunak memberikan instruksi-instruksi kepada perangkat keras untuk melakukan suatu tugas tertentu, sehingga dapat menjalankan suatu sistem di dalamnya. Pada Implementasi algoritma PSO untuk perilaku NPC menyerang secara berkelompok ini, perangkat yang digunakan adalah sebagai berikut :

Spesifikasi minimum perangkat keras yang dibutuhkan.

a. Prosesor dengan kecepatan 1.8 Ghz.

b. RAM 4 Gb.

c. Hardisk 320 Gb.

d. VGA Card 512 Mb.

e. Monitor.

(62)

g. Speaker.

Maka dengan spesifikasi tersebut game dapat dijalankan dengan baik dan tidak akan terjadi masalah yang dapat menghambat berjalannya sebuah game.

1.8 Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan sistem agar sistem dapat berjalan dengan baik sesuai kebutuhan. Pada bagian ini akan dibahas tentang use case diagram, activity diagram, class diagram, dan

sequence diagram.

1.8.1 Use Case Diagram

Pada sub bab berikut ini dijelaskan bagaimana Use Case yang terjadi dalam pembangunan prototype game ini yang dimodelkan dalam sekumpulan Use Case

dan Actor dan bagaimana hubungan-hubungannya yang akan dipetakan dalam diagram Use Case, dilengkapi dengan skenario. Adapun gambarnya adalah sebagai berikut :

Gambar 1.13 Use Case Diagram

Use case terdiri dari tiga bagian yaitu definisi Actor, definisi use case, dan skenario use case.

(63)

Actor yaitu pihak yang mengakses use case. Hanya ada satu actor yang berperan yaitu player / pemainyang akan memainkan game.

2. Definisi Use Case

Use case berfungsi untuk mewakili apa yang sistem lakukan. Definisi use case

bisa dilihat pada tabel 2 :

Tabel 1.2 Definisi Use Case

No Use Case Deskripsi

1 Memulai Permainan Merupakan proses untuk memulai permainan

dimana actor masuk pada halaman awal

game.

2 Menekan Tombol Lets

Play

Merupakan proses dimana aktor enekan

tombol Lets Play untuk masuk kehalaman

arena permainan.

3 Menggerakkan karakter Proses yang dilakukan oleh aktor untuk

menggerakkan karakter player diarena

permainan

1. Skenario Use Case

(64)

1. Skenario use case Memulai Permainan

Tabel 1.3 Skenario use case Memulai Permainan

Identifikasi

No 1

Nama Use Case Memulai permainan

Aktor Player

Kondisi awal Pemain belum memulai permainan

Skenario Utama

Aksi Aktor Reaksi Sistem

1. Menekan tombol control + enter

pada keyboard

2.Sistem menampilkan halaman awal game

Kondisi akhir Aktor berada pada halaman awal game

2. Skenario use case Menekan Tombol Lets Play

Tabel 1.4 Skenario use case Menekan Tombol Lets Play

Identifikasi

No 2

Nama Use Case Menekan Tombol Lets Play

Aktor Player

Kondisi awal Aktor berada pada halaman awal game

(65)

Aksi Aktor Reaksi Sistem

1.Menekan Tombol Lets Play

2.Sistem menampilkan halaman arena

permainan

Kondisi akhir Aktor berada pada halaman arena permainan

3. Skenario use case Menggerakkan karakter

Tabel 1.5 Skenario use case Menggerakkan karakter

Identifikasi

No 2

Nama Use Case Menggerakkan karakter

Aktor Player

Kondisi awal Pemain sudah berada dalam arena permainan dan masih

pada posisi awal (belum bergerak)

Skenario Utama

Aksi Aktor Reaksi Sistem

1. Menekan tombol navigasi kiri

kanan atas atau bawah pada

keyboard

2.Menggerakkan karakter player ke kiri, ke

kanan, ke atas, atau ke bawah

(66)

1.8.1 Class Diagram

Class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang dibuat untuk membangun sistem. Class Diagram dapat dilihat pada gambar berikut :

(67)

1.8.2 Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Berikut diagram aktifitas :

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas Memulai permainan dapat dilihat pada gambar 3.15 :

1. Activity Diagram Memulai Permainan

(68)

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas Menekan Tombol Lets Play dapat dilihat pada gambar 3.16

2. Activity Diagram Menekan Tombol Lets Play

(69)

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas menggerakkan karakter dapat dilihat pada gambar 3.17 :

3. Activity Diagram Menggerakkan karakter

(70)

1.8.3 Sequence Diagram

Sequence Diagram menggambarkan interaksi antar masing-masing objek pada setiap use case dalam urutan waktu. Interaksi ini berupa pengiriman serangkaian data antar objek-objek yang saling berinteraksi. Sequence diagram dapat dilihat pada gambar berikut.

1. Sequence Diagram Memulai Permainan

Gambar 1.18 Sequence Diagram Memulai Permainan

2. Sequence Diagram Menekan Tombol Lets Play

(71)

3. Sequence Diagram Menggerakkan karakter

Gambar

Gambar 1.1 Ilustrasi Enskapsulasi   [5]
Gambar 1.1 Arena Permainan
Gambar 1.2 Flowchart Algoritma untuk NPC pemimpin
Gambar 1.3 Alur Proses Penyelesaian Dalam PSO
+7

Referensi

Dokumen terkait

Resiko tinggi kekerasan terhadap diri sendiri dan orang lain berhubungan dengan halusinasi pendengaran yang ditandai dengan pasien mengatakan sering. dibisiki orang saat

Strategi yang dilakukan Kepala Sekolah Kepala sekolah dalam meningkatkan kinerja guru di MTs Negeri 1 Sumenep menyusun strategi-strategi untuk meningkatkan kinerja guru

Pada UU No.38 Tahun 1999 tentang Pengelolaan Zakat, menerangkan bahwa zakat adalah harta yang wajib disisihkan oleh seorang muslim atau badan hukum yang dimiliki oleh orang

Namun demikian, bila terdapat permasalahan yang sama dengan karakteristik yang sama pada subjek lain, maka hasil penelitian kualitatif ini dapat pula menjadi

Terkait dengan anak putus sekolah dari pendidikan dasar yang tidak melanjutkan pendidikan ke jenjang yang lebih tinggi, masih menjadi masalah besar. Kendala tersebut dapat

Bahan baku yang telah dipotong, kemudian dicuci dengan air pada suhu 30 0 C untuk membuang garam yang melekat pada rumput laut di dalam Tangki Pelarut (TP-101). Kadar garam

JPPI (Jaringan Pemantau Pendidikan Indonesia mencatat setidaknya ada tujuh masalah pendidikan yang harus diselesaikan pemerintah untuk mewujudkan Nawacita di

Elly : Oke jadi memang untuk waktunya tidak singkat ya jadi saat itu saya masuk pertama kali untuk jadi pramuniaga atau CSR karena waktu itu ada shift