PESAWAT TERBANG
Oleh:
Nama : Ony Soerjo Wibowo NIM : 98410105020 Program : S1 (Strata Satu) Jurusan : Sistem Informasi
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA
ix
ABSTRAKSI ... vi
KATA PENGANTAR ... vii
DAFTAR ISI ... ix
DAFTAR TABEL ... xi
DAFTAR GAMBAR ... xii
DAFTAR LAMPIRAN ... xiv
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Perumusan Masalah ... 3
1.3 Batasan Masalah ... 3
1.4 Tujuan ... 3
1.5 Sistematika Penulisan ... 4
BAB II LANDASAN TEORI ... 5
2.1 Konsep Perawatan Pesawat Fokker F27 ... 5
2.2 Algoritma Genetika ... 10
2.3 Operator Algoritma Genetika ... 15
2.4 Fungsi Evaluasi ... 17
BAB III METODE PENELITIAN ... 20
3.1 Model Penelitian ... 21
3.2 Prosedur GA ... 31
3.3 Rancangan Evaluasi ... 39
x
BAB V PENUTUP ... 50
5.1 Kesimpulan ... 50
5.2 Saran ... 51
DAFTAR PUSTAKA ... 52
BIODATA ... 53
xi
Tabel 2.1 Master Schedule Program Perawatan Pesawat Fokker F27 ... 7
Tabel 2.2 Equalized Master Schedule Program Perawatan Fokker F27 ... 8
Tabel 2.3 Hubungan Proporsi T dengan Intensitas I ... 14
Tabel 3.1 Representasi Maintenance Program Menggunakan Record Atau Tuple ... 30
Tabel 3.2 Representasi Kromosom Menggunakan Record Atau Tuple ... 30
Tabel 4.1 Peralatan Evaluasi ... 42
Tabel 4.2 Kondisi Awal Database Pada Saat Evaluasi ... 42
xii
Gambar 2.1 Jadwal Perawatan Pesawat Fokker F27 ... 9
Gambar 2.2 Tukar Silang Satu Titik ... 15
Gambar 2.3 Tukar Silang Dua Titik ... 16
Gambar 2.4 Tukar Silang Sebarang Titik ... 17
Gambar 3.1 Scheduling Context Diagram ... 21
Gambar 3.2 DFD Level 0, Scheduling Management ... 22
Gambar 3.3 DFD Level 1, Scheduling Management ... 22
Gambar 3.4 DFD Level 2, Proses Manipulasi Data ... 23
Gambar 3.5 DFD Level 2, Proses GA ... 24
Gambar 3.6 DFD Level 2, Proses Pelaporan ... 25
Gambar 3.7 E-R Diagram Scheduling Management ... 25
Gambar 3.8 Individu, Kromosom dan Gen Dari Sistem Perawatan ... 29
Gambar 3.9 Flow Chart Proses Pembuatan Jadwal dengan Genetic Algorithm ... 31
Gambar 4.1 Hasil Pembangkitan 250 Populasi, 10 Individu Per Populasi dengan Truncation Level 0.3 Memakan Waktu 1 Jam 26 Menit ... 43
Gambar 4.2 Grafik Fitness Populasi Pada Truncation Level 0.2 ... 44
Gambar 4.3 Grafik Fitness Populasi Pada Truncation Level 0.3 ... 44
Gambar 4.4 Grafik Fitness Populasi Pada Truncation Level 0.7 ... 45
Gambar 4.5 Grafik Fitness Populasi Pada Truncation Level 0.8 ... 45
Gambar 4.6 Perbandingan Hasil Evaluasi dengan Truncation Level yang Berbeda ... 46
xiii
xiv
Lampiran 1. Cara Menggunakan Aplikasi Aircraft Maintenance Scheduling ... 54
Lampiran 2. Equalized Maintenance Program Fokker F27 ... 62
Lampiran 3. Hasil Print Out Proses Dari GA Untuk Equalized Maintenance Program Fokker F27 ... 67
Lampiran 4. Listing Program Proses GA ... 72
Lampiran 5. Listing Program Print Aircraft Maintenance Program ... 136
1 1.1 Latar Belakang Masalah
Pesawat terbang merupakan alat transportasi udara yang sangat padat dengan teknologi tinggi. Faktor keselamatan merupakan penentu dari tingkat kelaikannya untuk mengudara. Untuk itu, setiap bagian struktur dan komponen yang terpasang pada pesawat tersebut harus selalu diperiksa pada interval tertentu dan dirawat sebagaimana mestinya sesuai yang tertera dalam Buku Pedoman Perawatannya.
Fokker F27 adalah sebuah pesawat terbang berbaling-baling yang bermesin ganda. Buku pedoman perawatan untuk pesawat terbang jenis Fokker F27 tersebut dituangkan dalam sebuah Master Schedule yang disebut dengan
Fokker F27 Customer Maintenance Program. Meskipun merupakan jenis pesawat yang tua tetapi sampai saat ini Buku Pedoman Perawatannya masih selalu diperbarui sebagai jaminan untuk keselamatan penerbangan (airworthy).
Struktur distribusi penggunaan personil dalam buku pedoman perawatan pesawat pada pesawat Fokker F27, telah dibuat oleh pabrik dengan menggunakan metode tertentu dimana susunannya diasumsikan telah optimal dalam hal pembagian jumlah personil yang dibutuhkan dalam setiap interval pelaksanaanya. Namun demikian, metode tersebut tidak diberikan kepada operator pesawat sehingga setiap kali terdapat perubahan, operator harus mengeluarkan biaya besar ke pabrik pesawat untuk menyusun kembali distribusi personil tersebut. Oleh sebab itu susunan jumlah personil yang merawat sebuah pesawat terbang sangat mempengaruhi biaya perawatan sehingga pembuatan prototype sistem informasi perawatan pesawat terbang sangat penting. Menurut hasil sebuah riset yang dilakukan oleh Joan Hao Wang (1999:18) dalam Scheduling Shipboard
Maintenance Task Using Genetic Algorithms and A Heuristic Method, penyeimbangan kebutuhan personil dalam perawatan dapat dilakukan dengan metode Algoritma Genetika. Riset tersebut dilakukan pada pembuatan buku pedoman perawatan untuk sebuah kapal laut.
1.2 Perumusan Masalah
Dengan cara mengubah taraf truncation selection pada metode GA, ingin dibuktikan apakah penyeimbangan pembagian personil dalam Buku Pedoman Perawatan Pesawat Foker F27 dapat dioptimalkan.
1.3 Pembatasan Masalah
Batasan permasalahan dari aplikasi yang akan dirancang terutama ditekankan pada Operator Genetika dengan perincian sebagai berikut :
a. Truncation Selection akan dilakukan secara variabel dengan jangkauan 0.2 – 0.8
b. Tukar Silang atau crossover yang digunakan adalah Tukar Silang Sebarang Titik (Uniform Crossover)
c. Mutasi yang ditetapkan adalah mutasi acak dengan tingkat probabilitas 0.01. d. Fungsi ketepatan (Fitness Function) untuk mendapatkan nilai optimal
menggunakan metode Mean Square Error (MSE) dan Coefficient Variation
(CV) dari distribusi yang akan diukur dengan metode MSE tersebut.
1.4 Tujuan
Tujuan yang akan dicapai dalam penelitian ini adalah:
a. Membuat rancang bangun perangkat lunak yang digunakan untuk penunjang pembuatan penjadwalan perawatan pesawat secara otomatis
1.5 Sistematika Penulisan
Penulisan tugas akhir ini dibagi dalam 5 bab yaitu : BAB I PENDAHULUAN
Bab ini akan menjelaskan tentang seluruh Latar Belakang Masalah, Perumusan Masalah, Pembatasan Masalah, Tujuan, dan Sistematika Penulisan yang berhubungan dengan penelitian dalam Tugas Akhir ini. BAB II LANDASAN TEORI
Bab ini berisi teori yang berhubungan dengan Master Schedule untuk pesawat Fokker F27, penjelasan tentang Algoritma Genetika dan teori penentuan nilai fitness dengan menggunakan metode MSE.
BAB III METODE PENELITIAN
Bab ini akan membahas Desain, Proses dan Rancangan Evaluasi dari perangkat lunak yang akan dijadikan model penelitian.
BAB IV IMPLEMENTASI DAN EVALUASI
Bab ini menguji dan membahas kinerja Algoritma Genetika dalam menyelesaikan pembuatan pedoman penjadwalan pesawat terbang dengan batasan sesuai dengan sub bab 1.3, Pembatasan Masalah.
BAB V PENUTUP
5
2.1 Konsep Perawatan Pesawat Fokker F27
Buku Pedoman Perawatan yang diberikan oleh pabrik yang akan
digunakan sebagai pedoman perawatan adalah sebuah panduan sebagaimana
layaknya sebuah buku pedoman perawatan kendaraan bermotor yang dipegang
oleh penggunanya. Keseimbangan jumlah personil yang diperlukan dalam setiap
interval perawatan tersebut sangat penting karena berhubungan dengan
pelaksanaannya di Bengkel Perawatan (Maintenance Facility) dimana pada saat
yang bersamaan ada kemungkinan terdapat pesawat lain yang akan atau sedang
melaksanakan perawatan di bengkel tersebut. Apabila Pedoman Perawatan yang
ada tidak mempunyai keteraturan dalam perencanaan penggunaan personil, maka
akan sangat sulit bagi pengelola bengkel untuk menjadwal pelaksanaan perawatan
untuk beberapa pesawat sekaligus di bengkelnya.
Fokker F27 adalah sebuah pesawat terbang berbaling-baling dengan
mesin ganda. Pesawat ini pertama kali dibuat pada tahun 50 an. Versi terbaru dan
terakhir dibuat pada tahun 70 an. Saat ini pesawat tersebut sudah tidak diproduksi
lagi tetapi metode perawatannya dalam Buku Pedoman Perawatan secara
terus-menerus diperbaiki sampai dengan revisi terakhir yang digunakan oleh PT.
Merpati Nusantara yaitu tanggal 30 November 1995. Perbaikan atau revisi ini
dilakukan sebagai bentuk tanggung jawab pabrik sebagai jaminan keselamatan
(airworthy) seperti yang disyaratkan dalam Peraturan Penerbangan Sipil (Civil
Pelaksanaan perawatan pesawat Fokker F27 dilakukan pada interval
tertentu. Interval tersebut dapat dinyatakan dengan Hari Kalender (Calendar Day),
Bulan (Month), Tahun (Year), Jam Terbang (Flight Hours) dan Pendaratan
(Flight Cycle).
Setiap kegiatan perawatan, selelau diperlukan personil untuk
pelaksanaannya. Untuk memudahkan perhitungan dalam perencanaan perawatan,
kebutuhan personil dinotasikan dengan Man Hour (MH). Oleh sebab itu, apabila
dinyatakan bahwa suatu pekerjaan dengan nomor X memerlukan 1 MH berarti
secara prinsip, pekerjaan tersebut dapat dilaksanakan oleh 1 orang dalam 1 jam.
Pada saat yang bersamaan, dapat pula terjadi bahwa dalam suatu interval
tertentu, tercakup pula pelaksanaan pekerjaan interval yang lain apabila interval
tersebut masih merupakan faktor kelipatannya. Misal, dinyatakan bahwa suatu
pekerjaan harus dilaksanakan pada interval 500 Jam Terbang, maka secara
otomatis pekerjaan yang harus dilakukan pada interval 250 Jam Terbang juga
harus dilaksanakan pada saat yang sama karena merupakan faktor kelipatan dari
500 Jam.
Sejak pertama kali pedoman perawatan pesawat Fokker F27 ini
diterbitkan, interval pelaksanaan perawatannya dinyatakan dengan notasi huruf
abjad seperti A, B, C dan seterusnya (Fokker F27 Customer Maintenance Program
1995:2). Secara umum konsep perawatan pesawat Fokker F27 dinyatakan sebagai
Tabel 2.1 Master Schedule Program Perawatan Pesawat Fokker F27
No Jenis Inspeksi Interval
1 Service 1 Check (S1) Sehari sekali (Daily)
2 Service 2 Check (S2) 2 hari sekali (48 jam)
3 A Check (A) 125 Jam Terbang
4 B Check (B) 500 Jam Terbang atau 6 Bulan
5 C Check (C) 2000 Jam Terbang atau 18 Bulan
6 2 C Check (2C) 4000 Jam Terbang atau 3 Tahun
7 D Check (D) 8000 Jam Terbang atau 6 Tahun
Kelemahan sistem di atas adalah apabila interval perawatannya telah
mencapai tahapan yang tinggi (misal interval 4000 Jam Terbang) maka terdapat
kesulitan untuk mengatur kebutuhan personil karena pada interval tersebut
terdapat pula pekerjaan yang harus dilakukan untuk interval yang merupakan
kelipatan dari 4000 Jam Terbang (2000, 1000, 500 dan seterusnya). Sehingga
terdapat akumulasi kebutuhan personil yang menyebabkan pelaksanaan perawatan
menjadi lama dan membutuhkan personil yang banyak. Oleh sebab itu
pelaksanaan perawatan pada interval yang tinggi akan memerlukan fasilitas
perawatan yang memadai dengan jumlah personil yang cukup. Namun demikian,
hal ini akan menjadi tambah rumit ketika pada saat yang bersamaan dan di tempat
yang sama terdapat pula pesawat lain yang juga melakukan pelaksanaan
perawatan.
Tahun 1995, PT. Merpati Nusantara meminta pabrik pesawat Fokker F27
untuk mengubah konsep Pedoman Perawatan tersebut di atas untuk
mengoptimalkan penggunaan personil sehingga diharapkan pada setiap interval
tertentu, dibutuhkan jumlah personil yang relatif sama. Hasilnya, dengan
menggunakan metode tertentu, pabrik pesawat Fokker F27 membuat konsep baru
Maintenance Program Guidelines, 1995:11). Prinsip pada konsep ini adalah
menyeimbangkan penggunaan personil pada setiap interval. Oleh pabrik pesawat
Fokker F27, metode dalam Tabel 2.1 diubah secara total sehingga membentuk
sebuah susunan yang lain seperti yang terlihat pada Tabel 2.2 di bawah ini.
Tabel 2.2 Equalized Master Schedule Program Perawatan Pesawat Fokker F27
Segments MH/Check Insp. Type Cycle 1 MH/Check Cycle 2 Insp. Type
1 14.3 14.9
2 184.2 C1 173.2 C1
3 14.8 14.8
4 166.2 C2 177.3 C2
5 16.2 14.3
6 183.1 C3 184.5 C3
7 14.3 14.9
8 153.0 C4 142.0 C4
9 14.3 14.3
10 173.8 C1 178.7 C1
11 16.8 14.8
12 165.7 C2 168.6 C2
13 14.3 14.9
14 194.2 C3 183.1 C3
15 14.3 14.3
16 514.0 D1 493.9 D2
Berdasarkan F27 Customer Maintenance Program (1995:2), dinyatakan
bahwa untuk perawatan minor seperti yang tercantum dalam Tabel 2.1 nomor 1 –
3 di atas, tetap dipertahankan seperti apa adanya sedangkan untuk butir 4 dan
seterusnya dilakukan pengolahan dan perubahan dengan hasil seperti dalam Tabel
2.2 di atas. Menurut Fokker F27 Customer Maintenance Program Guidelines
(1995:12), Pedoman Perawatan untuk pesawat Fokker F27 dibagi dalam
mengkombinasikan beberapa perawatan terjadwal. Cycles terdiri atas beberapa
segment yang harus dilaksanakan secara sekuensial.
Terlihat dalam Tabel 2.2 di atas, terdapat keteraturan dalam pengaturan
MH sedemikian rupa sehingga distribusi MH relatif sama pada setiap segment
yang berhubungan. Hal ini akan memudahkan bagi perencana dalam
mengalokasikan sumber daya yang dibutuhkan dalam bengkel perawatan
(Maintenance Facility).
Dalam tabel berikut ini, diperlihatkan Pedoman Perawatan seperti yang
tercantum dalam F27 Customer Maintenance Program. Struktur penjadwalan
selengkapnya dapat dilihat dalam Lampiran 2.
2.2 Algoritma Genetika
2.2.1 Gambaran Umum Algoritma Genetika
Algortima Genetika atau Genetic Algorithms (GA) diperkenalkan
pertama kali oleh John Holland pada tahun 1975. GA mensimulasikan proses
evolusi organisme di alam ini. Dalam proses tersebut berlaku seleksi alam dimana
individu yang sukses akan mampu mengembangkan keturunnya sedangkan
individu yang gagal akan punah. Dalam GA berlaku pula istilah-istilah sesuai
dengan ilmu genetika. Istilah-istilah tersebut adalah:
1. Gen, yaitu unit dasar yang digunakan untuk mengontrol properti atau
fitur-fitur dari suatu solusi permasalahan.
2. Kromosom, yaitu gen yang berurutan secara linier yang digunakan untuk
menggambarkan kemungkinan-kemungkinan solusi suatu permasalahan.
3. Lokus, yaitu posisi suatu kromosom.
4. Ketepatan (fitness), yaitu suatu kriteria yang ditetapkan untuk mengevaluasi
tingkat kebaikan (goodness) suatu individu dibandingkan dengan seluruh
populasi.
GA telah secara sukses digunakan dalam perbagai macam aplikasi
seperti: (1) Optimasi fungsi numerik, (2) Pengolahan citra, (3) Masalah
transportasi, dan lain-lain yang sehubungan dengan Program Linier.
2.2.2 Cara Kerja Algoritma Genetika
GA sebenarnya merupakan suatu teknik pencarian yang didasarkan pada
seleksi alam. Mula-mula suatu himpunan solusi (kromosom) dibangkitkan.
Kromosom dalam populasi mengalamai evolusi dalam suatu proses iterasi yang
dievaluasi dengan suatu fungsi evaluasi (fitness function). Kromosom dengan nilai
yang lebih baik mempunyai kemungkinan yang lebih besar untuk dipilih menjadi
induk dalam proses reproduksi.
Untuk menghasilkan generasi selanjutnya, dibentuk kromosom baru yang
dengan cara melakukan tukar silang (crossover) dan memodifikasi kromosom
dengan operator mutasi. Setelah beberapa generasi, populasi akan konvergen pada
kromosom terbaik, yang diharapkan sebagai solusi yang optimal.
Algoritma tersebut di atas dapat digambarkan sebagai berikut:
a. Langkah 1, Bangkitkan populasi random (inisialiasi).
b. Langkah 2, Evaluasi fitness populasi.
c. Langkah 3, Ulangi proses di bawah ini sampai suatu solusi ditemukan.
1. Tukar Silang
2. Mutasi
3. Evaluasi
4. Seleksi
Langkah tersebut diputar sampai sampai iterasi tn untuk mendapatkan
solusi optimal atau dihentikan dengan fungsi tertentu.
A Inisialisasi
Menurut Joan Hao Wang (1999:16), ada banyak cara untuk
membangkitkan populasi
t
n t 1 t x ...x
P yaitu dengan cara random atau disusun
sedemikian rupa sesuai keinginan kita (heuristic). Biasanya untuk memudahkan
B Reproduksi
B.1 Reproduksi Generasional
Menurut Joan Hao Wang (1999:14), dalam Reproduksi Generasional,
seluruh individu dalam populasi diganti pada setiap generasi atau setiap iterasi.
B.2 Reproduksi Steady State
Dalam metode ini biasanya dipilih dua kromosom sesuai dengan
prosedur seleksi yang digunakan, kemudian dilakukan tukar silang untuk
mendapatkan satu atau dua keturunan dan hasilnya dikembalikan ke populasi
awal. Pada metode ini, hanya kromosom yang mempunyai nilai ketepatan rendah
akan digantikan oleh kromosom yang baru.
B.3 Reproduksi Elitisme
Dalam metode P persen dari kromosom terbaik akan dipilih untuk
membentuk generasi selanjutnya. Individu lain sebesar 1-P persen akan
dibangkitkan dari proses tukar silang dan mutasi.
C Seleksi
C.1 Seleksi Berdasarkan Ketepatan (Fitness-based Selection)
Selama iterasi t, sistem GA mempertahankan solusi yang potensial,
t
n t 1 t x ...x
P . Setiap solusi t
i
x , dievaluasi sedemikian rupa dengan fungsi f(x)
untuk mendapatkan ketepatan solusi atau fitness-nya. Setiap kromosom akan
mempunyai kesempatan dipilih berdasarkan proporsi fitness-nya dalam populasi.
Nama lain dari seleksi ini adalah Roulette Wheel Selection. Kelemahan metode ini
terdapat pada pencapaian nilai fitness yang menjadi konvergen sebelum solusi
10. Maka nampak bahwa perbandingan rentang tersebut adalah 2:1. Disini
perbedaan antara individu dengan nilai fitness tinggi dan rendah sangat jelas.
Akan tetapi apabila nilai rentang tersebut ditambah 1000 sehingga rentang
tersebut menjadi 1005 – 1010 maka nampak bahwa seolah-olah semua individu
mempunyai nilai fitness yang relatif sama. Dalam kasus tertentu iterasi tersebut
akan berhenti sebelum solusi optimal ditemukan. Inilah yang disebut konvergen.
C.2 Seleksi Berdasarkan Ranking (Rank-based Selection)
Individu terbaik dipilih berdasarkan posisinya pada populasi. Urutan
ranking disusun berdasarkan nilai fitnessnya.
C.3 Seleksi Berdasarkan Turnamen (Tournament-based Selection)
Dalam seleksi ini, dipilih individu secara acak dari populasi sebagai
inisial individu K , dan tentukan nilai fitness-nya. Ulangi langkah tersebut untuk i
mendapatkan individu Ki1 dan hitung nilai fitness-nya. Bandingkan nilai fitness
i
K dengan Ki1. Apabila Ki1 lebih baik dari K maka maka pilih individu i Ki1
tersebut namun apabila tidak, ulangi langkah di atas sampai percobaan ke N.
Apabila sampai percobaan ke N tidak didapatkan individu yang lebih baik maka
pilih individu awal.
C.4 Seleksi Berdasarkan Pemotongan Sebagian (Truncation-based
Selection)
Pada seleksi ini, individu diurut berdasarkan nilai fitness-nya. Kemudian
P persen dari individu akan diseleksi menjadi induk. Kemudian dipilih lagi
individu sebuah populasi pada iterasi selanjutnya (iterasi t + 1), dibentuk
dari populasi baru ini akan dilakukan tukar silang (crossover) dan mutasi untuk
mendapatkan solusi yang baru. Proses tersebut diulang sampai dengan percobaan
ke N. Menurut Dragan Cvetkovic dan Heinz Muhlenbein (1994:9), proporsi
optimal untuk pemotongan (truncate) T untuk seleksi ini adalah 20% – 40% dari
populasi.
Karena populasi baru diambil dari sebagian populasi lama, maka muncul
masalah independensi I antar populasi. Dengan kata lain muncul kesamaan antara
populasi satu dengan populasi berikutnya. Menurut Dragan Cvetkovic dan Heinz
Muhlenbein (1994:4), independensi ini dinyatakan dengan rumus
2 / 2 0 2 T 1 I t e
dimana to didefinisikan sedemikian rupa dengan aturan:
T =
2 1 T untuk dt, 1 2 1 2 1 T untuk dt, 1 2 1 0 2 0 0 2 0 0 0
t t t t e e Semakin tinggi proporsi T yang diambil untuk populasi baru maka
tingkat independensinya makin kecil atau semakin tinggi proporsi T, maka
populasi berikutnya akan memiliki kesamaan dengan populasi sebelumnya. Tabel
berikut ini adalah hasil perhitungan dari rumus di atas.
Tabel 2.3 Hubungan Proporsi T dengan Intensitas I
T 1% 10% 20% 30% 40% 50% 60% 70% 80%
2.3 Operator Algoritma Genetika
2.3.1 Tukar Silang
Tukar silang merupakan operator dalam GA yang sangat penting. Tukar
silang adalah proses pertukaran sebagian kromosom satu dengan kromosom lain.
A Tukar Silang Satu Titik
Tukar silang satu titik artinya menukarkan sebagian kromosom dengan
kromosom yang lain pada satu titik dimana posisi pertukaran (cut point) dilakukan
secara acak, seperti terlihat pada gambar berikut ini.
Gambar 2.2 Tukar Silang Satu Titik
B Tukar Silang Dua Titik
Tukar silang dua titik artinya menukarkan sebagian kromosom dengan
kromosom yang lain pada dua titik dimana posisi pertukaran (cut point) dilakukan
Gambar 2.3 Tukar Silang Dua Titik
C Tukar Silang Sebarang Titik (Uniform Crossover)
Tukar silang sebarang titik artinya menukarkan sebagian kromosom
dengan kromosom yang lain pada titik sebarang dimana posisi pertukaran (cut
Gambar 2.4 Tukar Silang Sebarang Titik
2.3.2 Mutasi
Mutasi berarti melakukan perubahan terhadap satu gen atau lebih, dalam
kromosom secara acak dengan probabilitas perubahan sesuai dengan mutation
rate-nya. Hal ini dimaksudkan untuk mendapatkan individu yang variatif.
Menurut Zbigniew Michalewicz (1996:41), mutasi dilakukan bit demi bit dalam
susunan individu tersebut.
2.4 Fungsi Evaluasi
Fungsi evaluasi memainkan peranan penting dalam populasi untuk
menentukan fitness-nya. Fungsi ini dapat berbeda-beda sesuai dengan
permasalahan yang akan dipecahkan. Biasanya, dalam masalah program linier,
secara deterministik fungsi evaluasi dapat dinyatakan dengan maximumkan z atau
minimumkan z. Fungsi fitness lain yang dapat digunakan untuk fungsi evaluasi
optimasi adalah dengan menggunakan metode Mean Square Error (MSE).
Menurut Glenn J. Battaglia (1996:31), MSE merupakan sebuah metode
pengukuran statistik yang cukup tua. Definisi MSE adalah rata-rata kuadrat dari
deviasi antara obyek yang diukur dengan target pengukurannya. Definisi tersebut
2 1 xi Tm 1
MSE
m
i
dimana:
xi = nilai x ke i pada obyek yang diukur dalam ruang lingkup m
T = target pengukuran
Nilai MSE dinyatakan dengan 0 apabila tidak terdapat deviasi antara
obyek yang diukur dengan target pengukurannya atau dengan kata lain terdapat
kesamaan identik antara obyek yang diukur dengan target pengukurannya. Dalam
kasus pengukuran fungsi evaluasi, nilai terkecil pada iterasi penghitungan MSE
dari obyek yang dievaluasi menyatakan bahwa hasil proses sudah mencapai taraf
optimum.
Karena MSE membandingkan 2 distribusi antara obyek yang diukur
dengan target pengukurannya, maka perlu juga diketahui apakah ditribusi pada
obyek yang diukur tersebut lebih baik dari pada targetnya. Dalam MSE,
pengukuran tersebut dinyatakan dengan Koefisien Variasi yang dinyatakan
dengan x100
X S
CV
dimana
CV = Coefficient Variation
S = deviasi standar distribusi
Karena rumus deviasi standar adalah
m T x S
m
i i
1
2
dimana
21 i
T x m
1
m
i
adalah rumus MSE, maka dengan demikian dapat pula dinyatakan bahwa
100
X MSE
20
Algortima pencarian dengan menggunakan model reproduksi sexual
dinamakan Genetic Algorithm (GA). Proses reproduksi dilakukan dengan jalan merekombinasi 2 (dua) individu menjadi sebuah individu lain atau offspring. Proses GA dalam mencari suatu nilai optimum adalah sebagai berikut:
1. Penentuan model representasi genetika dari problem yang dihadapi yang
berupa model dari sistem buatan, representasi individu, pembatas, fungsi
evaluasi.
2. Pembangkitan generasi awal dengan memproses database.
3. Penentuan nilai fitness (nilai ketepatan) dari setiap individu berdasarkan
struktur gennya. Nilai fitness ini dijadikan sebagai ukuran apakah individu
tersebut sudah optimal atau belum.
4. Pemilihan individu dengan nilai fitness terbaik untuk dijadikan induk dalam
menghasilkan individu-individu baru.
5. Proses reproduksi yang terdiri dari Crossover, Mutation, dan Replacement. Dari proses reproduksi ini dihasilkan individu baru.
Dengan melakukan proses di atas secara berulang-berulang, diharapkan
induk yang baik akan menghasilkan suatu generasi dengan individu-individu yang
lebih baik. Untuk menerapkan hal-hal di atas maka diperlukan suatu Data Flow
3.1 Model Penelitian
Dalam melakukan analisis terhadap permasalahan, dibuat beberapa
tahapan model penelitian. Tahapan tersebut adalah: (1) membuat data flow
diagram sistem perawatan dan membuat struktur database-nya, (2) menetapkan representasi individu dan fungsi evaluasi (3) menetapkan kesimpulan.
3.1.1 Data Flow Diagram (DFD)
DFD di bawah ini adalah merupakan DFD dari sistem perawatan dimana
dalam salah satu proses penetapan master scheduling, fungsi GA ini dimanfaatkan
untuk mencari penjadwalan yang optimum dari seluruh pekerjaan dalam sistem
perawatan. Context Diagram dan DFD dari sistem perawatan tersebut adalah
sebagai berikut: 0 SCHEDULING PROCESS 1 DATA MANIPULATION PROCESS 3 REPORTING PROCESS 2 GA PROCESS 1.1 ADD DATA PROCESS 1.2 DELETE DATA PROCESS 1.3 SAVE DATA PROCESS 3.1 MAINTENANCE PROGRAM REPORTING PROCESS 3.2 GA REPORTING PROCESS 2.1 INITIAL POPULATION PROCESS 2.2 REPRODUCTION PROCESS 2.3 EVALUATION PROCESS 2.4 DECISION PROCESS
Request Schedule Schedule Requisition Document MP Create MP 0 Scheduling Process +
Engineering Production Planning
Control
Gambar 3.2 DFD Level 0, Scheduling Management
[Schedule Requisition] [Request Schedule]
[Document MP] Report Chromosome
Initialized Data
Select Task No
Save Data
Select Data To Initiate [Create MP] Engineering Production Planning Control 1 Data Manipulation Process + 2 GA PRocess + 3 Reporting Process + 2 Table_MPD_Amp Engineering Production Planning Control
Add Component
[Request Schedule] [Schedule Requisition]
[Initialized Data]
[Save Data] Delete Data
Select Data
[Select Data To Initiate]
Add Data [Create MP]
Engineering
2 Table_MPD_Amp
2 Table_MPD_Amp
GA PRocess 1.2
Add Data Process
1.3 Delete Data
Process
1.4 Save Data
Process
1.5 Initiate Schedule
Process
Production Planning
Control Engineering
1.1 Requisition
Process
7 Table_MPD_Cmp
Selected Best Chromosome
[Report Chromosome] Selected Chromosome
Eval Chrom Update
Eval Chrom Selection Eval Prop Update
Eval Pop Selection
Repro Chrom Added Repro Chrom Selected
Eval Gen Selected
Repro Gen Added Repro Gen Selected Create Gen
[Select Task No]
Repro Pop Added
Repro Pop Selected
Create Chrom Create Pop
[Initialized Data]
2 Table_MPD_Amp
Data Manipulation Process
Reporting Process 2.1 Initialize Population Process 2.2 Reproduction Process 2.3 Evaluation Process 2.4 Decision Process 3 Table_MPD_Population 4 Table_MPD_Chromosome 5 Table_MPD_GenAlternatif
6 TABLE_MPD_REL_MPDAMP_MTOPF27_SCHEDULE
[Document MP] [Report Chromosome] GA PRocess Production Planning Control 3.1 Report Printing Process
Gambar 3.6 DFD Level 2, Proses Pelaporan
AMP_TASKNO = AMP_TASKNO
POPULATION_ID = POPULATION_ID
CHROMOSOME_ID = CHROMOSOME_ID AMP_TASKNO = AMP_TASKNO
POPULATION_ID = POPULATION_ID TABLE_MPD_AMP AMP_TASKNO LongInteger AIRCRAFT_ID Integer TASKTYPE_ID Text(5) SKILL_ID Text(4) AMP_SUBJECT Text(70) ATA_ID Text(4) UM_ID Text(15) AMP_DESCRIPTION Memo AMP_INTERVAL Text(15) AMP_MANHOURS DateTime AMP_MENRQUIRED Integer AMP_REFMPD Text(15) AMP_RII Text(5) AMP_MRB Text(5) TABLE_MPD_POPULATION POPULATION_ID LongInteger AIRCRAFT_ID Integer POPULATION_FITNESSVALUE DateTime POPULATION_REMARK Text(50) TABLE_MPD_CHROMOSOME CHROMOSOME_ID LongInteger POPULATION_ID LongInteger CHROMOSOME_NUMBER LongInteger CHROMOSOME_FITNESSVALUE DateTime TABLE_MPD_GENALTERNATIF GA_NOMOR LongInteger AMP_TASKNO LongInteger CHROMOSOME_ID LongInteger POPULATION_ID LongInteger GA_URUT LongInteger GA_AWALINSP Integer GA_JRKANTARINSP Integer GA_MHRS DateTime TABLE_MPD_REL_MPDAMP_MTOPF27SC AMP_TASKNO LongInteger SEQ01 Text(3) SEQ02 Text(3) SEQ32 Text(3)
Berdasarkan E-R Diagram, kemudian dibuat struktur file database
dengan perincian sebagai berikut:
a. Nama File : Table_MPD_Amp Primary Key : AMP_TASKNO Foreign Key : -
[image:33.612.101.512.124.647.2]File Relasi : TABLE_MPD_REL_MPDAMP_MTOPF27SCHED, Table_MPD_GenAlternatif
Keterangan : Tabel Utama untuk menyimpan data penjadwalan perawatan
No. Nama Field Tipe Data Panjang Keterangan 1. Amp_Taskno Long Integer Kode Nomor
Pekerjaan
2. Aircraft_ID Integer Kode Jenis Pesawat 3. TaskType_ID Text 5 Kode Jenis Pekerjaan 4. Skill_ID Text 4 Kode Jenis Keahlian 5. Amp_Subject Text 70 Judul Pekerjaan 6. ATA_ID Text 4 Kode Kategori
Sistem Pada Pesawat 7. UM_ID Text 15 Kode Unit
Pengukuran
8. Amp_Description Memo Penjelasan Pekerjaan 9. Amp_Interval Text 15 Interval Pelaksanaan
Pekerjaan
10. Amp_Manhours Double Kebutuhan JamOrang untuk pelaksanaan pekerjaan
11. Amp_Menrquired Integer Jumlah kebutuhan Orang untuk melaksanakan pekerjaan
12. Amp_RefMPD Text 15 Nomor Referensi Pekerjaan dari pabrik pesawat
13. Amp_RII Text 5 Pilihan untuk pemeriksaan ganda 14. Amp_MRB Text 5 Pilihan untuk kode
b. Nama File : Table_MPD_Population Primary Key : Population_ID
Foreign Key : -
File Relasi : Table_MPD_Chromosome, Table_MPD_GenAlternatif Keterangan : Tabel untuk menyimpan data populasi
No. Nama Field Tipe Data Panjang Keterangan 1. Population_ID Long Integer Kode Populasi 2. Aircraft_ID Integer Kode Jenis Pesawat 3.
Population_Fitness_ Value
Integer Nilai fitness populasi dari hasil evaluasi
4.
Population_Remark Varchar2 50 Keterangan Populasi
c. Nama File : Table_MPD_Chromosome Primary Key : Chromosome_ID
Foreign Key : Population_ID
File Relasi : Table_MPD_Population, Table_MPD_GenAlternatif Keterangan : Tabel untuk menyimpan data kromosom
No. Nama Field Tipe Data Panjang Keterangan 1. Chromosome_ID Long Integer Kode Kromosom 2. Population_ID Long Integer Kode Populasi 3. Chromosome_Num
ber Integer Jumlah Kromosom 4.
Chromosome_Fitne ss_Value
Integer Nilai Fitness Kromosom dari hasil evaluasi
d. Nama File : Table_MPD_GenAlternatif Primary Key : GA_Nomor
Foreign Key : Population_ID, Chromosome_ID
File Relasi : Table_MPD_Population, Table_MPD_Chromosome Keterangan : Tabel untuk menyimpan data gen
No. Nama Field Tipe Data Panjang Keterangan 1. Population_ID Long Integer Kode Populasi 2. Chromosome_ID Long Integer Kode Kromosom 3. GA_Nomor Long Integer Kode Gen
No. Nama Field Tipe Data Panjang Keterangan Pekerjaan 5. GA_AwalInsp Integer Posisi Awal
Pekerjaan Untuk Ditempatkan Dalam Jadwal
6 GA_JrkAntarInsp Integer Besarnya Interval Pekerjaan
7. AMP_Manhours Double Kebutuhan JamOrang untuk pelaksanaan pekerjaan
e. Nama File : Table_MPD_Rel_MPDAMP_MtopF27Sched Primary Key : No
Foreign Key : AMP_Taskno File Relasi : Table_MPD_AMP
Keterangan : Tabel untuk menyimpan data Jadwal terbaik
No. Nama Field Tipe Data Panjang Keterangan 1. No Long Integer Nomor Urut 2. AMP_Taskno Long Integer Kode Nomor
Pekerjaan 3. Seq_01 Text Sekuen 01 4. Seq_02 Text Sekuen 02 5. …
6. Seq_32 Text Sekuen 32
3.1.2 Desain Representasi Individu
Model yang digunakan dalam pembuatan jadwal adalah sebuah
Maintenance Program, dimana dinyatakan bahwa satu jadwal adalah satu
Individu. Kromosom dari individu adalah susunan jadwal berdasarkan waktu
Gambar 3.8 Individu, Kromosom dan Gen dari Sistem Perawatan
Maintenance Program adalah merupakan daftar pekerjaan yang harus
dilaksanakan (task card) pada interval waktu tertentu dan membutuhkan sumber daya manusia tertentu. Daftar tersebut berisi tentang pekerjaan yang harus
dikerjakan (task) v atau V={v1,v2,v3,...,vn} yang dilaksanakan pada interval waktu i atau I={i1,i2,i3,...,in} dan membutuhkan sumber daya manusia (manhours) m atau
M={m1,m2,m3,...,mn}.
Jika terdapat sebuah pekerjaan a pada interval waktu b dan membutuhkan
sumber daya manusia c, maka dapat digambarkan J = { (a,b,c) | a V, b I, c
M} atau terdapat jadwal (a,b,c) sedemikian rupa sehingga a V , b I dan cM. Representasi notasi tersebut dalam sebuah record atau tuple adalah sebagai
berikut:
Tabel 3.1 Representasi Maintenance Program Menggunakan Record atau Tuple
No Gen 1 2 3 … N
AMP_Taskno 70001 70001 70002 70856 Insp_ID Seq01 Seq03 Seq01 ... Seq32
[image:36.612.98.511.278.465.2]Nomor record dari tuple ini diidentifikasi dengan nilai dari field
GA_Nomor pada tabel Table_MPD_GenAlternatif.
Representasi kromosom dalam bentuk tuple adalah seperti yang
[image:37.612.103.510.227.492.2]tergambar pada tabel di bawah ini.
Tabel 3.2 Representasi Kromosom Menggunakan Record atau Tuple
Chromosome_ID 1 2 3 … M
Population_ID 1 1 2 N
Fitness_Value 234 55 42 ... P
3.1.3 Desain Fungsi Evaluasi
Fungsi evaluasi digunakan untuk mencari sebuah jadwal yang optimum
artinya kebutuhan sumber daya manusia akan relatif sama dalam setiap interval,
dengan demikian diharapkan terdapat kemudahan dalam pengaturan penggunaan
sumber daya manusia.
Penelitian ini akan membuktikan bahwa implementasi GA dapat
diterapkan dalam melakukan pendekatan pemenuhan keseimbangan manhours
yang diperlukan setiap sekuen dalam perawatan pesawat Fokker F27 dengan
menggunakan metode MSE. Dalam penentuan desain fungsi evaluasi, standar dari
pabrik dianggap sebagai Target Pengukuran sedangkan hasil rekayasa GA adalah
Obyek yang diukur. Secara deterministik fungsi evaluasi ini digambarkan dengan
21 xi T
m 1 z
Minimumkan
m
i
. Individu terbaik adalah z dengan nilai 0. Untuk
memberikan gambaran bahwa distribusi dari obyek yang diukur adalah lebih baik
dari target pengukuran, maka koefisien variasi dari distribusi obyek yang diukur
harus lebih kecil dari 1 atau CV 1 dimana 100 X
MSE
3.2 Prosedur GA
Proses pembuatan jadwal dengan menggunakan GA adalah seperti yang
terlihat dalam gambar di bawah ini.
START
BANGKITKAN POPULASI
AW AL
EVALUASI FITNESS DENGAN MSE
OPTIMAL? SELEKSI
TUKAR SILANG
MUTASI
JADW AL OPTIMAL
STOP TIDAK
[image:38.612.103.514.160.504.2]YA
Gambar 3.9 Flow Chart Proses Pembuatan Jadwal dengan GA
Proses di atas dapat digambarkan secara pseudocode sebagai berikut:
t:=0;
Initialize(P(0)); Evaluate(P(0));
While not good_fitness do Select(P(t));
Rancangan Struktur Data di memory untuk proses di atas adalah sebagai berikut:
Private
v_Array_Induk1, v_Array_Induk2, v_Array_NoUrutChrDariTrunc:
Array[1..2000] of Integer;
v_Array_MHrs: Array[1..2000] of Double;
Keterangan:
1. v_Array_Induk1 dan v_Array_Induk2 adalah array berdimensi satu yang akan
[image:39.612.103.509.250.507.2]digunakan untuk menampung nomor gen dari tabel
Table_MPD_GenAlternatif.
2. v_Array_Amp_Taskno adalah array berdimensi satu yang akan digunakan
untuk menampung nomor pekerjaan yang didefinisikan sebagai AMP_Taskno.
3. v_Array_MHrs adalah adalah array berdimensi satu yang akan digunakan
untuk menampung manhours di setiap nomor pekerjaan dimana nilai ini nanti
akan digunakan sebagai penghitung fitness-nya.
Struktur Data array tersebut di atas terutama akan sangat diperlukan pada
saat melakukan proses Tukar Silang dan Mutasi.
3.2.1 Pembangkitan Populasi Awal
Populasi dibangkitkan secara urut berdasarkan penomoran pada sistem,
demikian pula kromosomnya. Isi dari kromosom adalah merupakan rangkaian gen
yang membentuk suatu individu (jadwal). Pembangkitan gen pada jadwal
dilakukan secara acak. Langkah pertama adalah membaca data dari database dan
melihat interval pelaksanaan pekerjaan. Kemudian, dibangkitkan sebuah angka
sebagai awal dari sekuen pekerjaan tersebut diletakkan. Interval dari pekerjaan
tersebut dibagi dengan jarak setiap sekuen akan menentukan jarak dari awal
nomor X1 dengan interval 1000 jam. Secara acak sistem akan membangkitkan
sebuah angka untuk menempatkan pekerjaan tersebut pada posisi awalnya yang
besarnya harus lebih kecil dari pembagian antara interval pekerjaan dengan
standar sekuennya, dengan kata lain posisi awal pekerjaan tersebut harus lebih
kecil dari 1000 : 250 = 4 atau posisi awal pekerjaan harus lebih kecil dari atau
sama dengan 4. Penempatan posisi awal pekerjaan ini penting karena apabila
posisi awal penempatan pekerjaan pada susunan struktur jadwal tersebut lebih
besar dari jarak setiap sekuennya, maka terdapat kemugkinan susunan jadwal
menjadi tidak lengkap. Misal pada pekerjaan X1, posisi awal yang dibangkitkan
oleh sistem adalah 5, maka dengan interval 1000 jam susunan jadwalnya adalah
Seq05, Seq09, Seq13, Seq17, …, Seq29 (berulang setiap 4 kali sekuen). Dalam
rentang 8000 jam (lihat tabel 2.1) maka seharusnya pekerjaan X1 dijadwalkan
sebanyak 8 kali, tetapi karena penempatan posisi awal berada pada posisi Seq05,
maka pekerjaan X1 hanya dijadwalkan sebanyak 7 kali atau terdapat kekurangan 1
kali sekuen. Hal ini harus dihindari untuk mencegah kekacauan sistem
penjadwalan.
Setelah penentuan posisi awal pekerjaan dan intervalnya diketahui, maka
proses selanjutnya adalah penyimpanan pada table_mpd_genalternatif. Algoritma
untuk proses pembangkitan populasi awal adalah sebagai berikut:
Cari_Nomor_Terakhir_Chrom(Cari_NoChromAkhir); While not TABLE_MPD_AMP end of file
V_Pos_Awal_Seq:=0;
Ambil_Interval_Dari_Tabel(V_AMP_Interval);
Ambil_Nomor_Pekerjaan_Dari_Tabel(V_Amp_Taskno); Ambil_Manhours_Dari_Tabel(V_Amp_MHrs);
V_JarakAntarSeq:=V_AMP_Interval div 250
Cari_AwalSeq(V_Pos_Awal_Seq,V_AMP_Interval);
Masukkan_ke_ Table_MPD_GenAlternatif;
V_Pos_Awal_Seq:= V_Pos_Awal_Seq + V_JarakAntarSeq Keterangan:
1. Cari_Nomor_Terakhir_Chrom, adalah mencari nomor terakhir dari tabel
kromosom untuk menentukan nomor kromosom selanjutnya
2. V_Pos_Awal_Seq, adalah variabel yang menyimpan nomor awal sekuen
nantinya, V_AMP_Interval adalah variabel yang menyimpan nilai interval dari
Maintenance Program yang akan diolah, V_Amp_Taskno adalah nomor
pekerjaan, V_Amp_MHrs adalah kebutuhan manhours yang diperlukan untuk
mjelakukan pekerjaan dengan nomor V_Amp_Taskno, V_JarakAntarSeq
adalah jarak antar sekuen sesuai dengan interval yang ada (misal untuk
interval 500 berarti jarak antar sekuen adalah 500 : 250 = 2)
3. Cari_AwalSeq, adalah sebuah proses untuk mencari awal sekuen dari
pekerjaan V_Amp_Taskno dengan interval V_AMP_Interval.
4. Cari_Nomor_Terakhir_Gen, adalah mencari nomor terakhir dari tabel
Table_MPD_GenAlternatif untuk menentukan nomor gen selanjutnya
5. Masukkan Ke Table_MPD_Gen, adalah proses penyimpanan untuk Gen
tersebut ke dalam database.
3.2.2 Perhitungan Nilai Fitness
Perhitungan nilai Fitness adalah menggunakan metode MSE dengan
proses sebagai berikut:
Baca_Table_MPD_Chromosome; while not eof do
Ambil_Nomor_Kromosom_Dari_Tabel(V_Chromosome_ID); V_Fitness_Value:=0.00;
V_Fitness_Seq:=0.00; for i:=1 to 32 do
Cari_Std_MHrs(i,V_MHrs_Std) V_Fitness_Value:=V_Fitness_Value + Power((V_Fitness_Seq-V_MHrs_Std),2)
V_Fitness_Chrom:=V_Fitness_Value/Std_Jml_Seq; Update_Table_MPD_Chromosome(V_Chromosome_ID, V_Fitness_Chrom);
Keterangan:
1. Baca_Table_MPD_Chromosome, adalah proses membaca tabel yang nantinya
akan diiterasi.
2. Hitung_FitnessSeq adalah proses penghitungan nilai Fitness dengan
menggunakan metode MSE.
3. Update_Table_MPD_Chromosome adalah proses mengubah tabel untuk
mengisi nilai fitnessnya.
3.2.3 Seleksi Truncation
Untuk menghindari tingginya kecepatan konvergen dalam proses GA,
maka digunakan seleksi Truncation. Proses seleksi tersebut adalah sebagai
berikut:
Baca_Parameter_Truncation(Parameter_Truncation); Baca_Jumlah_Individu(Jumlah_Individu);
s_Jml_Individu:=Bulatkan(Parameter_Truncation * Jumlah_Individu); s_Counter:=1;
while s_Counter<=(s_Jml_Individu) do
Baca_Table_Chromosome(s_No_ChromAwal, s_Chrom_Fitness); Cari_Nomor_Terakhir_Chrom(s_No_ChromAkhir);
v_Array_NoUrutChrDariTrunc[s_Counter]:=s_No_ChromAkhir; Isi_Table_MPD_Chromosome(s_No_ChromAkhir,s_No_ChromAwal, s_No_PopAkhir,s_Chrom_Fitness);
Cari_DataGenDariChrom(s_No_ChromAwal,s_No_ChromAkhir, s_No_PopAkhir);
Keterangan:
1. Baca_Parameter_Truncation(Parameter_Truncation) adalah membaca
konstanta parameter truncation berdasarkan input dari user dengan rentang
dari 0.2 s/d 0.8.
2. Baca_Jumlah_Individu(Jumlah_Individu) adalah membaca konstata parameter
individu sesuai input dari user.
3. Baca_Table_Chromosome(s_No_ChromAwal, s_Chrom_Fitness), adalah
proses membaca tabel dan mengurutkan berdasarkan nilai Fitness-nya.
4. Cari_Nomor_Terakhir_Chrom(s_No_ChromAkhir), adalah mencari nomor
kromosom baru untuk membentuk individu baru.
5. Isi_Table_MPD_Chromosome(s_No_ChromAkhir, s_No_ChromAwal,
[image:43.612.106.511.287.508.2]s_No_PopAkhir, s_Chrom_Fitness) adalah mengisi nomor kormosom baru di
tabel Table_MPD_Chromosome.
6. Cari_DataGenDariChrom(s_No_ChromAwal, s_No_ChromAkhir,
s_No_PopAkhir), adalah mencari data Gen yang telah ada di tabel
Table_MPD_GenAlternatif untuk disalin pada individu baru sekaligus
menyalinnya ke gen baru.
3.2.4 Proses Crossover
Proses tukar silang dilakukan dengan menggunakan metode Uniform
Crossover karena panjang Gen yang cukup besar. Proses Tukar Silang dilakukan
melalui array v_Array_Induk1, v_Array_Induk2. Proses tukar silang tersebut
Baca_Jumlah_Gen_Dalam_Kromosom(Jml_Gen);
Hitung_Jumlah_Kekurangan_Individu(Jml_KekuranganIndividu); For i:=1 to Jml_KekuranganIndividu
Masukkan_Data_Gen_Pertama_Ke_Dalam_Array_Induk1 Masukkan_Data_Gen_Pertama_Ke_Dalam_Array_Induk2 For j:=1 to Jml_Gen
Bangkitkan_Nilai_Acak_Antara_0_Dan_1(Nilai_Acak); If Nilai_Acak=1 then Array_Induk1[j]:= Array_Induk2[j];
Keterangan:
1. Baca_Jumlah_Gen_Dalam_Kromosom(Jml_Gen), adalah membaca jumlah
gen yang akan dilakukan tukar silang.
2. Hitung_Jumlah_Kekurangan_Individu(Jml_KekuranganIndividu), adalah
menghitung banyaknya individu baru yang akan dibangkitkan dari tukar
silang.
3. Masukkan_Data_Gen_Pertama_Ke_Dalam_Array_Induk1 dan
Masukkan_Data_Gen_Pertama_Ke_Dalam_Array_Induk2, adalah proses
untuk menyalin data dari tabel Table_MPD_GenAlternatif ke Array_Induk1
dan Array_Induk2 untuk memudahkan proses tukar silang.
4. Bangkitkan_Nilai_Acak_Antara_0_Dan_1(Nilai_Acak), adalah proses
membangkitkan bilangan random antara 0 dan 1 dimana apabila Nilai_Acak
bernilai 1, maka akan dilakukan Tukar Silang. Dalam hal ini untuk efisiensi
memory Array_Induk1 langsung dijadikan sebagai off spring atau individu
baru dengan cara menyalin nilai dari Array_Induk2.
3.2.5 Mutasi
Untuk efisiensi pemrograman, proses mutasi dilakukan bersamaan
dengan proses tukar silang. Proses mutasi ini dilakukan pada setiap gen dalam
probabilitasnya adalah sebesar 0.01. Proses mutasi tersebut adalah sebagai
berikut:
Baca_Jumlah_Gen_Dalam_Kromosom(Jml_Gen); For i:=1 to Jml_Gen
Bangkitkan_Bilangan_Pecah_Secara_Acak_Antara_0_Dan_1(Nilai_Aca k)
If Nilai_Acak < 0.01 then Lakukan_Mutasi(Array_Induk1[i]);
Pindahkan_Data_Dari_Array_Induk1_ke_Table_MPD_GenAlternatif;
Keterangan:
1. Baca_Jumlah_Gen_Dalam_Kromosom(Jml_Gen), adalah membaca panjang
gen yang akan dilakukan tukar silang.
2. Bangkitkan_Bilangan_Pecah_Secara_Acak_Antara_0_Dan_1(Nilai_Acak),
adalah sebuah proses membangkitkan bilangan acak dari 0.00 s/d 1.00.
3. Jika bilangan acak yang dibangkitkan kurang dari 0.01 maka akan dilakukan
mutasi dalam array.
4. Pindahkan_Data_Dari_Array_Induk1_ke_Table_MPD_GenAlternatif, adalah
proses memindahkan data dari Array 1 ke dalam tabel
Table_MPD_GenAlternatif.
3.2.6 Pemilihan Jadwal Optimal
Proses ini adalah merupakan pemilihan individu terbaik untuk dijadikan
sebagai Jadwal. Proses ini sebenarnya adalah mencari nilai terkecil dari kumpulan
individu yang telah dihasilkan dari proses GA. Prosesnya dalah sebagai berikut
Baca_Tabel_Kromosom While not eof
If Nilai_Fitness1 < Nilai_Fitness2 then Nilai_Fitness1= Nilai_Fitness2;
Next;
[image:45.612.101.511.277.508.2]Keterangan:
1. Baca_Tabel_Kromosom, adalah proses menyalin nilai Fitness ke dalam
variabel memori.
2. Pilin_Individu_Terbaik adalah proses memindahkan data individu terbaik ke
dalam tabel jadwal.
3.3 Rancangan Evaluasi
Berdasarkan data dari database Access, maka tabel-tabel di bawah ini
adalah tabel-tabel pendukung dalam proses GA.
1. Table_MPD_Amp
2. Table_MPD_Population
3. Table_MPD_Chromosome
4. Table_MPD_GenAlternatif
5. Table_MPD_Rel_MPDAMP_MtopF27Sched
3.3.1 Menentukan Kapan Algoritma Berhenti
Dalam proses GA, proses akan berhenti apabila telah dicapai solusi yang
optimal atau dihentikan dengan metode tertentu (dengan menentukan jumlah
individu yang diinginkan).
Dalam metode MSE, nilai optimal didapatkan apabila tidak terdapat
perbedaan antara jadwal yang dihasilkan oleh GA dengan standar yang telah ada
(target pengukuran) seperti dalam Tabel 2.2, atau dengan kata lain tidak terdapat
perbedaan yang signifikan dengan nilai MSE = 0 dan nilai CV 1. Namun
demikian, untuk efisiensi waktu dalam percobaan dan memudahkan perbandingan
nanti algoritma akan dihentikan pada 250 generasi untuk setiap pemilihan nilai
truncation selection-nya.
3.3.2 Rancangan Percobaan
Percobaan dilakukan dengan menggunakan aplikasi yang telah dibuat
untuk melakukan proses pembangkitan jadwal dengan menggunakan metode GA.
Aplikasi tersebut sekaligus sebagai sistem informasi maintenance program yang
akan digunakan untuk melakukan manajemen atas maintenance program tersebut.
Evaluasi terhadap hasil percobaan adalah berdasarkan pengujian
beberapa kali dengan mengubah nilai Truncation-nya. Hasil dari pengujian
tersebut akan dibandingkan satu dengan yang lain untuk mengetahui kinerja
41
Pembahasan dan pengujian sistem adalah tahap penjelasan secara nyata
penggunaan dari rancang bangun program yang telah dibuat, mulai dari implementasi
dengan memproses database sampai dengan evaluasi GA.
4.1
Implementasi
Aplikasi penjadwalan perawatan pesawat Fokker F27 adalah suatu aplikasi
untuk menjadwalkan pekerjaan sesuai dengan buku pedoman perawatan dengan
menggunakan metode GA. Berikut ini langkah penggunaan perangkat lunak:
1. Tersedianya perangkat lunak Microsoft Access 2000.
2. Membuat koneksi ODBC.
3. Menjalankan Setup Program
4. Menjalankan Program
4.2
Evaluasi
Proses dimulai dengan mengeksekusi aplikasi GA yang sudah dibuat. Proses
ini dapat langsung dijalankan, tetapi dalam praktek nyata, proses ini tidak diijinkan
dilaksanakan setiap saat karena jadwal yang dihasilkan dari proses GA tidaklah selalu
sama. Hasil yang tidak selalu sama ini akan menimbulkan ketidakpastian dalam
perencanaan sehingga dikhawatirkan justru justru akan mengganggu para pengguna
karena diharapkan dalam 2 tahun terdapat beberapa perubahan pada isi pekerjaan
yang akan dijadwalkan.
Spesifikasi yang digunakan saat evaluasi ini adalah seperti terlihat pada tabel
4.1 di bawah ini.
Tabel 4.1 Peralatan Evaluasi
No
Spesifikasi
Nilai
1.
Memory Bus Speed
1 x 400 MHz (400 Data Rate)
2.
Installed Memory
256 MB DDR
3.
Processor Model
AMD Athlon XP 2100+
4.
Speed
2100 MHz
5.
Monitor
LG Studioworks 563E
6.
Operating System
Microsoft Windows 98 SE
7.
Database
Microsoft Access
Untuk memudahkan dalam evaluasi, maka setiap proses akan diawali dengan
kondisi database tertentu. Kondisi awal database sebelum proses dimulai adalah
[image:49.612.105.529.242.614.2]seperti terlihat pada tabel 4.2.
Tabel 4.2 Kondisi Awal Database Pada Saat Evaluasi
No
Nama Tabel
Jumlah Record
1.
Table_MPD_Amp
856
2.
Table_MPD_Population
0
3.
Table_MPD_Chromosome
0
4.
Table_MPD_GenAlternatif
0
5.
Table_MPD_Rel_MPDAMP_MtopF27Sched 0
Dari data tersebut di atas, dilakukan proses GA. Berdasarkan hasil
level-nya. Semakin tinggi kita memilih truncation level maka semakin cepat karena
jumlah individu yang perlu dibangkitkan jauh lebih sedikit. Hal ini terjadi karena P %
dari individu pada populasi lama disalin untuk dijadikan individu baru pada populasi
berikutnya, sehingga semakin besar truncation levelnya maka jumlah individu yang
disalin pada populasi berikutnya akan semakin besar. Sisa individu yang harus
dibangkitkan akan semakin sedikit pada truncation level yang tinggi sehingga proses
daslam aplikasi semakin cepat. Hal ini sejalan dengan Dragan Cvetkovic dan Heinz
Muhlenbein (1994:4), dimana semakin kecil truncation level (T) maka tingkat
independensi (I) antara populasi lama dengan populasi baru semakin besar.
Untuk memudahkan evaluasi, maka proses GA dijalankan untuk
membangkitkan 250 populasi dimana setiap populasi terdiri dari 10 individu.
Truncation Level di evaluasi mulasi dari 0.2 s/d 0.8. Hasil pembangkitan populasi
[image:50.612.100.525.286.652.2]dapat dilihat pada Gambar 4.1.
Dari beberapa hasil pembangkitan data dan proses operasi GA, terlihat
bahwa untuk pembangkitan populasi sampai dengan 250 populasi memerlukan waktu
rata-rata di atas 1 jam.
Berikut ini adalah screenshot dari hasil kinerja GA dengan truncation level
[image:51.612.99.509.222.666.2]yang berbeda-beda.
Gambar 4.2 Grafik Fitness Populasi Pada Truncation Level 0.2
Gambar 4.4 Grafik Fitness Populasi Pada Truncation Level 0.7
Gambar 4.5 Grafik Fitness Populasi Pada Truncation Level 0.8
Hasil evaluasi fitness populasi menunjukkan bahwa pada truncation level
0.3, nilai optimal dapat tercapai sebelum populasi mencapai 250. Hasil tersebut
sangat kontras dengan truncation level 0.8 dimana meskipun populasi telah mencapi
independensi antara populasi lama dengan populasi baru terlihat sangat rendah pada
truncation level yang tinggi sehingga sifat-sifat dari populasi lama masih terbawa
secara signifikan pada populasi yang baru, demikian pula sebaliknya. Gambar di
bawah ini memberikan penjelasan mengenai hasil evaluasi tersebut.
0.00 5.00 10.00 15.00 20.00 25.00 30.00
0 50 100 150 200 250
Generation
MS
E
TR 0.2 TR 0.3 TR 0.4 TR 0.5
[image:53.612.102.525.213.499.2]TR 0.6 TR 0.7 TR 0.8
Gambar 4.6 Perbandingan Hasil Evaluasi dengan Truncation Level yang Berbeda
Dari seluruh hasil evaluasi yang ada ternyata individu terbaik ditemukan
pada truncation level 0.3 dengan nilai MSE 0.35. Hal ini sangat jauh lebih baik
dibandingkan dengan hasil pada truncation level 0.2 dengan MSE 0.72 dan truncation
Tingkat penyebaran yang digambarkan dengan nilai koefisien variasi juga
berbeda-beda sesuai dengan distribusi yang dihasilkan dalam proses GA. Perbedaan
tersebut dapat dilihat dalam gambar 4.7.
0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00
0 50 100 150 200 250
Generation
Co
ef
fici
en
t V
ar
iat
io
n
TR 0.2 TR 0.3 TR 0.4 TR 0.5
[image:54.612.102.528.183.495.2]TR 0.6 TR 0.7 TR 0.8
Gambar 4.7 Perbandingan Koefisien Variasi dengan Truncation Level yang Berbeda
Berbeda dengan grafik MSE, distribusi CV hampir sama pada semua
truncation level, hanya memang pada truncation level di atas 0.5 mempunyai nilai di
atas satu meskipun generasi telah mencapai 250. Sama halnya dengan grafik MSE
seperti pada gambar 4.6, pada truncation level 0.3, grafik CV menurun drastis pada
generasi di atas 50.
Untuk melihat secara komprehensif terhadap perubahan truncation level
0.00 0.50 1.00 1.50 2.00 2.50 3.00
0.2 0.4 0.6 0.8
Truncation Level
MS
[image:55.612.190.451.85.248.2]E
Gambar 4.8 Perbandingan MSE dengan Perubahan Truncation Level
Dalam gambar 4.8 di atas, dari truncation level 0.2 grafik menurun dan
minimum pada truncation level 0.3, kemudian naik kembali sampai maksimum pada
truncation level 0.8. Ini mengindikasikan bahwa MSE optimum pada truncation level
0.3. Untuk memperjelas bahwa distribusi yang dihasilkan dalam proses GA tersebut
memang lebih baik, gambar 4.9 menunjukkan grafik Truncation Level dengan
CV-nya.
0.00 0.50 1.00 1.50 2.00 2.50 3.00
0.2 0.4 0.6 0.8
Truncation Level
Coe
ffi
ci
ent
Va
ria
tion
[image:55.612.102.529.265.661.2]Pada gambar 4.9 di atas, terlihat bahwa pada truncation level 0.3, nilai
CV<1, maka hal ini mengindikasikan bahwa distribusi yang dihasilkan oleh GA
memang lebih baik dari target yang diukur.
Tabel manhours yang dapat dihasilkan pada fitness terbaik adalah seperti
[image:56.612.103.527.269.545.2]terlihat pada tabel di bawah ini.
Tabel 4.3 Perbandingan Standard Manhours dengan Hasil Operasi GA
Segments
Insp.
Cycle 1
Cycle 2
Type
Standard
MH/Check
GA
Type
Insp.
Standard
MH/Check
GA
1
14.3
14.3
14.9
15.5
2
C1
184.2
184.9
C1
173.2
173.0
3
14.8
14.3
14.8
14.3
4
C2
166.2
166.5
C2
177.3
177.4
5
16.2
15.5
14.3
14.3
6
C3
183.1
183.3
C3
184.5
184.5
7
14.3
14.3
14.9
15.5
8
C4
153.0
153.7
C4
142.0
143.0
9
14.3
14.3
14.3
14.3
10
C1
173.8
173.7
C1
178.7
177.6
11
16.8
15.5
14.8
14.3
12
C2
165.7
165.0
C2
168.6
168.5
13
14.3
14.3
14.9
15.5
14
C3
194.2
193.7
C3
183.1
183.0
15
14.3
14.3
14.3
14.3
16
D1
477.3
476.8
D2
582.6
581.3
Print out dari hasil proses GA dengan MSE terbaik ini secara lengkap
50
5.1
Kesimpulan
Setelah melakukan analisis, perancangan, pembangunan aplikasi
penjadwalan perawatan pesawat terbang Fokker F27 dan evaluasi hasil penelitian
pada proses GA dengan batasan 10 individu pada setiap populasi pada 250 generasi
untuk menghentikan proses GA, maka dapat diambil kesimpulan sebagai berikut:
1.
Semakin tinggi taraf truncation selection, maka tigkat independensi antara
populasi lama dengan populasi baru sangat rendah sehingga nilai fitness optimum
akan dapat dicapai pada populasi di atas 250 generasi.
2.
Dalam Penelitian ini, Taraf Truncation Selection yang optimum untuk proses
pembuatan Master Schedule berhasil dicapai pada Truncation 0.3.
3.
Dengan cara mengubah taraf truncation selection pada metode GA, dapat
dibuktikan bahwa penyeimbangan pembagian personil dalam Buku Pedoman
Perawatan Pesawat Foker F27 dapat dioptimalkan. Hal ini dinyatakan dengan
Nilai MSE yang mendekati 0 (0.35) antara obyek yang diukur dengan target
pengukurannya dengan nilai CV = 0.83 yang berarti distribusi hasil GA lebih baik
dari target pengukurannya.
4.
Dengan nilai MSE yang kecil dan CV dibawah 1, berarti dapat dinyatakan bahwa
Optimalisasi Penjadwalan Perawatan Pesawat Terbang dapat dilakukan dengan
5.2
Saran
Hal-hal yang dapat dikembangkan dalam aplikasi ini adalah:
1.
Cakupan dalam sistem ini baru pada taraf pembuatan Master Schedule tunggal.
Pada masa mendatang, sistem ini dapat dikembangkan untuk pembuatan Multi
Scheduling yang cakupan masalahnya lebih luas.
2.
Proses GA masih memerlukan waktu yang cukup lama. Pada masa mendatang,
algoritma dalam proses GA dapat diperbaiki dengan metode yang lebih efisien
Battaglia, Glenn J., 1996, Mean Square Error, AMP Incorporated.
Michalewicz, Zbigniew, 1996, Genetic Algorithm + Data Structures = Evolution
Programs, Springer – Verlag Berlin Heidelberg New York, USA.
Mühlenbein, Heinz, Schlierkamp-Voosen, Dirk, 1993, Predictive Models for the
Breeder Genetic Algorithm, I. Continuous Parameter Optimization,
D-5205 Sankt Augustin 1, Germany.
Mühlenbein, Heinz, Cvetkovic, Dragan, 1994, The Optimal Population Size for
Uniformcrossover and Truncation Selection, GMD. Schloß Birlinghoven
D-3734 Augustin, Germany.
Wang, Joan Hao, 1999, Scheduling Shipboard Maintenance Tasks Using Genetic
Algorithms and A Heuristic Methods, Mississippi, A Project Submitted to
Faculty of Mississippi State University in Partial Fulfillement of Requirements for the Degree of Master Science in Computer Science, Mississippi State University, USA.
_______ , 1995, Fokker F27 Customer Maintenance Program, Fokker, Holland.
_______ , 1995, F27 Customer Maintenance Program Guidelines, Fokker,