HYBRID ALGORITMA CAT SWARM OPTIMIZATION (CSO) DAN SIMULATED ANNEALING (SA) UNTUK PERMASALAHAN LAND ALLOCATION Repository - UNAIR REPOSITORY

  Dyah Ayu Puspitasari. 2018. Hybrid

   Algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) untuk Permasalahan Land Allocation. Skripsi

  ini dibawah bimbingan Dr. Herry Suprajitno, M.Si dan Auli Damayanti, S.Si., M.Si. Departemen Matematika. Fakultas Sains dan Teknologi. Universitas Airlangga.

ABSTRAK

  Skripsi ini bertujuan untuk menyelesaikan masalah alokasi lahan dengan mendapatkan urutan masuk dari lahan komponen yang dapat meminimalkan tinggi lahan yang terpakai menggunakan hybrid algoritma cat swarm optimization dan simulated annealing serta membuat program komputer menggunakan bahasa pemrograman C++. Permasalahan alokasi lahan digambarkan dengan penempatan lahan komponen ke dalam lahan yang tersedia. Beberapa metode telah digunakan untuk menyelesaikan permasalahan alokasi lahan, salah satunya adalah cat swarm

  optimization .

  Cat Swarm Optimization

  (CSO) adalah algoritma yang didapat melalui pengamatan terhadap perilaku sekumpulan keluarga kucing, sedangkan Simulated

  Annealing adalah metode yang meniru perilaku pergerakan atom atom baja yang

  dipanaskan kemudian didinginkan secara perlahan. Hybrid algoritma cat swarm

  optimization

  dan simulated annealing merupakan algoritma yang menggabungkan proses algoritma cat swarm optimization dan simulated annealing. Proses

  simulated annealing

  diletakkan pada solusi terburuk dari cat swarm optimization pada 10 iterasi pertama. Proses hybrid algoritma cat swarm optimization dan

  simulated annealing dimulai dengan input data dan inisialisasi parameter,

  membangkitkan posisi dan kecepatan awal, mengevaluasi fungsi tujuan, memberi nilai SPC, penempatan flag, mode seeking, mode tracing, pemilihan solusi untuk diproses dengan algoritma simulated annealing, melakukan proses algoritma

  simulated annealing terhadap solusi terburuk cat swarm optimization dengan modifikasi, pencarian lokal, pemilihan, dan penurunan suhu.

  Data yang digunakan berupa 2 jenis data dan diselesaikan dengan bahasa pemrograman C++ menggunakan software Borland C++ 5.0.2. Penyelesaian yang didapatkan menggunakan program hybrid algoritma cat swarm optimization dan

  simulated annealing untuk data pertama dengan jumlah lahan sebanyak 13 unit

  dan lebar lahan 200 feet, didapatkan tinggi minimum lahan terpakai adalah 50

  feet

  . Untuk data kedua dengan jumlah lahan 75 unit dan lebar lahan 250 meter, didapatkan tinggi minimum lahan terpakai adalah 222 meter. Kata kunci : Penataan Lahan, Algoritma Cat Swarm Optimization, Simulated Annealing , dan Hybrid. ix Dyah Ayu Puspitasari. 2018.

  Hybrid Cat Swarm Optimization Algorithm and Simulated Annealing for Land Allocation Problem. This Thesis was under guidance of Dr. Herry Suprajitno, M.Si and Auli Damayanti, S.Si., M.Si.

  Mathematics Department. Science and Technology Faculty. Airlangga University.

ABSTRACT

  This thesis has purpose to solve land allocation problem to get the pack order of component land into a square of land so that will minimize used object height using hybrid of Cat Swarm Optimization Algorithm and Simulated Annealing, and making a computer program of it using C++ languange programming. Land allocation problem can be presented by placement of component land into a square of land. Several methods have been used to solve land allocation problems, ones of which is cat swarm optimization.

  Cat Swarm Optimization (CSO) is an algorithm obtained through observation of the behavior of a family of cats, while Simulated Annealing is a method that mimics the behavior of later heated steel atomic atoms cool down slowly. Hybrid

  of Cat Swarm Optimization algorithm and Simulated Annealing is an algorithm that combines the process of Cat Swarm Optimization algorithm with Simulated Annealing. Process Simulated Annealing putting on the bad solution Cat Swarm Optimization on the 10 first iterasions. Process hybrid algorithm CSO and SA begins with data input and initialization parameters, raised position and the initial velocity, evaluate the objective function, giving a value of SPC, the placement of the flags, seeking mode, tracing mode, electoral solution to be processed by this algorithm, the process of this algorithm to the solution the worst in the CSO with modifications, local search, selection, and drop in temperature.

  There’s 2 kinds of data being used and solve with C++ programming language using Borland C++ 5.0.2 software. Using hybrid of cat swarm optimization algorithm and simulated annealing with C++ programming language, achieved minimum height from used object is 50 feet for data with 13 component land and object width 200 feet. Second data with 75 component land and object width 250 meters, the minimum height achieved is 222 meters.

  Key Words : Land Allocation, Cat Swarm Optimization Algorithm, Simulated Annealing, and Hybrid. x

DAFTAR ISI Halaman

  5 2.2 Masalah Pengepakan Segi Empat 2 Dimensi .....................................

  2.4 Algoritma Simulated Annealing (SA) ................................................ 11

  2.3.3 Tracing Mode ............................................................................ 10

  9

  7 2.3.2 Seeking Mode ..........................................................................

  6 2.3.1 Set Solusi dalam Model ............................................................

  6 2.3 Algoritma Cat Swarm Optimization ..................................................

  5 2.2.1 Strip Packing Problem ..............................................................

  x

   

  3 BAB II TINJAUAN PUSTAKA ......................................................................

  3 1.5 Batasan Masalah ................................................................................

  3 1.4 Manfaat ..............................................................................................

  2 1.3 Tujuan ................................................................................................

  1 1.2 Rumusan Masalah ..............................................................................

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

  LEMBAR JUDUL ........................................................................................... i LEMBAR PERNYATAAN ............................................................................. ii LEMBAR PENGESAHAN NASKAH SKRIPSI ............................................ iii LEMBAR PEDOMAN PENGGUNAAN SKRIPSI ........................................ iv SURAT PERNYATAAN ORISINALITAS .................................................... v KATA PENGANTAR ..................................................................................... vi ABSTRAK ....................................................................................................... ix ABSTRACT ..................................................................................................... x DAFTAR ISI .................................................................................................... xi DAFTAR TABEL ............................................................................................ xiii DAFTAR GAMBAR ....................................................................................... xv DAFTAR LAMPIRAN .................................................................................... xvii BAB I PENDAHULUAN ................................................................................

  4 2.1 Land Allocation Problemms ..............................................................

  2.5 Hybrid ................................................................................................ 13

  2.6 Pengkodean ........................................................................................ 13

  2.7 Penentuan Nilai Fitness dan Seleksi Roulette Wheel ......................... 14

  2.8 Algoritma Pengisian Rekursif ............................................................ 15

  2.9 Borland C++ ...................................................................................... 16

  2.9.1 Struktur Bahasa C++ ................................................................. 16

  BAB III METODOLOGI PENELITIAN......................................................... 20 BAB IV PEMBAHASAN ................................................................................ 29

  4.1 Masalah Alokasi Lahan ...................................................................... 29

  4.2 Hybrid Algoritma Cat Swarm Optimization dan Simulated

  Annealing

  ........................................................................................... 29

  4.2.1 Input Data dan Inisialisasi Parameter ..................................... 30

  4.2.2 Membangkitkan Solusi Awal .................................................. 31

  4.2.3 Membangkitkan Kecepatan Awal ........................................... 32

  4.2.4 Representasi Permutasi ........................................................... 33

  4.2.5 Menghitung Nilai Fungsi Tujuan ............................................ 34

  4.2.6 Menghitung Nilai Fitness ....................................................... 36

  4.2.7 Melakukan Penentuan Flag .................................................... 36

  4.2.8 Menentukan Self Position Considering (SPC) ........................ 37

  4.2.9 Melakukan Proses Mode Seeking ........................................... 38

  4.2.10 Melakukan Proses Mode Tracing ........................................... 39

  4.2.11 Penentuan Solusi Terburuk pada CSO .................................... 41

  4.2.12 Proses Simulated Annealing ................................................... 42

  4.2.13 Menyimpan Solusi Terbaik ..................................................... 43

  4.3 Data .................................................................................................... 44

  4.4 Contoh Kasus Masalah Alokasi Lahan dengan Menggunakan Data 13 Lahan Komponen yang Diselesaikan Secara Manual ........................ 44

  4.5 Program .............................................................................................. 69

  4.6 Implementasi Program pada Contoh Kasus Land Allocation ............ 69

  4.6.1 Menggunakan Data 13 Lahan Komponen ................................ 69

  4.6.2 Menggunakan Data 75 Lahan Komponen ................................ 70 xi

   

  BAB V PENUTUP ........................................................................................... 72

  5.1 Kesimpulan ........................................................................................ 72

  5.2 Saran .................................................................................................. 72 DAFTAR PUSTAKA ...................................................................................... 73 LAMPIRAN xii

   

DAFTAR TABEL Nomor Judul Tabel Halaman

  59

  4.14 Hasil update kecepatan kucing 3

  55

  4.15 Hasil update posisi kucing 3

  56

  4.16 Hasil transformasi update kucing 3

  56

  4.17 Perbandingan nilai fitness baru dan nilai fitness lama

  57

  4.18 Proses Pengcopyan Individu 2 Sebanyak SMP-1 Kali

  58

  4.19 Penentuan Dimensi untuk Modifikasi

  4.20 Kandidat Solusi Dalam Seeking Memory Pool Individu 2

  4.13 Nilai fitness terurut dan SPC populasi awal xv

  60

  4.21 Representasi Permutasi dalam SMP-1 individu 2 dan Fleksibilitas

  60

  4.22 Tinggi dan Nilai Fitness

  61

  4.23 Probabilitas Terpilih SMP-1 Individu 2

  61

  4.24 Probabilitas Relatif SMP Individu 2

  62

  4.25 Roulette Wheel Individu 2

  63

  54

  xiv

   

  48

  4.1 Spesifikasi dan Ukuran Departemen

  45

  4.2 Area Komponen dan Dimensi yang Sesuai

  45

  4.3 Populasi Awal Kucing

  46

  4.4 Kecepatan Awal Kucing

  47

  4.5 Hasil Transformasi Kucing pada Populasi Awal

  47

  4.6 Urutan Masuk Lahan Kucing-1 ( )

  4.7 Subspace Setelah Lahan ke-1 Masuk

  populasi awal

  49

  4.8 Subspace Setelah Lahan ke-2 Masuk

  49

  4.9 Subspace Setelah Lahan ke-3 Masuk

  50

  4.10 Subspace Setelah Semua Lahan Masuk

  51

  4.11 Nilai fungsi tujuan masing-masing kucing

  52

  4.12

  flag

  53

   

  4.30 Roulette Wheel Individu 1

  4.33 Perbandingan Solusi Terbaik Data 75 Lahan Komponen

  70

  4.32 Perbandingan Solusi Terbaik Data 13 Lahan Komponen

  68

  4.31 Urutan lahan komponen masuk setelah modifikasi

  66

  65

  4.26 Kandidat Solusi Dalam Seeking Memory Pool Individu 1

  4.29 Probabilitas Terpilih dan Probabilitas Relatif SMP Individu 1 (

  65

  4.28 Tinggi dan Nilai Fitness SMP Individu 1

  64

  4.27 Representasi Permutasi dalam SMP individu 1 dan Fleksibilitas

  64

  71

DAFTAR GAMBAR Nomor Judul Gambar Halaman

  42

  39

  4.11 Prosedur update kecepatan pada mode tracing

  40

  4.12 Prosedur update posisi tiap kucing pada mode tracing

   

  40

     

  4.13 Prosedur perbandingan fitness lama dan fitness baru

  41

  4.14 Prosedur penentuan solusi terburuk

  4.15 Prosedur proses Simulated Annealing

  38

  43

  4.16 Prosedur menyimpan solusi Terbaik (Global Best)

  44

  4.17 Lahan ke-1 masuk

  49

  4.18 Lahan ke-2 masuk

  50

  4.19 Lahan ke-3 masuk

  51

  4.20 Hasil penempatan lahan

  52

  4.10 Prosedur update kecepatan pada mode seeking

  xvi

   

  4.2 Prosedur Input Data dan Inisialisasi Parameter

  2.1 Algoritma Pengisian Rekursif

  15

  3.1 Flowchart Penyelesaian Land Allocation menggunakan Hybrid

  Algoritma CSO dan SA

  25

  3.2 Flowchart Mode Tracing

  27

  3.3 Flowchart Mode Seeking

  28

  4.1 Prosedur Hybrid Algoritma CSO dan SA

  30

  31

  37

  4.3 Membangkitkan Populasi awal

  31

  4.4 Membangkitan Kecepatan Awal

  32

  4.5 Prosedur Permutasi Objek

  33

  4.6 Prosedur Memasukkan Lahan ke Lahan yang Tersedia

  35

  4.7 Prosedur menghitung nilai fitness tiap kucing

  36

  4.8 Prosedur penentuan flag

  4.9 Prosedur menentukan Self Position Considering

DAFTAR LAMPIRAN Nomor Judul Lampiran

  xiv

   

  1 Data Permasalahan Pengepakan Segi Empat 2D dengan 75 Lahan Komponen

  2 Source Code Program

  3 Hasil Running Data Kecil 13 Lahan Komponen

  4 Hasil Running Data Besar 75 Lahan Komponen

  Pada jaman sekarang banyak alokasi penggunaan lahan yang tidak efisien dan tidak sesuai dengan tata letak lahan yang baik. Hal ini menyebabkan berbagai dampak negatif, diantaranya meningkatnya ketidakteraturan tata letak lahan, kerusakan lingkungan, dan hilangnya lahan yang seharusnya dapat digunakan secara optimal. Penggunaan lahan dapat diartikan sebagai proses alokasi sejumlah aktivitas atau fungsi lahan yang berbeda (pertanian, industri, rekreasi atau konservasi) ke dalam unit area yang lebih spesifik. .

  (Stewart et al, 2007)

  Masalah penataan lahan (land allocation) yakni untuk mengendalikan segala bentuk efisiensi lahan yang telah ditetapkan, agar terwujudnya tata letak lahan yang rapi, produktif, nyaman, serta memberikan dampak positif bagi daerah tersebut. Masalah penataan lahan (land allocation) salah satu contoh aplikasi masalah pengepakan segi empat 2 dimensi.

  Masalah pengepakan segi empat 2 dimensi adalah masalah penempatan sejumlah item ke objek persegi panjang dengan tujuan meminimalkan ruang obyek yang digunakan. Proses pengepakan tidak boleh ada yang saling tumpang tindih antar item satu dengan item lainnya.

  (Dereli dan Sena Das, 2006)

  Permasalahan land allocation yang didasarkan pada prosedur permasalahan pengepakan segi empat 2 dimensi ini harus mempertimbangkan tentang kompleknya masalah yang ada. Selain itu, pengembangan algoritma yang digunakan untuk menyelesaikan masalah

  land allocation

  haruslah mudah menyelesaikan masalah yang bertujuan untuk meminimalkan penempatan lahan yang terpakai.

  1 Algoritma Cat Swarm Optimization dikenalkan pertama kali oleh Shu

  Cuan Chu

  dan Pe Wei Tsai pada tahun 2007

  (Chu dan Tsai, 2007). Pada

  awal tahun 2013 beberapa studi telah dikembangkan untuk mengaplikasikan

  Cat Swarm Optimization

  dalam menyelesaikan berbagai persoalan di dunia nyata. Salah satunya adalah menerapkan Algoritma Cat Swarm Optimization untuk Optimal Power Flow Problem,

  (Suryakumari, 2013). Menurut

  Suryakumari (2013), Cat Swarm Optimization memiliki keunggulan performa yang lebih baik dalam menemukan solusi global dibandingkan PSO atau PSO

  with Weighting Factor.

  Sedangkan pada algoritma simulated annealing (SA), algoritma ini beranalogi dengan proses annealing (pendinginan) yang diterapkan dalam pembuatan material glassy (terdiri dari butir kristal). Proses annealing dapat didefinisikan sebagai penurunan temperatur secara teratur atau konstan pada benda padat yang sebelumnya sudah dipanaskan sampai keadaan dimana benda tersebut mencapai ground state / freezing point atau dengan kata lain benda mencapai titik bekunya. Sedangkan, kelebihan simulated annealing (SA) ini akan menghindari terjadinya minimum lokal karena algoritma ini merupakan algoritma dengan metode stokastik yang efektif.

  (Chibante,2010)

  Berdasarkan uraian di atas, penulis akan melakukan penelitian terhadap masalah land allocation menggunakan hybrid algoritma Cat Swarm

  Optimization (CSO) dan Simulated Annealing (SA).

  Berdasarkan latar belakang, ada rumusan masalah yang dibahas dalam proposal ini, yaitu:

  1. Bagaimana menyelesaikan permasalahan land allocation dengan menggunakan hybrid algoritma Cat Swarm Optimization (CSO) dan

  Simulated Annealing

  (SA)?

  2. Bagaimana membuat program dari hybrid algoritma Cat Swarm

  Optimization

  (CSO) dan Simulated Annealing (SA) yang dapat digunakan untuk menyelesaikan permasalahan land allocation?

  3. Bagaimana mengimplementasikan program tersebut pada contoh kasus?

  1.3 Tujuan

  Tujuan penulisan skripsi ini adalah:

  1. Menyelesaikan permasalahan land allocation dengan menggunakan

  hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing

  (SA).

  2. Membuat program dari hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) yang dapat digunakan untuk menyelesaikan permasalahan land

  allocation .

  3. Mengimplementasikan program pada contoh kasus.

  1.4 Manfaat

  Manfaat penulisan skripsi ini antara lain:

  1. Menambah wawasan tentang persoalan Riset Operasional khususnya untuk masalah land allocation.

  2. Program komputer yang dibuat diharapkan mampu memberikan solusi dari masalah land allocation.

  3. Informasi yang didapat dari skripsi ini dapat dilanjutkan untuk skripsi selanjutnya dengan berbagai modifikasi.

  1.5 Batasan Masalah

  Batasan masalah dalam proposal ini adalah sebagai berikut: 1. Lahan komponen yang digunakan berbentuk persegi..

  2. Tidak memperhatikan aktifitas antar lahan komponen, tetapi hanya memperhatikan penempatan lahan komponen.

  3. Setiap lahan komponen sudah dipersiapkan fasilitas yang dibutuhkan lahan tersebut.

  2.1 Land Allocation Problems Land Allocation Problems merupakan salah satu permasalahan resource allocation problem yang secara umum memiliki dua langkah penyelesaian,

  yaitu yang pertama adalah menentukan jumlah total lahan komponen, dan yang kedua adalah menentukan lokasi yang optimal dari setiap masing-masing lahan komponen sehingga penggunaan dari lahan yang tersedia menjadi minimal.

  (Callaghan, dkk, 1999)

  2.2 Masalah Pengepakan Segi Empat 2 Dimensi

  Menurut Dereli dan Sena Das (2006), masalah pengepakan segi empat

  2D adalah penempatan sejumlah item berbentuk segi empat (yang kecil) ke dalam satu objek segi empat (yang besar) dalam dua dimensi sehingga dapat meminimalkan tinggi objek yang terpakai.

  Masalah pengepakan berupa, terdapat n item (segi empat kecil) yang i i masing-masing memiliki tinggi h dan lebar w , i=1,2,...,n dan satu atau lebih objek yang lebih besar (segi empat). Kita diharuskan menempatkan item secara ortogonal tanpa overlap (ujung dari setiap item paralel dengan ujung dari objek) sehingga dapat mengoptimalkan fungsi yang diberikan.

  (Imahori, dkk, 2007) 5  Permasalahan ini merupakan bagian dari masalah pengepakan segi i i empat. Terdapat n item yang memiliki lebar w dan tinggi h 1,2,3, … , serta satu objek besar (disebut strip) yang memiliki lebar tetap W, tetapi tingginya H merupakan variabel. Fungsi objektif dari permasalahan ini adalah untuk meminimalkan tinggi dari H sehingga semua item dapat dimasukkan ke dalam strip.

  Umumnya, secara matematik permasalahan ini dideskripsikan sebagai berikut: Meminimumkan H Kendala:

  , 1 (2.1) , 1

  (2.2) i ,y i , , , (2.3) Dengan (x ) adalah koordinat dari ujung kiri bawah dari item ke i.

  H

  tinggi dari strip/ objek. Pernyataan (2.1) dan (2.2) menyatakan bahwa setiap item harus ditempatkan ke dalam lahan yang tersedia. Pada pernyataan (2.3) setidaknya satu dari empat pernyataan terpenuhi untuk setiap pasang i dan j.

  Pernyataan (2.3) sendiri menyatakan bahwa tidak ada dua item yang saling bertumpukan dan menyatakan empat sudut relatif yang dibutukan untuk menghindari overlap.

  (Imahori, dkk, 2007)

  Definisi 2.1 Algoritma merupakan suatu himpunan langkah-langkah atau

  instruksi yang telah dirumuskan dengan baik (well defined) untuk memperoleh suatu keluaran khusus (spesific output) dari suatu masukan khusus (spesific input) dalam langkah yang jumlahnya berhingga.

  (Chartrand dan Oellermann, 1993)

  Cat Swarm Optimization

  adalah algoritma yang diusulkan oleh Shu- Chuan Chu dan Pei-Wei Tsai pada tahun 2007, yang didapat melalui pengamatan terhadap perilaku sekumpulan keluarga kucing. Dalam Ant

  Colony Optimization

  (ACO) semut digunakan sebagai agent, dan jalur yang dilalui oleh semut-semut tersebut adalah set solusinya. Dalam Particle Swarm

  Optimization (PSO), posisi-posisi dari kawanan burung digunakan untuk

  menggambarkan set solusinya. Sedangkan, dalam CSO, sekumpulan keluarga kucing dan model perilakunya digunakan untuk menyelesaikan permasalahan optimasi. Shu-Chuan Chu dan Pei-Wei Tsai (2007) membagi algortima CSO ke dalam dua sub model yang berdasar dari dua perilaku utama kucing, yaitu ”seeking mode” dan ”tracing mode”. Untuk lebih jelasnya langkah-langkah algoritma CSO seperti yang Shu-Chuan Chu dan Pei-Wei Tsai (2007) dalam penelitiannya akan dijabarkan dalam sub bab berikutnya.

  (Chu dan Tsai , 2007)

  Bagaimanapun bentuk algoritma optimasi, set solusi (hasil) harus ditampilkan dalam suatu cara tertentu. Misalnya dalam Ant Colony

  Optimization

  (ACO) semut disimulasikan sebagai agen, dan jalur yang dibentuk oleh semut menunjukkan set solusinya. Dalam CSO, digunakan kucing dan model perilaku kucing untuk menyelesaikan permasalahan optimasi. Dengan kata lain kucing digunakan untuk menggambarkan set solusi. Tahap pertama dalam CSO adalah menentukan berapa banyak kucing akan digunakan dalam iterasi, kemudian menggunakan kucing dalam CSO untuk menyelesaikan permasalahan. Setiap kucing masing-masing memiliki posisi yang tersusun dalam dimensi D, kecepatan untuk setiap dimensi, nilai

  fitness

  yang menunjukkan seberapa bagus posisi kucing untuk dijadikan solusi, dan bendera untuk mengetahui apakah kucing berada dalam seeking

  mode

  atau tracing mode. Solusi akhir adalah posisi terbaik dari salah satu kucing. CSO akan menyimpan solusi terbaik hingga akhir iterasi.

  (Chu dan Tsai , 2007)

Langkah-Langkah Algoritma Cat Swarm Optimization

  Seperti yang telah dijabarkan sebelumnya, CSO terdiri dari dua sub mode. Untuk mengkombinasikan kedua mode dalam satu algoritma, perlu didefinisikan rasio campuran / mixture ratio (mr) untuk menggabungkan

  seeking mode

  dan tracing mode. Dengan mengamati perilaku kucing, dapat diketahui bahwa kucing menghabiskan sebagian besar waktunya untuk beristirahat. Selama beristirahat, kucing mengubah posisinya perlahan dan berhati-hati, terkadang bahkan tetap pada tempatnya. Untuk menerapkan perilaku ini ke dalam CSO, digunakan seeking mode. Perilaku mengejar target diaplikasikan dalam tracing mode. Karena itu maka mr harus bernilai kecil untuk memastikan bahwa kucing menghabiskan sebagian besar waktu dalam seeking mode, seperti di kehidupan nyatanya.

Proses CSO dapat digambarkan dalam 6 langkah sebagai berikut:

  Langkah 1: Bangkitkan N kucing dalam proses. Langkah 2

  : Sebarkan kucing secara acak dalam ruang solusi berdimensi D

  dan secara acak pula pilih nilai dalam rentang kecepatan maksimum untuk menjadi kecepatan kucing. Kemudian pilih sejumlah kucing secara sembarang dan masukkan dalam tracing mode sesuai MR, sisanya dimasukkan dalam seeking mode

  Langkah 3 : Hitung nilai fitness masing-masing kucing dengan

  memasukkan nilai posisi kucing yang telah diubah menjadi representasi permutasi ke dalam fungsi fitness, dan simpan kucing terbaik dalam memori. Perlu diingat bahwa yang perlu disimpan adalah posisi kucing best terbaik (x ) karena kucing terbaik sejauh ini mewakili solusi terbaik.

  Langkah 4:

  Pilih lagi sejumlah kucing dan masukkan dalam tracing mode sesuai mr, sisanya masukkan ke dalam seeking mode.

  Langkah 5 k

  berada

  : Pindahkan kucing sesuai benderanya, jika kucing

  dalam seeking mode, perlakukan sesuai proses seeking mode, sebaliknya perlakukan sesuai tracing mode.

  Langkah 6:

  Perhatikan iterasi maksimum-nya. Jika telah terpenuhi hentikan program. Sebaliknya ulangi langkah 3 hingga 5.

  (Chu dan Tsai , 2007)

  Sub model ini digunakan untuk memodelkan situasi kucing ketika dalam keadaan beristirahat, melihat sekeliling dan mencari posisi berikutnya untuk bergerak. Dalam seeking mode, didefinisikan empat faktor penting: seeking

  memory pool

  (SMP), seeking range of the selected dimension (SRD) ,counts

  of dimension to change (CDC) , dan self-position considering (SPC) atau

  mempertimbangkan posisi. SMP digunakan untuk mendefinisikan ukuran memori pencarian untuk masing-masing kucing, yang mengindikasikan titik-titik yang telah dicoba oleh kucing. Kucing tersebut kemudian akan memilih titik dari kelompok memori berdasarkan aturan yang akan dijelaskan kemudian. SRD menyatakan rentang perpindahan dalam dimensi terpilih. Dalam seeking mode, jika suatu dimensi diputuskan berpindah, selisih antara nilai baru dengan yang lama tidak boleh melebihi suatu rentang, yaitu rentang yang didefinisikan oleh SRD. CDC memperlihatkan berapa banyak dimensi yang akan berubah. Keseluruhan faktor inilah yang memegang peran penting dalam seeking mode. SPC merupakan variabel

  Boolean

  (bernilai 0 atau 1), untuk memutuskan apakah suatu titik, yang pernah menjadi posisi kucing, akan menjadi kandidat posisi untuk bergerak. Bagaimanapun nilai SPC, entah 0 ataupun 1, tidak akan mempengaruhi nilai SMP .

  (Chu dan Tsai , 2007) Langkah-langkah seeking mode dapat dideskripsikan dalam 5 tahap:

  Diasumsikan terdapat sebanyak a kucing berflag 1 dan setiap kucing mempunyai dimensi sebanyak D 1,2,3, … ,

  Langkah 1: Bangkitkan j tiruan dari posisi kucing 1,d , dengan j = SMP.

  Jika nilai SPC=1, maka j = (SMP–1), kemudian pertahankan posisi saat ini sebagai salah satu kandidat.

  Langkah 2:

  Untuk setiap tiruan dari kucing 1,d , pilih sebanyak CDC posisi d secara acak, untuk setiap posisi d yang terpilih .tambahkan atau kurangkan SRD persen dari nilai saat ini dan gantikan nilai yang sebelumnya.

  Langkah 3: Hitung nilai fitness (FS) untuk semua titik kandidat. Langkah 4:

  Jika semua FS tidak benar benar sama, hitung probabilitas terpilih masing masing titik kandidat dengan menggunakan

  (2.4), sebaliknya update probabilitas terpilih untuk semua titik sama dengan 1.

  Langkah 5 : hitung probabilitas terpilih komulatif untuk semua titik

  kandidat dan lakukan roulette wheel untuk menentukan posisi baru dari kucing 1,d .

  

| |

.

  Keterangan:

   : probabilitas terpilih

: Fitness ke , dengan 1,2, . . , .

   : Fitness tertinggi : Fitness terendah

  Ulangi

langkah 1 sampai langkah 5 sebanyak a kali.

  (Chu dan Tsai , 2007)

  Tracing mode

  adalah sub model yang menggambarkan keadaan ketika kucing sedang mengikuti jejak targetnya. Sekali kucing memasuki tracing

  mode,

  kucing tersebut akan bergerak sesuai dengan kecepatannya untuk tiap dimensi.

  (Chu dan Tsai , 2007)

  Tahapan tracing mode dapat dijabarkan dalam 3 langkah sebagai berikut: Diasumsikan terdapat b kucing yang masuk dalam tracing mode.

  Langkah 1:

  Perbarui nilai kecepatan kucing

  1 untuk setiap dimensi (v 1,d )

  dengan 1,2,3, … , . Kemudian update kecepatan didapatkan berdasarkan

  (2.5) (2.5)

  , , , ,

  1,2 … , Keterangan:

  : nilai kecepatan kucing k baru pada dimensi d

  ,

  : nilai kecepatan kucing k lama pada dimensi ke d best,d ,

  x k,d : posisi kucing yang memiliki nilai fitness terbesar x : posisi kucing k pada dimensi ke d.

  : konstanta tracing : nilai acak dalam rentang [0,1].

  Langkah 2:

  Setelah melakukan upate kecepatan, langkah selanjutnya adalah mengupdate posisi tiap – tiap kucing.

  (2.6) , , ,

  1,2 … , Keterangan:

  : posisi kucing k baru pada dimensi d

  ,

  : nilai kecepatan kucing k baru pada dimensi ke d k,d ,

  x k : posisi kucing pada dimensi ke d.

  Langkah 3:

  Perbarui posisi kucing

  1 berdasarkan (2.6).

  Lakukan langkah 1 sampai langkah 3 sebanyak b kali.

  (Chu dan Tsai , 2007)

  Simulated Annealing

  (SA) adalah salah satu algoritma untuk optimasi yang bersifat umum. Fitur utama algoritma Simulated Annealing (SA) adalah kemampuan untuk menghindar dari perangkat minimum lokal, yaitu dengan membiarkan algoritma tersebut tidak hanya menerima solusi yang lebih baik, tetapi juga menerima solusi yang buruk dengan probabilitas tertentu.

  Annealing

  merupakan suatu teknik yang dikenal dalam bidang metalurgi yang digunakan dalam mempelajari proses pembentukan kristal dalam suatu materi. Atom–atom dari materi ini memiliki energi yang tinggi pada suhu yang tinggi. Hal ini memberikan atom banyak kebebasan dalam kemampuan untuk merestrukturisasi diri mereka sendiri. Seperti saat suhu berkurang, energi dari atom-atom tersebut menjadi berkurang sampai keadaan energi mencapai minimum, dan perlahan-lahan memungkinkan atom-atom yang tadinya bergerak bebas itu pada akhirnya menemukan tempat yang optimum.

  Simulated Annealing

  (SA) berjalan berdasarkan analogi dengan proses

  annealing yang telah dijelaskan. Gerakan bebas dari atom-atom pada materi,

  direpresentasikan dalam bentuk modifikasi terhadap solusi awal / solusi awal diatur tinggi, solusi sementara yang sudah ada diperbolehkan untuk mengambil modifikasi secara bebas.

  Bila nilai fungsi evaluasi hasil modifikasi ini membaik ( dalam masalah optimisasi yang berusaha mencari nilai minimum berarti nilainya lebih kecil /

  downhill

  ). Solusi hasil modifikasi ini akan digunakan sebagai solusi selanjutnya. Bila nilai fungsi evaluasi hasil modifikasi ini memburuk, pada saat temperatur annealing masih tinggi, solusi lebih buruk ( up hill ) ini masih mungkin diterima. Dalam tahap selanjutnya, saat temperatur sedikit demi sedikit dikurangi, maka kemungkinan untuk menerima langkah modifikasi yang tidak memperbaiki nilai fungsi evaluasi semakin berkurang.

  Secara umum prinsip dalam algoritma simulated annealing (SA) dapat dinyatakan sebagai berikut:

  1. Inisialisasi temperatur awal dan temperatur akhir .

  2. Inisialisasi individu awal

  3. Mengevaluasi individu awal sebagai solusi sementara

  5. Jika maka solusi sementara digantikan solusi baru.

  Jika tidak maka dibangkitkan bilangan acak r pada interval [0,1].

  ∆

  Hitung probabilitas exp , jika P > r maka solusi baru tetap diterima sebagai solusi sementara.

  6. Jika , maka algoritma berhenti. Jika tidak, hitung perubahan temperatur pada iterasi ke - t dengan

  1. Kemudian kembali ke langkah (4)

  (Chibante, 2010)

  2.5 Hybrid Hybrid algoritma adalah perkawinan antara dua jenis yang berlainan.

  Sehingga algoritma hybrid dapat dikatakan sebagai gabungan antara dua algoritma.

  (Milano dan Henterryck, 2010)

  2.6 Pengkodean

  Jenis-jenis pengkodean:

  1. Pengkodean Biner Adalah pengkodean yang setiap kromosomnya dinyatakan (disimbolkan) dengan dua bilangan, yaitu 0 dan 1.

  2. Pengkodean Nilai Adalah pengkodean yang setiap kromosomnya direpresentasikan sebagai nilai (nilai dapat berupa angka, bilangan real, atau karakter).

  3. Pengkodean Permutasi Adalah pengkodean yang setiap kromosomnya direpresentasikan sebagai sebuah urutan bilangan.

  (Obitko, 1998)

  Nilai Fitness

  adalah nilai keandalan suatu individu pada suatu ukuran populasi tempat individu itu berasal. Individu dengan nilai fitness yang tinggi akan dapat kesempatan lebih besar untuk survive dalam populasi selanjutnya. Rumus pencarian nilai fitness

  (fitness value) tergantung pada permasalahan yang akan diselesaikan.

  Untuk melakukan seleksi individu baru dalam mode seeking , sesuai dengan jurnal Shu-Chuan Chu dan Pei-Wei Tsai (2007) dilakukan dengan roulette wheel.

  Dalam Obitko (1998), seleksi (selection) merupakan proses pemilihan individu, menurut teori evolusi, individu yang terbaik seharusnya bertahan dan membentuk keturunan baru.

  a. Seleksi Roulette Wheel Sebuah roulette wheel (roda rolet) yang ditempati semua individu dalam populasi. Masing-masing individu menempati luasan menurut nilai fitnessnya. Selanjutnya roda rolet diputar untuk menyeleksi individu. Kromosom dengan fitness yang lebih besar akan terseleksi beberapa kali.

  (Obitko 1998)

  Langkah-langkah seleksi roulette wheel dapat dijelaskan sebagai berikut :

  a. Menghitung nilai fitness setiap kromosom, dinotasikan dengan 1,2, … ,

  b. Menghitung jumlah total nilai fitness semua kromosom dalam populasi, dinotasikan F c. Menghitung peluang terpilih dari setiap kromosom, p i = f i /F

  d. Menghitung peluang kumulatif setiap kromosom,

  e. Membangkitkan bilangan random antara (0,1) kemudian dinotasikan r f. Jika r ≤ q1, maka kromosom pertama terpilih; yang lain, pilih kromosom ke i apabila qi-1 < r ≤ qi (

  Gen dan Cheng, 1997)

  Langkah-langkah algoritma ini adalah:

  1. Menempatkan item pertama ke dalam objek (Operasi ini membagi daerah objek menjadi dua subspace).

  2. Menempatkan item selanjutnya ke dalam subspace S

  1 . Jika hal ini tidak

  memungkinkan, maka ditempatkan ke dalam subspace S

  2 . Lakukan prosedur ini hingga seluruh item ditempatkan ke dalam objek.

Gambar 2.1 Algoritma Pengisian Rekursif (Dereli dan Das, 2006) Berbicara tentang C++ biasanya tidak lepas dari C, sebagai bahasa pendahulunya. Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada sekitar tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk sejumlah blok. Tujuannya adalah untuk memudahkan dalam pembuatan dan pengembangan program. Pada mulanya C++ disebut “a better C”. Nama C++ sendiri diberikan oleh Rick Masciti pada musim panas 1983. Adapun tanda ++ berasal dari nama operator penaikan pada bahasa C.

  Keistimewaan yang sangat berarti pada C++ adalah bahasa ini mendukung pemrograman yang berorientasi obyek. Tujuan utama pembuatan C++ adalah untuk meningkatkan produktivitas pemrograman dalam membuat aplikasi.

  (Kadir, 2005)

  C++ diciptakan oleh Bjarne Stoustrup di Laboratorium Bell, AT & T, pada tahun 1980-an. C++ digunakan oleh banyak industri karena efisien, dapat digunakan untuk menyelesaikan masalah dalam segala bidang (fleksibel) dan compiler C tersedia di hampir seluruh jenis komputer (avaible).

  (

  Horowitz et.al., 2006)

Program C ataupun C++ selalu tersusun dari 4 bagian utama, yaitu:

  1. Bagian komentar

  2. Bagian pengarah compiler

  3. Bagian deklarasi

  4. Bagian definisi

  a. Bagian komentar Program yang baik pada umumnya diberi komentar yang akan membantu orang lain maupun pembuat program ini untuk memahami program yang dibuat. Dalam C atau C++ setiap proposal yang diapit oleh variabel /*...*/ atau setiap baris yang dimulai dengan variabel // dianggap komentar. C++ tidak mengizinkan komentar bersarang (nested comment), namun Borland C++ lebih fleksibel dalam hal ini. Pada Borland C++ dapat menggunakan komentar bersarang asalkan opsi cek Nested Comment pada menu Option/Compiler/Source dipilih.

  b. Bagian pengarah compiler Include adalah salah satu pengarah preprocessor directive yang tersedia pada C++. Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Bentuk umumnya: #include<nama_file> tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan preprocessor directive. Baris tersebut menginstruksikan kepada compiler yang menyisipkan file lain dalam hal ini file yang berakhiran .h(fileheader) yaitu file yang berisi sebagai deklarasi, contohnya:

  1. #include <iostream.h> : diperlukan pada program yang melibatkan objectcout. 2. #include <conio.h> : diperlukan bila melibatkan clrscr(), yaitu perintah untuk membersihkan layar. 3. #include <iomanip.h> : diperlukan bila melibatkan setw(), yang bermanfaat untuk mengatur lebar dari suatu tampilan data. 4. #include <math.h> : diperlukan pada program yang menggunakan operasi sqrt(), yang bermanfaat untuk operasi matematika pengakaran.

  c. Fungsi main() Fungsi ini menjadi awal dan akhir eksekusi program C++. Main adalah nama judul fungsi. Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama berada didalam fungsi main().

  d. Pengaruh compiler #if, #else, #elif, #endif Digunakan untuk memilih bagian program yang akan dikompilasi.

  Kompilasi cara ini disebut kompilasi bersyarat dan program yang baik biasanya memanfaatkan teknik ini.

  e. Pengaruh compiler #ifdef, #ifndef

  Digunakan juga dalam kompilasi bersyarat. #ifdef dapat dibaca: “jika didefinisikan” dan #ifndef dapat dibaca: “jika tidak didefinisikan”. Pengaruh compiler ini sering digunakan untuk menandai bahwa suatu file sudah diikutsertakan dalam kompilasi.

  f. Bagian deklarasi dan definisi Semua program C pada dasarnya tersusun dari rangkaian pemanggilan fungsi yang bekerja atas sekelompok data. Selain pemanggilan fungsi, program C mengandung komponen lain yang disebut statement. Statement C ada dua, yaitu statement yang tidak dapat dieksekusi/non-executable (bila dikompilasi tidak menghasilkan kode objek dan biasanya digunakan untuk mengatur alur program), dan statement yang dapat dieksekusi/executable (bila dikompilasi akan menghasilkan objek). Setiap pemanggilan fungsi maupun statement executable dalam C harus diakhiri dengan tanda titik koma. Dalam contoh program C++ diatas, Return merupakan contoh