Minggu, 09 November 2014

Mikrokontroler

Pengertian Mikrokontroler

Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umunya dapat menyimpan program didalamnya. Mikrokontroler umumnya terdiri dari CPU (Central Processing Unit), memori, I/O tertentu dan unit pendukung seperti Analog-to-Digital Converter (ADC) yang sudah terintegrasi di dalamnya.
Kelebihan utama dari mikrokontroler ialah tersedianya RAM dan peralatan I/O pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas. Mikrokontroler MCS51 ialah mikrokomputer CMOS 8 bit dengan 4 KB Flash PEROM (Programmable and Erasable Only Memory) yang dapat dihapus dan ditulisi sebanyak 1000 kali. Mikrokontroler ini diproduksi dengan menggunakan teknologi high density non-volatile memory. Flash PEROM on-chip tersebut memungkinkan memori program untuk diprogram ulang dalam sistem (in-system programming) atau dengan menggunakan programmer non-volatile memory konvensional. Kombinasi CPU 8 bit serba guna dan Flash PEROM, menjadikan mikrokontroler MCS51 menjadi microcomputer handal yang fleksibel.

Bentuk Fisik Mikrokontroler Keluarga MCS51 40 Pin

pengertian mikrokontroler,teori microcontroller,dasar teori mikrokontroler,aplikasi mikrokontroler,kelebihan mikrokontroler,struktur mikrokontroler,bagian mikrokontroler,mengenal mikrokontroler,perbandingan mikrokontroler,fisik mikrokontroler,karakteristik mikrokontroler,fungsi mikrokontroler,fungsi pin mikrokontroler,jumlah pin mikrokontroler,,ram mikrokontroler,definisi mikrokontroler,arsitektur mikrokontroler,pengenalan mikrokontroler,materi mikrokontroler,keunggulan mikrokontroler,mikokontroler,microcontroller,judul mikrokontroler
Arsitektur perangkat keras mikrokontroler MCS51 mempunyai 40 kaki, 32 kaki digunakan untuk keperluan 4 buah port pararel. 1 port terdiri dari 8 kaki yang dapat di hubungkan untuk interfacing ke pararel device, seperti ADC, sensor dan sebagainya, atau dapat juga digunakan secara sendiri setiap bitnya untuk interfacing single bit septerti switch, LED, dll.
Karakteristik lainya dari mikrokontroler MCS51 sebagai berikut :
  • Low-power
  • 32 jalur masukan/keluaran yang dapat diprogram*
  • Dua timer counter 16 bit
  • RAM 128 byte
  • Lima interrupt
Tidak seperti sistem komputer, yang mampu menanganiberbagai macam program aplikasi (misalnya pengolah kata, pengolah angkadan lain sebagainya), mikrokontroler hanya bisa digunakan untuk suatu aplikasi tertentu saja (hanya satu program saja yang bisa disimpan). Perbedaan lainnya terletak pada perbandingan RAM dan ROM. Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada Mikrokontroler, perbandingan ROM dan RAM-nya yang besar, artinya program kontrol disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.

Kelebihan Sistem Dengan Mikrokontroler

  • Penggerak pada mikrokontoler menggunakan bahasa pemograman assembly dengan berpatokan pada kaidah digital dasar sehingga pengoperasian sistem menjadi sangat mudah dikerjakan sesuai dengan logika sistem (bahasa assembly ini mudah dimengerti karena menggunakan bahasa assembly aplikasi dimana parameter input dan output langsung bisa diakses tanpa menggunakan banyak perintah). Desain bahasa assembly ini tidak menggunakan begitu banyak syarat penulisan bahasa pemrograman seperti huruf besar dan huruf kecil untuk bahasa assembly tetap diwajarkan.
  • Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan kebutuhan sistem.
  • Sistem running bersifat berdiri sendiri tanpa tergantung dengan komputer sedangkan parameter komputer hanya digunakan untuk download perintah instruksi atau program. Langkah-langkah untuk download komputer dengan mikrokontroler sangat mudah digunakan karena tidak menggunakan banyak perintah.
  • Pada mikrokontroler tersedia fasilitas tambahan untuk pengembangan memori dan I/O yang disesuaikan dengan kebutuhan sistem.
  • Harga untuk memperoleh alat ini lebih murah dan mudah didapat.

Sumber : http://elektronika-dasar.web.id/artikel-elektronika/pengertian-dan-kelebihan-mikrokontroler/

Gaya Pegas

Gaya Pegas Fisika- Pegas merupakan benda berbentuk spiral yang terbuat dari logam. Pegas sendiri mempunyai sifat elastis. Maksudnya ia bisa mempertahankan bentuknya dan kembali ke bentuk semula setelah diberi gaya. Gaya pegas dapat didefinisikan sebagai gaya atau kekuatan lenting suatu pegas untuk kembali ke posisi  atau bentuk semula.
Elastisitas pada pegas
Sobat pernah nonton fantastic four? Salah satunya tokohnya adalah ReedRichards, seorang manusia karet yang elastis. Ternyata pegas juga sama seperti Reed Richards, elastis. Apa sih elastis itu? Elastis adalah kemampuan benda untuk kembali ke bentuk semula setelah gaya yang bekerja padanya dihilangkan. Ketika pegas ditarik  yang berarti ada gaya luar yang bekerja maka ia akan molor atau memannjang. Ketika gaya luar itu dihilangkan ia akan kembali ke bentuk semula.
Hukum Hooke (Gaya Pegas)
Robert Hooke seorang Ilmuwan asal inggris meneliti tentang gaya pegas. Imuwan berambut keriting ini menelurkan hukum hooke yang menyatakan Jika pada sebuat pegas bekerja sebuah gaya luar, maka pegas akan bertambah panjang sebanding dengan besarnya gaya yang diberikan.

Hukum Hooke dirumuskan

hukum hooke gaya pegas
F = k .Δx“Fitri Kurang AsyiX”
F = w (gaya berat) = gaya pegas = gaya yang bekerja pada pegas
k = konstanta pegas
Δx = pertambahan panjang
Energi Potensial Pada Pegas
Sebuah pegas yang diberi gaya entah itu ditarik atau ditekan akan memiliki energi potensial (energi karena kedudukan).Usaha yang dilakukan oleh gaya F untuk menarik sebuah pegas sehingga bertambah panjang sebesar x besarnya sama dengan perubahan energi potensial dari pegas. coba sobat hitung amati grafik hubungan gaya F dengan delta x berikut
grafik hubungan gaya dan pertambahan panjang pegas
Luasan di bawah yang diarsir merupakan usaha = perupahan energi potensial. Jadi untuk menghitung energi potensial bisa dirumuskan
energi potensial pada pegas
Contoh dan Aplikasi Gaya Pegas Sehari-hari
Gaya pegas sangat luas sekali aplikasi dan manfaatnya di kehidupan sehari-hari. Lihat pulpen yang setiap hari sobat gunakan untuk menulis di sekolah, sebagian ada yang menggunakan pegas untuk menarik keluar masuk mata (ujung) pulpen. Contoh lainnya seperti pada mainan anak-anak seperti pistol-pistolan, sistem rem pada sepeda motor terutama yang tromol, jam, suspensi (shockbreaker), dan masih banyak lagi.
Rangkaian Pegas
Sama seperti hambatan, pegas juga bisa dirangkai (rangkaian pegas). Bentuk rangkaian pegas akan menentuka nilai konstanta pegas total yang akhirnya akan menentukan nilai dari gaya pegas.
1. Rangkaian Pegas Seri
Jika rangkaian seri makan konstanta pegas totalnya adalah
rangkaian pegas serirumus pegas serijika ada n pegas identik (konstanta k) maka rumus Konstanta totalnya tinggal  Ks = K/n
2. Rangkaian Pegas Pararel
Jika rangkaian pegas pararel maka total konstantanya sama dengan jumlah seluruh konstanta pegas yang disusun pararel
rangkaian pegas pararel
Ks = K1 + K2 + … + Kn
Contoh Soal Gaya Pegas1. Sobat punya pegas dengan konstanta pegas sebesar 200 N/m. Jika pegas tersebut sobat dudukin hingga tertekan sejauh 10 cm. Maka berapa energi yang digunakan?
jawaban : E = 1/2 k  (Δx)^2 = 1/2 x 200 x 0,1 x 0,1  = 1 Joule
sumber : http://rumushitung.com/2013/04/06/gaya-pegas-fisika/

DC motor

Motor DC adalah motor listrik yang memerlukan suplai tegangan arus searah pada kumparan medan untuk diubah menjadi energi gerak mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Motor arus searah, sebagaimana namanya, menggunakan arus langsung yang tidak langsung/direct-unidirectional. Motor DC memiliki 3 bagian atau komponen utama untuk dapat berputar sebagai berikut.

Bagian Atau Komponen Utama MOtor DC

  • Kutub medan. Motor DC sederhana memiliki dua kutub medan: kutub utara dan kutub selatan. Garis magnetik energi membesar melintasi ruang terbuka diantara kutub-kutub dari utara ke selatan. Untuk motor yang lebih besar atau lebih komplek terdapat satu atau lebih elektromagnet.
  • Current Elektromagnet atau Dinamo. Dinamo yang berbentuk silinder, dihubungkan ke as penggerak untuk menggerakan beban. Untuk kasus motor DC yang kecil, dinamo berputar dalam medan magnet yang dibentuk oleh kutub-kutub, sampai kutub utara dan selatan magnet berganti lokasi.
  • Commutator. Komponen ini terutama ditemukan dalam motor DC. Kegunaannya adalah untuk transmisi arus antara dinamo dan sumber daya.
pengertian motor DC,teori dasaar motor DC,motor DC adalah.jenis motor DC,jenis-jenis motor DC,tipe motor DC,karakter motor DC,kecepatan motor DC,definisi motor DC,bagian utama motor DC,harga motor DC,jual motor DC,tegangan kerja motor DC,beli motor DC,motor DC murah,motor DC kecepatan tinggi,bagian-baigan motor DC,prinsip kerja motor DC,sistem kerja motor DC,torsi motor DC,aplikasi motor DC,sumber daya motor DC,Motor DC sumber daya terpisah,Motor DC sumber daya sendiri,Motor DC Tipe Shunt,Motor DC Tipe Seri,Motor DC Tipe Kompon,rumus motor DC
Keuntungan utama motor DC adalah sebagai pengendali kecepatan, yang tidak mempengaruhi kualitas pasokan daya. Motor ini dapat dikendalikan dengan mengatur:
  • Tegangan dinamo – meningkatkan tegangan dinamo akan meningkatkan kecepatan
  • Arus medan – menurunkan arus medan akan meningkatkan kecepatan.
Hubungan antara kecepatan, flux medan dan tegangan dinamo ditunjukkan dalam persamaan berikut:
Gaya Elektromagnetik (E)
E=K\Phi N
Torque (T) :
T=K\Phi I_{a}
Dimana:
E =gaya elektromagnetik yang dikembangkan pada terminal dinamo (volt)
Φ = flux medan yang berbanding lurus dengan arus medan
N = kecepatan dalam RPM (putaran per menit)
T = torque electromagnetik
Ia = arus dinamo
K = konstanta persamaan

Jenis-Jenis Motor DC

Motor DC sumber daya terpisah/ Separately Excited, Jika arus medan dipasok dari sumber terpisah maka disebut motor DC sumber daya terpisah/separately excited.
Motor DC sumber daya sendiri/ Self Excited, Pada jenis motor DC sumber daya sendiri di bagi menjadi 3 tipe sebagi berikut :

Motor DC Tipe Shunt

Pada motor shunt, gulungan medan (medan shunt) disambungkan secara paralel dengan gulungan dinamo (A). Oleh karena itu total arus dalam jalur merupakan penjumlahan arus medan dan arus dinamo.
Karakter kecepatan motor DC tipe shunt adalah :
  • Kecepatan pada prakteknya konstan tidak tergantung pada beban (hingga torque tertentu setelah kecepatannya berkurang) dan oleh karena itu cocok untuk penggunaan komersial dengan beban awal yang rendah, seperti peralatan mesin.
  • Kecepatan dapat dikendalikan dengan cara memasang tahanan dalam susunan seri dengan dinamo (kecepatan berkurang) atau dengan memasang tahanan pada arus medan (kecepatan bertambah).

Motor DC Tipe Seri

Dalam motor seri, gulungan medan (medan shunt) dihubungkan secara seri dengan gulungan dinamo (A). Oleh karena itu, arus medan sama dengan arus dinamo.
Karakter kecepatan dari motor DC tipe seri adalah :
  • Kecepatan dibatasi pada 5000 RPM
  • Harus dihindarkan menjalankan motor seri tanpa ada beban sebab motor akan mempercepat tanpa terkendali.

Motor DC Tipe Kompon/Gabungan

Motor Kompon DC merupakan gabungan motor seri dan shunt. Pada motor kompon, gulungan medan (medan shunt) dihubungkan secara paralel dan seri dengan gulungan dinamo (A). Sehingga, motor kompon memiliki torque penyalaan awal yang bagus dan kecepatan yang stabil.
Karakter dari motor DC tipe kompon/gabungan ini adalah, makin tinggi persentase penggabungan (yakni persentase gulungan medan yang dihubungkan secara seri), makin tinggi pula torque penyalaan awal yang dapat ditangani oleh motor ini.
sumber : http://elektronika-dasar.web.id/teori-elektronika/teori-motor-dc-dan-jenis-jenis-motor-dc/

Selasa, 04 November 2014

Mechatronics

Mechatronics

Mechatronics is a design process that includes a combination of mechanical engineering, electrical engineering, telecommunications engineering, control engineering and computer engineering. Mechatronics is a multidisciplinary field of engineering, that is to say, it rejects splitting engineering into separate disciplines. Originally, mechatronics just included the combination of mechanics and electronics, hence the word is a combination of mechanics and electronics; however, as technical systems have become more and more complex the word has been broadened to include more technical areas.
The word "Mechatronics" was originally "Japanese-English" word created by Mr. Tetsuro Mori, who was an engineer of Yaskawa Electric Corporation and the word "Mechatronics" was registered as Trademark by the company in Japan with the registration number of "46-32714" in 1971. However afterward, the company released the right of using the word to public, and the word "Mechatronics" didn't only stay in Japan, but also introduced as a native English word. Nowadays, the word is translated in each language and the word is considered as an essential term for industry.
French standard NF E 01-010 gives the following definition: “approach aiming at the synergistic integration of mechanics, electronics, control theory, and computer science within product design and manufacturing, in order to improve and/or optimize its functionality".
Many people treat "mechatronics" as a modern buzzword synonymous with "electromechanical engineering".However, other people draw a distinction between an "electromechanical component"—does not include a computer; an electro-mechanical computer (such as the Z4)—does not include an electronic computer; vs. a "mechatronic system"—a computer-controlled mechanical system, including both an electronic computer and electromechanical components.

Discription
A mechatronics engineer unites the principles of mechanics, electronics, and computing to generate a simpler, more economical and reliable system. The term "mechatronics" was coined by Tetsuro Mori, the senior engineer of the Japanese company Yaskawain 1969. An industrial robot is a prime example of a mechatronics system; it includes aspects of electronics, mechanics, and computing to do its day-to-day jobs.
Engineering cybernetics deals with the question of control engineering of mechatronic systems. It is used to control or regulate such a system (see control theory). Through collaboration, the mechatronic modules perform the production goals and inherit flexible and agile manufacturing properties in the production scheme. Modern production equipment consists of mechatronic modules that are integrated according to a control architecture. The most known architectures involve hierarchy, polyarchy,heterarchy, and hybrid. The methods for achieving a technical effect are described by control algorithms, which might or might not utilize formal methods in their design. Hybrid systems important to mechatronics include production systems, synergy drives,planetary exploration rovers, automotive subsystems such as anti-lock braking systems and spin-assist, and everyday equipment such as autofocus cameras, video, hard disks, and CD players.

Course structure

Mechatronic students take courses in various fields:
  • Mechanical engineering and materials science
  • Electrical engineering
  • Computer engineering
  • Computer science(software & hardware engineering)
  • Systems and control engineering
  • Optomechanics (optical engineer)

Application

  • Machine vision
  • Automation and robotics
  • Servo-mechanics
  • Sensing and control systems
  • Automotive engineering, automotive equipment in the design of subsystems such as anti-lock braking systems
  • Computer-machine controls, such as computer driven machines like IE CNC milling machines
  • Expert systems
  • Industrial goods
  • Consumer products
  • Mechatronics systems
  • Medical mechatronics, medical imaging systems
  • Structural dynamic systems
  • Transportation and vehicular systems
  • Mechatronics as the new language of the automobile
  • Computer aided and integrated manufacturing systems
  • Computer-aided design
  • Engineering and manufacturing systems
  • Packaging
  • Microcontrollers / PLCs
  • Mobile apps

Physical implementations

Mechanical modeling calls for modeling and simulating physical complex phenomenon in the scope of a multi-scale and multi-physical approach. This implies to implement and to manage modeling and optimization methods and tools, which are integrated in a systemic approach. The specialty is aimed at students in mechanics who want to open their mind to systems engineering, and able to integrate different physics or technologies, as well as students in mechatronics who want to increase their knowledge in optimization and multidisciplinary simulation technics. The specialty educates students in robust and/or optimized conception methods for structures or many technological systems, and to the main modeling and simulation tools used in R&D. Special courses are also proposed for original applications (multi-materials composites, innovating transducers and actuators, integrated systems, …) to prepare the students to the coming breakthrough in the domains covering the materials and the systems. For some mechatronic systems, the main issue is no longer how to implement a control system, but how to implement actuators. Within the mechatronic field, mainly two technologies are used to produce movement/motion.

Variant of the field

An emerging variant of this field is biomechatronics, whose purpose is to integrate mechanical parts with a human being, usually in the form of removable gadgets such as an exoskeleton. Such an entity is often identified in science fiction as a cyborg. This is the "real-life" version of cyberware.

See also

References

  1.  Mechanical and Mechatronics Engineering Department. "What is Mechatronics Engineering?". Prospective Student Information. University of Waterloo. Retrieved 30 May 2011.
  2.  Faculty of Mechatronics, Informatics and Interdisciplinary Studies TUL. "Mechatronics (Bc., Ing., PhD.)". Retrieved 15 April 2011.
  3.  "Electromechanical/Mechatronics Technology".
  4.  Lawrence J. Kamm. "Understanding Electro-Mechanical Engineering: An Introduction to Mechatronics". 
  5. 'Definitions of "Mechatronics"'. collected by David G. Alciatore.

Algoritma Genetika dan Contoh Aplikasinya

Algoritma Genetika dan Contoh Aplikasinya

Pengantar
Algoritma genetika 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.
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.
Aplikasi Algoritma Genetika
Berikut adalah contoh aplikasi algoritma genetika yang digunakan untuk menyelesaikan masalah kombinasi. 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.




Penjelasan mengenai langkah-langkah penyelesaian permasalahan diatas menggunakan algoritma genetika adalah sebagai berikut:
1. Pembentukan chromosome
Karena yang dicari adalah nilai a, b, c, d maka variabel  a, b, c, d dijadikan sebagai gen-gen pembentuk 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. Inisialisasi
Proses inisialisasi dilakukan dengan cara memberikan nilai awal gen-gen dengan nilai acak sesuai batasan yang telah ditentukan.
Misalkan 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 Chromosome
Permasalahan 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.167
4. Seleksi Chromosome
Proses 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 roulete 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[k] 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   >    C[1]=0,10   shg yg dipilih C[1] = C[2] krn 0,10 < 0,20 <  0,41 (C[2])
R[2] = 0.284   <    C[2]=0,41   shg yg dipilih C[2] = C[2] krn 0,10 < 0,28 < 0,41 (C[2])
R[3] = 0.009   <    C[3]=0,66   shg yg dipilih C[3] = C[1] krn 0,00 < 0,01 < 0,10 (C[1])
R[4] = 0.822   >    C[4]=0,73   shg yg dipilih C[4] = C[5] krn 0,73 < 0,82 < 0,87 (C[5])
R[5] = 0.398   >    C[5]=0,87  shg yg dipilih C[5] = C[2] krn 0,10 < 0,40 < 0,41 (C[2])
R[6] = 0.501   >    C[6]=1,00   shg yg dipilih C[6] = C[3] krn 0,41 < 0,50 <  0,66 (C[3])
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. Crossover
Setelah 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<populasi) do
R[k] ← random(0-1);
if (R[k] < ρc ) then
select Chromosome[k] as parent;
end;
k = k + 1;
end;
end;
Misal kita tentukan crossover probability adalah sebesar 25%, maka diharapkan dalam satu generasi ada 50% Chromosome (3 chromosome) dari satu generasi mengalami proses crossover. Prosesnya adalah sebagai berikut:
Pertama kita bangkitkan bilangan acak R sebanyak jumlah populasi
R[1] = 0.191
R[2] = 0.259
R[3] = 0.760
R[4] = 0.006
R[5] = 0.159
R[6] = 0.340
Maka Chromosome ke k akan dipilih sebagai induk jika R[k] < ρc, dari bilangan acak R diatas maka yang dijadikan induk adalah chromosome[1], chromosome[4] dan chromosome[5].
Setelah melakukan pemilihan induk proses selanjutnya adalah menentukan posisi crossover. Ini dilakukan dengan cara membangkitkan bilangan acak dengan batasan 1 sampai (panjang chromosome-1), dalam kasus ini bilangan acak yang dibangkitkan adalah 1 – 3. Misalkan didapatkan posisi crossover adalah 1 maka chromosome induk akan dipotong mulai gen ke 1 kemudian potongan gen tersebut saling ditukarkan antar induk.
chromosome[1] >< 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, misal
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. Mutasi
Jumlah 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 sebagai berikut. 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
= 24
Untuk 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)
= 9
chromosome[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) = 30



IMPLEMENTASI Algoritma Genetika SEDERHANA

IMPLEMENTASI AG SEDERHANA

Contoh:
Diketahui nilai x1, x2 Î [-5,12; 5,12] dari fungsi (h) sebagai berikut:


Untuk menyelesaikan permasalahan di atas digunakan 9 program fungsi, sbb:

1.   Inisialisasi populasi
Tujuan membangkitkan sebuah populasi yang memiliki sejumlah kromosom yang terdiri dari sejumlah gen. Sehingga parameter masukan untuk fungsi ini jumlah kromosom dan jumlah gen. berikut ini programnya:

function populasi = InisialisasiPopulasi(UkPop,JumGen)
for  k=1:UkPop
 for  g=1:JumGen
             a=rand;
             if  (a<0.5)
                Populasi(k,g)=0;
             else
                Populasi(k,g)=1;
             end;
       end;
end;

atau dengan perintah singkat;

function Populasi = InisialisasiPopulasi(UkPop,JumGen)
Populasi = fix(2*rand(UkPop,JumGen)

Hasil program: Matrik 2 dimensi berukuran (k x g)
jika UkPop (k) =3 dan JumGen (g) =3 (note: karena a acak hasil bisa beda)

2.   Dekode kromosom
Tujuan untuk mendekodekan sebuah kromosom yang berisi bilangan biner men-jadi individu x yang bernilai real dalam interval yang diinginkan. Kromosom meng acu pada vektor baris yang berisi bilangan biner, dan individu mengacu pada va-riabel x yang berisi bilangan real.

function  x = DekodekanKromosom(Kromosom,Nvar,Nbit,Ra,Rb)
for ii=1:Nvar
    x(ii)=0;
    for jj=1:Nbit
        x(ii) = x(ii) + Kromosom(ii-1)*Nbit + jj) * 2^(-jj);
    end;
    x(ii) = Rb + (Ra-Rb)*x(ii);
end;

Kromosom berupa sebuah matrik berukuran 1 x JumGen (vektor baris). Nvar ada-lah jumlah variabel yang terdapat pada fungsi yang dioptimasi. Nbit merupakan jumlah bit yang digunakan untuk mendekodekan satu variabel. Ra adalah batas atas interval dan Rb batas bawah interval. Keluaran fungsi adalah x, yaitu sebuah individu yang bernilai real dalam interval [Ra, Rb].

Jika Nvar=2, dan Nbit=10, maka individu x terdiri dari 2 kolom x1 dan x2 yang masing-masing memiliki kromosom(1) sampai kromosom(10) dan kromosom(11) sampai kromosom(20). Kromosom ke-ii mengacu pada gen ke-ii
Individu x (bilangan real)
Kromosom x1
Kromosom x2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

3.   Evaluasi individu
Tujuan untuk menghitung nilai fitness dari suatu individu x. Fungsi ini sangat ber-gantung pada masalah yang akan diselesaikan.

function fitness = EvaluasiIndividu(x,bilKecil)
fitness = 1/((1000*(x(1)-2*x(2))^2+(1-x(1))^2) + BilKecil);

Individu x terdiri dari 2 kolom (x1 dan x2). Karena bertujuan minimasi maka nilai fitness yang digunakan adalah 1/(h+a) dengan h fungsi yang diminimasi dan a nilai yang cukup kecil (BilKecil). Agar individu bernilai fitness tertinggi (MaxF) tidak hilang selama evolusi, maka perlu dilakukan elitisme.

Prosesnya: individu dengan nilai fitness tertinggi disimpan dalam variabel MaxF yang lain dalam MinF. Indeks individu terbaik disimpan dalam variabel IndeksIndividuTerbaik. Populasi baru disimpan dalam variabel TemPopulasi.

x = DekodekanKromosom(Populasi(1,:),Nvar,Nbit,Ra,Rb);
Fitness(1) = EvaluasiIndividu(x,BilKecil);
MaxF = Fitness(1);
MinF = Fitness(1);
IndeksIndividuTerbaik = 1;

for ii=2:UkPop,
      Kromosom = Populasi(ii,:);
 x = DekodekanKromosom(Kromosom,Nvar,Nbit,Ra,Rb);
Fitness(ii) = EvaluasiIndividu(x,BilKecil);
if (Fitness(ii) > MaxF),
MaxF = Fitness(ii);
IndeksIndividuTerbaik = ii;
BestX = x;
            end
            if (Fitness(ii) < MinF),
                MinF = Fitness(ii);
            end
      end

TemPopulasi = Populasi;

if mod(UkPop,2)==0,
   IterasiMulai = 3;
   TemPopulasi(1,:) = Populasi(IndeksIndividuTerbaik,:);
   TemPopulasi(2,:) = Populasi(IndeksIndividuTerbaik,:);
else
   IterasiMulai = 2;
   TemPopulasi(1,:) = Populasi(IndeksIndividuTerbaik,:);
end

4.   Linier fitness rangking
Tujuan untuk menghindari kecenderungan prematur konvergen dengan melalui penskalaan nilai fitness sehingga diperoleh nilai fitness baru yang lebih baik (yang memiliki variansi tinggi). Hasil pengurutan disimpan dalam variabel SF, dan IndF berisi indeks dari nilai-nilai fitness.

function LFR = LinearFitnessRanking(UkPop,Fitness,MaxF,MinF)
[SF,IndF] = sort(Fitness);
for rr=1:UkPop,
     LFR(inF(UkPop – rr+1)) = MaxF – (MaxF-MinF)*((rr-1)/(UkPop – 1));
End

5.   Roulette wheel
Tujuannya untuk memilih individu terbaik sebagai orang tua. Keluaran dari program fungsi di bawah ini adalah Pindex, yaitu individu terbaik.

function Pindex = Roulettewheel(UkPop,LinierFitness);
JumFitness = sum(LinierFitness);
KumulatifFitness = 0;
RN = rand;
ii = 1;

while ii<= PopSize,
KumulatifFitness = KumulatifFitness + LinerFitness(ii);
if (KumulatifFitness/JumFitness)>RN,
Pindex = ii;
break;
end
ii = ii+1;
end


6.   Cross over
Cross over yang digunakan adalah satu titik potong. Sebuah bilangan secara acak dibangkitkan antara 1 sampai JumGen dan disimpan dalam variabel TP. Variabel Anak(1,:) menyatakan anak baris ke-1 semua kolom. Baris 1 menunjukkan kromo som anak pertama hasil cross over. Sedangkan semua kolom menunjukkan bah-wa kromosom anak tersebut berisi gen-gen gabungan dari bagian depan kromo-som bapak dan bagian belakang kromosom ibu. JumGen adalah jumlah Gen dan Bapak Ibu: kromosom, matrik ukuran 1xJumGen. Keluaran fungsi adalah Anak: kromosom, matrik ukuran 1xJumGen.

function Anak = PindahSilang(Bapak,Ibu,JumGen);
TP = 1 + fix(rand*(JumGen-1));
Anak(1,:) = [Bapak(1:TP) Ibu(TP+1:JumGen)];
Anak(1,:) = [Bapak(1:TP) Ibu(TP+1:JumGen)];

7.   Mutasi
Perubahan nilai gen secara acak di dalam kromosom. Keluaran berupa MutKom, yaitu: kromosom hasil mutasi, matrik ukuran 1xJumGen. Pmut : probabilitas muta si.

function MutKom = Mutasi(Kromosom,JumGen,Pmutasi);
MutKom = Kromosom;
for ii=1:JumGen,
if (rand < Pmutasi),
if Kromosom(ii) == 0,
MutKom(ii) = 1;
else
MutKom(ii) = 0;
end
end
end

8.   Gambar hasil 2 dimensi
Merupakan program utama untuk memanggil program fungsi di atas, dan menampilkan hasilnya ke dalam grafik 2 dimensi.


clc
clear all
Nvar           = 2;
Nbit            = 10;
JumGen       = Nbit*Nvar;
Rb              = -5.12;
Ra              = 5.12;
UkPop         = 200;
Psilang        = 0.8;
Pmutasi       = 0.05;
MaxG          = 100;
BilKecil        = 10^-1;
Fthreshold   = 1/BilKecil;
Bgraf          = Fthreshold;
hfig = figure;
hold on
title(‘Optimasi minimasi dengan AG melalui Grafis 2 dimensi’)
set(hfig,’position’,[50,50,600,400]);
set(hfig,’double buffer’, ‘on’);
axis([1 MaxG 0 Bgraf]);
hbestplot = plot(1:MaxG,zeros(1,MaxG));
htext1 = text(0.6*MaxG,0.25*Bgraf,sprintf(‘Fitness terbaik: %7.4f’, 0.0));
htext2 = text(0.6*MaxG,0.20*Bgraf,sprintf(‘Variabel X1: %5.4f’, 0.0));
htext3 = text(0.6*MaxG,0.15*Bgraf,sprintf(‘Variabel X1: %5.4f’, 0.0));
htext4 = text(0.6*MaxG,0.10*Bgraf,sprintf(‘Nilai Minimum: %5.4f’, 0.0));
xlabel(‘Generasi’);
ylabel(‘Fitness terbaik’);
hold off
drawnow;
Populasi = InisialisasiPopulasi(UkPop,JumGen);
for generasi=1:MaxG,
x = DekodekanKromosom(Populasi(1,:),Nvar,Nbit,Ra,Rb);
Fitness(1)=EvaluasiIndividu(x,BilKecil);
MaxF=Fitness(1);
MinF=Fitness(1);
IndekxIndividuTerbaik=1;
for ii=2:UkPop,
Kromosom=Populasi(ii,:);
x = DekodekanKromosom(Populasi(1,:),Nvar,Nbit,Ra,Rb);
Fitness(ii)=EvaluasiIndividu(x,BilKecil);
if (Fitness(ii)>MaxF),
MaxF= Fitness(ii);
IndekxIndividuTerbaik=ii;
BestX=x;
end
if (Fitness(ii)<MinF),
MinF= Fitness(ii);
end
end
plotvector=get(hbestplot,’Ydata’);
plotvector(generasi)=MaxF;
set(hbestplot,’Ydata’,plotvector);
set(htext1,’String’, sprintf(‘Fitness terbaik: %7.4f’, MaxF));
set(htext2,’String’, sprintf(‘Variabel X1: %5.4f’, BestX(1)));
set(htext3,’String’, sprintf(‘Variabel X2: %5.4f’, BestX(2)));
set(htext4,’String’, sprintf(‘Nilai minimum: %5.4f’, (1/MaxF)-BilKecil));
drawnow
if MaxF >= Fthreshold,
   break;
end
TemPopulasi = Populasi;
if mod(UkPop,2)==0,
IterasiMulai=3;
TempPopulasi(1,:)=Populasi(IndeksIndividuTerbaik,:);
TempPopulasi(2,:)=Populasi(IndeksIndividuTerbaik,:);
else
IterasiMulai=2;
TempPopulasi(1,:)=Populasi(IndeksIndividuTerbaik,:);
end
LinearFitness=LinearFitnessRanking(UkPop,Fitness,MaxF,MinF);
for jj=IterasiMulai:2:UkPop,
IP1=RouletteWheel(UkPop,LinearFitness);
IP2=RouletteWheel(UkPop,LinearFitness);
if (rand < Psilang),
Anak=PindahSilang(Populasi(IP1,:), Populasi(IP2,:),JumGen);
TemPopulasi(jj,:)=Anak(1,:);
TemPopulasi(jj+1,:)=Anak(2,:);
else
TemPopulasi(jj,:)= Populasi(TP1,:);
TemPopulasi(jj+1,:)= Populasi (TP2,:);
end
end
for kk=IterasiMulai:UkPop,
TemPopulasi(kk,:) = Mutasi(TemPopulasi(kk,:),JumGen,Pmutasi);
end
Populasi = TemPopulasi;

Hasil running program :

   10

9

8

7

6

5

4

Fitness terbaik   : 10.0000
Variabel X1        : 1.0000
Variabel X2        : 0.5000
Nilai minimum    : 0.0000
Ukuran populasi : 200
Probabilitas mutasi: 0.0500
 
3

2

1

0      10      20      30      40      50      60      70      80      90      100

Hasil program ketika run pertama, kedua dst. … bisa berbeda. Hal itu disebabkan AG menggunakan bilangan acak. Oleh karena itu program masih harus di run hingga diperoleh nilai yang paling optimum. Ada beberapa catatan agar program dapat optimum, yaitu:
1. Ukuran populasi biasanya berkisar 30 sampai 1000.
2. Probabilitas cross over biasanya antara 0,6 sampai 0,9
3. Probabilitas mutasi sangat kecil yaitu 1 dibagi jumlah gen
4. Nilai-nilai tersebut biasanya bergantung pada permasalahan yang diselesaikan




Tabel hasil observasi mencari AG yang optimal
No
Ukuran
populasi
Probabilitas
mutasi
Rata-rata
fitness
Rata-rata
jumlah individu
1
50
0,01
7,5962
54960
2
50
0,05
8,5787
31620
3
50
0,1
8,6095
37155
4
50
0,2
9,8159
40670
5
100
0,01
7,7266
45420
6
100
0,05
8,6816
25430
7
100
0,1
9,9960
24870
8
100
0,2
9,7074
58360
9
200
0,01
8,5089
40740
10
200
0,05
9,5526
33440
11
200
0,1
9,9239
43440
12
200
0,2
9,6853
60000
13
400
0,01
8,2938
50000
14
400
0,05
9,2396
23280
15
400
0,1
9,8734
50160
16
400
0,2
8,5196
55600

Berdasar tabel observasi di atas, untuk contoh permasalahan tersebut maka AG dapat optimal pada:

No
Ukuran
populasi
Probabilitas
mutasi
Rata-rata
fitness
Rata-rata
jumlah individu
7
100
0,1
9,9960
24870


Berdasar tabel juga terlihat bahwa ukuran populasi yang semakin besar justru mem-buat performansi AG menjadi turun. Hal itu juga terjadi pada probabilitas mutasi yak- ni semakin besar nilainya maka performansi AG menjadi turun.