I-1
Pada bab pertama ini akan diuraikan mengenai latar belakang, rumusan masalah, tujuan, batasan masalah, metodologi, dan sistematika pembahasan dalam Tugas Akhir ini.
1.1 Latar Belakang
Kereta api merupakan salah satu alat transportasi utama di seluruh dunia. Di Indonesia dan banyak negara lain, kereta api menggunakan jalur tunggal, artinya satu jalur kereta api digunakan untuk dua arah yang berbeda. Karena terdapat banyak kereta api yang menggunakan jalur atau rute yang sama, penjadwalan kereta api menjadi satu hal yang mutlak diperlukan. Namun pembuatan jadwal kereta api bukanlah masalah yang mudah. Terdapat banyak aturan atau batasan (constraints) yang harus dipenuhi, misalnya aturan penyusulan (overtaking rule), aturan persilangan (crossing rule), aturan headway, kecepatan maksimal yang diperbolehkan di suatu jalur, dan sebagainya [SUP01]. Selain batasan-batasan tersebut, besarnya data yang harus diproses (banyaknya kereta api dan banyaknya jalur atau rute yang harus ditempuh) juga menjadi masalah dalam penjadwalan kereta api jalur tunggal.
Perkembangan teknologi informasi saat ini memungkinkan penyelesaian masalah penjadwalan kereta api jalur tunggal. Ada beberapa pendekatan yang telah dilakukan untuk menyelesaikan masalah penjadwalan kereta api jalur tunggal, misalnya pendekatan Mathematical Programming dan Constraint Programming [OLI01]. Dalam Tugas Akhir ini, pendekatan yang digunakan adalah yang kedua. Pendekatan ini digunakan karena dapat menangani berbagai macam aturan atau batasan yang ada dalam masalah penjadwalan kereta api jalur tunggal.
Constraint Programming adalah metode penyelesaian masalah yang terdiri atas
dua langkah, yaitu modelling dan resolution [MON01]. Modelling dilakukan dengan cara merepresentasikan masalah yang diberikan sebagai sebuah Constraint
variabel, domain dan batasan. Solusi yang ingin dicari pada masalah yang diberikan dimodelkan sebagai variabel, himpunan nilai yang mungkin pada solusi dimodelkan sebagai domain dari variabel dan hubungan yang harus dipenuhi antara variabel-variabel dimodelkan sebagai batasan CSP [STU03]. Selanjutnya, proses pencarian solusi CSP dilakukan pada langkah resolution dengan menggunakan constraint solver.
Dalam masalah penjadwalan kereta api jalur tunggal, salah satu CSP yang dapat digunakan untuk pemodelan adalah masalah penjadwalan Job-Shop. Pemodelan dilakukan dengan menganggap perjalanan-perjalanan kereta api sebagai sekumpulan pekerjaan (jobs) yang dijadwalkan pada sekumpulan sumber daya (resources) berupa petak-petak blok atau segmen-segmen jalur kereta api [OLI00]. Sebuah pekerjaan terdiri atas beberapa operasi yang harus dikerjakan secara berturutan, dimana sebuah operasi adalah bagian perjalanan kereta api melewati satu petak blok. Antara petak blok satu dengan yang lain dipisahkan oleh sebuah stasiun atau sinyal. Sebuah contoh model tersebut dapat dilihat pada Gambar I-1.
Gambar I-1 Contoh Rute Perjalanan Kereta Api
contoh di atas, perjalanan dari stasiun S1 ke stasiun S3 dapat dipandang sebagai kumpulan lima buah operasi yang dikerjakan secara berturutan. Operasi pertama adalah perjalanan melewati petak blok T1, operasi kedua adalah perjalanan melalui petak blok T2 dan seterusnya.
Solusi yang ingin dicari pada masalah penjadwalan Job-Shop adalah jadwal atau waktu pelepasan (release time) setiap operasi pada setiap pekerjaan, yaitu waktu operasi tersebut mulai dikerjakan. Hal ini sama juga dengan waktu penggunaan sumber daya. Dengan demikian, dalam representasi CSP, variabel pada masalah penjadwalan Job-Shop adalah waktu pelepasan operasi-operasi tersebut,
domainnya adalah himpunan waktu (detik, menit atau jam), dan batasannya adalah sebuah sumber daya tidak boleh digunakan oleh dua operasi yang berbeda pada waktu yang sama. Pada masalah penjadwalan kereta api jalur tunggal, sebuah petak blok yang digunakan oleh dua perjalanan yang berbeda dapat mengakibatkan terjadinya tabrakan.
Ada beberapa strategi dan algoritma yang dapat digunakan untuk menyelesaikan masalah penjadwalan Job-Shop, antara lain Backtracking, Branch and Bound dan
Local Search. Dalam Tugas Akhir ini, algoritma yang digunakan adalah variasi
dari algoritma Local Search yang bernama Hill Climbing dengan strategi variable
and value ordering, dan constraint propagation. Variable and value ordering
digunakan untuk mengurutkan variabel yang akan diberi nilai (urutan operasi yang akan dijadwalkan lebih dulu) dan constraint propagation digunakan untuk menghapus nilai-nilai pada domain sebuah variabel jika nilai-nilai tersebut mengarah kepada pelanggaran batasan [OLI01].
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas, rumusan masalah yang dikaji dalam Tugas Akhir ini adalah:
2. Bagaimana menemukan solusi optimal lokal (local optimum) dari solusi yang telah ditemukan dengan optimasi minimum total delay atau total keterlambatan minimal.
1.3 Tujuan
Tujuan dari Tugas Akhir ini adalah implementasi model penjadwalan Job-Shop dalam masalah penjadwalan kereta api jalur tunggal dengan pendekatan
Constraint Programming. Tujuan khusus dari Tugas Akhir ini adalah sebagai
berikut:
1. Memahami deskripsi sistem perjalanan kereta api, aturan-aturan umum penjadwalan kereta api jalur tunggal, dan masalah penjadwalan Job-Shop. 2. Membuat model penjadwalan Job-Shop dari masalah penjadwalan kereta api
jalur tunggal.
3. Memahami strategi dan algoritma pencarian solusi dari masalah penjadwalan
Job-Shop.
4. Melakukan implementasi pencarian solusi dari masalah penjadwalan Job-Shop dengan pendekatan Constraint Programming.
5. Melakukan pengujian dengan menggunakan data perjalanan kereta api yang sebenarnya.
1.4 Batasan Masalah
Batasan masalah yang dikaji dalam Tugas Akhir ini adalah:
1. Implementasi yang dilakukan hanya mencari satu solusi yang baik (local
optimum), bukan solusi terbaik dari seluruh solusi yang ada (global optimum).
Kriteria optimasi yang digunakan adalah total keterlambatan minimum.
kereta api (misalnya dari Jakarta ke Bandung kemudian dari Bandung ke Jakarta dalam satu hari). Contoh batasan n-ary misalnya lima buah kereta api tidak boleh berada di sebuah stasiun kecil dalam waktu yang sama.
1.5 Metodologi
Metodologi yang digunakan dalam pengerjaan Tugas Akhir ini adalah: 1. Studi Pustaka
Studi pustaka dilakukan selama pengerjaan Tugas Akhir. Studi pustaka dilakukan dengan mempelajari deskripsi sistem perjalanan kereta api, aturan-aturan penjadwalan kereta api jalur tunggal, masalah penjadwalan Job-Shop,
Constraint Programming dan contoh-contoh penyelesaian masalah dengan
pendekatan Constraint Programming. 2. Pemodelan Masalah
Masalah penjadwalan kereta api jalur tunggal akan dianalisis dan dimodelkan sebagai sebuah masalah penjadwalan Job-Shop.
3. Analisis dan Perancangan
Tahapan analisis dilakukan dengan menentukan spesifikasi kebutuhan utama perangkat lunak yang dibangun. Hal ini mencakup kebutuhan fungsional dan non-fungsional. Selain itu juga dilakukan identifikasi fitur-fitur utama dengan diagram use-case. Kemudian pada tahap perancangan dilakukan pembagian kelas-kelas utama perangkat lunak dan hubungan antara kelas-kelas tersebut berdasarkan hasil analisis yang telah dilakukan. Hal ini direpresentasikan dengan menggunakan diagram kelas.
4. Implementasi dan Pengujian
5. Pengujian
Setelah implementasi selesai, pengujian dilakukan dengan menggunakan berbagai macam data perjalanan kereta api.
1.6 Sistematika Pembahasan
Sistematika pembahasan Tugas Akhir ini adalah sebagai berikut:
1. Bab I Pendahuluan berisi penjelasan mengenai latar belakang, rumusan masalah, tujuan, batasan masalah, metodologi, serta sistematika pembahasan yang digunakan dalam penyusunan Tugas Akhir ini.
2. Bab II Dasar Teori berisi dasar teori yang diperlukan dalam pemodelan, analisis, perancangan dan penyelesaian masalah yang telah dimodelkan. 3. Bab III Pemodelan Masalah berisi tentang bagaimana cara melakukan
pemodelan masalah nyata dengan menggunakan model yang ada dan algoritma serta strategi apa saja yang dapat digunakan untuk mencari solusi pada model yang telah dibuat.
4. Bab IV Analisis dan Perancangan berisi analisis kebutuhan-kebutuhan utama perangkat lunak, fitur-fitur utama, perancangan antarmuka aplikasi dan perancangan kelas-kelas aplikasi.
5. Bab V Implementasi dan Pengujian berisi penjelasan mengenai implementasi dan pengujian yang telah dilakukan berdasarkan pemodelan, analisis dan perancangan yang telah dilakukan sebelumnya.