Implementasi Algoritma Boids Untuk Perilaku Ikan Berkeleompok Pada Permainan Menjaring Ikan

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

ILHAM MAULANA

10109170

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2015


(2)

iii

Alhamdulillahirabbil‘alamin, segala puji dan syukur penulis panjatkan kehadirat Allah Subhanallahu Wa Ta’ala, karena dengan izin-Nya penyusunan skripsi ini dapat diselesaikan tepat pada waktunya. Shalawat serta salam semoga senantiasa tercurahkan kepada Nabi Muhammad shallallahu ‘alaihi wasallam.

Laporan skripsi dengan judul “Implementasi Algoritma Boids untuk Perilaku Ikan Berkelompok pada Permainan Menjaring Ikan” ini disusun guna memenuhi syarat dalam menyelesaikan ujian akhir program strata satu (S1) di Program Studi Teknik Informatika, Universitas Komputer Indonesia.

Selama menyusun skripsi ini, dengan izin Allah, penulis telah mendapatkan banyak sekali bantuan dari berbagai pihak, baik secara langsung maupun tidak langsung. Penulis ucapkan terima kasih kepada :

1. Keluarga tercinta, terutama kedua orang tua atas doa dan dukungannya yang tidak pernah berhenti baik secara moril maupun materil.

2. Ibu Dian Dharmayanti, S.T., M.Kom. selaku dosen pembimbing yang telah dengan sabar membimbing penyusunan skripsi ini.

3. Ibu Nelly Indriani W, S.Si., M.T. selaku dosen penguji saat pelaksanaan seminar dan sidang yang telah memberikan banyak masukan dalam penyusunan skripsi ini.

4. Bapak Galih Hermawan, S.Kom., M.T. selaku dosen penguji komprehensif saat pelaksanaan sidang yang telah memberikan masukan dalam penyusunan skripsi ini.

5. Ibu Rani Susanto, S.Kom., M.Kom. selaku dosen wali IF-4 yang telah banyak membantu.

6. Segenap Dosen Program Studi Teknik Informatika yang senantiasa sabar dalam berbagi ilmu pengetahuan dari awal menjadi mahasiswa hingga sekarang.


(3)

iv membantu.

9. Semua pihak yang telah banyak membantu penulis dalam penyusunan skripsi ini yang tidak bisa penulis sebutkan satu persatu.

Penulis menyadari bahwa dalam penulisan skripsi ini masih terdapat banyak kekurangan, oleh karena itu kritik dan saran yang membangun dari semua pihak sangat penulis harapkan. Akhir kata, semoga skripsi ini bermanfaat bagi saya khususnya dan bagi para pembaca pada umumnya. Aamiin.

Wassalaamu'alaikum warahmatullaaahi wa barokaatuhu.

Bandung, 21 Februari 2015


(4)

v

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... x

DAFTAR SIMBOL ... xi

DAFTAR LAMPIRAN ... xiii

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Maksud dan Tujuan ... 2

1.4 Batasan Masalah ... 3

1.5 Metodologi Penelitian ... 3

1.5.1 Metode Pengumpulan Data ... 3

1.5.2 Metode Pembangunan Perangkat Lunak ... 4

1.6 Sistematika Penulisan... 5

BAB 2 LANDASAN TEORI ... 7

2.1 Game (Permainan) ... 7

2.1.1 Pengertian Game ... 7

2.1.2 Genre Game ... 8

2.2 AI (Artificial Intelligence) ... 9

2.3 MAS (Multi Agent System) ... 11

2.4 Algoritma Boids ... 13

2.5 Steering Behavior... 16

2.5.1 Obstacle Avoidance... 16

2.6 Schooling pada ikan ... 17


(5)

vi

2.9.1 Diagram UML ... 20

BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA ... 25

3.1 Analisis Masalah ... 25

3.2 Analisis Perilaku Ikan ... 25

3.2.1 Analisis Perilaku Ikan dalam Game ... 25

3.3 Analisis Game ... 26

3.3.1 Gameplay ... 26

3.3.2 Waktu ... 26

3.3.3 Skor ... 26

3.4 Analisis Masukan ... 26

3.5 Flowchart Algoritma Boids ... 27

3.6 Analisis Algoritma Boids ... 30

3.7 Analisis Kebutuhan Non Fungsional ... 36

3.7.1 Analisis Kebutuhan Perangkat Lunak ... 36

3.7.2 Analisis Kebutuhan Perangkat Keras ... 36

3.7.3 Analisis Pengguna ... 37

3.8 Analisis Kebutuhan Fungsional ... 37

3.8.1 Use Case Diagram ... 38

3.8.2 Definisi Aktor ... 38

3.8.3 Definisi Use Case ... 38

3.8.4 Use Case Scenario ... 39

3.8.5 Activity Diagram ... 42

3.8.6 Sequence Diagram ... 45

3.8.7 Class Diagram ... 47

3.9 Perancangan Sistem ... 48

3.9.1 Perancangan Kelas ... 48


(6)

vii

4.1 Implementasi ... 53

4.1.1 Implementasi Perangkat Keras ... 53

4.1.2 Implementasi Perangkat Lunak ... 53

4.1.3 Implementasi Aplikasi ... 54

4.1.4 Implementasi Antarmuka ... 54

4.2 Pengujian ... 56

4.2.1 Pengujian Alpha ... 56

4.2.1.1 Skenario Pengujian ... 56

4.2.1.2 Pengujian Black Box ... 55

4.2.1.3 Pengujian White Box ... 57

4.2.2 Pengujian Algoritma Boids pada Perilaku Ikan ... 65

BAB 5 KESIMPULAN ... 69

5.1 Kesimpulan ... 69

5.2 Saran ... 69


(7)

71

DAFTAR PUSTAKA

[1] Himafarin. 2010, Tingkah Laku Ikan dan Metode Penangkapan Ikan, dilihat 28 Maret 2014, http://himafarin.lk.ipb.ac.id/tingkah-laku-ikan-dan-metode-penangkapan-ikan/

[2] Sujjada, Alun. 2011, Formasi Pasukan Perang Menggunakan Algoritma Boids, ITS, Surabaya.

[3] S, Rosa A & Shalahuddin, M. 2013, Rekayasa Perangkat Lunak: Terstruktur dan Berorientasi Objek, Informatika, Bandung.

[4] Adams, E. 2010, Fundamentals of Game Design (2nd edition), New Riders, Berkeley.

[5] Russell, Stuart J & Norvig, Peter. 1995, Artificial Intelligence: A Modern Approach, Prentice Hall.

[6] Tseng, Francis, Boids Algorithm, dilihat 7 Februari 2014, http://frnsys.com/topics/boids

[7] Reynolds, Craig W. 2001, Boids, dilihat 7 Februari 2014, http://www.red3d.com/cwr/boids/

[8] Cui, Xiaohui. 2007, A flocking based algorithm for document clustering analysis, Journal of Systems Architecture.

[9] Bevilacqua, Fernando. 2012, Understanding Streering Behaviors, dilihat 21 Februari 2014, http://gamedevelopment.tutsplus.com/series/understanding-steering-behaviors--gamedev-12732

[10] Reynolds, Craig W. 2004, Steering Behaviors For Autonomous Characters, dilihat 21 Februari 2014, http://www.red3d.com/cwr/steer/gdc99/

[11] Susilowati, Rahayu Sofia Ery. 2007. Petunjuk Kegiatan Praktikum Tingkah Laku Hewan. Malang: FMIPA UM.

[12] Susilowati, dkk. 2001. Tingkah Laku Hewan. Malang: FMIPA UM.

[13] Wijaya, Didik. 2002, Memahani ActionScript, dilihat 1 Maret 2014, http://www.master.web.id/mwmag/issue/01/content/tutorial-actionscript-1/tutorial-actionscript-1.html#sub1


(8)

[14] Adobe Flash Player / Tech specs, dilihat 22 April 2014, http://www.adobe.com/products/flashplayer/tech-specs.html

[15] Ismail, Andang. 2006, Education Games: Menjadi Cerdas dan Ceria dengan Permainan Edukatif, Pilar Media, Yogyakarta.

[16] Wahono, Romi Satria. 2003. Pengantar Multi Agent Sistem (MAS), IlmuKomputer.Com.


(9)

1

BAB 4

PENDAHULUAN

4.4 Latar Belakang Masalah

Permainan menjaring ikan merupakan permainan dengan genrearcade yang dimainkan oleh satu orang pemain. Dalam permainan ini, pemain harus berusaha untuk menjaring ikan di laut dengan menggunakan sebuah alat tangkap yang dinamakan jaring, yang harus pemain lakukan dengan jaring itu adalah melempar jaring itu ke arah ikan yang terlihat sedang berkelompok untuk mendapatkan beberapa ikan sekaligus dan juga untuk mendapatkan hasil yang maksimal.

Perilaku ikan berkelompok dalam permainan ini sama halnya dengan perilaku ikan berkelompok di laut. Beberapa jenis ikan yang hidup di laut secara berkelompok disebabkan oleh beberapa faktor. Faktor-faktor yang mempengaruhi terjadinya perilaku berkelompok pada ikan adalah perlindungan diri dari pemangsa atau predator, mencari dan menangkap ikan lain, pemijahan, dan ruaya [1]. Ikan yang bergerak menghindari jaring ketika jaring dilempar ke arah kerumunannya merupakan perilaku yang alami dan juga merupakan salah satu faktor terjadinya perilaku ikan berkelompok.

Algoritma boids adalah algoritma yang ditujukan untuk mensimulasikan perilaku berkelompok. Setiap individu dari kelompok dalam algoritma boids ini merupakan agen yang memiliki perilaku yang berbeda. Perilaku yang berbeda dari setiap agen boids ini dapat diatur dengan menambahkan pengaturan perilaku. Pengaturan perilaku bertujuan untuk membantu ikan bergerak secara alami dan meningkatkan kemampuan dari setiap agen dalam proses pergerakan yang berbeda-beda.

Untuk dapat mensimulasikan perilaku ikan berkelompok dalam permainan menjaring ikan ini diperlukan sebuah kecerdasan buatan, salah satu algoritma yang dapat mensimulasikannya adalah algoritma boids. Gerak dari boids ini dipandang dapat diberlakukan dalam perilaku pergerakan ikan berkelompok [2].


(10)

Dengan latar belakang masalah diatas, maka akan diimplementasikan algoritma boids untuk perilaku ikan berkelompok pada permainan menjaring ikan, selain itu juga akan diimplementasikan pengaturan perilaku ikan untuk menghindari jaring yaitu perilaku menghindari rintangan (obstacle avoidance).

4.2 Rumusan Masalah

Berdasarkan uraian pada latar belakang masalah, maka dapat disimpulkan permasalahan yang ada yaitu :

1. Bagaimana mengimplementasikan algoritma boids untuk perilaku ikan berkelompok pada permainan menjaring ikan?

2. Bagaimana pengaruh pengaturan perilaku yang diterapkan pada perilaku ikan berkelompok pada permainan menjaring ikan ini?

4.3 Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dari penelitian ini adalah dengan mengimplementasikan algoritma boids untuk perilaku ikan berkelompok pada permainan menjaring ikan

Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah :

1. Dapat mensimulasikan perilaku ikan berkelompok dalam permainan menjaring ikan ini.

2. Dapat memberikan pengaturan perilaku kepada ikan berkelompok agar dapat bergerak secara alami seperti ikan akan bergerak menghindari jaring ketika jaring dilempar ke arah kerumunannya.


(11)

4.4 Batasan Masalah

Adapun batasan masalah dalam penelitian ini adalah sebagai berikut : 1. Permainan yang dibangun hanya berupa prototype.

2. Permainan ini hanya dimainkan oleh 1 orang (single player)

3. Perilaku ikan berkelompok merupakan penerapan dari algoritma boids. 4. Perilaku ikan dalam menghindari jaring merupakan penerapan dari

perilaku menghindari rintangan (obstacle avoidance).

5. Metode analisis perancangan yang digunakan adalah analisis perancangan dan pengembangan perangkat lunak berorientasi obyek, dengan menggunakan pemodelan UML(Unified Modeling Language).

4.5 Metodologi Penelitian

Metode penelitian yang digunakan adalah metode desktiptif. Metode penelitian deskriptif merupakan metode yang bertujuan manggambarkan secara tepat keadaan atau fenomena tertentu yang terjadi. Metode-metode yang digunakan dalam pengumpulan data dan pembangunan perangkat lunak adalah sebagai berikut:

4.5.4 Metode Pengumpulan Data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :

a. Studi Pustaka

Studi pustaka yang dilakukan adalah dengan mempelajari berbagai literatur, jurnal, paper, e-book, yang membahas tentang masalah permainan (game), algoritma boids, perilaku ikan berkelompok, dan bacaan-bacaan yang ada kaitannya dengan judul penelitian. b. Observasi

Teknik pengumpulan data dengan mengadakan penelitian dan peninjauan langsung terhadap permalasahan tentang algoritma boids.


(12)

4.5.2 Metode Pembangunan Perangkat Lunak

Metode pembangunan perangkat lunak yang digunakan dalam penelitian ini adalah dengan membuat prototype. Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan, model ini dimulai dengan pengumpulan kebutuhan. Pendekatan model prototyping digunakan jika pemakai hanya mendefinisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk antarmuka yang harus diambil.

Adapun tahapan-tahapan dalam pembuatan perangkat lunak selama proses penelitian dengan menggunakan model prototyping dapat dilihat pada gambar 1.1 :

Gambar 1.1 Ilustrasi model prototype [3].

Tahapan-tahapan dari metode penelititian ini terdiri dari : 1. Pengumpulan kebutuhan

Pada tahap ini dilakukan pengumpulan apa saja yang dibutuhkan dalam penelitian, seperti literatur, buku, artikel, e-book, dan sumber-sumber lain yang berkaitan dengan implementasi algoritma boids pada permainan menjaring ikan, serta komponen-kompnen yang dibutuhkan dalam membangun aplikasi.


(13)

2. Perancangan

Pada tahap ini dilakukan analisis dan perancangan sistem, baik itu analisis kebutuhan fungsional ataupun non-fungsional seperti analisis data, analisis berorientasi objek yang terdiri dari perancangan use case diagram, activity diagram, sequence diagram, dan class diagram, serta perancangan antarmuka dan perancangan pesan. Setelah itu perancangan sistem dan perancangan perangkat lunak ditranslasikan ke dalam aplikasi perangkat lunak dengan menggunakan bahasa pemrograman java, sehingga hasil dari tahap ini adalah aplikasi perangkat lunak yang sesuai dengan perancangan sistem dan perangkat lunak yang telah dibuat.

3. Evaluasi Prototype

Pada tahap ini dilakukan pengujian pada aplikasi perangkat lunak serta memastikan bahwa semua bagian sudah diuji. Hal ini dilakukan untuk mengetahui kesalahan dan meminimalisirnya serta memastikan perangkat lunak yang dihasilkan sesuai yang diinginkan.

4.6 Sistematika Penulisan

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

BAB 4 PENDAHULUAN

Bab ini berisikan tentang latar belakang masalah dari penelitian tentang implementasi algoritma boids untuk perilaku ikan berkelompok pada permainan menjaring ikan, identifikasi masalah, maksud dan tujuan penelitian, batasan masalah, metodologi penelitian dan sistematika penulisan.


(14)

BAB 2 LANDASAN TEORI

Bab ini berisi pembahasan mengenai landasan teori yang berhubungan dengan penulisan penelitian ini, seperti : konsep dasar dari permainan (game), pengertian game, sejarah game, genre game, algoritma yang digunakan dalam game, bahasa pemrograman yang dipakai, tools yang digunakan dan teori-teori lain yang menunjang dan ada kaitannya dengan topik penelitian yang diambil

BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA

Bab ini berisi analisis sistem, analisis masalah dari permasalahan yang timbul dari penelitian yang sedang dilakukan, analisis game yang akan dibangun atau dikebangkan, analisis algoritma yang akan diimplementasikan, analisis masukan yang diperlukan algoritma, serta analisis perangkat lunak.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi implementasi dari hasil analisis dan perancangan yang dibahas pada BAB 3, serta hasil pengujian sistem yang telah dilakukan.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan yang diperoleh dalam mengimplementasikan algoritma boids untuk perilaku ikan berkelompok pada permainan menjaring ikan dan saran yang diberikan untuk pengembangan perangkat lunak di masa yang akan datang.


(15)

7

BAB

2

LANDASAN TEORI

2.1 Game (Permainan)

Game merupakan salah satu media hiburan paling popular untuk semua kalangan usia. Sejak pertama kali ditemukan sampai saat ini, teknologi game telah mengalami kemajuan yang terbilang pesat. Hal ini ditandai dengan berkembangnya jenis game, produk, alat dan jenis interaksi game dengan penggunaan yang semakin beragam bentuknya [15].

2.1.1 Pengertian Game

Game merupakan sebuah bentuk seni dimana penggunanya disebut dengan pemain (player), diharuskan membuat keputusan-keputusan dengan tujuan mengelola sumber daya yang diperoleh dari kesempatan-kesempatan bermain (token) miliknya untuk mencapai tujuan tertentu. Video game adalah bentuk game yang interaksi umumnya melibatkan media video dan audio.

Menurut Andang Ismail terdapat dua pengertian game (permainan). Pertama, game (permainan) adalah sebuah aktifitas bermain yang murni mencari kesenangan tanpa mencari menang atau kalah. Kedua, permainan diartikan sebagai aktifitas bermain yang dilakukan dalam rangka mencari kesenangan dan kepuasan, namun ditandai pencarian menang – kalah.

Berdasarkan representasinya, game dapat dibedakan menjadi 2 jenis yaitu game 2 dimensi (2D) dan 3 dimensi (3D). Game 2D adalah game yang secara matamatis hanya melibatkan 2 elemen koordinat kartesius yaitu x dan y, sehingga konsep kamera pada game 2D hanya menentukan gambar pada game yang dapat dilihat oleh pemain. Sedangkan game 3D adalah game yang selain melibatkan elemen x dan y juga melibatkan elemen z pada perhitungannya sehingga konsep kamera pada game 3D benar-benar menyerupai konsep kamera pada kehidupan nyata [15].


(16)

2.1.2 Genre Game

Menurut buku “Fundamentals of Game Design”, genre game dapat dibagi menjadi 9 [4], antara lain:

1. Action

Action game adalah game dimana kebanyakan dari tantangan yang disajikan merupakan dari tes physical skill dan koordinasi pemain. Salah satu sub-genre action game adalah shooter game, baik yang 2D maupun 3D seperti First Person Shooter (FPS).

2. Strategy

Strategy game menantang pemain untuk mencapai kemenangan dengan perencanaan, khususnya melalui perencanaan serangkaian tindakan yang dilakukan melawan satu lawan atau lebih. Kemenangan diraih dengan perencanaan matang dan pengambilan keputusan yang optimal.

3. Role Playing Game (RPG)

RPG adalah game dimana pemain mengontrol satu atau lebih karakter yang biasanya didesain oleh pemain itu sendiri, dan memandu mereka melewati berbagai rintangan yang diatur oleh komputer. Perkembangan karakter dalam hal kekuatan dan kemampuannya adalah kunci dari game jenis ini.

4. Sport

Sport game mensimulasikan berbagai aspek dari olahraga atletik nyata maupun imajiner, apakah itu memainkan pertandingan, mengelola tim dan karir, atau keduanya. Salah satu contoh game jenis ini adalah Pro Evolution Soccer 2012 (PES 2012), dimana pemain bisa memainkan pertandingan, menjadi manajer tim, maupun menjadi pemain dan mengembangkan karirnya sendiri.

5. Vechile Simulation

Vehicle simulation membuat merasakan mengendarai kendaraan, baik kendaraan nyata maupun kendaraan imajiner. Performa dan karakteristik kasar mesin harus menyerupai kenyataan, kecuali jika yang didesain adalah kendaraan imajiner.


(17)

6. Construction and Management Simulation

CMS game adalah game tentang proses. Tujuan pemain bukan untuk mengalahkan musuh, tetapi membangun sesuatu dengan konteks proses yang sedang berjalan. Semakin pemain mengerti dan mengontrol proses, semakin sukses sesuatu yang ia bangun. Game seperti ini biasanya menyediakan dua jenis permainan, yaitu mode bebas dimana pemain bebas membangun sesuatu dan mode misi dimana terdapat skenario hal apa yang harus dibangun oleh pemain.

7. Adventure/Platform

Adventure atau platform game adalah cerita interaktif tentang karakter protagonis yang dimainkan oleh pemain. Penyampaian cerita dan eksplorasi adalah elemen inti dari game ini. Penyelesaian teka-teki dan tantangan konseptual adalah bagian besar dari permainan.

8. Artificial Life and Puzzle Game

Artificial life game adalah game yang membuat tiruan dari kehidupan sebenarnya. Biasanya ada dua jenis game ini, tiruan kehidupan manusia, contohnya The SIMS, dan tiruan kehidupan binatang, contohnya Tamaghoci.

9. Online Game

Istilah online game disini mengacu kepada multiplayer game dimana mesin dari para pemain terhubung dengan jaringan.

2.2 AI (Artificial Intelligence)

Para ahli mendefinisikan AI secara berbeda-beda tergantung pada sudut pandang mereka masing-masing. Ada yang fokus pada logika berpikir manusia saja, ada juga yang mendefinisikan AI secara lebih luas pada tingkah laku manusia. Pengelompokan definisi AI ada empat kategori [5], yaitu:

1. Acting humanly: The Turing test approach

Kecerdasan buatan dalam kategori ini dirancang oleh Alan Turing pada tahun 1950, beliau merancang sebuah komputer berintelejensia dengan tujuan apakah komputer tersebut mampu mengelabui seorang manusia


(18)

yang mengintrograsinya melalui teletype (komunikasi berbasis pesan jarak jauh). Jika integrator tidak dapat membedakan yang diintrograsi adalah manusia atau komputer maka komputer tersebut lulus dari Turing test. Untuk menerapkan kelompok AI ini komputer harus memiliki kemampuan mengolah bahasa secara natural, perangkat belajar berdasarkan kondisi apapun, representasi pengetahuan, pengambilan keputusan, Computer Vision, robotics. Turing test sengaja menghindari interaksi fisik antara integrator dan komputer karena simulasi fisik manusia tidak memerlukan intelejensia.

2. Thinking humanly: The cognitive modelling approach Pendekatan ini dilakukan dengan dua cara yaitu:

a. Melalui introspeksi: mencoba menangkap pemikiran-pemikiran kita sendiri saat berpikir.

b. Melalui eksperimen-eksperimen psikologi. 3. Thinking rationally: The laws of thought approach

Masalah pada pendekatan ini diantaranya:

a. Tidak mudah untuk membuat pengetahuan informasi dan menyatakan pengetahuan tersebut ke dalam kondisi formal yang diperlukan oleh notasi logika, khususnya ketika pengetahuan tersebut memiliki kepastian kurang dari 100%.

b. Terdapat perbedaan besar antara dapat memecahkan masalah “dalam prinsip” dan memecahkannya dalam dunia maya.

4. Acting rationally: The rational agent approach

Membuat tindakan berdasarkan kesimpulan yang diambil secara logis merupakan bagian dari suatu rational agent. Aksi rasional harus dilakukan dengan cara menalar secara logis, dengan menalar secara logis maka bisa didapatkan kesimpulan aksi apa yang harus dilakukan untuk mencapai tujuan, sehingga agent memiliki aksi yang tepat.


(19)

Thinking humanly dan acting humanly adalah dua definisi dan arti yang sangat luas. Sampai saat ini, pemikiran manusia diluar rasio, yakni refleks dan intuitif (berhubungan dengan perasaan), belum dapat ditirukan sepenuhnya oleh komputer. Dengan demikian, kedua definisi ini dirasa kurang tepat untuk saat ini. Jika kita menggunakan definisi ini maka banyak produk komputasi cerdas saat ini tidak layak disebut sebagai produk AI.

Definisi thinking rationally terasa lebih sempit daripada acting rationally dengan pendekatan rational agent. Didasari dengan pemikiran komputer yang mampu melakukan penalaran secara logis dan juga bisa melakukan aksi secara rasional dengan pengambilan keputusan dengan menyimpulkan penalaran logis yang dilakukan komputer.

Definisi thinking rationally terasa lebih sempit daripada acting rationally dengan pendekatan rational agent. Didasari dengan pemikiran komputer yang mampu melakukan penalaran secara logis dan juga bisa melakukan aksi secara rasional dengan pengambilan keputusan dengan menyimpulkan penalaran logis yang dilakukan komputer.

2.3 MAS (Multi Agent System)

Konsep agent sudah dikenal lama dalam bidang kecerdasan buatan (AI), tepatnya dikenalkan oleh Carl Hewitt dengan model aktor konkurennya. Dalam modelnya, Hewitt mengemukakan teori tentang suatu objek yang disebut dengan aktor yang mempunyai karakterisitik menguasai dirinya sendiri, interaktif, dan bisa merespon pesan yang datang dari objek lain yang sejenis. Dari berbagai penelitian yang berhubungan dengan hal di atas, lahirlah cabang ilmu besar yang merupakan turunan dari kecerdasan buatan, yaitu kecerdasan buatan tersebar (DAI) yang antara lain membawahi bidang penelitian Distributed Problem Solving (DPS), Parallel Artificial Intelligence (PAI), dan Multi-Agent System (MAS).


(20)

Multi-agent system (MAS) adalah sistem yang terdiri dari sejumlah agent yang berinteraksi satu sama lain untuk mencapai suatu tujuan. Agent itu sendiri adalah suatu entitas perangkat lunak komputer yang memungkinkan pengguna untuk mendelegasikan tugas kepadanya secara mandiri (autonomi). Agent memiliki pemecahan masalah sendiri (yang diimplementasikan dalam perangkat keras, perangkat lunak, atau kombinasi keduanya).

Berdasarkan pada karakteristiknya, agent dapat diklasifikasikan menjadi tujuh jenis. Di antaranya [16]:

a. Collaborative Agent: Agent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar-agent dalam kerangka Multi Agent System (MAS). b. Interface Agent: Agent yang memiliki kemampuan untuk berkolaborasi dengan

user, melakukan fungsi monitoring dan learning untuk memenuhi kebutuhan user.

c. Mobile Agent: Agent yang memiliki kemampuan untuk bergerak dari suatu tempat ke tempat lain, dan secara mandiri melakukan tugas ditempat barunya tersebut, dalam lingkungan jaringan komputer.

d. Information and Internet Agent: Agent yang memiliki kemampuan untuk menjelajah internet untuk melakukan pencarian, pemfilteran, dan penyajian informasi untuk user, secara mandiri. Atau dengan kata lain, memanage informasi yang ada di dalam jaringan Internet.

e. Reactive Agent: Agent yang memiliki kemampuan untuk bisa cepat beradaptasi dengan lingkungan baru dimana dia berada.

f. Hybrid Agent: Kita sudah mempunyai lima klasifikasi agent. Kemudian agent yang memiliki katakteristik yang merupakan gabungan dari karakteristik yang sudah kita sebutkan sebelumnya adalah masuk ke dalam hybrid agent.

g. Heterogeneous Agent System: Dalam lingkungan Multi Agent System (MAS), apabila terdapat dua atau lebih hybrid agent yang memiliki perbedaan kemampuan dan karakteristik, maka sistem MAS tersebut kita sebut dengan heterogeneous agent system.


(21)

2.4 Algoritma Boids

Algoritma boids adalah algoritma yang dikembangkan oleh Craig Reynolds yang pada awalnya ditujukan untuk mensimulasikan perilaku berkelompok dari burung, tapi algoritma ini juga dapat diterapkan untuk setiap lingkungan yang melibatkan kerumunan atau perilaku berkelompok [6]. Algoritma ini menggabungkan tiga pengaturan perilaku sederhana yang menggambarkan bagaimana sebuah manuver boid individu berdasarkan pada posisi dan kecepatan kawanan terdekatnya. Berikut adalah tiga pengaturan perilaku sederhana dari algoritma boids akan dibahas dibawah ini:

1. Alignment

Alignment merupakan kemampuan pengendalian perilaku untuk mensejajarkan dirinya dengan agen yang berada disekitarnya, tujuannya adalah untuk menuju kearah yang sama serta mencocokan kecepatan tiap agen yang berada di dalam kawanan tersebut. Berikut adalah ilustrasi dari alignment dapat dilihat pada gambar 2.1.

Gambar 2.1 Alignment Rule [7]

Alignment rule dapat dihitung dengan menggunakan rumus yang dapat dilihat pada persamaan 2.1 [8]:

( , ) ≤ 1 ∩ ( , ) ≥ 2 ⇒ = ∑ [2.1]

dimana : = jarak

= posisi tetangga X

= posisi boid B

1 = jarak 1 2 = jarak 2


(22)

= kecepatan yang dipengaruhi oleh aturan alignment = jumlah total tetangga dari boid B

= kecepatan dari boid X

2. Separation

Separation merupakan kemampuan pengendalian perilaku dalam mempertahankan atau memelihara jarak antar agen yang berdekatan, agar tidak terjadi benturan atau kepadatan. Berikut adalah ilustrasi dari separation dapat dilihat pada gambar 2.2.

Gambar 2.2 Separation Rule [7]

Separation rule dapat dihitung dengan menggunakan rumus yang dapat dilihat pada persamaan 2.2 [8]:

( , ) ≤ 1 ∩ ( , ) ≥ 2 ⇒ = ∑ ( , ) [2.2]

dimana : = jarak

= posisi tetangga X

= posisi boid B

1 = jarak 1 2 = jarak 2

= kecepatan yang dipengaruhi oleh aturan separation = Kecepatan dari boid X


(23)

3. Cohesion

Cohesion merupakan kemampuan pengendalian perilaku untuk bergerak menuju posisi rata-rata kawanan terdekatnya. Berikut adalah ilustrasi dari cohesion dapat dilihat pada gambar 2.3

Gambar 2.3 Cohesion Rule [7]

Cohesion rule dapat dihitung dengan menggunakan rumus yang dapat dilihat pada persamaan 2.3 [8]:

( , ) ≤ 1 ∩ ( , ) ≥ 2 ⇒ = ∑ [2.3]

dimana : = jarak

= posisi tetangga X = posisi boid B

1 = jarak 1 2 = jarak 2

= posisi rata-rata kawanan terdekat boid = posisi tetangga X


(24)

2.5 Steering Behavior

Steering behavior bertujuan untuk membantu autonomous characters bergerak secara realistis, dengan menggunakan kekuatan sederhana yang dikombinasikan untuk menghasilkan hasil yang lebih hidup seperti navigasi improvisasi di sekitar lingkungan karakter. Steering behavior tidak didasarkan pada strategi yang kompleks yang melibatkan perencanaan jalur atau perhitungan global, namun menggunakan informasi lokal (flockmates) [9]. Terdapat beberapa macam steering behavior, namun yang akan dijelaskan disini hanya salah satu dari beberapa jenis perilaku yang dapat membantu bagi individu dan pasangan, yaitu obstacle avoidance.

2.5.1 Obstacle Avoidance

Perilaku menghindari rintangan (obstacle avoidance behavior) memberikan kemampuan kepada karakter untuk dapat bermanuver di dalam lingkungan yang berantakan dengan menghindari hambatan yang ada di sekitarnya. Berikut adalah ilustrasi dari perilaku menghindari rintangan dapat dilihat pada gambar 2.4.

Gambar 2.4 Obsctacle Avoidance [10]

Impelentasi dari perilaku menghindari rintangan yang dijelaskan disini akan membuat asumsi yang sederhana bahwa karakter dan hambatan dapat diperkirakan sebagai sphere, meskipun konsep dasar dapat dengan mudah meluas ke bentuk model yang lebih tepat. Perlu diingat bahwa ini hanya berkaitan dengan menghindari rintangan, bukan untuk mendeteksi tabrakan.


(25)

2.6 Schooling pada ikan

Tingkah laku hewan dibedakan menjadi 2 macam, yaitu tingkah laku individual dan tingkah laku sosial. Tingkah laku individual dilakukan oleh satu hewan, misalnya burung elang mencari makan di muara sungai. Tingkah laku sosial terjadi karena adanya kerjasama diantara anggota-anggotanya. Contoh dari tingkah laku sosial adalah schooling pada ikan [11].

Tingkah laku sosial diawali dengan daya tarik, kemudian dilanjutkan dengan pendekatan. Setelah terjadi pendekatan dilanjutkan dengan agregasi/ pengelompokan, dan akhirnya dilakukan kerjasama. Tujuan dari tingkah laku sosial adalah untuk pemeliharaan baik individu, kelompok maupun spesies [11].

Ikan berenang secara berkelompok, hal ini jelas merupakan suatu bentuk organisasi sosial. Biasanya individu dalam suatu kelompok ikan terdiri atas satu spesies memiliki ukuran yang hampir sama, tidak memiliki pemimpin, serta semua individu melakukan aktivitas yang sama dalam waktu yang sama pula [12]. 2.7 ActionScript

ActionScript adalah bahasa pemrograman yang digunakan di Flash. ActionScript dapat digunakan untuk mengontrol objek di Flash, membuat navigasi dan elemen interaktif lain, serta membuat movie Flash dan aplikasi Web yang interaktif [13]. ActionScript mempunyai beberapa kesamaan dengan JavaScript, dengan begitu jika sebelumnya sudah akrab dengan JavaScript maka tidak akan kesulitan menguasasi ActionScript. Kesamaan antara kedua bahasa pemrograman ini misalnya, berbasis even, di JavaScript pemanggilan fungsi atau kode skrip di atribut dilakukan dengan menggunakan onClick, onLoad, unUnload, dan sebagainya, di ActionScript juga kode terpantik jiga terjadi sebuah even yang ditentukan, seperti tombol mouse ditekan atau dilepas, kursor masuk ke daerah tertentu, dan masih banyak lagi. Berikut adalah konsep-konsep dasar dari bahasa pemrograman ActionScript.


(26)

2.7.1 Objek dan Kelas

Objek adalah tipe data seperti suara, gambar, teks yang digunakan untuk mengontrol movie. Semua objek merupakan bagian dari suatu kelas. Sebelum objek dapat digunakan, kita perlu memberi nama pada objek tersebut, sama seperti tiap orang perlu memiliki nama supaya dapat dikenali. Misalnya Ballerina, Flintstone, dan Napi dapat dibedakan berdasar nama mereka. Orang, tanaman, dan gajah adalah contoh objek di dunia nyata. Sedangkan Ballerina, Flintstone, dan Napi adalah contoh objek dari kelas Manusia.

2.7.2 Metode dan Properti

Setiap objek selain berbeda dalam nama, juga berbeda dalam karakteristik. Setiap orang berbeda dalam berbagai karakteristik seperti jenis kelamin, tinggi badan, berat badan, dan warna rambut. Di dalam ActionScript karakteristik-karakteristik ini dinamakan properti. Misalnya kelas MovieClip memiliki berbagai properti seperti _height, _width, dan _rotation yang mengukur dimensi dan orientasi dari objek movie klip tersebut.

Objek juga melakukan suatu tugas. Seseorang dapat tidur, bekerja, makan. Pekerjaan ini di dalam ActionScript dinamakan metode. Misalnya kelas Sound memiliki metode setVolume yang dapat membuat suara lebih keras atau lebih lembut.

2.8 Pemrograman Berorientasi Objek

Metodologi berorientasi objek adalah suatu strategi pembangunan perangkat lunak yang mengorganisasikan perangkat lunak sebagai kumpulan objek yang berisi data dan operasi yang diberlakukan terhadapnya. Metodologi berorientasi objek merupakan suatu cara bagaimana sistem perangkatl unak berorientasi objek didasarkan pada penerapan prinsip-prinsip pengelolaan kompleksitas. Metode berorientasi objek meliputi rangkaian aktivias analisis berorientasi objek, perancangan berorientasi objek, pemrograman berorientasi objek, dan pengujian berorientasi objek.


(27)

Pada saat ini, metode berorientasi objek banyak dipilih karena metodologi lama banyak menimbulkan masalah seperti adanya kesulitan pada saat mentransformasi hasil dari suatu tahap pengembangan ke tahap berikutnya, misalnya pada metode pendekatan terstruktur, jenis aplikasi yang dikembangkan saat ini berbeda dengan masa lalu. Aplikasi yang dikembangkan pada saat ini sangat beragam (aplikasi bisnis, real-time, utility, dan sebagainya) dengan platform yang berbeda-beda, sehingga menimbulkan tuntutan kebutuhan metodologi pengembangan yang dapat mengakomodasi ke semua jenis aplikasi tersebut [3].

Keuntungan menggunakan metodologi berorientasi objek adalah sebagai berikut [3]:

1. Meningkatkan produktivitas

Karena kelas dan objek yang ditemukan dalam suatu masalah masih dapat dipakai ulang untuk masalah lainnya yang melibatkan objek tersebut (reusable).

2. Kecepatan pengembangan

Karena sistem yang dibangun dengan baik dan benar pada saat analisis dan perancangan akan menyebabkan berkurangnya kesalahan pada saat pengkodean.

3. Kemudahan pemeliharaan

Karena dengan model objek, pola-pola yang cenderung tetap dan stabil dapat dipisahkan dan pola-pola yang mungkin sering berubah-ubah. 4. Adanya konsistensi

Karena sifat pewarisan dan penggunaan notasi yang sama pada saat analisis, perancangan maupun pengkodean.

5. Meningkatkan kualitas perangkat lunak

Karena pendekatan pengembangan lebih dekat dengan dunia nyata dan adanya konsistensi pada saat pengembangannya, perangkat lunak yang dihasilkan akan mampu memenuhi kebutuhan pemakai serta mempunyai sedikit kesalahan.


(28)

2.9 UML (Unified Modeling Language)

UML adalah bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek. UML diperlukan karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung [3].

2.9.1 Diagram UML

Pada UML 2.3 terdiri dari 13 macam diagram yang dikelompokkan dalam 3 kategori [3]. Pembagian kategori dan macam-macam diagram tersebut dapat dilihat pada gambar 2.5

Behavior Diagrams

Composite structure diagrams

UML 2.3 Diagram

Structure

Diagrams IntractionDiagrams

Class diagram Object diagram Component diagram Package diagram Deployment diagram Use case diagram Activity diagram State machine diagram Sequence diagram Communication diagram Interaction overview diagram Timing diagram


(29)

Berikut ini adalah penjelasan singkat dari pembagian kategori tersebut:

a. Structure diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan.

b. Behavior diagrams yaitu kumpulan diagram yang digunakan untuk

menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.

c. Interaction diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antar subsistem pada suatu sistem.

Penjelasan tentang masing-masing diagram adalah sebagai berikut:

1. Class Diagram

Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi.

2. Object Diagram

Diagram objek menggambarkan struktur sistem dari segi penamaan objek dan jalannya objek dalam sistem. Diagram objek juga berfungsi untuk mendefinisikan contoh nilai atau isi dari atribut tiap kelas.

3. Component Diagram

Diagram komponen atau component diagram dibuat untuk menunjukan organisasi dan ketergantungan diantara kumpulan komponen dalam sebuah sistem. Diagram komponen fokus pada komponen sistem yang dibutuhkan dan ada di dalam sistem

4. Composite Structure Diagram

Diagram ini dapat digunakan untuk menggambarkan struktur dari bagian-bagian yang saling terhubung maupun mendeskripsikan struktur pada saat berjalan (runtime) dari instance yang saling terhubung.

5. Package Diagram

Package diagram menyediakan cara mengumpulkan elemen-elemen yang saling terkait dalam diagram UML. Hampir semua diagram dalam UML dapat dikelompokkan menggunakan package diagram.


(30)

6. Deployment Diagram

Deployment diagram menunjukkan konfigurasi komponen dalam proses eksekusi aplikasi.

7. Use Case Diagram

Use case diagram merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat.

8. Activity Diagram

Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak.

9. State Machine Diagram

State machine diagram atau state chart diagram digunakan untuk menggambarkan perubahan status atau transisi status dari sebuah mesin atau sistem atau objek.

10. Sequence Diagram

Diagram sekuen menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek.

11. Communication Diagram

Diagram komunikasi menggambarkan interaksi antar objek/bagian dalam bentuk urutan pengiriman pesan. Diagram komunikasi merepresentasikan informasi yang diperoleh dari diagram kelas, diagram sekuen, dan diagram use case untuk mendeskripsikan gabungan antara struktur statis dan tingkah laku dinamis dari suatu sistem.

12. Timing Diagram

Timing diagram merupakan diagram yang fokus pada penggambaran terkait batasan waktu. Timing diagram digunakan untuk menggambarkan tingkah laku sistem dalam periode waktu tertentu.


(31)

13. Interaction Overview Diagram

Interaction overview diagram berfungsi untuk menggambarkan sekumpulan urutan aktivitas. Interaction overview diagram adalah bentuk aktivitas diagram yang setiap titik merepresentasikan diagram interaksi.


(32)

(33)

25

BAB 3

ANALISIS DAN KEBUTUHAN ALGORITMA

3.1 Analisis Masalah

Analisis masalah adalah langkah awal dari analisis sistem. Langkah ini diperlukan untuk mengetahui permasalahan apa saja yang terjadi pada sistem, oleh karena itu langkah pertama adalah menganalisis masalah yang muncul. Masalah yang muncul yaitu :

1. Bagaimana mengimplementasikan algoritma boids untuk perilaku ikan berkelompok pada permainan menjaring ikan?

2. Bagaimana pengaruh pengaturan perilaku yang diterapkan pada perilaku ikan berkelompok pada permainan menjaring ikan ini?

3.2 Analisis Perilaku Ikan

Perilaku ikan berkelompok merupakan perilaku sosial yang dipengaruhi oleh beberapa faktor. Salah satu faktornya adalah perlindungan diri dari pemangsa atau predator. Perilaku sosial ikan berkelompok tidak lepas dari salah satu perilaku alami dari ikan yaitu ikan akan bergerak menjauh atau menghindar dari pemangsa atau predator, maupun jaring yang merupakan ancaman bagi ikan.

Ikan yang bergerak secara berkelompok bergerak kearah yang sama bersama ikan lainnya, baik itu berputar di satu titik ataupun berpindah tempat. Dalam pergerakannya, ikan akan menjaga keteraturan geraknya untuk menghindari terjadinya tabrakan dengan ikan lain.

3.2.1 Analisis Perilaku Ikan dalam Game

Perilaku ikan berkelompok dalam permainan menjaring ikan ini merupakan implementasi dari algoritma boids. Perilaku ikan dalam permainan menjaring ikan ini dipengaruhi oleh tiga aturan dari algoritma boids yaitu alignment, separation

dan cohesion.

Perilaku ikan yang dapat mensejajarkan diri dan bergerak menuju ke arah yang sama merupakan pengaruh dari aturan alignment. Perilaku ikan yang dapat mempertahankan atau memelihara jarak agar tidak terjadi benturan atau kepadatan


(34)

merupakan pengaruh dari aturan separation. Perilaku ikan yang dapat bergerak menuju posisi rata-rata dari kawanannya merupakan pengaruh dari aturan cohesion. Perilaku ikan yang dapat bergerak menghindari jaring ketika jaring digerakan oleh pemain merupakan pengaruh dari pengaturan perilaku obstacle avoidance. 3.3 Analisis Game

Permainan yang dibangun ini adalah permainan berbasis desktop yang berjudul menjaring ikan dengan genre arcade, permainan ini merupakan permainan yang akan dibuat berupa prototype.

3.3.1 Gameplay

Dalam permainan ini, ikan akan berenang secara berkelompok. Pemain harus menjaring ikan untuk mendapatkan nilai. Pergerakan jaring dapat dikontrol dengan menggunakan mouse, pemain harus mengumpulkan poin sebanyak-banyakya sebelum permainan berakhir. Permainan akan berakhir jika waktu yang tersedia sudah habis.

3.3.2 Waktu

Waktu yang akan disediakan di dalam prototype permainan menjaring ikan ini adalah 30 detik. Waktu akan mulai dihitung mundur saat pemain menekan tombol mulai.

3.3.3 Skor

Aturan penilaian dalam prototype permainan menjaring ikan ini adalah pemain akan mendapatkan 5 poin untuk setiap ikan yang ditangkap, tidak ada nilai maksimum untuk pemain karena pemain harus mengumpulkan poin sebanyak-banyaknya.

3.4 Analisis Masukan

Algoritma boids yang menggabungkan tiga pengaturan perilaku sederhana (separation, alignment dan cohesion) memiliki beberapa masukan dasar, yaitu :

1. Kecepatan

Merupakan nilai untuk kecepatan untuk setiap ikan dengan satuan px/s Kecepatan minimun untuk ikan bergerak adalah 2.0 px/s dan kecepatan maksimum untuk ikan bergerak adalah 8.0 px/s.


(35)

2. Jarak

Merupakan nilai jarak antara ikan dengan tetangganya dan jarak antara ikan dengan jaring (obstacle).

3.5 Flowchart Algoritma Boids

Dalam game yang akan dibangun, penggunaan algoritma boids hanya untuk pergerakan ikan secara berkelompok. Berikut adalah flowchart algoritma boids.

1. Flowchart algoritma boids


(36)

2. Flowchartseparation rule

Gambar 3.2 FlowchartSeparation Rule

3. Flowchartalignment rule


(37)

4. Flowchartcohesion rule


(38)

3.6 Analisis Algoritma Boids

Algoritma boids dalam permainan menjaring ikan ini digunakan untuk mensimulasikan perilaku berkelompok pada ikan. Algoritma boids pada permainan menjaring ikan ini diterapkan pada ikan selaku NPC (Non Playable Character). Pada awal kemunculan ikan, ikan akan muncul pada posisi acak dengan nilai kecepatan yang berbeda-beda. Contoh kemunculan ikan dengan nilai kecepatan acak dapat dilihat pada gambar 3.5 dibawah ini.

Gambar 3.5 Posisi ikan saat pertama kali muncul dengan kecepatan acak. Selanjutnya pergerakan ikan akan dipengaruhi oleh tiga aturan algoritma boids

yaitu separation, alignment dan cohesion. Masing-masing dari tiga aturan ini akan saling mempengaruhi kecepatan dan arah gerak dari setiap ikan. Berikut adalah contoh kasus dari algoritma boids :


(39)

1. Alignment rule

Di dalam aturan alignment, ikan akan menyelaraskan kecepatannya dengan ikan lain yang berada di dekatnya. Dalam contoh kasus alignment rule ini, ikan 3 akan menyelaraskan kecepatan dengan tetangganya yaitu ikan 1, ikan 5 dan ikan 7. Maka pergerakan ikan 3 selanjutnya akan dipengaruhi oleh aturan alignment, aturan alignment dapat dihitung dengan menggunakan persamaan 2.1 yaitu :

( , ) ≤ 1 ∩ ( , ) ≥ 2 ⇒ = 1

Diketahui : d(P1, P3) = 4 px V1 = 3 px/s V7 = 2 px/s

d(P2, P3) = 6 px V2 = 2 px/s d1 = 5 px

d(P4, P3) = 7 px V3 = 3 px/s d2 = 0 px

d(P5, P3) = 2 px V4 = 2 px/s

d(P6, P3) = 7 px V5 = 3 px/s

d(P7, P3) = 2 px V6 = 4 px/s Ditanyakan : Var = … ?

Jawab :

Diketahui bahwa ikan yang memenuhi syarat untuk dilakukan perhitungan

alignment adalah ikan 1, ikan 5 dan ikan 7, yaitu : Ikan 1 : 4px ≤ 5px ∩ 4px ≥ 0px

Ikan 5 : 2px ≤ 5px ∩ 2px ≥ 0px Ikan 7 : 2px ≤ 5px ∩ 2px ≥ 0px maka dapat dilakukan perhitungan :

=1

= V1 + V5 + V7

= 3 + 3 + 2

= 8


(40)

Perubahan kecepatan ikan 3 yang dipengaruhi oleh aturan alignment dapat dilihat pada tabel 3.1.

Tabel 3.1 Perubahan kecepatan setelah dipengaruhi aturan alignment

Vg V awal 3 px/s

Var 2,67 px/s

Maka kecepatan ikan 3 yang baru setelah dipengaruhi oleh aturan alignment

adalah 2.67px/s yang asalnya adalah 3px/s. 2. Separation rule

Di dalam aturan separation, ikan akan mempertahankan atau memelihara jarak agar tidak terjadi benturan atau kepadatan. Dalam contoh kasus alignment rule ini, ikan 3 akan mempertahankan atau memelihara jarak dari tetangganya yaitu

ikan 1, ikan 5 dan ikan 7. Maka pergerakan ikan 3 selanjutnya akan dipengaruhi oleh aturan separation, aturan separation dapat dihitung dengan menggunakan persamaan 2.2 yaitu :

( , ) ≤ 1 ∩ ( , ) ≥ 2 ⇒ = ( , )+

Diketahui : d(P1, P3) = 4 px V1 = 3 px/s V7 = 2 px/s

d(P2, P3) = 6 px V2 = 2 px/s d1 = 5 px

d(P4, P3) = 7 px V3 = 3 px/s d2 = 0 px

d(P5, P3) = 2 px V4 = 2 px/s

d(P6, P3) = 7 px V5 = 3 px/s

d(P7, P3) = 2 px V6 = 4 px/s Ditanyakan : Vsr = … ?


(41)

Diketahui bahwa ikan yang memenuhi syarat untuk dilakukan perhitungan

separation adalah ikan 1, ikan 5 dan ikan 7, yaitu : Ikan 1 : 4px ≤ 5px ∩ 4px ≥ 0px

Ikan 5 : 2px ≤ 5px ∩ 2px ≥ 0px Ikan 7 : 2px ≤ 5px ∩ 2px ≥ 0px maka dapat dilakukan perhitungan :

= ( , )+

= ( 5, 3) +5 + 3 ( 1, 3) +1 + 3 ( 7, 3)7 + 3 =3 + 32 +3 + 34 +2 + 32

=64 +62 +52 =64 +124 +104 =284

= /

Perubahan kecepatan ikan 3 yang dipengaruhi oleh aturan separation dapat dilihat pada tabel 3.2.

Tabel 3.2 Perubahan kecepatan setelah dipengaruhi aturan separation

Vg V awal 3 px/s

Var 7 px/s

Maka kecepatan ikan 3 untuk menghindari benturan atau kepadatan setelah dipengaruhi oleh aturan separation adalah 7px/s yang asalnya adalah 3px/s.


(42)

3. Cohesion rule

Di dalam aturan cohesion, ikan akan bergerak menuju posisi rata-rata kawanan terdekatnya. Dalam contoh kasus cohesion rule, ikan 3 akan bergerak menuju posisi rata-rata dari ikan 1, ikan 5 dan ikan 7. Maka pergerakan ikan 3

selanjutnya akan dipengaruhi aturan cohesion, aturan cohesion dapat dihitung dengan menggunakan persamaan 2.3 yaitu :

( , ) ≤ 1 ∩ ( , ) ≥ 2 ⇒ =

Diketahui : d(P1, P3) = 4 px V1 = 3 px/s V7 = 2 px/s P4 = (6,1)

d(P2, P3) = 6 px V2 = 2 px/s d1 = 5 px P5 = (2,4)

d(P4, P3) = 7 px V3 = 3 px/s d2 = 0 px P6 = (6,5)

d(P5, P3) = 2 px V4 = 2 px/s P1 = (2,2) P7 = (4,4)

d(P6, P3) = 7 px V5 = 3 px/s P2 = (4,6)

d(P7, P3) = 2 px V6 = 4 px/s P3 = (3.3) Ditanyakan : Pavg = … ?

Jawab :

Diketahui bahwa ikan yang memenuhi syarat untuk dilakukan perhitungan

cohesion adalah ikan 1, ikan 5 dan ikan 7, yaitu : Ikan 1 : 4px ≤ 5px ∩ 4px ≥ 0px

Ikan 5 : 2px ≤ 5px ∩ 2px ≥ 0px Ikan 7 : 2px ≤ 5px ∩ 2px ≥ 0px maka dapat dilakukan perhitungan :

=

= 5+ 1+ 7 =(2,4)3 +(2,2)3 +(4,4)3 =(8,10)3


(43)

Perpindahan posisi ikan 3 yang dipengaruhi oleh aturan cohesion dapat dilihat pada tabel 3.3.

Tabel 3.3 Perubahan posisi setelah dipengaruhi aturan cohesion

Pg P awal (3,3) P avg (2.67,3.33)

Maka ikan 3 akan bergerak menuju posisi rata-rata tetangganya terdekatnya yaitu ke titik (2.67, 3.33) yang asalnya berada pada titik (3,3).

Gambar 3.6 Ikan bergerak menuju posisi rata-rata tetangganya.

Pada dasarnya setiap ikan akan melakukan aturan alignment, separation dan

cohesion secara terus menerus. Perhitungan diatas merupakan perhitungan dengan 1x iterasi.

4. Kesimpulan

Berdasarkan hasil analisis di atas, maka dapat disimpulkan bahwa pergerakan ikan akan dipengaruhi oleh tiga aturan dari algoritma boids, yaitu alignment,

separation dan cohesion. Ini membuktikan bahwa algoritma boids dapat diterapkan pada simulasi pergerakan ikan secara berkelompok.


(44)

3.7 Analisis Kebutuhan Non Fungsional

Analisis kebutuhan non fungsional merupakan analisis untuk menentukan spesifikasi kebutuhan sistem. Spesifikasi kebutuhan sistem meliputi analisis perangkat keras atau hardware, analisis perangkat lunak atau software, dan analisis pengguna.

3.7.1 Analisis Kebutuhan Perangkat Lunak

Analisis perangkat lunak digunakan untuk mengetahui spesifikasi perangkat lunak yang digunakan untuk menjalankan permainan menjaring ikan, spesifikasi perangkat lunak yang digunakan untuk menjalankan permainan ini adalah sebagai berikut :

1. Sistem Operasi Windows 7 Ultimate 32 bit 2. Adobe Flash CS 4

3. Corel Draw X4

Sedangkan perangkat lunak yang dibutuhkan untuk memainkan permainan ini adalah adobe flash player, dengan spesifikasi sebagai berikut [14] :

1. Microsoft ® Windows ® XP (32 bit), Windows Server 2008 (32 bit), Windows Vista ® (32 bit), Windows 7 (32 bit dan 64 bit), Windows 8 (32 bit dan 64 bit), atau Windows Server 2012 (64 bit)

2. Internet Explorer 8.0 atau yang lebih baru, Mozilla Firefox 17 atau yang lebih baru, Google Chrome, atau Opera 11

3.7.2 Analisis Kebutuhan Perangkat Keras

Analisis perangkat keras digunakan untuk mengetahui spesifikasi perangkat keras yang digunakan untuk menjalankan permainan menjaring ikan, perangkat keras yang digunakan untuk menjalankan permainan ini adalah :

1. Processor @ 1.83GHz (2 CPUs) 2. Memory (RAM) 1536MB 3. Display Memory 256 MB

4. Display Mode 1280 x 800 (32 bit) (60Hz) 5. Input DeviceMouse dan Keyboard


(45)

Sedangkan untuk spesifikasi perangkat keras yang dibutuhkan untuk dapat memainkan permainan ini adalah sebagai berikut [14] :

1. Procesor 2.33GHz atau prosesor x86-kompatibel lebih cepat.

2. 512MB RAM (1GB RAM direkomendasikan untuk netbook); 128MB

memori grafis 3.7.3 Analisis Pengguna

Analisis pengguna digunakan untuk mengetahui spesifikasi pengguna agar dapat memainkan permainan ini. Spesifikasi minimal bagi pengguna dapat dilihat pada tabel 3.4.

Tabel 3.4 Spesifikasi Pengguna Karakteristik Fisik Pengguna

Umur 18 tahun keatas

Gender Laki-laki dan Perempuan

Disabilities Tidak buta dan tidak mempunyai cacat fisik seperti cacat tangan

Pengetahuan dan Pengalaman Pengguna

Computer literacy Dapat menggunakan dan mengoperasikan komputer

Education 18 tahun keatas 3.8 Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional merupakan analisis untuk menggambarkan sistem yang akan dibangun. Analisis kebutuhan fungsional dimodelkan dengan menggunakan UML, tahap-tahap pemodelannya antara lain adalah use case diagram, use case scenario, activitydiagram, classdiagram dan sequencediagram.


(46)

3.8.1 Use Case Diagram

Usecase diagram merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Usecase mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat [2]. Berikut adalah use case diagramprototype permainan menjaring ikan dapat dilihat pada gambar 3.7.

Gambar 3.7 Use Case Diagram Prototype Permainan Menjaring Ikan 3.8.2 Definisi Aktor

Definisi aktor berfungsi untuk menjelaskan aktor yang terdapat pada use case diagram. Deskripsi pendefinisian aktor pada prototype permainan menjaring ikan dapat dilihat pada tabel 3.5.

Tabel 3.5 Tabel definisi aktor pada prototype permainan menjaring ikan

No Aktor Deskripsi

1 Pemain Orang yang memainkan permainan

3.8.3 Definisi Use Case

Definisi use case berfungsi untuk menjelaskan proses yang terdapat pada use case diagram. Deskripsi pendefinisian use case pada prototype permainan menjaring ikan dapat dilihat pada tabel 3.6.


(47)

Tabel 3.6 Tabel definisi use case pada prototype permainan menjaring ikan

No Aktor Deskripsi

1 Memilih Menu Mulai Simulasi Proses untuk memulai simulasi dari pergerakan ikan

2 Menggerakan Obstacle Proses untuk menggerakan obstacle

3 Memilih Menu Tentang Proses untuk menampilkan informasi aplikasi

3.8.4 Use Case Scenario

Use case Scenario mendeskripsikan urutan langkah-langkah dalam proses bisnis baik yang dilakukan aktor terhadap sistem maupun yang dilakukan oleh sistem terhadap aktor. Berdasarkan use case diagram, maka use case scenario untuk

prototype permainan menjaring ikan terdiri dari mulai permainan, menggerakan

obstacle dan tentang. Berikut adalah use case scenario pada prototype permainan menjaring ikan :

1. Use Case Scenario Mulai Simulasi

Use case scenario ini menjelaskan interaksi antara aktor pemain dengan use case mulai permainan yang dijelaskan pada tabel 3.7.

Tabel 3.7 Tabel UseCase Scenario Mulai Simulasi Identifikasi

Nomor 1

Nama Mulai Simulasi Tujuan Memulai simulasi

Deskripsi Proses untuk memulai simulasi dari pergerakan ikan

Aktor Pemain

Skenario Utama Kondisi awal Pemain berada di layar simulasi

Aksi Aktor Reaksi Sistem

a. Memilih menu mulai

simulasi

b. Menampilkan jendela simulasi c. Ikan bergerak bebas di layar


(48)

d. Ikan akan menghitung jarak dengan

tetangganya sebagai kondisi untuk

melakukan aturan alignment, separation dan

cohesion.

e. Jika kondisi terpenuhi untuk melakukan aturan alignment, maka ikan akan melakukan perhitungan dari aturan alignment dengan cara menghitung jumlah tetangganya yang ada di dalam jarak yang telah ditentukan dan menghitung rata-rata kecepatan tetangga.

f. Ikan bergerak dengan menyelaraskan

kecepatan (alignment) dengan tetangganya. g. Jika kondisi tidak terpenuhi untuk melakukan

perhitungan dari aturan alignment, maka ikan tidak akan melakukan aturan alignment. h. Jika kondisi terpenuhi untuk melakukan

aturan separation, maka ikan akan

melakukan perhitungan dari aturan

separation dengan cara menghitung jumlah tetangganya yang ada di dalam jarak yang

telah ditentukan serta menghitung

kecepatannya dengan kecepatan tetangganya dan menghitung jarak dengan tetangganya. i. Ikan bergerak menjauh dari tetangganya

(separation).

j. Jika kondisi tidak terpenuhi untuk melakukan perhitungan dari aturan separation, maka ikan tidak akan melakukan aturan separation. k. Jika kondisi terpenuhi untuk melakukan aturan cohesion, maka ikan akan melakukan perhitungan dari aturan cohesion dengan cara


(49)

menghitung jumlah tetangganya yang ada di dalam jarak yang telah ditentukan, lalu ikan akan menghitung posisi rata-rata dari tetangganya.

l. Ikan akan bergerak menuju posisi rata-rata tetangganya (cohesion).

m.Jika kondisi tidak terpenuhi untuk melakukan perhitungan dari aturan cohesion, maka ikan tidak akan melakukan aturan cohesion. Kondisi Akhir Ikan bergerak dengan aturan alignment, separation dan

cohesion.

2. Use Case Scenario Menggerakan Obstacle

Use case scenario ini menjelaskan interaksi antara aktor pemain dengan use case menggerakan obstacle yang dijelaskan pada tabel 3.8.

Tabel 3.8 Tabel UseCase Scenario Menggerakan Obstacle

Identifikasi

Nomor 2

Nama Menggerakan Obstacle

Tujuan Menunjukan penerapan dari perilaku menghindari rintangan Deskripsi Proses untuk menggerakan obstacle

Aktor Pemain

Skenario Utama Kondisi awal Pemain berada di layar simulasi

Aksi Aktor Reaksi Sistem

a. Ikan bergerak bebas di layar dengan tiga

aturan algoritma boids (alignment,

separation, dan cohesion) b. Menggerakan Obstacle


(50)

c. Ikan akan menghitung jarak dengan obstacle

sebagai kondisi untuk dilakukan

penghindaran.

d. Jika kondisi terpenuhi, maka ikan akan bergerak menjauh dari obstacle.

e. Jika kondisi tidak terpenuhi, maka ikan akan bergerak bebas kembali.

Kondisi Akhir Ikan bergerak menghindari obstacle

3. Use Case Scenario Tentang

Use case scenario ini menjelaskan interaksi antara aktor pemain dengan use case tentang yang dijelaskan pada tabel 3.9.

Tabel 3.9 Tabel UseCase Scenario Tentang Identifikasi

Nomor 3

Nama Tentang

Tujuan Menampilkan informasi aplikasi

Deskripsi Proses untuk menampilkan informasi aplikasi

Aktor Pemain

Skenario Utama Kondisi awal Pemain berada di layar utama

Aksi Aktor Reaksi Sistem

a. Memilih menu tentang

b. Menampilkan informasi aplikasi Kondisi Akhir Menampilkan informasi aplikasi

3.8.5 Activity Diagram

Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak [2]. Berikut adalah activity diagram dari prototype permainan menjaring ikan:


(51)

1. Activity Diagram Mulai

Pada proses ini sistem akan memulai simulasi pergerakan ikan. Activity diagram

mulai dapat dilihat pada gambar 3.8.


(52)

2. Activity Diagram Menggerakan Obstacle

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas menggerakan obstacle yang dapat dilihat pada gambar 3.9.

Gambar 3.9 Activity Diagram Menggerakan Obstacle

3. Activity Diagram Keluar

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas tentang yang dapat dilihat pada gambar 3.10.


(53)

3.8.6 Sequence Diagram

Diagram sekuen menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek [2]. Berikut adalah sequence diagram dari prototype permainan menjaring ikan:

1. Sequence Diagram Mulai


(54)

2. Sequence Diagram Menggerakan Obstacle

Gambar 3.12 Sequence Diagram Menggerakan Obstacle

3. Sequence Diagram Keluar


(55)

3.8.7 Class Diagram

Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi. Berikut adalah class diagram dari prototype permainan menjaring ikan dapat dilihat pada gambar 3.14.


(56)

3.9 Perancangan Sistem

Perancangan sistem merupakan kegiatan untuk merancang aplikasi yang akan dibangun, tahapannya dimulai dari perancangan struktur menu, perancangan antarmuka, perancangan pesan dan jaringan semantik dari permainan menjaring ikan.

3.9.1 Perancangan Kelas

Perancangan kelas merupakan hasil identifikasi dari kelas-kelas yang terdapat pada diagram kelas. Berikut perancangan kelas dari prototype permainan menjaring ikan dapat dilihat pada tabel 3.10.

Tabel 3.10 Perancangan kelas prototype permainan menjaring ikan

No Nama Kelas Tipe Kelas Deskripsi

1 main Control Kelas ini berfungsi untuk menangani kelas-kelas yang berfungsi membangkitkan halaman.

2 splash Boundary Kelas ini berfungsi untuk membangkitkan halaman menu utama sebagai jembatan interaksi antara pengguna dan aplikasi. 3 about Boundary Kelas ini berfungsi untuk membangkitkan

halaman tentang.

4 simulasi Boundary Kelas in berfungsi untuk membangkitkan halaman simulasi.

5 FlockDemo Control Kelas ini berisi method yang berfungsi untuk menampilkan ikan dan obstacle ke halaman simulasi.

6 AbstractDemo Control Kelas ini berfungsi untuk menangai konfigurasi dari demo algoritma boids. 7 Boid Entity Kelas ini berisi method untuk menangani

operasi dari algoritma Boids.

3.9.2 Perancangan Stuktur Data

Perancangan struktur data merupakan hasil identifikasi dari variabel-variabel. Berikut perancangan stuktur data entity boid dari prototype permainan menjaring ikan dapat dilihat pada tabel 3.11.


(57)

Tabel 3.11 Perancangan Stuktur Data Entity Boid No Variabel Tipe Data Keterangan 1 _acceleration Vector3D Variabel akselerasi dari ikan 2 _boundsCentre Vector3D Variabel titik pusat dari ikan

3 _boundsRadius Number Variabel jarak maksimum dari ikan untuk dapat bergerak dari variabel _boundsCentre

4 _distance Number Variabel jarak di sekitar ikan dimana ikan akan menghitung rotasi untuk bergerak

5 _drawScale Number Variabel untuk menciptakan grafis sederhana untuk mewakili boids

6 _edgeBehavior String Variabel untuk perilaku yang akan mengubah kemudi

7 _lookAtTarget Boolean Variabel untuk mengatur arah ikan untuk bergerak

8 _matrix Matrix3D Variabel yang digunakan untuk merender data ikan

9 _maxForce Number Variabel dari gaya maksimum ikan ketika menghitung kekuatan kemudi

10 _maxForceSQ Number Variabel dari nilai _maxForce dikali nilai _maxForce

11 _maxSpeed Number Variabel kecepatan maksimum dari ikan

12 _maxSpeedSQ Number Variabel dari nilai _maxSpeed dikali nilai _maxSpeed

13 _oldPosition Vector3D Variabel posisi dari ikan 14 _position Vector3D Variabel posisi dari ikan

16 _renderData DisplayObject Variabel yang digunakan untuk membuat ikan 17 _screenCoords Point Variabel dari sebuah objek yang mewakili posisi

x dan y ikan pada layar

18 _steeringForce Vector3D Variabel pengaturan perilaku dari ikan 19 _velocity Vector3D Variabel kecepatan dari ikan saat ini

20 _wanderDistance Number Variabel jarak dari ikan untuk menghitung rotasi 21 _wanderPhi Number Variabel yang menghasilkan untuk ikan dapat

bergerak secara bebas

22 _wanderPsi Number Variabel yang menghasilkan untuk ikan dapat bergerak secara bebas

23 _wanderRadius Number Variabel dari jari-jari lingkaran yang digunakan untuk menghitung perilaku dari ikan

24 _wanderStep Number Variabel dari ikan yang dapat berubah pada setiap langkah

25 _wanderTheta Number Variabel yang menghasilkan untuk ikan dapat bergerak secara bebas


(58)

3.9.3 Perancangan Struktur Menu

Perancangan struktur menu dirancang untuk menyediakan fungsi-fungsi yang akan digunakan dalam permainan menjaring ikan dapat dilihat pada gambar 3.15.

Gambar 3.15 Rancangan Struktur Menu 3.9.4 Perancangan Antarmuka

Perancangan antarmuka bertujuan untuk memberikan gambaran tentang aplikasi yang akan dibangun, sehingga akan mempermudah dalam mengimplementasikan aplikasi serta akan memudahkan pembuatan aplikasi. 1. Perancangan antarmuka menu


(59)

2. Perancangan antarmuka simulasi

Gambar 3.17 Rancangan antarmuka simulasi 3. Perancangan antarmuka tentang


(60)

3.9.5 Jaringan Semantik

Untuk mengetahui keterhubungan dari setiap tampilan yang dibuat dapat menggunakan jaringan semantik. Berikut adalah jaringan semantik pada prototype

permainan menjaring ikan dapat dilihat pada gambar 3.19.


(61)

53

BAB

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Implementasi merupakan tahap penciptaan perangkat lunak dan juga tahap kelanjutan dari perancangan aplikasi. Selanjutnya dilakukan uji kelayakan terhadap aplikasi yang telah dibangun sehingga dapat memberikan masukan demi berkembangnya aplikasi yang telah dibangun. Tahap ini merupakan tahap dimana aplikasi siap untuk dioperasikan, tahap ini terdiri dari penjelasan mengenai lingkungan implementasi, baik itu lingkungan perangkat keras, lingkungan perangkat lunak, serta implementasi aplikasi.

4.1.1 Implementasi Perangkat Keras

Perangkat keras yang digunakan untuk menjalankan permainan menjaring ikan dapat dilihat pada tabel 4.1.

Tabel 4.1 Tabel Spefisikasi Perangkat Keras

No Perangkat Keras Keterangan

1 Processor Kecepatan @ 1.83GHz (2 CPUs)

2 Memory (RAM) 1536MB

3 Display Memory 256 MB

4 Display Mode 1280 x 800 (32 bit) (60Hz)

5 Keyboard Standard

6 Mouse Standard

4.1.2 Implementasi Perangkat Lunak

Adapun spesifikasi perangkat lunak yang digunakan untuk menjalankan permainan menjaring ikan dapat dilihat pada tabel 4.2.

Tabel 4.2 Tabel Spefisikasi Perangkat Lunak

No Perangkat Lunak Spesifikasi

1 Sistem Operasi Windows 7


(62)

✁ ✂ ✄ ✂☎ Implementasi Aplikasi

Aplikasi permainan menjaring ikan merupakan sebuah simulasi dari perilaku ikan berkelompok yang merupakan implementasi dari algoritma boids dengan tiga aturan sederhananya yaitu alignment, separation dan cohesion, selain itu diterapkan juga perilaku obstacle avoidance untuk ikan agar dapat bergerak menghindari jaring. Permainan menjaring ikan ini dapat dijalankan pada sistem operasi windows.

4.1.4 Implementasi Antarmuka

Antarmuka merupakan sarana interakasi antara pengguna dengan sistem operasi. Berikut ini merupakan antarmuka yang ada pada permainan menjaring ikan:

1. Antarmuka Menu Utama

Antarmuka menu utama merupakan tampilan awal ketika aplikasi dijalankan. Tampilan antarmuka menu utama dapat dilihat pada gambar 4.1.


(63)

2. Antarmuka Mulai Simulasi

Antarmuka mulai simulasi merupakan antarmuka untuk menampilkan simulasi dari algoritma boids. Tampilan antarmuka mulai permainan dapat dilihat pada gambar 4.2.

Gambar 4.2 Antarmuka Mulai Simulasi 3. Antarmuka Tentang

Antarmuka Tentang merupakan tampilan tentang pembuat program. Tampilan antarmuka tentang dapat dilihat pada gambar 4.3.


(64)

✆ ✝ ✞ Pengujian

Pengujian bertujuan untuk menemukan kekurangan atau kesalahan pada perangkat lunak, serta untuk mengetahui perangkat lunak yang dibuat sudah memenuhi kriteria yang sesuai dengan perancangan perangkat lunak tersebut. Adapun pengujian yang akan dilakukan adalah pengujian alpha.

4.2.1 Pengujian Alpha

Pengujian alpha merupakan pengujian program yang dilakukan oleh pembuat game ataupun orang - orang yang terlibat didalamnya. pengujian alfa hanya untuk sirkulasi internal dan masalah (error) atau ketidak lengkapan yang terdapat dalam game. Proses pengujian terhadap aplikasi akan menggunakan pengujian black box

dan pengujian white box. 4.2.1.1 Skenario Pengujian

Skenario pengujian menjelaskan pengujian terhadap sistem yang ada pada permainan menjaring ikan. Adapun skenario pengujian yang ada pada permainan menjaring ikan dapat dilihat pada tabel 4.3.

Tabel 4.3 Tabel Skenario Pengujian

No Komponen yang Diuji Skenario Pengujian Jenis Pengujian 1 Menu Tampilkan Menu Mulai Pemainan Black Box

Tampilkan Menu Tentang Black Box 2 Menu Mulai Permainan Tampilkan Ikan Black Box Tampilkan Jaring Black Box Tampilkan Skor Black Box Tampilkan Waktu Black Box 3 Menu Tentang Tampilkan Informasi Aplikasi Black Box

4 ObstacleAvoidance Ikan bergerak menghindari jaring Black Box

5 Algoritma Boids Algoritma boids pada permainan

menjaring ikan White Box

4.2.1.2 Pengujian Black Box

Berikut adalah hasil pengujian perangkat lunak menggunakan metode black box sesuai dengan skenario pengujian yang telah dirancang sebelumnya dapat dilihat pada tabel 4.4.


(65)

Tabel 4.4 Tabel Pengujian Black Box

No Komponen yang

Diuji Pengujian Skenario Diharapkan Hasil yang Pengujian Hasil 1 Menu Tampilkan Menu

Mulai Pemainan Menampilkan Menu Mulai Permainan [√] Berhasil [√] Tidak Berhasil Tampilkan Menu

Tentang

Menampilkan Menu Tentang

[√] Berhasil [√] Tidak Berhasil 2 Mulai Permainan Tampilkan Ikan Menampilkan Ikan [√] Berhasil

[√] Tidak Berhasil Tampilkan Jaring Menampilkan Jaring [√] Berhasil

[√] Tidak Berhasil Tampilkan Skor Menampilkan Skor [√] Berhasil

[√] Tidak Berhasil Tampilkan Waktu Menampilkan Waktu [√] Berhasil

[√] Tidak Berhasil 3 Menu Tentang Tampilkan

Informasi Aplikasi

Menampilkan Informasi Aplikasi

[√] Berhasil [√] Tidak Berhasil

4 Obstacle Avoidance Ikan bergerak

menghindari jaring Ikan menghindari jaring bergerak [√] Berhasil [√] Tidak Berhasil

4.2.1.3 Pengujian White Box

Pengujian white box merupakan metode perancangan test case yang menggunakan struktur kontrol dari perancangan metode dalam mendapatkan test case. Adapun metode yang digunakan dalam pengujian white box ini adalah metode

basis path. Metode basis path mengijinkan pendesain kasus uji untuk mendapatkan perkiraan lojik yang kompleks dari desain metode dan menggunakan perkiraan ini untuk mendefinisikan aliran eksekusi.

1. Pengujian Aturan Alignment

Berikut adalah pengujian proses aturan alignment menggunakan pengujian white box.

a. Pseudocode Aturan Alignment

Berikut adalah pseudocode dari aturan alignment :

public function align( boids : Vector.<Boid> ) : void 1 { _steeringForce = getAlignment(boids, neighborDistance); }

private function getAlignment( boids : Vector.<Boid> ) : Vector3D 2 { var force : Vector3D = new Vector3D();

3 var distance : Number; 4 var count : int = 0;

5 var boid : Boid;


(66)

7 boid = boids[i];

8 distance = Vector3D.distance(_position,

boid.position);

9 if ( distance > 0 && distance < neighborDistance ){ 10 force.incrementBy(boid.velocity);

11 count++;

12 }

13 }

14 return force;

15 }

b. Flow Graph

Berdasarkan pseudocode diatas maka flow graph dari aturan alignment dapat dilihat pada gambar 4.4.

Gambar 4.4 FlowGraph Aturan Alignment

atau disederhanakan berdasarkan simpul dapat dilihat pada gambar 4.5.

Gambar 4.5 Penyederhanaan FlowGraph Aturan Alignment

Keterangan :

= Nodes (N) = Edges (E)


(67)

Berdasarkan gambar 4.5 maka dapat dihitung cyclomatic complexity sebagai berikut :

E = 10, N = 10 V(G) = ( E – N ) + 2 V(G) = ( 10 – 10 ) + 2 V(G) = 2

Maka cyclomaticcomplexity yang didapatkan adalah 2. Berdasarkan cyclomatic complexity tersebut, maka terdapat 2 path yang terdiri dari :

Path 1 : 1-2-3-4-5-6-7-8-9-10

Path 2 : 1-2-3-4-5-6-7-8-3-4-5-6-7-8-9-10 c. Graph Matrix

Berikut adalah graph matrix yang menyatakan hubungan antara nodes dan edges

pada gambar 4.5. Kolom Sum-1 yang merupakan nilai dihitung berdasarkan jumlah node yang ada dikurang 1. Jika node dari busur selanjutnya tidak ada, maka dinyatakan sebagai elemen kosong dan bernilai nol.

Tabel 4.5 Tabel Graph Matrix Alignment Rule

N 1 2 3 4 5 6 7 8 9 10 Sum-1

1 1 0

2 1 0

3 1 0

4 1 0

5 1 0

6 1 0

7 1 0

8 1 1 1

9 1 0

10 0

Jumlah (Sum-1) + 1 2

Kesimpulan :

Dari hasil pengujian white box dapat dilihat bahwa jumlah edges (E) pada graph matrix sama dengan jumlah cyclomatic complexity yaitu 2, maka dapat disimpulkan bahwa proses aturan alignment berjalan dengan baik, karena setiap pengujian menghasilkan nilai yang sama.


(68)

2. Pengujian Aturan Separation

Berikut adalah pengujian proses aturan separation menggunakan pengujian

white box.

a. Pseudocode Aturan Separation

Berikut adalah pseudocode dari aturan separation :

public function separate( boids : Vector.<Boid> ) : void

1 { _steeringForce = getSeparation(boids, separationDistance); } private function getSeparation( boids : Vector.<Boid> ) : Vector3D 2 { var force : Vector3D = new Vector3D();

3 var difference : Vector3D; 4 var distance : Number; 5 var count : int = 0;

6 var boid : Boid;

7 for (var i : int = 0;i < boids.length; i++){

8 boid = boids[i];

9 distance = Vector3D.distance(_position,

boid.position);

10 if ( distance > 0 && distance < neighborDistance ){ 11 difference = _position.subtract(boid.position); 12 difference.normalize();

13 difference.scaleBy(1 / distance); 14 force.incrementBy(boid.velocity); 15 count++;

16 }

17 }

18 return force;

19 }

b. Flow Graph

Berdasarkan pseudocode diatas maka flow graph dari aturan separation dapat dilihat pada gambar 4.6.


(69)

atau disederhanakan berdasarkan simpul dapat dilihat pada gambar 4.7.

Gambar 4.7 Penyederhanaan FlowGraph Aturan Separation

Keterangan :

= Nodes (N) = Edges (E)

Berdasarkan gambar 4.7 maka dapat dihitung cyclomatic complexity sebagai berikut :

E = 10, N = 10 V(G) = ( E – N ) + 2 V(G) = ( 10 – 10 ) + 2 V(G) = 2

Maka cyclomaticcomplexity yang didapatkan adalah 2. Berdasarkan cyclomatic complexity tersebut, maka terdapat 2 path yang terdiri dari :

Path 1 : 1-2-3-4-5-6-7-8-9-10

Path 2 : 1-2-3-4-5-6-7-8-3-4-5-6-7-8-9-10 c. Graph Matrix

Berikut adalah graph matrix yang menyatakan hubungan antara nodes dan edges

pada gambar 4.8. Kolom Sum-1 yang merupakan nilai dihitung berdasarkan jumlah node yang ada dikurang 1. Jika node dari busur selanjutnya tidak ada, maka dinyatakan sebagai elemen kosong dan bernilai nol.


(70)

Tabel 4.6 Tabel Graph Matrix Separation Rule

N 1 2 3 4 5 6 7 8 9 10 Sum-1

1 1 0

2 1 0

3 1 0

4 1 0

5 1 0

6 1 0

7 1 0

8 1 1 1

9 1 0

10 0

Jumlah (Sum-1) + 1 2

Kesimpulan :

Dari hasil pengujian white box dapat dilihat bahwa jumlah edges (E) pada graph matrix sama dengan jumlah cyclomatic complexity yaitu 2, maka dapat disimpulkan bahwa proses aturan separation berjalan dengan baik, karena setiap pengujian menghasilkan nilai yang sama.

3. Pengujian Aturan Cohesion

Berikut adalah pengujian proses aturan cohesion menggunakan pengujian white box.

a. Pseudocode Aturan Cohesion

Berikut adalah pseudocode dari aturan cohesion :

public function cohesion( boids : Vector.<Boid> ) : void 1 { _steeringForce = getCohesion(boids, neighborDistance); }

private function getCohesion( boids : Vector.<Boid> ) : Vector3D 2 { var force : Vector3D = new Vector3D();

3 var distance : Number; 4 var count : int = 0;

5 var boid : Boid;

6 for (var i : int = 0;i < boids.length; i++){

7 boid = boids[i];

8 distance = Vector3D.distance(_position,

boid.position);

9 if ( distance > 0 && distance < neighborDistance ){ 10 force.incrementBy(boid.velocity);

11 count++;

12 }

13 }

14 return force;


(71)

b. Flow Graph

Berdasarkan pseudocode diatas maka flow graph dari aturan cohesion dapat dilihat pada gambar 4.8.

Gambar 4.8 FlowGraph Aturan Cohesion

atau disederhanakan berdasarkan simpul dapat dilihat pada gambar 4.9.

Gambar 4.9 Penyederhanaan FlowGraph Aturan Cohesion

Keterangan :

= Nodes (N) = Edges (E)

Berdasarkan gambar 4.9 maka dapat dihitung cyclomatic complexity sebagai berikut :

E = 10, N = 10 V(G) = ( E – N ) + 2 V(G) = ( 10 – 10 ) + 2 V(G) = 2


(72)

Maka cyclomaticcomplexity yang didapatkan adalah 2. Berdasarkan cyclomatic complexity tersebut, maka terdapat 2 path yang terdiri dari :

Path 1 : 1-2-3-4-5-6-7-8-9-10

Path 2 : 1-2-3-4-5-6-7-8-3-4-5-6-7-8-9-10 c. Graph Matrix

Berikut adalah graph matrix yang menyatakan hubungan antara nodes dan edges

pada gambar 4.9. Kolom Sum-1 yang merupakan nilai dihitung berdasarkan jumlah node yang ada dikurang 1. Jika node dari busur selanjutnya tidak ada, maka dinyatakan sebagai elemen kosong dan bernilai nol.

Tabel 4.7 Tabel Graph Matrix Cohesion Rule

N 1 2 3 4 5 6 7 8 9 10 Sum-1

1 1 0

2 1 0

3 1 0

4 1 0

5 1 0

6 1 0

7 1 0

8 1 1 1

9 1 0

10 0

Jumlah (Sum-1) + 1 2

Kesimpulan :

Dari hasil pengujian white box dapat dilihat bahwa jumlah edges (E) pada graph matrix sama dengan jumlah cyclomatic complexity yaitu 2, maka dapat disimpulkan bahwa proses aturan cohesion berjalan dengan baik, karena setiap pengujian menghasilkan nilai yang sama.


(1)

69

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan dari hasil penelitian, analisis perancangan sistem dan implementasi serta pengujian yang dilakukan, maka diperoleh kesimpulan sebagai berikut:

1. Implementasi algoritma boids pada permainan menjaring ikan dapat mensimulasikan perilaku ikan berkelompok.

2. Implementasi dari pengaturan perilaku (obstacle avoidance) dapat memberikan kemampuan pada ikan untuk bergerak menghindari jaring.

5.2 Saran

Penelitian ini masih banyak kekurangan dan masih jauh dari sempurna, oleh karena itu diharapkan kedepannya penelitian dari algoritma boids dapat dikembangkan lagi. Adapun saran yang dapat diberikan dalam penelitian ini adalah sebagai berikut:

1. Diharapkan algoritma-algoritma crowd simulation lainnya dapat diteliti dan diimplementasikan untuk menyelesaikan perilaku ikan berkelompok. 2. Permainan yang dibangun dapat lebih disempurnakan dengan


(2)

(3)

BIODATA PENULIS

1. Data Pribadi

Nama : Ilham Maulana

Tempat, Tanggal Lahir : Bandung, 02 November 1989

Jenis Kelamin : Laki-laki

Agama : Islam

Kewarganegaraan : Indonesia

Alamat Lengkap : Jl. Moch Toha Ters. Gg. Empang RT 02/ RW 08

Kel. Ciseureuh Kec. Regol Kota Bandung 40255

Telepon : 085624168405

Email : ilhamsmaulana@yahoo.it

2. Riwayat Pendidikan

1995 – 2001 : SD Nugraha

2001 – 2004 : SMP Negeri 43 Bandung

2004 – 2007 : STM Prakarya Internasional ’52 Bandung

2009 – 2015 : Program Strata Satu (1) Program Studi Teknik

Informatika Universitas Komputer Indonesia Bandung


(4)

(5)

(6)

C-1