Tugas - MSS 3 - 1204505090 - B

64
Tugas 3 Management Support System “Artikel Teknis Management Support System” Oleh: I Putu Pande Bagus Arjaya 1204505090 Mangement Support System ( B ) Fakultas Teknik Jurusan Teknologi Informasi

description

Tugas kampus MK MSS

Transcript of Tugas - MSS 3 - 1204505090 - B

Tugas 3

Management Support System

Artikel Teknis Management Support System

Oleh:

I Putu Pande Bagus Arjaya

1204505090

Mangement Support System ( B )

Fakultas Teknik Jurusan Teknologi Informasi

Universitas Udayana

2013

1. ALGORITMA GENETIK

Algoritma genetik adalah algoritma komputasi yang diinspirasi teori evolusi yang kemudian diadopsi menjadi algoritma komputasi untuk mencari solusi suatu permasalahan dengan cara yang lebih alamiah. Salah satu aplikasi algoritma genetika adalah pada permasalahan optimasi kombinasi, yaitu mendapatkan suatu nilai solusi optimal terhadap suatu permasalahan yang mempunyai banyak kemungkinan solusi. Dalam tulisan ini akan dibahas teori dasar algoritma genetika beserta contoh aplikasinya dalam menyelesaikan suatu permasalahan optimasi kombinasi sederhana.1.1 Teori Dasar Algoritma Genetika

Algoritma genetika yang dikembangkan oleh Goldberg adalah algoritma komputasi yang diinspirasi teori evolusi Darwin yang menyatakan bahwa kelangsungan hidup suatu makhluk dipengaruhi aturan yang kuat adalah yang menang. Darwin juga menyatakan bahwa kelangsungan hidup suatu makhluk dapat dipertahankan melalui proses reproduksi, crossover, dan mutasi. Konsep dalam teori evolusi Darwin tersebut kemudian diadopsi menjadi algoritma komputasi untuk mencari solusi suatu permasalahan dengan cara yang lebih alamiah.

Sebuah solusi yang dibangkitkan dalam algoritma genetika disebut sebagai chromosome, sedangkan kumpulan chromosome-chromosome tersebut disebut sebagai populasi. Sebuah chromosome dibentuk dari komponen-komponen penyusun yang disebut sebagai gen dan nilainya dapat berupa bilangan numerik, biner, simbol ataupun karakter tergantung dari permasalahan yang ingin diselesaikan.Chromosome-chromosome tersebut akan berevolusi secara berkelanjutan yang disebut dengan generasi. Dalam tiap generasi chromosome-chromosome tersebut dievaluasi tingkat keberhasilan nilai solusinya terhadap masalah yang ingin diselesaikan (fungsi_objektif) menggunakan ukuran yang disebut dengan fitness. Untuk memilih chromosome yang tetap dipertahankan untuk generasi selanjutnya dilakukan proses yang disebut dengan seleksi. Proses seleksi chromosome menggunakan konsep aturan evolusi Darwin yang telah disebutkan sebelumnya yaitu chromosome yang mempunyai nilai fitness tinggi akan memiliki peluang lebih besar untuk terpilih lagi pada generasi selanjutnya.

Chromosome-chromosome baru yang disebut dengan offspring, dibentuk dengan cara melakukan perkawinan antar chromosome-chromosome dalam satu generasi yang disebut sebagai proses crossover. Jumlah chromosome dalam populasi yang mengalami crossover ditetukan oleh paramater yang disebut dengan crossover_rate. Mekanisme perubahan susunan unsur penyusun mahkluk hidup akibat adanya faktor alam yang disebut dengan mutasi direpresentasikan sebagai proses berubahnya satu atau lebih nilai gen dalam chromosome dengan suatu nilai acak. Jumlah gen dalam populasi yang mengalami mutasi ditentukan oleh parameter yang dinamakan mutation_rate. Setelah beberapa generasi akan dihasilkan chromosome-chromosome yang nilai gen-gennya konvergen ke suatu nilai tertentu yang merupakan solusi terbaik yang dihasilkan oleh algoritma genetika terhadap permasalahan yang ingin diselesaikan.Penggunaan prinsip genetika pada komputer dimulai pada tahun 1950 ketika beberapa ahli Biologi mengunakan komputer untuk simulasi sistem biologi. Akhir tahun 1975 John Holland dari Universitas Michigan melalui paper yang berjudul Adaption in Natural and Artificial System mengunakan konsep dasar algoritma genetika. Algoritma genetika bekerja dengan suatu populasi string dan melakukan proses pencarian nilai optimal secara parallel, dengan mengunakan operator genetika. Algoritma genetika akan melakukan rekombinasi antar individu. Algoritma genetika memiliki elemen dasar berupa string yang tersusun dari rangkaian substring (gen), yang masing-masing merupakan kode dari parameter dalam ruang solusi dimana suatu string (kromosom) menyatakan kandidat solusi. Kumpulan string dalam populasi berkembang dari generasi ke generasi melalui operator genetika. Pada setiap iterasi, individu-individu (Kromosam) dalam populasi itu akan dievolusi dan diseleksi untuk menentukan populasi pada generasi berikutnya. Populasi ini akan terus berulang sampai menemukan suatu parameter dengan nilai yang paling optimal sesuai dengan yang diinginkan. Adapun struktur umum algoritma genetika dapat diilustrasikan pada gambar berikut:

Gambar 1 : Struktur umum Algoritma Genetika

Istilah-istilah yang digunakan dalam Algoritma genetika dhampir sama dengan istilah-istilah yang dipakai dalam bidang biologi genetika, antara lain Gen, Kromosom, Populasi, Fungsi Fitness, dan operator genetika yang meliputi mutasi dan crossover.

1. GenGen adalah suatu sel dari suatu kromosom atau nilai yang terdapat dalam Algoritma genetika ini dapat dibentuk oleh sebuah byte bahkan tidak menutup kemungkinan suatu string. Gen ini mewakili sebagian kecil dari solusi permasalahan.2. KromosomIndividu dalam populasi disebut string, genotype atau kromosom-kromosom terdiri dari unit-unit yang dinamakan Gen, Karakter, Decoder. Kromosom ini dapat mewakili suatu solusi, dimana dapat diilustrasikan dalam gambar dibawah ini:

Gambar 2 : Kromosom dalam Algoritma Genetika

Untuk mempresentasikan kromosom dilakukan dengan proses encoding, dibawah ini akan dijelaskan beberapa proses encoding yang biasa digunakan dalam beberapa kasus tertentu.

3. Permutation EncodingUntuk jenis Permutation Encoding ini digunakan untuk permasalahan proses pengurutan, misalnya terdapat kasus optimasi jadwal atau pada kasus traveling salesman. Pada Permutation Encoding, setiap Gen pada kromosom berupa angka dimana dapat ditampilkan seperti gambar di bawah ini:

Gambar 3 : Permutation EncodingPermutation Encoding hanya berlaku untuk permasalahan pengurutan, untuk itu dalam kasus-kasus yang ada pada Permutation Encoding terdapat beberapa jenis crossover dan mutasi yang harus dibuat untuk mempertahankan kromosom agar tetap konsisten. Contoh penggunaan Permutation Encoding ini adalah pada kasus trvelling salesman, dimana terdapat beberapa kota dengan jarak masing-masing. Pada kasus traveling salesman ini seorang salesman harus mengunjungi semua kota yang ada, tetapi tidak harus berjalan jauh untuk mencapai seluruh kota. Permasalahanya adalah menentukan urutan kota yang akan dikunjungi untuk meminimalisasi jarak yang harus ditempuh.

4. Binary EncodingBinary encoding adalah jenis encoding yang paling sering digunakan karena kasus pertama yang ada pada Algiritma Genetik menggunakan algoritma jenis ini. Setiap kromosom pada Binary encoding merupakan bit 0 dan 1 dimana dapat ditampilkan pada gambar bawah:

Gambar 4 : Binary EncodingBinary encoding dapat memberikan banyak kemungkinan pada kromosom meskipun pada jumlah Gen yang sedikit. Dilain pihak jenis encoding ini tidak cukup natural untuk beberapa kasus tertentu dan kadang-kadang harus dilakukan koreksi setelah melakukan crossover atau mutasi, contoh penggunaan Binary encoding adalah pada permasalahan knapsack atau pengepakan, dimana ada beberapa barang dengna jumlah dan ukuran masing-masing dan knapsack harus memberikan kapasitasnya untuk barang-barang tersebut, permasalahanya adalah bagaimana memilih barang untuk memaksimalkan jumlah barang sehingga dapat ditampung oleh knapsack tanpa harus menambah kapasitasnya.

5. CrossoverCrossover adalah operator algoritma genetika yang membutuhkan parameter dua kromosom. Dua buah kromosom tersebut disebut kromosom induk. Operator ini akan menghasilkan dua buah kromosom baru. Ada beberapa jenis crossover yang sering digunakan dalam algoritma genetika antara lain:a. Ordered Based CrossoverOrdered based Crossover diawali dengan menentukan posisi-posisi gen secara random pada induk pertama misalnya didapatkan posisi 3,4,6 dan 9 pada induk.P1= ( 1 2 3 4 5 6 7 8 9 ) , P1= ( 4 5 2 1 8 7 6 9 3 )

Kemudian Gen-gen pada induk yang berada tepat dibawah posisi-posisi tersebut dicatat yaitu 2,1,7 dan 3 untuk Q1 disalin dari P1 dengan menghilangkan angka-angka 2,1,7 dan3 tersebut sehingga menjadiQ1= ( x x x 4 5 6 x 8 9 )Subset 2,1,7, dan 3 ini di masukan dalam Q1 dimulai dari kiri dengan mempertahankan urutan sehingga menjadi

Q1 = (2 1 7 4 5 6 3 8 9)Untuk Q2 diperlukan sama hanya perlu meukar induk pertama menjadi induk kedua dan induk kedua menjadi induk pertama yang menjadi

Q2 = (3 5 2 1 8 7 4 6 9)

b. One-Point CrossoverContoh kerja operator ini adalah dengan menentukan crossover point (gen tertentu). Kromosom baru pertama berisi gen pertama sampai gen crossover point dari kromosom induk pertama ditambah dengan gen dari crossover point sampai gen terakhir dari kromosom induk kedua. Kromosom baru kedua berisi gen pertama sampai gen crossover point dari induk kedua ditambahkan dengan gen dari crossover point sampai gen dari kromosom induk pertama. Adapun metode crossover ini dapat diilustrasikan pada gambar berikut:

Gambar 5 : Proses crossover dengan satu crossover point

Dari ilustrasi di atas maka contoh penerapan metode One-Point Crossover adalah sebagai berikut:Parent 1: 1 2 3 4 5 | 6 7 8 9Parent 2: 4 5 3 6 8 | 9 7 2 1Setelah proses crossover turunan yang dapat dihasilkan adalah dari kedua parent diatas adalah:Parent 1: 1 2 3 4 5 | 9 7 2 1Parent 2: 4 5 3 6 8 | 6 7 8 9

c. Two-Point CrossoverProses Two-Point Crossover hampir sama dengan prosedur One-Point Crossover, kecuali pada Two-Point Crossover harus dipilih dua crossover point dan hanya gen yang ada di antara kedua crossover point itu yang akan ditukarkan.Metode ini dapat menjadi bagian awal dan akhir dari kromosom dan hanya menukar bagian tengahnya saja.d. N-Point CrossoverProsedur N-Point Crossover hampir sama baik dengan prosedur one-point crossover maupun two-point crossover, hanya saja dalam n-point crossover ini harus dipilih n crossover point dan hanya gen di antara crossover point ganjil dan genap yang dapat ditukarkan sedangkan gen diantara genap dan ganjil operator crossover tidak berubah. Atau dengan kata lain harus dipilih posisi n dan hanya bit antara ganjil dan genap posisi crossover yang akan dihilangkan.Contoh: P1= 9 7 6 3 2 8 , P2= 2 1 9 7 4 5 Jika didapatkan angka random untuk n=3 dan diacak 1,2 dan 4 sebagai posisi dari gen yang akan di crossover, didapatkan kromosom turunan:T1= 9 1 6 3 4 5T2= 2 7 9 7 2 86. MutasiMutasi adalah operator yang membutuhkan satu perameter. Kromosom operator ini merupakan nilai suatu gen dari sebuah kromosom sehingga kromosom yang baru ini berbeda dengan kromosom yang lama. Sekumpulan kejadian dengan suatu nilai pelanggaran maksimal dapat dengan mudah dihilangkan selama evaluasi fitness tujuan dari proses mutasi ini, untuk mempertahankan kehilangan permanent dari suatu bit atau gen (Whitley,1993:16). Seluruh proses mutasi ini menjanjikan keuntungan melalui pengarahan mutasi kemana mutasi ini tersebut sangat dibutuhkan. Oprator mutasi digunakan untuk melakukan modifikasi satu atau lebih dari nilai gen dalam individu yang sama. Mutasi memastikan bahwa probabilitas untuk pencarian pada daerah tertentu dalam persoalan tidak akan pernah nol dan mencegah kehilangan total materi genetika setelah pemilihan dan penghapusan. Mutasi ini bukanlah operator genetika yang utama, yang dilakukan secara acak pada gen dengan kemungkinan yang lebih kecil. Metode ini disebut metasi gen (gene mutation) terdapat metode lain yaitu: order mutation dimana dimungkinkan untuk menghilangkan seluruh gen dari dua gen yang dipilih secara acak. Terdapat empat operator yang biasa digunakan untuk permasalahan penjadwalan antara lain:a. Violation Directed Mutation (VDM)Memilih sutatu kejadian dengan suatu nilai pelanggaran maksimal, dan secara acak mengubah waktu penugasan.b. Event Freeing Mutation (EFM)Memilih suatu kejadian dengan sauatu pelanggaran maksimal, kemudian memberi waktu baru yang mana akan mengurangi secara maksimal angka ini.Secara stokastik memilih suatu kejadian ,bias melalui kejadian itu dengan nilai pelanggaran yang tinggi, kemudian secara stokastik memilh waktu baru untuk kejadian ini, bisa melalui waktu yang mana akan mengurangi secara maksimal angka pelanggaran kejadian.7. Fungsi ObjektifFungsi objektif adalah tujuan dari optimasi permasalahan. Biasanya fungsi objektif ini hanya dua macam yaitu memaksimalkan dan meminimalkan.

8. Model Pengembangan Algoritma GenetikaAlgoritma genetika menyelesaikan permasalahan dengan cara menghasilkan, mengubah dan mengevaluasi kandidat solusi dari permasalahan tersebut. Awalnya sebuah populasi acak yang terdiri dari kromosom-kromosom di hasilkan kemudian kromosom-kromosom itu diubah oleh operator genetika yaitu crossover dan mutasi, kemudian kromosom-kromosom tersebut dievaluasi oleh fungsi fitness.Terdapat beberapa cara dalam menentukan inisialisasi diantaranya biner dan non biner. Untuk inisialisasi masalah penjadwalan yang paling sederhana dapat dilihat sebagai masalah penetapan V even atau kejadian dalam S selang waktu dengan kata lain definisi dari masalah penjadwalan adalah:E adalah definisi dari sejumlah V even (e1.e2,.en)T adalah definisi dari sejumlah S selang waktu (t1,t2,tn)

Berdasarkan definisi tersebut maka permasalahan penjadwalan tersebut ditetapkan sebagai pasangan terurut (a,b) yang berarti a E dan b T, dengan intepretasi bahwa even a terjadi pada selang waktu b.

Terdapat berbagai versi pengkodean masalah penjadwalan diantaranya adalah representasi klasik dan representasi Tuples. Dalam representasi kalsik digunakan matrik dua dimensi. Bagian kolom merupakan bagian produksi dan bagian baris merupakan interval waktu. Isi dari matrik M(i,j) adalah staf atau karyawan yang mengerjakan WOdan jumlah shiftnya. Jadi matrik M(i,j) dibaca sebagai karyawan dengan shift m mengerjakan WOpada bagian produksi.

Metode penentuan lokasi awal sangat berpengaruh terhadap kinerja algoritma genetika. Ada dua cara yang bisa digunakan untuk menghasilkan dua populasi awal. Cara yang pertama dengan menghasilkan seluruh kromosom secara acak. Sedangkan cara yang kedua sebagain kromosom dihasilkan dengan metode tertentu, yang dikenal dengan populasi awal terarah. 9. Fungsi Evaluasi atau Fungsi FitnessFungsi adalah salah satu aspek terpenting dalam algoritma genetika. Fungsi evaluasi yang baik harus mampu menghasilkan suatu kurva silo. Siklus yang cukup baik dan dapat mewakili permasalahan yang dihadapi.Pengumpulan dini dalam algoritma genetika terjadi ketika beberapa kromosom dengan nilai fitness yang tinggi (tapi bukan optimal) memdominasi populasi dengan mengakibatkan algoritma genetika konvergen pada local optima. Ketika populasi konvergen kemampuan algoritma genetika untuk mencari solusi manjadi lebih baik. Crossover antara kromosom yang hampir identik menghasilkan kromosom baru yang identik dalam operasi ini hanya operasi mutasi yang mampu menghasilkan kromosom yang relatif baru dan merupakan cara untuk menghidarkan kromosom yang super mendominasi populasi.

CONTOH PERHITUNGAN METODE ALGORITMA GENETIK

Kasus :

Permasalahan Pada Pengkombinasian VariabelKeterangan :

Misalkan ada persamaan a+2b+3c+4d = 30, kita mencari nilai a, b, c, dan d yang memenuhi persamaan diatas. Kita mencoba menggunakan algoritma genetika untuk menyelesaikan permasalahan diatas. Diagram alir dari algoritma genetika untuk menyelesaikan permasalahan diatas dapat dilihat pada Gambar 6.

Gambar 6 : Diagram Alir Algoritma Genetika

Penjelasan mengenai langkah-langkah penyelesaian permasalahan diatas menggunakan algoritma genetika adalah sebagai berikut:1. Pembentukan ChromosomeKarena yang dicari adalah nilai a, b, c, d maka variabel a, b, c, d dijadikan sebagai gen-genmpembentuk chromosome. Batasan nilai variabel a adalah bilangan integer 0 sampai 30. Sedangkan batasan nilai variabel b, c, dan d adalah bilangan integer 0 sampai 10.2. InisialisasiProses inisialisasi dilakukan dengan cara memberikan nilai awal gen-gen dengan nilai acak sesuai batasan yang telah ditentukan.mMisalkan kita tentukan jumlah populasi adalah 6, maka:

Chromosome[1] = [a;b;c;d] = [12;05;03;08]

Chromosome[2] = [a;b;c;d] = [02;01;08;03]

Chromosome[3] = [a;b;c;d] = [10;04;03;04]

Chromosome[4] = [a;b;c;d] = [20;01;10;06]

Chromosome[5] = [a;b;c;d] = [01;04;03;09]

Chromosome[6] = [a;b;c;d] = [20;05;07;01]3. Evaluasi ChromosomePermasalahan yang ingin diselesaikan adalah nilai variabel a, b, c, dan d yang memenuhi persamaan a+2b+3c+4d = 30, maka fungsi_objektif yang dapat digunakan untuk mendapatkan solusi adalah fungsi_objektif(chromosome) = | (a+2b+3c+4d) 30 |Kita hitung fungsi_objektif dari chromosome yang telah dibangkitkan:

fungsi_objektif(chromosome[1]) = Abs(( 12 + 2*5 + 3*3 + 4*8 ) - 30)

= Abs((12 + 10 + 9 + 32 ) - 30)

= Abs(63 - 30)

= 33

fungsi_objektif(chromosome[2]) = Abs(( 2 + 2*1 + 3*8 + 4*3 ) - 30)

= Abs(( 2 + 2 + 24 + 12 ) - 30)

= Abs(40 - 30)

= 10

fungsi_objektif(chromosome[3]) = Abs(( 10 + 2*4 + 3*3 + 4*4 ) - 30)

= Abs(( 10 + 8 + 9 + 16 ) - 30)

= Abs(43 - 30)

= 13

fungsi_objektif(chromosome[4]) = Abs(( 20 + 2*1 + 3*10 + 4*6 ) - 30)

= Abs(( 20 + 2 + 30 + 24 ) - 30)

= Abs(76 - 30)

= 46

fungsi_objektif(chromosome[5]) = Abs(( 1 + 2*4 + 3*3 + 4*9 ) - 30)

= Abs(( 1 + 8 + 9 + 36 ) - 30)

= Abs(54 - 30)

= 24

fungsi_objektif(chromosome[6]) = Abs(( 20 + 2*5 + 3*7 + 4*1 ) - 30)

= Abs(( 20 + 10 + 21 + 4) - 30)

= Abs(55 - 30)

= 25

Rata-rata dari fungsi objektif adalah:

rata-rata = (33+10+13+46+24+25)/6

= 151 / 6

= 25.1674. Seleksi ChromosomeProses seleksi dilakukan dengan cara membuat chromosome yang mempunyai fungsi_objektif kecil mempunyai kemungkinan terpilih yang besar atau mempunyai nilai probabilitas yang tinggi. Untuk itu dapat digunakan fungsi fitness = (1/(1+fungsi_objektif)), fungsi_objektif perlu ditambah 1 untuk menghindari kesalahan program yang diakibatkan pembagian oleh 0.fitness[1] = 1 / (fungsi_objektif[1]+1)

= 1 / 34

= 0.0294

fitness[2] = 1 / (fungsi_objektif[2]+1)

= 1 / 11

= 0.0909

fitness[3] = 1 / (fungsi_objektif[3]+1)

= 1 / 14

= 0.0714

fitness[4] = 1 / (fungsi_objektif[4]+1)

= 1 / 47

= 0.0212

fitness[5] = 1 / (fungsi_objektif[5]+1)

= 1 / 25

= 0.0400

fitness[6] = 1 / (fungsi_objektif[6]+1)

= 1 / 26

= 0.0385

total_fitness = 0.0294 + 0.0909 + 0.0714 + 0.0212 + 0.04 + 0.0385

= 0.2914

Rumus untuk mencari probabilitas: P[i] = fitness[i] / total_fitness

P[1] = 0.0294 / 0.2914

= 0.1009

P[2] = 0. 0909 / 0.2914

= 0.3119

P[3] = 0. 0714 / 0.2914

= 0.2450

P[4] = 0. 0212 / 0.2914

= 0.0728

P[5] = 0.04 / 0.2914

= 0.1373

P[6] = 0.0385 / 0.2914

= 0.1321

Dari probabilitas diatas dapat kita lihat kalau chromosome ke 2 yang mempunyai fitness paling besar maka chromosome tersebut mempunyai probabilitas untuk terpilih pada generasi selanjutnya lebih besar dari chromosome lainnya. Untuk proses seleksi kita gunakan roulette wheel, untuk itu kita harus mencari dahulu nilai kumulatif probabilitasnya:

C[1] = 0.1009

C[2] = 0.1009+ 0.3119 = 0.4128

C[3] = 0.1009+ 0.3119 + 0.2450 = 0.6578

C[4] = 0.1009+ 0.3119 + 0.2450 + 0.0728 = 0.7306

C[5] = 0.1009+ 0.3119 + 0.2450 + 0.0728 + 0.1373 = 0.8679

C[6] = 0.1009+ 0.3119 + 0.2450 + 0.0728 + 0.1373 + 0.1321 = 1

Setelah dihitung cumulative probabilitasnya maka proses seleksi menggunakan roulete-wheel dapat dilakukan. Prosesnya adalah dengan membangkitkan bilangan acak R dalam range 0-1.

Jika R[k] < C[1] maka pilih chromosome 1 sebagai induk, selain itu pilih chromosome ke-k sebagai induk dengan syarat C[k-1] < R < C[k]. Kita putar roulete wheel sebanyak jumlah populasi yaitu 6 kali (bangkitkan bilangan acak R) dan pada tiap putaran, kita pilih satu chromosome untuk populasi baru. Misal:

R[1] = 0.201

R[2] = 0.284

R[3] = 0.009

R[4] = 0.822

R[5] = 0.398

R[6] = 0.501

Angka acak pertama R[1] adalah lebih besar dari C[1] dan lebih kecil daripada C[2] maka pilih chromosome[2] sebagai chromosome pada populasi baru, dari bilangan acak yang telah dibangkitkan diatas maka populasi chromosome baru hasil proses seleksi adalah:

chromosome[1] = chromosome[2]

chromosome[2] = chromosome[2]

chromosome[3] = chromosome[1]

chromosome[4] = chromosome[5]

chromosome[5] = chromosome[2]

chromosome[6] = chromosome[3]

Chromosome baru hasil proses seleksi:

chromosome[1] = [02;01;08;03]

chromosome[2] = [02;01;08;03]

chromosome[3] = [12;05;03;08]

chromosome[4] = [01;04;03;09]

chromosome[5] = [02;01;08;03]

chromosome[6] = [10;04;03;04]5. CrossoverSetelah proses seleksi maka proses selanjutnya adalah proses crossover. Metode yang digunakan salah satunya adalah one-cut point, yaitu memilih secara acak satu posisi dalam chromosome induk kemudian saling menukar gen. Chromosome yang dijadikan induk dipilih secara acak dan jumlah chromosome yang mengalami crossover dipengaruhi oleh parameter crossover_rate ( c ). Pseudo-code untuk proses crossover adalah sebagai berikut:begin

k 0;

while(k< chromosome[4]

chromosome[4] >< chromosome[5]

chromosome[5] >< chromosome[1]

Posisi cut-point crossover dipilih menggunakan bilangan acak 1-3 sebanyak jumlah crossover yang terjadi, missal :C[1] = 1

C[2] = 1

C[3] = 2

offspring[1] = chromosome[1] >< chromosome[4]

= [02;01;08;03] >< [01;04;03;09]

= [02;04;03;09]

offspring[4] = Chromosome[4] >< Chromosome[5]

= [01;04;03;09] >< [02;01;08;03]

= [01;01;08;03]

offspring[5] = Chromosome[5] >< Chromosome[1]

= [02;01;08;03] >< [02;01;08;03]

= [02;01;08;03]Dengan demikian populasi Chromosome setelah mengalami proses crossover menjadi:

chromosome[1] = [02;04;03;09]

chromosome[2] = [02;01;08;03]

chromosome[3] = [12;05;03;08]

chromosome[4] = [01;01;08;03]

chromosome[5] = [02;01;08;03]

chromosome[6] = [10;04;03;04]6. MutasiJumlah chromosome yang mengalami mutasi dalam satu populasi ditentukan oleh parameter mutation_rate. Proses mutasi dilakukan dengan cara mengganti satu gen yang terpilih secara acak dengan suatu nilai baru yang didapat secara acak.

Prosesnya adalah, pertama kita hitung dahulu panjang total gen yang ada dalam satu populasi. Dalam kasus ini panjang total gen adalah total_gen = (jumlah gen dalam chromosome) * jumlah populasi = 4 * 6 = 24Untuk memilih posisi gen yang mengalami mutasi dilakukan dengan cara membangkitkan bilangan integer acak antara 1 sampai total_gen, yaitu 1 sampai 24. Jika bilangan acak yang kita bangkitkan lebih kecil daripada variabel mutation_rate (m) maka pilih posisi tersebut sebagai sub-chromosome yang mengalami mutasi. Misal m kita tentukan 10% maka diharapkan ada 10% dari total_gen yang mengalami populasi : jumlah mutasi = 0.1 * 24 = 2.4 = 2

Misalkan setelah kita bangkitkan bilangan acak terpilih posisi gen 12 dan 18 yang mengalami mutasi. Dengan demikian yang akan mengalami mutasi adalah chromosome ke-3 gen nomor 4 dan Chromosome ke-5 gen nomor 2. Maka nilai gen pada posisi tersebut kita ganti dengan bilangan acak 0-30.

Misalkan bilangan acak yang terbangkitkan adalah 2 dan 5. Maka populasi chromosome setelah mengalami proses mutasi adalah:

chromosome[1] = [02;04;03;09]

chromosome[2] = [02;01;08;03]

chromosome[3] = [12;05;03;02]

chromosome[4] = [01;01;08;03]

chromosome[5] = [02;05;08;03]

chromosome[6] = [10;04;03;04]Setelah proses mutasi maka kita telah menyelesaikan satu iterasi dalam algoritma genetika atau disebut dengan satu generasi. Maka fungsi_objective setelah satu generasi adalah:

chromosome[1] = [02;04;03;09]

fungsi_objektif[1] = Abs(( 2 + 2*4 + 3*3 + 4*9 ) - 30)

= Abs(( 2 + 8 + 9 + 36 ) - 30)

= Abs( 55 - 30)

= 25

chromosome[2] = [02;01;08;03]

fungsi_objektif[2] = Abs(( 2 + 2*1 + 3*8 + 4*3 ) - 30)

= Abs(( 2 + 2 + 24 + 12 ) - 30)

= Abs(40 - 30)

= 10

chromosome[3] = [12;05;03;02]

fungsi_objektif[3] = Abs(( 12 + 2*5 + 3*3 + 4*2 ) - 30)

= Abs(( 12 + 10 + 9 + 8 ) - 30)

= Abs(39 - 30)

= 9chromosome[4] = [01;01;08;03]

fungsi_objektif[4] = Abs(( 1 + 2*1 + 3*8 + 4*3 ) - 30)

= Abs(( 1 + 2 + 24 + 12 ) - 30)

= Abs(39 - 30)

= 9

chromosome[5] = [02;05;08;03]

fungsi_objektif[5] = Abs(( 2 + 2*5 + 3*8 + 4*3 ) - 30)

= Abs(( 2 + 10 + 24 + 12 ) - 30)

= Abs(48 - 30)

= 18

chromosome[6] = [10;04;03;04]

fungsi_objektif[6] = Abs(( 10 + 2*4 + 3*3 + 4*4 ) - 30)

= Abs(( 10 + 8 + 9 + 16 ) - 30)

= Abs(43 - 30)

= 13

Rata-rata fungsi objektif setelah satu generasi adalah:

rata-rata = ( 25 + 10 + 9 + 9 + 18 + 13) / 6

= 84 / 6

= 14.0

Dapat dilihat dari hasil perhitungan fungsi objektif diatas bahwa setelah satu generasi, nilai hasil rata-rata fungsi_objektif lebih menurun dibandingkan hasil fungsi_objektif pada saat sebelum mengalami seleksi, crossover dan mutasi. Hal ini menunjukkan bahwa chromosome atau solusi yang dihasilkan setelah satu generasi lebih baik dibandingkan generasi sebelumnya. Maka pada generasi selanjutnya chromosome-chromosome yang baru adalah:

chromosome[1] = [02;04;03;09]

chromosome[2] = [02;01;08;03]

chromosome[3] = [12;05;03;02]

chromosome[4] = [01;01;08;03]

chromosome[5] = [02;05;08;03]

chromosome[6] = [10;04;03;04]

Chromosome-chromosome ini akan mengalami proses yang sama seperti generasi sebelumnya yaitu proses evaluasi, seleksi, crossover dan mutasi yang kemudian akan menghasilkan chromosome-chromosome baru untuk generasi yang selanjutnya. Proses ini akan berulang sampai sejumlah generasi yang telah ditetapkan sebelumnya. Setelah 50 generasi didapatkan chromosome yang terbaik adalah:

Chromosome = [07;05;03;01]

Jika didekode maka : a=7 ; b=5 ; c=3 ; d=1

Jika dihitung terhadap persamaan f = a+2b+3c+4d ; 7 + (2*5) + (3*3) + (4*1) = 32. METODE LOGIKA FUZZYFuzzy secara bahasa diartikan sebagai kabur atau samar-samar. Suatu nilai dapat bernilai besar atau salah secara bersamaan. Dalam fuzzy dikenal derajat keanggotaan yang memiliki rentang nilai 0 (nol) hingga 1(satu). Berbeda dengan himpunan tegas yang memiliki nilai 1 atau 0 (ya atau tidak).

Logika Fuzzy merupakan seuatu logika yang memiliki nilai kekaburan atau kesamaran (fuzzyness) antara benar atau salah. Dalam teori logika fuzzy suatu nilai bias bernilai benar atau salah secara bersama. Namun berapa besar keberadaan dan kesalahan suatu tergantung pada bobot keanggotaan yang dimilikinya. Logika fuzzy memiliki derajat keanggotaan dalam rentang 0 hingga 1. Berbeda dengan logika digital yang hanya memiliki dua nilai 1 atau 0. Logika fuzzy digunakan untuk menterjemahkan suatu besaran yang diekspresikan menggunakan bahasa (linguistic), misalkan besaran kecepatan laju kendaraanyang diekspresikan dengan pelan, agak cepat, cepat, dan sangat cepat. Dan logika fuzzy menunjukan sejauh mana suatu nilai itu benar dan sejauh manasuatu nilai itu salah. Tidak seperti logika klasik (scrisp)/ tegas, suatu nilaihanya mempunyai 2 kemungkinan yaitu merupakan suatu anggota himpunanatau tidak. Derajat keanggotaan 0 (nol) artinya nilai bukan merupakan anggota himpunan dan 1 (satu) berarti nilai tersebut adalah anggota himpunan.

Logika fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input kedalam suatu ruang output, mempunyai nilai kontinyu. Fuzzy dinyatakan dalam derajat dari suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu sesuatu dapat dikatakan sebagian benar dan sebagian salah pada waktu yang sama. Logika Fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat keabuan dan juga hitam dan putih, dan dalam bentuk linguistik, konsep tidak pasti seperti "sedikit", "lumayan" dan "sangat" (Zadeh 1965).Kelebihan dariteori logika fuzzy adalah kemampuan dalam proses penalaran secara bahasa(linguistic reasoning). Sehingga dalam perancangannya tidak memerlukan persamaan matematik dari objek yang akan dikendalikan.

Logika Fuzzy merupakan logika yang menyimpulkan atas presentase, dimana dasar dari logika tersebut adalah suatumteori himpunan yang berdasarkan presentase anggota-anggota dari semesta yang dikelompokkan dan membentuk suatu himpunan. Presentase anggota-anggota himpunan yang dipandang sebagai suatu deret hitung tertentu tersebut kemudian dihitung untuk dijadikan asas dasar pengambilan kesimpulan dari variabel kondisi yang menjadi masukkan (input).Gagasan dasar dari logika Fuzzy adalah derajat keanggotaan, dimana derajat tersebut merupakan suatu presentase dari himpunan Crisp sebagai masukan (input) dengan memakai logika Fuzzy menghasilkan suatu himpunan Crisp hasil (output) yang dimana tidak dapat dijabarkan dalam logika Boolean. Seperti yang sudah dijelaskan sebelumnya, bahwa logika Fuzzy meniru cara berpikir manusia yang disebut nalar, dimana nalar dapat menjelaskan dan mengidentifikasi sesuatu secara otomatis.Logika Fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output. Untuk sistem yang sangat rumit, penggunaan logika fuzzy (fuzzy logic) adalah salah satu pemecahannya. Sistem tradisional dirancang untuk mengontrol keluaran tunggal yang berasal dari beberapa masukan yang tidak saling berhubungan. Karena ketidaktergantungan ini, penambahan masukan yang baru akan memperumit proses kontrol dan membutuhkan proses perhitungan kembali dari semua fungsi . Kebalikannya, penambahan masukan baru pada sistem fuzzy, yaitu sistem yang bekerja berdasarkan prinsip-prinsip logika fuzzy, hanya membutuhkan penambahan fungsi keanggotaan yang baru dan aturan-aturan yang berhubungan dengannya.

Secara umum, sistem fuzzy sangat cocok untuk penalaran pendekatan terutama untuk sistem yang menangani masalah-masalah yang sulit didefinisikan dengan menggunakan model matematis Misalkan, nilai masukan dan parameter sebuah sistem bersifat kurang akurat atau kurang jelas, sehingga sulit mendefinisikan model matematikanya.

Sistem fuzzy mempunyai beberapa keuntungan bila dibandingkan dengan sistem tradisional, misalkan pada jumlah aturan yang dipergunakan. Pemrosesan awal sejumlah besar nilai menjadi sebuah nilai derajat keanggotaan pada sistem fuzzy mengurangi jumlah nilai menjadi sebuah nilai derajat keanggotaan pada sistem fuzzy mengurangi jumlah nilai yang harus dipergunakan pengontrol untuk membuat suatu keputusan. Keuntungan lainnya adalah sistem fuzzy mempunyai kemampuan penalaran yang mirip dengan kemampuan penalaran manusia. Hal ini disebabkan karena sistem fuzzy mempunyai kemampuan untuk memberikan respon berdasarkan informasi yang bersifat kualitatif, tidak akurat, dan ambigu.

Ada beberapa alasan penggunaan Logika Fuzzy, yaitu sebagai berikut :

1. Logika Fuzzy sangat fleksibel.

2. Logika Fuzzy memiliki toleransi.

3. Konsep logika fuzzy mudah dimengerti. Konsep matematis yang mendasari penalaran fuzzy sangat sederhana dan mudah dimengerti.

4. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks.

5. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan.

6. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional.

7. Logika fuzzy didasarkan pada bahasa alami.

Kalau himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu himpunan A, yang sering ditulis dengan A(x), memiliki dua kemungkinan, yaitu :

Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan. Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.Beberapa hal yang perlu diketahui dalam memahami sistem fuzzy, yaitu sebagai berikut :

a. Varibel FuzzyVariabel fuzzy merupakan variabel yang hendak dibahas dalam suatu sistem fuzzy. Contoh: umur, temperatur, permintaan, dsb.

b. Himpunan FuzzyHimpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy.

c. Semesta PembicaraanSemesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai semesta pembicaraan dapat berupa bilangan positif maupun negatif. Adakalanya nilai semesta pembicaraan ini tidak dibatasi batas akhirnya.

d. DomainDomain himpunann fuzzy adalah keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy.

CONTOH PERHITUNGAN METODE FUZZY LOGIC

Perhitungan menggunakan metode mamdani (metode fuzzy logic), disebut juga metode MAX-MIN. Untuk mendapatkan output melalui 4 tahapan sebagai berikut :1. Pembentukan himpunan fuzzy.2. Aplikasi Fungsi Implikasi (aturan) : Mamdani menggunakan fungsi Implikasi Min.3. Komposisi Aturan : Mamdani dapat menggunakan 3 komposisi aturan, yaitu : max, additive, or.4. Penegasan (defuzzy) : Hasil dari himpunan komposisi, perlu diterjemahkan menjadi nilai crisp sebagai hasil akhir.Terdapat beberapa metode defuzzifikasi yaitu : Metode Centroid, Metode Bisektor, Metode Mean of Maximum, Metode Largest of Maximum dan Metode Smallest of Maximum.

Kasus :

Sebuah perusahaan makanan kaleng akan memproduksi makanan jenis ABC. Dari data 1 bulan terakhir, PERMINTAAN TERBESAR mencapai 5000 kemasan/hari, dan PERMINTAAN TERKECIL 1000 kemasan/hari. PERSEDIAAN

TERBANYAK digudang sampai 600 kemasan/hari, dan PERSEDIAAN TERKECIL mencapai 100 kemasan/hari. Dengan segala keterbatasan kemampuan PRODUKSI TERBANYAK adalah 7000 kemasan/hari, dan agar efisien PRODUKSI TERKECIL adalah 2000 kemasan/hari. Dalam produksi perusahaan menggunakan aturan :

R1:JIKA permintaan TURUN dan persediaan BANYAK maka produksi BERKURANG

R2:JIKA permintaan TURUN dan persediaan SEDIKIT maka produksi BERKURANG

R3:JIKA permintaan NAIK dan persediaan BANYAK maka produksi BERTAMBAH

R4:JIKA permintaan NAIK dan persediaan SEDIKIT maka produksi BERTAMBAH

Berapa harus diproduki jika PERMINTAAN 4000 kemasan dan PERSEDIAAN 300 kemasan.

Solusi :

Terdapat 3 variabel fuzzy yaitu (1) permintaan, (2) persediaan, dan (3) produksi PERMINTAANTerdiri dari 2 himpunan fuzzy, yaitu (1) TURUN, dan (2) NAIK

Diketahui :

Permintaan terendah adalah 1000 kemasan/hari

Permintaan tertinggi adalah 5000 kemasan/hari

Permintaan permasalahan = 4000 kemasan

PERSEDIAAN

Terdiri dari 2 himpunan fuzzy, yaitu (1) SEDIKIT, dan (2) BANYAK

Diketahui :

Persediaan terendah adalah 100 kemasan/hari

Persediaan tertinggi adalah 600 kemasan/hari

Persediaan permasalahan = 300 kemasan

PRODUKSI

Terdiri dari 2 himpunan fuzzy, yaitu (1) BERKURANG, dan (2) BERTAMBAH

Diketahui :

Produksi terendah adalah 2000 kemasan/hari

Produksi tertinggi adalah 7000 kemasan/hari

Produksi permasalahan = ditanyakan ?? kemasan

Cari Nilai Produksi Z, dengan fungsi implikasi MIN

Permintaan x

Persediaan y

Di dapat fungsi keanggotaan hasil komposisi adalah sebagai berikut :

DIFUZZIFIKASI

Dengan Metode Centroid hitung momen tiap area

Hitung luas masing-masing area

A1 = 3250 * 0,25 = 812,5

A3 = (7000 5000) * 0,6 = 1200

Sehingga

3. METODE JARINGAN SARAF

Jaringan saraf yaitu sistem dengan kemampuan pengenalan pola yang sangat kuat. Jaringan saraf yang merupakan jenis ke-4 dari jaringan dasar terdapat hampir di seluruh jaringan tubuh sebagai jaringan komunikasi. Dalam melaksanakan fungsinya, jaringan saraf mampu menerima rangsang dari lingkungannya, mengubah rangsang tersebut menjadi impuls, meneruskan impuls tersebut menuju pusat dan akhirnya pusat akan memberikan jawaban atas rangsang tersebut. Rangkaian kegiatan tersebut dapat terselenggara oleh karena bentuk sel saraf yang khas yaitu mempunyai tonjolan yang panjang dan bercabang-cabang. Selain berkemampuan utama dalam merambatkan impuls, sejenis sel saraf berkemampuan bersekresi seperti halnya sel kelenjar endokrin. Sel saraf demikian dimasukkan dalam kategori neroen-dokrin yang sekaligus menjadi penghubung antara sistem saraf dan sistem endokrin. Jaringan saraf sebagai suatu sistem komunikasi biasanya dibagi menjadi, Systema nervorum centrale dan Systema nervorum periferum.

Jaringan syaraf tiruan (artifical neural network) adalah sistem komputasi yang arsitektur dan operasinya diilhami dari pengetahuan tentang sel syaraf biologis di dalam otak. Jaringan syaraf tiruan merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba menstimulasi proses pembelajaran pada otak manusia tersebut. Jaringan syaraf tiruan dapat digambarkan sebagai model matematis dan komputasi untuk fungsi aproksimasi non-linear, klasifikasi data cluster dan regresi non-parametrik atau sebuah simulasi dari koleksi model jaringan syaraf biologi.

Model jaringan syaraf ditunjukkan dengan kemampuannya dalam emulasi, analisis, prediksi dan asosiasi. Kemampuan yang dimiliki jaringan syaraf tiruan dapat digunakan untuk belajar dan menghasilkan aturan atau operasi dari beberapa contoh atau input yang dimasukkan dan membuat prediksi tentang kemungkinan output yang akan muncul atau menyimpan karakteristik input yang diberikan kepada jaringan syaraf tiruan. Salah satu organisasi yang sering digunakan dalam paradigma jaringan syaraf tiruan adalah perambatan galat mundur atau backpropagation.CONTOH PERHITUNGAN METODE JARINGAN SARAF

Kasus :

Peramalan Penjualan Mobil Menggunakan Jaringan Syaraf Tiruan

Perencanaan Sistem :Arsitektur jaringan syaraf tiruan yang dibangun terdiri dari beberapa lapisan, yaitu : lapisan masukan (layer input), satu lapisan tersembunyi (layer hidden), dan lapisan keluaran (layer output). Penghubung setiap lapisan adalah bobot.

Tidak

Ya

Gambar 7 : Alur Flowchart Jaringan Syaraf Tiruan

Proses pembelajaran sendiri diawali dari proses feedforward, dan kemudian dilanjutkan pada proses backpropagation. Setelah proses backpropagation, akan dilakukan pengecekan apakah nilai target error telah dicapai, jika target error telah dicapai, maka proses pembelajaran selesai, yang menghasilkan koreksi dari bobot jaringan. Jika tidak maka akan kembali ke proses feedforward. Hal ini akan terus berlangsung sampai menemukan nilai epoch maksimum.Unit input dilambangkan dengan variabel x, hidden variabel z dan nilai ouput dilambangkan dengan variabel y, sedangkan nilai bobot antara x dan z dilambangkan dengan variabel v dan nilai bobot antara z dan y dilambangkan variabel w.

Gambar 8 : Rancangan Jaringan Syaraf Tiruan BackpropagationProsedur Perancangan :Terdapat dua macam prosedur perancangan, yaitu : prosedur pelatihan (training) dan validasi.

1. Prosedur training adalah prosedur untuk melakukan pembelajaran terhadap pola-pola yang akan dikenali. Proses ini dilakukan dengan menggunakan data training. Proses ini berhenti jika MSE lebih kecil dari error yang ditetapkan atau epoch yang telah ditentukan user telah tercapai sehingga didapatkan bobot-bobot neuron yang diharapkan. Epoch (iterasi) adalah satu set putaran vector-vektor pembelajaran. Beberapa epoch diperlukan untuk pembelajaran sebuah backpropagation sehingga kesalahan mendekati 0 (nol).2. Prosedur validasi dengan menggunakan faktor kepastian Proses ini menggunakan bobot JST yang diperoleh dari proses training untuk menguji data testing yang ada, setelah data dilakukan prosedur peramalan, hasil dihitung dengan faktor kepastian untuk mengetahui tingkat kepercayaan terhadap data yang diolah.

Penyusunan Pola :Penyusunan pola data peramalan dengan memasukkan data-data literatur yang digunakan. Data literatur yang digunakan adalah laporan data penjualan mobil secara nasional yang di peroleh dari data gabungan industry kendaraan Indonesia (GAIKINDO), sedangkan untuk jumlah penjualan dealer menggunakan data yang bersumber dari astra auto 2000 cabang Depok.

Data yang telah di input selanjutnya akan dilakukan transformasi agar terjadi kestabilan taburan data dicapai dan juga untuk menyesuaikan nilai data dengan range fungsi aktivasi sigmoid biner yang digunakan dalam jaringan. Dari data transformasi data terkecil menjadi 0.1 dan data terbesar menjadi 0.9.

Gambar 9 : Proses Training JST BackpropagatioLaporan data penjualan dealer untuk wilayah kota Depok dan sekitarnya periode waktu 2005 sampai 2010.

Pelatihan Sistem :Proses pelatihan data dilakukan dengan jumlah data yang digunakan sebanyak 90% dari data sebaran dan melakukan percobaan tersebut berulang ulang dengan data input yang berbeda. Parameter yang digunakan tetap dan telah di setting dalam program.1. Fungsi aktivasi sigmoid biner

2. Konstanta belajar () = 0.13. Lapisan Tersembunyi = 64. Besarnya galat = 0.1

Dari percobaan yang telah dilakukan pada jumlah iterasi ke 8520 diperoleh jumlah target error (tse) = 0.13080115458486 dengan nilai bobot output seperti pada table nilai output pelatihan.

Pengujian dan Validasi Sistem :Pada pengujian validasi ini terdapat 3 proses pelatihan yaitu menjalankan program pelatihan dengan mengubah nilai-nilai masukan dari parameter pelatihan. Nilai parameter diacak dengan tujuan untuk mencari perbandingan nilai dan mencari nilai optimal dari bobot.

1. Pengujian dengan mengubah nilai dari parameter konstanta belajar, nilai hidden layer 6 dan besarnya galat 0.1 tampak pada tabel 4.

2. Pengujian dengan mengubah nilai parameter lapisan tersembuyi, nilai konstanta belajar tetap = 0.1 dan besarnya galat tetap 0.1 tampak pada tabel 5

3. Pengujian dengan mengubah nilai parameter dari besar galat, nilai kontanta belajar tetap = 0.1 dan jumlah lapisan tersembunyi = 6 tampak pada tabel 6

Proses Peramalan :Data masukan di input secara manual dan acak untuk mencari nilai maksimal dari peramalan dengan menggunakan CF sebagai pembanding dari nilai error target peramalan yang diinginkan. Contoh penerapan data pada program :

1. Simulasi tahun 2015

2. Tipe produk : Honda3. Penjualan Tertinggi daerah : 30.000 unit4. Jumlah Penjualan dealer :25.000 unit5. Jumlah Penjualan tunai : 19.000 unit6. Jumlah penjualan kredit : 16.000 unit7. Keakutan CF : 0.5

Dari input data yang dimasukkan di peroleh hasil peramalan pada tahun 2015 akan terjual mobil Honda sebanyak 29579 unit dengan nilai target error sebesar 4,205%.

4. METODE AHP

Metode AHP dikembangkan oleh Thomas L. Saaty, seorang ahli matematika. Metode ini adalah sebuah kerangka untuk mengambil keputusan dengan efektif atas persoalan yang kompleks dengan menyederhanakan dan mempercepat proses pengambilan keputusan dengan memecahkan persoalan tersebut kedalam bagian-bagiannya, menata bagian atau variabel ini dalam suatu susunan hirarki, member nilai numerik pada pertimbangan subjektif tentang pentingnya tiap variabel dan mensintesis berbagai pertimbangan ini untuk menetapkan variabel yang mana yang memiliki prioritas paling tinggi dan bertindak untuk mempengaruhi hasil pada situasi tersebut. Metode AHP ini membantu memecahkan persoalan yang kompleks dengan menstruktur suatu hirarki kriteria, pihak yang berkepentingan, hasil dan dengan menarik berbagai pertimbangan guna mengembangkan bobot atau prioritas. Metode ini juga menggabungkan kekuatan dari perasaan dan logika yang bersangkutan pada berbagai persoalan, lalu mensintesis berbagai pertimbangan yang beragam menjadi hasil yang cocok dengan perkiraan kita secara intuitif sebagaimana yang dipresentasikan pada pertimbangan yang telah dibuat.AHP (Analytic Hierarchy Process) merupakan salah satu teknik dalam pengambilan keputusan. Dalam mengambil keputusan, kita mempunyai kriteria sebagai dasar penilaian, dan kita juga akan dihadapkan dengan lebih dari satu alternative pilihan. Jika alternative pilihan tersebut hanya ada dua, mungkin masih mudah buat kita untuk memilih, akan tetapi jika alternative pilihan tersebut banyak, makacukup sulit bagi kita untuk memutuskannya.

AHP merupakan teknik yang dikembangkan untuk membantu mengatasi kesulitan ini. Dalam AHP, semua alternative plilihan diadu satu lawan satu, seperti pada pertandingan sepak bola dengan system setengah kompetisi. Skor dari masing-masing pasangan kemudian ditabulasi untuk dihitung total skor untuk masing-masing alternative. Ada satu kelemahan dalam AHP, yaitu bisa terjadi kita tidak konsisten dalam memberi bobot, apalagi kalau item/pasangannya banyak. Tetapi jangan kuatir karena ada alat/tool untuk mengeceknya.

AHP didasarkan atas tiga prinsip dasar yaitu sebagai berikut :1. DekomposisiDengan prinsip ini struktur masalah yang kompleks dibagi menjadi bagian-bagian secara hierarki. Tujuan didefinisikan dari yang umum sampai khusus. Dalam bentuk yang paling sederhana struktur akan dibandingkan tujuan, kriteria dan level alternatif. Tiap himpunan alternatif mungkin akan dibagi lebih jauh menjadi tingkatan yang lebih detail, mencakup lebih banyak kriteria yang lain. Level paling atas dari hirarki merupakan tujuan yang terdiri atas satu elemen. Level berikutnya mungkin mengandung beberapa elemen, di mana elemen-elemen tersebut bisa dibandingkan, memiliki kepentingan yang hampir sama dan tidak memiliki perbedaan yang terlalu mencolok. Jika perbedaan terlalu besar harus dibuatkan level yang baru.2. Perbandingan penilaian/pertimbangan (comparative judgments).Dengan prinsip ini akan dibangun perbandingan berpasangan dari semua elemen yang ada dengan tujuan menghasilkan skala kepentingan relatif dari elemen. Penilaian menghasilkan skala penilaian yang berupa angka. Perbandingan berpasangan dalam bentuk matriks jika dikombinasikan akan menghasilkan prioritas.3. Sintesa PrioritasSintesa prioritas dilakukan dengan mengalikan prioritas lokal dengan prioritas dari kriteria bersangkutan di level atasnya dan menambahkannya ke tiap elemen dalam level yang dipengaruhi kriteria. Hasilnya berupa gabungan atau dikenal dengan prioritas global yang kemudian digunakan untuk memboboti prioritas lokal dari elemen di level terendah sesuai dengan kriterianya.AHP didasarkan atas oleh tiga aksioma utama yaitu adalah sebagai berikut :1. Aksioma ResiprokalAksioma ini menyatakan jika PC (EA,EB) adalah sebuah perbandingan berpasangan antara elemen A dan elemen B, dengan memperhitungkan C sebagai elemen parent, menunjukkan berapa kali lebih banyak properti yang dimiliki elemen A terhadap B, maka PC (EB,EA)= 1/ PC (EA,EB). Misalnya jika A 5 kali lebih besar daripada B, maka B=1/5 A.2. Aksioma HomogenitasAksioma ini menyatakan bahwa elemen yang dibandingkan tidak berbeda terlalu jauh. Jika perbedaan terlalu besar, hasil yang didapatkan mengandung nilai kesalahan yang tinggi. Ketika hirarki dibangun, kita harus berusaha mengatur elemen-elemen agar elemen tersebut tidak menghasilkan hasil dengan akurasi rendah dan inkonsistensi tinggi.3. Aksioma KetergantunganAksioma ini menyatakan bahwa prioritas elemen dalam hirarki tidak bergantung pada elemen level di bawahnya. Aksioma ini membuat kita bisa menerapkan prinsip komposisi hirarki.

Kelebihan dan Kekurangan dalam Metode AHP

Kelebihan Metode AHP :1. Struktur yang berhierarki sebagai konskwensi dari kriteria yang dipilih sampai pada sub-sub kriteria yang paling dalam.2. Memperhitungkan validitas sampai batas toleransi inkonsentrasi sebagai kriteria dan alternatif yang dipilih oleh para pengambil keputusan.3. Memperhitungkan daya tahan atau ketahanan output analisis sensitivitas pengambilan keputusan.4. Metode pairwise comparison AHP mempunyai kemampuan untuk memecahkan masalah yang diteliti multi obyek dan multi kriteria yang berdasar pada perbandingan preferensi dari tiap elemen dalam hierarki. Jadi model ini merupakan model yang komperehensif. Pembuat keputusan menetukan pilihan atas pasangan perbandingan yang sederhana, membengun semua prioritas untuk urutan alternatif. Pairwaise comparison AHP mwenggunakan data yang ada bersifat kualitatif berdasarkan pada persepsi, pengalaman, intuisi sehigga dirasakan dan diamati, namun kelengkapan data numerik tidak menunjang untuk memodelkan secara kuantitatif.

Kelemahan Metode AHP :1. Ketergantungan model AHP pada input utamanya.Input utama ini berupa persepsi seorang ahli sehingga dalam hal ini melibatkan subyektifitas sang ahli selain itu juga model menjadi tidak berarti jika ahli tersebut memberikan penilaian yang keliru.2. Metode AHP ini hanya metode matematis tanpa ada pengujian secara statistik sehingga tidak ada batas kepercayaan dari kebenaran model yang terbentukCONTOH PERHITUNGAN METODE AHP

Kasus :Adi berulang tahun yang ke-17, Kedua orang tuanya janji untuk membelikan sepeda motor sesuai yang di inginkan Adi. Adi memiliki pilihan yaitu motor Ninja, Tiger dan Vixsion . Adi memiliki criteria dalam pemilihan sepeda motor yang nantinya akan dia beli yaitu : sepeda motornya memiliki desain yang bagus, berkualitas serta irit dalam bahan bakar.

Penyelesaian :1. Tahap pertama

Menentukan botot dari masing masig kriteria.Desain lebih penting 2 kali dari pada Irit

Desain lebih penting 3 kali dari pada Kualitas

Irit lebih penting 1.5 kali dari pada KualitasPair Comparation Matrix :KriteriaDesainIritKualitasPriority Vector

Desain1230,5455

Irit0,511,50,2727

Kualitas0,3330,66710,1818

Jumlah1,8333,6675,51,0000

Pricipal Eigen Value (max)3,00

Consistency Index (CI)0

Consistency Ratio (CR)0,0%

Dari gambar diatas, Prioity Vector (kolom paling kanan) menunjukan bobot darimasing-masing kriteria, jadi dalam hal ini Desain merupakan bobot tertinggi/terpenting menurut Adi, disusul Irit dan yang terakhir adalah Kualitas. Cara membuat table seperti di atas

1. Untuk perbandingan antara masing masing kriteria berasal dari bobot yang telah di berikan ADI pertama kali.

2. Sedangkan untuk Baris jumlah, merupakan hasil penjumalahan vertikal dari masing masing kriteria.

3. Untuk Priority Vector di dapat dari hasil penjumlahan dari semua sel disebelah Kirinya (pada baris yang sama) setelah terlebih dahulu dibagi dengan Jumlah yang ada dibawahnya, kemudian hasil penjumlahan tersebut dibagi dengan angka 3.

4. Untuk mencari Principal Eigen Value ((max)

Rumusnya adalah menjumlahkan hasil perkalian antara sel pada baris jumlah dan sel pada kolom Priority Vector5. Menghitung Consistency Index (CI) dengan rumus CI = ((max-n)/(n-1)6. Sedangkan untuk menghitung nilai CR

n12345678910

RI005,80,91,121,241,321,411,451,49

7. Menggunakan rumuas CR = CI/RI , nilai RI didapat dari Jadi untuk n=3, RI=0.58. Jika hasil perhitungan CR lebih kecil atau sama dengan 10% , ketidak konsistenan masih bisa diterima, sebaliknya jika lebih besar dari 10%, tidak bisa diterima.

2. Tahap Kedua

Kebetulan teman ADI memiliki teman yang memiliki motor yang sesuai dengan pilihan ADI. Setelah Adi mencoba motor temannya tersebut adi memberikan penilaian ( disebut sebagai pair-wire comparation).Desain lebih penting 2 kali dari pada IritDesain lebih penting 3 kali dari pada KualitasIrit lebih penting 1.5 kali dari pada kualitasNinja 4 kali desainnya lebih baik daripada tigerNinja 3 kali desainnya lebih baik dari pada vixsionTiger 1/2 kali desainnya lebih baik dari pada VixsionNinja 1/3 kali lebih irit daripada tigerNinja 1/4 kali lebih irit dari pada vixsionTiger 1/2 kali lebih irit dari pada VixsionBerdasarkan penilaian tersebut maka dapat di buat table (disebut Pair-wire comparation matrix).

DesainNinjaTigerVixsionPriority Vector

Ninja1430,6233

Tiger0,2510,50,1373

Vixsion0,333210,2394

Jumlah1,58374,51,0000

Pricipal Eigen Value (max)3,025

Consistency Index (CI)0,01

Consistency Ratio (CR)2,2%

IritNinjaTigerVixsionPriority Vector

Ninja10,3330,250,1226

Tiger310,50,3202

Vixsion4210,5572

Jumlah83,3331,751,0000

Pricipal Eigen Value (max)3,023

Consistency Index (CI)0,01

Consistency Ratio (CR)2,0%

ritNinjaTigerVixsionPriority Vector

Ninja1,000,0100,100,0090

Tiger100,001,0010,00,9009

Vixsion10,000,1001,00,0901

Jumlah111,001,1111,101,0000

Pricipal Eigen Value (max)3

Consistency Index (CI)0

Consistency Ratio (CR)0,0%

3. Tahap ketiga

Setelah mendapatkan bobot untuk ketiga kriteria dan skor untuk masing-masing kriteria bagi ketiga motor pilihannya, maka langkah terakhir adalah menghitung total skor untuk ketiga motor tersebut. Untuk itu ADI akan merangkum semua hasil penilaiannya tersebut dalam bentuk tabel yang disebut Overall composite weight, seperti berikut.

Overall composit weightweightNinjaTigerVixsion

Desain0,54550,62330,13730,2394

Irit0,27270,12260,32020,5572

Kualitas0,18180,00900,90090,0901

Composit Weight0,37510,32600,2989

Cara membuat Overall Composit weight adalah sebagai berikut :1. Kolom Weight diambil dari kolom Priority Vektor dalam matrix Kriteria.

2. Ketiga kolom lainnya (Ninja, Tiger dan Vixsion) diambil dari kolom Priority Vector ketiga matrix Desain, Irit dan Kualitas.

3. Baris Composite Weight diperoleh dari jumlah hasil perkalian sel diatasnya dengan weight.

Berdasarkan table di atas maka dapat di ambil kesimpulan bahwa yang memiliki skor paling tinggi adalah Ninja yaitu 0,3751 , sedangkan disusul tiger dengan skor 0,3260 dan yang terakhir adalah Vixsion dengan skor 0,2989. Akhirnya Adi akan membeli motor Ninja

DAFTAR PUSTAKA

Hermawanto, Denny. 2007. Algoritma Genetika dan Contoh Aplikasinya.http://auldwimirarizka.blogspot.com/p/fuzzy-logic.html.

http://kelompokfz.blogspot.com/2011/06/konsep-dasar-fuzzy-logic.html.

http://jayliverpudian.blogspot.com/2010/12/sekilas-tentang-ai.html. http://www.firman-its.com/2007/05/17/algoritma-genetika-dan-contoh-aplikasinya/Makalah Sistem Penunjang Keputusan Dengan Metode AHP. Universitas Muria Kudus

Mulai

Mulai

Input Data Penjualan

Transformasi Data

Pelatihan Feedforward

Pelatihan Backforward

Error Koreksi ?

Koreksi Bobot dan Bias

Selesai

_1448415060.unknown

_1448415062.unknown

_1448415063.unknown

_1448415064.unknown

_1448415061.unknown

_1448415058.unknown

_1448415059.unknown

_1448415057.unknown