SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
YOGA BASKARA
10109171
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
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
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
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
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.
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
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.
[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
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
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].
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
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.
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:
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
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
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.
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.
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]
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
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
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]
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
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.
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
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]
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
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
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)
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)
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)
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
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
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
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
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
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
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
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 :
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.
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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)
Untuk pergerakan ditunjukkan pada gambar berikut :
Gambar 1.5 Posisi NPC Pada Iterasi ke 0
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 :
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)
Pergerakan NPC 1 :
Gambar 1.9 Pergerakan NPC 1
Pergerakan NPC 3 :
Pergerakan NPC 4 :
Gambar 1.11 Pergerakan NPC 3
Pergerakan NPC 5 :
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.
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.
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
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
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
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 :
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
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
Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas menggerakkan karakter dapat dilihat pada gambar 3.17 :
3. Activity Diagram Menggerakkan karakter
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
3. Sequence Diagram Menggerakkan karakter