BAB IV ANALISIS DAN PERANCANGAN Tugas Akhir ini akan menghasilkan sebuah perangkat lunak penjadwalan kereta api jalur tunggal dengan nama Kimspoor Scheduler. Pada bab ini akan dijelaskan mengenai analisis dan perancangan yang diperlukan sebelum melakukan implementasi perangkat lunak Kimspoor Scheduler.
4.1 Analisis Pada tahap analisis akan dijelaskan mengenai deskripsi umum perangkat lunak, kebutuhan-kebutuhan fungsional dan non-fungsional perangkat lunak, diagram use-case dan diagram kelas tahap analisis.
4.1.1 Deskripsi Umum Perangkat Lunak Kimspoor Scheduler adalah perangkat lunak yang digunakan untuk melakukan penjadwalan kereta api jalur tunggal dengan menggunakan pendekatan constraint programming. Tujuan dari perangkat lunak ini adalah mendapatkan sebuah jadwal perjalanan kereta api jalur tunggal yang memenuhi aturan-aturan dalam perjalanan kereta api jalur tunggal.
Fitur pertama perangkat lunak ini adalah memasukkan data perjalanan kereta api jalur tunggal ke dalam basis data, yaitu rute perjalanan (petak-petak blok dan stasiun) dan kereta api yang melakukan perjalanan pada rute tersebut. Setelah data dimasukkan, pengguna dapat melihat data tersebut untuk melakukan verifikasi. Perangkat lunak ini tidak dapat melakukan verifikasi data yang dimasukkan. Setelah pengguna memasukkan data yang valid, perangkat lunak ini dapat melakukan penjadwalan perjalanan-perjalanan kereta api yang tersimpan di basis data. Hasil dari proses penjadwalan ini adalah jadwal-jadwal keberangkatan kereta api di tiap stasiun yang dilalui oleh kereta api tersebut. Jadwal ini akan disimpan di dalam basis data. Selanjutnya, pengguna dapat menampilkan jadwal yang tersimpan di dalam basis data sebagai sebuah tabel jadwal perjalanan kereta api maupun diagram ruang-waktu untuk mengetahui apakah terdapat aturan kereta api yang dilanggar dalam penjadwalan. Diagram ruang-waktu tersebut juga dapat
IV-1
IV-2
disimpan sebagai sebuah file gambar. Dengan demikian, jadwal kereta api tersebut dapat dibawa kemana-mana, tidak hanya di komputer lokal yang menyimpan basis data.
4.1.2 Kebutuhan-Kebutuhan Perangkat Lunak Kebutuhan perangkat lunak Kimspoor Scheduler ini dibagi menjadi dua, yaitu kebutuhan fungsional dan kebutuhan non-fungsional.
4.1.2.1 Kebutuhan Fungsional Perangkat Lunak Berdasarkan deskripsi umum perangkat lunak di atas, kebutuhan fungsional perangkat lunak ini disajikan dalam Tabel IV-1 berikut.
Tabel IV-1 Kebutuhan Fungsional Perangkat Lunak
No
1
Kebutuhan fungsional
Memasukkan perjalanan kereta api
Deskripsi
data Perangkat lunak ini dapat menerima data perjalanan kereta api yang diperlukan dalam penjadwalan kereta api. Hal ini meliputi rute perjalanan, stasiun, petak blok, dan kereta api. Data
masukan
pengguna
ini
kemudian
disimpan ke dalam basis data 2
Melihat data masukan
Data perjalanan kereta api yang tersimpan di basis
data
dapat
dilihat
kembali
oleh
pengguna. 3
Mengubah atau menghapus Data data masukan
masukan
yang
salah
atau
tidak
diperlukan kembali dalam penjadwalan dapat diubah nilainya atau dihapus dari basis data.
4
Melakukan penjadwalan
Perangkat lunak melakukan penjadwalan dengan
cara
perjalanan
mengambil
dari
basis
data data
masukan kemudian
menerapkan algoritma-algoritma pencarian jadwal kereta api yang tidak melanggar aturan-aturan perjalanan kereta api.
IV-3
No
5
Kebutuhan fungsional
Menampilkan jadwal
Deskripsi
Jadwal yang sudah disimpan di dalam basis data dapat ditampilkan dalam bentuk tabel keberangkatan perjalanan kereta api maupun diagram ruang-waktu.
6
Menyimpan diagram ruang- Diagram waktu sebagai file gambar
ruang-waktu
yang
merepresentasikan jadwal kereta api selain dapat ditampilkan oleh perangkat lunak juga dapat disimpan sebagai sebuah file gambar.
4.1.2.2 Kebutuhan Non-Fungsional Perangkat Lunak Selain kebutuhan fungsional, perangkat lunak ini juga harus memenuhi kebutuhan-kebutuhan non-fungsional. Kebutuhan non-fungsional yang pertama adalah kinerja penjadwalan yang baik, yaitu waktu pencarian jadwal yang memenuhi semua aturan-aturan perjalanan kereta api tidak terlalu lama.
Kebutuhan non-fungsional berikutnya adalah antarmuka perangkat lunak yang tidak membingungkan. Hal ini diutamakan pada masalah penampilan data masukan dan diagram ruang-waktu yang dihasilkan.
Kebutuhan yang terakhir adalah penjagaan integritas basis data. Data perjalanan kereta api yang dimasukkan dengan menggunakan perangkat lunak ini harus selalu benar. Sebagai contoh jika data stasiun dihapus, maka data petak jalan yang menggunakan stasiun tersebut juga harus dihapus. Demikian juga dengan data rute dan perjalanan yang menggunakan petak jalan tersebut. Selain penghapusan data, integritas basis data juga harus tetap terjaga walaupun ada data yang diubah (tidak dihapus).
IV-4
4.1.3 Diagram Use-Case Berdasarkan kebutuhan fungsional di atas, diagram use-case dari perangkat lunak ini disajikan dalam Gambar IV-1 berikut.
Gambar IV-1 Diagram Use-Case Perangkat Lunak Kimspoor Scheduler
Aktor atau pengguna dalam diagram use-case di atas adalah pegawai di sebuah perusahaan kereta api yang memiliki wewenang untuk membuat jadwal kereta api. Pengguna memiliki data perjalanan kereta api berupa rute jaringan kereta api, stasiun-stasiun, petak-petak jalan pada rute tersebut dan kereta api yang akan melakukan perjalanan dengan menggunakan rute tersebut. Perangkat lunak ini dapat digunakan untuk memasukkan data perjalanan tersebut ke dalam basis data. Setelah data perjalanan dimasukkan, penggunaa dapat menggunakan perangkat lunak ini untuk melakukan penjadwalan sesuai aturan-aturan perjalanan yang ada. Perangkat lunak ini akan menyimpan hasil penjadwalan ke dalam basis data. Pengguna kemudian dapat menampilkan jadwal yang tersimpan di dalam basis data dalam representasi diagram ruang-waktu.
IV-5
4.1.4 Analisis Kelas-Kelas
4.1.4.1 Identifikasi Kelas-Kelas Berdasarkan analisis kebutuhan perangkat lunak dan diagram use-case yang telah dibuat, kelas-kelas yang akan digunakan dalam perancangan dan implementasi perangkat lunak disajikan dalam Tabel IV-2 berikut. Tabel IV-2 Kelas-Kelas Tahap Analisis
No
1
Nama Kelas
AntarmukaUtama
Deskripsi
Kelas yang menangani antarmuka utama perangkat lunak dan mengatur antarmukaantarmuka masukan dan keluaran.
2
AntarmukaMasukan
Kelas
yang
menangani
masukan
dari
pengguna. 3
AntarmukaKeluaran
Kelas yang menangani penampilan hasil penjadwalan kepada pengguna.
4
KeretaApi
Kelas kereta api
5
Rute
Kelas rute perjalanan kereta api.
6
PetakJalan
Kelas petak jalan
7
PetakBlok
Kelas petak blok
8
Stasiun
Kelas stasiun
9
Perjalanan
Kelas yang menangani perjalanan-perjalanan yang akan dijadwalkan.
10
Operasi
Kelas yang menangani operasi-operasi dalam satu perjalanan kereta api.
11
Jadwal
Kelas untuk menyimpan hasil penjadwalan yang dilakukan. Kelas ini hanya menangani jadwal satu perjalanan saja.
12
Penjadwal
Kelas utama yang melakukan penjadwalan
13
Masukan
Kelas yang menangani data perjalanan yang dimasukkan
IV-6
4.1.4.2 Diagram Kelas Tahap Analisis Diagram kelas analisis yang menyatakan hubungan-hubungan antara kelas-kelas yang telah diidentifikasi disajikan pada Gambar IV-2 berikut.
Gambar IV-2 Diagram Kelas Analisis Perangkat Lunak Kimspoor Scheduler
4.2 Perancangan Pada tahap ini dilakukan perancangan antarmuka dan perancangan kelas-kelas dengan lebih rinci. Perancangan kelas yang dilakukan meliputi identifikasi atributatribut dan operasi-operasi pada kelas, pemaketan kelas-kelas, hubungan kelaskelas di dalam paket-paket tersebut dan juga hubungan kelas-kelas antarpaket.
4.2.1 Perancangan Antarmuka Antarmuka perangkat lunak Kimspoor Scheduler ini sangat sederhana. Setelah perangkat lunak dijalankan, pengguna akan masuk ke antarmuka utama. Gambar IV-3 berikut menyajikan gambar rancangan antarmuka utama perangkat lunak ini .
IV-7
Gambar IV-3 Rancangan Antarmuka Utama Perangkat Lunak
Tujuh buah toolbar di bagian atas antarmuka utama berfungsi sebagai wizard untuk memandu pengguna dalam menggunakan perangkat lunak langkah demi langkah secara bertahap. Toolbar yang pertama digunakan untuk konfigurasi koneksi basis data, toolbar kedua sampai dengan kelima digunakan untuk membuka panel-panel masukan dan penampilan data masukan, toolbar keenam untuk melakukan fungsi penjadwalan dan yang terakhir untuk penampilan keluaran perangkat lunak yang berupa diagram ruang-waktu. Empat buah panel yang dibuka dengan empat toolbar tersebut adalah panel data masukan stasiun, petak jalan, rute dan perjalanan.
Hal pertama yang harus dilakukan sebelum melakukan proses penjadwalan kereta api adalah melakukan koneksi basis data dengan server basis data. Hal ini diperlukan untuk pengambilan dan penyimpanan data perjalanan yang akan dijadwalkan. Antarmuka untuk masukan konfigurasi dan koneksi basis data ini sangat sederhana. Antarmuka tersebut hanya berisi alamat server, port server,
IV-8
nama basis data, nama pengguna dan password pengguna. Gambar IV-4 menyajikan rancangan antarmuka ini.
Gambar IV-4 Rancangan Antarmuka Koneksi Basis Data
Setelah perangkat lunak terhubung dengan server basis data, pengguna dapat memasukkan data atau melihat data lain yang sudah ada. Antarmuka untuk melakukan hal ini adalah empat buah panel data masukan dan penampilan data. Setiap panel memiliki bentuk yang serupa, yaitu sebuah tabel di sebelah kiri dan sebuah upapanel di sebelah kanan untuk menerima data masukan. Perancangan panel tersebut bertujuan untuk memudahkan pengguna dalam memasukkan data karena data perjalanan kereta api yang dimiliki pengguna pada umumnya berupa tabel. Selain itu, pengguna juga dapat melihat data lain yang sudah ada sebelum memasukkan data. Rancangan antarmuka untuk keempat panel tersebut dapat dilihat pada Gambar IV-5.
Gambar IV-5 Rancangan Antarmuka Panel Masukan dan Penampilan Data
IV-9
Setiap kali pengguna membuka panel tersebut, sebuah tab akan terbuka di bagian bawah toolbar. Dengan demikian, panel-panel masukan lain yang telah dibuka sebelumnya tidak akan tertutup. Gambar IV-6 menampilkan anarmuka utama dengan tiga buah panel yang sedang terbuka.
Gambar IV-6 Rancangan Antarmuka Utama dengan Tiga Panel Terbuka
Yang terakhir adalah antarmuka untuk penampilan grafik keluaran yang berupa diagram ruang-waktu. Proses penjadwalan dapat dilakukan pada perjalananperjalanan yang menggunakan rute-rute berbeda, sedangkan sebuah diagram ruang-waktu hanya bisa digunakan untuk menampilkan satu rute saja. Oleh sebab itu, sebelum perangkat lunak ini menampilkan diagram ruang waktu, pengguna harus memilih rute terlebih dahulu. Rancangan antarmuka untuk pemilihan rute ini dapat dilihat pada Gambar IV-7.
Gambar IV-7 Rancangan Antarmuka Pemilihan Rute
IV-10
Setelah rute perjalanan dipilih, perangkat lunak akan menampilkan diagram ruang-waktu dari hasil penjadwalan. Gambar IV-8 menyajikan rancangan antarmuka ini dengan sebuah contoh diagram ruang-waktu di dalamnya.
Gambar IV-8 Rancangan Antarmuka Penampilan Diagram Ruang-Waktu
4.2.2 Perancangan Kelas-Kelas
4.2.2.1 Identifikasi Kelas-Kelas Tahap Perancangan Berdasarkan analisis yang telah dilakukan, diagram use-case, diagram kelas analisis yang telah dibuat dan juga perancangan antarmuka, kelas-kelas pada perangkat lunak ini akan dibagi dalam tiga buat paket, yaitu paket antarmuka, paket basis data, dan paket penjadwalan. Paket antarmuka berisi kelas-kelas boundary yang bertugas menerima masukan dari pengguna dan menampilkan hasil keluaran. Paket basis data berisi kelas-kelas control yang bertugas untuk menyimpan atau mengambil data dari basis data. Paket penjadwalan berisi kelaskelas control yang melakukan penjadwalan setelah pengguna memasukkan semua data perjalanan. Tabel IV-3 sampai Tabel IV-5 berisi kelas-kelas dari tiap paket tersebut beserta tanggung jawabnya.
IV-11
Tabel IV-3 Kelas-Kelas pada Paket Antarmuka
No
1
Nama Kelas
AntarmukaUtama
Tanggung Jawab
Sebagai antarmuka utama yang mengontrol antarmuka-antarmuka lainnya.
2
PanelStasiun
Menerima masukan data stasiun dari pengguna dan menampilkan data tersebut dalam bentuk tabel.
3
PanelPetakJalan
Menerima masukan data petak jalan dari pengguna dan menampilkan data tersebut dalam bentuk tabel.
4
PanelRute
Menerima masukan data rute dari pengguna dan menampilkan data tersebut dalam bentuk tabel.
5
PanelPerjalanan
Menerima masukan data perjalanan dari pengguna dan menampilkan data tersebut dalam bentuk tabel.
6
AntarmukaKoneksiBD
Menerima masukan konfigurasi server dari pengguna.
7
AntarmukaPemilihanRute
Menerima masukan nama rute yang harus ditampilkan dalam diagram ruang-waktu.
8
AntarmukaDiagramRW
Menampilkan diagram ruang-waktu.
9
PenggambarDiagramRW
Melakukan penggambaran diagram ruang waktu dari jadwal yang telah ditemukan pada kelas Penjadwalan.
10
PenyimpanFileDiagramRW Menyimpan diagram RW sebagai sebuah file gambar.
Tabel IV-4 Kelas-Kelas pada Paket Basis Data
No
1
Nama Kelas
DBManager
Tanggung Jawab
Mengambil dan menyimpan data perjalanan kereta api dari dan ke basis data.
IV-12
No
2
Nama Kelas
ObjectGenerator
Tanggung Jawab
Mengambil data dari basis data dan membentuk objek-objek dari data tersebut. Hal ini sangat diperlukan
pada
proses
penjadwalan
dan
penampilan grafik.
Tabel IV-5 Kelas-Kelas pada Paket Penjadwalan
No
1
Nama Kelas
Stasiun
Tanggung Jawab
Menampung data stasiun yang diperlukan dalam penjadwalan.
2
StasiunPemberhentian
Menampung data stasiun pemberhentian yang diperlukan dalam penjadwalan.
3
PetakJalan
Menampung data petak jalan yang diperlukan dalam penjadwalan.
4
Perjalanan
Menampung data perjalanan yang diperlukan dalam penjadwalan,
operasi-operasi
yang
membentuk perjalanan tersebut dan juga hasil penjadwalan. 5
Operasi
Membagi sebuah perjalanan menjadi beberapa operasi, dimana setiap operasi mengandung objek dari kelas PetakJalan.
6
Penjadwalan
Melakukan penjadwalan terhadap semua data yang telah ditampung dalam objek-objek dari kelas Perjalanan.
7
Konflik
Menyimpan konflik yang terjadi antara dua buah
operasi
dan
cara
penyelesaiannya
(operasi mana yang harus ditunda dan berapa lama penundaannya). 8
GrafDisjungtif
Menyimpan representasi jadwal sebagai graf disjungtif. Hal ini diperlukan untuk pencarian jadwal berikutnya dengan lebih efisien.
IV-13
No
9
Nama Kelas
Simpul
Tanggung Jawab
Menyimpan
simpul-simpul
dalam
graf
disjungtif. 10
SisiKritis
Menyimpan sisi-sisi kritis dalam graf disjungtif.
11
AntrianSimpul
Sebagai tempat menampung simpul-simpul ketika melakukan penelusuran graf disjungtif secara BFS.
12
AnggotaAntrianSimpul
Menyimpan simpul-simpul anggota dari kelas Antrian Simpul.
4.2.2.2 Diagram Kelas Tahap Perancangan Kelas-kelas yang telah diidentifikasi pada upabab sebelumnya memerlukan atribut-atribut, operasi-operasi dan hubungan dengan kelas-kelas yang lain agar dapat melaksanakan tanggung jawabnya masing-masing di dalam perangkat lunak ini. Semua hal tersebut dapat terlihat dengan menggunakan diagram kelas perancangan. Karena kelas yang ada cukup banyak, maka diagram kelas tersebut akan dipecah menjadi beberapa bagian. Diagram-diagram kelas tersebut yang menunjukkan hubungan kelas-kelas dalam satu paket disajikan pada Gambar IV-9 sampai dengan Gambar IV-11. Sedangkan diagram kelas yang menunjukkan hubungan antarpaket disajikan pada Gambar IV-12. Pada Gambar IV-12, hubungan kelas-kelas dalam satu paket tidak ditunjukkan seluruhnya karena sudah ada pada tiga gambar sebelumnya.
IV-14
Gambar IV-9 Diagram Kelas pada Paket Antarmuka
Gambar IV-10 Diagram Kelas pada Paket Basis Data
IV-15
Gambar IV-11 Diagram Kelas pada Paket Penjadwalan
IV-16
Gambar IV-12 Diagram Kelas Antarpaket