Perbandingan Algoritma Particle Swarm Optimization (PSO) dan Differential Evolution Algorithm (DEA) Untuk Perilaku Non Player Character Secara Berkelompok

BIODATA PENULIS

  DATA PRIBADI Nama : Iffan Firmansyah Jenis Kelamin : Laki-laki Tempat & Tanggal Lahir : Bandung, 06 Desember 1990 Kewarganegaraan : Indonesia Agama : Islam Status : Belum Menikah Golongan Darah : O Alamat : Jl. Melur 1 No.40

  Rancaekek Kencana Telepon : 085861117020 Email : pankdkop@gmail.com

  PENDIDIKAN FORMAL (1996 – 2002) : SD Negeri 5 Cimahi (2002

  : SMP Negeri 23 Bandung (2005

  • – 2005)

  : SMK Taruna Mandiri Cimahi (2009

  • – 2008)

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

  • – 2016)

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

  Bandung, 1 September 2016 (Iffan Firmansyah)

  

PERBANDINGAN ALGORITMA PARTICLE SWARM

OPTIMIZATION (PSO) DAN DIFFERENTIAL EVOLUTION

ALGORITHM (DEA) UNTUK PERILAKU NON PLAYER

CHARACTER SECARA BERKELOMPOK

  

SKRIPSI

  Diajukan untuk Menempuh Ujian Akhir Sarjana

  

IFFAN FIRMANSYAH

10109112

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

  

2016

  KATA PENGANTAR Assalamu’alaikum Wr. Wb.

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

  Laporan skripsi dengan judul “perbandingan algoritma particle swarm optimization (pso) dan differential evoluitonal algorithm (dea) untuk perilaku non player character secara berkelompok ” ini disusun guna memenuhi salah satu syarat dalam menyelesaikan studi jenjang strata satu (S1) di Program Studi Teknik Informatika Universitas Komputer Indonesia. Selama menulis skripsi ini, penulis telah mendapatkan banyak sekali bimbingan dan bantuan dari berbagai pihak yang telah dengan segenap hati dan keikhlasan yang penuh membantu dan membimbing penulis dalam menyelesaikan laporan ini. Dengan kerendahan hati penulis ucapkan terima kasih kepada : 1.

  Kedua Orang Tua, yang selalu berdoa serta memberikan kasih sayang, dukungan, dan bimbingan untuk anaknya.

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

  3. Bapak Galih Hermawan, S.Kom, M.T. selaku dosen pembimbing dan Ibu Ednawati Rainarli, S.Si., M.Si. selaku reviewer yang selalu mengarahkan, membimbing dan memberikan saran-sarannya selama melakukan penelitian tugas akhir.

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

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

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

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

  Bandung, 1 September 2016 Penulis

  (Iffan Firmansyah)

  

DAFTAR ISI

  ABSTRAK ............................................................................................................... i ABSTRACT ............................................................................................................ ii KATA PENGANTAR ........................................................................................... iii DAFTAR ISI ........................................................................................................... v DAFTAR GAMBAR ........................................................................................... viii DAFTAR TABEL .................................................................................................. ix DAFTAR SIMBOL ................................................................................................. x DAFTAR LAMPIRAN ......................................................................................... xv

  1 BAB 1 PENDAHULUAN .............................................................................. 1

  1.1 Latar Belakang Masalah .................................................................... 1

  1.2 Identifikasi Masalah .......................................................................... 2

  1.3 Maksud dan Tujuan ........................................................................... 2

  1.3.1 Maksud ............................................................................................. 2

  1.3.2 Tujuan ............................................................................................... 2

  1.4 Batasan Masalah................................................................................ 3

  1.5 Metodologi Penelitian ....................................................................... 3

  1.1 Sistematika Penulisan ....................................................................... 4

  2 BAB 2 TINJAUAN PUSTAKA ..................................................................... 6

  2.1 Kecerdasan Buatan / AI .................................................................... 6

  2.1.1 Lingkup utama kecerdasan buatan .................................................... 7

  2.1.2 Keuntungan Kecerdasan Buatan ....................................................... 7

  2.2 Algoritma particle swarm optimization (PSO) ................................. 8

  2.2.1 Langkah-langkah Penyelesaian Dalam PSO ..................................... 9

  2.2.2 Kelebihan dan Kekurangan PSO ..................................................... 11

  2.3 Differential Evolution Algorithm (DEA) ........................................ 11

  2.3.1 Langkah-langkah Penyelesaian Dalam DEA .................................. 12

  2.3.2 Kelebihan dan Kekurangan DEA .................................................... 13

  2.4 Pemrograman Berorientasi Object (PBO) ....................................... 17

  2.4.1 Konsep Dasar PBO ......................................................................... 17

  2.4.2 Unified Modelling Language (UML) ............................................. 17

  3 BAB 3 ANALISIS DAN PERANCANGAN ............................................... 21

  4.1.3 Implemntasi antarmuka ................................................................... 43

  5 BAB 5 KESIMPULAN DAN SARAN ........................................................ 67

  4.3 Kesimpulan Pengujian .................................................................... 64

  4.2.5 Pengujian PSO dan DEA kondisi kelima ........................................ 61

  4.2.4 Pengujian PSO dan DEA kondisi keempat ..................................... 58

  4.2.3 Pengujian PSO dan DEA kondisi ketiga ......................................... 55

  4.2.2 Pengujian PSO dan DEA kondisi kedua ......................................... 52

  4.2.1 Pengujian PSO dan DEA kondisi pertama ...................................... 48

  4.2 Pengujian simulasi .......................................................................... 48

  4.1.3.5 Antarmuka menu bantuan ............................................................... 47

  4.1.3.4 Antarmuka menu hasil perbandingan PSO dan DEA ..................... 46

  4.1.3.3 Antarmuka menu simulasi DEA ..................................................... 45

  4.1.3.2 Antarmuka menu simulasi PSO ...................................................... 44

  4.1.3.1 Antarmuka menu utama .................................................................. 43

  4.1.2 Implementasi perangkat lunak ........................................................ 43

  3.1 Analisis Masalah ............................................................................. 21

  4.1.1 Implementasi perangkat keras ......................................................... 42

  4.1 Implementasi ................................................................................... 42

  4 BAB 4 IMPLEMENTASI DAN PENGUJIAN ............................................ 42

  3.5.2 Analisis Kebutuhan Perangkat Keras .............................................. 41

  3.5.1 Analisis Kebutuhan Perangkat Lunak ............................................. 40

  3.5 Analisis Kebutuhan Non-Fungsional .............................................. 40

  3.4.2 Penyelesaian DEA ........................................................................... 32

  3.4.1 Penyelesaian PSO ........................................................................... 27

  3.4 Analisis Kasus PSO ........................................................................ 26

  3.3.2 Alur Proses Penyelesaian Dalam PSO dan DEA ............................ 24

  3.3.1 Algoritma PSO dan DEA Dalam Game .......................................... 23

  3.3 Analisis Algoritma .......................................................................... 22

  3.2 Analisis Masukan ............................................................................ 21

  5.1 Kesimpulan ..................................................................................... 67

  5.2 Saran ................................................................................................ 67 DAFTAR PUSTAKA ........................................................................................... 68

DAFTAR PUSTAKA

  [1] Kennedy & R. Eberhart. (1995), Particle Swarm Optimization, IEEE Conference on Neural Networks, pp. 1942-1948, Perth, Australia

  [2] Irmaduta Fahmiari dan Budi Santosa. (2010), Aplikasi Algoritma

  Differential Evolution Untuk Permasalahan Kompleks Pemilihan Portofolio. Undergraduate Thesis. Surabaya, ITS

  [3] Madehan anis, Widowati dan R.Heru Tjahjana (2012), Perbandingan

  Algoritma Particle Swarm Optimization dan Differntial Evolutional Algorithm Untuk Perancangan Umpan Balik Keadaan : Studi Kasus Gerak Lateral Pesawat F-16 . Jurnal Sains dan Matematika. Vol.20, no.4,

  81-88. Semarang, Undip [4] Kusumadewi, Sri. (2003), Artificial inelligence (Teknik dan Aplikasinya) . Yogyakarta. Graha Ilmu

  [5] Ir. Balza Achmad, M.Sc.E. (2006), Kecerdasan Buatan. Yogyakarta, UGM [6] Bai, Kinghai. (2010), Analysis of Particle Swarm Optimization Algorithm.

  Computer and Information Science, vol.3, no.1, pp 180-184 [7] R. Storn & K.Price. (1997), Differential Evolution- A Simple and Efficient

  Heuristic for Global Optimization Over Continuous Spaces, Journal of

  Global Optimization, vol. 11, pp. 341-359

  1 BAB 1 PENDAHULUAN

1.1 Latar Belakang Masalah

  NPC atau Non Player Character adalah salah satu karakter dalam game yang tidak dikontrol oleh pemain. NPC dikontrol oleh kecerdasan buatan. Ada banyak algoritma optimasi yang dapat diterapkan untuk menentukan gerak NPC diantaranya algoritma particle swarm optimization (PSO) dan differential

  

evolution Algorithm (DEA). Berdasarkan penelitian yang dilakukan Yoga Baskara

  [8], implementasi PSO pada game action-RPG berjalan dengan baik dalam menentukan perilaku NPC (non-player character) mendekati player dan menetukan NPC yang menjadi pemimpin. Dari hasil penelitian tersebut dari 10 NPC membutuhkan 15-18 kali proses iterasi untuk dapat menentukan NPC yang menjadi pemimpin pada koordinat player yang diam.

  Berdasarkan penelitian dari Madehan Anis [3] telah dilakukan perbandingan PSO dan DEA dengan mengoptimalkan index performa, hasil dari perbandingan tersebut menghasilkan kesimpulan algoritma DEA mempunyai kecepatan komputasi yang lebih tinggi dibandingkan dengan PSO. Dalam kasus ini, secara umum DEA mempunyai respon waktu yang lebih baik dibanding PSO dimana sistem akan lebih cepat menuju keadaan steady state. Algoritma PSO menghasilkan indeks performansi optimum sebesar 6.579 dengan membutuhkan waktu kinerja rata-rata CPU (CPU time) dalam dua puluh kali running sebesar 21.14403 detik dan DEA menghasilkan indeks performansi optimum sebesar 6.417 dengan membutuhkan waktu kinerja rata-rata CPU time dalam dua puluh kali running sebesar 10.60157 detik. Perbedaan komputasi algoritma PSO dan DEA dipengaruhi oleh parameter-parameter yang terlibat didalamnya. Namun, tidak menutup kemungkinan untuk studi kasus yang berbeda dan penggunaan nilai parameter yang berbeda akan menunjukan pola hasil yang berbeda pula [3]. Maka dari itu algoritma PSO dan DEA perlu diuji kembali untuk menentukan performansi kedua algoritma pada pergerakan NPC.

  2 Berdasarkan latar belakang tersebut, algoritma PSO dan DEA akan diimplementasikan pada simulasi perilaku NPC secara berkelompok untuk mengetahui kemungkinan algoritma DEA tetap lebih unggul dibandingkan algoritma PSO dalam mengoptimalkan waktu proses dan iterasi. Perbandingan PSO dan DEA pada simulasi action-RPG dipilih karena kedua algoritma merupakan algoritma yang dapat digunakan untuk optimasi pergerakan beberapa objek baik pada gerak lateral pesawat maupun pergerakan NPC pada game.

  1.2 Identifikasi Masalah

  Dengan latar belakang yang telah diuraikan diatas, adapun identifikasi masalah yang ada adalah bagaimana setiap NPC dalam suatu kelompok NPC dapat memilih NPC mana yang memiliki posisi terbaik untuk dijadikan pemimpin dan diikuti NPC lain dalam mengejar karakter player menggunakan DEA lalu membandingkan waktu proses dan iterasi untuk menuju keadaan steady state atau koordinat player antara penggunaan algoritma PSO dan DEA.

  1.3 Maksud dan Tujuan

  Berdasarkan permasalahan yang diteliti, maka maksud dan tujuan dari penelitian:

  1.3.1 Maksud

  Membandingkan antara algoritma PSO dan DEA yang lebih mengoptimalkan pergerakan NPC pada simulasi perilaku NPC secara berkelompok dengan mengoptimalkan waktu proses dan iterasi.

  1.3.2 Tujuan

  Mengetahui performansi dari perbandingan kedua algoritma dari segi waktu proses dan iterasi paling optimal untuk perilaku NPC dan langkah optimal menuju keadaan steady state dimana NPC dapat mencapai posisi atau koordinat player.

1.4 Batasan Masalah

  Dalam perbandingan kedua algoritma, perlu diberikan beberapa batasan agar mempermudah saat melakukan perancangan. Berikut batasan masalahnya :

  3

  1. Simulasi dibuat untuk membandingkan performansi waktu proses dan iterasi yang dibutuhkan NPC menuju posisi atau koordinat player.

  2. Algoritma yang digunakan adalah algoritma particle swarm optimization (PSO) dan algoritma defferential evolution (DEA).

  3. Terdapat 10 NPC.

  4. Posisi awal tiap partikel sudah ditentukan.

  5. Simulasi hanya menunjukan bagaimana kelompok NPC mendekati karakter player.

  6. Aplikasi simulasi berbasis desktop.

1.5 Metodologi Penelitian

  Metodologi penelitian yang digunakan dalam penulisan tugas akhir adalah metode penelitian kualitatif. Metode ini adalah salah satu jenis metode yang lebih menekankan pada aspek pemahaman secara mendalam terhadap suatu masalah daripada melihat permasalahan untuk penelitian generalisasi. Metode penelitian ini lebih suka menggunakan teknik analisis mendalam.Metodologi penelitian dalam skripsi ini meliputi metode pengumpulan data dan metode pembangunan perangkat lunak.

1. Tahap Pengumpulan Data

  Metode pengumpulan data yang digunakan dalam penelitian adalah study literatur. Study literatur merupakan tahapan pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian yaitu perbandingan algoritma particle swarm optimization (PSO) dan differential evolution algorithm (DEA) untuk perilaku NPC menyerang secara berkelompok.

  2. Tahap Pembangunan Perangkat Lunak

  Model ini mengusulkan sebuah pendekatan kepada perkembangan aplikasi yang

sistematik yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain,

kode, dan pengujian.

  4

  1. Analisis Kebutuhan Tahap analisis kebutuhan ini yaitu untuk memahami sistem yang ada pada permainan action-RPG serta mendefinisikan permasalahan sistemnya dan selanjutnya untuk menentukan kebutuhan sistem secara garis besar.

  2. Desain Sistem Tahap desain sistem ini yaitu untuk memberikan gambaran umum kepada pengguna mengenai permainan action-RPG yang akan dibangun dan rancang bangun yang lengkap tentang sistem permainan action-RPG yang akan dikembangkan.

  3. Penulisan Kode Program Tahap penulisan kode program yaitu untuk merancang sistem dengan menggunakan bahasa pemrograman matlab. Tahap ini dilakukan pembuatan komponen-komponen sistem yang meliputi modul program dan antarmuka

  4. Pengujian Program Tahap pengujian program ini dilakukan untuk mendapatkan serta memastikan bahwa NPC pada simulasi action-RPG yang dibangun sesuai dengan kebutuhan yang telah dideskripsikan.

1.6 Sistematika penulisan

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

  BAB 1 PENDAHULUAN Bab ini berisi penjelasan mengenai latar belakang masalah, identifikasi masalah,

  maksud dan tujuan, batasan masalah, metodologi penelitian serta sistematika penulisan.

  BAB 2 LANDASAN TEORI Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik

  penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis

  5 permasalahan serta tinjauan terhadap penelitian-penelitian serupa yang telah pernah dilakukan sebelumnya termasuk sintesisnya.

  BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA Menganalisis masalah dari model penelitian, menggambarkan identifikasi

  masalah, analisis kebutuhan data, hardware, software, brainware, diagram pembuatan sistem dan UML (Unified Modeling Language).

  BAB 4 IMPLEMENTASI DAN PENGUJIAN ALGORITMA Merupakan tahapan yang dilakukan dalam penelitian dalam menjelaskan

  implementasi, tampilan antarmuka, menu yang tersedia pada sistem, dan pengujian terhadap sistem.

  BAB 5 KESIMPULAN DAN SARAN Bab ini berisi mengenai hal-hal penting yang telah dibahas dan kemudian dibuat

  kesimpulan. Bab ini juga berisi saran-saran yang diberikan untuk pengembang selanjutnya.

  1 BAB 2 TINJAUAN PUSTAKA

2.1 Kecerdasan Buatan

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

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

  Agar komputer bisa bertindak seperti dan sebaik manusia, maka peneliti mencoba menerapkan kecerdasan buatan pada gerak NPC bertindak seperti manusia. Untuk itu AI akan mencoba untuk memberikan beberapa metoda untuk membekali komputer dengan kedua komponen tersebut agar NPC pada program bisa menjadi mesin pintar dan bertinkah laku layaknya manusia bergerak.

  7

2.1.1 Lingkup utama kecerdasan buatan

  Lingkup utama kecerdasan buatan ada 7 hal [4] antara lain: 1.

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

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

  3. Pengenalan ucapan. Melalui pengenalan ucapan diharapkan manusia mampu berkomunikasi dengan komputer dengan menggunakan suara.

  4. Robotika dan Sistem sensor.

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

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

  7. Game Playing

2.1.2 Keuntungan Kecerdasan Buatan

  Keuntungan kecerdasan buatan ada 7 hal [5]antara lain: 1.

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

  2. Kecerdasan buatan lebih mudah diduplikasi dan disebarkan. Mentransfer pengetahuan manusia dari satu orang ke orang lain butuh proses dan waktu lama. Disamping itu suatu keahlian tidak akan pernah bisa diduplikasi secara lengkap. Sedangkan jika pengetahuan terletak pada suatu sistem komputer, pengetahuan tersebuat dapat ditransfer atau disalin dengan mudah dan cepat dari satu komputer ke komputer lain

  8

  3. Kecerdasan buatan lebih murah dibanding dengan kecerdasan alami.

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

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

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

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

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

2.2 Algoritma particle swarm optimization (PSO)

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

  

swarm optimization ini merupakan metoda yang digunakan untuk penentuan

  posisi partikel terbaik . Konsep optimasi partikel terdiri dari kerumunan. Pada persamaan dari algoritma PSO dasar yang di perkenalkan oleh oleh Kennedy dan R.Eberhart setiap partikel memiliki nilai fitness yang dievaluasi oleh fungsi yang

  9 dioptimasi, selain itu parameter lain yang dimiliki oleh tiap partikel adalah posisi partikel, konstanta, kecepatan partikel, posisi terbaik partikel dan posisi global terbaik. dari beberapa parameter yang di gunakan diatas dapat membentuk update posisi dilakukan secara serempak di tiap tiap partikel. Sebelum update posisi setiap partikel terlebih dahulu melakukan update kecepatan. PSO dapat diterapkan pada berbagai kasus misalnya game, PSO digunakan untuk mengoptimasi gerak optimal NPC untuk mendapatkan tujuan yakni menentukan dari beberapa NPC yang memilik posisi terbaik sebagai pemimpin dari NPC lainnya.

2.2.1 Langkah–langkah penyelesaian Algoritma PSO

  Dalam PSO untuk menyelesaikan masalah langkah langkahnya adalah sebagai berikut [1]:

  1. Inisialisasi populasi partikel Langkah ini merupakan tahap awal dimana jumlah dan koordinat partikel / posisi partikel ditentukan terlebih dahulu secara acak.

  2. Melakukan perhitungan nilai fitness dari setiap partikel Untuk memperoleh nilai fitness dibutuhkan nilai posisi setiap partikel tersebut untuk dievaluasi oleh fungsi fitness dengan menggunakan persamaan berikut:

  (1) √

  F(X) adalah fitness adalah koordinat X player adalah koordinat Y player = koordinat X NPC = koordinat Y NPC

  3. Menentukan Pbest (personal best) Pbest adalah posisi terbaik setiap partikel. Posisi ini merupakan posisi yang ditempati oleh partikel saat ini.

  4. Menentukan Gbest (Global best) Nilai Gbest merupakan nilai posisi partikel yang memiliki posisi paling baik dari partikel lainnya. Nilai Gbest ini didapat dengan membandingkan nilai fitness dari setiap partikel untuk kemudian koordinat posisi dari partikel yang memiliki

  10 fitness paling optimal tersebut akan dijadikan Gbest. Nilai fitness dikatakan optimal tergantung kasus yang dimiliki apakah maksimasi ataupun minimasi

  5. Menghitung nilai velocity (V) Untuk mendapatkan nilai V terbaru dapat digunakan persamaan untuk perbaharui kecepatan menggunakan persamaan berikut :

  V i (t+1) = V i (t)+C

  1 .r 1 (Pbest i – X i (t)) + C

2 .r

2 (Gbest i –X i (t)) (2)

  Dimana : V i (t) adalah kecepatan partikel ke (i) pada iterasi ke (t) X i (t) adalah Posisi partikel ke (i) pada iterasi ke (t) V adalah Velocity (kecepatan partikel) X adalah Koordinat partikel (posisi partikel) i adalah Partikel ke (1,2,3 . . . . . . N) C

  1 dan C 2 adalah Faktor cognitive dan sosial nilai ini adalah nilai konstanta

  bernilai diantara ( 0 dan 1 ) r

  1 dan r 2 adalah Bilangan acak antara 0

  • – 1 Pbest adalah Posisi terbaik yang dimiliki setiap partikel Gbest adalah posisi partikel yang memiliki posisi paling baik dari partikel lainnya.

  6. Menghitung nilai koordinat terbaru Memasukan hasil perhitungan nilai V dari setiap partikel kedalam persamaan menggunakan persamaan berikut : X i (t+1) = X i (t) +V i (t+1) (3)

  Dimana : V i (t) adalah kecepatan partikel ke (i) pada iterasi ke (t) X i (t) adalah Posisi partikel ke (i) pada iterasi ke (t)

  7. Mengecek posisi partikel apakah sudah mencapai titik tujuan atau belum Nilai dikatakan konveregen jika posisi partikel mencapai posisi tujuan. Jika partikel belum mencapai titik tujuan maka langkah 2 diulangi dengan

  11 mengevaluasi nilai partikel saat ini kedalam fungsi tujuan dibatasi hingga 30 kali iterasi.

2.2.2 Kelebihan dan Kekurangan PSO A.

  Kelebihan dari algoritma PSO [6] : 1.

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

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

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

  4. Algoritma PSO mengandung bilangan real B. Kekurangan dari algoritma PSO [6] : 1.

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

  2. Algoritma ini tidak dapat bekerja diluar masalah optimasi.

  3. Algoritma ini tidak dapat bekerja diluar masalah sistem koordinat

2.3 Differential Evolution Algorithm (DEA)

  Differential evolutional algorithm (DEA) atau lebih dikenal dengan

  algoritma DE (Differential Evolution) adalah sebuah metode yang dikembangkan oleh Kenneth Price dan dipublikasikan pada Oktober 1994 dalam majalah Dr. Dobb’s Journal. Metode ini merupakan metode optimasi matematis yang fungsi multidimensional dan termasuk dalam kelompok evolutionary algorithm. DEA merupakan salah satu algoritma evolusi yang terkenal dengan kecepatan

  12 konvergensinya dan merupakan salah satu algoritma evolusioner yang memiliki performansi lebih baik daripada algoritma evolusioner yang lain seperti genetic

  

algorithm (GA). Kelebihan DEA adalah pada evolusi yang dialami oleh setiap

  individu dalam populasi dimana diferensiasi dan crossover terjadi secara berurutan pada setiap individu yang terpilih acak dari populasi setiap waktu. Parameter crossover diubah untuk mengetahui pengaruhnya pada proses komputasi. DEA dalam beberapa kasus disebutkan memiliki kecepatan komputasi yang lebih baik dibandingkan PSO dimana sistem akan lebih cepat menuju keadaan steady state [2].

2.3.1 Langkah-langkah penyelesaian dalam DEA

  Penyelesaian Dalam DEA langkah- langkahnya sebagai berikut [7] :

  1. Inisialisasi populasi partikel Langkah ini merupakan tahap awal dimana jumlah dan koordinat partikel / posisi partikel ditentukan terlebih dahulu secara acak.

  2. Mutation Setelah diinisialisasi, DEA akan bermutasi dan me-rekombinasi populasi awal untuk menghasilkan populasi baru. Mutasi pada beberapa kamus bahasa menunjukan pengertian berubah dan dalam konteks genetika mutasi berarti perubahan dengan elemen acak.Proses mutasi menggunakan persamaan berikut :

  V + =

  X F . (X X ) (4)

  • – i,g r1,g r2,g r3,g

  Dimana : V adalah persamaan yang menunjukan bagaimana membentuk vektor

  i,g

  mutan

  r1,r2,r3 adalah index acak F adalah skala faktor konstan antara [0,2].

  3. crossover Untuk melengkapi strategi pencarian differential mutation, DE menggunakan crossover dengan tujuan meningkatkan diversitas parameter populasi. Crossover

  13 membangun vektor uji dari nilai parameter yang telah dikopi dari dua vektor yang berbeda. Persamaan untuk vektor uji adalah sebagai berikut:.

  U j,i,g = V j,i,g , if (rand i,j [0,1) ≤ Cr or j=jrand)

  X j,i,g , otherwise, (5) Dimana: U adalah persamaan crossover.

  Cr adalah konstanta crossover yang ditentukan oleh pembuat. j rand adalah indeks yang dipilih secara acak.

  4. Selection Setelah diperoleh vektor hasil proses mutasi, dan crossover proses selanjutnya adalah seleksi antara vektor turunan dengan vektor target dimana vektor yang memiliki nilai fitness yang lebih baik akan digunakan untuk generasi berikutnya. Untuk proses seleksi menggunakan persamaan berikut :

  X I,G+1 = U i,G , if ƒ(U I,G ) ≤ ƒ(X I,G ) = X , if ) > ) (6)

  I,G ƒ(U I,G ƒ(X I,G

  Dimana : adalah fungsi yang harus diminimalkan.

  ƒ 5.

  Kriteria penghentian iterasi Nilai dikatakan konveregen jika posisi partikel mencapai posisi tujuan. Jika partikel belum mencapai titik tujuan maka langkah 2 diulangi dengan mengevaluasi nilai partikel saat ini kedalam fungsi tujuan dibatasi hingga 20 kali iterasi. [2]

2.3.2 Kelebihan dan kekurangan DEA A.

  Kelebihan dari algoritma DEA [7]: 1.

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

  2. Algoritma DEA tidak memiliki perhitungan mutasi yang tumpang tindih. Pencarian dapat dila

  14

  3. kukan dengan kecepatan setiap partikel. partikel yang optimal dapat mengirim informasi sehingga partikel lain dapat cepat melakukan pencarian.

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

  5. Algoritma DEA mengandung bilangan real B. Kekurangan dari algoritma DEA [7]: 1.

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

  2. Algoritma ini tidak dapat bekerja diluar masalah optimasi.

  3. Algoritma ini tidak dapat bekerja diluar masalah sistem koordinat

Tabel 1.1 Tabel Penelitian PSO dan DEA PENULIS TEMA HASIL KESIMPULAN

  Madehan anis, Widowati dan R.Heru Tjahjana

  juusan matematika Universitas Dipenogoro, Semarang

  Perbandingan Algoritma Particle swarm optimization dan Differential Evoluitonal Algorithm untuk perancangan umpan balik keadaan : Studi Kasus Gerak Lateral Pesawat F- performansi optimum sebesar 6.579 dengan membutuhkan waktu kinerja rata- rata CPU (CPU time) dalam dua puluh kali running sebesar 21.14403 detik dan DEA menghasilkan indeks algoritma DEA lebih unggul dari segi performansi optimum dan membutuhkan waktu kinerja rata- rata CPU time lebih cepat dibandingkan algoritma PSO pada kasus gerak lateral pesawat

  15 16 performansi optimum sebesar

  6.417 dengan membutuhkan waktu kinerja rata- rata CPU time dalam dua puluhkali running sebesar 10.60157 detik yoga baskara implementasi hasil pengujian C1 setiap NPC dalam algoritma particle dan C2 diperoleh kelompok NPC swarm nilai C1 dan C2 dapat dengan tepat optimization untuk yang paling memilih NPC perilaku non optimal yaitu C1 = mana yang player character 0,4 dan C2 = 0,8. menjadi pemimpin menyerang secara dari pengujian 10 dengan berkelompok NPC dibutuhkan menyesuaikan

  15-18 kali proses nilai fitness yang iterasi untuk dihasilkan setiap menentukan NPC NPC dengan NPC yang menjadi mana yang terpilih pemimpin menjadi pemimpin

  Irmaduta Fahmiari aplikasi algoritma DE dengan Solusi yang dan Budi Santosa differential parameter CR = dihasilkan DE Jurusan Teknik evolution untuk 0.2 dan 0.9 lebih baik Industri permasalahan memiliki akurasi daripada solusi Institut Teknologi kompleks yang baik yai yang dihasilkan Sepuluh pemilihan menghasilkan GRG2 Nopember (ITS) portofolio solusi yang (Solver).

  16 Surabaya konsisten yaitu masing-masing dengan standar deviasi 0.0016 dan 0.048. Rudi Nurdiansyah pengembangan Hasil dari DE dengan Jurusan Teknik algoritma penelitian ini adaptive Industri, Fakultas differential menunjukkan parameters dan Teknologi evolution bahwa algoritma local search pada Industri, untuk penjadwalan DE yang riset ini dapat juga Institut Teknologi flow shop multi dikembangkan diaplikasikan pada Sepuluh obyektif pada penelitian ini permasalahan Nopember dengan banyak mempunyai penjadwalan pada Surabaya mesin performa yang beberapa sistem lebih baik manufaktur yang dibandingkan lain seperti job dengan shop, cellular algoritma manufacturing dan CR(MC), flexible HAMC1, HAMC manufacturing. 2, HAMC3 maupun MOACSA untuk obyektif makespan, total flowtime maupun multi obyektif keduanya.

  17

2.4 Pemrograman Berorientasi Object (PBO)

  Metodologi berorientasi objek adalah suatu strategi pembangunan perangkat lunak yang mengorganisasikan perangkat lunak sebagai kumpulan objek yang berisi data dan operasi yang diberlakukan terhadapnya. Metologi berorientasi objek merupakan suatu cara bagaimana sistem perangkat lunak dibangun melalui pendekatan objek secara sistematis. Metode berorientasi objek didasarkan pada penerapan prinsip-prinsip pengelolaan kompleksitas. Metode berorientasi objek meliputi rangkaian aktifitas analisis berorientasi objek, perancangan berorientasi objek, pemrograman berorientasi objek dan pengujian berorientasi objek .

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

2.4.1 Konsep Dasar PBO

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

  2.4.1.1 Object

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

  2.4.1.2 Kelas (Class)

  Kelas adalah kumpulan objek-objek dengan karakteristik yang sama. Kelas merupakan definisi statis dan himpunan objek yang sama yang mungkin lahir atau diciptakan dan kelas tersebut.Sebuah kelas akan mempunyai sifat (atribut), kelakuan (operasi/metode), hubungan (relationship) dan arti. Suatu kelas dapat diturunkan dan kelas yang lain, di mana atribut dan kelas semula dapat diwariskan ke kelas yang baru.Secara teknis, kelas adalah sebuah struktur tertentu dalam

  18 pembuatan perangkat lunak. Kelas merupakan bentuk struktur padakode program yang menggunakan metodologi berorientasi objek

  2.4.1.3 Methode

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

  2.4.1.4 Encapsulation

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

  2.4.1.5 Inheritance (Pewarisan)

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

  2.4.1.6 Polimorfisme

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

  2.4.1.7 Antarmuka

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

  19

  2.4.1.8 Reusability

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

  2.4.1.9 Generalisasi Spesialisai

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

  2.4.1.10 Komunikasi Antar Object

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

  2.4.1.11 Package

  Package adalah sebuah kontainer atau kemasan yang dapat digunakan untuk mengelompokkan kelas-kelas sehingga memungkinkan beberapa kelas yang bernama sama disimpan dalam package yang berbeda.

  2.4.1.12 Atribute Atribut dari sebuah kelas adalah variabel global yang dimiliki sebuah kelas.

  Atribut dapat berupa nilai elemen-elemen data yang dimiliki oleh objek dalam kelas objek Atribut dipunyai secara individual oleh sebuah objek, misalnya berat, jenis, nama dan sebagainya.

  2.4.1.13 Abstraksi

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

2.4.2 Unified Modelling Language (UML)

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

  UML hanya berfungsi untuk melakukan pemodelan. Jadi penggunaan UML tidak terbatas pada metodologi tertentu, meskipun pada kenyataanya

  20 UML paling banyak digunakan pada metodologi berorientasi objek. Berikut merupakan macam-macam diagram UML:

  2.4.2.1 Use Case Diagram a.

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

  c.

  Dibuat berdasarkan interaksi dan relasi dari individual use case.

  d.

  Berisi aktor, event, dan use case.

  e.

  Titik awal untuk pemodelan UML.

  2.4.2.2 Activity Diagram

  Menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir.

  2.4.2.3 Sequence Diagram