IR - PERPUSTAKAAN UNIVERSITAS AIRLANGGA

dokumen-dokumen yang mirip
BAB II TINJAUAN PUSTAKA. Job shop scheduling problem (JSSP) adalah permasalahan optimasi

PENERAPAN ALGORITMA CAT SWARM OPTIMIZATION (CSO) UNTUK MENYELESAIKAN MULTI - DEPOT VEHICLE ROUTING PROBLEM (MDVRP) SKRIPSI

SKRIPSI HYBRID ALGORITMA CAT SWARM OPTIMIZATION (CSO) DAN TABU SEARCH (TS) UNTUK PENYELESAIAN PERMUTATION FLOWSHOP SCHEDULING PROBLEM (PFSP)

PENERAPAN ALGORITMA CAT SWARM OPTIMIZATION (CSO) UNTUK MENYELESAIKAN QUADRATIC ASSIGNMENT PROBLEM (QAP)

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

IMPLEMENTASI ALGORITMA CAT SWARM OPTIMIZATION DALAM MENYELESAIKAN JOB SHOP SCHEDULING PROBLEM (JSSP)

HYBRID ALGORITMA PARTICLE SWARM OPTIMIZATION (PSO) DENGAN SIMULATED ANNEALING (SA) PADA TRAVELING SALESMAN PROBLEM (TSP) SKRIPSI

PENGENALAN C++ Bab 1

MODUL PRAKTIKUM ALGORITMA DAN PEMOGRAMAN I. Oleh : Wahyu Widodo, S.Kom

Komentar, Identifier, Konstanta dan Variabel

BAB 2 LANDASAN TEORI

Struktur Bahasa C dan C++

ALGORITHM 7 C++ Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN

Bahasa C. Dosen : Dhamayanti

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

ERWIEN TJIPTA WIJAYA, ST.,M.KOM

BAB II TINJAUAN PUSTAKA

Pendekatan Algoritma Genetika pada Peminimalan Fungsi Ackley menggunakan Representasi Biner

PENGENALAN C++ DADANG MULYANA 2012

BAB III PERANCANGAN. Gambar 3.1 di bawah ini mengilustrasikan jalur pada TSP kurva terbuka jika jumlah node ada 10:

PEMROGRAMAN TERSTRUKTUR OLEH : IR. H. SIRAIT, MT

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

Dasar Pemrograman Mikrokontroler dengan Bahasa C

SWARM GENETIC ALGORITHM, SUATU HIBRIDA DARI ALGORITMA GENETIKA DAN PARTICLE SWARM OPTIMIZATION. Taufan Mahardhika 1

BAB 2 LANDASAN TEORI

ABSTRAK. Universitas Kristen Maranatha

APLIKASI SIMULATED ANNEALING UNTUK MENYELESAIKAN TRAVELLING SALESMAN PROBLEM

BAB 2 LANDASAN TEORI. 2.1 Algoritma

PENERAPAN ALGORITMA GENETIKA UNTUK TRAVELING SALESMAN PROBLEM DENGAN MENGGUNAKAN METODE ORDER CROSSOVER DAN INSERTION MUTATION

Algoritma Evolusi Dasar-Dasar Algoritma Genetika

1.PENDAHULUAN 1.1 Latar Belakang

IT234 - Algoritma dan Struktur Data. Ramos Somya

PENGANTAR BAHASA C++

SIMULASI OPTIMASI PENEMPATAN KAPASITOR MENGGUNAKAN LOGIKA FUZZY DAN ALGORITMA GENETIKA PADA SISTEM TEGANGAN MENENGAH REGION JAWA BARAT

BAB 2 LANDASAN TEORI. 2.1 Algoritma Genetika

APLIKASI ALGORITMA GENETIKA UNTUK PENENTUAN TATA LETAK MESIN

Algoritma Evolusi Real-Coded GA (RCGA)

BAB 3 METODOLOGI Metode Penelitian. Dalam melakukan penelitian akan permasalahan ini, penulis menggunakan metode

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

BAB III. Metode Penelitian

PENGENALAN PROGRAM C++

TUGAS RESUME MATERI KULIAH ALGORITMA DAN STRUKTUR DATA STRATEGI ALGORITMA : H

BAB II KAJIAN PUSTAKA. Pada bab kajian pustaka berikut ini akan dibahas beberapa materi yang meliputi

SUMBER BELAJAR PENUNJANG PLPG

Rosihan Ari Yuana, S.Si, M.Kom Lisensi Dokumen: BAB I. PENDAHULUAN C++ Oleh:

Lingkup Metode Optimasi

Optimasi Masalah Pemuatan Peti Kemas Pada PT. Trias Sentosa

P3 Pengantar Pemrograman C

Part 2 - Algoritma & Pemrograman Konsep dasar Pemrograman

ADLN Perpustakaan Universitas Airlangga SKRIPSI UMI LAILATUL MUYASSAROH

Analisis Operator Crossover pada Permasalahan Permainan Puzzle

BAB II LANDASAN TEORI

Konsep Dasar Pemrograman Dan Pengenalan C++

BAB III ALGORITMA MEMETIKA DALAM MEMPREDIKSI KURS VALUTA ASING. Untuk memberikan penjelasan mengenai prediksi valuta asing

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

BAB 2 DASAR TEORI. 2.1 Teka-Teki Silang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAHASA PEMROGRAMAN C

KONSEP ALGORITMA GENETIK BINER UNTUK OPTIMASI PERENCANAAN JADWAL KEGIATAN PERKULIAHAN

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

P - 3 Bab 2 : Pengantar Pemrograman C

ABSTRAK. Job shop scheduling problem merupakan salah satu masalah. penjadwalan yang memiliki kendala urutan pemrosesan tugas.

Bab II Konsep Algoritma Genetik

UJI KINERJA DAN SIMULASI PENENTUAN JARAK TERPENDEK DENGAN SIMULATED ANNEALING PADA SUHU TETAP DAN SUHU BERUBAH

BAB III PEMBAHASAN. Berikut akan diberikan pembahasan mengenai penyelesaikan CVRP dengan

BAB 4 PENGENALAN BAHASA C

APLIKASI ALGORITMA GENETIKA DALAM PENENTUAN DOSEN PEMBIMBING SEMINAR HASIL PENELITIAN DAN DOSEN PENGUJI SKRIPSI

BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

BAB III PEMBAHASAN. menggunakan model Fuzzy Mean Absolute Deviation (FMAD) dan penyelesaian

BAB II LANDASAN TEORI

Pengantar Kecerdasan Buatan (AK045218) Algoritma Genetika

PENDEKATAN FIREFLY ALGORITHM (FA) UNTUK MENYELESAIKAN MASALAH PENGEPAKAN PERSEGI TIGA DIMENSI SKRIPSI

BAB II TINJAUAN PUSTAKA

Zbigniew M., Genetic Alg. + Data Structures = Evolution Program, Springler-verlag.

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

SKRIPSI HYBRID BACKPROPAGATION DENGAN FIREFLY ALGORITHM DAN SIMULATED ANNEALING UNTUK KLASIFIKASI CALON PENERIMA PINJAMAN BANK BERDASARKAN RESIKO

BAB I PENDAHULUAN. jumlah ketersediaan yang semakin menipis dan semakin mahal, membuat biaya

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

BAB II LANDASAN TEORI. berawal dari suatu ide untuk menyimpan segitiga Sierpinski menggunakan

ALGORITMA GENETIKA PADA PEMROGRAMAN LINEAR DAN NONLINEAR

BAB 2 LANDASAN TEORI

BAB III KONSEP DAN PERANCANGAN APLIKASI

PENYELESAIAN QUADRATIC ASSIGNMENT PROBLEM DENGAN MENGGUNAKAN BAT ALGORITHM

Optimasi Multi Travelling Salesman Problem (M-TSP) Menggunakan Algoritma Genetika

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Pengenalan Bahasa C++ Oleh : Agus Priyanto, M.Kom

PENERAPAN ALGORITMA GENETIKA DALAM PENYELESAIAN TRAVELLING SALESMAN PROBLEM WITH PRECEDENCE CONSTRAINTS (TSPPC)

SKRIPSI HYBRIDRADIAL BASIS FUNCTION(RBF) DENGAN ALGORITMA GENETIKA DAN ALGORITMA SIMULATED ANNEALING UNTUK PREDIKSI KONSUMSI LISTRIK

Keg. Pembelajaran 2 : Mengenal Bahasa C++

BAB III IMPLEMENTASIALGORITMA GENETIK DAN ACS PADA PERMASALAHAN TRAVELLING SALESMAN PROBLEM

Penjadwalan Job Shop pada Empat Mesin Identik dengan Menggunakan Metode Shortest Processing Time dan Genetic Algorithm

Aplikasi Algoritma Genetika Untuk Menyelesaikan Travelling Salesman Problem (TSP)

BAB II KAJIAN TEORI. memindahkan barang dari pihak supplier kepada pihak pelanggan dalam suatu supply

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

PENERAPAN ALGORITMA GENETIKA PADA PERENCANAAN LINTASAN KENDARAAN Achmad Hidayatno Darjat Hendry H L T

Transkripsi:

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 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... 1 1.1 Latar Belakang... 1 1.2 Rumusan Masalah... 2 1.3 Tujuan... 3 1.4 Manfaat... 3 1.5 Batasan Masalah... 3 BAB II TINJAUAN PUSTAKA... 4 2.1 Land Allocation Problemms... 5 2.2 Masalah Pengepakan Segi Empat 2 Dimensi... 5 2.2.1 Strip Packing Problem... 6 2.3 Algoritma Cat Swarm Optimization... 6 2.3.1 Set Solusi dalam Model... 7 2.3.2 Seeking Mode... 9 2.3.3 Tracing Mode... 10 2.4 Algoritma Simulated Annealing (SA)... 11 x

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 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 ( ) 48 4.7 Subspace Setelah Lahan ke-1 Masuk 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 populasi awal 53 4.13 Nilai fitness terurut dan SPC populasi awal 54 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 59 4.20 Kandidat Solusi Dalam Seeking Memory Pool Individu 2 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 xiv

4.26 Kandidat Solusi Dalam Seeking Memory Pool Individu 1 64 4.27 Representasi Permutasi dalam SMP individu 1 dan Fleksibilitas 64 4.28 Tinggi dan Nilai Fitness SMP Individu 1 65 4.29 Probabilitas Terpilih dan Probabilitas Relatif SMP Individu 1 ( 65 4.30 Roulette Wheel Individu 1 66 4.31 Urutan lahan komponen masuk setelah modifikasi 68 4.32 Perbandingan Solusi Terbaik Data 13 Lahan Komponen 70 4.33 Perbandingan Solusi Terbaik Data 75 Lahan Komponen 71 xv

DAFTAR GAMBAR Nomor Judul Gambar Halaman 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 4.2 Prosedur Input Data dan Inisialisasi Parameter 31 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 37 4.9 Prosedur menentukan Self Position Considering 38 4.10 Prosedur update kecepatan pada mode seeking 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 42 4.15 Prosedur proses Simulated Annealing 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 xvi

DAFTAR LAMPIRAN Nomor Judul Lampiran 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 xiv

BAB I PENDAHULUAN 1.1 Latar Belakang 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

2 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). 1.2 Rumusan Masalah 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)?

3 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..

4 2. Tidak memperhatikan aktifitas antar lahan komponen, tetapi hanya memperhatikan penempatan lahan komponen. 3. Setiap lahan komponen sudah dipersiapkan fasilitas yang dibutuhkan lahan tersebut.

BAB II TINJAUAN PUSTAKA Pada bab ini dibahas definisi yang digunakan pada pembahasan Hybrid Algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) untuk Permasalahan Land Allocation. 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 masing-masing memiliki tinggi hi dan lebar wi, 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

6 2.2.1 Strip Packing Problem Permasalahan ini merupakan bagian dari masalah pengepakan segi empat. Terdapat n item yang memiliki lebar wi dan tinggi hi 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: 0,1 (2.1) 0,1 (2.2),,, (2.3) Dengan (xi,yi) 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) 2.3 Algoritma Cat Swarm Optimization 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)

7 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) 2.3.1 Set Solusi dalam Model 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)

8 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 terbaik (xbest ) 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: Pindahkan kucing sesuai benderanya, jika kucingk berada dalam seeking mode, perlakukan sesuai proses seeking mode, sebaliknya perlakukan sesuai tracing mode.

9 Langkah 6: Perhatikan iterasi maksimum-nya. Jika telah terpenuhi hentikan program. Sebaliknya ulangi langkah 3 hingga 5. (Chu dan Tsai, 2007) 2.3.2 Seeking Mode 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,,

10 Langkah 1: Bangkitkan j tiruan dari posisi kucing1,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 kucing1,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 kucing1,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) 2.3.3 Tracing Mode 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)

11 Tahapan tracing mode dapat dijabarkan dalam 3 langkah sebagai berikut: Diasumsikan terdapat b kucing yang masuk dalam tracing mode. Langkah 1: Perbarui nilai kecepatan kucing1 untuk setiap dimensi (v1,d) dengan 1,2,3,,. Kemudian update kecepatan didapatkan berdasarkan (2.5),,,, (2.5) 1,2, Keterangan:, : nilai kecepatan kucingk baru pada dimensi d, xbest,d : nilai kecepatan kucingk lama pada dimensi ke d : posisi kucing yang memiliki nilai fitness terbesar xk,d : posisi kucingk 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 kucingk baru pada dimensi d, : nilai kecepatan kucingk baru pada dimensi ke d xk,d : posisi kucingk pada dimensi ke d. Langkah 3: Perbarui posisi kucing1 berdasarkan (2.6). Lakukan langkah 1 sampai langkah 3 sebanyak b kali. (Chu dan Tsai, 2007) 2.4 Algoritma Simulated Annealing (SA) Simulated Annealing (SA) adalah salah satu algoritma untuk optimasi yang bersifat umum. Fitur utama algoritma Simulated Annealing (SA) adalah

12 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 4. Modifikasi individu awal dan evaluasi kembali sebagai solusi baru.

13 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 0 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)

14 2.7 Penentuan Nilai Fitness dan Seleksi Roulette Wheel Definisi 2.3 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, pi = fi/f d. Menghitung peluang kumulatif setiap kromosom, e. Membangkitkan bilangan random antara (0,1) kemudian dinotasikan r

15 f. Jika r q1, maka kromosom pertama terpilih; yang lain, pilih kromosom ke i apabila qi-1 < r qi (Gen dan Cheng, 1997) 2.8 Algoritma Pengisian Rekursif Algoritma ini digunakan untuk menempatkan item ke dalam objek. 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 S1. Jika hal ini tidak memungkinkan, maka ditempatkan ke dalam subspace S2. Lakukan prosedur ini hingga seluruh item ditempatkan ke dalam objek. Gambar 2.1 Algoritma Pengisian Rekursif (Dereli dan Das, 2006)

16 2.9 Borland C++ 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) 2.9.1 Struktur Bahasa C++ 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),

17 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

18 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 statement executable yang menginstruksikan agar suatu fungsi mengembalikan nilai balik tertentu. Contoh statement non executable adalah: if, else, dan while. g. Input dan output Dalam C++ input berarti menulis dari sistem dan output berarti membaca ke stream. Bentuk umum output operator: cout<<ekspresi; Bentuk umum input operator: cin>>variabel h. Tanda semicolon Tanda semicolon ; digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon. i. Variabel Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu didalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variabel diubah-ubah sesuai

19 kebutuhan. Untuk memperoleh nilai dari suatu variabel digunakan pernyataan penugasan (assigment statement), yang mempunyai sintaks sebagai berikut: j. Deklarasi variabel variabel = ekspresi; Bentuk umumnya: Nama_tipe nama_variabel; k. Tipe dasar Tipe Dasar Ukuran Memori (byte) Jangkauan Nilai Jumlah Digit Presisi Char 1-128 hingga +127 - Int 2-32768 hingga +32767 - Long 4-2.147.438.648 hingga -2.147.438.647 - Float 4 3.4E-38 hingga 3.4E38 6-7 Double 8 1.7E-308 hingga 1.7E308 15-16 Long double 10 3.4E-4932 hingga 1.1E4932 19 (Kadir, A, 2001)

BAB III METODE PENELITIAN Adapun langkah-langkah penelitian ini adalah sebagai berikut : 1. Melakukan kajian pustaka yang berhubungan dengan algoritma Cat Swarm Optimization (CSO), Simulated Annealing (SA) dan land allocation. 2. Menerapkan algoritma Cat Swarm Optimization (CSO) dalam permasalahan land allocation dengan prosedur sebagai berikut: a) Menginputkan parameter-parameter CSO, yaitu: jumlah populasi kucing (m), Seeking Memory Pool (SMP), Count Dimension to Change (CDC), Seeking Range Dimension (SRD), Mixing Ratio (MR), max iteration, konstanta tracing (c), stripwidth. b) Menginputkan sejumlah data-data yang berkaitan dengan land allocation. c) Menentukan pengkodean individu. Pengkodean yang akan digunakan pada land allocation adalah pengkodean permutasi. d) Membentuk populasi awal secara random. e) Mengevaluasi nilai fungsi tujuan setiap individu dalam populasi menggunakan algoritma pengisian rekursif. f) Menempatkan Flag Secara Random dengan proporsi sejumlah jumlah seeking kucing akan dibagikan flag=1, dan sejumlah jumlah tracing kucing akan dibagikan flag=0, dengan ketentuan : jumlah seeking=m-mr*m dan jumlah tracing=mr*m g) Menentukan nilai dari Self Position Consideration (SPC) yakni boolean untuk memutuskan suatu titik yang pernah menjadi posisi kucing akan menjadi posisi untuk bergerak. Secara Khusus Proses Penentuan SPC ini adalah sebagai berikut: i. Menentukan jumlah kucing yang terlibat seeking yakni sejumlah jumlah seeking. ii. Melakukan proses pengurutan nilai fitness tiap-tiap kucing yang terlibat dalam iterasi. 20

21 iii. Memberi tanda sejumlah jumlah seeking kucing bernilai evaluasi tertinggi dengan SPC=1 dan sisanya SPC=0. h) Menyimpan posisi kucing dengan nilai evaluasi terbesar sebagai xbest. i) Melakukan Mode Tracing (flag = 0) i. Mengupdate kecepatan baru untuk setiap kucing yang terlibat dalam mode tracing dengan formulasi:,,,, 1,2, ii. Periksa apakah kecepatan berada dalam ambang batas yang ditentukan. Jika kecepatan baru melebihi batas, atur nilainya sama dengan batas iii. Mengupdate posisi baru dari setiap kucing yang terlibat dalam mode tracing dengan formulasi:,,, 1,2, iv. Hitung height (h) setiap posisi baru dari kucing dalam mode tracing, nilai fitness dan representasi permutasinya. v. Membandingkan nilai fitness awal dengan nilai fitness baru, jika nilai fitness baru kurang dari nilai fitness awal maka posisi baru diubah kembali menjadi posisi awal. vi. Menyimpan posisi dan jarak dari kucing dalam mode tracing berfitness terbaik. j) Melakukan proses mode seeking (flag = 1): i. Mengambil satu individu kucing yang bermode seeking secara sebarang misal kucinga. ii. Jika nilai boolean Self Position Consideration(SPC) dari kucingk tersebut bernilai 1 maka lakukan langkah-langkah berikut : 1. Buat tiruan dari posisi kucingk sejumlah SMP-1. 2. Ambil satu tiruan dari kucinga.

22 3. Tunjuk secara sebarang dimensi yang akan diubah nilainya sampai sejumlah dim=cdc*jumlah dimensi 4. Untuk setiap dimensi yang ditunjuk lakukan penambahan atau pengurangan sebanyak SRD persen dari posisi awal. 5. Cek apakah sejumlah (SMP-1) tiruan telah melalui proses 3 dan 4? 6. Jika belum maka kembali ke langkah 2, jika sudah ke langkah 7. 7. Simpan posisi baru dari setiap kucing tiruan sebagai kandidat solusi seeking dari kucinga iii. Sebaliknya Jika nilai boolean Self Position Consideration(SPC) dari kucinga tersebut bernilai 0 maka lakukan langkah-langkah berikut : 1. Buat tiruan dari posisi kucinga sejumlah SMP. 2. Ambil satu tiruan dari kucinga. 3. Tunjuk secara sebarang dimensi yang akan diubah nilainya sampai sejumlah dim=cdc*jumlah dimensi 4. Untuk setiap dimensi yang ditunjuk lakukan penambahan atau pengurangan sebanyak SRD persen dari posisi awal. 5. Cek apakah sejumlah SMP tiruan telah melalui proses 3 dan 4? 6. Jika belum maka kembali ke langkah 2, jika sudah ke langkah 7. 7. Simpan posisi baru dari setiap kucing tiruan sebagai kandidat solusi seeking dari kucinga iv. Menghitung nilai height (h) dari anggota setiap kandidat solusi seeking. v. Menghitung nilai fitness dari anggota setiap kandidat solusi seeking.

23 vi. Jika tidak semua nilai fitness dari setiap anggota kandidat bernilai sama, hitung probabilitas terpilih dari setiap kandidat solusi seeking. Jika tujuan dari fungsi fitness adalah meminimumkan solusi, maka FSb=FSmax dan sebaliknya FSb=FSmin. Sebaliknya Jika nilai fitness dari setiap anggota kandidat solusi seeking sama maka probabilitas terpilih semua kandidat solusi seeking adalah 1. vii. Hitung probabilitas terpilih relatif (Pir) setiap kandidat solusi seeking. viii. Menghitung probabilitas terpilih komulatif (Pik) setiap kandidat solusi seeking dengan formula : P ix. Mulai bangkitkan satu bilangan acak dari interval [0.1] dinotasikan r. x. Jika r P1k, maka kandidat solusi seeking pertama terpilih menjadi solusi seeking. Sebaliknya pilih kandidat solusi seeking ke i sebagai solusi seeking apabila P(i-1)k < r Pik (seleksi roulette wheel). xi. xii. xiii. Posisi kucingk=posisi solusi seeking. Simpan posisi dalam Memory Pool yang memberikan solusi terbaik sebagai gbest seeking Semua kucing berflag=1 telah melalui proses seeking? xiv. Jika belum kembali ke langkah i, jika sudah lakukan proses l. k) Tentukan solusi iterasi dengan menghitung: =min (g,g ) l) Setelah melakukan Mode Seeking dan Mode Tracing dipilih individu terbaik dari masing-masing mode. Kemudian pilih individu terburuk untuk dilanjutkan dengan proses Simulated Annealing (SA).

24 m) Jika iterasi saat ini kurang dari atau sama dengan 10 maka menuju langkah berikutnya, jika tidak kembali ke langkah 2.f. 3. Proses Simulated Annealing (SA) a. Modifikasi menggunakan pencarian lokal, yaitu dengan memilih dua lokasi secara acak, kemudian menukarnya. Selanjutnya dihitung fungsi tujuan dari hasil yang diperoleh. b. Menghitung nilai selisih (calculate), evaluasi dilakukan dengan cara membandingkan fungsi tujuan solusi hasil modifikasi atau solusi baru f(xm) dengan fungsi tujuan individu awal atau solusi sementara. i. Jika maka solusi sementara sama dengan solusi baru. ii. Jika > maka dihitung probabilitas penerimaannya menggunakan rumus: Dimana ΔC merupakan selisih nilai fungsi tujuan. Kemudian bangkitkan bilangan real r antara interval [0 1], jika r < P maka solusi baru menggantikan solusi lama, begitu juga sebaliknya. c. Jika looping sudah memenuhi, dilakukan penurunan suhu rumus d. Cek suhu, jika Tb < Takhir, maka proses berhenti. 4. Solusi akhir pada proses simulated annealing menggantikan solusi yang dipilih pada langkah 3.a. 5. Jika maksimum iterasi sudah tercapai maka menuju langkah selanjutnya, jika tidak maka kembali ke langkah 2.f. 6. Membuat program dari algoritma di atas. 7. Mengimplementasikan program pada contoh kasus.

25 Start Inisialisasi Parameter Input width (w), height (h) dan strip width Inisialisasi posisi awal kucing dan kecepatan kucing Evaluasi Nilai Fitness tiap kucing C Menentukan flag Menentukan nilai SPC Ya Tidak Flag kucingk=1? Kucingk diproses di mode seeking Kucingk diproses di mode tracing Menentukan individu terbaik dari CSO Menentukan individu terburuk dari CSO Iterasi 10? Tidak B Ya A

26 A Melakukan modifikasi menjadi Mengevaluasi individu yang telah dimodifikasi ( )? Tidak Ya Hitung P dan Bangkitkan r Tidak P > r? Ya tetap Penurunan Suhu Tidak Ya C Tidak Max iterasi? B Ya Solusi Terbaik End Gambar 3.1 Flowchart Penyelesaian land allocation menggunakan Hybrid Algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA)

27 Start Posisi dan Kecepatan Kucing Ambil satu individu kucing Update Kecepatan Update Posisi Menghitung Fungsi Tujuan Update solusi Tidak Kucing flag = 0 telah berproses Ya Gbest Solusi End Gambar 3.2 Flowchart Mode Tracing

28 Start Tidak Ambil satu individu kucing SPC = 1 Ya Buat tiruan sejumlah SMP Ambil salah satu tiruan kucing Buat tiruan sejumlah SMP-1 Isi baris pertama SMP dengan posisi awal Ambil salah satu tiruan kucing Modifikasi Modifikasi Tidak SMP sudah dimodifikasi Ya SMP-1 sudah dimodifikasi Tidak Simpan kandidat solusi Hitung tinggi, nilai fitness, probabilitas terpilih relatif dan kumulatif Bangkitkan satu bilangan real secara acak Seleksi Tidak Kucing flag =1 telah berproses Ya Gbest Solusi End Gambar 3.3 Flowchart Mode Seeking

29 Start Probabilitas Terpilih Kumulatif Setiap Individu Kucing Menghitung Nilai Fitness Menghitung Jumlah Total Nilai Menghitung Peluang Terpilih Menghitung Peluang Kumulatif No Bangkitkan Bilangan Random (r) r Prob. Kumulatif Yes Probabilitas Terpilih Kumulatif Pertama Gambar 3.4 Flowchart Seleksi Roullete Wheel

BAB IV PEMBAHASAN Pada bab ini akan dijelaskan mengenai penggunaan hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) pada masalah land allocation. 4.1 Masalah Alokasi Lahan Persoalan alokasi lahan merupakan masalah penempatan lahan komponen persegi pada lahan yang tersedia, sehingga: 1. Lahan komponen yang akan dialokasikan ditinjau dari fleksibilitas dimensinya. 2. Fleksibilits dimensi lahan komponen akan mempengaruhi penempatan lahan komponen tersebut pada lahan yang tersedia, sehingga dapat meminimalkan area yang dipakai. 4.2 Hybrid Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) Hybrid Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) adalah penggabungan dari proses Cat Swarm Optimization dengan Simulated Annealing dalam aplikasinya merupakan salah satu algoritma heuristik yang dapat digunakan untuk menyelesaikan masalah optimasi. Menurut (Chu dan Tsai, 2007) proses penyelesaian permasalahan tersebut diawali dengan membangkitkan sejumlah m populasi kucing awal, setiap kucing merupakan representasi dari satu set solusi yang terdiri atas n dimensi. Setiap dimensi dimodelkan untuk mempunyai inisialisasi kecepatan awal. Kecepatan awal digunakan untuk memodelkan perilaku sekumpulan kucing yang selalu berpindah-pindah posisi sesuai kecepatannya ketika sedang berburu. Proses berlanjut dengan membagi m populasi awal kucing ini menjadi 2 populasi baru. Yakni populasi mode seeking dan populasi mode tracing. MR (mixing ratio) adalah parameter yang diinisialisasikan untuk menentukan proporsi pembagian kucing ke dalam kedua mode tersebut. 29

30 Ilustrasi penggunaan hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) dalam Land Allocation telah diuraikan dalam Gambar 4.1 Prosedur hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) dapat dilihat pada Gambar 4.1 Prosedur Hybrid Algoritma CSO dan SA Begin input data(); inisialisasi parameter(); bangkitkan populasi awal(); ` bangkitkan kecepatan awal(); hitung fungsi tujuan(); do hitung fitness(); bagikan flag secara acak(); tentukan nilai spc(); lakukan tahap seeking(); lakukan tahap tracing(); if(iterasi<11) proses sa pada individu terburuk(); end while(maks_iterasi) tentukan solusi terbaik(); End Gambar 4.1 Prosedur Hybrid Algoritma CSO dan SA Berikut ini dijelaskan langkah-langkah dalam prosedur algoritma Cat Swarm Optimization (CSO). 4.2.1 Input Data dan Inisialisasi Parameter Prosedur ini merupakan prosedur untuk menginput data dan menentukan informasi awal yang dibutuhkan dalam algoritma Cat Swarm Optimization (CSO). Data yang diinputkan adalah data berupa lebar dan tinggi lahan serta lebar objek. Parameter yang diperlukan adalah jumlah populasi kucing yang disimbolkan dengan m, jumlah lahan yang disimbolkan dengan n, Seeking Memory Pool (SMP), Count Dimension to Change (CDC), Seeking Range Dimension (SRD),

31 Mixing Ratio (MR), konstanta tracing (c), dan maks_iterasi yang dapat dilihat pada Gambar 4.2 Prosedur Input Data dan Inisialisai Parameter Begin End Jumlah Kucing (Individu)=kucing; Jumlah Seeking Memory Pool=smp; Nilai CDC=cdc; Nilai SRD=srd; Nilai MR=mr; Nilai Beta=beta; Nilai c1=c1; Nilai lebar_wadah=lebar_wadah; Nilai suhu_awal=suhu_awal; Nilai suhu_akhir=suhu_akhir; Gambar 4.2 Prosedur Input Data dan Inisialisasi Parameter 4.2.2. Membangkitkan Populasi Awal Populasi awal terdiri dari beberapa individu kucing, yang mereprentasikan urutan lahan masuk ke dalam objek, sebanyak n dimensi. Tiap individu terdiri dari n sebanyak jumlah lahan. Oleh karena itu, untuk membangkitkan populasi awal perlu dibangkitkan bilangan real acak antara 0 dan 1 yang mewakili urutan tiap n dalam individu. Nilai dalam tiap n akan digunakan untuk menentukan lahan mana yang akan diletakkan terlebih dahulu. Prosedur pembangkitkan populasi awal dapat dilihat pada Gambar 4.3 Prosedur Pembangkitan Populasi Awal Begin for i=0 to kucing for j=0 to jumlah lahan data_kucing i,j = random (1,jumlah lahan); end end End Gambar 4.3 Membangkitkan Populasi awal

32 Untuk mempermudah pembangkitkan populasi awal, dibuat matriks dengan ukuran m x n. 4.2.3 Membangkitan Kecepatan Awal Hal yang harus diperhatikan adalah setiap dimensi (n) dari setiap individu juga memiliki inisialisasi lain yakni kecepatan awal (initial velocity). Kecepatan awal adalah suatu bilangan acak yang terkait dengan setiap dimensi dari setiap individu (kucing) yang dapat dilihat pada Gambar 4.4 Prosedur Membangkitan Kecepatan Awal Begin for i=0 to kucing for j=0 to jumlah lahan data_kecepatan i,j = random (1,jumlah lahan); end end End Gambar 4.4 Membangkitan Kecepatan Awal Untuk mempermudah pembangkitan kecepatan awal, dibuat matriks dengan ukuran m x n.

33 4.2.4 Representasi Permutasi Posisi awal dari setiap individu (kucing) merupakan kandidat lahan awal dari permasalahan Land Allocation. Untuk mengubah representasi random dari posisi awal ke dalam bentuk lahan yang diwakili oleh representasi permutasi digunakan Gambar 4.5 sebagai prosedur. Prosedur Konversi ke Dalam Representasi Permutasi Begin for i=0 to m-1 for j=0 to n-1 permutasij=j; end for j=0 to n-1 kucingurut,j=kucingi,j; end z=0; while(z<1) for i1=0 to n-1 if(kucinguruti1<kucinguruti1+1) ii=kucinguruti1; kucinguruti1=kucinguruti1+1; kucinguruti1+1=ii; k=permutasii1; permutasii1=permutasii1+1; permutasii1+1=k; end end j1=0; for i1=0 to n-1 if (kucinguruti1>=kucinguruti1+1) j1=j1+1; end end if (j1==n-2) z=3; end End Gambar 4.5 Prosedur Permutasi Objek

34 4.2.5 Menghitung Nilai Fungsi Tujuan Setelah pembangkitan populasi awal diubah menjadi bentuk permutasi, maka diperoleh urutan masuk lahan kecil ke dalam lahan besar. Dari urutan tersebut dapat diperoleh tata letak lahan kecil dalam lahan besar, sehingga dapat diperoleh pula tinggi lahan terpakai. Tinggi lahan terpakai tersebutlah yang akan diminimalkan sehingga didapatkan hasil yang optimal. Prosedur meletakkan lahan kecil dimulai dengan meletakkan lahan kecil pertama pada bagian ujung kiri bawah objek sehingga terbentuk subspace S1 dan S2. Selanjutnya, lahan kecil kedua diletakkan pada S1 jika memungkinkan, namun jika tidak maka lahan kecil kedua akan diletakkan pada S2. Demikian seterusnya hingga semua lahan kecil diletakkan ke dalam lahan besar. Prosedur meletakkan lahan kecil ke dalam lahan besar disajikan pada Gambar 4.6

35 Prosedur Meletakkan Lahan ke dalam Objek Begin for i=1 to n for j=1 to jumlah lahan if j=1 if lebarlahankecil[gen i,j ] <= lebarlahanbesar lebarsubspace i,j =lebarobjek-lebarlahan[gen i,j ]; tinggisubspace i,j =tinggilahan[gen i,j ]; end else lebarsubspace i,j =tinggilahan[gen i,j ]; tinggisubspace i,j =lebarobjek- lebarlahan[gen i,j ]; end end else if pas=0; for k=1 to j-1 if lebarlahan[gen i,j ] <= lebarsubspace & tinggilahan[gen i,j ] <= tinggisubspace for l > k+1 to l=j lebarsubspace i,l = lebarsubspace i,l-1 ; tinggisubspace i,l = tinggisubspace i,l-1 ; end lebarsubspace i,k+1 = lebarsubspace; tinggisubspace i,k+1 = tinggisubspace -c; lebarsubspace i,k = lebarsubspace-lebarlahan[gen i,j ]; tinggisubspace i,k =tinggilahan[gen i,j ]; pas=1; break; end else if tinggilahan[gen i,j ] <= lebarsubspace & lebarlahan[gen i,j ] <= tinggisubspace for l > k+1 to l=j lebarsubspace i,l = lebarsubspace i,l-1 ; tinggisubspace i,l = tinggisubspace i,l-1 ; end lebarsubspace i,k+1 =lebarsubspace; tinggisubspace i,k+1 =tinggisubspace-lebarlahan[gen i,j ]; lebarsubspace i,k =lebarsubspace-tinggilahan[gen i,j ]; tinggisubspace i,k =lebarlahan[gen i,j ]; pas=1; break; end end if pas!=1 if lebarlahan[gen i,j ]<=lebarobjek lebarsubspace i,j =lebarobjek- lebarlahan[gen i,j ]; tinggisubspace i,j = tinggilahan[gen i,j ]; end else lebarsubspace i,j =lebarobjek- tinggilahan[gen i,j ]; tinggisubspace i,j = lebarlahan[gen i,j ]; end end end end End. Gambar 4.6 Prosedur Memasukkan Lahan ke Lahan Yang Tersedia

36 4.2.6 Menghitung Nilai Fitness Dalam skripsi ini, nilai fitness (fitness value) yang didapat setiap individu (kucing) bergantung perhitungan tinggi lahan yang didapat dari representasi permutasi individu tersebut. Cara menghitung nilai fitness kucing ke-i adalah dengan membagi 1 dengan nilai tinggi lahan yang diperoleh tiap set solusi kucing ke-i. Prosedur menghitung nilai fitness setiap kucing dalam populasi dapat disajikan pada Gambar 4.7 Prosedur menghitung nilai fitness tiap kucing Begin for i=0 to m-1 fitnessi=1/jaraki; end End Gambar 4.7 Prosedur menghitung nilai fitness tiap kucing Langkah selanjutnya adalah nilai fitness yang didapatkan dalam proses nilai fitness diurutkan mulai dari yang terbesar hingga yang terkecil untuk digunakan dalam proses penentuan Self Position Considering dan penentuan xbest. 4.2.7 Melakukan Penentuan Flag Setiap individu (kucing) akan dlahanpatkan ke dalam suatu mode, diantaranya adalah mode seeking atau mode tracing. Gambar 4.8 menunjukkan prosedur penentuan flag dalam Algoritma Cat Swarm Optimization.

37 Prosedur penentuan flag Begin jumtracing=mr*m; for i= 0 to m-1 ri=random(m)/m+1; end for i=0 to m-1 urutanrandomi=randomurut(ri,m) end for i= 0 to jumtracing-1 flagurutanrandomi=1; end for i= jumtracing to m-1 flagurutanrandomi=0; end End Gambar 4.8 Prosedur penentuan flag Prosedur diatas adalah proses penentuan flag dilakukan secara random (acak), dengan membangkitkan sejumlah m bilangan random dan menempatkannya pada array ri, dengan i adalah indeks dari individu (kucing). Urutan dari bilangan random dalam array ri secara ascending disajikan dalam array urutan randomi, penempatan flag ditentukan oleh indeks individu (i) yang berkaitan dengan bilangan random terurut dalam array urutan random. 4.2.8 Menentukan Self Position Considering (SPC) Self Position Considering (SPC) merupakan nilai boolean yang melabeli setiap individu sebelum melakukan mode seeking atau mode tracing. Label ini ditentukan sesaat setelah nilai fitness dari masingmasing individu dalam populasi dihitung. Sebagai catatan dalam konteks ini populasi yang dimaksud adalah populasi awal untuk iterasi pertama, dan populasi gabungan hasil mode seeking dan mode tracing untuk iterasi berikutnya. Secara prosedur penentuan SPC setiap individu dapat dilakukan seperti terlihat pada Gambar 4.9

38 Prosedur penentuan SPC tiap individu (kucing) Begin jumseeking=(1-mr)*m; for i=0 to m-1 urutani=fitnessurut(fitness[],fitnessi,m) end for i= 0 to jumseeking-1 spcurutani=1; end for i= jumseeking to m-1 spcurutani =0; end End Gambar 4.9 Prosedur menentukan Self Position Considering Array urutan dalam prosedur diatas memuat urutan indeks kucing dari yang mempunyai nilai fitness terbesar, hingga yang mempunyai nilai fitness terkecil secara terurut dari atas ke bawah (descending). 4.2.9 Melakukan Proses Mode Seeking Setelah dilakukan proses penempatan flag, beberapa kucing akan diproses dalam mode seeking. Setiap kucing yang memiliki flag bernilai 1 akan memasuki tahap mode seeking. Prosedur mode seeking ditujukkan pada Gambar 4.10

39 Pseudocode proses seeking Begin if(spc(grup_seeking(i))==1 for j=0 to smp for k=0 to jumlahlahan Memory_pool(j,k)=data_random(grup_seeking(i))(k) end for for k=0 to jumlahlahan terpilih[k]=-1; end for if j>0 Modifikasi Memory_Pool() end if end for end if else if(spc(grup_seeking(i))!=1 for j=0 to smp for k=0 to jumlahlahan terpilih[k]=-1; end for Modifikasi Memory_Pool() end for end if End Gambar 4.10 Prosedur update kecepatan pada mode seeking 4.2.10 Melakukan Proses Mode Tracing Setelah dilakukan proses penempatan flag secara random (acak), kemudian beberapa kucing akan diproses dalam mode tracing. Secara operasional dalam mode ini setiap individu akan mengubah representasi kecepatan yang lama menjadi representasi kecepatan yang baru. Proses update kecepatan ini dipengaruhi oleh memory yang dimiliki setiap kucing, yang berfungsi mengingat posisi terbaik yang sejauh ini diperoleh swarm (xbest). Hal ini dapat dijelaskan pada prosedur dalam Gambar 4.11

40 Prosedur update kecepatan pada mode tracing Begin for i=0 to jumtracing-1 acak=random(100); acak1=random(99); d=acak/acak1; for j=0 to n-1 hj=xi,j; end for j=0 to n-1 m=xbest,j-hj; s=d*c*m; end for j=0 to n-1 vbarui,j=vi,j+s; end end End Gambar 4.11 Prosedur update kecepatan pada mode tracing Untuk mendapatkan set solusi yang lebih baik, dalam fase ini representasi kecepatan baru digunakan oleh setiap individu (kucing) ini untuk mengubah posisinya. Prosedur dalam menentukan posisi baru dapat dilihat dalam Gambar 4.12 Prosedur mengupdate posisi lama setiap kucing Begin End for i= 0 to jumtracing-1 for j = 0 to n-1 kucingbarui,j= kucingi,j +vbarui,j; end end Gambar 4.12 Prosedur update posisi tiap kucing pada mode tracing Dalam skripsi ini,ditambahkan beberapa prosedur tambahan salah satunya adalah untuk setiap individu dilakukan pengecekan apakah set

41 solusi baru memberikan nilai fitness yang lebih baik dari set solusi lama. Proses ini kemudian disajikan dalam Gambar 4.13 Prosedur perbandingan fitness lama dan fitness baru Begin for i= 0 to jumtracing-1 if(fitnessbi-fitnessi>0) for j=0 to n-1 kucingbarui,j; end end else for j=0 to n-1 kucingbarui,j=kucingi,j; end end end End Gambar 4.13 Prosedur perbandingan fitness lama dan fitness baru 4.2.11 Penentuan Solusi Terburuk pada CSO Penentuan solusi terburuk ini menggunakan informasi posisi kucing yang baru setelah melalui proses mode seeking dan mode tracing yaitu dengan cara membandingkan posisi terburuk antara mode seeking dan mode tracing masing-masing kucing yang telah disimpan pada proses diatas. Solusi terburuk yang diperoleh dari proses mode seeking dan proses mode tracing akan dibandingkan dan dicari posisi yang memiliki nilai fungsi tujuan terbesar. Proses penentuan solusi terburuk dapat dilihat dalam Gambar 4.14

42 Pseucode penentuan solusi terburuk Begin if(tinggi_best_tracing<tinggi_best) real_tinggi=tinggi_best_tracing end if for i=0 to jumlahlahan real_lahan[i]=lahan_best_tracing[i]; real_variasi[i]=variasi_best_tracing[i]; end for else if(tinggi_best<tinggi_best_tracing) real_tinggi=tinggi_best; for i=0 to jumlahlahan real_lahan[i]=lahan_best[i]; real_variasi[i]=variasi_best[i]; end for end else End Gambar 4.14 Prosedur penentuan solusi terburuk Setelah solusi terburuk di cat swarm optimization diperoleh, maka selanjutnya adalah solusi terburuk pada cat swarm optimization diproses engan menggunakan algoritma simulated annealing. 4.2.12 Proses Simulated Annealing Pada proses ini individu terburuk dari cat swarm optimization akan diproses menggunakan simulated annealing. Pada proses annealing pertama yang dilakukan adalah modifikasi. Proses mutasi yang digunakan dalam proses modifikasi adalah pencarian lokal, metode yang digunakan adalah resiprochal exchange mutation. Resiprochal exchange mutation merupakan suatu metode mutasi dengan cara memilih secara acak dua lokus kemudian ditukar. Prosedur proses algoritma simulated annealing dapat dilihat pada Gambar 4.15

43 Prosedur Simulated Annealing Begin End select_1=random(jumlahlahan-1); select_2=random(jumlahlahan-1); while(select_1==select_2 select_1>select_2); for int sel=0 to jumlah lahan data_random[counter_sa][sel]; end for int j=select_1;j<=select_1+mutatecounter;j++) tempsa=solusi_sa[j]; solusi_sa[j]=solusi_sa[select_2]; solusi_sa[select_2]=tempsa; select_2--; end evaluasi solusi sa(); penentuan tolak atau terima solusi(); suhu=suhu_sekarang*beta; suhu_sekarang=suhu; end Gambar 4.15 Prosedur proses Simulated Annealing 4.2.13 Menyimpan Solusi Terbaik (Global Best) Prosedur ini merupakan prosedur untuk menyimpan solusi terbaik pada setiap iterasinya. Nilai fungsi tujuan terbaik merupakan nilai fungsi tujuan dari solusi yang terbaik. Solusi terbaik ini dlahanukan diantara solusi CSO dan SA sehingga dapat pula disebut global best. Perlu diingat bahwa proses ini dilakukan pada tiap iterasi, sehingga akan diperoleh solusi terbaik setiap iterasinya maka untuk keseluruhan akan didapat sejumlah t solusi terbaik (global best). Prosedur penyimpanan solusi terbaik ditunjukkan pada Gambar 4.16

44 Prosedur menentukan gbest Begin for j=0 to individu-1 if (ftgbest > ftj) then for k= 0 to n-1 individugbest k =individu k,j xgbest k =x k,j end for k end if end for j End Gambar 4.16 Prosedur menyimpan solusi Terbaik (Global Best) 4.3 Data Untuk mengimplementasikan penggabungan algoritma cat swarm optimization dan simulated annealing pada Land Allocation, akan digunakan data yang diambil dari Alison R. Callaghan (1999) dan Egy Rifky (2015). Data yang digunakan dalam skripsi ini dibagi menjadi 2 yaitu : 1. Data dengan 13 lahan komponen 2. Data dengan 75 lahan komponen Data secara lengkap dapat dilihat pada Tabel 4.1 dan Lampiran 1. 4.4 Contoh Kasus Masalah Alokasi Lahan dengan Menggunakan Data 13 Lahan Komponen yang Diselesaikan Secara Manual Misalkan pada sebuah gedung terdapat ruangan yang berukuran WxH dengan W = 200 feet dan H = 171.5 feet. Pada ruangan tersebut akan dialokasikan lahan untuk departemen departemen yang ukuran masingmasing departemen memiliki fleksibilitas dimensi yang dapat dilihat pada Tabel 4.1 dan Tabel 4.2

45 Tabel 4.1 Spesifikasi dan Ukuran Departemen No. Nama Departemen Size in ft. 1 Police 1520 2 Jail 660 3 Court room 3840 4 Judge s chamber 300 5 License bureau 900 6 Treasurer s office 900 7 Welfare office 900 8 Health dept. 900 9 Sanitation 900 10 Engineer s office 2300 11 Rec. Dept. 900 12 Mayor s office 300 13 Town council room 750 Tabel 4.1 dapat diubah dengan fleksibilitas dimensi sebagai berikut: Tabel 4.2 Area Komponen dan Dimensi yang Sesuai Komponen Total Dimensi (ft.) Area 1 2 3 4 5 6 1 1520 80x19 76x20 40x38 38x40 20x76 19x80 2 660 132x5 66x10 33x20 20x33 10x66 5x132 3 3840 120x32 96x40 64x60 60x64 40x96 32x120 4 300 60x5 30x10 20x15 15x20 10x30 5x60 5 900 90x10 60x15 36x25 30x30 15x60 10x90 6 900 90x10 60x15 36x25 30x30 15x60 10x90 7 900 90x10 60x15 36x25 30x30 15x60 10x90 9 900 90x10 60x15 36x25 30x30 15x60 10x90 10 2300 100x23 92x25 50x46 46x50 25x92 23x100 11 900 90x10 60x15 36x25 30x30 15x60 10x90 12 300 60x5 30x10 20x15 15x20 10x30 5x60 13 750 75x10 50x15 30x25 25x30 15x50 10x75 Sumber: Alison R. Callaghan; Anoop R.Nair; Kemper E. Lewis, 1999, ASME Design Engineering Technical Conferences.

46 Penyelesaian: Untuk menyelesaikan alokasi lahan dengan data 13 komponen lahan menggunakan prosedur hybrid algoritma CSO dan SA, dengan langkahlangkah sebagai berikut: Langkah 1: Inisialisasi Parameter Parameter-parameter dari hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) yang akan digunakan untuk masalah alokasi lahan adalah sebagai berikut: jumlah populasi kucing (m) = 3, Seeking Memory Pool (SMP) = 4, Count Dimension to Change (CDC) = 0.33, Seeking Range Dimension (SRD) = 0.5, Mixing Ratio (MR) = 0.33, 100, 20, 0,09 Langkah 2: Membangkitkan Individu Proses membangkitkan individu dilakukan dengan membangkitkan secara acak bilangan real antara 0 sampai 1 sebanyak a x b untuk setiap individu. Dimana a adalah banyaknya kucing dan b adalah banyaknya lahan komponen. Individu baru ditujukkan pada Tabel 4.3 Individu Awal Tabel 4.3 Populasi Awal Kucing Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 0.84 0.09 0.71 0.29 0.16 0.60 0.81 0.92 0.99 0.08 0.26 0.69 0.63 0.23 0.40 0.91 0.51 0.94 0.65 0.14 0.66 0.36 0.79 0.80 0.89 0.34 0.93 0.95 0.50 0.05 0.22 0.99 0.48 0.75 0.28 0.86 0.72 0.30 0.73 Dengan,, dan merupakan notasi yang melambangkan kucing 1, kucing 2, dan kucing 3. Langkah 3: Membangkitkan Kecepatan Awal Proses pembangkitkan kecepatan awal kucing analog dengan proses membangkitkan posisi awal kucing yaitu dengan membangkitkan secara

47 acak bilangan real antara 0 sampai 1 sebanyak a x b untuk setiap individu. Dimana a adalah banyaknya kucing dan b adalah banyaknya lahan komponen. Hasil pembangkitkan kecepatan awal kucing disajikan pada Tabel 4.4 Kecepatan Awal Tabel 4.4 Kecepatan Awal Kucing Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 0.52 0.36 0.77 0.13 0.44 0.31 0.50 0.29 0.46 0.67 0.41 0.70 0.61 0.45 0.78 0.71 0.84 0.58 0.16 0.83 0.72 0.47 0.06 0.40 0.55 0.97 0.76 0.10 0.43 0.73 0.87 0.35 0.28 0.85 0.05 0.42 0.86 0.06 0.80 Dengan,, dan merupakan notasi yang melambangkan kecepatan kucing 1, kecepatan kucing 2, dan kecepatan kucing 3. Langkah 4: Evaluasi nilai fungsi tujuan beserta fleksibilitas dimensi Sebelum menghitung nilai fungsi tujuan, elemen dari masing-masing kucing ditransformasikan ke bilangan asli dengan cara tiap elemen kucing dengan mengurutkan bilangan asli yang acak tersebut dari yang terkecil hingga yang terbesar beserta fleksibilitas dimensinya secara acak. Hasil transformasi disajikan dalam Tabel 4.5 Individu Tabel 4.5 Hasil transformasi kucing pada populasi awal Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 11 2 9 5 3 6 10 12 13 1 4 8 7 Dimensi Ukuran 4 3 2 2 1 1 1 5 1 2 5 3 1 2 5 12 6 13 7 1 8 4 9 10 11 3 Dimensi Ukuran 1 4 1 4 4 3 2 2 1 2 3 2 2 11 12 6 1 2 13 5 9 3 10 7 4 8 Dimensi Ukuran 5 6 5 4 2 4 4 4 3 4 1 3 1

48 Kemudian mencari dimensi ukuran lahan yang telah dimiliki oleh masing-masing lahan yang tersedia. Pada data yang diperoleh memiliki 6 variasi dimensi ukuran, sehingga pada masing-masing lahan diacak bilangan asli pada interval [1 6]. Dari Tabel 4.5 diketahui bahwa lahan komponen yang dimiliki oleh kucing-1 ( ) adalah 11,2,9,5,3,6,10,12,13,1,4,8,7 dengan dimensi ukuran lahan ke 4,3,2,2,1,1,1,5,1,2,5,3,1. Begitu juga dengan kucing-2 ( dan kucing-3 ( ). Setelah urutan komponen lahan yang akan diletakkan sudah diketahui beserta dimensi ukurannya, langkah selanjutnya adalah menghitung nilai fungsi tujuan. Perhitungan nilai fungsi tujuan merupakan representasi untuk memperoleh tinggi dari objek yang terpakai (H). Nilai fungsi tujuan diperoleh melalui proses penempatan lahan ke dalam objek wadah berdasarkan prosedur algoritma rekursif. Dalam setiap space, W merupakan lebar space yang terbentuk dari lebar space awal dikurangi dengan lebar lahan masuk, dan H merupakan tinggi dari space (tinggi lahan masuk). Proses perhitungan fungsi tujuan diuraikan sebagai berikut: Misalnya kucing-1 ( ) yang mempunyai urutan masuk lahan sebagai berikut: Individu Tabel 4.6 Urutan Masuk Lahan Kucing-1 ( ) Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 11 2 9 5 3 6 10 12 13 1 4 8 7 Dimensi Ukuran 4 3 2 2 1 1 1 5 1 2 5 3 1 1. Komponen lahan pertama yang akan diletakkan adalah lahan komponen yang ke-11 dengan dimensi ukuran ke-4. Menurut Tabel 4.2 lahan komponen ke-11 memiliki ukuran 30 dan 30. Karena merupakan lahan pertama, maka akan terbentuk space baru S1 dan S2 seperti pada Tabel 4.7 dan Gambar 4.17. Space S1 terbentuk dengan ukuran W w11 = 200 30 = 170, sedangkan H dengan ukuran 30 karena tinggi w11 = 30.

49 Tabel 4.7 Subspace setelah lahan komponen ke-1 masuk Sisa Ukuran Subspace Lahan S1 S2 W 170 - H 30 - Height (H) 200 Width (W) Gambar 4.17 Lahan ke-1 masuk 2. Selanjutnya diletakkan lahan komponen yang kedua yaitu lahan komponen yang ke-2 dengan dimensi ukuran ke-3. Menurut Tabel 4.2 lahan komponen ke-2 memiliki ukuran 33 dan 20. Lahan ini dapat dlahanpatkan pada subspace S1. Sehingga terbentuk space baru S11 dan S12 seperti pada Tabel 4.8 dan Gambar 4.18 Tabel 4.8 Subspace setelah lahan komponen ke-2 masuk Sisa Ukuran Subspace Lahan S11 S12 S2 W 137 170 - H 20 10 -

50 Height (H) 200 Width (W) Gambar 4.18 Lahan ke-2 masuk 3. Selanjutnya diletakkan lahan komponen yang ketiga yaitu lahan komponen yang ke-9 dengan dimensi ukuran ke-2. Menurut Tabel 4.2 lahan komponen ke-9 memiliki ukuran 60 dan 15. Lahan ini dapat dlahanpatkan pada subspace S11. Sehingga terbentuk space baru S111 dan S112 seperti pada Tabel 4.9 dan Gambar 4.19 Tabel 4.9 Subspace setelah lahan komponen ke-3 masuk Sisa Ukuran Subspace Lahan S111 S112 S12 S2 W 77 137 170 - H 15 5 10 -

51 Height (H) 200 Width (W) Gambar 4.19 Lahan ke-3 masuk Demikian juga dengan komponen lahan lainnya dilakukan dengan proses yang sama. Sehingga, setelah semua lahan kompenen dimasukkan, maka dapat dihitung tinggi minimum dengan menjumlahkan tinggi subspace yang terbentuk. Sehingga didapat hasil tinggi dari wadah yang terpakai adalah 95 square feet seperti pada Tabel 4.10 dan Gambar 4.20 Tabel 4.10 Subspace setelah semua lahan masuk Sisa Ukuran Subspace Lahan S111 S112 S12 S211 S212 S22 S31 S32 S4 S5 W 17 137 5 24 60 80 24 100 110 - H 15 5 10 25 5 2 20 3 10 -

52 h 4 =10 h 3 =23 Height (H) h 2 =32 h 1 =30 200 Width (W) Gambar 4.20 Hasil penempatan lahan Selanjutnya dengan cara yang sama untuk menghitung fungsi tujuan dari tiap-tiap individu kucing. 1 2 3 4 30 32 23 10 95. Hasil lengkapnya terlihat pada Tabel 4.11 Tabel 4.11 Nilai fungsi tujuan masing-masing kucing Individu f(x) 95 96 120 Langkah 5: Menghitung nilai fitnes dari fungsi tujuan Menghitung nilai fitness berdasarkan nilai fungsi tujuan. Nilai fitness dirumuskan dengan: 1

53 Perhitungannya adalah sebagai berikut: 1. Kucing ke-1 ( ) 1 1 0.01053 95 2. Kucing ke-2 ( ) 1 1 0.01042 96 3. Kucing ke-3 ( ) 1 1 0.00833 120 Langkah 6: Penempatan Flag Sebelumnya diperkenalkan formulasi berikut: Penentuan flag setiap kucing dilakukan secara acak dengan tujuan menempatkan sejumlah Jumlah seeking kucing ke dalam mode seeking (flag=1), dan sejumlah Jumlah tracing kucing ke dalam mode tracing (flag=0). Dalam contoh kasus, parameter yang digunakan adalah mr = 0.33 dan m = 3. Jadi proporsi pembagian ini adalah 2 : 1, 2 individu bermode seeking dan 1 individu bermode tracing. Hasil pembagian flag secara random ini dapat dilihat dalam Tabel 4.12 Tabel 4.12 flag populasi awal Individu Random Urutan Flag 0,4679 2 1 0,5671 3 1 0,2414 1 0

54 Langkah 7: Memberi Nilai SPC Informasi tentang nilai fitness dari setiap individu diatas penting untuk menetapkan nilai boolean dari Self Position Considering (SPC). Karena Self Position Considering (SPC) ditentukan di dalam populasi dengan nilai fitness yang tertinggi diberi nilai 1. Hasil Penentuan SPC setiap individu dapat terlihat dalam Tabel 4.13 Tabel 4.13 Nilai fitness terurut dan SPC populasi awal Individu Nilai Fitness SPC 0.01042 0 0.01053 1 0.00833 0 Dalam Tabel 4.13 (1 individu bernilai label SPC = 1 dan sisanya yang belum mempunyai label SPC secara otomatis mendapatkan label SPC = 0 ). Langkah 8: Tracing Mode Dari Tabel 4.13 dapat dilihat bahwa individu yang masuk ke dalam mode tracing adalah individu 3. Sesuai dengan jurnal (Chu,et all,2007) setiap individu yang tersaring dalam mode ini akan mengupdate kecepatannya dengan rumus : 1,2,3,, 1,2,, xbest terpilih dari iterasi-1 adalah dengan posisi awal yaitu: 0.84 0.09 0.71 0.29 0.16 0.60 0.81 0.92 0.99 0.08 0.26 0.69 0.63 Berikut adalah proses update kecepatan baru untuk individu. Telah diketahui sebelumnya kecepatan awal dan posisi awal dari individu adalah sebagai berikut: 0.76 0.10 0.43 0.73 0.87 0.35 0.28 0.85 0.05 0.42 0.86 0.06 0.80 0.93 0.95 0.50 0.05 0.22 0.99 0.48 0.75 0.28 0.86 0.72 0.30 0.73

55 Dengan bilangan real secara acak = 0.3498, maka akan dilakukan proses update kecepatan dengan cara berikut: Untuk d = 1 0.3498 2 0.93 0.3498 2 0.84 0.93 0,697 Dengan cara yang sama untuk masing-masing komponen pada individu kucing, maka diperoleh update kecepatan baru pada Tabel 4.14 Tabel 4.14 Hasil update kecepatan kucing 3 Individu Kecepatan Baru 0.697-0.5017 0.5769 0.8979 0.828 0.0772 0.5109 0.9689 0.5467-0.1257 0.5382 0.3328 0.73 Setelah nilai kecepatan kucing 1 diperbarui maka langkah selanjutnya adalah memperbarui posisi kucing 1. Untuk memperbarui posisi kucing 1 diperlukan nilai kecepatan yang baru kucing 1 dengan menggunakan rumus: Untuk d= 1 0.93 0.697 1.627

56 Dengan cara yang sama untuk masing-masing komponen pada individu kucing, maka diperoleh update posisi baru Tabel 4.15 Tabel 4.15 Hasil update posisi kucing 3 Individu Posisi Baru 1.627 0.4483 1.0769 0.9479 1.048 1.0672 0.9909 1.7189 0.8267 0.9857 1.2582 0.6328 1.46 Kemudian ditransformasikan ke bilangan asli dengan cara mengurutkan dari yang terkecil hingga yang terbesar. Hasil transformasi disajikan dalam Tabel 4.16 Kucing Tabel 4.16 Hasil transformasi update kucing 3 Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 12 1 9 4 7 8 6 13 3 5 10 2 11 Dimensi Ukuran 6 4 4 5 4 4 4 1 2 1 2 2 2 Diperoleh tinggi sebesar 100 feet dengan urutan lahan masuk 12-1-9-4-7-8- 6-13-3-5-10-2-11 dengan dimensi ukuran 6-4-4-5-4-4-4-1-2-1-2-2-2. Kemudian dicari nilai fitness:

57 1. Kucing ke-3 baru ( baru) 1 1 100 0.01 Perbandingan nilai fitness baru dan nilai fitness lama disajikan dalam Tabel 4.17 Tabel 4.17 Perbandingan nilai fitness baru dan nilai fitness lama Individu Nilai fitness baru Nilai fitness lama 0.01 0,00833 Individu Karena pada individu 3 nilai fitness baru > nilai finess lama, maka solusi dari tracing diterima. Sehingga nilai local best untuk mode tracing adalah 100 feet dengan dengan urutan lahan masuk 12-1-9-4-7-8-6-13-3-5-10-2-11 dengan dimensi ukuran 6-4-4-5-4-4-4-1-2-1-2-2-2. Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 12 1 9 4 7 8 6 13 3 5 10 2 11 Dimensi Ukuran 6 4 4 5 4 4 4 1 2 1 2 2 2 Langkah 9: Seeking Mode Dari Tabel 4.13 dapat dilihat bahwa individu yang masuk dalam mode seeking adalah individu 2 dan individu 1, dapat dilihat juga dari Tabel 4.13 bahwa SPC individu 2 = 1 dan SPC individu 1 = 0. Terdapat 6 parameter yang diinputkan dalam algoritma Cat Swarm Optimization (CSO), 3 diantaranya digunakan dalam mode seeking. Parameter-parameter tersebut antara lain Seeking Memory Pool (SMP) = 4, Change Dimension to Change (CDC) = 0,33 dan Seeking Range Dimension (SRD) = 0,5 Berikut diberikan operasi mode seeking untuk individu 2, dengan SPC = 1 Posisi awal dari individu 2 adalah sebagai berikut:

58 0.23 0.40 0.91 0.51 0.94 0.65 0.14 0.66 0.36 0.79 0.80 0.89 0.34 Karena SPC individu 2 = 1, maka individu 2 akan di copy sebanyak SMP-1. Tabel 4.18 Proses Pengcopyan Individu 2 Sebanyak SMP-1 Kali Individu Posisi 0.23 0.40 0.91 0.51 0.94 0.65 0.14 0.66 0.36 0.79 0.80 0.89 0.34 0.23 0.40 0.91 0.51 0.94 0.65 0.14 0.66 0.36 0.79 0.80 0.89 0.34 0.23 0.40 0.91 0.51 0.94 0.65 0.14 0.66 0.36 0.79 0.80 0.89 0.34 0.23 0.40 0.91 0.51 0.94 0.65 0.14 0.66 0.36 0.79 0.80 0.89 0.34 Setelah posisi kucing 2 di copy sejumlah SMP-1, maka langkah selanjutnya adalah proses modifikasi pada sejumlah dimensi untuk setiap tiruan kucing. Langkah mutasi dari individu 2 adalah sebagai berikut: Hitung jumlah dimensi yang akan dimutasi/dimodifikasi dengan rumus: Jumlah Modifikasi = CDC * n = 0,33*13 = 4,2 4 Jadi sejumlah 4 dimensi yang akan dimodifikasi untuk setiap tiruan kucing 2. Sebanyak 4 dimensi yang akan dimodifikasi dipilih secara acak, dilakukan dengan cara membangkitkan bilangan real pada interval [0 1] secara acak kemudian diurutkan dari yang terkecil hingga terbesar. Penentuan dimensi untuk modifikasi selengkapnya dapat dilihat pada Tabel 4.19

59 Posisi Bil.real secara acak (Modifikasi) Urutan Status Tabel 4.19 Penentuan Dimensi untuk Modifikasi Dimensi (lahan komponen) 1 2 3 4 5 6 7 8 9 10 11 12 13 0.23 0.40 0.91 0.51 0.94 0.65 0.14 0.66 0.36 0.79 0.80 0.89 0.34 0.12 0.92 0.78 0.06 0.96 0.30 0.19 0.33 0.99 0.81 0.28 0.07 0.03 4 11 9 2 12 7 5 8 13 10 6 3 1 M - - M - - - - - - - M M Pada Tabel 4.19 dimensi dengan status M merupakan dimensi yang terpilih untuk dimodifikasi yaitu dimensi (lahan komponen) ke 13,4,12, dan 1. Dengan cara yang sama lakukan penentuan dimensi yang akan dimodifikasi untuk tiruan kucing-kucing yang lain. Dibawah ini merupakan formulasi untuk menghitung nilai modifikasi dari tiap dimensi yang terpilih. 1 Untuk k =1 (dimensi terpilih = 13) 1 0,5 0.34 0.5 0.34 0.17 Demikian pula untuk k = 4,12, dan 1 diperoleh: 0.51 0.5 0.51 0.765 0.89 0.5 0.89 1.335 0.23 0,5 0.23 0.115 Hasil mutasi dari individu 2 yang didapatkan dari operasi yang dipengaruhi oleh CDC, dan SRD ini biasa disebut disebut copy dari individu 2, dinotasikan. Dalam algoritma ini setiap kucing mempunyai slot memory yang disebut Seeking Memory Pool yang berfungsi menampung sebanyak SMP-1 copy dari individu 2. Semua copy didapatkan dengan

60 melakukan perulangan semua langkah modifikasi hingga SMP-1 kali. Secara lengkap kandidat solusi dalam Seeking Memory Pool individu 2 dapat dilihat pada Tabel 4.20 Tabel 4.20 Kandidat Solusi Dalam Seeking Memory Pool Individu 2 Kandidat Solusi Modif Modif Modif Modif Lahan Komponen 1 2 3 4 5 6 7 8 9 10 11 12 13 0.115 0.4 0.91 0.765 0.94 0.65 0.07 0.99 0.36 0.79 0.8 0.89 0.34 0.115 0.4 0.91 0.765 0.94 0.65 0.14 0.66 0.36 0.79 0.8 1.335 0.17 0.23 0.4 0.91 0.765 0.94 0.975 0.14 0.66 0.36 0.79 0.8 1.335 0.17 0.115 0.4 0.455 0.51 0.94 0.65 0.07 0.66 0.36 0.79 0.8 1.335 0.34 Semua kandidat solusi dalam Seeking Memory Pool individu 2 kemudian dicari representasi permutasinya untuk keperluan evaluasi area yang terpakai dan nilai fitness. Representasi Permutasi dalam Seeking Memory Pool individu 2 dapat dilihat selengkapnya dalam Tabel 4.21 Individu Tabel 4.21 Representasi Permutasi dalam SMP-1 individu 2 dan Fleksibilitas Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 2 5 12 7 11 6 1 13 4 8 9 10 3 Dimensi Ukuran 2 1 2 1 1 4 2 2 3 1 5 4 1 1 5 11 8 12 6 2 7 4 9 10 13 3 Dimensi Ukuran 4 4 2 2 1 1 2 1 1 5 4 5 2 3 5 10 7 11 12 1 6 4 8 9 13 2 Dimensi Ukuran 3 5 4 4 4 2 2 1 2 1 1 1 2 2 5 6 7 12 8 1 9 4 10 11 13 3 Dimensi Ukuran 2 1 4 4 2 4 2 1 4 1 1 1 1

61 Dengan prosedur yang sama dengan perhitungan area lahan yang terpakai dalam populasi awal, dan perhitungan nilai fitness dalam populasi awal didapatkan hasil seperti dalam Tabel 4.22 Tabel 4.22 Tinggi dan Nilai Fitness Individu Tinggi Nilai fitness 110 0.00909 100 0.01 90 0.01111 95 0.01053 Selanjutnya akan dihitung probabilitas terpilih masing-masing kandidat dalam Seeking Memory Pool berdasarkan formulasi dibawah ini : 1,2,, Sebagai contoh berikut dihitung probabilitas terpilih dari 0.01111 0.00909 0.01111 0.00909 1 Dengan cara yang sama, diterapkan terhadap setiap copy individu 2. Sehingga didapatkan hasil pada Tabel 4.23 Tabel 4.23 Probabilitas Terpilih SMP-1 Individu 2 Individu Nilai fitness Probabilitas Terpilih 0.00909 0 0.01 0.45049 0.01111 1 0.01053 0.71287

62 Total probabilitas terpilih dari Tabel 4.23 adalah 2.16336, untuk mendapatkan distribusi peluang masing-masing individu dalam roulette wheel maka dilakukanlah perhitungan Probabilitas Relatif (Relative Probability) dengan formulasi: Sebagai contoh dihitung probabilitas relative dari Hasil selengkapnya dapat dilihat pada Tabel 4.24 1 0.46224 2.16336 Tabel 4.24 Probabilitas Relatif SMP Individu 2 Individu Nilai fitness Probabilitas Terpilih Probabilitas Relatif 0.00909 0 0 0.01 0.45049 0.20824 0.01111 1 0.46224 0.01053 0.71287 0.32952 Proses pemilihan posisi baru dari individu 2 dilakukan dengan prosedur seleksi roulette wheel, Prosedur seleksi roulette wheel dapat dilakukan dengan cara menyebar probabilitas terpilih kumulatif setiap individu dalam garis bilangan 0-1 kemudian membangkitkan satu bilangan acak secara random untuk memilih posisi baru bagi individu yang berkaitan. Formulasi untuk menghitung probabilitas terpilih kumulatif adalah sebagai berikut : 0... 1,2,3,, Selengkapnya hasil pemilihan update posisi individu 2, dengan seleksi roulette wheel diperlihatkan dalam Tabel 4.25

63 Tabel 4.25 Roulette Wheel Individu 2 Individu Probabilitas Terpilih Kumulatif Status Individu 0-0.20824 Terpilih 0.67048-1 - Individu Dalam Tabel 4.25 dilakukan pembangkitan satu bilangan real secara acak yaitu r = 0.13696, ini berarti secara probabilitas, terpilih sebagai posisi pengganti dari, karena bilangan r berada dalam interval probabilitas terpilih kumulatif dari, dapat dituliskan: 0 0.20824 Dari tahapan ini individu 2 mengupdate posisinya menjadi sama dengan posisi dari. Update local best seeking dilakukan dengan cara mengambil lahan komponen terbaik dari Seeking Memory Pool individu 2 yaitu : Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 1 5 11 8 12 6 2 7 4 9 10 13 3 Dimensi Ukuran 4 4 2 2 1 1 2 1 1 5 4 5 2 Individu Selanjutnya akan ditentukan solusi terbaik dari individu kucing tiruan 2. Individu terbaik adalah individu yang memiliki tinggi terkecil. Berdasarkan Tabel 4.22 dapat dilihat bahwa individu yang memiliki tinggi terkecil adalah individu. Karena tinggi, maka menjadi solusi terbaik sementara. Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 3 5 10 7 11 12 1 6 4 8 9 13 2 Dimensi Ukuran 3 5 4 4 4 2 2 1 2 1 1 1 2

64 Dengan nilai tinggi sebesar 90 feet dengan urutan lahan komponen masuk 3-5-10-7-11-12-1-6-4-8-9-13-2 dengan dimensi ukuran 3-5-4-4-4-2-2-1-2-1-1-1-2. Dengan cara yang sama individu 1 menggunakan slot Seeking Memory Poolnya, yang berbeda adalah karena SPC individu 1 bernilai 0, maka slot pertama dari Seeking Memory Pool individu 3 diisi oleh posisi dirinya sendiri (posisi individu dipertahankan sebagai kandidat solusi), Untuk individu 3 dapat dilihat dalam Tabel 4.26 Kandidat Solusi Tabel 4.26 Kandidat Solusi Dalam Seeking Memory Pool Individu 1 Lahan Komponen 1 2 3 4 5 6 7 8 9 10 11 12 13 0.84 0.09 0.71 0.29 0.16 0.60 0.81 0.92 0.99 0.08 0.26 0.69 0.63 0.84 0.09 0.71 0.29 0.16 0.60 0.81 0.92 0.99 0.08 0.26 0.69 0.63 0.84 0.09 0.71 0.29 0.16 0.60 0.81 0.92 0.99 0.08 0.26 0.69 0.63 0.84 0.09 0.71 0.29 0.16 0.60 0.81 0.92 0.99 0.08 0.26 0.69 0.63 Analog dengan proses mode seeking individu 2, Semua kandidat solusi dalam Seeking Memory Pool individu 1 kemudian dicari representasi permutasinya untuk keperluan evaluasi tinggi dan nilai fitness. Representasi Permutasi dalam Seeking Memory Pool individu 1 dapat dilihat selengkapnya dalam Tabel 4.27 Individu Tabel 4.27 Representasi Permutasi dalam SMP individu 1 dan Fleksibilitas Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 6 3 9 5 4 11 10 12 13 1 2 8 7 Dimensi Ukuran 5 3 5 3 4 1 2 4 3 2 1 1 1 12 2 6 5 1 8 11 13 7 3 4 10 9 Dimensi Ukuran 2 2 1 3 1 2 4 4 4 1 5 2 1 7 2 6 5 3 11 10 12 13 1 4 9 8 Dimensi Ukuran 4 3 2 2 2 1 2 2 2 1 3 1 1

65 Individu Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 11 2 9 5 3 12 10 13 7 1 4 8 6 Dimensi Ukuran 1 1 5 5 1 2 1 4 2 2 5 1 1 Hasil evaluasi tinggi dan nilai fitness dari kandidat solusi dalam Seeking Memory Pool individu 2 dapat dilihat dalam Tabel 4.28 Tabel 4.28 Tinggi dan Nilai Fitness SMP Individu 1 Individu Tinggi Nilai fitness 85 0.01176 97 0.01031 99 0.01010 90 0.01111 Nilai fitness individu dalam Tabel 4.28 dihitung nilai probabilitas terpilihnya dengan operasi yang sama dengan individu 2. Hasil Perhitungan Probabilitas Terpilih dan Probabilitas Relatif pada Seeking Memory Pool individu 2 dapat dilihat dalam Tabel 4.29 Tabel 4.29 Probabilitas Terpilih dan Probabilitas Relatif SMP Individu 1 ( Individu Nilai fitness Probabilitas Terpilih Probabilitas Relatif 0.01176 1 0.57639 0.01031 0.12651 0.07292 0.01010 0 0 0.01111 0.60843 0.35068 Nilai Probabilitas Relatif dari masing-masing kandidat solusi dalam Seeking Memory Pool individu 2, kemudian dihitung nilai kumulatifnya untuk melakukan seleksi roulette wheel. Selengkapnya hasil pemilihan

66 update posisi individu 2, dengan seleksi roulette wheel, dan menggunakan r = 0,23135 dapat dilihat dalam Tabel 4.30 Tabel 4.30 Roulette Wheel Individu 1 Individu Probabilitas Terpilih Kumulatif Status Individu 0.57639 Tepilih 0.64391-0.64391-1 - terpilih sebagai posisi pengganti dari, karena bilangan r berada dalam interval probabilitas terpilih kumulatif dari, dapat dituliskan: 0 0.57639 Dari tahapan ini individu 1 mengupdate posisinya menjadi sama dengan posisi dari. Update local best seeking dilakukan dengan cara mengambil lahan komponen terbaik dari Seeking Memory Pool individu 1 yaitu : Individu Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 6 3 9 5 4 11 10 12 13 1 2 8 7 Dimensi Ukuran 5 3 5 3 4 1 2 4 3 2 1 1 1 Dengan nilai fitness yang diperoleh adalah 0.01176 dan tinggi 85 feet dengan urutan lahan komponen masuk 6-3-9-5-4-11-10-12-13-1-2-8-7 dan dimensi ukuran 5-3-5-3-4-1-2-4-3-2-1-1-1. Setelah semua individu dalam seeking mode selesai diproses maka langkah selanjutnya adalah menentukan gbest seeking yaitu solusi sementara dari seeking mode. Oleh karena fungsi tujuan dari alokasi lahan

67 Individu adalah mencari nilai tinggi minimum maka gbest seeking dapat ditentukan dengan cara berikut: gbest seeking = min (, ) = min (85,90) = 85 Jadi individu terpilih sebagai gbest seeking dengan urutan sebagai berikut: Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 6 3 9 5 4 11 10 12 13 1 2 8 7 Dimensi Ukuran 5 3 5 3 4 1 2 4 3 2 1 1 1 Dengan nilai fitness yang diperoleh adalah 0.01176 dan tinggi 85 feet dengan urutan lahan komponen masuk 6-3-9-5-4-11-10-12-13-1-2-8-7 dan dimensi ukuran 5-3-5-3-4-1-2-4-3-2-1-1-1. Langkah 10: Simulated Annealing Karena pada proses tracing mode dan seeking mode terburuk pada tracing mode yaitu individu maka akan dilakukan proses annealing. a. Modifikasi Modifikasi solusi dapat dilakukan dengan pencarian lokal. Solusi semula adalah 1.627 0.4483 1.0769 0.9479 1.048 1.0672 0.9909 1.7189 0.8267 0.9857 1.2582 0.6328 1.46 Dengan tinggi sebasar 100 feet. b. Pencarian Lokal Pencarian lokal yang digunakan adalah resiprochal exchange mutation. Memilih secara acak dua lokus, misal terpilih lokus 3 dan lokus 4, sehingga: 0.8267 0.4483 1.0769 0.9479 1.048 1.0672 0.9909 1.7189 1.627 0.9857 1.2582 0.6328 1.46

68 Setelah dilakukan proses resiprochal exchange mutation maka diperoleh urutan lahan komponen pada individu modifikasi yang ditunjukan pada Tabel 4.31 Kucing Tabel 4.31 Urutan lahan komponen masuk setelah modifikasi Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 3 1 9 4 7 8 6 13 12 5 10 2 11 Dimensi Ukuran 2 4 4 5 2 2 2 4 3 3 2 2 2 Diperoleh tinggi sebesar 80 feet dengan urutan lahan komponen masuk 3-1- 9-4-7-8-6-13-12-5-10-2-11 dengan dimensi ukuran 2-4-4-5-2-2-2-4-3-3-2-2- 2. Sehingga modifikasi menggantikan. c. Penurunan Suhu 100 0.9 100 100 90 10 Cek suhu: Suhu baru 10 Suhu akhir 20 Karena, 10 <20, maka proses berhenti. Jadi, solusi dari simulated annealing adalah dengan tinggi sebesar 80 feet dengan urutan lahan komponen masuk 3-1-9-4-7-8-6-13-12-5-10-2- 11 dengan dimensi ukuran 2-4-4-5-2-2-2-4-3-3-2-2-2. Langkah 11: Menentukan Solusi Terbaik dari Hybrid Algoritma Cat Swarm Optimization dan Simulated Annealing Proses akhir adalah menentukan Land Allocation menggunakan Hybrid Algoritma Cat Swarm Optimization dan Simulated Annealing, yaitu:

69 min, min 85,80 80 Jadi, solusi terbaik dari iterasi 1 dari Hybrid Algoritma Cat Swarm Optimization dan Simulated Annealing untuk Land Allocation adalah dari algoritma Simulated Annealing. Individu Urutan Lahan Komponen Masuk 1 2 3 4 5 6 7 8 9 10 11 12 13 3 1 9 4 7 8 6 13 12 5 10 2 11 Dimensi Ukuran 2 4 4 5 2 2 2 4 3 3 2 2 2 Dengan tinggi sebesar 80 feet dengan urutan lahan komponen masuk 3-1- 9-4-7-8-6-13-12-5-10-2-11 dengan dimensi ukuran 2-4-4-5-2-2-2-4-3-3- 2-2-2. 4.5 Program Untuk mempermudah penyelesaian masalah land allocation dengan hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) maka dibuat program menggunakan software Borland C++ 4.6 Implementasi Program pada Contoh Kasus Land Allocation Program hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) yang telah dibuat, diimplementasikan pada data dengan 13 lahan komponen dan 75 lahan komponen. Source code program dapat dilihat pada Lampiran 2. 4.6.1 Menggunakan Data 13 Lahan Komponen Berikut ini perbandingan solusi terbaik dari 13 lahan komponen yang dihasilkan dengan nilai Seeking Memory Pool (SMP) = 4, Seeking Range

70 Dimension (SRD) = 0.6, Mixing Ratio (MR) = 0.3, 1000, 1, 0.2, c = 2, serta mengganti nilai jumlah kucing (m), max.iterasi, dan CDC Tabel 4.32 Perbandingan Solusi Terbaik Data 13 Lahan Komponen Max. Iterasi 10 100 500 Jumlah CDC Kucing (m) 0.1 0.4 0.8 10 77 85 86 50 75 80 80 100 70 76 78 10 64 72 71 50 64 67 67 100 61 66 66 10 59 64 66 50 56 56 64 100 50 60 58 Dari Tabel 4.32 dapat dilihat bahwa solusi terbaik yang dihasilkan adalah 50 feet dengan urutan 3 11 10 7 4 2 6 8 1 13 9 5 12 dengan dimensi ukuran 2 5 5 5 1 4 4 1 2 1 5 1 1. Dalam hal ini semakin besar nilai parameter maksimal iterasi dan jumlah kucing (m) maka solusi yang dihasilkan cenderung semakin baik pula. 4.6.2 Menggunakan Data 75 Lahan Komponen Berikut ini perbandingan solusi terbaik dari 75 lahan komponen yang dihasilkan dengan nilai Seeking Memory Pool (SMP) = 4, Seeking Range Dimension (SRD) = 0.6, Mixing Ratio (MR) = 0.3, 1000, 1, 0.2, c = 2, serta mengganti nilai jumlah kucing (m), max.iterasi, dan CDC.

71 Tabel 4.33 Perbandingan Solusi Terbaik Data 75 Lahan Komponen Max. Iterasi 10 100 500 Jumlah CDC Kucing (m) 0.1 0.4 0.8 10 324 318 342 50 332 313 321 100 288 302 319 10 288 291 295 50 284 281 292 100 268 261 282 10 260 256 262 50 257 255 257 100 246 251 222 Dari Tabel 4.33 dapat dilihat bahwa solusi terbaik yang dihasilkan adalah 222 meter dengan urutan 13 72 37 68 41 51 62 7 55 53 44 4 22 39 74 6 64 30 25 27 63 69 15 17 33 28 23 5 56 12 11 42 29 34 19 10 40 57 14 43 49 20 66 2 58 50 70 59 21 47 65 35 67 3 9 61 75 16 73 54 26 48 52 18 45 8 36 46 60 32 71 31 38 1 24 dengan dimensi ukuran 2 3 4 2 3 3 1 4 1 5 5 4 1 4 3 3 2 3 1 1 3 1 2 2 3 4 2 4 1 4 2 4 1 2 3 1 1 4 2 2 5 3 4 2 3 5 5 2 1 5 3 3 1 2 4 3 5 3 2 1 5 5 5 2 1 2 1 5 2 3 4 2 3 2 3. Dalam hal ini semakin besar nilai parameter maksimal iterasi dan jumlah kucing (m) maka solusi yang dihasilkan cenderung semakin baik pula.

72 4.6 Perbandingan Solusi dengan Algoritma Lain Solusi yang dihasilkan dari penataan lahan komponen dengan data 75 lahan komponen seperti yang ditulis oleh Egy Rifki Yuda, 2015. Perbandingan solusi telah ditambahkan dengan solusi yang dihasilkan oleh hybrid algoritma cat swarm optimization dan simulated annealing. Disajikan pada Tabel 4.34 Tabel 4.34 Perbandingan Solusi yang Dihasilkan oleh Ketiga Algoritma Algoritma Total tinggi lahan Genetic Algorithm 383 Firefly Algorithm 247 Hybrid cat swarm optimization and simulated annealing Algorithm 222 Dengan demikian, solusi yang dihasilkan oleh Hybrid cat swarm optimization and simulated annealing Algorithm merupakan solusi terbaik dibandingkan dengan Genetic Algorithm dan Firefly Algorithm.

BAB V KESIMPULAN DAN SARAN Pada bab ini akan dijelaskan mengenai kesimpulan dan saran hybrid algoritma Cat Swarm Optimization (CSO) dan Simulated Annealing (SA) pada masalah land allocation. 5.1 Kesimpulan. 1. Hybrid algoritma cat swarm optimization dan simulated annealing dapat digunakan untuk menyelesaikan permasalahan land allocation. 2. Program untuk menyelesaikan permasalahan land allocation dengan menggunakan hybrid algoritma cat swarm optimization dan simulated annealing dapat dibuat dengan bahasa pemrograman C++ dengan software Borland C++ 5.0.2. 3. Implementasi program untuk contoh kasus menggunakan data 13 lahan komponen, diperoleh nilai fungsi tujuan terbaik yaitu sebesar 50 feet. Untuk data 75 lahan komponen, diperoleh nilai fungsi tujuan terbaik sebesar 222 meter. Dengan menggunakan parameter yang berbeda dapat mempengaruhi solusi yang didapatkan. Semakin besar nilai parameter jumlah kucing dan maks_iterasi, maka solusi yang didapat semakin baik. 5.2 Saran Untuk penelitian selanjutnya dapat dilakukan hal sebagai berikut: 1. Permasalahan dapat dikembangkan dengan menggunakan permasalahan land allocation dengan bentuk selain segi empat. 2. Permasalahan dapat diselesaikan dengan menggunakan algoritma atau metode yang lain. 72

DAFTAR PUSTAKA Callaghan, A.R., Nair, A.R., and Lewis, K.E., 1999, An Extension Of The Orthogonal Packing Problem Through Dimensional Flexibility, ASME Design Engineering Technical Conferences, Las Vegas, Nevada. Chatrand, G. and Oellermann, O.R., 1993, Applied and Algorithmic Graph Theory, McGraw-Hill, New York. Chibante, R., 2010, Simulated Annealing Theory and Aplication, Sciyo, Croatia Chu, S.C and Tsai, P.W, 2007, Computational Intellegence Based On Behaviour of Cat, International Journal of Innovative Computing, Taiwan Dereli, T. dan Sena Das, G., 2006, A Hybrid Simulated Annealing Algorithm for 2D Packing Problems, Sakarya University, Turkey. Gen, M. and Cheng, R., 1997, Genetic Algorithms and Engineering Design, John Wiley & Sons, New York. Horowitz, E., Sahni, S., dan Rajasekaran, S., 2006, Computer Algorithms C++, Computer Science Press, New York. Imahori, S., Yagiura, M., Ibaraki, T., 2007, Hybrid Metaheuristics for Packing Problems, Mathematical Engineering Technical Reports, University of Tokyo, Tokyo, Japan. Kadir, A. dan Heriyanto, 2015, Algoritma Pemrograman Menggunakan C++, ANDI, Yogyakarta. Milano, M. Dan Henternryck, P.V., 2010, Hybrid Optimization, Springer, New York. Obitko, M., 1998, Genetic Algorithms, Czezh Technical University. Stewart, T.J., Janssen, R., and Herwijen, M. Van, 2004, A Genetic Algorithm Approach to Multi-objective Land Use Planning, Netherland: Computer & Operations Research, 2293-2313. Suryakumari, P, P. Kantarao, 2013, Power Loss Minimation Using CSO, International Journal of Application, India 73

Lampiran 1-1 Lampiran 1: Data Besar (75 Lahan Komponen) No. No. Luas No. Luas Luas Hak ( No. Hak ( No. No. Hak ( 1. B.607 320 26. B.669 308 51. B.641 300 2. B.608 300 27. B.670 308 52. B.642 300 3. B.609 300 28. B.671 308 53. B.674 308 4. B.610 300 29. B.672 308 54. B.721 450 5. B.611 300 30. B.673 308 55. B.725 450 6. B.612 300 31. B.681 720 56. B.727 450 7. B.613 300 32. B.716 450 57. B.730 560 8. B.614 300 33. B.717 450 58. B.731 480 9. B.615 300 34. B.718 450 59. B.728 450 10. B.616 450 35. B.719 450 60. B.729 450 11. B.617 460 36. B.720 450 61. B.732 450 12. B.618 300 37. B.722 480 62. B.668 456 13. B.619 300 38. B.691 486 63. B.708 456 14. B.620 300 39. B.625 300 64. B.709 456 15. B.621 300 40. B.626 300 65. B.710 456 16. B.622 300 41. B.628 300 66. B.704 456 17. B.623 300 42. B.629 300 67. B.741 450 18. B.624 300 43. B.630 300 68. B.723 480 19. B.627 320 44 B.631 300 69. B.742 450 20. B.634 200 45. B.632 300 70. B.733 300 21. B.635 480 46. B.633 300 71. B.734 300 22. B.712 940 47. B.635 300 72. B.735 300 23. B.660 324 48. B.638 300 73. B.738 300 24. B.715 560 49. B.639 300 74. B.739 300 25. B.707 456 50. B.640 300 75. B.749 300 Dengan fleksibilitas dimensi: No. Luas Dimensi ( 1 2 3 4 5 6 1. 320 5x64 10x32 16x20 40x8 8x40 20x16 2. 300 5x60 10x30 12x25 15x20 20x15 25x12 3. 300 5x60 10x30 12x25 15x20 20x15 25x12 4. 300 5x60 10x30 12x25 15x20 20x15 25x12 5. 300 5x60 10x30 12x25 15x20 20x15 25x12 6. 300 5x60 10x30 12x25 15x20 20x15 25x12 7. 300 5x60 10x30 12x25 15x20 20x15 25x12 8. 300 5x60 10x30 12x25 15x20 20x15 25x12 9. 300 5x60 10x30 12x25 15x20 20x15 25x12 10. 450 5x90 10x45 15x30 30x15 45x10 90x5 11. 460 5x92 10x46 20x23 23x20 46x10 92x5 12. 300 5x60 10x30 12x25 15x20 20x15 25x12 13. 300 5x60 10x30 12x25 15x20 20x15 25x12 14. 300 5x60 10x30 12x25 15x20 20x15 25x12 15. 300 5x60 10x30 12x25 15x20 20x15 25x12

Lampiran 1-2 No Luas Dimensi (m 2 ) 1 2 3 4 5 6 17. 300 5x60 10x30 12x25 15x20 20x15 25x12 18. 300 5x60 10x30 12x25 15x20 20x15 25x12 19. 320 5x64 8x40 10x32 16x20 20x16 32x10 20. 200 4x50 5x40 10x20 20x10 40x5 50x4 21. 480 8x60 10x48 12x40 15x32 20x24 24x20 22. 940 5x188 10x94 20x47 47x20 94x10 188x5 23. 324 4x81 6x54 9x36 36x9 54x6 81x4 24. 560 4x140 5x112 8x70 10x56 20x28 28x20 25. 456 4x114 6x76 8x57 57x8 76x6 114x4 26. 308 4x77 7x44 14x22 22x14 44x7 77x4 27. 308 4x77 7x44 14x22 22x14 44x7 77x4 28. 308 4x77 7x44 14x22 22x14 44x7 77x4 29. 308 4x77 7x44 14x22 22x14 44x7 77x4 30. 308 4x77 7x44 14x22 22x14 44x7 77x4 31. 720 8x90 9x80 10x72 20x36 24x30 40x18 32. 450 5x90 10x45 15x30 30x15 45x10 90x5 33. 450 5x90 10x45 15x30 30x15 45x10 90x5 34. 450 5x90 10x45 15x30 30x15 45x10 90x5 35. 450 5x90 10x45 15x30 30x15 45x10 90x5 36. 450 5x90 10x45 15x30 30x15 45x10 90x5 37. 480 8x60 10x48 12x40 15x32 20x24 24x20 38. 486 3x162 6x81 9x54 54x9 81x6 162x3 39. 300 5x60 10x30 12x25 15x20 20x15 25x12 40. 300 5x60 10x30 12x25 15x20 20x15 25x12 41. 300 5x60 10x30 12x25 15x20 20x15 25x12 42. 300 5x60 10x30 12x25 15x20 20x15 25x12 43. 300 5x60 10x30 12x25 15x20 20x15 25x12 44 300 5x60 10x30 12x25 15x20 20x15 25x12 45. 300 5x60 10x30 12x25 15x20 20x15 25x12 46. 300 5x60 10x30 12x25 15x20 20x15 25x12 47. 300 5x60 10x30 12x25 15x20 20x15 25x12 48. 300 5x60 10x30 12x25 15x20 20x15 25x12 49. 300 5x60 10x30 12x25 15x20 20x15 25x12 50. 300 5x60 10x30 12x25 15x20 20x15 25x12 51. 300 5x60 10x30 12x25 15x20 20x15 25x12 52. 300 5x60 10x30 12x25 15x20 20x15 25x12 53. 308 4x77 7x44 14x22 22x14 44x7 77x4 54. 450 5x90 10x45 15x30 30x15 45x10 90x5 55. 450 5x90 10x45 15x30 30x15 45x10 90x5 56. 450 5x90 10x45 15x30 30x15 45x10 90x5 57. 560 5x90 10x45 15x30 30x15 45x10 90x5 58. 480 5x90 10x45 15x30 30x15 45x10 90x5 59. 450 5x90 10x45 15x30 30x15 45x10 90x5 60. 450 5x90 10x45 15x30 30x15 45x10 90x5 61. 450 5x90 10x45 15x30 30x15 45x10 90x5 62. 456 4x114 6x76 8x57 57x8 76x6 114x4 63. 456 4x114 6x76 8x57 57x8 76x6 114x4 64. 456 4x114 6x76 8x57 57x8 76x6 114x4 65. 456 4x114 6x76 8x57 57x8 76x6 114x4 66. 456 4x114 6x76 8x57 57x8 76x6 114x4 67. 450 5x90 10x45 15x30 30x15 45x10 90x5

Lampiran 1-3 No Luas Dimensi (m 2 ) 1 2 3 4 5 6 68. 480 8x60 10x48 12x40 15x32 20x24 24x20 69. 450 5x90 10x45 15x30 30x15 45x10 90x5 70. 300 5x60 10x30 12x25 15x20 20x15 25x12 71. 300 5x60 10x30 12x25 15x20 20x15 25x12 72. 300 5x60 10x30 12x25 15x20 20x15 25x12 73. 300 5x60 10x30 12x25 15x20 20x15 25x12 74. 300 5x60 10x30 12x25 15x20 20x15 25x12 75. 300 5x60 10x30 12x25 15x20 20x15 25x12 Sumber: Egy Rifky Yuda, 2015, Penerapan Algoritma Firefly untuk Permasalahan Land Allocation.

Lampiran 2-1 Lampiran 2: Source Code Program #include <iostream> #include <conio.h> #include <fstream> #include <stdlib.h> #include <time.h> #include <math.h> #include <iomanip.h> #include <cstring.h> //batasan input (string) string pilih_data_sampel,adjustment,adjustment2; //batasan input (int) int data_sampel,adjust,adjust2; //parameter-parameter dalam algoritma cso-sa (string) string kucing_string,smp_string,lebar_wadah_string,c1_string; string cdc_string,srd_string,mr_string; string alpha_string,suhu_awal_string,suhu_akhir_string; //parameter-parameter dalam algoritma cso-sa (final) int kucing,smp,lebar_wadah,c1,jumlahlahan,jumlahvariasi; double cdc,srd,mr,alpha,suhu_awal,suhu_akhir; //variabel pembaca data int himpunan_data[1000],ambil_data,tinggi_lahan[1000][1000]; int lebar_lahan[1000][1000]; //penentu iterasi int max_iterasi,iterasi,z,sum,choose; string max_iterasi_string; //elemen data cso double data_random[1000][1000],data_kecepatan[1000][1000]; double data_flag[1000]; int variasi_bentuk[1000][1000],ambil_lebar[1000][1000]; int urutan_lahan_masuk[1000][1000],ambil_tinggi[1000][1000]; int jumlahtracing,jumlahseeking,flag[1000],spc[1000]; int grup_seeking[1000],grup_tracing[1000]; //elemen seeking double Memory_pool[1000][1000]; int terpilih[1000],write_dimension[1000][1000]; int seeking_counter,counter;

Lampiran 2-2 //pembanding dan fitness lahan int tinggi_total[1000],data_urutan_fungsitujuan[1000]; double nilai_fitness[1000]; //elemen memory pool int urutan_lahan_masuk_mp[1000][1000],ambil_tinggi_mp[1000][1000],tinggi_tota l_mp[1000]; int variasi_bentuk_mp[1000][1000],ambil_lebar_mp[1000][1000]; double nilai_fitness_mp[1000],probabilitas[1000]; int indeks_bestseeking; double probabilitask[1000],probabilitasr[1000]; int indeks_terpilih_roulette; int doc_tinggi,doc_lahan[1000],doc_variasi[1000]; int tinggi_best,lahan_best[1000],variasi_best[1000]; double x_best[1000],copy_cat[1000]; //elemen tracing int doc_tinggi_tracing,doc_lahan_tracing[1000],doc_variasi_tracing[1000]; int tinggi_best_tracing,lahan_best_tracing[1000],variasi_best_tracing[1000]; //elemen form akhir int real_tinggi,real_lahan[1000],real_variasi[1000],status; //elemen SA double suhu_sekarang,tempsa,solusi_sa[1000],random_sa,suhu; int select_1,select_2,urutan_lahan_masuk_sa[1000],mutatecounter,tinggi_total_copy [1000]; int variasi_bentuk_sa[1000],ambil_lebar_sa[1000],ambil_tinggi_sa[1000],tinggi_tota l_sa; //banner tampilan awal void receptionist() cout<<endl; cout<<" ///////////////////////////////////////////////////////////////////////////"<<endl; cout<<" /// PROGRAM PENYELESAIAN LAND ALLOCATION DENGAN HYBRID ALGORITMA CSO-SA /// "<<endl; cout<<" ///////////////////////////////////////////////////////////////////////////"<<endl; cout<<endl;

Lampiran 2-3 //pilihan data void optionist() cout<<" Pilih Sampel Data Yang Akan Di Running : "<<endl<<endl; cout<<" 1) DATA KECIL ( 13 Lahan ) "<<endl<<endl; cout<<" 2) DATA BESAR ( 75 Lahan ) "<<endl<<endl; cout<<endl<<" Tentukan Pilihan Dalam Angka (1/2) : "; void default_parameter() if(data_sampel==1) kucing=100; smp=4; cdc=0.1; srd=0.6; mr=0.3; alpha=0.2; c1=2; lebar_wadah=200; suhu_awal=1000; suhu_akhir=1; if(data_sampel==2) kucing=100; smp=4; cdc=0.8; srd=0.6; mr=0.3; alpha=0.2; c1=2; lebar_wadah=250; suhu_awal=1000; suhu_akhir=1; void view_parameter() cout<<" Parameter Dalam Program : "<<endl<<endl; cout<<" 1) Jumlah Kucing : "<<kucing<<endl; cout<<" 2) Nilai SMP : "<<smp<<endl;

Lampiran 2-4 cout<<" 3) Nilai CDC : "<<cdc<<endl; cout<<" 4) Nilai SRD : "<<srd<<endl; cout<<" 5) Nilai MR : "<<mr<<endl; cout<<" 6) Nilai Alpha : "<<alpha<<endl; cout<<" 7) Nilai C1 : "<<c1<<endl; cout<<" 8) Nilai Lebar Wadah : "<<lebar_wadah<<endl; cout<<" 9) Suhu Awal : "<<suhu_awal<<endl; cout<<"10) Suhu Akhir : "<<suhu_akhir<<endl; cout<<endl<<" Ingin Rubah Parameter? (ya=1/tidak=2) : "; void the_parameters() receptionist(); default_parameter(); view_parameter(); void revision_parameter() cout<<" Parameter Dalam Program : "<<endl<<endl; cout<<" 1) Jumlah Kucing : "<<kucing<<endl; cout<<" 2) Nilai SMP : "<<smp<<endl; cout<<" 3) Nilai CDC : "<<cdc<<endl; cout<<" 4) Nilai SRD : "<<srd<<endl; cout<<" 5) Nilai MR : "<<mr<<endl; cout<<" 6) Nilai Alpha : "<<alpha<<endl; cout<<" 7) Nilai C1 : "<<c1<<endl; cout<<" 8) Nilai Lebar Wadah : "<<lebar_wadah<<endl; cout<<" 9) Suhu Awal : "<<suhu_awal<<endl; cout<<"10) Suhu Akhir : "<<suhu_akhir<<endl; cout<<endl<<" Apakah Parameter Sudah Benar (ya=1/tidak=2) : "; void permutasi_lahan_masuk() int i, j, maksindeks; double variabelsementara; double kucing_sementara[1000]; double kucing_matching[1000]; for(int ke=0;ke<kucing;ke++)

Lampiran 2-5 for(int u=0;u<jumlahlahan;u++) kucing_sementara[u]=data_random[ke][u]; for(int u=0;u<jumlahlahan;u++) kucing_matching[u]=data_random[ke][u]; for (i=0;i<jumlahlahan-1;i++) maksindeks = i; for (j=i+1;j<jumlahlahan;j++) if (kucing_sementara[j]>kucing_sementara[maksindeks]) maksindeks=j; if(j!=i) variabelsementara=kucing_sementara[i]; kucing_sementara[i]=kucing_sementara[maksindeks]; kucing_sementara[maksindeks]=variabelsementara; for (int j=0;j<jumlahlahan;j++) int match=0; for (int k=0;k<jumlahlahan;k++) if(match==0) if(kucing_sementara[j]==kucing_matching[k]) kucing_matching[k]=-1; urutan_lahan_masuk[ke][j] = k + 1; match++;

Lampiran 2-6 void permutasi_lahan_masuk_mp() int i, j, maksindeks; double variabelsementara; double kucing_sementara[1000]; double kucing_matching[1000]; for(int ke=0;ke<smp;ke++) for(int u=0;u<jumlahlahan;u++) kucing_sementara[u]=memory_pool[ke][u]; for(int u=0;u<jumlahlahan;u++) kucing_matching[u]=memory_pool[ke][u]; for (i=0;i<jumlahlahan-1;i++) maksindeks = i; for (j=i+1;j<jumlahlahan;j++) if (kucing_sementara[j]>kucing_sementara[maksindeks]) maksindeks=j; if(j!=i) variabelsementara=kucing_sementara[i]; kucing_sementara[i]=kucing_sementara[maksindeks]; kucing_sementara[maksindeks]=variabelsementara;

Lampiran 2-7 for (int j=0;j<jumlahlahan;j++) int match=0; for (int k=0;k<jumlahlahan;k++) if(match==0) if(kucing_sementara[j]==kucing_matching[k]) kucing_matching[k]=-1; urutan_lahan_masuk_mp[ke][j] = k + 1; match++; void akses_lahan() for(int i=0;i<kucing;i++) for(int j=0;j<jumlahlahan;j++) int ambil_individu=urutan_lahan_masuk[i][j]; int ambil_variasi=variasi_bentuk[i][j]; ambil_lebar[i][j]=lebar_lahan[ambil_individu-1][ambil_variasi]; ambil_tinggi[i][j]=tinggi_lahan[ambil_individu-1][ambil_variasi]; void akses_lahan_mp()

Lampiran 2-8 for(int i=0;i<smp;i++) for(int j=0;j<jumlahlahan;j++) int ambil_individu=urutan_lahan_masuk_mp[i][j]; int ambil_variasi=variasi_bentuk_mp[i][j]; ambil_lebar_mp[i][j]=lebar_lahan[ambil_individu-1][ambil_variasi]; ambil_tinggi_mp[i][j]=tinggi_lahan[ambil_individu-1][ambil_variasi]; void fungsi_tujuan_land_allocation() int lebar_slot[1000],tinggi_slot[1000]; for(int i=0;i<kucing;i++) for(int j=0;j<jumlahlahan;j++) int ambil_lebar_lahan=ambil_lebar[i][j]; int ambil_tinggi_lahan=ambil_tinggi[i][j]; if(j==0) if(ambil_lebar_lahan<=lebar_wadah) lebar_slot[j]=lebar_wadah-ambil_lebar_lahan; tinggi_slot[j]=ambil_tinggi_lahan; else lebar_slot[j]=lebar_wadah-ambil_tinggi_lahan; tinggi_slot[j]=ambil_lebar_lahan; else if(j!=0) int pas=0; for(int k=0;k<j;k++) int periksa_lebarslot=lebar_slot[k]; int periksa_tinggislot=tinggi_slot[k];

Lampiran 2-9 if(ambil_lebar_lahan<=periksa_lebarslot&&ambil_tinggi_lahan<=periksa_tingg islot) for(int l=j;l>k+1;l--) int h=lebar_slot[l-1]; int g=tinggi_slot[l-1]; lebar_slot[l]=h; tinggi_slot[l]=g; lebar_slot[k+1]=periksa_lebarslot; tinggi_slot[k+1]=periksa_tinggislot-ambil_tinggi_lahan; lebar_slot[k]=periksa_lebarslot-ambil_lebar_lahan; tinggi_slot[k]=ambil_tinggi_lahan; pas=1; break; else if(ambil_tinggi_lahan<=periksa_lebarslot&&ambil_lebar_lahan<=periksa_tingg islot) for(int l=j;l>k+1;l--) int h=lebar_slot[l-1]; int g=tinggi_slot[l-1]; lebar_slot[l]=h; tinggi_slot[l]=g; lebar_slot[k+1]=periksa_lebarslot; tinggi_slot[k+1]=periksa_tinggislot-ambil_lebar_lahan; lebar_slot[k]=periksa_lebarslot-ambil_tinggi_lahan; tinggi_slot[k]=ambil_tinggi_lahan; pas=1; break;

Lampiran 2-10 if(pas!=1) if(ambil_lebar_lahan<=lebar_wadah) lebar_slot[j]=lebar_wadah-ambil_lebar_lahan; tinggi_slot[j]=ambil_tinggi_lahan; else lebar_slot[j]=lebar_wadah-ambil_tinggi_lahan; tinggi_slot[j]=ambil_lebar_lahan; int tinggi=0; for(int j=0;j<jumlahlahan;j++) tinggi=tinggi+tinggi_slot[j]; tinggi_total[i]=tinggi; void fungsi_tujuan_land_allocation_mp() int lebar_slot[1000],tinggi_slot[1000]; for(int i=0;i<smp;i++) for(int j=0;j<jumlahlahan;j++) int ambil_lebar_lahan=ambil_lebar_mp[i][j]; int ambil_tinggi_lahan=ambil_tinggi_mp[i][j]; if(j==0) if(ambil_lebar_lahan<=lebar_wadah)

Lampiran 2-11 lebar_slot[j]=lebar_wadah-ambil_lebar_lahan; tinggi_slot[j]=ambil_tinggi_lahan; else lebar_slot[j]=lebar_wadah-ambil_tinggi_lahan; tinggi_slot[j]=ambil_lebar_lahan; else if(j!=0) int pas=0; for(int k=0;k<j;k++) int periksa_lebarslot=lebar_slot[k]; int periksa_tinggislot=tinggi_slot[k]; if(ambil_lebar_lahan<=periksa_lebarslot&&ambil_tinggi_lahan<=periksa_tingg islot) for(int l=j;l>k+1;l--) int h=lebar_slot[l-1]; int g=tinggi_slot[l-1]; lebar_slot[l]=h; tinggi_slot[l]=g; lebar_slot[k+1]=periksa_lebarslot; tinggi_slot[k+1]=periksa_tinggislot-ambil_tinggi_lahan; lebar_slot[k]=periksa_lebarslot-ambil_lebar_lahan; tinggi_slot[k]=ambil_tinggi_lahan; pas=1; break; else if(ambil_tinggi_lahan<=periksa_lebarslot&&ambil_lebar_lahan<=periksa_tingg islot) for(int l=j;l>k+1;l--)

Lampiran 2-12 int h=lebar_slot[l-1]; int g=tinggi_slot[l-1]; lebar_slot[l]=h; tinggi_slot[l]=g; lebar_slot[k+1]=periksa_lebarslot; tinggi_slot[k+1]=periksa_tinggislot-ambil_lebar_lahan; lebar_slot[k]=periksa_lebarslot-ambil_tinggi_lahan; tinggi_slot[k]=ambil_tinggi_lahan; pas=1; break; if(pas!=1) if(ambil_lebar_lahan<=lebar_wadah) lebar_slot[j]=lebar_wadah-ambil_lebar_lahan; tinggi_slot[j]=ambil_tinggi_lahan; else lebar_slot[j]=lebar_wadah-ambil_tinggi_lahan; tinggi_slot[j]=ambil_lebar_lahan; int tinggi=0; for(int j=0;j<jumlahlahan;j++) tinggi=tinggi+tinggi_slot[j]; tinggi_total_mp[i]=tinggi;

Lampiran 2-13 void hitung_nilai_fitness() for(int i=0;i<kucing;i++) nilai_fitness[i]=1/tinggi_total[i]; void hitung_nilai_fitness_mp() for(int i=0;i<smp;i++) nilai_fitness_mp[i]=1/tinggi_total_mp[i]; void class_penempatan_flag() int flag_queque[1000],temp_queque; double flag_acak[1000],temp_flag; for(int i=0;i<kucing;i++) flag_queque[i]=i; for(int i=0;i<kucing;i++) flag_acak[i]=data_flag[i]; for(int k=0;k<4*kucing;k++) for(int l=0;l<kucing-1;l++) if(flag_acak[l]<flag_acak[l+1]) temp_flag=flag_acak[l]; flag_acak[l]=flag_acak[l+1]; flag_acak[l+1]=temp_flag; temp_queque=flag_queque[l]; flag_queque[l]=flag_queque[l+1]; flag_queque[l+1]=temp_queque;

Lampiran 2-14 for(int t=0;t<jumlahtracing;t++) flag[flag_queque[t]]=0; for(int t=jumlahtracing;t<kucing;t++) flag[flag_queque[t]]=1; void class_urutan_tinggi_lahan() double fungsi_tujuan_temp[1000],fungsi_tujuan_cek[1000],temp_var; int indeks_min,j; for(int u=0;u<kucing;u++) fungsi_tujuan_temp[u]=tinggi_total[u]; for(int u=0;u<kucing;u++) fungsi_tujuan_cek[u]=tinggi_total[u]; for (int h=0;h<kucing-1;h++) indeks_min=h; for(j=h+1;j<kucing;j++) if (fungsi_tujuan_temp[j]<fungsi_tujuan_temp[indeks_min]) indeks_min=j; if(j!=h) temp_var=fungsi_tujuan_temp[h];

Lampiran 2-15 fungsi_tujuan_temp[h]=fungsi_tujuan_temp[indeks_min]; fungsi_tujuan_temp[indeks_min]=temp_var; for (int k=0;k<kucing;k++) int cocok=0; for (int l=0;l<kucing;l++) if(cocok==0) if(fungsi_tujuan_temp[k]==fungsi_tujuan_cek[l]) fungsi_tujuan_cek[l]=-1; data_urutan_fungsitujuan[k]=l; cocok++; void class_klasifikasi_kucing() int tracing=0; int seeking=0; for(int member=0;member<kucing;member++) if(flag[member]==0) grup_tracing[tracing]=member; tracing++; else if(flag[member]==1) grup_seeking[seeking]=member; seeking++;

Lampiran 2-16 void class_penentuan_xbest() for(int i=0;i<jumlahlahan;i++) x_best[i]=data_random[data_urutan_fungsitujuan[0]][i]; void pilihan_variasi_mp() randomize(); for(int i=0;i<smp;i++) for(int j=0;j<jumlahlahan;j++) int var=random(5); variasi_bentuk_mp[i][j]=var; void hitungprobabilitasterpilih() double minimal,maksimal,perbedaanmp; minimal=tinggi_total_mp[0]; for(int member=0;member<smp;member++) if(minimal>tinggi_total_mp[member]) minimal=tinggi_total_mp[member]; indeks_bestseeking=member; maksimal=tinggi_total_mp[0]; for(int member=0;member<smp;member++)

Lampiran 2-17 if(maksimal<tinggi_total_mp[member]) maksimal=tinggi_total_mp[member]; perbedaanmp=maksimal-minimal; if(perbedaanmp==0) for(int member=0;member<smp;member++) probabilitas[member]=1; else if(perbedaanmp!=0) for(int member=0;member<smp;member++) probabilitas[member]=tinggi_total_mp[member]- minimal/perbedaanmp; void roulettewheel(int indeks_kucing,double random_smp) double totalprobabilitas; totalprobabilitas=0; for(int member=0;member<smp;member++) totalprobabilitas=totalprobabilitas+probabilitas[member]; for(int member=0;member<smp;member++) probabilitasr[member]=probabilitas[member]/totalprobabilitas; for(int member=0;member<smp;member++)

Lampiran 2-18 if(member!=0) probabilitask[member]=probabilitask[member- 1]+probabilitasr[member]; else if(member==0) probabilitask[member]=probabilitasr[member]; for(int member=0;member<smp;member++) if(random_smp>probabilitask[member- 1]&&random_smp<probabilitask[member]) indeks_terpilih_roulette=member; for(int time=0;time<jumlahlahan;time++) data_random[indeks_kucing][time]=memory_pool[indeks_terpilih_roulett e][time]; variasi_bentuk[indeks_kucing][time]=variasi_bentuk_mp[indeks_terpilih_roulette ][time]; void simpan_terbaik_seeking() doc_tinggi=tinggi_total_mp[indeks_bestseeking]; for(int i=0;i<jumlahlahan;i++) doc_lahan[i]=urutan_lahan_masuk_mp[indeks_bestseeking][i]; doc_variasi[i]=variasi_bentuk_mp[indeks_bestseeking][i]; if(seeking_counter==0)

Lampiran 2-19 tinggi_best=doc_tinggi; for(int i=0;i<jumlahlahan;i++) lahan_best[i]=doc_lahan[i]; variasi_best[i]=doc_variasi[i]; else if(seeking_counter!=0) if(tinggi_best>doc_tinggi) tinggi_best=doc_tinggi; for(int i=0;i<jumlahlahan;i++) lahan_best[i]=doc_lahan[i]; variasi_best[i]=doc_variasi[i]; void copy_tinggi_cat() for(int i=0;i<kucing;i++) tinggi_total_copy[i]=tinggi_total[i]; void class_penentuan_terbaik_tracing() doc_tinggi_tracing=tinggi_total[data_urutan_fungsitujuan[0]]; for(int i=0;i<jumlahlahan;i++) doc_lahan_tracing[i]=urutan_lahan_masuk[data_urutan_fungsitujuan[0]][ i]; doc_variasi_tracing[i]=variasi_bentuk[data_urutan_fungsitujuan[0]][i];

Lampiran 2-20 if(iterasi==1) tinggi_best_tracing=doc_tinggi_tracing; for(int i=0;i<jumlahlahan;i++) lahan_best_tracing[i]=doc_lahan_tracing[i]; variasi_best_tracing[i]=doc_variasi_tracing[i]; else if(iterasi!=1) if(tinggi_best_tracing>doc_tinggi_tracing) tinggi_best_tracing=doc_tinggi_tracing; for(int i=0;i<jumlahlahan;i++) lahan_best_tracing[i]=doc_lahan_tracing[i]; variasi_best_tracing[i]=doc_variasi_tracing[i]; void compare_best_tracing_dan_best_seeking() if(tinggi_best_tracing<tinggi_best) real_tinggi=tinggi_best_tracing; for(int i=0;i<jumlahlahan;i++) real_lahan[i]=lahan_best_tracing[i]; real_variasi[i]=variasi_best_tracing[i]; else if(tinggi_best<tinggi_best_tracing)

Lampiran 2-21 real_tinggi=tinggi_best; for(int i=0;i<jumlahlahan;i++) real_lahan[i]=lahan_best[i]; real_variasi[i]=variasi_best[i]; void form_hasil_akhir() ofstream result_write; result_write.open("c:/skripsi Pipid/Hasil Running/hasil akhir land allocation.txt"); clrscr(); cout<<"//////////////////////////////////////////////////////////////////"<<endl; cout<<"/// IMPLEMENTASI ALGORITMA CSO-SA PADA MASALAH PENJADWALAN ///"<<endl; cout<<"/// LAND ALLOCATION ///"<<endl; cout<<"/// FORM HASIL AKHIR ///"<<endl; cout<<"//////////////////////////////////////////////////////////////////"<<endl<<endl; result_write<<"//////////////////////////////////////////////////////////////////"<<endl; result_write<<"/// IMPLEMENTASI ALGORITMA CSO PADA MASALAH PENJADWALAN ///"<<endl; result_write<<"/// LAND ALLOCATION ///"<<endl; result_write<<"/// FORM HASIL AKHIR ///"<<endl; result_write<<"//////////////////////////////////////////////////////////////////"<<endl<<endl; cout<<"tinggi Minimal Dari Proses Land Allocation ="<<real_tinggi<<endl<<endl; result_write<<"tinggi Terendah Dari Proses Land Allocation ="<<real_tinggi<<endl<<endl; cout<<"urutan Lahan Masuk Terbaik : "<<endl<<endl;

Lampiran 2-22 result_write<<"urutan Lahan Masuk Terbaik : "<<endl<<endl; for(int k=0;k<jumlahlahan;k++) cout<<real_lahan[k]<<" "; result_write<<real_lahan[k]<<" "; cout<<endl<<endl; result_write<<endl<<endl; result_write<<" URAIAN BENTUK LAHAN "<<endl<<endl; for(int i=0;i<jumlahlahan;i++) int variasi_akhir=real_variasi[i]+1; result_write<<" Lahan KE -"<<real_lahan[i]<<" MENGGUNAKAN VARIASI BENTUK KE- "<<variasi_akhir<<endl; cout<<endl<<endl<<"nb=variasi dapat dilihat di path berikut C:Skripsi Pipid/Hasil Running/hasil akhir land allocation"<<endl; void permutasi_lahan_masuk_sa() int i, j, maksindeks; double variabelsementara; double kucing_sementara[1000]; double kucing_matching[1000]; for(int ke=0;ke<kucing;ke++) for(int u=0;u<jumlahlahan;u++) kucing_sementara[u]=solusi_sa[u];

Lampiran 2-23 for(int u=0;u<jumlahlahan;u++) kucing_matching[u]=solusi_sa[u]; for (i=0;i<jumlahlahan-1;i++) maksindeks = i; for (j=i+1;j<jumlahlahan;j++) if (kucing_sementara[j]>kucing_sementara[maksindeks]) maksindeks=j; if(j!=i) variabelsementara=kucing_sementara[i]; kucing_sementara[i]=kucing_sementara[maksindeks]; kucing_sementara[maksindeks]=variabelsementara; for (int j=0;j<jumlahlahan;j++) int match=0; for (int k=0;k<jumlahlahan;k++) if(match==0) if(kucing_sementara[j]==kucing_matching[k]) kucing_matching[k]=-1; urutan_lahan_masuk_sa[j] = k + 1; match++;

Lampiran 2-24 void pilihan_variasi_sa() randomize(); for(int j=0;j<jumlahlahan;j++) int var=random(5); variasi_bentuk_sa[j]=var; void akses_lahan_sa() for(int j=0;j<jumlahlahan;j++) int ambil_individu=urutan_lahan_masuk_sa[j]; int ambil_variasi=variasi_bentuk_sa[j]; ambil_lebar_sa[j]=lebar_lahan[ambil_individu-1][ambil_variasi]; ambil_tinggi_sa[j]=tinggi_lahan[ambil_individu-1][ambil_variasi]; void fungsi_tujuan_land_allocation_sa() int lebar_slot[1000],tinggi_slot[1000]; for(int j=0;j<jumlahlahan;j++) int ambil_lebar_lahan=ambil_lebar_sa[j]; int ambil_tinggi_lahan=ambil_tinggi_sa[j]; if(j==0) if(ambil_lebar_lahan<=lebar_wadah) lebar_slot[j]=lebar_wadah-ambil_lebar_lahan; tinggi_slot[j]=ambil_tinggi_lahan; else

Lampiran 2-25 lebar_slot[j]=lebar_wadah-ambil_tinggi_lahan; tinggi_slot[j]=ambil_lebar_lahan; else if(j!=0) int pas=0; for(int k=0;k<j;k++) int periksa_lebarslot=lebar_slot[k]; int periksa_tinggislot=tinggi_slot[k]; if(ambil_lebar_lahan<=periksa_lebarslot&&ambil_tinggi_lahan<=periksa_tingg islot) for(int l=j;l>k+1;l--) int h=lebar_slot[l-1]; int g=tinggi_slot[l-1]; lebar_slot[l]=h; tinggi_slot[l]=g; lebar_slot[k+1]=periksa_lebarslot; tinggi_slot[k+1]=periksa_tinggislot-ambil_tinggi_lahan; lebar_slot[k]=periksa_lebarslot-ambil_lebar_lahan; tinggi_slot[k]=ambil_tinggi_lahan; pas=1; break; else if(ambil_tinggi_lahan<=periksa_lebarslot&&ambil_lebar_lahan<=periksa_tingg islot) for(int l=j;l>k+1;l--) int h=lebar_slot[l-1]; int g=tinggi_slot[l-1]; lebar_slot[l]=h;

Lampiran 2-26 tinggi_slot[l]=g; lebar_slot[k+1]=periksa_lebarslot; tinggi_slot[k+1]=periksa_tinggislot-ambil_lebar_lahan; lebar_slot[k]=periksa_lebarslot-ambil_tinggi_lahan; tinggi_slot[k]=ambil_tinggi_lahan; pas=1; break; if(pas!=1) if(ambil_lebar_lahan<=lebar_wadah) lebar_slot[j]=lebar_wadah-ambil_lebar_lahan; tinggi_slot[j]=ambil_tinggi_lahan; else lebar_slot[j]=lebar_wadah-ambil_tinggi_lahan; tinggi_slot[j]=ambil_lebar_lahan; int tinggi=0; for(int j=0;j<jumlahlahan;j++) tinggi=tinggi+tinggi_slot[j]; tinggi_total_sa=tinggi; void fitness_comparation_beforeaftermutate(int indeks) double Probability,r,deltafitness;

Lampiran 2-27 if(tinggi_total[indeks]>tinggi_total_sa) tinggi_total[indeks]=tinggi_total_sa; for(int j=0;j<jumlahlahan;j++) data_random[indeks][j]=solusi_sa[j]; variasi_bentuk[indeks][j]=variasi_bentuk_sa[j]; status=1; else r=random_sa; deltafitness=tinggi_total[indeks]-tinggi_total_sa; Probability=exp(-(deltafitness/suhu_sekarang)); if(probability>r) tinggi_total[indeks]=tinggi_total_sa; for(int j=0;j<jumlahlahan;j++) data_random[indeks][j]=solusi_sa[j]; variasi_bentuk[indeks][j]=variasi_bentuk_sa[j]; status=2; else for(int j=0;j<jumlahlahan;j++) data_random[indeks][j]; variasi_bentuk[indeks][j]; status=3; void main()

Lampiran 2-28 randomize(); ifstream read_data; ofstream write; point1: clrscr(); receptionist(); optionist(); cin>>pilih_data_sampel; data_sampel=atoi(pilih_data_sampel.c_str()); string validasi; if(data_sampel<1 data_sampel>3) cout<<endl<<" Input Error!!"<<endl; cout<<" Press any key then enter... "<<endl; cout<<" "; cin>>validasi; int valid=atoi(validasi.c_str()); if(valid!=-98) goto point1; point2: clrscr(); the_parameters(); cin>>adjustment; adjust=atoi(adjustment.c_str()); if(adjust<1 adjust>2) cout<<endl<<" Input Error!!"<<endl; cout<<" Press any key then enter... "<<endl; cout<<" "; cin>>validasi; int valid=atoi(validasi.c_str());

Lampiran 2-29 if(valid!=-98) goto point2; else if(adjust==1) input_point: clrscr(); receptionist(); cout<<endl; alpha=0.2; c1=2; lebar_wadah=500; suhu_awal=100; suhu_akhir=1; cout<<" 1) INPUTKAN JUMLAH KUCING : "; cin>>kucing_string; kucing=atoi(kucing_string.c_str()); if(kucing<3 kucing>5000) goto input_point; cout<<endl; cout<<" 2) INPUTKAN NILAI SMP : "; cin>>smp_string; smp=atoi(smp_string.c_str()); if(smp<1 smp>100) goto input_point; cout<<endl; cout<<" 3) INPUTKAN NILAI CDC : "; cin>>cdc_string; cdc=atof(cdc_string.c_str()); const char *cdc_char=cdc_string.c_str();

Lampiran 2-30 int cdc_long=strlen(cdc_char); sum=0; for(int character=0;character<cdc_long;character++) if(isalpha(cdc_char[character])) sum=sum+1; else sum=sum+0; if(cdc<=0 cdc>1 sum!=0) goto input_point; cout<<endl; cout<<" 4) INPUTKAN NILAI SRD : "; cin>>srd_string; srd=atof(srd_string.c_str()); const char *srd_char=srd_string.c_str(); int srd_long=strlen(srd_char); sum=0; for(int character=0;character<srd_long;character++) if(isalpha(srd_char[character])) sum=sum+1; else sum=sum+0; if(srd<=0 srd>1 sum!=0) goto input_point;

Lampiran 2-31 cout<<endl; cout<<" 5) INPUTKAN NILAI MR : "; cin>>mr_string; mr=atof(mr_string.c_str()); const char *mr_char=mr_string.c_str(); int mr_long=strlen(mr_char); int sum=0; for(int character=0;character<mr_long;character++) if(isalpha(mr_char[character])) sum=sum+1; else sum=sum+0; if(mr<=0 mr>1 sum!=0) goto input_point; cout<<endl; cout<<" 6) INPUTKAN NILAI ALPHA : "; cin>>alpha_string; //VALIDASI INPUT ALPHA alpha=atof(alpha_string.c_str()); const char *alpha_char=alpha_string.c_str(); int alpha_long=strlen(alpha_char); int sum_b=0; for(int character=0;character<alpha_long;character++) if(isalpha(alpha_char[character])) sum_b=sum_b+1; else

Lampiran 2-32 sum_b=sum_b+0; if(alpha<=0 alpha>1 sum_b!=0) goto input_point; cout<<endl; cout<<" 7) INPUTKAN NILAI C1 : "; cin>>c1_string; c1=atoi(c1_string.c_str()); if(c1<1 kucing>10) goto input_point; cout<<endl; cout<<" 8) INPUTKAN NILAI LEBAR WADAH : "; cin>>lebar_wadah_string; lebar_wadah=atoi(lebar_wadah_string.c_str()); if(lebar_wadah<1 lebar_wadah>10000) goto input_point; cout<<endl; cout<<" 9) NILAI SUHU AWAL : "; cin>>suhu_awal_string; //VALIDASI INPUT SUHU AWAL suhu_awal=atoi(suhu_awal_string.c_str()); if(suhu_awal>1000 suhu_awal<=0) goto input_point; cout<<endl; cout<<" 10) NILAI SUHU AKHIR : "; cin>>suhu_akhir_string; //VALIDASI INPUT SUHU AKHIR suhu_akhir=atoi(suhu_akhir_string.c_str());

Lampiran 2-33 if(suhu_akhir>1000 suhu_akhir<=0 suhu_akhir>=suhu_awal) goto input_point; end_point: clrscr(); receptionist(); revision_parameter(); cin>>adjustment2; adjust2=atoi(adjustment2.c_str()); if(adjust2<1 adjust2>2) cout<<endl<<" Input Error!!"<<endl; cout<<" Press any key then enter... "<<endl; cout<<" "; cin>>validasi; int valid=atoi(validasi.c_str()); if(valid!=-98) goto end_point; else if(adjust2==2) goto input_point; iterasi_point: clrscr(); receptionist(); cout<<endl; cout<<" INPUTKAN JUMLAH ITERASI : "; cin>>max_iterasi_string; max_iterasi=atoi(max_iterasi_string.c_str());

Lampiran 2-34 if(max_iterasi<1) goto iterasi_point; //point load data switch(data_sampel) case 1: read_data.open("c:/skripsi Pipid/Data Program/Data Kecil.txt"); write.open("c:/skripsi Pipid/Hasil Running/hasil land allocation cso-sa (data kecil).txt"); jumlahlahan=13; jumlahvariasi=6; break; case 2: read_data.open("c:/skripsi Pipid/Data Program/Data Besar.txt"); write.open("c:/skripsi Pipid/Hasil Running/hasil land allocation cso-sa (data besar).txt"); jumlahlahan=75; jumlahvariasi=6; break; if(data_sampel==1 data_sampel==2) if(!read_data.eof()) int counter_data=0; do read_data>>ambil_data; himpunan_data[counter_data]=ambil_data; counter_data++; while(!read_data.eof());

Lampiran 2-35 else cout<<"file kosong"<<endl; jumlahlahan=0; if(data_sampel==1) for(int i=0;i<jumlahlahan;i++) int counter_row=jumlahvariasi*i; for(int z=0;z<jumlahvariasi;z++) lebar_lahan[i][z]=himpunan_data[counter_row+z]; int counter_row_lebar=(jumlahlahan*jumlahvariasi); for(int i=0;i<jumlahlahan;i++) int counter_row=jumlahvariasi*i; for(int z=0;z<jumlahvariasi;z++) tinggi_lahan[i][z]=himpunan_data[counter_row+counter_row_lebar+z]; if(data_sampel==2) for(int i=0;i<jumlahlahan;i++) int counter_row=jumlahvariasi*i; for(int z=0;z<jumlahvariasi;z++) tinggi_lahan[i][z]=himpunan_data[counter_row+z]; int counter_row_lebar=(jumlahlahan*jumlahvariasi);

Lampiran 2-36 for(int i=0;i<jumlahlahan;i++) int counter_row=jumlahvariasi*i; for(int z=0;z<jumlahvariasi;z++) lebar_lahan[i][z]=himpunan_data[counter_row+counter_row_lebar+z]; cout<<"-----------------------------------------"<<endl; cout<<" MULAI PROSES CSO UNTUK LAND ALLOCATION "<<endl; cout<<"-----------------------------------------"<<endl; write<<"-----------------------------------------"<<endl; write<<" MULAI PROSES CSO UNTUK LAND ALLOCATION "<<endl; write<<"-----------------------------------------"<<endl; seeking_counter=0; for(iterasi=1;iterasi<=max_iterasi;iterasi++) cout<<endl<<"iterasi ke - "<<iterasi<<endl; cout<<endl<<"======================"<<endl; write<<endl<<"iterasi ke - "<<iterasi<<endl; write<<endl<<"======================"<<endl; if(iterasi==1) for(int i=0;i<kucing;i++) for(int j=0;j<jumlahlahan;j++) double bil_acak=random(100); double bil_pembagi=99; data_random[i][j]=bil_acak/bil_pembagi;

Lampiran 2-37 for(int i=0;i<kucing;i++) for(int j=0;j<jumlahlahan;j++) double bil_acak=random(100); double bil_pembagi=99; data_kecepatan[i][j]=bil_acak/bil_pembagi; //random variasi bentuk if(iterasi==1) for(int i=0;i<kucing;i++) for(int j=0;j<jumlahlahan;j++) int var=random(5); variasi_bentuk[i][j]=var; for(int i=0;i<kucing;i++) double bil_acak=random(100); double bil_pembagi=99; data_flag[i]=bil_acak/bil_pembagi; permutasi_lahan_masuk(); akses_lahan(); fungsi_tujuan_land_allocation(); hitung_nilai_fitness(); cout<<"urutan Lahan Masuk Bentukan Dari Data Random Kucing Awal : "<<endl<<endl;

Lampiran 2-38 write<<"urutan Lahan Masuk Bentukan Dari Data Random Kucing Awal : "<<endl<<endl; for(int i=0;i<kucing;i++) cout<<"individu ke- "<<(i+1)<<" : "<<endl; write<<"individu ke- "<<(i+1)<<" : "<<endl; for(int j=0;j<jumlahlahan;j++) cout<<urutan_lahan_masuk[i][j]<<" "; write<<urutan_lahan_masuk[i][j]<<" "; cout<<endl; write<<endl; cout<<endl; write<<endl; cout<<"variasi Bentuk Yang Dipilih Data Kucing Awal : "<<endl<<endl; write<<"variasi Bentuk Yang Dipilih Data Kucing Awal : "<<endl<<endl; for(int i=0;i<kucing;i++) cout<<"individu ke- "<<(i+1)<<" : "<<endl; write<<"individu ke- "<<(i+1)<<" : "<<endl; for(int j=0;j<jumlahlahan;j++) cout<<(variasi_bentuk[i][j]+1)<<" "; write<<(variasi_bentuk[i][j]+1)<<" "; cout<<endl<<endl; write<<endl<<endl; cout<<endl<<endl; write<<endl<<endl;

Lampiran 2-39 cout<<"tinggi Lahan Yang Diperoleh Masing-Masing Kucing: "<<endl<<endl; write<<"tinggi Lahan Yang Diperoleh Masing-Masing Kucing : "<<endl<<endl; for(int i=0;i<kucing;i++) cout<<"individu ke- "<<(i+1)<<" : "<<endl; write<<"individu ke- "<<(i+1)<<" : "<<endl; cout<<tinggi_total[i]<<endl<<endl; write<<tinggi_total[i]<<endl<<endl; jumlahtracing=floor(mr*kucing); jumlahseeking=kucing-jumlahtracing; class_penempatan_flag(); write<<endl<<"informasi Flag :"<<endl; cout<<endl<<"informasi_flag :"<<endl; cout<<"===================="<<endl<<endl; write<<"================="<<endl<<endl; for(int i=0;i<kucing;i++) write<<"kucing ke - "<<(i+1)<<" = "<<flag[i]<<" "<<endl; cout<<"kucing ke - "<<(i+1)<<" = "<<flag[i]<<" "<<endl; class_urutan_tinggi_lahan(); write<<endl<<"informasi Ranking Solusi :"<<endl; cout<<endl<<"informasi Ranking Solusi :"<<endl; cout<<"========================="<<endl<<endl; write<<"====================="<<endl<<endl; for(int i=0;i<kucing;i++) write<<"rank Ke - "<<(i+1)<<" = kucing ke - "<<(data_urutan_fungsitujuan[i]+1)<<endl; cout<<"rank Ke - "<<(i+1)<<" = kucing ke - "<<(data_urutan_fungsitujuan[i]+1)<<endl;

Lampiran 2-40 class_penentuan_xbest(); cout<<endl<<" x-best Terpilih Kucing - "<<(data_urutan_fungsitujuan[0]+1)<<endl; spc[data_urutan_fungsitujuan[0]]=1; write<<endl<<"informasi Nilai SPC :"<<endl; cout<<endl<<"informasi Nilai SPC :"<<endl; cout<<"========================="<<endl<<endl; write<<"====================="<<endl<<endl; for(int i=0;i<kucing;i++) write<<"kucing ke - "<<(i+1)<<" = "<<spc[i]<<endl; cout<<"kucing ke - "<<(i+1)<<" = "<<spc[i]<<endl; //belum di review class_klasifikasi_kucing(); write<<endl<<" Masuk Tahap Seeking :"<<endl; cout<<endl<<" Masuk Tahap Seeking :"<<endl; cout<<" ======================="<<endl; write<<" ===================="<<endl; int dimensi=cdc*jumlahlahan; for(int i=0;i<jumlahseeking;i++) if(spc[grup_seeking[i]]==1) for(int j=0;j<smp;j++) for(int k=0;k<jumlahlahan;k++) Memory_pool[j][k]=data_random[grup_seeking[i]][k]; for(int k=0;k<jumlahlahan;k++)

Lampiran 2-41 terpilih[k]=-1; if(j>0) z=0; counter=0; do while(z<dimensi) sum=0; choose=random(jumlahlahan-1); for(int i=0;i<jumlahlahan;i++) if(choose==terpilih[i]) sum=sum+1; else if(choose!=terpilih[i]) sum=sum+0; while(sum!=0); Memory_pool[j][choose]=Memory_pool[j][choose]+pow(- 1,z)*srd*Memory_pool[j][choose]; terpilih[counter]=choose; counter++; z++;

Lampiran 2-42 for(int h=0;h<jumlahlahan;h++) write_dimension[j][h]=terpilih[h]; else if(spc[grup_seeking[i]]==0) z=0; for(int j=0;j<smp;j++) for(int k=0;k<jumlahlahan;k++) Memory_pool[j][k]=data_random[grup_seeking[i]][k]; for(int k=0;k<jumlahlahan;k++) terpilih[k]=-1; counter=0; while(z<dimensi) do sum=0; choose=random(jumlahlahan-1); for(int i=0;i<jumlahlahan;i++) if(choose==terpilih[i]) sum=sum+1; else if(choose!=terpilih[i]) sum=sum+0; while(sum!=0);

Lampiran 2-43 Memory_pool[j][choose]=Memory_pool[j][choose]+pow(- 1,z)*srd*Memory_pool[j][choose]; terpilih[counter]=choose; counter++; z++; for(int h=0;h<jumlahlahan;h++) write_dimension[j][h]=terpilih[h]; cout<<endl<<"profil MEMORY POOL KUCING KE - "<<(grup_seeking[i]+1)<<" : "<<endl; write<<endl<<"profil MEMORY POOL KUCING KE - "<<(grup_seeking[i]+1)<<" : "<<endl; cout<<endl<<"dimensi Yang Berubah = "<<dimensi<<endl; write<<endl<<"dimensi Yang Berubah = "<<dimensi<<endl; cout<<"proses Seeking Kucing ke- "<<(grup_seeking[i]+1)<<endl; cout<<"nilai SPC = "<<spc[grup_seeking[i]]<<endl; cout<<"================================================="<<e ndl<<endl; write<<"proses Seeking Kucing ke- "<<(grup_seeking[i]+1)<<endl; write<<"nilai SPC = "<<spc[grup_seeking[i]]<<endl; write<<"================================================="<< endl<<endl; for(int i=0;i<smp;i++) cout<<"dimensi Berubah Copy-"<<(i+1)<<" = "; write<<"dimensi Berubah Copy-"<<(i+1)<<" = "; for(int j=0;j<jumlahlahan;j++)

Lampiran 2-44 if(write_dimension[i][j]!=-1) cout<<(write_dimension[i][j]+1)<<" "; write<<(write_dimension[i][j]+1)<<" "; cout<<endl; write<<endl; permutasi_lahan_masuk_mp(); pilihan_variasi_mp(); akses_lahan_mp(); fungsi_tujuan_land_allocation_mp(); hitung_nilai_fitness_mp(); cout<<endl<<"urutan Lahan Masuk Memory Pool Kucing - "<<(grup_seeking[i]+1)<<endl<<endl; write<<endl<<"urutan Lahan Masuk Memory Pool Kucing - "<<(grup_seeking[i]+1)<<endl<<endl; for(int i=0;i<smp;i++) cout<<"individu ke- "<<(i+1)<<" : "<<endl; write<<"individu ke- "<<(i+1)<<" : "<<endl; for(int j=0;j<jumlahlahan;j++) cout<<urutan_lahan_masuk_mp[i][j]<<" "; write<<urutan_lahan_masuk_mp[i][j]<<" "; cout<<endl<<endl; write<<endl<<endl; cout<<endl<<endl; write<<endl<<endl;

Lampiran 2-45 cout<<endl<<" Variasi Bentuk Yang Dipilih Memory Pool Kucing - "<<(grup_seeking[i]+1)<<endl<<endl; write<<endl<<"variasi Bentuk Yang Dipilih Memory Pool Kucing - "<<(grup_seeking[i]+1)<<endl<<endl; for(int i=0;i<smp;i++) cout<<"individu ke- "<<(i+1)<<" : "<<endl; write<<"individu ke- "<<(i+1)<<" : "<<endl; for(int j=0;j<jumlahlahan;j++) cout<<(variasi_bentuk_mp[i][j]+1)<<" "; write<<(variasi_bentuk_mp[i][j]+1)<<" "; cout<<endl<<endl; write<<endl<<endl; cout<<endl<<"hasil Tinggi Lahan Dari Memory Pool Individu - "<<(grup_seeking[i]+1)<<endl<<endl; write<<endl<<"hasil Tinggi Lahan Dari Memory Pool Individu - "<<(grup_seeking[i]+1)<<endl<<endl; for(int i=0;i<smp;i++) cout<<"copy-"<<(i+1)<<" = "<<tinggi_total_mp[i]<<endl; write<<"copy-"<<(i+1)<<" = "<<tinggi_total_mp[i]<<endl; hitungprobabilitasterpilih(); double bilrandom=random(99); double bilbagi=99; double random_smp=bilrandom/bilbagi; roulettewheel(grup_seeking[i],random_smp); cout<<endl<<"tabulasi Roulette Wheel : "<<endl; write<<endl<<"tabulasi Roulette Wheel : "<<endl; for(int i=0;i<smp;i++) write<<"probabilitas copy - "<<(i+1)<<" = "<<probabilitas[i]<<", Probabilitas relatif = "<<probabilitasr[i]<<endl;

Lampiran 2-46 cout<<"probabilitas copy - "<<(i+1)<<" = "<<probabilitas[i]<<", Probabilitas relatif = "<<probabilitasr[i]<<endl; cout<<endl<<"nilai Probabilitas Kumulatif : "<<endl; write<<endl<<"nilai Probabilitas Kumulatif : "<<endl; for(int i=0;i<smp;i++) write<<"probabilitas Kumulatif copy - "<<(i+1)<<" = "<<probabilitask[i]<<endl; cout<<"probabilitas Kumulatif copy - "<<(i+1)<<" = "<<probabilitask[i]<<endl; cout<<endl<<"nilai Random = "<<random_smp<<" posisi kucing Terpilih = "<<(indeks_terpilih_roulette+1); write<<endl<<"nilai Random = "<<random_smp<<" posisi kucing Terpilih = "<<(indeks_terpilih_roulette+1); cout<<endl<<"best Seeking Dalam Memory Pool Kucing ke- "<<(grup_seeking[i]+1)<<", copy ke- "<<(indeks_bestseeking+1); write<<endl<<"best Seeking Dalam Memory Pool Kucing ke- "<<(grup_seeking[i]+1)<<", copy ke- "<<(indeks_bestseeking+1); cout<<endl<<endl; write<<endl<<endl; simpan_terbaik_seeking(); cout<<endl<<"best Seeking Secara Global : "<<endl<<endl; write<<endl<<"best Seeking Secara Global : "<<endl<<endl; cout<<endl<<"urutan Lahan Masuk : "<<endl<<endl; write<<endl<<"urutan Lahan Masuk : "<<endl<<endl; for(int j=0;j<jumlahlahan;j++) cout<<lahan_best[j]<<" "; write<<lahan_best[j]<<" "; cout<<endl<<endl<<"variasi yang dipilih : "<<endl<<endl; write<<endl<<endl<<"variasi yang dipilih : "<<endl<<endl; for(int j=0;j<jumlahlahan;j++)

Lampiran 2-47 cout<<(variasi_best[j]+1)<<" "; write<<(variasi_best[j]+1)<<" "; cout<<endl<<endl<<"dengan Tinggi Lahan : "<<tinggi_best<<endl; write<<endl<<endl<<"dengan Tinggi Lahan : "<<tinggi_best<<endl; seeking_counter++; //mulai tahap tracing cout<<endl; write<<endl; for(int b=0;b<jumlahtracing;b++) double bilrandom=random(100); double bilpembagi=99; for(int l=0;l<jumlahlahan;l++) copy_cat[l]=data_random[grup_tracing[b]][l]; for(int l=0;l<jumlahlahan;l++) double random_tracing=bilrandom/bilpembagi; double selisih_xbest=x_best[l]-copy_cat[l]; double hasil_pengali=c1*random_tracing*selisih_xbest; data_kecepatan[grup_tracing[b]][l]=data_kecepatan[grup_tracing[b]][l]+hasil_pen gali; for(int l=0;l<jumlahlahan;l++)

Lampiran 2-48 data_random[grup_tracing[b]][l]=data_random[grup_tracing[b]][l]+data_k ecepatan[grup_tracing[b]][l]; if(data_random[grup_tracing[b]][l]<0) data_random[grup_tracing[b]][l]=data_random[grup_tracing[b]][l]*-1; permutasi_lahan_masuk(); akses_lahan(); fungsi_tujuan_land_allocation(); hitung_nilai_fitness(); class_urutan_tinggi_lahan(); class_penentuan_terbaik_tracing(); cout<<endl<<"best Tracing Secara Global : "<<endl<<endl; write<<endl<<"best Tracing Secara Global : "<<endl<<endl; cout<<endl<<"urutan Lahan Masuk : "<<endl<<endl; write<<endl<<"urutan Lahan Masuk : "<<endl<<endl; for(int j=0;j<jumlahlahan;j++) cout<<lahan_best_tracing[j]<<" "; write<<lahan_best_tracing[j]<<" "; cout<<endl<<endl<<"variasi Terpilih : "<<endl<<endl; write<<endl<<endl<<"variasi Terpilih : "<<endl<<endl; for(int j=0;j<jumlahlahan;j++) cout<<(variasi_best_tracing[j]+1)<<" "; write<<(variasi_best_tracing[j]+1)<<" "; cout<<endl<<endl<<"dengan Tinggi Lahan : "<<tinggi_best_tracing<<endl; write<<endl<<endl<<"dengan Tinggi Lahan : "<<tinggi_best_tracing<<endl; compare_best_tracing_dan_best_seeking();

Lampiran 2-49 if(iterasi<11) int counter_sa; counter_sa=data_urutan_fungsitujuan[kucing-1]; cout<<endl<<endl; cout<<"pemprosesan SIMULATED ANNEALING "<<endl; write<<endl<<endl; write<<"pemprosesan SIMULATED ANNEALING "<<endl; cout<<"---------------------------------------------------------"<<endl; cout<<"kucing ke- "<<counter_sa<<" Mengalami Proses Annealing "<<endl; cout<<"---------------------------------------------------------"<<endl<<endl; write<<"---------------------------------------------------------"<<endl; write<<"kucing ke- "<<counter_sa<<" Mengalami Proses Annealing "<<endl; write<<"---------------------------------------------------------"<<endl; suhu_sekarang=suhu_awal; for(int j=0;j<jumlahlahan;j++) solusi_sa[j]=data_random[counter_sa][j]; do cout<<" --------------------------"<<endl; cout<<" Suhu Sekarang ="<<suhu_sekarang<<endl; write<<endl; write<<" --------------------------"<<endl; write<<" Suhu Sekarang ="<<suhu_sekarang<<endl; copy_tinggi_cat(); select_1=random(jumlahlahan-1); select_2=random(jumlahlahan-1); do

Lampiran 2-50 while(select_1==select_2 select_1>select_2); write<<" Data kucing Lama :"<<endl<<endl;; for(int sel=0;sel<jumlahlahan;sel++) write<<data_random[counter_sa][sel]<<" "; cout<<endl; write<<endl; mutatecounter=(select_2-select_1)/2; j=select_1;j<=select_1+mutatecounter;j++) solusi_sa[j]=solusi_sa[select_2]; solusi_sa[select_2]=tempsa; for(int tempsa=solusi_sa[j]; select_2--; double random_sa_rejection=random(100); double random_sa_rejection_divisor=99; random_sa=(random_sa_rejection/random_sa_rejection_divisor)+0.5; //proses hitung fungsi write<<endl; write<<"data Kucing Mengalami Mutasi Inversi di kolom -"<<(select_1+1)<<" sampai kolom -"<<(select_2+1)<<" : "<<endl; write<<endl; for(int sel=0;sel<jumlahlahan;sel++) write<<solusi_sa[sel]<<" "; write<<endl<<endl; permutasi_lahan_masuk_sa(); pilihan_variasi_sa();

Lampiran 2-51 akses_lahan_sa(); fungsi_tujuan_land_allocation_sa(); fitness_comparation_beforeaftermutate(counter_sa); if(status==1) cout<<"solusi Hasil Mutasi Lebih Baik (Solusi Diterima)"<<endl; write<<"solusi Hasil Mutasi Lebih Baik (Solusi Diterima)"<<endl; if(status==2) cout<<"solusi Hasil Mutasi Lebih Buruk Atau = (Diterima Karena Probabilitas)"<<endl; write<<"solusi Hasil Mutasi Lebih Buruk Atau = (Diterima Karena Probabilitas)"<<endl; if(status==3) cout<<"solusi Hasil Mutasi Lebih Buruk (Solusi Baru Ditolak)"<<endl; write<<"solusi Hasil Mutasi Lebih Buruk (Solusi Baru Ditolak)"<<endl; suhu=suhu_sekarang*alpha; suhu_sekarang=suhu; write<<endl; cout<<"cat->new CAT ="<<tinggi_total_copy[counter_sa]<<"- >"<<tinggi_total[counter_sa]<<endl; write<<"cat->new CAT ="<<tinggi_total_copy[counter_sa]<<"- >"<<tinggi_total[counter_sa]<<endl; while(suhu_sekarang>=suhu_akhir); if(iterasi==max_iterasi)

Lampiran 2-52 form_hasil_akhir(); getch();

Lampiran 3-1 Lampiran 3: Hasil Running Program untuk Data 13 Lahan Komponen Best Seeking Secara Global : Urutan Lahan Masuk : 3 11 10 7 4 2 6 8 1 13 9 5 12 Variasi yang dipilih : 2 5 5 5 1 4 4 1 2 1 5 1 1 Dengan Tinggi Lahan : 50 Best Tracing Secara Global : Urutan Lahan Masuk : 11 7 3 10 9 2 1 5 12 8 13 6 4 Variasi Terpilih : 5 1 5 2 2 3 2 5 1 5 1 2 2 Dengan Tinggi Lahan : 69 ////////////////////////////////////////////////////////////////// /// IMPLEMENTASI ALGORITMA CSO PADA MASALAH PENJADWALAN /// /// LAND ALLOCATION /// /// FORM HASIL AKHIR /// ////////////////////////////////////////////////////////////////// Tinggi Terendah Dari Proses Land Allocation =50 Urutan Lahan Masuk Terbaik : 3 11 10 7 4 2 6 8 1 13 9 5 12 URAIAN BENTUK LAHAN

Lampiran 3-2 Lahan KE 3 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 11 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 10 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 7 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 4 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 2 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 6 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 8 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 1 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 13 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 9 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 5 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 12 MENGGUNAKAN VARIASI BENTUK KE 1

Lampiran 4-1 Lampiran 4: Hasil Running Program untuk Data 75 Lahan Komponen Iterasi ke 1 ====================== Urutan Lahan Masuk Bentukan Dari Data Random Kucing Awal : individu ke 1 : 17 41 40 64 24 36 71 7 25 32 45 4 18 34 75 66 3 70 53 56 60 48 67 6 61 1 9 31 62 74 19 49 29 72 59 21 39 57 5 26 63 47 51 38 58 68 33 14 28 30 73 52 43 22 69 54 44 55 8 20 11 2 46 65 16 27 23 37 12 13 42 50 10 15 35 individu ke 2 : 3 68 75 31 42 27 20 24 64 61 29 69 72 21 39 2 35 16 23 45 43 70 6 41 25 7 11 22 58 5 15 47 62 34 63 53 30 4 49 37 65 57 51 36 19 59 71 8 33 60 12 18 1 14 28 52 54 66 46 26 44 56 55 38 40 67 74 9 10 73 50 17 48 32 13 individu ke 3 : 47 37 65 31 19 66 44 23 18 21 59 20 73 33 13 5 54 24 41 57 56 16 28 10 45 49 53 38 22 27 60 40 74 30 4 46 29 71 14 42 69 2 61 6 11 68 51 25 70 62 32 9 63 3 72 34 39 12 36 35 7 43 55 26 64 52 17 48 58 15 50 1 67 8 75 individu ke 4 : 21 6 12 57 39 61 45 26 31 28 65 38 8 37 56 72 55 10 23 69 2 42 24 19 58 29 44 11 7 46 47 50 64 36 17 20 48 51 32 60 59 53 34 1 13 14 16 27 33 52 63 41 62 30 67 43 66 49 4 15 74 70 22 9 3 25 5 18 40 68 73 75 54 71 35 individu ke 5 : 21 58 71 11 65 64 38 25 56 68 48 60 42 66 75 51 29 52 10 28 62 33 12 54 3 4 24 14 39 30 61 47 63 9 27 49 1 2 8 43 16 41 57 32 13 23 74 19 73 37 55 35 46 6 20 70 36 5 7 15 18 26 45 50 67 17 59 34 40 31 72 53 22 69 44 individu ke 6 : 70 10 19 75 6 74 12 37 18 63 26 34 27 15 31 56 61 66 1 67 2 24 7 73 21 57 29 45 59 50 68 47 13 71 11 8 58 54 3 16 4 35 65 40 33 39 53 64 17 44 51 5 14 20 36 55 60 52 30 22 32 41 28 38 62 42 72 46 48 49 23 9 43 25 69 individu ke 7 : 68 25 1 10 21 59 69 56 13 52 4 65 7 14 71 9 19 42 55 8 11 57 75 70 40 61 28 15 39 41 24 18 16 34 63 36 43 46 51 17 45 73 67 72 54 60 5 2 3 6 49 23 26 38 48 22 32 31 50 66 29 44 37 47 74 30 27 53 12 33 64 35 62 20 58 individu ke 8 :

Lampiran 4-2 15 12 46 70 42 35 28 38 55 61 62 66 67 71 75 14 16 37 5 20 49 11 56 10 23 31 44 32 57 64 33 74 47 45 52 58 29 63 60 8 53 48 34 68 3 19 13 7 59 22 43 54 6 4 26 39 51 36 2 9 73 41 1 18 40 65 21 27 50 69 17 72 30 25 24 individu ke 9 : 58 56 16 46 33 74 57 1 64 27 26 19 28 65 3 24 15 17 60 2 7 30 8 13 14 62 70 75 41 20 39 48 31 35 21 68 43 50 61 71 44 6 32 54 25 42 72 18 34 40 11 36 23 53 12 55 9 22 29 66 38 63 73 47 45 59 49 51 10 37 5 69 52 67 4 individu ke 10 : 31 10 20 22 69 71 11 29 28 34 47 44 33 74 55 43 53 42 49 61 63 12 38 48 13 39 1 51 3 70 14 67 37 8 52 6 16 21 57 4 72 54 7 25 23 56 75 9 19 2 15 30 17 35 41 24 73 27 18 62 58 5 36 64 26 45 60 59 68 65 46 66 40 32 50 individu ke 11 : 55 19 14 66 6 50 58 52 49 16 60 48 73 12 30 45 15 28 64 11 41 20 53 69 74 5 75 2 40 42 37 18 25 29 70 35 23 8 21 22 26 3 33 39 13 68 1 38 47 7 36 43 46 59 72 65 57 24 17 44 67 4 34 62 32 71 31 27 61 10 9 56 51 54 63 individu ke 12 : 72 42 17 56 63 2 47 46 22 58 65 48 60 6 55 74 13 62 68 10 27 26 4 18 28 39 69 29 49 14 7 3 50 53 11 59 40 41 5 33 52 51 57 75 32 38 73 64 9 19 23 1 8 54 36 44 25 61 15 16 67 37 70 12 34 43 45 66 35 31 30 20 24 21 71 individu ke 13 : 14 16 3 45 17 66 32 59 25 47 68 30 34 35 5 8 15 46 40 53 36 1 72 7 19 65 4 50 71 58 20 28 37 39 11 54 70 33 61 52 63 75 10 13 38 42 62 73 26 55 57 56 27 43 12 60 64 24 6 69 48 29 31 9 18 51 22 67 74 23 21 41 44 2 49 individu ke 14 : 66 37 68 9 46 6 70 12 39 44 53 63 73 3 42 50 24 33 10 72 2 71 56 49 26 38 43 60 74 65 25 21 7 41 5 28 30 59 8 13 55 47 45 14 15 36 22 32 1 35 18 31 40 57 58 75 17 62 64 67 51 16 29 69 4 11 23 27 52 19 20 34 48 54 61 individu ke 15 : 75 8 21 34 39 10 32 52 9 16 70 72 73 63 37 54 36 13 41 27 74 18 35 45 24 56 30 7 49 11 65 68 53 20 17 3 26 25 59 66 60 12 47 61 1 5 51 43 55 2 57 62 71 40 44 15 58 22 31 48 14 19 33 67 46 64 23 28 50 6 38 42 4 29 69 individu ke 16 : 28 5 33 1 70 12 18 20 59 45 54 53 56 27 31 66 67 42 6 34 10 19 7 9 29 41 58 74 13 11 52 15 8 32 60 37 62 38 14 39 73 16 4 51 23 43 50 40 63 21 69 61 64 36 55 71 72 75 3 26 49 24 35 44 25 22 30 2 17 47 68 57 65 48 46

Lampiran 4-3 individu ke 17 : 3 49 57 10 7 27 28 50 61 2 34 6 9 74 25 29 41 47 56 54 12 45 68 44 24 53 73 19 62 75 71 4 17 39 55 46 60 72 23 51 52 40 8 11 13 42 32 37 33 18 26 66 31 63 20 21 35 14 67 30 43 5 16 59 48 22 15 38 58 1 36 69 65 70 64 individu ke 18 : 7 46 62 24 10 34 16 13 69 18 39 70 5 26 57 3 11 20 29 55 64 8 19 44 9 41 1 48 72 50 61 73 53 40 51 75 23 56 4 15 32 42 22 58 67 33 37 43 2 74 6 21 47 54 49 63 65 31 60 12 28 38 17 66 52 59 45 35 36 71 30 27 14 68 25 individu ke 19 : 2 51 54 42 72 13 40 10 18 57 11 33 9 67 73 3 55 25 58 62 41 60 1 38 48 64 65 70 61 26 66 12 75 52 30 50 16 44 59 17 27 35 21 28 43 49 31 46 23 53 36 4 19 34 32 45 14 39 68 22 8 71 20 37 6 63 69 5 47 7 56 29 74 15 24 individu ke 20 : 46 40 54 45 49 13 31 68 44 19 23 25 36 57 4 42 67 21 9 33 10 2 58 3 38 17 56 26 29 53 75 59 73 12 70 27 63 41 60 69 6 24 37 66 47 51 20 48 18 22 11 15 30 43 14 8 61 34 39 64 74 35 5 72 62 55 28 52 16 32 71 1 7 65 50 individu ke 21 : 33 26 27 31 35 42 70 9 10 44 60 62 18 49 48 7 5 19 8 41 65 53 52 59 40 54 71 72 15 61 2 43 4 68 66 34 75 3 67 14 73 13 47 36 23 57 69 12 51 55 32 64 74 21 24 16 1 25 46 6 17 39 45 28 38 56 58 22 11 20 30 37 50 63 29 individu ke 22 : 75 25 21 59 30 9 31 61 26 57 6 52 71 36 7 65 56 14 70 12 24 32 41 66 15 1 62 17 20 54 11 44 69 49 68 60 50 4 40 34 2 33 19 35 64 74 38 48 13 28 51 42 22 37 53 3 63 16 27 45 39 58 23 29 47 5 10 46 18 55 67 43 8 72 73 individu ke 23 : 38 45 20 5 69 66 51 11 54 67 12 40 58 49 8 29 13 33 35 44 1 74 61 31 34 39 52 22 65 36 25 75 14 60 2 37 70 57 7 71 32 3 72 59 16 53 55 56 63 6 26 17 27 30 50 64 41 10 9 28 48 68 43 4 23 62 19 42 73 21 46 15 18 24 47 individu ke 24 : 36 16 44 31 21 55 19 29 22 73 39 57 2 18 52 48 61 49 51 75 71 70 26 33 42 28 66 1 20 32 38 59 68 62 63 4 17 50 60 64 46 74 67 14 37 24 25 35 65 34 56 6 27 47 53 23 45 9 54 3 12 72 30 11 58 10 40 41 13 69 15 43 8 7 5 individu ke 25 :

Lampiran 4-4 60 27 56 20 28 39 26 19 44 53 67 17 18 46 62 74 14 65 75 29 61 6 73 8 12 59 71 30 42 32 33 57 64 31 63 5 48 68 2 40 49 1 16 22 58 52 47 15 13 72 23 51 55 3 7 34 9 54 69 10 21 45 25 50 38 43 36 11 66 41 37 4 35 24 70 individu ke 26 : 13 38 15 41 67 73 43 61 26 32 11 66 68 22 58 29 16 30 75 27 36 39 53 59 64 40 45 6 25 55 57 37 12 62 3 18 23 35 28 4 42 70 14 69 33 60 19 54 56 34 50 46 48 5 65 52 74 24 31 44 17 9 72 7 63 47 2 8 21 1 10 71 49 51 20 individu ke 27 : 44 19 29 6 31 41 22 43 21 17 71 8 69 75 52 51 65 30 40 63 2 14 12 10 13 58 37 1 48 56 64 36 32 57 28 47 55 16 27 50 26 59 20 25 38 67 73 11 39 62 42 74 53 66 35 18 3 23 61 15 24 7 49 54 34 9 72 5 70 60 68 4 33 46 45 individu ke 28 : 18 17 32 59 62 44 14 43 10 5 70 8 25 64 71 60 16 31 47 7 22 50 54 51 57 3 35 38 58 61 34 36 75 30 24 40 72 21 11 45 39 4 48 66 1 29 73 23 67 19 56 63 37 55 9 20 74 13 26 42 2 69 12 52 65 53 49 28 41 46 27 68 6 15 33 individu ke 29 : 12 8 56 35 52 51 50 53 3 31 14 32 36 42 25 54 11 64 22 44 61 62 72 9 38 46 70 15 75 30 55 2 65 43 67 33 28 48 37 45 68 6 20 23 71 1 4 24 7 27 41 59 39 57 74 13 60 16 18 34 47 5 29 10 17 66 49 69 26 40 19 73 58 21 63 individu ke 30 : 25 38 52 59 10 35 24 19 72 32 62 65 11 18 28 71 3 22 6 48 34 67 58 46 54 43 5 63 53 64 49 40 16 45 74 42 69 44 60 1 61 20 33 55 15 39 41 31 37 57 47 73 23 4 12 66 26 36 8 13 30 17 68 2 51 21 29 50 70 27 9 75 14 56 7 individu ke 31 : 4 5 72 24 23 41 6 11 55 2 9 29 49 15 21 16 64 69 74 66 48 54 63 57 71 28 37 40 59 12 43 31 8 68 30 56 75 38 62 7 45 46 51 44 33 36 42 10 47 27 1 32 26 65 58 70 17 73 39 53 61 3 22 50 52 25 67 18 19 20 60 35 14 34 13 individu ke 32 : 17 66 8 51 37 20 46 73 31 15 69 44 70 45 64 41 47 60 9 72 13 43 63 2 10 28 22 6 23 34 27 53 75 62 11 59 61 39 5 24 38 48 36 32 57 68 74 33 58 12 25 49 26 3 1 55 4 18 42 71 21 16 30 19 35 65 50 40 54 52 67 7 14 29 56 individu ke 33 : 32 16 30 40 52 38 58 64 62 22 43 17 7 13 21 18 34 75 54 31 72 15 11 33 5 14 60 3 27 68 6 44 41 45 69 4 26 37 57 51 61 10 8 36 47 59 23 20 25 56 70 9 24 65 2 29 73 39 53 49 1 48 50 63 67 71 42 46 35 66 28 55 12 19 74

Lampiran 4-5 individu ke 34 : 65 71 33 37 42 22 61 38 26 53 1 6 20 50 75 66 72 70 35 23 29 64 8 21 7 47 54 62 12 18 27 13 73 56 55 16 24 36 9 5 34 59 10 3 25 14 67 58 48 17 41 52 44 40 2 49 63 4 43 11 15 32 46 69 28 31 19 39 51 74 30 68 45 60 57 individu ke 35 : 72 31 48 23 18 19 45 62 5 74 2 25 51 54 65 67 33 42 71 75 28 15 13 16 60 3 32 34 50 14 70 36 43 35 9 40 52 61 64 21 27 46 44 66 73 37 11 55 22 53 59 49 10 41 58 6 47 17 20 12 30 8 29 56 69 4 1 39 7 57 68 63 24 38 26 individu ke 36 : 1 35 73 54 71 61 27 67 12 70 9 51 60 66 68 50 4 41 69 58 46 37 64 30 47 34 38 8 10 18 5 24 74 22 3 36 23 59 26 62 28 72 33 29 32 6 20 25 53 17 19 65 43 49 42 44 2 14 11 75 7 40 55 39 45 63 21 56 13 52 57 15 16 31 48 individu ke 37 : 52 8 30 42 13 22 44 62 69 15 72 14 48 68 4 57 5 41 67 58 70 1 7 45 9 12 17 21 47 19 38 54 31 61 74 64 56 43 10 29 59 2 23 27 11 39 40 16 63 71 55 66 26 28 3 24 33 35 49 73 6 20 36 60 51 65 75 32 46 53 18 34 50 25 37 individu ke 38 : 30 56 45 48 15 34 12 6 38 53 5 16 75 3 46 25 24 69 65 42 61 10 40 51 52 49 27 62 28 14 7 68 37 18 32 2 41 8 31 67 59 70 29 74 13 19 44 54 60 4 55 71 73 11 36 39 58 17 23 64 33 9 20 35 57 21 26 1 43 22 47 63 66 72 50 individu ke 39 : 60 24 57 51 49 29 34 63 69 3 61 64 20 39 44 13 37 18 14 31 71 1 19 23 32 42 9 62 45 68 17 70 4 30 25 10 33 21 35 73 52 66 75 43 7 38 11 6 5 53 65 48 67 50 59 40 12 15 47 55 58 8 26 56 27 28 46 2 16 54 72 36 74 22 41 individu ke 40 : 41 3 32 36 38 8 10 25 28 14 52 6 61 75 34 47 11 29 72 16 37 27 69 48 70 74 62 15 17 13 21 18 54 20 53 7 42 39 40 51 71 12 22 55 24 44 57 33 60 50 68 4 73 43 59 31 56 66 49 1 26 5 30 9 46 65 58 23 64 19 45 67 35 63 2 individu ke 41 : 66 54 70 72 30 31 2 74 21 35 42 37 58 46 62 19 50 65 29 32 61 75 11 53 13 48 47 55 63 16 18 64 17 36 51 44 4 68 7 33 15 43 10 14 73 41 40 49 25 56 57 27 26 28 67 12 60 24 45 5 59 23 69 52 71 22 39 3 38 8 6 34 1 9 20 individu ke 42 :

Lampiran 4-6 63 32 49 17 8 36 1 69 3 43 22 29 13 61 16 24 34 52 15 60 66 25 56 4 47 21 27 39 72 65 74 59 67 11 51 14 31 71 45 20 40 26 12 28 30 57 35 70 58 64 2 7 6 75 53 10 41 54 18 50 23 62 73 37 46 48 33 9 19 42 44 55 5 38 68 individu ke 43 : 43 32 66 71 21 70 10 54 65 61 3 48 67 52 29 47 55 36 2 50 62 72 16 40 23 25 1 5 15 22 63 51 4 57 6 39 11 13 26 30 33 45 9 38 56 27 37 59 42 74 44 64 19 60 28 31 18 46 14 53 75 8 17 68 20 73 7 34 58 12 41 49 24 35 69 individu ke 44 : 20 28 45 43 13 29 38 52 6 9 3 25 19 32 15 23 73 74 64 63 12 75 27 5 41 36 42 10 22 71 44 53 35 72 1 33 60 67 11 40 58 30 34 50 65 8 48 37 26 56 54 55 61 66 68 21 31 24 62 49 70 47 59 39 46 69 18 51 4 14 2 16 7 57 17 individu ke 45 : 45 57 43 26 67 8 18 41 59 42 61 3 56 34 25 16 21 24 14 68 58 7 72 13 23 55 12 38 11 69 51 10 19 70 15 71 30 37 5 22 20 49 32 17 28 31 44 40 50 27 66 60 36 62 4 53 9 29 65 46 47 39 6 33 54 64 73 74 63 48 35 52 2 75 1 individu ke 46 : 10 75 46 56 12 48 50 40 52 68 60 36 19 2 15 65 32 18 29 25 3 14 17 37 54 69 24 30 55 74 1 9 23 38 49 62 28 21 35 66 6 57 63 34 13 51 73 61 42 45 67 41 11 43 70 27 59 72 39 71 44 8 53 58 26 16 64 7 20 22 4 47 5 33 31 individu ke 47 : 2 12 35 46 47 11 62 38 43 8 31 36 22 65 23 28 68 13 67 29 54 72 19 26 49 51 24 48 63 16 27 60 74 25 3 30 50 17 37 21 61 6 20 45 18 55 73 9 58 1 40 42 15 71 39 4 34 44 57 56 70 52 59 5 7 64 14 10 33 66 32 75 69 41 53 individu ke 48 : 31 20 44 14 54 59 8 5 1 29 13 39 15 23 66 26 30 3 36 4 70 32 63 11 7 51 47 18 21 2 25 12 61 16 56 55 41 28 52 38 71 9 24 27 37 72 75 33 6 48 69 43 57 73 62 68 60 50 64 40 65 67 10 35 17 19 74 49 42 45 22 34 53 58 46 individu ke 49 : 59 15 8 19 53 43 46 65 7 14 40 31 33 58 72 9 11 50 32 30 12 23 75 25 18 61 10 66 41 67 26 6 4 64 54 62 68 36 55 45 22 44 69 28 47 71 56 38 70 5 60 1 16 2 48 51 24 3 27 37 39 13 74 17 20 21 34 35 29 42 73 49 57 52 63 individu ke 50 : 74 34 10 1 55 9 42 75 44 30 40 21 19 41 49 58 11 54 33 25 38 4 3 66 63 48 60 2 31 22 35 32 65 53 69 27 17 52 57 72 13 12 5 62 7 50 24 39 46 23 15 67 51 73 6 28 29 18 70 8 68 26 43 56 61 45 71 36 64 37 14 16 47 20 59

Lampiran 4-7 individu ke 51 : 48 51 75 41 21 30 43 26 35 53 68 23 2 13 27 46 14 24 6 20 39 42 4 16 33 22 15 59 29 28 55 56 60 37 36 7 32 3 5 61 71 12 49 11 57 72 1 67 44 54 64 10 31 38 66 17 25 74 40 52 50 65 19 62 73 34 9 47 69 8 45 63 18 58 70 individu ke 52 : 47 10 57 21 27 42 64 58 2 48 44 69 73 19 68 71 36 39 22 56 46 33 25 5 32 11 15 35 7 12 16 50 52 34 23 1 41 54 65 38 8 40 26 45 3 14 61 66 67 72 13 49 55 59 75 60 62 37 20 4 18 53 6 30 31 9 43 28 74 63 29 70 51 17 24 individu ke 53 : 21 27 35 70 34 32 48 73 19 52 17 38 41 5 36 66 74 7 31 16 18 13 63 25 69 40 4 44 61 68 8 2 29 58 22 62 67 65 30 55 43 42 56 71 10 14 57 64 1 23 12 54 9 45 60 49 72 33 47 3 75 46 11 28 53 39 50 59 20 24 26 15 51 6 37 individu ke 54 : 70 30 52 47 25 50 28 72 67 3 10 64 37 41 68 62 48 66 29 15 69 2 51 16 39 60 22 44 8 9 26 42 27 20 32 56 74 46 53 61 75 71 23 19 59 63 57 31 12 34 65 58 5 36 49 24 35 54 1 18 21 38 13 17 43 45 55 11 14 6 4 73 40 7 33 individu ke 55 : 19 53 8 70 60 46 63 17 1 22 57 14 38 34 35 49 62 74 30 66 50 47 16 41 68 10 27 40 58 75 33 56 4 24 51 31 44 29 3 15 64 65 6 25 7 48 18 37 26 59 13 43 5 71 61 2 21 20 36 67 45 52 12 28 54 73 11 55 39 9 69 72 32 23 42 individu ke 56 : 5 53 70 9 22 42 33 41 16 69 18 19 6 58 11 36 48 63 35 46 1 75 26 39 60 62 74 14 30 40 27 2 56 68 4 73 28 71 72 38 3 17 20 23 51 7 67 50 59 29 13 21 12 47 24 49 61 8 32 37 43 34 52 45 64 66 10 55 65 15 57 44 25 54 31 individu ke 57 : 70 43 11 31 37 46 5 47 8 1 9 44 57 72 12 42 60 7 75 3 52 16 51 35 65 34 39 15 49 54 18 26 2 27 62 63 6 13 41 67 19 66 59 40 17 68 71 28 48 10 29 20 64 32 73 36 4 38 69 24 56 61 30 45 33 14 55 25 21 23 74 22 50 53 58 individu ke 58 : 67 36 64 19 27 58 71 12 26 2 13 59 65 54 43 74 3 10 32 41 35 17 14 72 37 48 15 39 49 69 42 16 25 30 7 51 20 33 75 34 45 4 9 24 47 56 52 22 38 23 62 61 29 53 18 1 8 31 60 50 5 28 21 55 11 68 73 40 6 44 57 66 70 46 63 individu ke 59 :

Lampiran 4-8 62 66 73 14 26 56 11 31 68 32 42 9 21 25 63 10 4 38 45 46 74 29 23 41 65 67 53 61 16 5 8 70 19 39 43 28 47 24 58 20 27 18 17 22 35 34 30 2 3 12 6 52 15 49 13 57 48 33 59 51 37 55 60 72 50 64 71 1 75 44 36 40 54 69 7 individu ke 60 : 34 31 11 66 71 7 1 49 13 58 28 30 54 23 26 72 36 19 73 55 61 40 45 51 59 18 67 2 32 56 3 62 10 65 52 53 75 43 24 74 37 29 17 60 64 12 22 46 14 47 69 33 4 27 70 5 50 41 21 39 9 6 44 48 15 68 16 38 8 20 25 63 35 42 57 individu ke 61 : 11 28 46 37 61 62 58 6 21 5 68 36 44 51 2 13 8 57 60 42 22 55 7 66 15 25 67 9 53 17 38 64 20 35 10 39 33 65 74 29 49 45 54 71 24 27 3 26 40 41 52 18 34 47 4 50 14 23 1 69 59 63 32 19 73 75 48 31 56 12 43 16 70 30 72 individu ke 62 : 8 15 69 29 51 74 5 24 38 61 18 37 70 11 41 46 34 67 31 4 3 10 42 33 35 48 71 54 23 36 44 7 64 66 27 65 40 13 53 16 72 39 1 9 45 21 19 47 58 17 55 68 22 59 43 75 32 12 25 57 2 63 6 49 20 56 62 73 52 30 14 26 28 60 50 individu ke 63 : 41 28 43 6 23 5 72 45 42 61 12 69 11 48 8 35 37 2 54 55 30 4 15 17 53 19 14 21 32 51 38 33 40 68 71 24 47 63 49 60 27 20 50 65 31 18 64 74 10 3 52 62 57 29 56 26 73 44 13 58 36 39 67 7 22 70 25 9 16 46 1 34 59 66 75 individu ke 64 : 74 39 14 45 33 38 8 5 44 63 41 62 34 55 72 2 12 66 58 9 37 49 75 30 54 15 28 42 43 21 47 71 68 69 4 51 73 52 18 29 56 35 70 17 26 64 7 22 27 57 53 24 16 20 25 46 31 32 48 10 61 19 23 3 1 13 36 59 65 50 60 6 11 40 67 individu ke 65 : 56 30 66 28 29 37 39 55 5 60 69 14 4 23 43 52 15 25 3 6 35 9 20 71 38 31 72 36 61 65 53 42 48 73 12 33 41 19 58 54 11 51 75 59 46 62 18 8 49 24 34 44 32 1 13 68 17 16 27 57 70 45 22 40 74 50 63 2 10 47 7 64 67 26 21 individu ke 66 : 32 14 43 3 50 63 65 36 75 57 28 11 70 31 66 27 47 9 34 61 8 6 5 17 39 42 55 18 33 44 23 74 68 62 46 7 19 49 25 22 45 59 41 26 38 1 35 37 30 69 53 52 71 15 67 60 54 48 64 29 40 16 20 24 13 2 72 4 56 73 21 58 12 10 51 individu ke 67 : 46 64 55 19 25 23 32 21 61 43 41 59 5 33 42 44 24 1 10 70 49 11 62 57 75 54 71 72 12 13 73 2 14 37 50 16 28 30 9 26 48 8 47 68 20 7 53 18 31 6 65 63 66 17 3 67 15 34 56 40 69 60 36 51 35 39 4 22 27 74 29 58 45 52 38

Lampiran 4-9 individu ke 68 : 50 32 45 61 72 33 65 75 74 3 7 35 27 36 4 17 5 19 57 16 22 34 29 13 37 52 10 38 12 2 30 56 15 59 69 39 8 24 62 73 70 42 58 51 20 44 23 48 40 49 60 1 11 41 21 14 54 71 53 28 68 18 47 9 26 64 55 31 6 43 66 25 46 63 67 individu ke 69 : 50 10 9 73 34 3 6 21 37 28 23 60 64 74 11 33 54 16 36 44 59 5 47 24 65 30 62 18 22 72 58 75 48 25 67 12 29 8 70 27 69 35 38 14 56 66 49 39 53 4 7 68 71 26 20 42 51 63 15 40 41 43 55 31 1 61 19 17 52 32 2 13 46 45 57 individu ke 70 : 6 9 12 68 67 24 17 34 13 18 14 61 64 30 70 72 51 69 3 36 23 26 65 38 74 39 22 73 20 59 54 62 55 10 11 28 35 75 29 42 53 1 16 71 7 2 27 41 31 40 43 37 21 8 57 25 5 50 33 32 60 19 49 15 52 47 58 4 45 66 44 48 46 56 63 individu ke 71 : 39 40 53 70 66 12 26 34 10 11 29 5 49 68 30 46 58 23 67 17 54 27 56 61 59 14 32 41 37 51 8 63 1 43 9 18 48 74 6 71 20 62 21 44 52 25 64 31 60 47 4 7 72 28 15 42 75 13 16 38 73 19 3 69 24 33 55 57 22 35 36 50 65 45 2 individu ke 72 : 34 52 59 12 37 47 6 20 1 23 35 40 48 11 54 26 46 66 58 5 50 51 32 24 60 62 4 36 16 7 57 30 29 39 28 75 18 71 9 33 17 70 74 31 53 13 25 67 15 43 3 14 63 69 27 44 61 19 10 8 64 38 49 68 45 73 21 72 2 22 65 41 56 42 55 individu ke 73 : 43 29 16 70 63 65 69 53 11 27 14 35 54 40 46 21 49 32 59 61 56 3 50 45 62 10 57 60 64 23 58 55 38 15 33 72 17 6 19 48 30 67 51 5 4 28 73 18 37 75 44 1 24 66 41 12 22 8 31 25 7 39 34 42 9 13 20 52 71 26 2 68 36 74 47 individu ke 74 : 70 4 33 26 69 32 15 45 28 41 58 36 42 72 40 9 50 52 55 1 29 62 49 18 68 11 53 65 71 37 27 34 16 59 3 73 24 31 66 5 13 54 23 46 57 25 48 64 12 14 75 60 2 61 67 38 7 51 43 6 17 20 44 47 22 30 21 63 8 35 56 39 10 19 74 individu ke 75 : 63 72 24 15 30 37 42 65 67 35 16 19 52 34 73 50 60 1 3 4 14 18 59 43 38 56 55 11 23 27 54 20 33 68 25 5 31 74 62 71 66 2 53 26 29 21 41 28 64 49 22 69 75 6 13 46 36 10 40 47 61 45 12 48 58 70 8 17 32 51 9 57 7 39 44 individu ke 76 :

Lampiran 4-10 55 56 19 64 68 18 52 2 61 51 40 59 74 67 69 41 42 49 11 24 43 10 20 3 8 26 34 32 53 57 7 28 45 38 46 17 25 44 30 35 75 73 72 21 36 13 6 23 63 9 47 58 66 39 22 65 1 16 62 54 15 29 4 14 60 27 70 48 50 5 33 37 12 71 31 individu ke 77 : 66 36 10 16 6 64 12 24 70 5 59 52 2 38 50 41 46 39 73 15 32 9 53 72 40 55 37 75 56 23 34 13 44 45 11 57 35 29 47 62 43 42 48 14 19 22 33 28 61 74 71 1 26 25 65 63 8 20 18 60 4 51 17 69 49 27 54 3 30 31 58 67 7 68 21 individu ke 78 : 4 3 25 13 56 30 48 67 11 22 38 66 6 9 36 37 46 72 32 44 62 26 59 39 69 19 55 54 34 65 58 29 14 2 28 31 12 10 33 52 1 43 24 41 71 60 17 61 64 57 42 63 73 5 20 45 16 53 68 70 15 23 40 18 50 74 35 49 8 75 21 27 51 7 47 individu ke 79 : 42 45 49 1 10 38 27 19 21 24 52 36 37 40 32 55 28 44 29 65 20 31 72 11 13 34 62 54 73 18 30 51 75 59 15 17 48 6 8 56 47 67 74 16 71 35 69 53 50 66 12 63 14 68 5 61 57 64 9 58 60 70 41 26 4 7 2 22 43 46 25 33 39 3 23 individu ke 80 : 70 24 34 21 46 62 37 58 54 15 35 50 7 23 20 71 28 74 60 19 30 10 1 44 27 9 6 55 72 64 4 3 61 8 56 12 68 39 63 2 31 53 17 42 18 29 67 40 51 49 36 47 16 5 66 13 57 26 52 59 73 33 43 45 11 48 14 41 32 38 22 69 65 25 75 individu ke 81 : 65 74 26 50 12 39 55 42 61 28 29 6 33 15 2 1 59 72 36 44 19 70 49 21 22 57 58 11 51 54 66 20 53 27 47 31 24 45 37 46 62 5 48 14 52 35 43 68 7 10 71 8 32 17 25 18 38 69 75 13 9 34 41 64 73 3 60 23 4 16 56 30 40 67 63 individu ke 82 : 19 53 73 5 26 44 55 15 71 21 49 51 25 61 62 39 60 11 38 17 40 57 47 2 63 8 27 72 65 74 75 66 48 34 30 36 37 42 46 18 29 10 3 24 4 9 12 6 43 22 23 33 67 68 7 14 45 70 20 69 64 54 56 50 28 16 52 58 13 59 31 35 41 32 1 individu ke 83 : 39 32 49 74 35 27 33 15 31 38 21 14 16 11 20 30 1 53 5 42 68 65 46 72 50 60 36 57 19 62 54 12 44 23 22 28 67 18 4 59 61 73 9 10 24 2 45 48 25 51 13 52 8 58 75 6 47 63 41 17 69 56 7 40 71 70 3 26 29 64 66 34 43 37 55 individu ke 84 : 40 10 46 32 60 44 59 69 4 47 31 19 43 70 72 23 21 67 54 33 36 75 15 34 12 18 68 29 16 14 38 35 65 39 53 41 51 24 7 30 71 58 57 62 55 66 1 22 2 5 27 8 52 63 28 3 13 73 45 49 50 25 74 64 17 20 26 37 42 6 9 48 61 11 56

Lampiran 4-11 individu ke 85 : 21 17 37 41 39 48 46 8 10 28 72 44 6 70 2 19 60 18 7 57 22 67 12 49 73 11 3 15 24 52 68 9 75 54 71 61 47 74 20 58 35 13 26 66 30 51 4 53 62 5 42 16 69 32 56 38 43 50 36 14 25 40 27 64 65 23 55 29 31 45 63 33 1 59 34 individu ke 86 : 25 43 73 39 67 52 3 61 69 4 48 9 74 13 33 59 7 32 24 62 23 30 58 2 16 40 17 64 12 63 1 68 6 60 26 41 45 70 49 56 18 10 15 51 19 65 71 29 28 50 21 55 8 31 75 66 11 42 46 53 14 44 54 34 38 36 57 27 20 72 47 35 22 37 5 individu ke 87 : 69 10 45 18 39 74 50 14 27 73 11 44 30 26 40 24 51 7 42 3 29 47 33 56 53 60 22 70 13 38 35 68 20 4 15 28 21 34 36 5 23 62 32 46 59 72 64 66 71 17 63 67 65 1 16 12 49 55 25 31 41 61 58 37 19 8 2 43 52 54 57 75 6 9 48 individu ke 88 : 70 4 60 45 30 62 57 36 54 35 11 13 44 20 22 7 52 18 34 55 56 15 16 51 23 42 72 31 14 48 25 64 5 37 46 40 29 1 8 73 66 27 49 69 61 65 19 68 63 74 6 2 32 24 39 17 28 43 75 41 47 21 58 59 12 26 71 33 67 53 50 9 10 3 38 individu ke 89 : 6 32 47 12 44 19 5 60 2 15 69 67 58 14 42 1 63 65 18 28 11 68 13 64 17 29 26 54 4 20 66 70 37 41 21 16 24 33 39 55 73 45 30 57 23 50 22 8 48 10 56 62 36 46 7 25 31 53 43 9 74 52 38 27 49 59 40 61 34 72 75 51 35 3 71 individu ke 90 : 62 11 25 15 70 36 33 46 51 58 45 17 52 74 42 26 69 9 67 49 71 41 57 23 6 53 35 13 60 19 37 65 16 7 50 72 28 5 10 18 39 68 44 32 34 1 14 2 61 63 31 66 55 21 54 20 30 59 73 27 75 40 47 38 8 64 12 29 3 22 24 56 43 48 4 individu ke 91 : 63 68 9 10 22 24 35 73 13 28 56 27 61 41 5 31 47 11 48 75 3 6 25 1 12 26 18 72 30 40 62 59 7 4 44 54 21 65 50 23 17 34 66 2 38 39 69 70 60 33 37 46 58 14 20 29 19 64 16 49 42 15 36 57 67 71 52 51 53 43 55 8 45 74 32 individu ke 92 : 40 42 31 6 11 71 39 38 15 12 34 16 30 33 26 50 28 5 1 37 54 52 46 64 69 19 2 7 72 74 45 55 48 29 56 57 25 47 10 61 70 4 59 73 14 18 21 49 51 75 24 23 27 68 65 67 36 35 17 44 53 66 13 62 8 9 32 41 58 60 22 43 20 3 63 individu ke 93 :

Lampiran 4-12 13 75 30 38 64 33 31 10 45 6 21 3 17 50 44 70 27 28 59 11 47 60 18 25 42 74 20 23 65 69 36 7 34 19 63 15 41 46 32 26 39 68 52 58 9 49 37 61 24 51 4 53 12 35 71 62 22 1 29 5 57 73 16 55 14 67 43 66 8 40 48 56 72 54 2 individu ke 94 : 28 54 26 46 19 30 5 16 64 1 35 67 69 2 65 15 31 13 18 41 27 14 59 10 9 33 3 53 60 43 42 40 11 44 8 38 23 20 45 32 61 72 36 71 55 75 56 74 70 57 73 6 52 63 24 17 7 21 4 47 22 51 25 62 34 58 12 48 66 39 29 68 50 37 49 individu ke 95 : 39 65 18 49 63 33 11 27 73 26 71 66 16 59 67 14 52 58 54 17 75 31 41 46 55 62 19 22 30 38 15 3 36 5 37 69 53 42 2 9 44 47 61 72 6 29 32 56 64 24 34 51 50 21 12 20 28 57 10 70 60 40 7 23 68 48 8 1 74 13 4 35 45 25 43 individu ke 96 : 66 65 51 12 35 59 64 71 60 15 70 46 2 18 8 21 55 43 17 33 74 28 75 41 61 52 14 56 38 54 37 22 30 5 63 9 50 16 24 7 26 39 58 23 36 47 45 49 40 19 48 1 13 73 20 57 31 72 10 11 29 25 68 3 34 69 27 32 4 67 53 6 42 44 62 individu ke 97 : 45 19 50 43 11 13 7 30 44 46 3 67 73 10 64 6 51 22 14 39 57 72 18 41 38 32 59 21 31 17 25 71 68 27 56 69 24 63 37 9 1 23 33 53 26 66 12 65 75 5 61 47 42 62 8 16 28 55 36 48 70 40 74 35 60 4 52 29 20 15 54 34 49 2 58 individu ke 98 : 71 48 63 62 27 64 12 24 28 75 33 13 43 9 3 44 22 61 72 50 49 36 1 34 35 2 25 20 32 10 70 4 31 52 16 45 38 74 19 69 7 68 30 58 15 18 73 29 14 67 51 41 60 66 5 23 39 56 26 46 57 37 55 11 40 53 8 17 65 42 59 6 21 47 54 individu ke 99 : 10 31 55 64 67 23 68 18 70 48 11 52 25 3 15 39 61 34 44 62 72 9 63 33 57 20 38 59 4 49 42 69 16 43 24 50 1 75 71 36 13 40 65 5 58 27 54 22 32 46 8 41 51 60 2 45 7 37 47 66 30 73 74 17 6 35 26 14 53 56 29 12 19 21 28 individu ke 100 : 17 32 54 5 3 9 1 20 62 4 35 53 27 8 42 71 34 38 29 66 44 69 33 74 25 64 2 41 57 10 37 65 49 30 31 6 47 70 15 73 13 72 67 55 68 7 16 45 58 52 59 50 63 14 39 61 75 40 56 21 28 24 18 19 60 11 22 43 26 46 12 36 23 48 51 Variasi Bentuk Yang Dipilih Data Kucing Awal :

Lampiran 4-13 individu ke 1 : 4 4 2 5 4 3 5 4 2 1 1 5 1 3 2 1 2 2 5 1 5 3 3 3 4 2 4 2 3 4 1 5 3 2 2 1 4 4 2 3 5 5 3 1 1 4 5 5 4 2 5 2 3 5 4 1 4 2 3 5 3 5 4 4 3 5 2 1 5 2 5 5 4 2 2 individu ke 2 : 5 3 2 3 1 5 3 4 3 3 4 5 1 5 5 2 3 3 5 3 3 5 1 5 4 4 3 1 2 2 3 4 2 1 2 4 3 1 1 4 2 5 5 5 1 1 3 4 5 1 4 4 1 5 2 4 2 5 1 3 2 3 4 3 5 1 2 3 5 3 3 4 4 4 5 individu ke 3 : 2 2 4 2 5 5 5 5 2 1 1 5 2 3 4 1 4 2 2 2 4 2 5 3 2 5 3 1 1 1 3 4 5 1 5 3 4 1 3 4 1 5 1 3 5 5 4 5 5 3 1 2 3 5 4 2 3 2 3 1 4 5 4 2 3 5 1 5 5 4 4 4 1 4 5 individu ke 4 : 5 2 4 3 3 5 1 5 2 2 5 2 3 2 3 4 5 1 2 5 1 3 2 1 1 2 5 5 2 5 2 5 1 2 4 5 2 4 1 2 3 5 4 4 4 5 3 1 5 2 4 5 2 2 2 3 5 4 2 2 3 5 2 2 5 5 4 5 5 4 1 5 2 1 5 individu ke 5 : 1 3 1 3 2 1 2 5 5 2 4 2 3 4 2 2 2 2 2 5 2 3 2 4 5 3 4 4 3 4 5 3 5 3 2 5 4 3 5 3 3 4 4 2 3 3 1 4 3 3 2 5 4 1 1 4 2 4 3 3 4 2 3 4 1 2 5 5 1 4 5 4 1 3 2 individu ke 6 : 5 3 5 1 3 1 1 3 1 4 4 1 5 3 3 2 5 5 3 3 5 1 5 4 3 2 4 2 5 4 3 5 2 2 3 5 5 2 4 5 4 3 1 1 5 2 1 3 4 3 3 4 5 4 2 2 3 4 1 2 5 3 3 3 3 4 4 3 2 3 3 1 3 3 1 individu ke 7 : 5 5 1 5 3 3 5 1 2 1 4 3 4 3 2 2 2 2 4 1 5 5 2 2 3 5 1 5 1 3 2 2 3 5 5 1 1 3 4 4 4 1 3 3 2 4 2 2 4 3 3 3 5 1 2 2 3 2 1 1 5 2 4 5 3 4 1 5 2 3 2 3 4 2 5 individu ke 8 : 3 5 3 5 4 5 4 1 2 5 1 3 5 3 5 2 5 5 4 4 1 5 1 5 3 5 5 3 3 5 3 4 1 3 5 5 2 5 2 2 5 4 2 3 4 4 4 5 2 1 2 2 3 2 4 5 5 1 5 3 1 2 3 5 2 2 4 3 1 4 2 4 3 3 2

Lampiran 4-14 individu ke 9 : 2 5 1 3 3 1 2 4 3 2 3 1 4 3 3 3 4 5 2 4 5 4 1 5 4 4 2 2 3 2 1 5 1 2 5 5 4 1 2 5 3 2 1 3 2 4 1 5 2 2 2 3 5 5 4 5 3 5 3 3 5 4 5 1 5 5 5 2 3 2 4 3 2 2 2 individu ke 10 : 3 2 2 2 1 4 3 2 5 4 1 4 5 5 2 2 1 5 3 5 1 2 1 5 1 3 1 2 1 5 2 1 5 1 1 3 1 5 2 3 3 2 4 4 3 2 3 5 1 4 3 5 5 4 3 2 4 1 5 4 5 2 4 3 2 3 3 1 5 3 1 2 5 5 3 individu ke 11 : 2 1 4 1 1 1 2 2 1 4 1 2 2 1 5 4 2 5 1 5 3 4 3 5 5 1 3 2 1 5 1 2 5 2 5 3 1 2 3 3 1 3 1 2 1 4 2 2 4 1 5 1 1 4 5 5 4 5 1 5 5 1 1 4 5 1 4 4 3 4 3 5 5 1 2 individu ke 12 : 5 2 1 1 2 3 4 1 4 4 1 1 3 2 2 5 2 4 4 1 2 5 1 5 4 2 1 5 4 5 2 2 1 4 4 1 1 2 2 2 4 3 3 2 4 4 3 4 4 1 1 4 5 3 2 3 3 4 5 3 3 3 2 5 5 2 5 4 5 2 1 2 1 3 4 individu ke 13 : 5 3 5 5 5 4 1 2 1 2 3 3 1 1 1 3 3 5 2 1 3 1 1 1 3 1 3 4 4 1 4 3 1 3 5 4 2 3 5 2 2 2 2 3 4 2 1 2 2 1 5 2 4 5 4 1 3 1 1 1 5 4 4 5 4 4 4 2 3 3 3 3 2 3 5 individu ke 14 : 5 2 3 1 2 2 2 5 4 1 2 4 5 1 3 5 2 5 3 4 2 3 3 4 2 4 4 3 3 2 1 1 2 1 3 1 1 3 3 5 5 4 2 3 5 3 1 4 2 4 1 5 4 5 5 2 2 4 3 2 4 3 2 5 2 4 2 4 1 2 1 1 5 2 2 individu ke 15 : 3 4 5 5 2 3 4 3 4 1 2 4 2 5 5 1 1 4 5 4 5 2 1 5 5 4 4 2 1 5 5 2 4 2 1 3 1 1 4 1 4 1 5 1 5 3 2 3 2 5 3 3 1 4 4 2 3 4 1 2 2 3 3 3 5 5 2 4 4 5 2 5 2 3 2 individu ke 16 :

Lampiran 4-15 5 4 1 5 2 3 3 3 2 1 2 5 5 3 3 1 2 3 1 2 5 2 5 2 3 1 1 2 4 5 4 3 5 1 3 2 2 2 3 1 3 1 2 1 4 4 2 4 4 2 4 4 1 3 3 2 4 3 2 2 3 2 2 2 3 1 5 4 1 5 3 3 4 5 5 individu ke 17 : 4 1 2 3 4 2 2 2 5 5 5 1 5 5 2 1 4 3 4 2 2 1 5 3 2 5 4 4 4 1 5 3 5 4 2 1 2 2 5 5 4 2 1 4 3 5 5 1 3 2 3 1 5 5 3 4 2 3 2 3 3 3 2 4 4 2 2 1 4 1 4 3 3 5 4 individu ke 18 : 2 2 5 4 4 4 4 5 4 5 4 1 1 5 1 2 2 1 3 1 2 4 2 4 5 3 4 3 4 5 5 3 4 3 2 1 5 2 4 4 2 3 3 5 1 1 4 2 1 2 1 1 4 4 4 3 1 4 3 4 2 4 4 1 1 5 5 3 3 4 2 2 4 4 2 individu ke 19 : 3 2 4 5 2 4 4 5 5 4 2 3 1 2 4 5 3 1 3 1 4 5 5 1 4 1 4 4 3 1 3 2 4 2 5 5 1 2 5 3 3 2 3 5 5 4 2 1 5 1 4 4 5 4 4 1 2 4 1 4 4 2 3 2 2 3 4 5 2 1 3 3 1 4 1 individu ke 20 : 4 5 3 1 1 3 2 1 4 1 4 1 1 4 3 2 1 4 3 5 2 2 4 5 5 3 5 1 5 2 5 4 4 3 2 2 3 2 2 4 5 5 1 1 1 1 1 2 1 3 5 5 2 4 2 3 2 5 5 5 1 3 5 2 1 5 1 4 1 5 4 4 4 1 5 individu ke 21 : 4 5 5 5 4 5 3 2 2 2 5 1 2 2 5 5 4 1 5 3 5 2 1 1 3 5 2 5 2 5 2 5 2 3 1 2 4 5 2 1 5 4 2 2 2 3 1 2 4 5 3 2 3 4 3 1 1 2 4 3 3 2 5 4 2 3 4 1 3 5 5 1 5 2 3 individu ke 22 : 2 2 3 1 3 2 4 3 4 4 5 4 4 1 1 5 2 4 2 5 4 2 1 2 1 4 4 4 5 4 2 3 5 5 1 3 2 2 4 1 3 1 3 5 5 4 1 5 4 3 4 5 2 5 1 3 3 3 4 1 5 5 4 2 1 4 4 1 1 5 5 5 5 1 5 individu ke 23 : 2 4 1 1 5 5 4 4 4 2 2 4 5 2 3 2 2 5 1 3 2 4 3 3 5 2 4 2 1 2 3 1 4 4 4 2 4 1 3 2 3 5 2 1 2 2 1 2 3 4 1 5 4 4 5 5 3 4 3 2 3 4 3 5 5 2 3 3 4 2 5 4 2 2 3

Lampiran 4-16 individu ke 24 : 3 3 4 5 2 4 2 5 4 1 5 2 4 5 2 3 3 1 4 1 2 5 4 3 2 5 3 2 1 1 4 4 5 3 3 1 4 3 1 2 2 2 1 4 1 5 2 1 1 1 4 1 4 3 4 2 4 3 2 3 4 2 4 3 2 2 5 4 4 2 5 3 4 1 3 individu ke 25 : 3 3 5 5 4 2 3 4 2 2 4 3 5 3 2 4 3 3 2 5 2 2 2 3 2 5 2 4 4 2 4 1 2 4 1 5 3 1 3 1 5 4 5 5 4 2 2 2 5 1 3 4 1 2 4 5 4 5 5 3 5 2 4 5 2 5 1 5 1 5 2 3 5 1 2 individu ke 26 : 4 2 2 5 5 1 1 2 2 4 4 4 4 5 2 2 2 1 4 5 4 3 3 5 2 2 3 1 1 1 3 1 2 5 3 5 1 1 1 4 4 3 2 1 4 4 1 3 1 5 3 3 2 4 3 5 2 5 5 2 3 4 3 3 4 5 1 2 5 1 1 5 5 1 5 individu ke 27 : 1 2 3 5 3 4 2 5 4 2 1 2 2 3 1 1 4 2 3 5 3 2 1 5 2 4 2 2 5 4 5 1 5 5 4 1 5 2 5 5 3 1 4 2 3 2 3 4 1 3 5 2 3 5 1 1 4 5 5 4 4 2 3 1 1 3 2 4 4 1 5 4 5 4 4 individu ke 28 : 2 4 2 3 1 3 2 2 1 5 5 2 4 1 4 5 1 5 2 3 3 4 1 1 3 2 3 3 2 4 1 5 4 1 3 4 5 2 5 5 3 3 4 2 4 4 3 2 4 4 2 2 4 1 5 4 4 1 1 2 4 4 1 2 4 1 4 5 3 2 1 4 1 5 2 individu ke 29 : 3 3 3 4 1 1 1 1 5 3 2 2 5 3 5 3 3 3 5 2 3 5 3 2 2 5 2 2 3 1 3 3 2 4 4 4 3 4 3 2 5 5 4 2 4 3 4 5 3 4 1 1 4 4 3 4 3 3 2 4 3 2 5 4 4 2 3 3 5 5 5 4 2 3 1 individu ke 30 : 3 3 3 4 3 4 4 1 1 5 4 3 5 4 4 1 5 2 2 2 5 3 4 3 4 1 2 5 5 2 1 4 5 2 3 2 3 2 5 3 1 4 1 2 2 4 2 4 4 1 3 5 1 5 4 4 4 1 1 1 1 1 3 3 1 4 4 2 5 1 5 4 4 3 1 individu ke 31 : 5 2 4 3 1 2 4 4 5 5 2 1 3 1 2 4 1 4 3 2 2 5 5 1 1 4 1 2 3 4 2 1 3 2 2 2 1 5 4 2 3 1 2 4 5 1 5 5 3 2 2 1 3 5 2 3 4 2 4 2 5 1 5 2 4 2 4 1 4 2 2 2 2 4 4

Lampiran 4-17 individu ke 32 : 2 4 5 2 1 4 2 3 2 2 5 2 5 2 4 3 3 4 1 4 2 4 1 3 3 1 1 5 5 3 5 1 1 3 2 1 5 3 5 5 4 4 1 2 4 3 2 4 2 1 1 2 5 3 2 4 1 4 3 3 5 1 5 3 1 2 5 4 3 4 4 3 2 2 5 individu ke 33 : 1 4 4 5 1 2 3 1 1 4 4 4 3 2 3 4 5 2 3 1 3 2 3 2 3 5 3 5 5 2 4 1 5 2 5 3 5 1 4 4 1 4 5 2 3 4 3 2 5 1 4 2 1 5 1 3 5 2 4 2 5 3 1 1 4 4 5 1 5 5 2 4 4 4 5 individu ke 34 : 4 1 5 2 1 4 5 3 3 3 1 1 1 5 4 5 2 4 4 4 4 2 5 3 2 4 5 4 1 5 2 5 5 1 4 2 1 3 4 1 1 4 5 5 2 1 1 1 4 2 4 2 5 5 2 3 5 2 2 5 3 2 2 1 4 4 2 1 4 3 5 3 5 1 1 individu ke 35 : 1 5 3 2 1 1 4 2 2 4 2 2 4 1 2 3 1 3 1 3 1 1 4 5 2 1 5 4 4 2 1 3 5 5 5 1 5 3 5 2 3 4 4 4 2 2 3 5 2 4 1 4 2 4 3 5 5 3 4 3 3 2 2 2 3 4 3 4 5 1 1 4 3 4 2 individu ke 36 : 2 4 2 3 2 5 5 5 1 3 5 3 4 4 5 2 4 5 5 3 4 5 4 4 4 5 3 2 1 1 2 4 3 4 1 4 3 2 1 1 4 3 3 1 4 5 2 1 5 3 4 3 3 5 1 3 5 2 5 5 2 3 5 1 2 5 5 2 3 1 4 4 2 3 3 individu ke 37 : 4 4 5 1 5 3 1 1 1 1 5 3 3 2 5 1 2 3 5 5 3 4 5 3 4 5 4 4 4 2 1 5 5 1 4 2 1 3 5 2 1 1 4 4 1 3 3 4 4 2 1 5 5 3 4 4 4 3 4 3 4 3 2 1 1 3 4 1 5 4 5 2 1 3 5 individu ke 38 : 5 3 4 1 1 2 4 1 3 3 5 4 2 4 4 5 3 2 5 4 4 2 2 4 4 5 3 2 3 1 4 5 1 2 4 5 1 3 5 3 1 1 4 1 1 1 5 3 4 4 1 5 5 2 1 1 2 1 3 2 1 2 1 3 2 3 5 1 5 5 5 1 5 5 4 individu ke 39 :

Lampiran 4-18 5 1 3 2 4 5 5 3 4 2 3 4 5 2 1 5 3 3 3 3 4 3 4 3 5 2 3 4 5 4 2 1 3 2 1 5 3 2 5 1 2 2 3 3 3 4 1 2 2 5 4 3 1 2 2 4 4 5 5 1 5 5 2 2 4 1 4 4 4 4 1 3 3 5 4 individu ke 40 : 1 2 3 4 1 4 5 4 2 3 4 3 3 2 1 4 3 5 2 1 3 3 3 2 4 3 3 5 2 2 2 4 4 5 2 3 4 4 5 1 2 3 5 3 3 3 1 5 2 2 1 4 3 5 5 2 1 3 4 4 5 2 1 4 1 2 4 2 3 3 2 2 3 3 2 individu ke 41 : 1 4 2 2 2 5 3 5 4 1 4 4 3 1 4 5 2 1 5 3 1 2 4 4 5 1 3 4 4 5 4 5 4 5 5 2 4 2 3 3 2 2 3 5 5 5 2 5 4 1 4 5 1 1 4 1 3 4 3 2 5 5 4 1 4 3 1 3 5 5 4 3 5 4 4 individu ke 42 : 1 5 5 5 2 5 4 1 5 5 5 2 2 1 2 3 4 1 1 1 1 2 2 3 1 5 3 1 4 3 1 1 4 3 5 5 4 1 5 1 2 3 3 4 2 2 2 4 2 2 2 3 3 3 2 1 5 3 5 5 3 4 4 1 2 2 3 1 1 3 3 1 3 5 5 individu ke 43 : 4 3 2 2 4 3 5 5 1 1 1 1 5 5 1 4 5 4 1 3 4 1 3 1 5 1 1 4 5 5 3 4 2 4 4 3 4 4 5 4 4 5 5 4 3 5 5 1 1 1 3 1 5 4 3 1 5 1 5 4 3 3 3 5 4 4 4 4 2 1 3 2 4 2 4 individu ke 44 : 3 3 3 2 3 1 2 5 4 1 1 2 4 2 4 4 3 1 5 4 2 1 5 2 2 1 1 1 4 2 1 3 2 5 1 2 2 2 5 5 3 3 3 5 1 3 4 2 1 2 5 5 2 2 4 3 4 2 4 3 5 5 4 5 5 2 5 4 3 1 1 3 5 4 2 individu ke 45 : 1 1 5 3 1 5 3 1 4 3 2 4 4 4 2 2 2 3 2 1 4 1 3 4 2 3 4 1 5 2 5 1 2 1 5 5 2 1 2 5 1 3 3 2 2 1 2 5 5 5 2 1 1 3 3 4 4 4 1 3 2 1 3 2 2 5 5 4 4 5 3 5 5 2 1 individu ke 46 : 3 2 4 1 4 1 4 3 1 1 4 4 5 4 1 1 5 5 3 1 4 5 5 1 5 4 1 3 3 4 2 4 4 5 2 2 2 1 3 1 1 3 3 5 5 5 1 1 3 1 5 4 3 5 4 1 3 5 1 2 4 2 5 4 4 1 3 4 4 1 5 3 2 3 5

Lampiran 4-19 individu ke 47 : 1 5 1 1 1 5 3 4 4 1 1 1 3 2 3 5 3 1 5 5 3 4 1 4 2 1 3 4 1 3 3 3 4 4 2 2 5 3 2 3 3 2 3 3 2 3 5 3 3 2 5 4 4 5 1 2 5 1 4 4 5 5 3 3 3 4 1 4 4 5 2 5 1 5 4 individu ke 48 : 2 1 4 4 5 1 1 3 2 2 5 2 5 5 1 4 5 5 4 1 5 2 3 2 5 5 2 3 3 5 1 3 3 3 5 5 5 2 2 3 2 5 4 4 5 3 1 4 3 4 4 2 1 5 4 5 4 4 3 1 1 1 5 1 2 3 2 2 5 5 3 3 1 4 4 individu ke 49 : 2 3 2 3 4 3 4 5 4 2 5 3 3 3 1 2 2 2 5 1 1 1 5 3 5 3 3 3 4 2 4 2 1 5 2 3 2 4 5 2 4 3 3 1 1 2 3 3 2 1 1 3 2 3 4 1 2 1 1 3 1 3 2 1 4 3 2 4 2 2 5 3 2 4 4 individu ke 50 : 3 5 1 2 2 2 1 4 4 2 4 1 2 2 4 2 2 5 5 1 5 4 2 3 5 4 2 4 2 5 2 2 5 5 4 3 5 2 5 4 3 5 4 1 5 5 1 3 2 5 4 1 3 4 4 3 3 4 3 4 3 5 3 3 2 2 1 4 3 5 4 5 4 2 2 individu ke 51 : 4 5 3 4 1 1 3 1 5 1 1 3 5 2 2 2 1 2 2 1 3 4 4 1 1 5 2 1 4 3 5 4 5 3 3 1 5 2 2 3 5 5 3 5 1 1 4 2 4 2 1 1 3 2 1 5 2 1 1 5 2 2 3 2 5 5 2 4 1 3 4 1 4 2 2 individu ke 52 : 4 2 1 4 2 3 3 4 4 3 5 2 1 3 4 4 3 1 3 5 5 2 1 5 1 4 3 2 3 3 2 1 4 2 5 4 5 1 5 5 2 1 2 1 3 4 5 4 3 5 2 5 2 4 3 5 4 5 4 5 1 3 4 1 5 2 4 4 1 2 4 4 3 4 4 individu ke 53 : 1 1 4 4 1 1 4 3 2 5 1 3 2 4 4 4 3 3 5 1 5 2 3 4 4 2 2 1 2 1 3 3 3 2 1 4 2 3 4 4 4 1 3 2 3 4 1 3 5 4 2 3 5 2 5 1 4 4 2 4 2 3 3 4 3 3 5 2 5 2 2 2 2 1 5 individu ke 54 : 3 3 5 1 1 5 1 3 4 5 5 5 5 2 3 5 2 4 1 1 2 1 3 2 3 3 1 2 2 5 1 3 1 5 1 3 5 1 1 4 1 1 2 4 4 5 2 3 2 3 5 2 2 2 4 2 3 4 5 3 2 2 5 3 5 3 3 5 2 1 4 1 5 5 5

Lampiran 4-20 individu ke 55 : 4 1 2 2 2 4 1 1 5 1 3 1 1 5 1 3 3 3 4 3 3 2 2 1 4 4 5 3 5 3 5 3 4 4 4 1 1 1 5 5 4 1 5 5 3 1 5 4 3 5 4 3 3 3 3 1 2 2 4 4 3 5 1 1 1 1 1 2 3 2 1 4 2 3 3 individu ke 56 : 2 3 4 2 2 5 2 1 2 1 1 1 4 3 5 2 4 1 2 3 5 4 5 3 3 5 4 3 4 2 4 1 5 3 2 3 3 2 1 5 3 1 1 3 4 3 2 2 4 4 1 3 1 3 4 4 3 5 5 5 1 3 5 2 2 2 5 5 4 3 4 4 3 2 1 individu ke 57 : 2 5 1 5 2 2 2 5 2 2 3 2 2 1 2 1 5 2 3 5 3 5 3 5 2 5 2 1 2 1 4 4 5 2 1 3 2 1 3 2 2 5 2 5 3 5 5 3 1 1 1 2 2 5 2 1 5 5 2 1 3 4 4 2 5 2 4 1 3 4 3 5 3 4 4 individu ke 58 : 5 4 1 3 5 4 3 4 3 4 2 5 4 3 4 2 3 1 2 2 2 2 2 2 2 2 5 3 5 5 4 1 1 3 2 1 3 1 2 1 3 4 5 1 2 5 2 5 3 1 2 3 3 4 4 1 4 3 4 5 3 5 4 2 3 4 5 2 4 1 1 4 1 3 3 individu ke 59 : 1 1 1 5 5 3 5 5 2 4 2 1 3 2 3 2 2 1 3 5 2 1 4 1 2 4 1 3 3 3 2 3 2 5 4 4 1 3 4 2 5 1 5 2 4 2 3 4 3 3 3 3 5 4 1 3 3 4 4 2 4 3 1 5 3 3 3 4 4 5 1 4 3 4 1 individu ke 60 : 3 2 1 5 1 5 1 1 2 2 4 2 1 5 1 3 4 2 4 5 1 3 5 1 5 2 2 2 1 3 2 2 3 4 4 4 4 5 5 5 2 5 2 1 4 2 2 3 4 2 5 1 1 4 3 1 2 5 4 2 2 1 3 3 1 4 1 4 3 3 4 4 2 1 5 individu ke 61 : 5 5 2 4 4 3 1 3 1 1 3 5 5 1 1 5 3 4 4 5 2 3 3 2 3 3 4 4 1 4 5 1 2 5 1 4 3 1 4 4 4 2 5 4 5 3 4 5 1 4 2 4 3 2 1 2 1 1 4 4 3 1 3 3 5 5 5 1 2 2 5 3 1 2 4 individu ke 62 :

Lampiran 4-21 4 4 2 3 1 4 4 2 5 1 2 3 5 3 5 3 5 4 5 2 5 3 3 3 4 1 2 5 4 5 4 4 2 2 5 2 4 3 3 4 1 1 4 3 3 4 1 2 3 2 4 2 4 5 4 1 5 2 4 5 5 3 4 2 3 2 2 3 4 4 4 3 4 1 3 individu ke 63 : 4 3 3 4 2 1 4 4 2 2 2 3 1 1 1 4 2 2 5 1 5 2 4 1 3 3 1 2 4 1 3 3 3 4 5 3 4 3 4 3 1 4 3 4 2 4 4 4 1 4 3 3 4 1 1 4 4 5 5 2 5 5 1 4 2 2 5 3 4 1 2 5 4 4 5 individu ke 64 : 2 3 3 1 4 1 2 5 5 1 3 5 3 3 2 1 3 3 1 5 2 3 1 2 2 5 2 4 2 1 2 2 3 1 1 2 1 4 3 2 2 3 4 4 3 1 2 4 1 2 5 5 1 3 1 3 5 4 3 3 3 3 3 5 5 3 3 1 2 5 4 2 5 2 1 individu ke 65 : 3 2 4 1 2 4 4 5 3 1 3 1 1 4 2 3 3 4 3 3 2 2 3 3 3 1 3 1 4 4 1 3 4 4 5 3 2 2 4 3 2 5 1 1 3 2 5 3 2 2 3 1 1 5 5 4 2 2 2 1 2 2 4 3 1 4 4 4 4 3 2 5 5 4 4 individu ke 66 : 3 3 5 3 4 3 4 1 3 1 3 2 1 4 4 2 2 2 4 2 1 1 3 1 1 2 4 3 4 3 4 3 5 2 5 3 2 2 3 3 5 5 2 3 5 5 2 3 5 1 4 3 1 4 1 2 2 1 4 4 2 3 2 2 4 3 1 2 5 1 2 4 4 4 3 individu ke 67 : 2 5 1 2 1 4 3 4 2 2 3 5 3 1 3 5 3 5 2 5 3 5 4 5 3 5 1 1 4 1 4 2 3 5 3 1 3 2 1 5 1 3 4 3 2 3 3 4 3 3 3 5 5 1 1 1 3 5 4 1 3 5 4 2 5 4 1 1 3 5 4 2 2 1 4 individu ke 68 : 1 2 2 1 2 4 3 3 1 2 1 2 3 3 5 1 1 1 3 3 2 3 4 1 3 2 1 2 3 3 2 3 3 5 1 4 2 1 3 1 2 3 3 3 4 2 5 1 3 5 1 4 2 2 5 3 2 5 5 1 4 1 2 3 3 1 2 3 4 3 1 4 1 2 5 individu ke 69 : 5 2 2 2 3 5 5 2 4 5 1 4 1 4 3 1 3 3 5 4 5 3 4 2 5 4 3 2 3 5 1 5 3 4 2 3 4 5 3 4 3 1 5 4 2 4 5 4 5 2 2 5 5 1 2 4 4 1 5 1 5 3 1 1 5 3 3 1 1 3 4 3 2 4 1

Lampiran 4-22 individu ke 70 : 5 1 3 2 3 4 4 1 5 3 4 1 1 4 4 1 5 5 2 4 5 4 5 3 1 5 3 5 2 1 4 2 2 5 2 1 2 1 2 5 4 2 3 1 2 3 5 2 4 5 5 3 4 2 2 5 5 2 2 3 3 1 1 3 1 2 2 1 3 2 2 1 1 2 3 individu ke 71 : 5 5 5 2 3 2 2 1 2 1 3 4 3 4 3 1 5 4 5 3 3 4 4 5 1 3 4 5 4 1 1 1 4 5 5 1 4 5 4 2 1 2 4 2 2 2 5 5 1 2 3 4 2 3 2 1 1 2 4 3 3 4 3 4 3 5 4 2 2 4 1 3 3 4 4 individu ke 72 : 4 3 2 1 5 1 5 3 5 5 2 5 1 3 3 3 3 4 5 4 5 4 5 2 1 5 4 1 5 5 5 2 1 4 2 5 5 4 3 5 4 5 4 1 4 5 5 5 2 2 1 2 5 5 2 2 2 3 5 4 1 5 5 3 2 5 2 2 3 1 3 1 4 5 1 individu ke 73 : 5 2 3 2 3 5 2 4 1 3 2 4 4 5 1 4 5 2 4 4 3 4 3 5 1 4 1 4 3 2 3 2 1 5 4 3 1 4 2 3 2 5 5 1 2 1 1 1 5 5 4 1 3 3 3 2 5 2 1 5 3 3 5 3 1 1 4 1 4 5 1 4 3 4 2 individu ke 74 : 4 5 5 4 4 2 4 2 3 2 1 2 2 4 3 1 3 4 2 3 5 5 5 1 3 5 3 3 1 5 5 4 2 2 2 3 5 1 1 5 2 5 2 4 4 2 2 1 1 2 2 3 1 5 4 5 4 5 1 5 4 4 5 4 1 3 3 5 2 3 3 2 3 3 2 individu ke 75 : 2 1 4 4 1 5 2 2 1 1 1 1 5 2 2 4 2 5 3 4 5 1 3 1 4 2 3 1 3 3 1 5 5 3 1 2 4 2 2 3 3 2 5 3 3 4 3 4 4 4 2 1 3 3 1 4 3 4 3 5 3 3 5 4 4 3 4 3 3 5 4 1 3 4 2 individu ke 76 : 1 1 2 2 4 5 5 4 4 4 3 3 4 5 2 5 2 4 5 2 2 1 2 2 2 4 4 3 3 4 2 2 3 3 5 1 3 1 3 2 1 4 2 3 3 5 3 4 4 1 1 2 4 3 3 2 2 4 2 2 2 1 4 3 2 5 1 2 5 5 5 4 1 1 4 individu ke 77 : 2 4 1 4 5 2 4 2 1 2 5 3 5 2 4 1 2 1 3 4 5 3 1 3 5 5 3 2 3 4 1 1 2 2 1 1 2 1 2 1 4 1 5 4 3 4 3 5 1 2 1 5 2 3 3 2 2 1 3 5 1 1 1 3 3 5 1 4 4 5 5 4 2 4 3

Lampiran 4-23 individu ke 78 : 3 5 3 1 1 2 2 4 2 2 1 2 1 2 2 1 3 2 5 3 3 1 5 3 2 3 5 4 4 3 4 3 1 1 1 5 2 4 1 1 5 4 1 4 4 1 2 3 1 1 4 4 3 2 3 1 3 1 4 4 5 1 3 5 3 1 2 5 1 4 3 2 4 5 5 individu ke 79 : 1 2 1 4 4 3 2 2 3 3 5 3 1 3 3 1 5 4 4 4 3 3 4 1 5 4 2 1 3 4 5 5 2 3 5 1 3 1 4 2 2 2 4 3 5 4 1 3 1 2 2 4 3 4 5 2 2 5 2 2 3 3 4 2 4 3 1 4 3 5 2 1 1 3 2 individu ke 80 : 1 5 2 3 2 5 4 4 4 2 2 5 1 5 4 4 1 4 4 3 5 5 3 3 4 2 1 3 1 5 5 2 3 3 4 3 4 3 1 3 4 3 2 3 4 1 1 4 2 1 2 1 2 2 5 2 2 2 3 1 4 4 2 4 2 4 4 2 3 5 4 5 5 3 2 individu ke 81 : 1 2 4 1 5 1 2 1 5 2 2 4 5 5 3 1 1 3 5 1 5 4 2 2 3 4 1 4 4 4 3 1 2 5 5 2 1 1 5 5 3 3 3 4 2 1 1 3 3 4 1 2 4 3 2 3 5 3 3 1 3 5 4 5 4 1 5 1 4 5 5 3 1 1 1 individu ke 82 : 4 3 4 4 1 1 4 2 3 1 5 5 5 3 3 4 4 3 4 3 1 4 1 3 4 3 4 4 3 3 2 5 1 4 1 5 1 4 1 3 4 4 5 2 5 5 4 2 3 2 5 4 2 4 4 1 5 2 3 5 1 5 3 5 1 5 4 1 4 4 5 3 3 2 5 individu ke 83 : 3 2 3 3 1 5 5 2 3 1 4 4 5 3 2 5 4 3 1 3 5 1 4 1 3 4 2 2 5 3 3 2 4 4 1 2 5 3 4 2 2 5 1 3 5 2 1 2 1 3 1 3 2 2 1 5 4 2 3 2 2 5 3 1 3 4 3 5 4 4 2 2 2 2 1 individu ke 84 : 5 4 1 4 4 3 3 1 5 5 1 2 1 1 5 1 3 5 3 2 1 3 4 5 1 4 3 4 1 2 3 4 4 5 2 1 1 2 2 3 5 4 2 3 1 5 3 1 1 2 3 3 2 4 3 3 4 3 4 2 3 4 5 1 3 2 2 2 2 4 5 1 4 3 2 individu ke 85 :

Lampiran 4-24 5 3 2 3 4 5 4 3 3 2 5 2 4 4 1 3 5 5 4 2 5 5 5 3 3 3 2 3 4 3 4 2 4 3 2 4 4 2 3 3 3 4 4 2 5 2 2 1 1 4 3 4 1 4 4 4 4 5 3 4 4 5 5 2 4 1 4 5 5 1 1 5 1 1 4 individu ke 86 : 2 4 5 4 2 4 2 1 5 3 5 3 4 1 2 4 5 5 1 5 5 1 1 2 3 5 1 5 5 5 2 2 3 5 4 4 2 1 5 3 2 1 5 4 5 3 4 5 1 4 5 5 2 1 3 3 2 3 2 3 3 2 3 2 2 4 5 5 1 4 5 4 5 2 4 individu ke 87 : 5 5 2 1 2 3 1 3 1 5 4 4 5 2 2 4 5 3 4 2 3 3 3 5 5 5 3 2 5 5 5 5 5 5 1 4 3 5 2 4 1 1 1 4 5 4 1 5 5 3 1 4 2 3 4 3 1 2 2 5 2 2 5 1 5 3 1 2 2 5 3 1 3 1 5 individu ke 88 : 4 2 1 1 4 2 5 5 3 1 2 5 5 3 1 5 2 3 4 5 4 4 5 3 1 4 5 1 4 3 3 2 3 1 3 1 4 1 5 5 2 5 5 1 1 5 1 4 2 3 2 1 1 5 4 2 5 4 5 2 4 2 3 2 1 5 3 4 5 4 1 4 1 5 1 individu ke 89 : 5 1 2 4 5 1 1 1 2 1 5 1 5 3 4 4 1 2 4 2 3 1 2 4 2 2 1 2 3 5 3 3 5 3 2 4 5 1 3 3 5 4 2 1 5 4 5 5 4 3 4 4 1 2 5 1 2 5 5 4 5 2 1 4 2 4 1 1 1 1 3 5 5 2 5 individu ke 90 : 4 3 4 1 4 2 1 1 1 5 3 3 5 4 1 2 2 1 3 1 1 1 2 5 4 4 4 4 4 2 2 2 3 2 1 4 1 1 1 4 3 2 5 5 5 3 5 5 5 4 2 5 5 1 2 4 3 3 4 3 4 1 4 4 3 4 5 1 3 5 4 3 1 2 1 individu ke 91 : 5 5 3 3 4 4 1 3 4 4 3 3 5 1 5 5 4 1 2 4 2 5 1 1 1 5 4 1 5 2 1 2 3 2 4 5 1 4 1 5 2 3 1 1 2 4 2 1 2 5 5 3 1 4 3 2 3 5 3 1 3 5 5 2 1 5 4 3 1 2 3 4 3 4 3 individu ke 92 : 2 5 3 2 5 5 1 4 5 1 1 5 3 3 5 3 4 2 1 4 3 4 1 5 2 1 3 2 2 3 1 3 4 5 5 5 1 3 3 4 3 4 4 4 3 2 4 4 4 2 1 3 5 3 3 1 5 5 2 2 4 4 5 1 3 1 4 3 5 2 3 1 4 4 3

Lampiran 4-25 individu ke 93 : 1 1 2 3 4 3 5 5 4 5 1 4 3 3 4 3 5 5 3 1 2 3 5 3 2 1 1 2 3 3 3 2 1 1 1 2 3 2 2 3 5 2 1 5 5 3 4 5 2 3 4 4 2 3 5 1 5 3 4 5 1 4 4 5 5 2 3 1 4 2 2 5 1 4 5 individu ke 94 : 3 3 2 3 1 4 3 4 1 2 1 3 5 3 4 5 1 5 3 3 1 5 2 4 1 4 3 1 5 4 4 1 3 3 1 3 5 2 4 3 3 5 1 5 1 1 1 5 3 3 4 3 3 1 5 3 4 4 4 2 4 1 4 5 4 1 3 5 5 4 4 5 2 3 5 individu ke 95 : 2 3 4 3 1 3 5 5 2 3 1 2 2 4 1 4 2 1 5 3 2 1 5 3 3 2 2 4 5 2 3 5 3 4 2 3 2 1 2 2 2 2 3 4 5 2 4 1 3 5 2 4 3 3 1 4 4 1 2 1 2 2 4 4 3 3 5 3 2 2 2 4 5 2 2 individu ke 96 : 1 1 1 5 1 4 3 5 3 5 1 3 3 5 4 5 1 1 2 2 4 4 5 3 3 3 5 5 3 3 2 5 4 1 3 5 2 1 2 2 4 2 5 4 2 5 3 2 3 3 1 4 4 1 1 5 4 2 5 3 4 5 3 5 3 4 2 4 5 3 2 2 2 5 4 individu ke 97 : 1 3 4 3 4 1 2 3 3 5 4 4 1 1 1 2 5 4 5 3 5 2 5 1 1 5 2 4 2 5 2 2 2 1 3 2 4 3 4 1 4 3 5 4 3 4 4 2 4 3 4 3 3 1 4 1 4 2 3 1 4 3 3 5 5 4 4 1 3 5 2 5 5 5 2 individu ke 98 : 3 5 1 2 4 2 4 3 4 1 4 1 4 1 5 5 2 5 1 1 2 5 4 1 1 5 4 3 3 4 5 3 1 2 5 5 3 1 5 1 4 1 1 3 3 3 1 3 2 1 5 3 5 3 1 4 3 2 4 2 2 4 1 5 2 4 3 1 3 3 5 2 3 5 1 individu ke 99 : 1 5 5 2 4 4 2 2 4 1 3 5 4 3 5 3 5 4 2 1 2 1 5 4 4 3 1 3 2 1 1 1 5 4 5 1 1 2 2 3 5 4 5 5 3 5 3 5 1 2 5 1 5 5 4 4 4 2 5 2 4 5 2 4 1 1 3 5 4 1 2 3 2 3 2 individu ke 100 : 3 1 5 4 4 3 2 3 3 5 4 2 2 4 2 5 4 5 4 1 3 1 4 1 3 5 2 2 3 2 4 5 2 2 5 5 1 5 1 1 2 4 4 3 3 3 4 3 5 2 4 4 4 2 3 4 2 2 1 1 4 5 5 5 4 5 4 4 2 3 3 2 2 4 4

Lampiran 4-26 Urutan Lahan Masuk : 13 72 37 68 41 51 62 7 55 53 44 4 22 39 74 6 64 30 25 27 63 69 15 17 33 28 23 5 56 12 11 42 29 34 19 10 40 57 14 43 49 20 66 2 58 50 70 59 21 47 65 35 67 3 9 61 75 16 73 54 26 48 52 18 45 8 36 46 60 32 71 31 38 1 24 Variasi yang dipilih : 2 3 4 2 3 3 1 4 1 5 5 4 1 4 3 3 2 3 1 1 3 1 2 2 3 4 2 4 1 4 2 4 1 2 3 1 1 4 2 2 5 3 4 2 3 5 5 2 1 5 3 3 1 2 4 3 5 3 2 1 5 5 5 2 1 2 1 5 2 3 4 2 3 2 3 Dengan Tinggi Lahan : 222 Best Tracing Secara Global : Urutan Lahan Masuk : 64 6 12 45 34 65 39 70 21 54 51 71 72 28 57 59 41 30 56 5 68 4 42 10 33 69 19 36 50 62 58 14 7 37 13 73 55 67 46 25 3 27 29 26 32 1 74 35 15 40 16 9 53 52 18 44 20 47 38 48 2 61 49 17 11 43 66 8 22 23 24 31 60 63 75 Variasi Terpilih : 2 3 5 4 5 2 3 4 3 5 3 3 3 3 5 4 4 3 2 2 1 5 2 3 3 3 5 1 2 3 1 2 4 1 3 3 4 4 3 3 4 3 4 5 2 5 2 3 5 2 4 5 1 5 3 3 1 2 3 5 4 3 3 3 2 2 1 3 3 5 1 1 4 3 5 Dengan Tinggi Lahan : 287

Lampiran 4-27 ////////////////////////////////////////////////////////////////// /// IMPLEMENTASI ALGORITMA CSO PADA MASALAH PENJADWALAN /// /// LAND ALLOCATION /// /// FORM HASIL AKHIR /// ////////////////////////////////////////////////////////////////// Tinggi Minimal Dari Proses Land Allocation =222 Urutan Lahan Masuk Terbaik : 13 72 37 68 41 51 62 7 55 53 44 4 22 39 74 6 64 30 25 27 63 69 15 17 33 28 23 5 56 12 11 42 29 34 19 10 40 57 14 43 49 20 66 2 58 50 70 59 21 47 65 35 67 3 9 61 75 16 73 54 26 48 52 18 45 8 36 46 60 32 71 31 38 1 24 URAIAN BENTUK LAHAN : Lahan KE 13 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 72 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 37 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 68 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 41 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 51 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 62 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 7 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 55 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 53 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 44 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 4 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 22 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 39 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 74 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 6 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 64 MENGGUNAKAN VARIASI BENTUK KE 2

Lampiran 4-28 Lahan KE 30 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 25 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 27 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 63 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 69 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 15 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 17 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 33 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 28 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 23 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 5 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 56 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 12 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 11 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 42 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 29 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 34 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 19 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 10 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 40 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 57 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 14 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 43 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 49 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 20 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 66 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 2 MENGGUNAKAN VARIASI BENTUK KE 2

Lampiran 4-29 Lahan KE 58 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 50 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 70 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 59 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 21 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 47 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 65 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 35 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 67 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 3 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 9 MENGGUNAKAN VARIASI BENTUK KE 4 Lahan KE 61 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 75 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 16 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 73 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 54 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 26 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 48 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 52 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 18 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 45 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 8 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 36 MENGGUNAKAN VARIASI BENTUK KE 1 Lahan KE 46 MENGGUNAKAN VARIASI BENTUK KE 5 Lahan KE 60 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 32 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 71 MENGGUNAKAN VARIASI BENTUK KE 4

Lampiran 4-30 Lahan KE 31 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 38 MENGGUNAKAN VARIASI BENTUK KE 3 Lahan KE 1 MENGGUNAKAN VARIASI BENTUK KE 2 Lahan KE 24 MENGGUNAKAN VARIASI BENTUK KE 3