Top Banner
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

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

Mar 22, 2019

Download

Documents

dangngoc
Welcome message from author
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
Page 1: 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

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.

Page 2: 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

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.

Page 3: 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

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.

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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.

Page 9: 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

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.

Page 10: 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

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.

Page 11: 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

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.

Page 12: 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

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.

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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.

Page 16: 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

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.

Page 17: 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

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.

Page 18: 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

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

Page 19: 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

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;

Page 20: 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

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.

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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.

Page 24: 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

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.

Page 25: 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

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)

Page 26: 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

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

Page 27: 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

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

Page 28: 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

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,

Page 29: 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

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

Page 30: 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

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

Page 31: 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

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.

Page 32: 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

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.

Page 33: 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

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

Page 34: 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

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.

Page 35: 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

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.

Page 36: 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

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.