• Tidak ada hasil yang ditemukan

TA : Penerapan Truncation Selection Untuk Optimasi Penjadwalan Perawatan Pesawat Terbang.

N/A
N/A
Protected

Academic year: 2017

Membagikan "TA : Penerapan Truncation Selection Untuk Optimasi Penjadwalan Perawatan Pesawat Terbang."

Copied!
59
0
0

Teks penuh

(1)

PESAWAT TERBANG

Oleh:

Nama : Ony Soerjo Wibowo NIM : 98410105020 Program : S1 (Strata Satu) Jurusan : Sistem Informasi

SEKOLAH TINGGI

MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA

(2)

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

(3)

x

BAB V PENUTUP ... 50

5.1 Kesimpulan ... 50

5.2 Saran ... 51

DAFTAR PUSTAKA ... 52

BIODATA ... 53

(4)

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

(5)

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

(6)

xiii

(7)

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

(8)

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

(9)

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.

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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.

(17)

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

(18)

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

(19)

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

(20)

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 Ki1 dan hitung nilai fitness-nya. Bandingkan nilai fitness

i

K dengan Ki1. Apabila Ki1 lebih baik dari K maka maka pilih individu i Ki1

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

(21)

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%

(22)

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

(23)

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

(24)

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

(25)

2 1 xi T

m 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

(26)

Karena rumus deviasi standar adalah

m T x S

m

i i

 1

2

dimana

2

1 i

T x m

1

 

m

i

adalah rumus MSE, maka dengan demikian dapat pula dinyatakan bahwa

100

 

X MSE

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)
[image:32.612.99.506.83.668.2]

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

(33)

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

(34)

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

(35)

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

(36)
[image:36.612.159.483.84.225.2]

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 cM. 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]
(37)

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

2

1 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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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]
(46)

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

(47)

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

(48)

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

(49)

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

(50)

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.

(51)

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

(52)
[image:52.612.185.460.87.272.2] [image:52.612.103.512.234.532.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

(53)

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

(54)

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

(55)

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]
(56)

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

(57)

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

(58)

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

(59)

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,

Gambar

Tabel 2.1  Master Schedule Program Perawatan Pesawat Fokker F27 .................. 7
Gambar 4.9 Perbandingan Koefisien Variasi dengan Perubahan
Tabel 2.1 Master Schedule Program Perawatan Pesawat Fokker F27
Tabel 2.2 Equalized Master Schedule Program Perawatan Pesawat Fokker F27
+7

Referensi

Dokumen terkait