BAB 2 LANDASAN TEORI 2.1 Rekayasa Piranti Lunak Menurut Pressman (2001,p20), rekayasa piranti lunak adalah pembangunan dengan penggunaan prinsip-prinsip rancang bangun (engineering) untuk mendapatkan piranti lunak ekonomis yang dapat dipercaya dan bekerja efisien pada mesin yang sesungguhnya. Menurut Lethbridge dan Laganiere (2002,p5), rekayasa piranti lunak adalah proses menyelesaikan masalah konsumen dengan pengembangan sistematik dari sistem piranti lunak yang besar dan berkualitas dengan biaya, waktu, dan batasan-batasan yang lainnya. Menurut Pressman (2001,p26), untuk menyelesaikan masalah dalam suatu industri, teknisi piranti lunak harus menggabungkan suatu strategi pembangunan yang disebut sebagai process model atau paradigma rekayasa piranti lunak. Strategi tersebut mencakup tiga elemen yaitu : 1. Metode-metode (methods), yaitu menyediakan cara-cara teknis membangun piranti lunak. 2. Alat-alat bantu (Tools), yaitu menyediakan dukungan otomatis atau semi otomatis untuk metode-metode seperti Computer Aided Software Engineering (CASE) yang mengkombinasikan software, hardware dan software engineering database. 3. Prosedur-prosedur (procedures), yaitu merupakan penggabungan metode dan alat bantu.
36
Embed
BAB 2 LANDASAN TEORI 2.1 Rekayasa Piranti Lunakthesis.binus.ac.id/doc/Bab2/2009-1-00392-MTIF Bab 2.pdfdisebut sebagai process model atau paradigma rekayasa piranti lunak. Strategi
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
BAB 2
LANDASAN TEORI
2.1 Rekayasa Piranti Lunak
Menurut Pressman (2001,p20), rekayasa piranti lunak adalah pembangunan
dengan penggunaan prinsip-prinsip rancang bangun (engineering) untuk mendapatkan
piranti lunak ekonomis yang dapat dipercaya dan bekerja efisien pada mesin yang
sesungguhnya.
Menurut Lethbridge dan Laganiere (2002,p5), rekayasa piranti lunak adalah
proses menyelesaikan masalah konsumen dengan pengembangan sistematik dari sistem
piranti lunak yang besar dan berkualitas dengan biaya, waktu, dan batasan-batasan yang
lainnya.
Menurut Pressman (2001,p26), untuk menyelesaikan masalah dalam suatu
industri, teknisi piranti lunak harus menggabungkan suatu strategi pembangunan yang
disebut sebagai process model atau paradigma rekayasa piranti lunak. Strategi tersebut
mencakup tiga elemen yaitu :
1. Metode-metode (methods), yaitu menyediakan cara-cara teknis membangun piranti
lunak.
2. Alat-alat bantu (Tools), yaitu menyediakan dukungan otomatis atau semi otomatis
untuk metode-metode seperti Computer Aided Software Engineering (CASE) yang
mengkombinasikan software, hardware dan software engineering database.
3. Prosedur-prosedur (procedures), yaitu merupakan penggabungan metode dan alat
bantu.
9
Menurut Pressman (2001,p28), Linear sequential model. Linear sequential model
menyarankan pendekatan yang sistematik dan berurutan untuk pengembangan piranti
lunak yang dimulai dari tingkat sitem dan bergerak ke tingkat analysis, design, coding,
testing, dan support.
Ada lima tahap pengembangan pada pengembangan piranti lunak berdasarkan
linear sequential model :
- Analisis kebutuhan piranti lunak
Proses mendapatkan kebutuhan yang dikerjakan secara intensif dan terfokus secara
spesifik pada piranti lunak. Untuk mengerti bagaimana aplikasi dirancang, seorang
teknisi piranti lunak harus mengetahui informasi yang dibutuhkan dari piranti
lunak tersebut, juga kebutuhan fungsi, perilaku, performance, dan tatap muka.
Kebutuhan untuk sistem dan piranti lunak harus didokumentasikan dan
dikomunikasikan dengan konsumen.
- Design
Design perangkat lunak sebenarnya proses yang terdiri dari beberapa langkah yang
tertuju pada empat attribute yang berbeda pada sebuah program : struktur data,
arsitektur perangkat lunak, representasi tatap muka, dan detil prosedural
(algoritmik).Proses Design ini mengubah kebutuhan menjadi representasi dari
piranti lunak yang dapat diuji kualitasnya sebelum memulai coding. Desain juga
didokumentasikan dan menjadi bagian dari konfigurasi piranti lunak.
- Coding
Desain harus ditranslasikan ke bentuk yang dapat dibaca oleh mesin. Proses
coding melakukan tugas ini. Apabila desain dilakukan dengan cara yang detil,
coding dapat diselesaikan secara sistematis.
10
- Testing
Setelah code telah dihasilkan, pegujian program dilakukan. Proses pengujian
difokuskan pada logika internal dari piranti lunak, menjamin bahwa seluruh bagian
telah diuji, juga pada bagian fungsi eksternal, melakukan pengujian untuk mencari
kesalahan dan menjamin bahwa input yang diberikan dapat mendapatkan hasil
yang sesuai dan benar.
- Support
Perangkat lunak akan dilakukan perubahan setelah diberikan kepada pelanggan
(pengecualian pada embedded software). Perubahan akan terjadi karena error yang
ditemukan karena piranti lunak harus beradaptasi untuk mengakomodasi
perubahan di dalam lingkungan eksternal (contoh, pada suatu perubahaan
diperlukan karena adanya system operasi yang baru atau device baru), atau karena
pelanggan membutuhkan fungsi tambahan atau perbaikan performance.Support /
maintenance menjalankan setiap fase sebelumnya dalam melakukan perubahan.
Menurut Lethbridge dan Laganiere (2002,p402), waterfall model adalah suatu
cara klasik melihat rekayasa piranti lunak yang menjelaskan kebutuhan, design dan
quality assurance. Waterfall model menyarankan agar teknisi piranti lunak bekerja
dalam tahapan yang terbagi dan berurutan. Sebelum menyelesaikan suatu tahap, teknisi
harus melakukan quality assurance sehingga pada tahap selanjutnya dibangun dari dasar
yang baik dan kuat.
11
2.2 Interaksi Manusia dan Komputer
Sebuah program yang memiliki interaksi dengan user haruslah bersifat interaktf .
Suatu program yang interaktif dan baik harus bersifat user friendly, dengan lima
kriteria (Shneiderman 2005, p15) sebagai berikut.
1. Waktu belajar yang tidak lama.
2. Kecepatan penyajian informasi yang tepat.
3. Tingkat kesalahan pemakaian rendah.
4. Penghafalan sesudah melampaui jangka waktu.
5. Kepuasan pribadi.
Sebuah aplikasi yang sudah memenuhi kelima kriteria diatas maka aplikasi
tersebut benar-benar dapat dikatakan user-friendly.
Menurut (Shneiderman 2005, p74), dalam merancang sistem interaksi manusia
dan komputer yang baik juga harus memperhatikan delapan aturan utama (eight golden
rules), yaitu:
1. Strive for consistency (berusaha untuk konsisten).
2. Enable frequent user to use shortcuts (memungkinkan pengguna untuk
menggunakan jalan pintas).
3. Offer informative feedback (memberikan umpan balik yang informatif).
4. Design dialogs to yield closure (pengorganisasian yang baik sehingga pengguna
mengetahui kapan awal dan akhir dari suatu aksi).
5. Offer simple error handling (memberikan pencegahan kesalahan dan penanganan
kesalahan yang sederhana).
6. Permit easy reversal of actions (memungkinkan kembali ke aksi sebelumnya
dengan mudah).
12
7. Support internal locus of control (memungkinkan pengguna untuk menguasai
dan mengontrol sistem).
8. Reduce short term memory load (mengurangi beban ingatan jangka pendek,
sehingga pengguna tidak perlu banyak menghafal).
Delapan aturan emas inilah yang menjadi pedoman dalam menentukan
kehandalan sebuah program dalam melakukan interaksi dengan user, karena hal inilah
yang secara tidak langsung mempengaruhi hidup dari program tersebut.
2.3 Pemrograman Berorientasi Objek
Object-oriented mencakup bidang aplikasi yang sangat luas. Para pengguna
sistem komputer dan sistem lain yang didasarkan atas teknologi komputer merasakan
efek object-oriented dalam bentuk meningkatnya aplikasi software yang mudah
digunakan dan servis yang lebih fleksibel, yang muncul dalam berbagai bidang industri,
seperti dalam perbankan, telekomunikasi, dan sebagainya. Sedangkan bagi software
engineer, object-oriented berpengaruh dalam bahasa pemrograman, metodologi
rekayasa, manajemen proyek, hardware dan sebagainya.
Analisis dan perancangan berorientasi objek amat sangat perlu dilakukan dalam
pengembangan sistem berorientasi objek. Hanya dengan kemampuan menggunakan
bahasa pemrograman berorientasi objek yang andal, kita dapat membangun suatu sistem
berorientasi objek, namun sistem aplikasi yang dibangun akan menjadi lebih baik lagi
bila langkah awalnya didahului dengan proses analisis dan perancangan berorientasi
objek, terutama untuk membangun sistem yang mudah dipelihara.
Analisis berorientasi objek adalah metode analisis yang memeriksa requirements
(syarat/keperluan yang harus dipenuhi suatu sistem) dari sudut pandang kelas-kelas dan
13
objek-objek yang ditemui dalam ruang lingkup permasalahan. Sedangkan perancangan
berorientasi objek adalah metode untuk mengarahkan arsitektur software yang
didasarkan pada manipulasi objek-objek sistem atau subsistem.
Pemrograman berorientasi objek merupakan kelanjutan dari proses analisis dan
desain berorientasi objek. Dalam pemrograman berorientasi objek ini, komponen yang
didesain dalam proses desain kemudian diimplementasikan dengan menggunakan
bahasa pemrograman berorientasi objek. Syarat sebuah bahasa pemrograman
berorientasi objek adalah bila bahasa pemrograman tersebut memiliki fitur untuk
mengimplementasikan keempat konsep berorientasi objek, yaitu abstraksi,
encapsulation, polymorphism dan inheritance.
Dikenal beberapa bahasa pemrograman berorientasi objek, seperti C++, Java,
Visual Basic, dan sebagainya.
2.4 Keunggulan Object-Oriented dalam Banyak Kasus
Sekarang ini terdapat beberapa paradigma yang digunakan dalam rekayasa
software, diantaranya procedure-oriented, object-oriented, data structure-oriented, data
flow-oriented dan constraint oriented. Tiap-tiap paradigma tersebut cocok untuk
beberapa kasus dan bagian dari seluruh kemungkinan ruang lingkup aplikasi, tetapi
menurut Booch berdasarkan pengalamannya, object-oriented dapat diaplikasikan dalam
seluruh ruang lingkup.
Untuk memahami mengapa object-oriented unggul dalam banyak kasus, harus
memahami masalah yang dihadapi perusahaan rekayasa software. Pertama, software
sulit untuk dimodifikasi bila memerlukan pengembangan. Kedua, proses pembuatan
software memerlukan waktu yang cukup lama sehingga kadang kala melebihi anggaran
14
dalam pembuatannya. Ketiga, para programmer selalu membuat software dari dasar
karena tidak adanya kode yang bisa digunakan ulang (reuse).
Kebanyakan perusahaan tersebut sebelumnya telah menggunakan pemrogramam
structural. Metode structural menggunakan pendekatan dengan pendekatan top-down,
yang mana pendekatan ini memecahkan masalah dengan menbagi masalah kedalam
komponen-komponen hingga didapatkan komponen yang tidak dapat dibagi-bagi lagi.
Pendekatan dengan cara top-down ini telah membuat peningkatan dalam kualitas
software, tetapi dalam sistem yang berskala besar, pendekatan ini sering menemui
banyak masalah. Pemrograman structural seringkali tidak dapat mendesain apa yang
akan terjadi dalam sistem yang telah selesai tanpa mengimplementasikan sistem terlebih
dahulu. Jika ditemui kesalahan dalam sistem, maka desain harus disusun ulang dari awal
sampai akhir. Hal ini akan terjadi pemborosan biaya dan waktu.
Perbedaan antara metode structural dan object-oriented terletak pada bagaimana
data dan fungsi disimpan. Dalam metode structural, data dan fungsi disimpan terpisah.
Biasanya semua data ditempatkan sebelum fungsi ditulis. Seringkali tidak terpikirkan
sebelumnya untuk mengetahui data mana yang digunakan dalam suatu fungsi tertentu.
Tetapi dalam object-oriented, data dan fungsi yang berhubungan dalam suatu objek
disimpan bersama-sama dalam satu kesatuan.
Orang akan lebih mudah memahami sistem sebagai objek daripada prosedur, karena
biasanya orang berpikir dalam bentuk objek. Karena secara alamiah lebih mudah
memikirkan suatu sistem dalam bentuk objek-objek, tidak heran kalau object-oriented
menjadi lebih terkenal.
Satu alasan mengapa object-oriented menguntungkan bagi programmer adalah
karena programmer dapat mendesain program dalam bentuk objek-objek dan hubungan
15
antar objek tersebut untuk kemudian dimodelkan dalam sistem nyata. Keuntungan yang lain
adalah proses pembuatan software dapat dilakukan dengan lebih cepat karena software
dibangun dari objek-objek standar, dapat menggunakan ulang model yang ada, dan dapat
membuat model yang cepat melalui metodologi. Kualitas yang tinggi dari software dapat
dicapai karena adanya tested component. Lebih mudah dalam maintenance karena perbaikan
kode hanya diperlukan pada satu tempat (bukan diurut dari awal). Mudah dalam
membangun sistem yang besar karena subsistem dapat dibuat dan diuji secara terpisah.
Mengubah sistem yang sudah ada tidak memerlukan membangun ulang keseluruhan sistem.
2.5 Penjadwalan
2.5.1 Teori Penjadwalan (Timetabling)
Dalam salah satu paper-nya “A Hybrid Genetic Algorithm for Highly
Constrained Timetabling Problems”, Edmund K.Burke, et all mendefinisikan
penjadwalan (timetabling) sebagai berikut :
Timetabling is the problem of scheduling a set of events (for example : exams, lectures,
tutorials) to specific time slots such that no person or resource is expected to be in more
than one location at the same time and that there is enough space available in each
location for the number of people expected to be there.
Menurut Burke,E,Petrovic,S (2002) dan Wren, penjadwalan didefinisikan
sebagai berikut :
Timetabling is the allocation, subject of constraints, of given resources to objects being
placed in space time, in such a way to satisfy as nearly as possible a set of desirable
objectives.
16
Berdasarkan definisi di atas, penjadwalan adalah pengalokasian sumber daya pada
objek-objek yang ada pada ruang waktu dan bergantung pada kendala-kendala
sedemikian sehingga sedapat mungkin memenuhi sekumpulan sasaran yang diinginkan.
Secara sederhana, penjadwalan dapat diartikan sebagai pengalokasian sumber-sumber
daya yang tersedia pada ruang waktu yang ada sehingga memenuhi kondisi-kondisi
tertentu.
Dalam proses penjadwalan, sumber daya yang ada harus dialokasikan secara
optimal, efektif dan efisien, serta sedapat mungkin memenuhi kebutuhan yang ada
namun biaya yang harus dikeluarkan harus pantas. Penjadwalan merupakan masalah
yang sangat sulit dan telah menjadi bahan penelitian di bidang Teknik Riset Operasional
(TRO) dan Inteligensia Semu (IS). Menurut Fang, sulitnya penjadwalan disebabkan oleh
beberapa hal antara lain :
- Penjadwalan merupakan masalah NP-Complete (Non-deterministic Polynomial-
Complete), yaitu suatu permasalahan dimana dengan bertambahnya variable secara
linier maka waktu yang diperlukan untuk memecahkan masalah itu bertambah
secara eksponensial. Hal ini sering disebut juga Combinatorial Explosion, selain
itu ruang solusi yang mungkin (space of possible solutions) untuk kebanyakan
masalah riil terlalu besar untuk dilakukan brute-force search atau pencarian yang
tidak terarah (undirected search).
- Teknik pencarian tingkat tinggi dengan menggunakan berbagai heuristcic untuk
memangkas search space tidak menjamin dihasilkannya suatu solusi yang optimal
dan sangat sulit untuk mendesain suatu heuristic yang efektif.
- Masalah penjadwalan sering menjadi rumit karena adanya special constraints.
17
- Penjadwalan di dunia nyata sering melibatkan constraints yang tidak dapat dengan
tepat direpresentasikan atau bahkan tidak dapat dengan tepat dinyatakan.
2.5.2 Constraints Penjadwalan
Secara umum, masalah penjadwalan terdiri dari pengalokasian sejumlah event ke
dalam periode waktu dan tempat terbatas dengan meminimalkan pelanggaran terhadap
serangkaian constraint. Masalah penjadwalan yang berbeda memiliki constraint yang
berbeda pula. Di dalam penjadwalan dikenal dua macam constraints (persyaratan), yaitu
- Hard Constraint
Hard Constraint harus dipertimbangkan karena jadwal yang melanggar hanya satu
dari constraint ini menjadi tidak berguna. Misalnya, tidak ada orang yang
dialokasikan untuk mengajar dua atau lebih mata kuliah pada waktu yang
bersamaan.
- Soft Constraint
Soft Constraint tidak esensi untuk dipenuhi. Jadwal yang melanggar constraint ini
masih dapat digunakan, meskipun hasilnya kurang memuaskan. Misalnya, asisten
tidak mengajar 3 shift berturut-turut.
Berikut ini adalah beberapa contoh hard constraint dan soft constraint di dalam
course timetabling untuk institusi pendidikan :
Contoh hard constraint :
- Dosen hanya dapat mengajar pada hari, waktu dan mata kuliah tertentu
sesuai dengan pilihannya (teacher’s availability).
- Mahasiswa dan dosen hanya bisa berada pada satu tempat pada satu waktu.
18
- Satu ruangan hanya bisa dipakai oleh satu mata kuliah saja pada waktu
tertentu.
- Kapasitas ruangan harus lebih besar atau sama dengan jumlah mahasiswa
yang mengambil kelas tersebut.
Contoh soft constraint :
- Jumlah maksimum dan minimum shift dosen mengajar dan mahasiswa
mengikut mata kuliah dalam satu hari.
- Shift yang diikuti oleh mahasiswa dalam satu hari sebaiknya berurutan dan
berada dalam satu gedung atau satu ruangan.
- Mata kuliah tertentu sebaiknya memakai ruangan yang memiliki fasilitas
tertentu.
2.5.3 Metode Penyelesaian Masalah penjadwalan
Berbagai metode atau pendekatan untuk menyelesaikan masalah penjadwalan
telah digunakan, berikut ini dipaparkan secara singkat mengenai pendekatan yang
pernah digunakan untuk menyelesaikan masalah penjadwalan :
1. Pendekatan random search / exhaustive search
Random search merupakan teknik pencarian solusi secara acak. Semakin
besar ruang solusi (solution space) dan semakin banyak constraint akan
memperkecil kemungkinan untuk mendapatkan solusi yang baik , oleh karena itu
mencari secara acak suatu solusi yang baik adalah seperti mencari jarum di dalam
tumpukan jerami. Exhaustive search tidak dapat digunakan untuk masalah NP-
Complete karena search space-nya yang sangat besar.
19
2. Pendekatan riset operasional
a. Enumerative search
- Mathematical programming
Mathematical programming adalah salah satu teknik yang
digunakan untuk mengoptimasi suatu fungsi yang dibatasi oleh
variable bebas, tetapi mathematical programming hanya cocok
untuk masalah penjadwalan yang sederhana. Linear programming
dan integer programming merupakan dua contoh pendekatan yang
pernah dipakai.
- Dynamic programming
Dynamic programming adalah implicit enumerative search
method yang dapat dilihat sebagai teknik divide and conquer. Untuk
menyelesaikan suatu masalah yang besar, dilakukan pemecahan
masalah yang tersebut menjadi bagian-bagian kecil yang
independen. Untuk masalah penjadwalan yang kompleks,
pendekatan ini tidak efektif.
- Branch and bound
Metode ini juga merupakan implicit enumerative search
method. Pendekatan ini terdiri dari dua prosedur dasar. Branching
adalah proses mempartisi masalah yang besar menjadi dua atau
lebih masalah kecil (subproblem) dan bounding adalah proses
menghitung batas bawah pada solusi optimal dari subproblem yang
bersangkutan. Untuk masalah penjadwalan yang kompleks
pendekatan ini juga tidak efektif.
20
b. Heuristic Search
- Simulated Annealing (SA)
Simulated Annealing merupakan single solution randomized
heuristic yang efektif. SA bekerja berdasarkan proses annealing.
Annealing adalah suatu proses termal untuk memperoleh kondisi energi
terendah dari suatu benda padat di dalam suatu heat bath. Prosesnya
terdiri dari dua langkah: pertama, naikkan suhu heat bath sampai
maksimum dimana benda padat itu akan mencair, kedua, turunkan suhu
heat bath perlahan-lahan sampai partikel-partikel itu menyatu kembali di
lantai dalam bentuk padat. SA meng-update satu solusi tunggal pada
setiap iterasi. Pada dasarnya, SA merupakan local search method.
- Tabu Search (TS)
Tabu search merupakan salah satu evolutionary heuristic yang
meng-update satu solusi tunggal. Tabu search dimulai dengan membuat
solusi acak dan secara berturut-turut pindah (move) ke salah satu
tetangganya. Setiap kali suatu move dilakukan, solusi sebelumnya akan
dimasukkan ke dalam suatu daftar yang disebut tabu list. Dari suatu solusi
yang diberikan, tidak semua neighbour dapat dicapai. Setiap perpindahan
membawanya pada solusi terbaik yang berada di sekitarnya, tetapi jika
perpindahan itu ada di dalam tabu list maka hanya diterima jika dapat
menurunkan nilai dari fungsi objektif sampai di bawah level yang telah
dicapai sejauh ini (aspiration level).
21
3. Pendekatan Inteligensia Semu
a. Constraints Satisfaction problem (CSP)
Menurut Anbulagan et al. (2000,p7) :
Permasalahan umum dari CSP adalah untuk menemukan satu atau
lebih solusi yang dapat memuaskan set constraint yang diberikan. Masing-
masing constraint membatasi kombinasi dari nilai-nilai dimana sebuah set
variable dapat mengambil secara simultan (terus-menerus). Sebuah solusi
untuk masalah CSP adalah penetapan sebuah nilai (value) terhadap setiap
variabel dari domain variabel yang memuaskan semua kendala yang
diberikan. Apabila ada beberapa solusi maka akan dicoba untuk
menemukan solusi yang optimal berdasarkan sebuah fungsi objektif yang
spesifik. Namun, apabila tidak terdapat solusi maka akan diminta untuk
menemukan “solusi terdekat” yang terbaik berdasarkan sebuah fungsi
objektif yang spesifik.
b. Rule-based Expert System
Dalam pendekatan ini digunakan suatu rule-based language untuk
mencoba menspesifikasikan constraint dan heuristic yang digunakan human
expert untuk memecahkan masalah yang bersangkutan. Rule-based systems
jarang digunakan untuk permasalahan optimasi.
c. Neural Networks
Menurut Rao, Vailuru dan Rao, Hayagriva, Jaringan Syaraf Tiruan
(Atrificial Neural Network) adalah suatu sistem komputasi yang mengikuti
22
mekanisme kerja syaraf biologis manusia. Sistem ini diharapkan dapat
menghasilkan fleksibiliti dan kekuatan otak manusia. Sistem ini juga
menggunakan representasi dari sebuah neuron (sel syaraf) manusia dan
interaksi diantara neuron-neuron tersebut sebagai dasar dari prinsip kerjanya.
Pendekatan ini kelihatannya menjanjikan, tetapi belum banyak hasil yang
bisa dicapai saat ini.
2.6 Algoritma Genetik
Algoritma Genetik adalah suatu algoritma pencarian stokastik (bekerja
berdasarkan acak) yang didasarkan pada mekanisme seleksi alami dan genetika.
Algoritma genetik diinspirasikan dari teori evolusi Darwin. Sebuah masalah akan
dipecahkan oleh Algoritma Genetik dengan menggunakan proses evolusi, dari proses
evolusi tersebut akan diambil solusi yang terbaik. Solusi terhadap masalah yang
dihasilkan oleh Algoritma Genetik dapat berubah-ubah (evolusi). Hal ini disebabkan
oleh penggunaan metode acak pada awal Algoritma Genetik. Pemecahan masalah
dengan menggunakan Algoritma Genetik dapat dilihat pada gambar di bawah ini.
23
objective function
coding of solutions
genetic operators genetic search
solution
fitness assignment
mutation selection
replication genetic search
recombination crosssover
problem
specific
Gambar 2.1 Pemecahan Masalah Menggunakan Algoritma Genetik
2.6.1 Sejarah Algoritma Genetik
Algoritma Genetik pertama kali dikembangkan oleh John Holland bersama
rekan-rekan dan mahasiswa-mahasiswanya di University of Michigan pada tahun 1970-
an. Tujuan dari penelitian yang mereka lakukan adalah sebagai berikut :
- Menggambarkan dan menjelaskan secara tepat proses-proses adaptif dari sistem-
sistem alamiah.
- Merancang artificial systems software yang menerapkan mekanisme-mekanisme
yang penting dari sistem-sistem alamiah.
24
Sejak saat itu Algoritma Genetik berkembang dengan pesat. Algoritma Genetik
baik secara teori maupun secara empiris terbukti mempunyai kemampuan pencarian
yang tangguh dalam search space yang kompleks.
2.6.2 Latar Belakang Biologi
Setiap organism terdiri dari sel-sel. Masing-masing sel memiliki serangkaian
kromosom yang sama. Kromosom adalah kumpulan dari DNA yang membentuk sebuah
model untuk organism. Sebuah kromosom terdiri dari gen-gen rangkaian DNA. Masing-
masing gen membentuk protein tertentu. Dengan kata lain gen-gen tersebut membentuk
sebuah cirri khusus, misalnya warna mata. Beberapa kemungkinan warna mata tersebut
adalah warna mata hitam, biru, hijau, coklat yang disebut Alela. Masing-masing gen
tersebut mempunyai posisi dalam kromosom. Posisi tersebut disebut Lokus.
Semua kromosom disebut Genom. Beberapa rangkaian gen dalam genom disebut
Genotif. Sifat fisik atau mental yang terbentuk dari gentotif disebut sebagai Fenotif,
seperti warna mata, kepandaian.
Kehidupan di dunia dipengaruhi oleh proses seleksi alami, rekombinasi, dan
mutasi. Ketika dua organism bertemu dan melakukan perkawinan maka keturunan yang
terbentuk adalah hasil gabungan dari sebagian gen ayahnya dan sebagian lagi dari gen
ibunya. Proses ini disebut dengan Rekombinasi. Kadang-kadang beberapa gen dapat
terkena mutasi. Untuk lebih jelasnya, dapat dilihat pada gambar di bawah ini.
25
Gambar 2.2 Class Diagram Dari Algoritma Genetik Sumber : Obitko, Marek, 1998
2.6.3 Penjelasan Algoritma Genetik
Algoritma Genetik berbeda dengan teknik pencarian konvensional. Algoritma
Genetik diawali dengan inisialisasi sejumlah solusi secara random yang disebut
Populasi. Setiap individu dalam populasi tersebut disebut dengan kromosom. Kromosom
menggambarkan sebuah solusi terhadap masalah yang ada. Sebuah kromosom biasanya
berupa kumpulan string, tetapi bisa juga berupa kumpulan karakter. Suatu populasi
berada dalam satu generasi. Setiap kromosom yang ada dalam suatu populasi yang
berada dalam satu generasi, akan dievaluasi dengan menggunakan ukuran fitness value
(nilai kecocokan).
Untuk menciptakan suatu generasi yang baru, kromosom yang baru (offspring)
dibentuk dari hasil penggabungan duakromosom dari generasi sebelumnya melalui
proses penyilangan (crossover) atau hasil dari modifikasi sebuah kromosom melalui
proses mutasi (mutation). Generasi baru dibentuk dari hasil seleksi berdasarkan fitness
value yang terdiri dari beberapa induk kromosom dan offspring, yang lainnya dibuang
26
supaya jumlah kromosom dalam populasi tersebut tetap. Kromosom yang lebih baik
mempunyai kemungkinan yang lebih besar untuk dipilih, setelah melewati beberapa
generasi, Algoritma Genetik akan menemukan kromosom yang terbaik dan diharapkan
kromosom tersebut merupakan solusi yang terbaik (optimal) atau yang mendekati solusi
terbaik (suboptimal). Struktur Algoritma Genetik dapat dilihat pada gambar di bawah
ini.
Gambar 2.3 Struktur Algoritma Genetik Sumber : Obitko, Marek, 1998
Bentuk standard Algoritma Genetik dapat ditulis dalam pseudocode sebagai
berikut.
Procedure GeneticAlgorithm
Begin
T=0;
Initialize P(t);
Evaluate P(t);
While not (termination condition) do
Begin
t=t+1;
27
Select P(t) from P(t-1);
Recombine P(t);
Evaluate P(t);
End
End
Proses inisialisasi P(t) akan menghasilkan populasi awal P(0). Setiap alternative
solusi yang terdapat pada populasi awal kemudian dievaluasi. Jika solusi yang
diharapkan terpenuhi maka proses akan berhenti. Jika nilai optimal yang diharapkan
tidak terpenuhi maka Algoritma Genetik akan masuk ke dalam perulangan yang disebut
generation. Populasi P(t+1) akan dihasilkan dalam 2 tahap, yaitu tahap seleksi dan tahap
rekombinasi. Pada tahap seleksi, populasi sementara dibentuk dengan memilih sejumlah
alternative solusi yang terdapat dalam P(t) secara random (acak). Pada tahap
rekombinasi, akan dihasilkan populasi baru melalui proses penyilangan (crossover) dan
mutasi (mutation), kemudian populasi baru tersebut akan dievaluasi lagi. Jika nilai
optimal yang diharapkan masih tidak dipenuhi, maka Algoritma Genetik melanjutkan
proses perulangan, sedangkan kalau kondisi optimalnya dirasakan sudah terpenuhi maka
Algoritma Genetik akan keluar dari proses perulangan.
Dalam Algoritma Genetik terdapat banyak kombinasi operator dan parameter
yang dapat digunakan. Untuk kasus/constraint yang berbeda, operator dan parameter
yang digunakan pun berbeda, maka harus dilakukan uji coba untuk menentukan operator
dan parameter yang terbaik, sedangkan untuk kasus/constraint yang sama, operator dan
parameter yang digunakan sama.
28
2.6.4 Operator-operator dalam Algoritma Genetik
2.6.4.1 Encoding Kromosom
Suatu kromosom harus dapat mempresentasikan suatu solusi. Beberapa metode
encoding suatu kromosom antara lain :
1. Binary Encoding
Merupakan tipe encoding yang paling terkenal karena penelitian pertama
dari algoritma genetik menggunakan tipe ini dan juga relatif mudah
penggunaannya. Dalam binary encoding, setiap kromosom hanya terdiri dari bit
0 dan 1. Kelemahan dari tipe ini adalah sering tidak alami untuk beberapa
masalah dan beberapa perbaikan harus dilakukan setelah crossover dan atau
mutasi.
Tabel 2.1 Contoh Kromosom Dengan Binary Encoding
Kromosom A 101100101100101011100101
Kromosom B 111111100000110000011111
2. Permutation Encoding
Suatu kromosom merupakan string angka yang mempresentasikan suatu
posisi dalam urutan. Encoding semacam ini biasa digunakan untuk masalah
pengurutan tugas seperti Travelling Salesman problem.
Tabel 2.2 Contoh Kromosom Dengan Permutation Encoding
Kromosom A 1 5 3 2 6 4 7 9 8
Kromosom B 8 5 6 7 2 3 1 4 9
29
3. Value Encoding
Dalam value encoding suatu kromosom berisi urutan nilai-nilai. Nilai ini
dapat berupa angka, huruf, string, dan lain-lain. Tipe ini sangat bagus untuk
masalah khusus, seperti menemukan weight untuk neural network.
Tabel 2.3 Contoh Kromosom Dengan Value Encoding
Kromosom A 1.2324 5.3243 0.4556 2.3293 2.4545
Kromosom B ABDJEIFJDHDIERJFDLGLFTGEFT
4. Tree Encoding
Tabel 2.4 Contoh Kromosom Dengan Tree Encoding
Dalam tree encoding, suatu kromosom adalah suatu tree dari beberapa
objek, seperti function atau command dalam bahasa pemrograman. Encoding tipe
ini digunakan dalam bahasa pemrograman LISP
2.6.4.2 Fungsi Evaluasi
Fungsi evaluasi merupakan dasar untuk proses seleksi. Langkah-langkahnya
yaitu string dikonversi ke parameter fungsi, fungsi objective-nya dievaluasi, kemudian
mengkonvert fungsi objektif tersebut ke dalam fitness. Dimana untuk maksimasi
problem, fitness sama dengan fungsi objective-nya (Gen dan Cheng, 1997). Output dari
30
fungsi fitness dipergunakan sebagai dasar untuk menseleksi individu pada generasi
berikutnya.
Invers dari makespan dapat digunakan untuk menentukan fitness pada tiap
kromosom. Misalnya Ckmax menunjukkan makespan untuk kromosom ke-k, fitness
dihitung dengan menggunakan (Gen dan Runwei, 1997) :
2.6.4.3 Selection
Efek dari selection adalah mendapatkan parent secara probabilistic, meskipun
prosedur selection bersifat stokastik, tidak berarti Algoritma Genetik melakukan
pencarian tidak terarah. Probabilitas suatu kromosom untuk terpilih menjadi parent
berhubungan dengan fitness-nya. Berikut ini dipaparkan secara singkat beberapa jenis
selection :
- Fitness proportionate selection
Metode yang umum digunakan untuk parent selection adalah fitness
proportionate selection atau yang lebih dikenal dengan nama Roullete Wheel
Selection. Pada metode ini, probabilitas setiap kromosom untuk terpilih sebagai
parent adalah proporsional terhadap fitness-nya, secara matematis dapat
dirumuskan sebagai berikut :
Dimana P adalah ukuran populasi.
31
- Rank Selection
Pada metode ini, kromosom-kromosom diurut berdasarkan fitness-nya.
Probabilitas suatu kromosom untuk terpilih adalah proporsional terhadap
posisinya di dalam urutan tersebut.
- Tournament Selection
Metode tournament selection yang asli memilih K parent secara acak dan
mengembalikan yang terbaik. Tournament selection sering menghasilkan suatu
populasi yang lebih beragam daripada fitness proporsionate selection.
- Steady-State Selection
Ini bukan merupakan metode utama dalam memilih parent. Steady–state
selection merupakan metode seleksi dimana setiap generasi dengan kromosom
yang terbaik (memiliki fitness value tertinggi) akan terpilih untuk menciptakan
keturunan (offspring), sedangkan kromosom yang fitness value-nya rendah akan
tersingkir dan digantikan oleh keturunan baru tadi. Kemudian sisa populasi yang
dapat bertahan akan menjadi generasi yang baru.
- Elitism
Elitism adalah metode seleksi dimana satu atau lebih kromosom dengan
fitness value tertinggi langsung disalin ke generasi berikutnya tanpa mengalami
manipulasi. Hal ini dilakukan untuk mencegah kromosom-kromosom terbaik
hilang karena proses crossover dan mutasi, sehingga kualitas generasi berikutnya
dapat membaik.
32
Seleksi kromosom ini dilakukan menurut komposisi atau laju seleksi (selection
rate). Komposisi ini berbicara mengenai berapa jumlah kromosom terbesar dalam
populasi yang lolos ke periode berikutnya. Jumlah kromosom yang lolos ke periode
berikutnya didapatkan sebagai berikut :
Sedangkan jumlah kromosom yang tidak lolos adalah :
Fungsi fitness dalam perhitungan Algoritma Genetik yang digunakan pada
permasalahan penjadwalan ini adalah :
Keterangan :
x adalah penjadwalan yang dievaluasi
Pi soft (x) adalah nilai soft constraint ke-i
Pi hard (x) adalah nilai hard constraint ke-i
Wis adalah faktor bobot soft constraint ke-i
Wih adalah faktor bobot hard constraint ke-i
Algoritma Genetik untuk menentukan nilai maksimal fungsi 2 variabel bebas :
• Penyelesaian berupa pasangan nilai (x,y), sehingga individu didefinisikan
sevagai pasangan (x,y)
33
• Dalam hal ini digunakan gen float untuk penyederhanaan system, karena gen
biner akan menyebabkan besarnya ukuran kromosom
• Fungsi fitness adalah fungsi (x,y)
2.6.4.4 Crossover
Crossover operator adalah operator yang paling penting dalam Algoritma
Genetik. Crossover adalah suatu proses persilangan dua kromosom untuk menghasilkan
dua kromosom baru. Proses crossover antara dua induk dapat dilihat pada gambar
dibawah ini.
Gambar 2.4 Crossover Antara Dua Induk
Ada banyak macam metode crossover. Berikut ini dipaparkan beberapa
diantaranya.
- One-Point Crossover
Prosedur dari one-point crossover adalah secara acak membangkitkan
suatu bilangan (lebih besar dari 1 dan lebih kecil dari panjang kromosom)
sebagai posisi persilangan (crossover position), kemudian lakukan penukaran
34
substring dari kedua parent untuk substring setelah crossover position. Metode
one-point crossover dapat dilihat pada gambar dibawah ini.
Gambar 2.5 One-Point Crossover
Contoh :
A1 = 0 1 1 0 1 1 0 0
A2 = 1 0 1 1 0 1 1 0
Dengan crossover position 4, dihasilkan :
A1’ = 0 1 1 0 0 1 1 0
A2’ = 1 0 1 1 1 1 0 0
- Two-Point Crossover
Prosedur dari two-point crossover mirip dengan one-point crossover.
Metode ini menggunakan dua crossover position dan hanya substring yang
berada di antara 2 crossover position itu yang ditukar. Dengan metode ini, bagian
depan dan belakang dari kromosom yang bersangkutan dapat dipertahankan.
Contoh :
A1 = 0 1 1 0 1 1 0 1 1 0 1 1
A2 = 1 0 0 1 0 1 0 0 1 1 0 1
Dengan crossover position 3 dan 8, dihasilkan :
A1’ = 0 1 1 1 0 1 0 1 1 0 1 1
A2’ = 1 0 0 0 1 1 0 0 1 1 0 1
35
- N-point Crossover
Prosedur dari N-point crossover ini mirip dengan one-point crossover dan
two-point crossover. Pada metode ini harus dipilih n-crossover position dan
hanya substring yang berada di antara crossover position ganjil dan crossover
position genap yang ditukar sedangkan substring yang berada di antara crossover
position genap dan crossover position ganjil tidak berubah. Metode N-point
Crossover dapat dilihat pada gambar di bawah ini.
Gambar 2.6 N-Point Crossover
Contoh :
A1 = 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1
A2 = 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0
Dengan crossover position 3, 7, 11 dan 14 dihasilkan :
A1’= 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1
A2’= 1 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0
- Uniform Crossover
Pada metode ini, untuk setiap posisi (locus) dalam kromosom
dibangkitkan bilangan acak (random number) yang berkisar 0-1. Jika
bilangan acak tersebut lebih kecil daripada 0,5 maka child1 mendapat gen
dari parent1, child2 mendapat gen dari parent2. Begitu pula sebaliknya.
Misalnya dua parent,
36
A1= 1 1 0 1 0 0 0
A2= 1 0 1 1 1 1 1
Untuk melakukan uniform crossover dibangkitkan 7 bilangan
acak, misalnya 0,3;0,2;0,7;0,8;0,4;0,9;0,5 maka akan dihasilkan
dua child sebagai berikut :
A1’= 1 1 1 1 0 1 1
A2’= 1 0 0 1 1 0 0
- Arithemetic Crossover
Beberapa operasi aritmatik digunakan untuk menciptakan
keturunan (offspring)
Contoh :
A1 = 0 1 0 0 1 0 1 0 0 1
A2 = 1 0 0 0 1 0 1 1 0 0
Dengan operasi AND maka dihasilkan :
A1’= 0 0 0 0 1 0 1 0 0 0
A2’= 0 0 0 0 1 0 1 0 0 0
Crossover secara umum menggunakan arithmetic crossover dengan definisi :
Di mana r adalah bilangan 0 sampai dengan 1
37
2.6.4.5 Mutasi
Mutasi (Mutation) berfungsi untuk memastikan bahwa semua solusi yang
mungkin dapat dicapai, sebagai ilustrasi, posisi pertama dalam suatu kromosom bisa
berisi nilai 1 sampai dengan 15. Mungkin saja terjadi bahwa tidak ada kromosom yang
posisi pertamanya berisi nilai 5. Jika hanya dengan crossover saja, tidak akan pernah
didapatkan kromosom yang posisi pertamanya bernilai 5. Dalam hal ini, mutation
operator bisa sangat berguna. Ada 4 jenis mutasi yang ada, yaitu sebagai mutation
operator bisa sangat berguna. Ada 4 jenis mutasi yang ada, yaitu sebagai berikut :
1. Invertion Mutation
Pilih substring secara acak
1 2 6 4 5 3 7 8 9 10
Ubah urutan substring menjadi terbalik
1 2 3 4 5 6 7 8 9 10
2. Insertion Mutation
Pilih posisi secara acak
1 2 6 4 5 3 7 8 9 10
Insert pada posisi acak
1 2 3 6 4 5 7 8 9 10
3. Displacement Mutation
Pilih substring secara acak
1 2 6 4 5 3 7 8 9 10
Insert substring pada posisi acak
1 2 3 7 8 6 4 5 9 10
4. Raciprocal Exchange Mutation
38
Pilih dua buah posisi secara acak
1 2 6 4 5 3 7 8 9 10
Lakukan pertukaran
1 2 3 4 5 6 7 8 9 10
5. Mutasi Random
Metode ini memilih secara acak kromosom yang akan dimutasi,
kemudian dari kromosom yang terpilih. Jumlah gen yang akan dimutasikan
diacak antara 1-n gen, setelah itu akan dipilih gen-gen yang akan dimutasi
sebanyak jumlah mutasi gen, lalu gen-gen tersebut dimutasi dengan cara
menukar gen tersebut dengan gen baru. Mutasi random dapat digambarkan
sebagai berikut :
Kromosom awal : 0 0 1 0 1 1 0 0 1 0
Kromosom hasil : 0 0 1 0 0 1 0 0 1 0
6. Smart Mutation
Smart Mutation dapat mempercepat evolusi, karena mutasi terjadi pada
gen yang mempunyai fitness value terkecil atau penalty terbesar. Gen tersebut
akan diganti dengan gen lain secara acak.
2.6.5 Parameter-parameter dalam Algoritma Genetik
Seperti halnya dengan algoritma lainnya, Algoritma Genetik juga mempunyai
parameter-parameter dalam menjalankan fungsinya. Parameter-parameter ini akan
sangat berpengaruh terhadap kinerja Algoritma Genetik dalam menyelesaikan masalah
yang dihadapi.
39
2.6.5.1 Selection Rate
Selection rate menunjukkan jumlah kromosom dalam suatu populasi yang
mengalami seleksi. Jika selection rate 0% berarti tidak ada kromosom yang mengalami
seleksi. Jika selection rate 100% berarti semua kromosom dalam populasi mengalami
seleksi.
Selection rate yang rendah akan mengakibatkan proses pencarian berjalan lambat
karena pencarian banyak berulang pada kromosom yang lama, yang jelas bukan solusi
yang dicari. Sebaliknya, jika selection rate tinggi akan menyebabkan cepat hilangnya
kromosom-kromosom yang berpotensi besar menjadi solusi. Ini juga akan
mengakibatkan meningkatnya waktu pencarian.
2.6.5.2 Crossover Rate
Crossover rate menunjukkan seberapa sering crossover akan dilakukan. Jika
crossover rate 0% maka tidak terjadi crossover. Jika crossover rate 100% maka semua
kromosom akan mengalami crossover dan semua kromosom anak merupakan hasil
crossover.
Crossover rate yang terlalu tinggi akan menyebabkan kromosom-kromosom
yang berpotensi besar menjadi solusi cepat tergantikan oleh kromosom-kromosom baru
yang mungkin saja tidak berguna, sedangkan crossover rate yang terlalu rendah
mengakibatkan populasi cenderung statis sehingga waktu pencarian meningkat dan
lambat dalam mencapai convergence.
40
2.6.5.3 Mutation Rate
Mutation rate menunjukkan berapa banyak gen-gen dalam kromosom yang akan
mengalami mutasi. Jika mutation rate 0% maka tidak aka nada gen yang mengalami
perubahan sehingga kromosom anak murni merupakan hasil crossover. Jika mutation
rate 100% maka seluruh gen dalam suatu kromosom akan mengalami perubahan.
Mutation rate yang terlalu tinggi menyebabkan algoritma genetic cenderung
bekerja menyerupai random search, karena algoritma tersebut kehilangan
kemampuannya untuk belajar dari sejarah pencariannya. Sebaliknya, jika mutation rate
terlalu rendah, kromosom-kromosom yang mungkin berpotensi menjadi solusi tidak
pernah dicoba dan algoritma yang digunakan dapat dengan mudah terjebak dalam local
minimum.
2.6.6 Keuntungan dan Kerugian Algoritma Genetik
Menurut Mitsuo ada tiga keuntungan terbesar ketika menerapkan Algoritma
Genetik untuk masalah optimasi :
1. Algoritma Genetik tidak membutuhkan banyak kebutuhan matematika tentang
masalah optimasi. Algoritma Genetik akan mencari solusi berdasarkan evolusi
alami tanpa memperdulikan kekhususan dalam pengerjaan masalah tersebut.
Algoritma Genetik dapat menangani beberapa macam fungsi objektif dan beberapa
macam constraint baik linier maupun non linier.
2. Penggunaan operator evolusi membuat Algoritma Genetik menjadi sangat efektif
untuk pencarian secara global. Teknik pencarian secara tradisional merupakan
pencarian secara local dengan berdasarkan langkah-langkah prosedur yang
konvergen dan akan membandingkan nilai-nilai dari point-point terdekat kemudian
41
bergerak kearah point optimal yang relatif. Global optima dapat ditemukan jika
kita ada jaminan bahwa beberapa lokal optima adalah global optima.
3. Algoritma Genetik menyediakan fleksibilitas dengan batasan ketergantungan
heuristik untuk membuat implementasi yang efisien untuk sebuah pencarian
masalah.
Menurut Nugroho,Anto Satriyo (2003,p6) ada tiga kekurangan Algoritma
Genetik :
1. Algoritma Genetik tidak memiliki rumusan yang pasti, bagaimana mentransfer
parameter permasalahan ke dalam kode genetik.
2. Banyak parameter yang perlu diset secara baik agar proses evolusi dalam
Algoritma Genetik berjalan sesuai dengan yang diharapkan.
3. Penentuan rumus menghitung fitness merupakan hal yang sangat penting dan
mempengaruhi proses evolusi pada Algoritma Genetik. Sayangnya, tidak ada
prosedur yang baku bagaimana menentukan rumus tersebut.
Menurut Mitchell, kepopuleran Algoritma Genetik tidak terlepas dari beberapa
faktor :
1. Evolusi dikenal sebagai metode yang tangguh dan berhasil dalam proses adaptasi
pada sistem-sistem biologi.
2. Algoritma Genetik dapat melakukan pencarian pada ruang yang terdiri dari
kromosom-kromosom yang mengandung bagian-bagian yang berinteraksi dan
kompleks dimana pengaruh dari setiap bagian pada fitness dari kromosom yang
bersangkutan sulit untuk dimodelkan.
42
3. Algoritma Genetik dapat dengan mudah diparalelkan dan dapat mengambil
keuntungan dari harga perangkat keras komputer yang semakin menurun.
2.6.7 Penerapan Algoritma Genetik dalam Penyelesaian Masalah Penjadwalan
Untuk menyelesaikan masalah penjadwalan dengan pendekatan Algoritma
Genetik, pertama-tama harus dipilih suatu representasi dari solusi yang mungkin,
sebagai suatu kromosom. Dalam masalah penjadwalan, kromosom adalah representasi
dari suatu jadwal, setelah itu dibuatlah suatu populasi awal dengan ukuran N, setelah
populasi awal terbentuk, setiap kromosom dievaluasi berdasarkan fitness function.
Fitness score dari setiap kromosom ditentukan oleh berapa banyak constraint yang
dilanggar dan constraint apa saja yang dilanggar, selanjutnya kromosom-kromosom itu
akan memasuki tahap selection, crossover dan mutation. Proses ini akan berulang terus
sampai solusi yang diinginkan ditemukan atau sampai pada batas generasi tertentu.
Sejauh ini telah banyak dilakukan penelitian mengenai masalah penjadwalan,
dan dapat disimpulan bahwa :
1. Algoritma Genetik mudah secara komputasi meskipun untuk masalah
penjadwalan yang begitu rumit, meskipun demikian, penentuan nilai parameter-
parameter untuk kasus NP-Complete, khususnya penjadwalan adalah hal yang
sangat sulit karena sangat bergantung pada kasus dan implementasinya.
2. Algoritma Genetik standar yaitu Algoritma Genetik dengan operator-operator
standar sangat sulit memecahkan masalah penjadwalan karena dengan hanya 6
constraints, pencarian solusi membutuhkan waktu yang cukup lama.
3. Representasi solusi suatu masalah dalam kromosom sangat menentukan
kecepatan penyelesaian masalah tersebut oleh komputer.
43
4. Salah satu tindakan yang dapat dilakukan untuk mempercepat proses pencarian
solusi oleh komputer adalah memangkas search space sebelum masuk pada
proses evaluasi.
5. Ukuran populasi yang sangat besar akan meningkatkan waktu pencarian tetapi
memberikan kemungkinan yang lebih besar untuk mendapatkan solusi.