SISTEM PENJADWALAN KERETA API PADA JADWAL KERETA API SEMARANG - JAKARTA LAPORAN PENELITIAN Diajukan kepada Fakultas Teknologi Informasi untuk memperoleh Gelar Sarjana Komputer Peneliti: Martin Kartiyoso Wiwin Sulistyo, S.T, M.Kom. Dian W. Chandra, S.Kom. M.Cs. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Januari 2012 i
ii
Pernyataan Skripsi yang berikut ini: Judul : Sistem Penjadwalan Kereta Api pada jadwal Semarang - Jakarta Pembimbing : 1. Wiwin Sulistyo, S.T, M.Kom. 2. Dian W. Chandra, S.Kom. M.Cs. adalah benar hasil karya saya: Nama : Martin Kartiyoso NIM : 672003144 Saya menyatakan tidak mengambil sebagian atau seluruhnya dari hasil karya orang lain kecuali sebagaimana yang tertulis pada daftar pustaka. Pernyataan ini dibuat dengan sebenarnya sesuai dengan ketentuan yang berlaku dalam penulisan karya ilmiah. Salatiga, Januari 2012 (Martin Kartiyoso) iii
Lembar Identitas Judul : Sistem Penjadwalan Kereta Api Pada Jadwal Kereta Api Semarang - Jakarta Mahasiswa a) Nama Lengkap : Martin Kartiyoso b) NIM : 672003144 c) Bidang Konsentrasi : Jaringan d) Fakultas/Progdi : Teknologi Informasi / Teknik Informatika e) Alamat : Jl. P.Diponegoro 27 Tayu - Pati f) Telp/HP/Faks : 08995834339 g) Email : martin.kartiyoso@yahoo.com Peneliti 1 a) Nama Lengkap : Wiwin Sulistyo b) Bidang Keahlian : Jaringan c) Unit Kerja : Salatiga d) Alamat : Perum Satya Asri II/2 Sidorejo Salatiga e) Telpon/HP/Faks : 085742347505 f) Email : wiwinsulistyo@staff.uksw.edu Peneliti 2 a) Nama Lengkap : Dian W.Chandra b) Bidang Keahlian : Jaringan c) Unit Kerja : Salatiga d) Alamat : Salatiga e) Telpon/HP/Faks : 08156565156 f) Email : dian.chandra@staff.uksw.edu iv
Prakata Puji syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa karena atas kasih dan penyertaan-nya, penulis dapat menyelesaikan skripsi yang berjudul Sistem Penjadwalan Kereta Api pada Jadwal Kereta Api Semarang - Jakarta ini. Skripsi ini disusun untuk memenuhi sebagian persyaratan dalam memperoleh gelar Sarjana Komputer pada Program Studi Teknik Informatika, Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga. Skripsi ini dapat selesai berkat bantuan dari berbagai pihak yang telah memberikan bimbingan, ide, dan berbagai dukungan lainnya kepada penulis. Pada kesempatan ini penulis mengucapkan terima kasih kepada : 1. Bapak Andeka Rocky Tanaamah, SE., M.Cs., selaku Dekan Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga. 2. Bapak Dian W. Chandra, S.Kom., M.Cs. selaku Ketua Program Studi Teknik Informatika, Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga. 3. Bapak Wiwin Sulistyo, ST., M.kom., sebagai dosen pembimbing pertama atas kesabaran dalam memberi bimbingan, petunjuk, motivasi dan pengarahan dalam penyusunan skripsi ini. 4. Bapak Dian W. Chandra, S.Kom., M.Cs. selaku dosen pembimbing dua atas kesabaran dalam memberi bimbingan, masukan, motivasi dan pengarahan dalam penyusunan skripsi ini. v
5. Seluruh Bapak/Ibu dosen pengajar di Fakultas Teknologi Informasi yang telah mendidik dan memberikan bekal kepada penulis selama kuliah serta seluruh staf atas bantuannya. 6. Orang tua yang selalu mendorong dan memberi dukungan sepenuhnya. 7. Teman kos Dipo 68G Sinchan, Ari, unyil, Amal, erisman, djoko, willy, Gori, oki dan semua teman tempat berbagi keceriaan, suka dan duka, terima kasih. 8. Teman teman dari FTI 2003, teman teman seperjuangan selama ini, yang telah mengisi kehidupan kuliah di FTI UKSW. 9. Pihak-pihak yang tidak dapat penulis sebutkan satu persatu yang telah membantu penulis selama penyusunan skripsi ini. Penulis menyadari sepenuhnya bahwa dalam penulisan skripsi ini masih terdapat kekurangan. Oleh karena itu, penulis mengharapkan saran yang membangun dari pembaca demi penyempurnaan laporan ini. Akhir kata, penulis berharap semoga laporan skripsi ini dapat bermanfaat bagi pembaca sekalian. Salatiga, Januari 2012 Martin Kartiyoso vi
Daftar Isi Halaman Halaman Judul... i Halaman Pengesahan... ii Halaman Pernyataan... iii Lembar Identitas... iv Prakata... v Daftar Isi... vii Daftar Gambar... ix Daftar Tabel... x Daftar Kode Program... xi Abstract... xii Bab 1 Pendahuluan... 1 1.1 Latar Belakang... 1 1.2 Rumusan Masalah... 2 1.3 Tujuan dan Manfaat... 3 1.4 Batasan Masalah... 3 1.5 Sistematika Penulisan... 4 Bab 2 Tinjauan Pustaka... 7 2.1 Penelitian Terdahulu... 7 2.2 Penjadwalan... 9 2.2.1 Masalah Penjadwalan... 9 2.2.2 Tujuan Penjadwalan... 11 2.2.3 Klasifikasi Penjadwalan Kereta... 11 2.3 Algoritma Genetik... 12 2.3.1 Struktur Umum Algoritma Genetik... 14 2.4 Pemodelan Algoritma Genetik... 17 2.4.1 Pemilihan Operator Genetik... 18 2.4.2 Fungsi Fitness... 19 2.4.3 Parameter Genetik... 19 2.4.4 Pemodelan Penjadwalan... 20 Bab 3 Metode Perancangan Sistem... 23 3.1 Analisa kebutuhan... 25 3.2 Perancangan Permodelan Algoritma Genetik... 27 3.3 Parameter Genetik dalam Penjadwalan Kereta... 32 3.4 Perancangan Database... 32 3.4.1 Tabel... 33 3.5 Perancangan Desain Interface... 34 vii
Bab 4 Implementasi Sistem... 37 4.1 Pembangunan Prototype... 37 4.2 Hasil dan Pembahasan... 47 4.3 Pengujian Sistem... 50 4.3.1 Pengujian Black Box... 50 4.3.2 Pengujian Fungsi Program... 51 4.3.3 Pengujian performance program... 51 Bab 5 Kesimpulan dan Saran Pengembangan... 53 5.1 Kesimpulan... 53 5.2 Saran Pengembangan... 53 Daftar Pustaka... 55 viii
Daftar Gambar Halaman Gambar 2.1 Siklus Algoritma Genetik.... 15 Gambar 2.2 String A dan Hasil Mutasi... 18 Gambar 2.3 Notasi... 20 Gambar 3.1 Model Prototyping... 23 Gambar 3.2 Jadwal Kereta Semarang Jakarta (Keberangkatan)... 25 Gambar 3.3 Jadwal Kereta Jakarta Semarang (Kedatangan)... 26 Gambar 3.4 Proses Penjadwalan Manual... 28 Gambar 3.5 Tahapan Penjadwalan... 29 Gambar 3.6 Implementasi Algoritma genetik... 31 Gambar 3.7 Tampilan Awal Aplikasi... 34 Gambar 3.8 Form Manage Jadwal... 35 Gambar 3.9 Form Hasil Optimasi Penjadwalan... 36 Gambar 4.1 Form Manage Kereta... 37 Gambar 4.2 Proteksi Operator Manage Data Kereta... 39 Gambar 4.3 Form Menu Operator Manage Jadwal... 40 Gambar 4.4 Form Menu Operator Generate Jadwal... 45 Gambar 4.5 Form Hasil penjadwalan 1... 48 Gambar 4.6 Form Hasil penjadwalan 2... 49 ix
Daftar Tabel Halaman Tabel 3.1 Tabel Kereta... 33 Tabel 4.1 Black Box Testing... 50 x
Daftar Kode Program Halaman Kode Program 4.1 Kode Program untuk input kereta dan tujuan... 38 Kode Program 4.2 Perintah untuk men-generate populasi awal... 41 Kode Program 4.3 Perintah untuk evaluasi fitness... 42 Kode Program 4.4 Perintah untuk memilih individu yang terbaik... 43 Kode Program 4.5 Perintah untuk Crossover... 43 Kode Program 4.6 Proses Mutasi... 44 Kode Program 4.5 Proses Generate Jadwal... 46 xi
Abstract Every year PT KAI (Kereta Api Indonesia) have to perform effective scheduling of train which is in accordance with the needs of rail transportation with the number of passangers, umber of trains, railway lines, and departure times of train between stations. At the moment the cheduling system is still done manually which consume a long time due to the fairly complicated process of counting the train schedule. To solve this obstacle, it is needed a system that can be operated effectively and not consume a lot of time where the system is modeled and then look for solutions scheduling using genetic algorithms to generate a more effective train departure schedule by considering the number of trains, railway lines and the amount of time between the departure station. Keywords: Scheduling, genetic algorithms. Abstrak Setiap tahun PT KAI (Kereta Api Indonesia) harus melakukan penjadwalan kereta api yang efektif sesuai dengan tingkat kebutuhan angkutan kereta api dengan jumlah penumpang, jumlah kereta, jumlah jalur kereta dan waktu keberangkatan kereta antar stasiun. Pada saat ini proses penjadwalan masih di lakukan secara manual yang memakan waktu cukup lama dikarenakan cukup rumitnya proses penghitungan jadwal kereta api tersebut. Untuk mengatasi hal tersebut dibutuhkan sebuah sistem yang dapat berfungsi dengan efektif dan tidak memakan waktu penghitungan yang lama dimana sistem tersebut dimodelkan dan kemudian dicari solusi penjadwalan menggunakan algoritma genetik yang akan menghasilkan jadwal keberangkatan kereta api yang lebih efektif dengan mempertimbangkan jumlah kereta, jumlah jalur kereta dan waktu keberangkatan antar stasiun. Kata Kunci : Penjadwalan, algoritma genetik. xii