T1 672003144 BAB III

(1)

Bab III

Metode Perancangan Sistem

Perancangan sistem yang digunakan dalam membangun sistem ini adalah dengan menggunakan metode prototyping. Proses pada model prototyping yang digambarkan pada Gambar 3.1, bisa dijelaskan sebagai berikut:

Gambar 3.1 Model Prototyping

1. Pengumpulan kebutuhan. Developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya. 2. Perancangan. Tahap perancangan dilakukan cepat dan

rancangan mewakili semua aspek software yang diketahui, dan rancangan ini menjadi dasar pembuatan prototype.

3. Evaluasi prototype. Pada proses ini klien mengevaluasi

prototype yang dibuat dan digunakan untuk memperjelas kebutuhan software.


(2)

Perulangan ketiga proses ini terus berlangsung hingga semua kebutuhan terpenuhi. Prototype-prototype dibuat untuk memuaskan kebutuhan klien dan untuk memahami kebutuhan klien lebih baik.

Prototype yang dibuat dapat dimanfaatkan kembali untuk membangun software lebih cepat, namun tidak semua prototype bisa dimanfaatkan.

Kebutuhan awal pengguna yang didapat dalam wawancara antara lain adalah sistem dapat digunakan untuk memberikan alternatif penjadwalan kereta api.

Kemudian berdasarkan permintaan pengguna dibangunanlah

prototype sistem. Hasil dari pembangunan prototype pertama akan dibahas pada Bab 4.

Setelah melakukan pembangunan prototype pertama, kemudian dilakukan evaluasi sistem kepada pengguna. Dari hasil evaluasi tersebut diketahui bahwa sistem dapat memberikan rekomendasi penjadwalan kereta api kepada pengguna. Hasil rekomendasi berupa jadwal keberangkatan kereta api yang tidak saling tabrakan jadwal keberangkatannya.

Berikut kebutuhan minimum untuk dapat menjalankan sistem ini adalah:

Processor : P IV – 2.00 GHz Memory : 512 MB

Hard Disk : 512 MB


(3)

Implementasi dilakukan dengan merealisasikan rancangan perangkat lunak pada bahasa pemrograman Microsoft Visual C# dan untuk database nya menggunakan MySQL 5.

3.1

Analisa Kebutuhan

Dalam pembuatan sistem penjadwalan kereta api ini, perlu dilakukan identifikasi kebutuhan fungsi aplikasi serta kebutuhan data penjadwalan kereta api. Pada tahapan ini perlu dilakukan pengumpulan data guna dimasukkan kedalam sistem.

Pengumpulan data dan analisa kebutuhan terhadap sistem dilakukan dengan observasi guna mengetahui kebutuhan pengguna. Dari data dan informasi yang didapat digunakan sebagai landasan dalam pembangunan sistem. Data yang diperlukan sistem adalah data penjadwalan kereta api pada Stasiun Tawang Semarang.

Berikut merupakan jadwal keberangkatan jalur kereta api Semarang-Jakarta yang dijadikan studi kasus di dalam sistem ini (http://www.semarang.go.id/info/k-api.php, 2011):


(4)

Gambar 3.3 Jadwal Kereta Jakarta – Semarang (Kedatangan)

Dengan jadwal kereta api Semarang-Jakarta pada gambar 3.2 atau jadwal keberangkatan dan jadwal kedatangan kereta api Jakarta – Semarang seperti pada gambar 3.3, perlu dilakukan optimasi penjadwalan kereta api yang baru dilakukan apabila terjadi penambahan jumlah operasi kereta api yang melayani rute Semarang-Jakarta. Sistem ini akan melakukan penjadwalan kereta api yang baru dengan menerapkan algoritma genetic sehingga diperoleh hasil optimasi penjadwalan kereta api yang baru.

Sampai saat ini, untuk melakukan penjadwalan kereta masih dilakukan secara manual. Artinya jadwal keberangkatan dan kedatangan di list dan disusun waktunya agar tidak terjadi tabrakan jadwal kereta api. Aplikasi penjadwalan kereta api yang dikembangkan dengan menggunakan algoritma genetik akan memberikan rekomendasi penjadwalan kereta yang lebih optimal.


(5)

3.2

Perancangan Permodelan Algoritma Genetik

Secara sederhana, perancangan permodelan penjadwalan kereta api tanpa menggunakan algoritma dapat digambarkan sebagai berikut :

“ Kereta A dengan tujuan Semarang/Jakarta dan kereta B dengan

tujuan Jakarta/Semarang, dijadwalkan untuk berangkat meninggalkan stasiun kereta dimulai pada pukul 08.00, dengan waktu tempuh dan kecepatan kereta yang dianggap relatif sama 1 jam dan 30 menit. Waktu tunggu setiap kereta untuk menurunkan penumpang adalah 15 menit. Artinya, apabila kereta A yang pertama kali dijadwalkan dengan tujuan Semarang, akan berangkat pada pukul 08.00 dan tiba di Jakarta pada pukul 09.30 ditambah waktu menurunkan penumpang menjadi 09.45. Setelah kereta A selesai menurunkan penumpang, kereta B minimal akan berangkat menggunakan jalur kereta yang sama pada pukul 09.45 dan akan berangkat menuju Semarang dan tiba pada pukul 11.15 dan waktu menurunkan penumpang menjadi pukul 11.30. Untuk proses penjadwalan kereta seterusnya, misalnya apabila ada kerea B, D, dan seterusnya dilakukan penjadwalan dengan cara yang sama agar tidak terjadi penggunaan jalur yang sama pada waktu yang sama oleh kereta yang berbeda (Perhatikan Gambar


(6)

Gambar 3.4 Proses Penjadwalan Manual

Proses penjadwalan secara manual ditentukan berdasarkan kecepatan kereta api. Untuk mendapatkan waktu tempuh sebuah kereta api perlu dipertimbangkan terlebih dahulu rumus perlawanan lokomotif, perlawanan kereta/gerbong, perlawanan tanjakan dan perlawanan KA pada lengkungan, sehingga diperoleh perlawanan total seluruh KA. Kemudian untuk memperoleh waktu tempuh kereta diperoleh dengan persamaan :

Keterangan :

V2 (km/jam) = Kecepatan KA pada akhir gerakan

V1 (km/jam) = Kecepatan KA awal gerakan

a = Percepatan KA

Proses penjadwalan pada Gambar 3.4 merupakan proses penjadwalan yang dilakukan secara manual dengan perhitungan agar tidak terjadi penggunaan jalur yang sama. Dengan menggunakan algoritma genetik, proses penjadwalan yang dilakukan secara manual tadi dapat diselesaikan.


(7)

Di dalam penerapan penjadwalan kereta api dengan menggunakan algoritma genetik, ada beberapa tahapan dan proses yang dilakukan. Tahapan dan proses tersebut antara lain digambarkan pada Gambar 3.5 :

Input Kereta dan Tujuan

Menentukan Parameter Genetik

Start

Memodelkan Masalah Dengan

Algoritma Job Shop

Generate Populasi, Evaluasi Fitness, Crossover

Generate Jadwal

Hasil Optimasi

Finish

Gambar 3.5 Tahapan Penjadwalan

Pada Gambar 3.5, perancangan aplikasi penjadwalan kereta api dengan menggunakan algoritma genetik, melalui beberapa tahapan antara lain :


(8)

1) Proses input data kereta dan tujuan

Pada tahapan ini, pengguna akan memasukan nama kereta dan tujuan (Semarang atau Jakarta). Data tersebut kemudian akan

dimasukkan ke dalam database dan disimpan. Kereta pada

aplikasi akan dimodelkan sebagai sebuah job, dan waktu akan

digunakan sebagai mesin.

2) Menentukan parameter genetik

Pada tahapan ini, akan dibuatkan algoritma untuk menentukan

parameter fitness dari setiap job yang ada. Nilai fitness merupakan

penentu generasi gen agar mendapatkan satu individu yang baik.

Fitness untuk satu job ditentukan oleh 2 parameter individu yang dipilih yaitu jadwal keberangkatan kereta dan selisih waktu tiap

kereta yang berangkat. Nilai fitness tersebut disesuaikan dengan

range waktu keberangkatan kereta yang sudah ditentukan. Nilai

fitness akan semakin tinggi apabila jadwal keberangkatan kereta

berada dalam range waktu keberangkatan yang sudah ditentukan.

Secara singkat, dapat dipahami bahwa parameter genetik akan

mewakili waktu tunggu (turun penumpang), dan range waktu

keberangkatan (batasan waktu didalam 1 hari).

3) Memodelkan masalah dengan menggunakan algoritma Job Shop.

Pada tahapan ini, setiap kereta dianggap sebagai sebuah job. Kemudian waktu yang tersedia di dalam 1 hari dianggap sebagai sebuah mesin. Jumlah kereta dan waktu yang tersedia, akan dioptimalkan dengan menggunakan algoritma genetik, dengan

nilai fitness yang paling tinggi dari setiap individu (kereta dan


(9)

4) Generate populasi dengan algoritma genetik.

Pada tahapan ini akan di evaluasi untuk mencari nilai fitness yang

paling tinggi. Setiap individu yang memiliki nilai fitness paling

tinggi, kemudian akan di crossover sehingga menghasilkan hasil

evaluasi nilai fitness terbaik dari setiap individu. Sehingga pada

tahapan ini akan diperoleh individu dengan nilai fitness terbaik

setelah melalui beberapa tahapan crossover.

Gambar 3.6 Implementasi Algoritma genetik

Gambar 3.6 merupakan proses algoritma genetik yang berjalan pada sistem. Dimana proses awal dimulai dengan menetukan populasi awal hingga berakhir dengan terbentuknya individu terbaik.

5) Generate jadwal kereta yang baru.

Pada tahapan ini, penjadwalan kereta akan ditampilkan sebagai

hasil evaluasi nilai fitness. Hasil evaluasi nilai fitness inilah yang

merupakan individu terpilih, yang merupakan hasil penjadwalan yang paling optimal dengan menggunakan algoritma genetik.


(10)

3.3

Parameter Genetik dalam Penjadwalan Kereta

Sebelum penerapan algoritma genetik pada aplikasi optimasi penjadwalan kereta api ini di terapkan ada beberapa parameter genetik yang digunakan, antara lain :

a) 1 Gen, mewakili 1 job atau 1 kereta dengan jam

keberangkatan yang berbeda-beda.

b) 1 Individu, mewakili kumpulan gen, atau dengan kata lain 1

individu merupakan kumpulan kereta dengan kombinasi jadwal keberangkatan yang berbeda-beda.

c) 1 Populasi, mewakili kumpulan individu.

d) Fitness, mewakili proses seleksi setiap individu dengan nilai maksimum atau nilai kecocokan tertinggi.

e) Crossover, mewakili proses seleksi setiap individu terpilih diikuti dengan proses mutasi .

f) Evaluasi, merupakan proses perulangan langkah d-e sampai

ditemukan individu dengan hasil yang diinginkan, didalam hal ini jadwal keberangkatan kereta dengan waktu yang optimal.

3.4

Perancangan

Database

Desain dan perancangan database merupakan langkah penting di dalam perancangan sistem sebuah aplikasi. Dengan demikian maka desain dan perencanaan database harus dirancang dan kemudian diimplementasikan dengan baik. Perancangan yang baik akan menyebabkan database dapat melayani kebutuhan-kebutuhan aplikasi dengan baik pula.


(11)

3.4.1 Tabel

Tabel 3.1 merupakan tabel kereta yang digunakan untuk menyimpan id, nama_kereta, start, dan tujuan kereta api. Perancangan tabel pada aplikasi algoritma genetik ini merupakan perancangan tabel tunggal yang hanya terdiri dari 1 tabel. Semua proses pengolahan informasi dilakukan pada sisi client (client side) sehingga tidak membutuhkan banyak tabel. Kolom ID digunakan untuk menyimpan id dari kereta. Kolom nama digunakan untuk menyimpan informasi nama kereta. Kolom start digunakan untuk menyimpan jam awal keberangkatan kereta. Kolom start merupakan kolom yang diisi dengan nilai yang didapatkan dari proses yang dijalankan dengan algoritma genetik. Sedangkan kolom tujuan berfungsi untuk menyimpan data tujuan keberangkatan kereta. Kolom ini diisi dengan nilai 1 dan 0. Angka 1 menunjukkan bahwa tujuan akhir kereta adalah Jakarta dan angka 0 menunjukkan bahwa tujuan akhir kereta adalah Semarang. Selain itu kolom ID pada tabel 3.1 merupakan primary key dari tabel yang bersangkutan yang dibuat secara auto increment atau penomoran otomatis pada sisi database. Sehingga kolom tersebut tidak perlu diinput oleh user.

Tabel 3.1 Tabel Kereta

Field Type Size

Id Int 9

Nama_Kereta Varchar 100

Start Time 100


(12)

3.5

Perancangan Desain Interface

Aplikasi ini dibuat hanya untuk user tunggal (admin) yang dapat melakukan seluruh proses yang ada di dalam sistem yakni

men-generate jadwal keberangkatan dan manage data kereta yang ada sehingga dalam perancangannya tidak terdapat perbedaan perancangan interface untuk user yang berbeda.

Gambar 3.7 merupakan desain interface aplikasi, untuk tampilan awal aplikasi :

Nama Kereta

Tujuan

Hasil Generate Jadwal TAMBAH

RESET

Gambar 3.7 Tampilan Awal Aplikasi

Pada tampilan awal aplikasi akan ditampilkan jadwal keberangkatan kereta terakhir yang sudah dijadwalkan sebelumnya. Untuk menambahkan jumlah kereta dan tujuan terdapat form untuk menginputkan data jumlah kereta dan tujuan keberangkatan. Nama kereta dan tujuan keberangkatan akan ditambahkan pada jadwal. Jadwal tersebut akan dioptimasi dengan menggunakan algoritma genetik untuk menghasilkan jadwal baru yang lebih optimal dengan


(13)

ID NAMA KERETA TUJUAN WAKTU KEBERANGKATAN

PROSES

REFERENSI JADWAL

PARAMETER GENETIK

FITNESS

Gambar 3.8 Form Manage Jadwal

Gambar 3.8 merupakan tampilan form manage jadwal

keberangkatan kereta. Untuk mengelola jadwal keberangkatan kereta yang baru, operator dapat menentukan referensi jadwal sesuai dengan kebutuhan. Kemudian terdapat parameter (parameter genetik) dan nilai fitness yang mempengaruhi penjadwalan kereta api. Apabila semua ketentuan referensi jadwal, parameter genetik dan nilai fitness

sudah ditentukan pada aplikasi, maka aplikasi akan melakukan optimasi penjadwalan dengan menggunakan algoritma genetik dan ditampilkan pada aplikasi.


(14)

JADWAL 1 JADWAL 2 JADWAL 3

PROSES

REFERENSI JADWAL

PARAMETER GENETIK

FITNESS

Gambar 3.9 Form Hasil Optimasi Penjadwalan

Gambar 3.9 merupakan form bagi operator untuk melihat hasil optimasi penjadwalan oleh aplikasi. Jadwal yang akan ditampilkan disesuaiakan dengan jumlah referensi jadwal yang diinginkan serta parameter genetik dan nilai fitness yang ditentukan sebelumnya. Hasil optimasi penjadwalan yang ditampilkan merupakan jadwal dengan optimasi terbaik dengan menggunakan algoritma genetik.


(1)

4) Generate populasi dengan algoritma genetik.

Pada tahapan ini akan di evaluasi untuk mencari nilai fitness yang paling tinggi. Setiap individu yang memiliki nilai fitness paling tinggi, kemudian akan di crossover sehingga menghasilkan hasil evaluasi nilai fitness terbaik dari setiap individu. Sehingga pada tahapan ini akan diperoleh individu dengan nilai fitness terbaik setelah melalui beberapa tahapan crossover.

Gambar 3.6 Implementasi Algoritma genetik

Gambar 3.6 merupakan proses algoritma genetik yang berjalan pada sistem. Dimana proses awal dimulai dengan menetukan populasi awal hingga berakhir dengan terbentuknya individu terbaik.

5) Generate jadwal kereta yang baru.

Pada tahapan ini, penjadwalan kereta akan ditampilkan sebagai hasil evaluasi nilai fitness. Hasil evaluasi nilai fitness inilah yang merupakan individu terpilih, yang merupakan hasil penjadwalan yang paling optimal dengan menggunakan algoritma genetik.


(2)

3.3

Parameter Genetik dalam Penjadwalan Kereta

Sebelum penerapan algoritma genetik pada aplikasi optimasi penjadwalan kereta api ini di terapkan ada beberapa parameter genetik yang digunakan, antara lain :

a) 1 Gen, mewakili 1 job atau 1 kereta dengan jam keberangkatan yang berbeda-beda.

b) 1 Individu, mewakili kumpulan gen, atau dengan kata lain 1 individu merupakan kumpulan kereta dengan kombinasi jadwal keberangkatan yang berbeda-beda.

c) 1 Populasi, mewakili kumpulan individu.

d) Fitness, mewakili proses seleksi setiap individu dengan nilai maksimum atau nilai kecocokan tertinggi.

e) Crossover, mewakili proses seleksi setiap individu terpilih diikuti dengan proses mutasi .

f) Evaluasi, merupakan proses perulangan langkah d-e sampai ditemukan individu dengan hasil yang diinginkan, didalam hal ini jadwal keberangkatan kereta dengan waktu yang optimal.

3.4

Perancangan

Database

Desain dan perancangan database merupakan langkah penting di dalam perancangan sistem sebuah aplikasi. Dengan demikian maka desain dan perencanaan database harus dirancang dan kemudian diimplementasikan dengan baik. Perancangan yang baik akan menyebabkan database dapat melayani kebutuhan-kebutuhan aplikasi dengan baik pula.


(3)

3.4.1 Tabel

Tabel 3.1 merupakan tabel kereta yang digunakan untuk menyimpan id, nama_kereta, start, dan tujuan kereta api. Perancangan tabel pada aplikasi algoritma genetik ini merupakan perancangan tabel tunggal yang hanya terdiri dari 1 tabel. Semua proses pengolahan informasi dilakukan pada sisi client (client side) sehingga tidak membutuhkan banyak tabel. Kolom ID digunakan untuk menyimpan id dari kereta. Kolom nama digunakan untuk menyimpan informasi nama kereta. Kolom start digunakan untuk menyimpan jam awal keberangkatan kereta. Kolom start merupakan kolom yang diisi dengan nilai yang didapatkan dari proses yang dijalankan dengan algoritma genetik. Sedangkan kolom tujuan berfungsi untuk menyimpan data tujuan keberangkatan kereta. Kolom ini diisi dengan nilai 1 dan 0. Angka 1 menunjukkan bahwa tujuan akhir kereta adalah Jakarta dan angka 0 menunjukkan bahwa tujuan akhir kereta adalah Semarang. Selain itu kolom ID pada tabel 3.1 merupakan primary key dari tabel yang bersangkutan yang dibuat secara auto increment atau penomoran otomatis pada sisi database. Sehingga kolom tersebut tidak perlu diinput oleh user.

Tabel 3.1 Tabel Kereta

Field Type Size

Id Int 9

Nama_Kereta Varchar 100

Start Time 100


(4)

3.5

Perancangan Desain

Interface

Aplikasi ini dibuat hanya untuk user tunggal (admin) yang dapat melakukan seluruh proses yang ada di dalam sistem yakni men-generate jadwal keberangkatan dan manage data kereta yang ada sehingga dalam perancangannya tidak terdapat perbedaan perancangan interface untuk user yang berbeda.

Gambar 3.7 merupakan desain interface aplikasi, untuk tampilan awal aplikasi :

Nama Kereta

Tujuan

Hasil Generate Jadwal TAMBAH

RESET

Gambar 3.7 Tampilan Awal Aplikasi

Pada tampilan awal aplikasi akan ditampilkan jadwal keberangkatan kereta terakhir yang sudah dijadwalkan sebelumnya. Untuk menambahkan jumlah kereta dan tujuan terdapat form untuk menginputkan data jumlah kereta dan tujuan keberangkatan. Nama kereta dan tujuan keberangkatan akan ditambahkan pada jadwal. Jadwal tersebut akan dioptimasi dengan menggunakan algoritma genetik untuk menghasilkan jadwal baru yang lebih optimal dengan


(5)

ID NAMA KERETA TUJUAN WAKTU KEBERANGKATAN

PROSES

REFERENSI JADWAL

PARAMETER GENETIK

FITNESS

Gambar 3.8 Form Manage Jadwal

Gambar 3.8 merupakan tampilan form manage jadwal keberangkatan kereta. Untuk mengelola jadwal keberangkatan kereta yang baru, operator dapat menentukan referensi jadwal sesuai dengan kebutuhan. Kemudian terdapat parameter (parameter genetik) dan nilai fitness yang mempengaruhi penjadwalan kereta api. Apabila semua ketentuan referensi jadwal, parameter genetik dan nilai fitness sudah ditentukan pada aplikasi, maka aplikasi akan melakukan optimasi penjadwalan dengan menggunakan algoritma genetik dan ditampilkan pada aplikasi.


(6)

JADWAL 1 JADWAL 2 JADWAL 3

PROSES

REFERENSI JADWAL

PARAMETER GENETIK

FITNESS

Gambar 3.9 Form Hasil Optimasi Penjadwalan

Gambar 3.9 merupakan form bagi operator untuk melihat hasil optimasi penjadwalan oleh aplikasi. Jadwal yang akan ditampilkan disesuaiakan dengan jumlah referensi jadwal yang diinginkan serta parameter genetik dan nilai fitness yang ditentukan sebelumnya. Hasil optimasi penjadwalan yang ditampilkan merupakan jadwal dengan optimasi terbaik dengan menggunakan algoritma genetik.