analisis dan implementasi algoritma boids dan …

19
1 ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN COLLISION AVOIDANCE PADA PERGERAKAN NPC DALAM GAME 2D BERBASIS WEB Rodo Maxmilano Richard Vinc N. Santoso, S.TI., M.T.I. INSTITUT BISNIS dan INFORMATIKA KWIK KIAN GIE Jakarta, Indonesia (Telp (021) 081932771899; E-mail : ([email protected], [email protected] ) Abstrak - Seiring dengan perkembangan pembuatan permainan komputer, penerapan kecerdasan buatan meningkat dengan pesat. Penelitian ini bertujuan untuk merancang dan mencari efektivitas gerombolan Non-Player Character dengan algoritma Boids agar tidak saling bertabrakan. Penelitian ini juga bertujuan untuk mencari tahu berapa waktu yang ditempuh oleh gerombolan Non-Player Character saat menggunakan algoritma Boids dan Collision Avoidance beserta mencari tahu apakah semakin banyak jumlah Non-Player Character dapat mengurangi peforma yang dihasilkan oleh komputer.Peneliti mempelajari teori yang berkaitan dengan algoritma Boids yang diteliti dan juga melakukan studi pada 12 jurnal penelitian terdahulu yang memakai algoritma Boids didalamnya. Studi ini dilakukan untuk mengumpulkan data bagaimana algoritma Boids dapat diimplementasikan ke objek NPC dengan mempelajari hasil penelitian tersebut. Peneliti memberikan gambaran umum bagaimana NPC dalam permainan komputer dapat bergerak dengan menunjukan contoh algoritma pergerakan terhadap NPC yang mengejar NPC lainnya. Peneliti juga menggunakan metode Waterfall untuk menjalankan penelitiannya. Metode Waterfall tersebut memiliki urutan proses yaitu adalah perencanaan, analisis, perancangan dan pemograman, pengujian dan implementasi. Algoritma Boids memiliki 3 aturan utama yaitu Separation, Alignment dan juga Cohesion. Peneliti melakukan eksperimen algoritma Boids, peneliti melakukan eksperimen dengan melakukan eksperimen dengan algoritma Boids dan juga dengan ditambah Collision Avoidance pada eksperimennya. Pada Eksperimen menggunakan algoritma Boids peneliti mengubah variabel Separation, Cohesion dan juga Alignment sesuai nilai yang ditentukan. Dari data yang dihasilkan dapat dilihat bahwa dengan diimplementasikannya algoritma Boids dapat menurunkan jumlah NPC yang bertabrakan dan membuktikan bahwa makin banyak boids dapat menurunkan performa komputer. Eksperimen ini juga membuktikan bahwa semakin banyak NPC Boids yang ada, performa komputer akan menurun dilihat dari rata-rata Frame rate yang dihasilkan. Dari penelitian yang dilakukan, dapat dibuktikan algoritma Boids yang dibantu dengan Collision Avoidance dapat mengurangi tabrakan pada kelompok boids yang saling berdekatan. Eksperimen membutikan bahwa semakin banyak jumlah NPC Boids dapat mengurangi performa yang dihasilkan oleh komputer dengan melihat nilai rata-rata dari Frame Rate per detik yang dihasilkan. Kata kunci: NPC, game, kecerdasan buatan, Algoritma boids, Collision Avoidance, Flocking 1. Pendahuluan Seiring dengan perkembangan pembuatan permainan komputer, penerapan kecerdasan buatan meningkat pesat dengan membuat permainan komputer yang dimainkan lebih menyenangkan dan menarik. Penelitian tentang kecerdasan buatan pada NPC (Non player character) dalam permainan komputer hingga saat ini masih terus dikembangkan. NPC adalah karakter di dalam permainan komputer di mana karakter tersebut tidak dikendalikan langsung oleh pemain tetapi dikendalikan oleh komputer. Kecerdasan buatan tersebut dikembangkan untuk merancang perilaku pergerakan yang akan dilakukan NPC. Salah satu model pergerakan NPC dalam melakukan gerakan adalah mencegah pergerakan

Upload: others

Post on 05-Oct-2021

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

1

ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN COLLISION AVOIDANCE

PADA PERGERAKAN NPC DALAM GAME 2D BERBASIS WEB

Rodo Maxmilano

Richard Vinc N. Santoso, S.TI., M.T.I.

INSTITUT BISNIS dan INFORMATIKA KWIK KIAN GIE Jakarta, Indonesia (Telp (021) 081932771899; E-mail :

([email protected], [email protected] )

Abstrak - Seiring dengan perkembangan

pembuatan permainan komputer, penerapan

kecerdasan buatan meningkat dengan pesat.

Penelitian ini bertujuan untuk merancang dan

mencari efektivitas gerombolan Non-Player

Character dengan algoritma Boids agar tidak

saling bertabrakan. Penelitian ini juga bertujuan

untuk mencari tahu berapa waktu yang ditempuh

oleh gerombolan Non-Player Character saat

menggunakan algoritma Boids dan Collision

Avoidance beserta mencari tahu apakah semakin

banyak jumlah Non-Player Character dapat

mengurangi peforma yang dihasilkan oleh

komputer.Peneliti mempelajari teori yang

berkaitan dengan algoritma Boids yang diteliti dan

juga melakukan studi pada 12 jurnal penelitian

terdahulu yang memakai algoritma Boids

didalamnya. Studi ini dilakukan untuk

mengumpulkan data bagaimana algoritma Boids

dapat diimplementasikan ke objek NPC dengan

mempelajari hasil penelitian tersebut. Peneliti

memberikan gambaran umum bagaimana NPC

dalam permainan komputer dapat bergerak

dengan menunjukan contoh algoritma pergerakan

terhadap NPC yang mengejar NPC lainnya.

Peneliti juga menggunakan metode Waterfall

untuk menjalankan penelitiannya. Metode

Waterfall tersebut memiliki urutan proses yaitu

adalah perencanaan, analisis, perancangan dan

pemograman, pengujian dan implementasi.

Algoritma Boids memiliki 3 aturan utama yaitu

Separation, Alignment dan juga Cohesion. Peneliti

melakukan eksperimen algoritma Boids, peneliti

melakukan eksperimen dengan melakukan

eksperimen dengan algoritma Boids dan juga

dengan ditambah Collision Avoidance pada

eksperimennya. Pada Eksperimen menggunakan

algoritma Boids peneliti mengubah variabel

Separation, Cohesion dan juga Alignment sesuai

nilai yang ditentukan. Dari data yang dihasilkan

dapat dilihat bahwa dengan diimplementasikannya

algoritma Boids dapat menurunkan jumlah NPC

yang bertabrakan dan membuktikan bahwa makin

banyak boids dapat menurunkan performa

komputer. Eksperimen ini juga membuktikan

bahwa semakin banyak NPC Boids yang ada,

performa komputer akan menurun dilihat dari

rata-rata Frame rate yang dihasilkan. Dari

penelitian yang dilakukan, dapat dibuktikan

algoritma Boids yang dibantu dengan Collision

Avoidance dapat mengurangi tabrakan pada

kelompok boids yang saling berdekatan.

Eksperimen membutikan bahwa semakin banyak

jumlah NPC Boids dapat mengurangi performa

yang dihasilkan oleh komputer dengan melihat

nilai rata-rata dari Frame Rate per detik yang

dihasilkan.

Kata kunci: NPC, game, kecerdasan buatan,

Algoritma boids, Collision Avoidance, Flocking

1. Pendahuluan

Seiring dengan perkembangan pembuatan

permainan komputer, penerapan kecerdasan

buatan meningkat pesat dengan membuat

permainan komputer yang dimainkan lebih

menyenangkan dan menarik. Penelitian tentang

kecerdasan buatan pada NPC (Non player

character) dalam permainan komputer hingga

saat ini masih terus dikembangkan. NPC adalah

karakter di dalam permainan komputer di mana

karakter tersebut tidak dikendalikan langsung

oleh pemain tetapi dikendalikan oleh komputer.

Kecerdasan buatan tersebut dikembangkan untuk

merancang perilaku pergerakan yang akan

dilakukan NPC.

Salah satu model pergerakan NPC dalam

melakukan gerakan adalah mencegah pergerakan

Page 2: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

2

NPC agar tidak bertabrakan dengan NPC lain.

Walaupun penelitian tentang kecerdasan buatan

ini telah meningkat dengan pesat, tetapi masih

saja ada beberapa permainan komputer yang

tidak memakai kecerdasan buatan pada NPC

dalam permainan tersebut. Salah satu masalah

yang terjadi pada saat NPC bergerak secara

bergerombol adalah mereka saling bertabrakan,

menghalangi satu sama lainnya dan kadang dapat

menyerang sesama teman. Hal ini terlihat tidak

menyenangkan. Masalah yang telah di

identifikasikan adalah bagaimana cara merancang

gerombolan Non Player Character dengan

algoritma Boids agar tidak bertabrakan.

Penelitian ini dilakukan dengan batasan

masalah yaitu membuat permainan komputer

yang bersifat single player melawan komputer,

menjalankannya pada browser Google Chrome

dan juga diimplementasikan dengan algoritma

Boids. Penelitian ini juga bertujuan untuk

mengimplementasikan algoritma Boids dan

Collision Avoidance untuk melakukan pergerakan

gerombolan Non Player Character, mencari tahu

apakah algoritma Boids dapat menurunkan

jumlah tabrakan pada sesama NPC, mencari tahu

apakah pengunaan algoritma Boids dan Collision

Avoidance menghasilkan waktu yang ditempuh

menjadi lebih sedikit atau tidak dan juga mencari

tahu apakah semakin banyak jumlah NPC Boids

dapat mengurangi performa yang dihasilkan oleh

komputer dengan melihat nilai rata-rata dari

Frame Rate per detik yang dihasilkan. Manfaat

dari hasil penelitian ini adalah memberikan

kontribusi dan pembelajaran pada pengembang

permainan komputer untuk membuat permainan

komputer yang memiliki kesan nyata dan

menyenangkan pada pergerakan Non Player

Character dalam permainan komputer.

2. Metode Penelitian

Metode pengembangan sistem yang digunakan

adalah metode Waterfall. Peneliti menggunakan

metode Waterfall dikarenakan model metode

Waterfall karena memiliki proses yang urut, mulai

dari penrencanaan dan sampai pemeliharaan jika

ada sesuatu yang salah. Setiap proses dalam

metode Waterfall memiliki spesifikasi sendiri,

sehingga sebuah sistem dapat dikembangkan

dengan tepat sasaran. Waterfall juga memiliki

proses yang tidak tumpah tindih.

Gambar 2. 1 Gambar ilustrasi urutan dari

metode Waterfall

1. Perencanaan

Pada tahap ini, penulis sebagai peneliti

menentukan topik apa yang akan dijadikan

landasan dalam penelitian yang akan dilakukan.

Peneliti disini juga membuat rancangan

bagaimana hasil penelitian tersebut dibuat.

2. Analisis

Peneliti mulai melakukan pengamantan dan

pengumpulan data yang dibutuhkan pada objek

yang akan diteliti.

3. Perancangan dan Pemograman

Pada tahap ini peneliti melakukan pemograman

untuk membuat sistem sesuai perencanaan yang

sebelumnya dibuat.

4. Pengujian

Pada tahap ini peneliti melakukan pengujian

apakah sistem yang dibuat sudah sesuai dengan

data analisis yang telah dilakukan dan juga

melakukan mengamatan apakah sistem tersebut

berjalan seperti kemauan peneliti. Peneliti

melakukan pengujian pada algoritma Boids

Page 3: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

3

dengan eksperimen aplikasi simulasi yang telah

dibuat.

5. Implementasi

Pada tahap ini peneliti melakukan implementasi

sistem yang telah dibuat kepada objek yang

diteliti.

6. Pemeliharaan

Pada tahap ini peneliti tidak melakukan

pemeliharaan karena sistem yang dibuat bukanlah

sistem yang bekerja untuk digunakan oleh

perusahaan atau sebagainya.

A. Teknik Pengumpulan Data

Data yang diperlukan pada penelitian ini adalah

data yang berkaitan dengan sistem algoritma

Boids yang pernah diimplementasikan

sebelumnya, dengan begitu penulis dapat

mengetahui bagaimana algoritma Boids tersebut

berkerja dan bagaimana caranya algoritma

tersebut diimplementasikan pada bidang selain

permainan komputer. Berikut penjelasan

bagaimana peneliti melakukan pengumpulan data.

a. Studi Pustaka

Teknik ini dilakukan dengan cara mengumpulkan

data dari sumber yang sudah ada seperti jurnal,

artikel, video tutorial, media internet, buku digital

dan teks dan lain-lain mengenai penelitian sejenis

untuk menjadi dasar dari penelitian yang

dilakukan ini. Peneliti juga melakukan studi

pustaka dengan pergi ke perpustakaan Universitas

Indonesia untuk mencari jurnal penelitian

sebelumnya dan juga buku yang berkaitan dengan

penelitian yang peneliti lakukan.

Beberapa kata kunci yang peneliti gunakan adalah

sebagai berikut:

(1). Algoritma Boids

(2). NPC

(3). Pergerakan NPC

(4). Algoritma Flocking

(5). NPC Movement Algorithm

b. Eksperimen

Teknik pengumpulan data ini adalah dengan cara

mengamati secara langsung proses algoritma

tersebut diimplementasikan, peneliti juga

melakukan pengujian dengan membuat program

simulasi buatan yang dijadikan alat utuk

melakukan testing pada algoritma Boids tersebut

untuk mencari cara bagaimana membuat

algoritma tersebut dapat dipakai dan berjalan

sesuai yang diharapkan atau tidak. Eksperimen ini

dibuat dengan bertujuan untuk mencari perbedaan

hasil dari pergerakan NPC seperti berikut:

(1). Tanpa menggunakan algoritma Boids.

(2). Dengan menggunakan algoritma Boids.

(3). Saat menggunakan algoritma Boids

dengan jumlah agen boids yang berbeda.

(4). Dengan menggunakan algoritma Boids

yang ditambah dengan Collision Avoidance.

Untuk mendapatkan hasil tersebut, penulis

membuat pogram simulasi pergerakan tersebut

lalu menjalankan dengan nilai variabel yang

berbeda tiap simulasi dan mencatat hasil yang

dihasilkan dari aplikasi simulasi yang telah terbuat

tersebut.

B. Teknik Analisis Data

Penulis mendapatkan ilmu pengetahuan yang

dapat digunakaan pada penelitian yang sedang

dijalankan lalu membuat kesimpulan dari data

yang telah dikumpulkan. Kesimpulan tersebut

didapatkan dari data yang dikumpulkan saat

melakukan studi pustaka tentang implementasi

algoritma Boids pada penelitian terdahulu. Untuk

data dari hasil eksperimen, hasil tersebut akan

dilihat manakah hasil yang menghasilkan tabrakan

yang paling sedikit dan performa aplikasi yang

paling baik dari setiap eksperimen yang

menggunakan nilai variabel yang berbeda tiap

simulasinya.

3. Hasil dan Pembahasan

Dalam menjalankan penelitian ini, peneliti

mengikuti metode Waterfall dalam membuat

pogram yang diinginkan. Pada bagian ini penulis

merancang bagaimana sistem dibuat, alur

perancangannya adalah sebagai berikut:

Page 4: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

4

A. Perancangan simulasi eksperimen

algoritma Boids

Gambar 3. 1 Gambar desain tampilan aplikasi

simulasi

Simulasi ini akan menggunakan pogram yang

penulis buat dengan bahasa pemograman

JavasScript menggunakan alat bantu Visual

Studio Code dan library P5.js dan dijalankan

menggunakan aplikasi browser Google Chrome

64bit dengan versi rilis 79.0.3945.88. Penulis juga

merekam layar komputer saat berjalannya aplikasi

menjadi sebuah sebuah video dengan bantuan alat

aplikasi bernama OBS (Open Broadcaster

Software), aplikasi gratis dan open source untuk

merekam video.

Pada saat aplikasi dijalankan, posisi awal

sekumpulan boids akan tersebar pada bagian kiri

layar aplikasi, kumpulan obstacle atau halangan

juga disebar pada jalur menuju finish untuk

memberikan pergerakan kumpulan boids yang

menghindar. Sekumpulan boids yang sudah ada

akan melakukan pergerakan menuju kotak finish

yang berada di sisi kanan sambil melakukan

perhitungan gerakan dengan ketentuan tiap

skenario yang telah direncanakan. Jika ada sebuah

boid yang menabrak boid lainnya, boid tersebut

akan diberikan status ‘mati’ begitu juga boid yang

ditabraknya di mana status ‘mati’ ini membuat

boid menjadi tidak dapat bergerak. Saat boid

mencapai area finish, boid tersebut akan diberikan

status ‘finish’.

Untuk skenario bagaimana empat simulasi

tersebut dilakukan, dijelaskan sebagai berikut:

a. Tanpa menggunakan algoritma Boids

NPC boid yang berjumlah 30 buah akan disebar

dari sisi kiri dan NPC obstacle atau penghalang

yang berjumlah 50 akan disebar pada jalur

menuju area finish. NPC pada awalnya akan

diberikan variabel arah geraknya dengan nilai

antara 1.00 sampai 2.00 yang dipilih secara acak

pada awal tiap percobaan simulasi saat setelah

disebar dengan bantuan fungsi JavaScript yaitu

fungsi random(1.00, 2.00) untuk memberikan

efek arah gerak yang berbeda pada tiap iterasi

simulasinya.

NPC boid yang berjumlah 30 buah akan

disebar dari sisi kiri dan NPC obstacle atau

penghalang yang berjumlah 50 akan disebar pada

jalur menuju area finish. Saat melakukan

pergerakan, NPC akan menghitung arah

pergerakan yang akan dilakukan dengan algoritma

Boids yang menggunakan variabel yang telah di

tentukan. NPC pada awalnya akan diberikan

variabel Separation, Alignment, Cohesion dan

Perception yang berbeda pada tiap percobaan

dengan simulasi yang telah dibuat. Berikut tabel

berisikan variabel yang akan menjadi fokus dari

percobaan pada simulasi ini

Nama Variabel

Penjelasan

Tabrakan Jumlah boid yang bertabrakan saat simulasi

Finish Time

Berapa millidetik yang dibutuhkan untuk semua boid mencapai finish

Tabel 3. 1

Tabel penjelasan variabel utama dalam

simulasi

Page 5: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

5

Gambar 3. 1

Gambar Flowchart simulasi tanpa

menggunakan algoritma boids

b. Dengan menggunakan algoritma Boids

NPC boid yang berjumlah 30 buah akan disebar

dari sisi kiri dan NPC obstacle atau penghalang

yang berjumlah 50 akan disebar pada jalur menuju

area finish. Saat melakukan pergerakan, NPC

akan menghitung arah pergerakan yang akan

dilakukan dengan algoritma Boids dan Collision

Avoidance dengan menggunakan variabel yang

telah di tentukan. NPC pada awalnya akan

diberikan variabel Separation, Alignment,

Cohesion dan Perception yang berbeda pada tiap

iterasi percobaan dengan simulasi yang telah

dibuat. NPC juga melakukan perhitungan

pergerakan dengan Collision Avoidance di mana

perhitungan ini menggunakan nilai variabel

obs_perception yang sudah ditentukan oleh

penulis yaitu bernilai 100 yang akan digunakan

pada setiap simulasi yang dilakukan.

Nama Variabel

Penjelasan

Perception Radius jarak piksel target pemindaian untuk boid disekitar

Separation Kelipatan dari bobot hasil Separation

Alignment Kelipatan dari bobot hasil Alignment

Cohesion Kelipatan dari bobot hasil Cohesion

Tabrakan Jumlah boid yang bertabrakan saat simulasi

Finish Time Berapa millidetik yang dibutuhkan untuk semua boid mencapai finish

Tabel 3. 2

Tabel penjelasan variabel utama dalam

simulasi algoritma Boids

Tabel 3. 3

Tabel nilai variabel utama dalam simulasi

dengan algoritma Boids

Itera

si

Percepti

on

Separati

on

Aligntm

ent

Cohesi

on

1 10 0.1 0.1 0.1

2 20 0.1 0.1 0.1

3 30 0.1 0.1 0.1

4 50 0.1 0.1 0.1

5 50 0.5 0.1 0.1

6 50 1 0.1 0.1

7 50 1.5 0.1 0.1

8 50 2 0.1 0.1

9 50 2 0.3 0.1

10 50 2 0.6 0.1

11 50 2 1 0.1

12 50 2 1 0.3

13 50 2 1 0.6

14 50 2 1 0.9

15 50 2 1 1.2

Page 6: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

6

Gambar 3. 3

Gambar Flowchart simulasi dengan algoritma

Boids

c. Dengan menggunakan algoritma Boids dan

Collision Avoidance

NPC boid yang berjumlah 30 buah akan disebar

dari sisi kiri dan NPC obstacle atau penghalang

yang berjumlah 50 akan disebar pada jalur menuju

area finish. Saat melakukan pergerakan, NPC akan

menghitung arah pergerakan yang akan dilakukan

dengan algoritma Boids dan Collision Avoidance

dengan menggunakan variabel yang telah di

tentukan. NPC pada awalnya akan diberikan

variabel Separation, Alignment, Cohesion dan

Perception yang berbeda pada tiap iterasi

percobaan dengan simulasi yang telah dibuat.

NPC juga melakukan perhitungan pergerakan

dengan Collision Avoidance di mana perhitungan

ini menggunakan nilai variabel obs_perception

yang sudah ditentukan oleh penulis yaitu bernilai

100 yang akan digunakan pada setiap simulasi

yang dilakukan. Berikut tabel berisikan variabel

yang akan menjadi fokus dari percobaan pada

simulasi ini:

Nama Variabel

Penjelasan

Perception Radius jarak piksel target pemindaian untuk boid disekitar

Obs Perception

Radius jarak piksel target pemindaian untuk obstacle disekitar

Separation Kelipatan dari bobot hasil Separation

Alignment Kelipatan dari bobot hasil Alignment

Cohesion Kelipatan dari bobot hasil Cohesion

Tabrakan Jumlah boid yang bertabrakan saat simulasi

Finish Time Berapa millidetik yang dibutuhkan untuk semua boid mencapai finish

Tabel 3. 4

Tabel nilai variabel utama dalam simulasi

dengan algoritma Boids dan Collision

Avoidance

Dalam melakukan simulasi ini, simulasi

akan dilakukan sejumlah 15 kali dan pada tiap

simulasi akan diberikan nilai variabel tiap

pengujiannya. Di ingat bahwa variabel Obs

Perception akan selalu bernilai 100 pada setiap

iterasi simulasi yang dilakukan, hal ini dibuat

karena peneliti lebih berfokus kepada algoritma

Boids dan Collision Avoidance hanya membantu

kumpulan boids tidak menabrak obstacle yang

tersebar pada jalur perjalanan para kumpulan

boids tersebut. Adapun nilai variabel yang akan

digunakan pada simulasi adalah sebagai berikut:

Iterasi

Perception

Obs Perception

Separation

Aligntment

Cohesion

1 10 100 0.1 0.1 0.1

2 20 100 0.1 0.1 0.1

3 30 100 0.1 0.1 0.1

4 50 100 0.1 0.1 0.1

5 50 100 0.5 0.1 0.1

6 50 100 1 0.1 0.1

7 50 100 1.5 0.1 0.1

8 50 100 2 0.1 0.1

9 50 100 2 0.3 0.1

10 50 100 2 0.6 0.1

Page 7: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

7

11 50 100 2 1 0.1

12 50 100 2 1 0.3

13 50 100 2 1 0.6

14 50 100 2 1 0.9

15 50 100 2 1 1.2

Tabel 3. 1

Tabel nilai variabel utama dalam simulasi

dengan algoritma Boids dan Collision

Avoidance

Gambar 3. 4

Gambar Flowchart simulasi dengan algoritma

Boids dan Collision Avoidance

d. Dengan jumlah boids berbeda

Simulasi ini dibuat untuk melihat performa

algoritma Boids dan Collision Avoidance dengan

jumlah boids yang berbeda tiap simulasinya.

Peneliti akan melihat berapa rata-rata dari FPS

(Frame rate per second) dari saat awal aplikasi

dimulai sampai semua boids mencapai area finish

atau bertabrakan. Frame rate adalah frekuensi di

mana gambar berurutan yang disebut frames

muncul pada layar.

Istilah FPS ini berlaku untuk kamera film,

video dan grafik komputer gerak di mana FPS

adalah jumlah Frame rate yang dihasilkan

komputer tiap detiknya. FPS yang dihasilkan akan

bervariasi sesuai dengan kompleksnya

perhitungan algoritma dan juga bervariasi dengan

kekuatan dari hardware atau perangkat keras yang

dipakai oleh komputer seperti Processor, RAM

dan GPU. NPC boid yang berjumlah sesuai yang

peneliti berikan akan disebar dari sisi kiri dan

NPC obstacle atau penghalang yang berjumlah 50

akan disebar pada jalur menuju area finish. Saat

melakukan pergerakan, NPC akan menghitung

arah pergerakan yang akan dilakukan dengan

algoritma Boids yang menggunakan variabel yang

telah di tentukan. NPC pada awalnya akan

diberikan variabel Separation, Alignment,

Cohesion dan Perception yang berbeda pada tiap

percobaan dengan simulasi yang telah dibuat.

NPC juga melakukan perhitungan pergerakan

dengan Collision Avoidance di mana perhitungan

ini menggunakan nilai variabel obs_perception

yang sudah ditentukan oleh penulis yaitu bernilai

100 yang akan digunakan pada setiap simulasi

yang dilakukan.

Nama Variabel

Penjelasan

Perception Radius jarak piksel target pemindaian untuk boid disekitar

Obs Perception

Radius jarak piksel target pemindaian untuk obstacle disekitar

Boids Jumlah Boids yang dimasukan ke dalam simulasi

Separation Kelipatan dari bobot hasil Separation

Page 8: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

8

Alignment Kelipatan dari bobot hasil Alignment

Cohesion Kelipatan dari bobot hasil Cohesion

FPS Rata-rata dari Frame rate dari awal simulasi dijalankan sampai semua boids sampai pada area finish

Finish Time Berapa millidetik yang dibutuhkan untuk semua boid mencapai finish

Tabel 3. 2

Tabel penjelasan variabel utama dalam

simulasi dengan algoritma Boids dan Collision

Avoidance dengan jumlah boids yang berbeda

tiap simulasinya

Iterasi

Perception

Obs Perception

Boids

Separation

Aligntment

Cohesion

1 10 100 10 2 1 1.2

2 20 100 20 2 1 1.2

3 30 100 30 2 1 1.2

4 50 100 40 2 1 1.2

5 50 100 50 2 1 1.2

6 50 100 60 2 1 1.2

7 50 100 70 2 1 1.2

8 50 100 80 2 1 1.2

9 50 100 90 2 1 1.2

10 50 100 100

2 1 1.2

11 50 100 110

2 1 1.2

12 50 100 120

2 1 1.2

13 50 100 130

2 1 1.2

14 50 100 140

2 1 1.2

15 50 100 150

2 1 1.2

Tabel 3. 3

Tabel nilai variabel utama dalam simulasi

dengan algoritma Boids dan Collision

Avoidance dengan jumlah boids yang berbeda

tiap simulasinya

B. Perancangan game

Penelitian ini dilakukan dengan cara membuat

sebuah permainan komputer yang berfokus untuk

diberikan algoritma Boids pada pergerakan

karakter dan dimainkan secara single player atau

pemain tunggal yang berarti hanya memiliki satu

pemain dalam permainannya. Game ini akan

dibuat menggunakan bahasa pemograman

JavaScript dan dijalankan pada aplikasi Google

Chrome 64bit dengan versi rilis 79.0.3945.88.

Pada permainan computer ini terdapat karakter

pemain utama yang akan dijalakan oleh pemain

game yang diberi nama King Cebong. Dalam

penelitian ini juga memiliki 2 NPC yang

dikendalikan oleh komputer yaitu bernama

Cebong dan Predator. Permainan ini mengisahkan

perjalanan sang karakter pemain utama dalam

memproduksi Cebong sampai batas tertentu

dengan memakan makanan yang tersebar sambil

menghindari musuh Predator agar tidak mati.

Pada saat pertama kali permainan dimulai, pemain

utama yang sebagai King Cebong akan ditemani

oleh enam buah pengikutnya yaitu NPC Cebong.

King Cebong akan dikendalikan oleh pemain

dengan menggunakan mouse dan pasukan Cebong

akan mengikuti ke mana King Cebong pergi. King

Cebong dan pasukan Cebong dapat bergerak

bersamaan sambil melakukan formasi seperti

kerumunan ikan dengan implementasi algoritma

Boids. King Cebong dan pasukan Cebong dapat

memakan makanan bernama Pelet yang tersebar

di area permainan. Setiap jumlah Pelet yang

dimakan mencapai lima buah, akan terbuatlah

sebuah NPC Cebong dan akan ditambahkan pada

pasukan Cebong yang mengikuti King Cebong.

Tujuan utama pemain adalah mengumpulkan

pasukan Cebong sampai berjumlah 30 ekor

pasukan. Jika jumlah kumpulan pasukan Cebong

tersebut sudah mencapai 30 ekor, pemain menjadi

pemenang dan permainan selesai.

Predator adalah musuh yang akan mengejar King

Cebong dan juga pasukan Cebong. Ketika

Predator menyentuh salah satu Cebong dari

pasukan, cebong tersebut akan mati dan

menghilang dari permainan. Jika predator

menyentuh King Cebong, permainan akan selesai

karena King Cebong gagal bertahan hidup.

Selama melakukan pergerakan, King Cebong,

Cebong dan juga Predator akan terhalangi oleh

Page 9: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

9

objek bernama Stone yang akan menghalangi

pergerakan mereka sebagai objek atau NPC

obstacle. Untuk menghindari objek Stone ini,

King Cebong, Cebong dan juga Predator akan

menghidari Stone tersebut dengan

diimplementasikannya Collision Avoidance.

Permainan ini dapat berguna untuk memberikan

pelajaran bagaimana algoritma Boids dan

collision avoidance dapat digunakan dalam

permainan komputer. Manfaat lain dari permainan

ini adalah melatih ketangkasan dan kelincahan

pemainan dalam mengarahkan King Cebong

bersama pasukan Cebong agar dapat berkembang

biak sambil menghindari Predator.

Berikut adalah Flowchart dan rancangan tampilan

bagaimana sistem berjalan:

Gambar 3. 5

Gambar Flowchart bagaimana sistem game

berjalan

Gambar 3. 6

Gambar desain tampilan saat game berjalan

Sebelumnya sudah ditunjukan bahwa permainan

komputer ini memiliki 5 karakter yang berada

dalam game, berikut penjelasan lebih detil tiap

karakter tersebut:

a. King Cebong

King Cebong adalah karakter utama yang

dikendalikan oleh pemain, pemain dapat

mengendalikannya dengan mengarahkan kursor

komputer pada game dan King Cebong akan pergi

ke arahnya. King Cebong memiliki sekumpulan

pengikut yaitu NPC Cebong yang berguna untuk

mengecoh NPC Predator sambil melindungi King

Cebong. Jika King Cebong disentuh oleh NPC

Predator, King Cebong akan termakan dan

permainan akan selesai.

King Cebong dapat memakan NPC Pelet

yang tersebar di daerah permainan dengan

menyentuhnya, tiap 5 Pelet yang King Cebong

dan Cebong makan akan membuat King Cebong

mengeluarkan seekor NPC Cebong dan

menambahkannya ke dalam kelompok NPC

Cebong yang mengikutinya.

Berikut adalah Flowchart bagaimana sistem NPC

King Cebong berjalan:

Page 10: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

10

Gambar 3.7

Gambar Flowchart desain sistem King Cebong

saat game berjalan

b. Cebong

Cebong adalah karakter NPC yang bergerak

mengikuti King Cebong yang dikendalikan oleh

pemain. Cebong dapat berkumpul menjadi

sekumpulan Cebong dan melakukan Flocking

bersama-sama. Cebong dapat memakan NPC

Pelet dengan cara menyentuhnya, di mana tiap 5

Pelet yang dimakan oleh NPC Cebong dan

karakter King Cebong akan memanggil NPC

Cebong baru dan ditambahkan ke dalam

kelompok Cebong yang sudah ada.

Sekelompok Cebong ini berguna untuk

melindungi King Cebong agar tidak dimakan oleh

NPC Predator dan mengecoh mereka. Cebong

dapat dimakan oleh Predator yang membuat

Cebong yang termakan akan menghilang dari

dalam game. Cebong dapat bergerak dengan

bantuan algoritma Boids yang ditanamkan

kepadanya, mereka dapat melakukan Separation,

Cohesion dan Alignment. Cebong juga dapat

melakukan Collision Avoidance untuk

menghindari NPC Stone atau Obstacle yang

tersebar pada daerah permainan.

Berikut adalah Flowchart bagaimana

sistem NPC Cebong berjalan:

Gambar 3. 8

Gambar Flowchart desain sistem NPC Cebong

saat game berjalan

c. Predator

Predator adalah karakter NPC yang akan bergerak

ke arah King Cebong dan juga NPC Cebong jika

mereka berada pada jarak tertentu. Predator dapat

melakukan pergerakan menghindari NPC Stone

atau obstacle dengan bantuan sistem Collision

Avoidance yang ditanamkan ke dalamnya.

Predator dapat memakan karakter utama

King Cebong dan juga NPC Cebong di mana jika

King Cebong termakan, game akan selesai dan

permain akan kalah.

Berikut adalah Flowchart bagaimana sistem NPC

Cebong berjalan:

Page 11: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

11

Gambar 3. 9

Gambar Flowchart desain sistem NPC

Predator saat game berjalan

d. Stone / Obstacle

Stone adalah NPC yang berguna sebagai

penghalang gerak NPC lain saat mereka

melakukan pergerakan. Stone atau disebut

Obstacle adalah hambatan yang tidak

bergerak, di mana NPC lain yang bergerak ke

arahnya harus menghindarinya. Stone tersebar

didaerah permainan.

Fungsi NPC Stone ini adalah membuat

pergerakan dari NPC lain menjadi variatif,

pemain juga dapat menggunakan NPC ini

untuk mengecoh arah gerak dari NPC

Predator saat Predator mengejar King Cebong

ataupun NPC Cebong.

e. Pelet

Pelet adalah NPC yang tersebar pada daerah

permainan, digunakan untuk menjadi

makanan dari King Cebong dan NPC Cebong

dengan cara menyentuhnya untuk

memakannya.

C. Hasil pengujian

Pengujian ini dijalankan dengan aplikasi simulasi

pergerakan dengan algoritma Boids yang

memakai variabel yang telah ditentukan

sebelumnya

a. Tanpa menggunakan algoritma Boids

sd Pengujian ini dilakukan apakah pergerakan

NPC tanpa menggunakan algoritma Boids yang

diprogram sudah berjalan dengan benar atau tidak,

tiap iterasi simulasi semua boids memiliki arah

gerak yang bernilai acak untuk memberikan

variasi gerakan tiap iterasinya. Berikut data yang

didapatkan setelah melakukan simulasi:

Iterasi Tabrakan Finish Time

1 14 7.781 Milidetik

2 10 7.048 Milidetik

3 20 6.169 Milidetik

4 23 8.344 Milidetik

5 16 7.055 Milidetik

6 18 6.528 Milidetik

7 18 6.043 Milidetik

8 22 6.344 Milidetik

9 18 7.756 Milidetik

10 18 6.511 Milidetik

11 12 6.133 Milidetik

12 20 7.880 Milidetik

13 16 7.972 Milidetik

14 22 8.465 Milidetik

15 18 6.242 Milidetik

Tabel 3. 4

Tabel berisikan data yang didapat setelah

melakukan simulasi tanpa algoritma Boids.

Dapat dilihat dari data ini, minimal boids

yang bertabrakan ada 10 boids. Tabrakan ini

terjadi karena kumpulan boids tersebut bergerak

tanpa melakukan pergerakan dengan algoritma

Boids yang berfungsi untuk membuat tiap boids

tidak bertabrakan dengan boids lainnya yang

berposisi dekat dan bergerak secara bersamaan

dengan teratur.

Page 12: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

12

Gambar 3. 10

Gambar tangkapan layar saat

menjalankan simulasi tanpa algoritma

boids iterasi ke 3

Dari data ini dapat dilihat bahwa tiap

iterasi menghasilkan Finish Time yang berbeda

tiap iterasinya. Dari simulasi ini juga dapat dilihat

bahwa NPC boids menempel dengan NPC

obstacle dan arah geraknya pun terhalang.

b. Hanya Menggunakan algoritma Boids Pengujian ini dilakukan apakah algoritma Boids

yang di program sudah berjalan dengan benar atau

tidak, tiap iterasi simulasi variabel yang

digunakan algoritma Boids memiliki nilai yang

berbeda di mana nilai tersebut sudah ditentukan

sebelumnya. Pengujian ini juga berguna untuk

memberikan pengetahuan apa yang terjadi jika

nilai variabel pada algoritma Boids memiliki nilai

berbeda. Berikut data yang didapatkan setelah

melakukan simulasi:

Iterasi

Perception

Separation

Aligntment

Cohesion

Tabrakan

Finish Time (milidetik)

1 10 0.1 0.1 0.1 20 5.613

2 20 0.1 0.1 0.1 18 5.571

3 30 0.1 0.1 0.1 12 5.631

4 50 0.1 0.1 0.1 12 6.075

5 50 0.5 0.1 0.1 8 6.447

6 50 1 0.1 0.1 8 5.968

7 50 1.5 0.1 0.1 4 6.435

8 50 2 0.1 0.1 2 6.621

9 50 2 0.3 0.1 2 6.473

10 50 2 0.6 0.1 4 6.660

11 50 2 1 0.1 2 6.524

12 50 2 1 0.3 2 6.703

13 50 2 1 0.6 6 6.500

14 50 2 1 0.9 6 6.694

15 50 2 1 1.2 8 6.344

Tabel 3. 5

Tabel berisikan data yang didapat setelah

melakukan simulasi dengan algoritma Boids

Dari data yang dihasilkan dari simulasi ini,

dapat dilihat bahwa iterasi ke 8, 9, 11, 12

memiliki angka paling rendah pada boids yang

bertabrakan, lalu pada iterasi ke 12 dapat dilihat

bahwa waktu yang ditempuh lebih lama dari

iterasi lainnya. Dari data ini sebenarnya sangat

susah untuk menentukan manakah iterasi yang

terbaik, jika ingin sedikit boids bertabrakan dan

waktu yang ditemput lebih cepat dapat mengikuti

iterasi ke 9 sedangkan jika ingin waktu yang

ditempuh lebih cepat dapat mengikuti iterasi ke 3,

walaupun iterasi ke 2 lebih cepat beberapa

milidetik tetapi jumlah yang bertabrakan lebih

sedikit pada iterasi ke 3 daripada iterasi ke 2.

Dari data ini juga penulis dapat

menyimpulkan bahwa jika nilai Cohesion

dinaikan, jumlah boids yang bertabrakan akan

bertambah. Hal ini terjadi karena Cohesion

berfungsi untuk membuat sebuah boids pergi ke

posisi rata-rata dari kelompok boids lainnya, ini

membuat boids tersebut seperti ditarik ke posisi

kelompok itu dan membuat boids tersebut

bertabrakan karena tidak melakukan Separation

yang cukup. Hal ini bisa diperebaiki dengan

menambah nilai dari Separation tapi dapat

membuat pergerakan dari kelompok boids

tersebut berputar dengan cepat di mana hal ini

terlihat jelek dan tidak realistis.

Untuk Alignment, jika variabel ini

ditambahkan maka jumlah boids yang bertabrakan

ikut berkurang. Hal ini terjadi karena Alignment

digunakan untuk mengubah arah pergerakan

sebuah boids mengikuti arah dari boids yang ada

disekitarnya.

c. Menggunakan algoritma Boids dengan

Collision Avoidance Pengujian ini dilakukan apakah algoritma Boids

dan Collision Avoidance yang diprogram sudah

berjalan dengan benar atau tidak, tiap iterasi

simulasi variabel yang digunakan algoritma Boids

memiliki nilai yang berbeda di mana nilai tersebut

sudah ditentukan sebelumnya. Pengujian ini juga

menjadi cara untuk mengetahui apakah dengan

ditambahkan Collision Avoidance dapat

mengurangi nilai tabrakan ataupun nilai Finish

Page 13: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

13

Time. Pengujian ini juga berguna untuk

memberikan pengetahuan apa yang terjadi jika

nilai variabel pada algoritma Boids memiliki nilai

berbeda dan ditambahnya nilai pergerakan dari

Collision Avoidance. Berikut data yang

didapatkan setelah melakukan simulasi:

It

er

as

i

Pe

rce

pti

on

Se

par

ati

on

Ali

gnt

me

nt

Co

he

sio

n

Obs

Perc

eptio

n

Ta

br

ak

an

Finish

Time

(milide

tik)

1 0 0 0 0 100 22 5.390

2 10 0.1 0.1 0.1 100 26 5.439

3 30 0.1 0.1 0.1 100 22 5.605

4 50 0.1 0.1 0.1 100 24 5.561

5 50 0.5 0.1 0.1 100 20 5.792

6 50 1 0.1 0.1 100 20 5.665

7 50 1.5 0.1 0.1 100 14 7.181

8 50 2 0.1 0.1 100 10 7.859

9 50 2 0.3 0.1 100 10 6.970

1

0

50 2 0.6 0.1 100

6 8.463

1

1

50 2 1 0.1 100

4 12.717

1

2

50 2 1 0.3 100

2 7.052

1

3

50 2 1 0.6 100

2 6.246

1

4

50 2 1 0.9 100

10 9.369

1

5

50 2 1 1.2 100

8 6.798

Tabel 3. 10

Tabel berisikan data yang didapat setelah

melakukan simulasi dengan algoritma Boids

dan Collision Avoidance

Dari data yang dihasilkan dari simulasi ini,

dapat dilihat bahwa iterasi ke 1 memiliki waktu

Finish Time yang lebih cepat dari iterasi lainnya,

lalu pada iterasi ke 12 dan 13 dapat dilihat bahwa

yang bertabrakan hanya 2 boids. Dari yang

peneliti lihat, kumpulan boids berhasil melewati

obstacle yang tersebar di daerah simulasi.

Beberapa boids juga menjadi tertarik arah

geraknya oleh boids disekitarnya dikarenakan

oleh Cohesion di mana ini membuat boids ditarik

ke posisi rata-rata dari kelompok boids disekitar.

d. Dengan jumlah Boids yang berbeda Pengujian ini dilakukan apakah algoritma Boids

dan Collision Avoidance yang diprogram sudah

berjalan dengan benar atau tidak, tiap iterasi

simulasi variabel yang digunakan algoritma Boids

memiliki nilai yang berbeda di mana nilai tersebut

sudah ditentukan sebelumnya. Nilai tersebut

adalah nilai yang mempengaruhi jumlah NPC

boids yang ada tiap iterasi pengujiannya.

Pengujian ini juga menjadi cara untuk mengetahui

apakah dengan ditambahkannya jumlah NPC

boids tiap iterasinya akan berdampak pada

performa yang dihasilkan. Pengujian ini dilakukan

dengan spesifikasi perangkat keras dan lunak

komputer utama sebagai berikut:

Perangkat Nama Perangkat / Model

Perangkat

Processor AMD Ryzen 3 2200G quad core

3.5ghz

Processor

Cooler

AMD Stock cooler AMD wraith

stealth

Motherboar

d

ASRock B450 Pro4

RAM Antec 2x4GB 2400mhz

GPU Inno3D Nvidia Gtx 1660ti

Sistem

Operasi

Windows 10 Home (64bit)

Google

Chrome

Versi rilis v79.0.3945.88

Harddisk 1 Seagate ST3500418AS 500gb

7200RPM

Harddisk 2 Western Digital WDC

WD10EZEX-00RKKA0

Power

Supply

600watt Korean brand power

supply

PC Case Cube Gaming ATX PC Case

Cooling fan 2x Mejec 12cm green LED

1200RPM

1x Mejec 12cm red LED

1200RPM

1x Cube Gaming 12cm red LED

1200RPM

1x HP 10cm cooler 2000RPM

1x 10cm cooler 1200RPM

Tabel 3. 11

Tabel berisikan data spesifikasi perangkat

keras dan lunak komputer yang digunakan

untuk melakukan simulasi

Page 14: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

14

Komputer yang digunakan adalah

komputer rakitan yang di rakit oleh sang penulis

sendiri. Saat menjalankan aplikasi simulasi, suhu

dari Processor dan GPU bersuhu stabil pada jarak

suhu 50-60 derajat celcius. Berikut data yang

dihasilkan dari simulasi yang telah dijalankan:

It

e

r

a

si

Pe

rc

ep

tio

n

Se

pa

ra

tio

n

Ali

gn

tm

en

t

C

oh

es

io

n

B

o

i

d

s

Rat

a-

rat

a

FP

S

Obs

_pe

rce

ptio

n

Finis

h

Time

(milid

etik)

1 50 2 1 1.

2

1

0

58.

78

100 9.547

2 50 2 1 1.

2

2

0

57.

99

100 7.258

3 50 2 1 1.

2

3

0

57.

05

100 5.818

4 50 2 1 1.

2

4

0

55.

81

100 7.433

5 50 2 1 1.

2

5

0

51.

89

100 10.17

9

6 50 2 1 1.

2

6

0

51.

19

100 14.02

5

7 50 2 1 1.

2

7

0

42.

09

100 10.50

7

8 50 2 1 1.

2

8

0

36.

71

100 11.67

8

9 50 2 1 1.

2

9

0

37.

95

100 16.45

9

1

0

50 2 1 1.

2

1

0

0

31.

50

100 18.92

2

1

1

50 2 1 1.

2

1

1

0

31.

26

100 21.28

5

1

2

50 2 1 1.

2

1

2

0

29.

18

100 22.35

1

1

3

50 2 1 1.

2

1

3

0

25.

84

100 22.59

7

1

4

50 2 1 1.

2

1

4

0

25.

64

100 30.95

0

1

5

50 2 1 1.

2

1

5

0

19.

49

100 24.80

4

Tabel 3. 12

Tabel berisikan data dari hasil simulasi dengan

jumlah boids yang berbeda tiap iterasinya

Dapat dilihat dari hasil yang tertera pada tabel

4.12 bahwa makin banyaknya agen NPC boids,

FPS yang dihasilkan makin menurun. Agen NPC

boids yang lebih banyak inilah sangat berdampak

juga pada waktu yang ditempuh semua NPC boids

tersebut untuk mencapai daerah kotak finish, hal

ini dikarenakan banyaknya boids yang harus

melakukan separation untuk menghindari boids

didepannya di mana hal ini menghasilkan gerakan

boids yang lambat. Waktu yang ditempuh juga

bervariasi dikarenakan banyaknya boids yang

bertetangga atau berdekatan, hal ini membuat

jalur perjalanan mereka menjadi bervariasi dan

juga harus melakukan Collision Avoidance yang

membuat waktu yang ditempuh tersebut

berkurang ataupun bertambah.

D. Implementasi kedalam Game

Berikut tangkapan layar saat game dimainkan oleh

penulis setelah di implementasikan algoritma

Boids dan Collision Avoidance ke dalamnya:

Gambar 3. 11

Gambar tangkapan layar saat game

dimainkan, dapat dilihat bahwa NPC

Predator sedang mentarget NPC

Cebong

Page 15: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

15

Gambar 3. 12

Gambar tangkapan layar saat game

dimainkan, terdapat 21 NPC Cebong

dan sedang melakukan Flocking

Gambar 3. 13

Gambar tangkapan layar saat game

selesai dan pemain kalah karena NPC

Predator menyentuh King Cebong

Gambar 3. 14

Gambar tangkapan layar saat game

selesai dan pemain menang

E. Kesimpulan

Dari penelitian yang telah dilakukan dengan

melakukan simulasi pergerakan NPC dengan

algoritma Boids, dapat disimpulkan bahwa

penggunaan algoritma Boids dibantu dengan

Collision Avoidance dapat mengurangi tabrakan

satu sama lain saat sekumpulan NPC bergerak

bersamaan dan berdekatan. Penelitian ini juga

membuktikan bahwa algoritma Boids ini dapat

diimplementasikan ke dalam permainan komputer.

Dari hasil eksperimen yang dilakuan dapat

ditunjukan bahwa dengan diimplementasikan

algoritma Boids, peneliti dapat mengetahui

pebedaan yang dihasilkan jika mengubah nilai

variabel tiga aturan utama yaitu Separation,

Alignment dan Cohesion pada tiap iterasi

eksperimennya. Dari eksperimen yang dilakukan,

dapat dibuktikan bahwa dengan digunakannya

algoritma Boids dapat menurunkan jumlah boids

yang bertabrakan yaitu dari 20 tabrakan menjadi

lebih rendah yaitu 2 tabrakan pada beberapa

eksperimen yang dilakukan.

Eksperimen saat menggunakan algoritma

Boids dan Collision Avoidance menghasilkan

waktu yang ditempuh menjadi lebih sedikit yaitu

paling rendah adalah 5.390 milidetik, tetapi ketika

variabel Separation, Alignment dan juga Cohesion

dinaikan, waktu yang ditempuh menjadi

meningkat menjadi 7.181 milidetik pada iterasi ke

7 dan yang paling tinggi adalah 12.717 pada

iterasi ke 11. Hal ini terjadi karena NPC boids

harus saling menghindari satu sama lain sambil

menghindari obstacle yang menghalang.

Eksperimen juga membutikan bahwa semakin

banyak jumlah NPC Boids dapat mengurangi

performa yang dihasilkan oleh komputer dengan

melihat nilai rata-rata dari Frame Rate per detik

yang dihasilkan. Dengan adanya 10 boids rata-rata

Frame Rate yang dihasilkan adalah 58.78 FPS,

ketika jumlah boids dinaikan menjadi 150 rata-

rata Frame Rate akan turun menjadi 19.49 FPS.

F. Saran

Dalam penelitian ini masuk adanya kekurangan

dalam pembuatannya. Oleh karena itu Saran yang

dapat diberikan kepada penelitian selanjutnya

adalah:

1. Membuktikan apakah algoritma Boids adalah

yang paling efisien dengan

mengkomparasikanya pada algoritma sejenis.

Page 16: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

16

2. Mengimplementasikan algoritma Boids bukan

hanya pada permainan komputer saja tetapi

pada objek lainnya.

3. Implementasi selanjutnya bisa dilakukan pada

penelitian untuk evakuasi kebakaran ataupun

semacamnya.

G. Ucapan Terima Kasih Puji syukur saya ucapkan kepada Tuhan Yesus

Kristus, karena atas berkat dan pertolongannya,

saya dapat menyelesaikan skripsi ini. Penulisan

skripsi ini dilakukan dalam rangka untuk

memenuhi salah satu syarat untuk mencapai gelar

sarjana jurusan Teknik Informatika pada Institut

Bisnis dan Informatika Kwik Kian Gie. Dalam

mengerjakan karya skripsi ini banyak sekali

rintangan yang harus saya hadapi, tanpa bantuan

dari berbagai pihak, sulit bagi saya untuk

menyelesaikan skripsi ini. Oleh karena itu, saya

mengucapkan terima kasih yang sebesar-besarnya

kepada:

1. Roni Paolo Marpaung ayah tercinta, Martha

Iriani Ritonga Ibunda tercinta dan Maureen

Rosabel Marpaung adikku tercinta sebagai

keluarga yang telah memberikan doa dan

dukungan penuh selama saya mengerjakan

skripsi ini.

2. Bapak Richard Vinc N. Santoso, S.TI., M.T.I

selaku dosen pembimbing yang telah

menyediakan waktu dan tenaga untuk

membimbing saya dalam menyelesaikan

skripsi ini.

3. Bapak Yunus Fadhilah Soleman, S.Kom.,

M.Kom selaku dosen pembimbing pada saat

awal saya melakukan bimbingan skripsi.

4. Bapak Akhmad Budi, S.Kom, M.M., M.Kom.

selaku Ketua Program Studi Teknik

Informatika Institut Bisnis dan Informatika

Kwik Kian Gie.

5. Dwi Marpaung, Namboru tersayang yang

selalu memberikan doa, dukungan dan

nasehat selama saya mengerjakan skripsi ini.

6. Reymartin Reza Pratama selaku teman dekat

terbaik yang telah membantu dengan memberi

banyak dukungan dan bantuan selama saya

mengerjakan skripsi.

7. Geraldin Everdin Pua selaku teman dekat dan

seperjuangan dalam menyelesaikan skripsi

yang telah memberikan dukungan dan

bantuan.

8. Adbert Lijanto selaku teman dekat yang

memberikan saya bantuan saat mengerjakan

skripsi ini.

9. Teman-teman dekat yang tidak dapat disebut

satu persatu yang selalu memberikan

semangat.

10. Teman-teman jurusan Teknik Informatika

angkatan 2016 yang telah berjuang bersama-

sama saat melakukan perkuliahan.

11. Teman-teman jurusan lain maupun teman luar

kampus yang tidak dapat disebut satu persatu

yang telah memberikan semangat dan bantuan.

Semoga Tuhan membalas segala kebaikan yang

telah mereka berikan kepada saya, baik berupa

moril maupun materiil.

DAFTAR PUSTAKA

Balcerak, S., Chisholm, Y., & Shelby, C. (2017). A

Computational Analysis of the Quadratic

Weighted Assignment of Bird Flocks in North

Carolina. University of North Carolina

Wilmington Department of Computer Science.

Benes, B., & Hartman, C. (2006). Autonomous Boids .

Department of Computer Graphics, Purdue

University, Knoy Hall of Technology.

Bourg, D. M., & Seemann, G. (2004). AI for Game

Developers 1 edition. O'Reilly Media; .

Braga, R. G., da Silva, R. C., & Ramos, A. C. (2018).

Collision Avoidance Based on Reynolds

Rules: A Case Study Using Quadrotors.

Institute of Mathematics and Computer

Science, Federal University of Itajuba,

Itajuba, MG, Brazil .

Page 17: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

17

Buckland, M. (2005). Programming Game AI by

Example. 2320 Los Rios Boulevard, Plano,

Texas 75074: Wordware Publishing, Inc.

client-side JS platform JavaScript library for

Processing. (2020, Januari 13). Retrieved

from P5.js Team: http://p5js.org/

Dewi, M., Hariadi, M., & Purnomo, M. H. (2011).

Simulating The Movement Of The Crowd In

An Environment Using Flocking. Department

of Electronics Engineering, Institut Teknologi

Sepuluh Nopember Surabaya, Indonesia.

Harefa, D. R., & Ismiati, M. B. (2019). Penerapan

Algoritma Boids Pada NPC (NON PLAYER

CHARACTER) Dalam Game Menembak

Burung. Program Studi Teknik Informatika

dan Sistem Informasi, Fakultas Sains dan

Teknologi, Universitas Katolik Musi Charitas

Palembang.

Hauert, S., Zufferey, J. C., & Floreano, D. (2007).

Evolved swarming without positioning

information: an application in aerial

communication relay. Laboratory of

Intelligent Systems, Ecole Polytechnique

Fédérale de Lausanne (EPFL-STI-IMT-LIS),

Station 11, 1015 Lausanne, Switzerland.

Hong, j. H., & Cho, S. B. (2005). Evolving reactive

NPCs for the real-time simulation game. 86-

93.

Horia, M. Z., Leon, F., Pal, C., & Pagu, G. (2009).

Agent-Based Simulation of Crowd

Evacuation Behavior. Faculty of Automatic

Control and Computer Engineering

“Gheorghe Asachi” Technical University of

Iaşi.

Husselmann, A. V., & Hawick, K. A. (2011).

Simulating Species Interactions and Complex

Emergence in Multiple Flocks of Boids with

GPUs. Computer Science, Institute for

Information and Mathematical Sciences,

Massey University, North Shore, Auckland,

New Zealand.

Kim, C.-H., Jeong, S.-M., Hur, G.-T., & Kim, B.-G.

(2006). Verification of FSM using Attributes

Definition of NPCs Models. IJCSNS

International Journal of Computer Science

and Network Security, VOL.6 No.7A.

Millington, I., & Funge, J. (2009). Artificial

Intelligence for Games 2nd Edition. 30

Corporate Drive, Suite 400, Burlington, MA

01803, USA: Morgan Kaufmann Publishers.

Page 18: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

18

Mototake, Y., & Ikegami, T. (2015). A Simulation

Study of Large Scale Swarms. School of Arts

and Sciences, The University of Tokyo, Tokyo,

Japan.

OBS Free and Open Source Video and live Streaming

Recording application. (2020, Januari 13).

Retrieved from OBS TEAM:

https://obsproject.com/

Parent, R. (2001). Computer Animation: Algorithms

and Techniques (The Morgan Kaufmann

Series in Computer Graphics). 340 Pine Street,

Sixth Floor, San Francisco, CA 94104-3205,

USA: Morgan Kaufmann Publishers.

Ramos, R. P., Oliveira, S. M., Vieira, S. M., &

Christensen, A. L. (2019). Evolving flocking

in embodied agents based on local and global

application of Reynolds’ rules. Instituto

Superior Te´cnico (IST), Lisbon, Instituto de

Telecomunicac¸ões, Lisbon, Portugal,

Embodied Systems for Robotics and Learning

at the Mærsk Mc-Kinney Møller Institute,

University of Southern Denmark (SDU),

Odense, Denmark.

Reynold, C. W. (1987). Flocks Herds, and Schools: A

Distributed Behavioral Model. Symbolics

Graphics Division,1401 Westwood Boulevard,

Los Angeles, California 90024 - Computer

Graphics, Computer Graphics, Volume 21 no.

4 Page 25-34.

Reynolds, C. W. (1999). Steering Behaviors For

Autonomous Characters. Sony Computer

Entertainment America, GDC 1999 Page 763-

782.

Saber, R. O., & Murray, R. M. (2003). Flocking with

Obstacle Avoidance: Cooperation with

Limited Information in Mobile Networks.

Control and Dynamical Systems California

Institute of Technology.

Sommerville, I. (2010). Software Engineering (9th

Edition). Pearson; 9 edition.

Sua, H., Wanga, X., & Chenb, G. (2008). A

connectivity-preserving flocking algorithm for

multi-agent systems based only on position

measurements. Department of Automation,

Shanghai Jiao Tong University, Shanghai,

China; Department of Electronic Engineering,

City University of HongKong, Hong Kong,

China.

Page 19: ANALISIS DAN IMPLEMENTASI ALGORITMA BOIDS DAN …

19

Suryadi, A. (2017). Perancangan Aplikasi Game

Edukasi Menggunakan Model Waterfall.

Sekolah Tinggi Keguruan dan Ilmu

Pendidikan Garut Jl. Pahlawan Sukagalih

no.32 Tarogong – Garut.