27
BAB III ANALISIS DAN DESAIN SISTEM
3.1 Analisis Sistem
Melakukan analisis terhadap data-data yang telah dikumpulkan serta melakukan desain system yang akan dibuat. Ada beberapa bagian penting dalam
melakukan perancangan dan pembuatan suatu sistem, yaitu melakukan perancangan dan pembuatan
Workflow aliran kerja, Context Diagram, DFD Data Flow Diagram, Flowchart dan Algoritma Tabu Search serta penyusunan struktur
database sistem. Alur sistem merupakan bagan yang menggambarkan alur atau tahapan-
tahapan yang membentuk suatu aplikasi. Bagian ini juga menampilkan keterlibatan entitas yang berhubungan dengan aplikasi. Data Flow Diagram
merupakan dokumentasi dari suatu sistem yang baik, karena dapat menggambarkan arus data di dalam sistem dengan terstruktur dan jelas. Flowchart
dan algoritma Tabu Search merupakan gambaran alur dan tahapan bagaimana algoritma Tabu Search melakukan penyusunan jadwal kuliah.
Pada bagian selanjutnya, dilakukan pembuatan rancangan entitas-entitas yang saling berhubungan yang membentuk suatu database relasional. Struktur
database yang terbentuk akan berfungsi sebagai tempat penyimpanan data-data yang digunakan dalam aplikasi.
3.2 Perancangan Sistem
Perancangan sistem berisikan penjelasan tentang deskripsi umum sistem, konsep perancangan metode tabu search dalam bentuk flowchart diagram,
perancangan proses, perancangan data, perancangan table, dan perancangan antarmuka.
3.2.1 Pengolahan data mengunakan metode Tabu Search
Untuk mengaplikasikan algoritma TS ke dalam masalah penjadwalan kuliah dapat didefinisikan sebagai berikut :
1. Tahap pembuatan solusi jadwal awal.
Melakukan pengalokasian antara matakuliah dengan dosen yang akan mengajar beserta ruangan yang akan digunakan dengan
menghitung kapasitas ruang dan jumlah maksimal klas, kemudian mengalokasikan data tersebut ke hari dan waktu.
2. Tahap evaluasi konflik yang terjadi.
Mencari nilai konflik awal dan menentukan semua konflik yang terjadi dalam satu jadwal. Dengan cara mencari konflik tiap
waktujam dari hari senin sampai dengan jumat dan menjumlahkan semua konflik yang diperoleh. Nilai konflik yang dihasilkan dijadikan
sebagai nilai terbaik sementara kemudian solusi awal yang dihasilkan dimasukkan pada tabu list.
3. Tahap pembuatan neighbour baru.
Mengalokasikan tiap data mata kuliah, dosen dan ruangan ke waktu yang tersedia secara random, jadwal awal yang telah ada
dialokasikan kembali secara acak random kedalam hari dan waktu yang tersedia sehingga menghasilkan jadwal baru atau solusi baru.
4. Tahap pengelolaan tabu list.
Melakukan pengecekan terhadap tabu list, jadwal baru atau solusi baru yang telah dihasilkan dilakukan pencocokan dengan jadwal –
jadwal yang sudah ada pada tabu list. Jika sudah ada maka dilakukan pengalokasian kembali secara acak, apabila belum ada maka dicari
nilai konfliknya. 5.
Tahap penentuan kriteria terminasi Melakukan pengecekan apakah iterasi sudah mencapai batas
maksimum atau nilai terbaik sudah menemukan nilai konflik minimum atau nilai konflik = 0. Apabila sudah memenuhi salah satu syarat
tersebut maka iterasi dihentikan dan ditentukan solusi atau jadwal terbaik dengan nilai terbaik minimum apabila belum memenuhi maka
proses dilanjutkan sampai memenuhi salah satu syarat tersebut Berdasarkan definisi tersebut diatas dapat disusun algoritma langkah-
langkah pengolahan data sebagai berikut: 1.
memasukan data yang telah dikumpulkan data dosen, data matakuliah, data ruangan juga masukan parameter algoritma tabu search berupa
maksimal iterasi
2. pembuatan solusi jadwal awal.
3. Jadikan jadwal awal sebagai solusi terbaik pada iterasi saat ini
iterasi = 0. 4.
evaluasi konflik, Mencari nilai konflik awal jadikan sebagai nilai terbaik dan masukan ke tabu list.
5. Pembuatan Jadwal baru dengan mengalokasikan datamatkul, dosen,
ruangan ke waktu yang tersedia secara random. 6.
Melakukan pengecekan terhadap tabu list, apakah sudah ada. 7.
Jika sudah ada maka dilakukan pengalokasian kembali secara acak random jika belum ada maka dicari nilai konfliknya.
8. lakukan perbandingan nilai konflik baru dengan nilai konflik terbaik.
9. Jika nilai konflik baru nilai konflik terbaik maka jadikan nilai
konflik baru sebagai nilai konflik terbaik jika tidak nilai konflik terbaik tetap.
10. cek nilai konflik terbaik = 0 atau iterasi = max.
11. Apabila sudah memenuhi salah satu syarat tersebut maka iterasi
dihentikan apabila belum memenuhi maka proses dilanjutkan sampai memenuhi salah satu syarat tersebut.
3.2.2 Flowchart
Dalam sub-bab ini akan dijelaskan alur kerja system penjadwalan kuliah dalam bentuk flowchart diagram. Untuk lebih jelasnya dapat dilihat pada
penjelasan berikut ini.
start
Gambar 3.1 Flowchart pengolahan data mengunakan metode tabu search
Input data -
Mata kuliah -
dosen -
ruangan
Pembuatan jadwal awal
Pembuatan Jadwal baru dengan mengalokasikan
datamatkul, dosen, ruangan ke waktu yang tersedia secara
random Mencari nilai konflik awal, jadikan
sebagai nilai terbaik dan masukan ke tabu list
A B
Cek tabu list apakah ada
ya
tidak
A
Lanjutan Gambar 3.1 Flowchart pengolahan data mengunakan metode tabu search
3.2.3 Ketetapan Baku Penjadwalan Kuliah
Waktu kuliah dilaksanakan pada hari Senin sampai dengan Jumat antara jam 7.00 sampai dengan 16.35 dan setiap jamnya dihitung 1 sks. Dengan rincian
sebagai berikut: Cari nilai konflik baru
Nilai konflik baru nilai
terbaik
Nilai terbaik = nilai konflik baru ya
tidak
Masukkan ke tabu list
Nilai konflik terbaik = 0 atau
iterasi = max
End B
tidak
ya
1. Jam 1
07.00 – 07.50 2.
Jam 2 07.55 – 08.45
3. Jam 3
08.50 – 09.40 4.
Jam 4 09.45 – 10.35
5. Jam 5
10.40 – 11.30 6.
Jam 6 11.30 – 13.00
7. Jam 7
13.00 – 13.50 8.
Jam 8 13.55 – 14.45
9. Jam 9
14.50 – 15.40 10.
Jam 10 15.45 – 16.35 Jam 6
11.30 – 13.00 adalah waktu istirahat, dan tidak ada kuliah. Iterasi dilakukan sampai menemukan total nilai konflik = 0 atau iterasi telah sampai pada
maksimal iterasi yang ditetapkan.
3.2.4 Fungsi Tujuan
Meminimalkan Q konflik 1 Batasan :
Q
xt+1
≤ Q
xt
…………..Q
xt
A
xt
2
Variabel Keputusan
Q
xt+1
≤ 0…………..Q
xt
A
xt
3
Pada persamaan 1 disebutkan bahwa fungsi tujuan dari penyelesaian permasalahan penjadwalan kuliah adalah meminimalkan konflik. Dalam
persamaan tersebut makespan diwakili oleh konflik jadwal Qkonflik. Jika
semakin minimum konflik jadwal, maka semakin optimal jadwal kuliah yang
dihasilkan. Fungsi Tujuan :
Meminimumkan
makespan
= Meminimumkan Q jadwalakhir – 0 =
Meminimumkan Q jadwalakhir = Meminimumkan Q akhir
Persamaan 2 merupakan batasan dari model penjadwalan kuliah yang menjelaskan bahwa konflik antara dua jadwal yang dihasilkan dari jadwal yang
ada, konflik jadwal yang dihasilkan harus kurang dari konflik jadwal sebelumnya. Persamaan 3 ini sebagai hasil akhir dari dari permasalahan penjadwalan kuliah
harus bernilai integer. Dalam permasalahan penjadwalan kuliah, hasil akhir yang diharapakan sebagai variabel keputusan adalah 0 dari setiap jadwal yang ada.
3.2.5 Klasifikasi Constrain
Peraturan-peraturan yang digunakan dalam pembuatan jadwal kuliah dapat dirangkum dan dikelompokan menjadi 2 kelompok sesuai dengan tingkat
kewajiban peraturan itu dipenuhi. Kedua kelompok ini diuraikan pada bagian Hard Constraint dan Soft Constraint.
3.2.5.1 Hard Constraint
Hard Constraint didefinisikan sebagai constraint wajib yang harus dipenuhi dalam proses perhitungan algoritma. Sebuah solusi hanya dapat
dikatakan sah dan valid apabila dalam solusi tersebut sama sekali tidak ada hard
constraint yang terlanggar. Berikut adalah daftar Hard constraint dalam masalah penjadwalan kuliah beserta penjelasannya :
1. Jadwal dosen dan mahasiswa tidak boleh bentrok. 2. Ruangan yang digunakan tidak boleh bentrok.
3. Seluruh kelas yang dibuka harus mendapatkan waktu dan ruangan perkuliahan.
3.2.5.2 Soft Constraint
Berbeda dari hard constraint, kendala yang termasuk dalam kategori soft constraint adalah kendala yang tidak selalu dapat terpenuhi dalam proses
pembentukan jadwal kuliah. Meskipun harus tidak terpenuhi, tetapi jadwal kuliah yang dihasilkan harus semaksimal mungkin berusaha memenuhi ketentuan soft
constraint ini. Berikut adalah daftar soft constraint dalam masalah penjadwalan kuliah beserta penjelasannya :
1. Diusahakan seorang dosen tidak mendapatkan jadwal mengajar lebih dari 3 pertemuan dalam sehari.
2. Jadwal mengajar dosen dalam sehari diusahakan urut tanpa jeda. 3. Jadwal kuliah mahasiswa dalam sehari diusahakan urut tanpa jeda.
Untuk menghitung total konflikconstraint diperoleh dari formula berikut:
Keterangan : h = menyatakan hari
n = menyatakan maksimal hari t = menyatakan waktujam
m
= menyatakan maksimal waktujam j = menyatakan posisi data
k = menyatakan maksimal posisi data d
x,y
= variabel menyatakan konflik total konflik didapat dengan menghitung semua konflik yang terjadi
didalam satu jadwal. Dengan cara mencari konflik tiap waktujam dari hari senin sampai jum’at dan menjumlahkan semua konflik yang diperoleh.
3.2.6 Aturan – aturan terjadi konflik nilai yang sama
Aturan terjadinya konflik merupakan aturan – aturan dari kondisi – kondisi yang dapat menimbulkan terjadinya suatu konflik antara dosen,
matakuliah, ruangan dan kelas paralel dalam 1 hari dan jam yang sama yang diberlakukan dalam aplikasi ini. Untuk menentukan konflik dari jadwal dapat
dibuat sebuah table kombinasi dari jadwal sebagai berikut:
Tabel 3.1 Tabel Kombinasi Jadwal
Mata Kuliah Dosen
Ruang Paralel
Semester Keterangan
Sama Sama
Sama Sama
Sama Konflik
Sama Sama
Sama Sama
Tidak Tidak pasti
Sama Sama
Sama Tidak
Sama Konflik
Sama Sama
Sama Tidak
Tidak Tidak pasti
Sama Sama
Tidak Sama
Sama Konflik
Sama Sama
Tidak Sama
Tidak Tidak pasti
Sama Sama
Tidak Tidak
Sama Konflik
Sama Sama
Tidak Tidak
Tidak Tidak pasti
Sama Tidak
Sama Sama
Sama Konflik
Sama Tidak
Sama Sama
Tidak Tidak pasti
Sama Tidak
Sama Tidak
Sama Konflik
Sama Tidak
Sama Tidak
Tidak Tidak pasti
Sama Tidak
Tidak Sama
Sama Konflik
Sama Tidak
Tidak Sama
Tidak Tidak pasti
Sama Tidak
Tidak Tidak
Sama Tidak konflik
Sama Tidak
Tidak Tidak
Tidak Tidak pasti
Tidak Sama
Sama Sama
Sama Konflik
Tidak Sama
Sama Sama
Tidak Konflik
Tidak Sama
Sama Tidak
Sama Konflik
Tidak Sama
Sama Tidak
Tidak Konflik
Tidak Sama
Tidak Sama
Sama Konflik
Tidak Sama
Tidak Sama
Tidak Konflik
Tidak Sama
Tidak Tidak
Sama Konflik
Tidak Sama
Tidak Tidak
Tidak Konflik
Tidak Tidak
Sama Sama
Sama Konflik
Tidak Tidak
Sama Sama
Tidak Konflik
Tidak Tidak
Sama Tidak
Sama Konflik
Tidak Tidak
Sama Tidak
Tidak Konflik
Tidak Tidak
Tidak Sama
Sama Konflik
Tidak Tidak
Tidak Sama
Tidak Tidak konflik
Tidak Tidak
Tidak Tidak
Sama konflik
Tidak Tidak
Tidak Tidak
Tidak Tidak konflik
Dari tabel kombinasi diatas dapat dilihat adanya kombinasi yang menyebabkan konflik maupun tidak konflik.
Dari tabel diatas juga terdapat kombinasi yang tidak pasti atau belum tentu terjadi didalam penjadwalan, sehingga dengan melihat table diatas dapat
disusun tabel kombinasi jadwal konflik sebagai berikut:
Tabel 3.2 Tabel Kombinasi Jadwal Konflik
Matakuliah Dosen
Ruangan Paralel
Semester Sama
Sama Sama
Sama Sama
Sama Sama
Sama Tidak
Sama Sama
Sama Tidak
Sama Sama
Sama Sama
Tidak Tidak
Sama Sama
Tidak Sama
Sama Sama
Sama Tidak
Sama Tidak
Sama Sama
Tidak Tidak
Sama Sama
Tidak Sama
Sama Sama
Sama Tidak
Sama Sama
Sama Tidak
Tidak Sama
Sama Tidak
Sama Tidak
Sama Sama
Tidak Tidak
Tidak Sama
Tidak Sama
Sama Tidak
Sama Tidak
Sama Tidak
Tidak Sama
Tidak Tidak
Sama Tidak
Sama Tidak
Tidak Tidak
Tidak Tidak
Sama Sama
Sama Tidak
Tidak Sama
Sama Tidak
Tidak Tidak
Sama Tidak
Sama Tidak
Tidak Sama
Tidak Tidak
Tidak Tidak
Tidak Sama
Sama Tidak
Tidak Tidak
Sidak Sama
Dari tabel aturan konflik diatas dapat dijelaskan bahwa untuk mengetahui terjadinya konflik yaitu dengan membandingkan 2 tabel yang berada
dalam satu waktu jam, sebagai contoh untuk aturan 1. jika matakuliah_1 sama dengan matakuliah_2 dan dosen_1 sama dengan dosen_2 dan ruangan_1 sama
dengan ruangan_2 serta paralel_1 sama dengan paralel_2 maka terjadi konflik. Konflik yang terjadi dicari dari tiap jam yang tersedia, Total nilai konflik
dihitung dari penjumlahan seluruh konflik yang terjadi dalam satu jadwal. Misalkan pada hari senin jam 1 terjadi 1 konflik, hari senin jam 5 terjadi 2
konflik, hari selasa jam 1 terjadi 1 konflik, hari kamis jam 3 terjadi 1 konflik dan hari jum’at jam terjadi konflik sebanyak 1. Maka total nilai konflik diperoleh
dengan menjumlahkan semua konflik-konflik yang terjadi dalam satu jadwal tersebut, yaitu 1+1+2+1+1+1 = 6 konflik.
3.2.7 Workflow
Gambar 3.2 Workflow penjadwalan kuliah
Pada gambar diatas menerangkan bagaimana alur kerja dalam penyusunan jadwal kuliah. Sekjur memasukan data dosen, matakuliah dan
ruangan kedalam sistem. Kemudian sekjur menentukan periode semester yang diadakan serta matakuliah yang diadakan pada periode tersebut kedalam sistem.
kemudian menyusun jadwal kuliah dan disimpan ke dalam database system sebagai jadwal awal. Sistem melakukan optimasi jadwal sehingga menghasilkan
jadwal yang telah teroptimasi. Sekjur mencetak laporan jadwal kuliah yang
diambil dari database sistem dan memberikan jadwal kuliah kepada mahasiswa
dan dosen yang bersangkutan.
3.2.8 Diagram Berjenjang
1 Memasukkan
Data Dosen dan Matakuliah
2 Memasukkan
Data Ruangan dan Kapasitas
Kelas 3
Menyeleksi dan Menentukan
Matakuliah yang diadakan
+
4 Menyusun
Jadwal Awal
+
5 Optimasi Jadwal
Dengan Metode Tabu Search
+
Gambar 3.3 Diagram berjenjang
Gambar diatas menerangkan bahwa aplikasi penjadwalan kuliah terdapat banyak proses antara lain: mengolah data dosen, mata kuliah, ruangan , periode,
menentukan solusi awal jadwal kuliah, optimasi jadwal mengunakan metode tabu search. Dan ada sub proses dari proses menentukan solusi jadwal dan optimasi
jadwal kuliah antara lain proses jadwal kuliah, optimasi jadwal kuliah, solusi jadwal kuliah, pilih solusi jadwal terbaik dan membuat laporan.
Penjadwalan Kuliah Dengan Menggunakan
Metode Tabu Search
+
3.2.9 Context Diagram
Gambar 3.4 Context Diagram
pada gambar context diagram diatas ada 2 entitas yang berhubungan dengan aplikasi penjadwalan kuliah yaitu kajurSekjur dan dosenmahasiswa.
Entitas pertama, kajurSekjur berinteraksi dengan sistem untuk memasukkan data dosen, matakuliah, periode dan matakuliah yg diadakan, serta ruangan yang
diperlukan untuk kegiatan belajar mengajar, kemudian oleh sistem data-data tersebut akan diolah mengunakan metode tabu search, selanjutnya sistem akan
mengirimkan laporan jadwal
kuliah ke kajurSekjur. Entitas kedua, dosenmahasiswa akan memperoleh jadwal perkuliahan untuk mahasiswa dan
memperoleh jadwal mengajar untuk dosen.
3.2.10 DFD level 0
DFD level 0 akan mengambarkan tiap-tiap proses yang terjadi di dalam aplikasi penjadwalan kuliah dengan menggunakan metode tabu search.
Gambar 3.5 DFD Level 0 aplkasi penjadwalan kuliah
Pada gambar diatas Gambar 3.5 dapat dilihat bahwa dalam membangun aplikasi penjadwalan kuliah ini terdapat 6 proses utama.
Proses pertama, memasukkan data dosen dan matakuliah ke dalam aplikasi yang meliputi Nip, nama, dan menentukan kompetensi dosen tersebut berdasarkan
matakuliah yang diadakan, kemudian data dosen tersebut akan disimpan dalam database dosen. Dan memasukkan data matakuliah ke aplikasi meliputi kode
matakuliah, mata kuliah, semester serta jumlah SKS. Proses kedua, memasukkan data ruangan yang akan digunakan untuk
melaksanakan kegiatan belajar mengajar serta memasukkan kapasitas ruangan bedasarkan jumlah mahasiswa.
Proses ketiga, dari database matakuliah akan dipilih matakuliah yang akan diadakan berdasarkan periode sekarang genapganjil. Serta menentukan jumlah
kelas dengan berdasarkan jumlah mahasiswa atau jumlah mahasiswa yang mengambil matakuliah tersebut.
Proses keempat, proses untuk menentukan sebuah solusi awal jadwal perkuliahanjadwal sementara, yang penyusunannya diperoleh dari data – data
yang tersimpan di dalam database antara lain dosen, periode matakuliah yang diselenggarakan dan ruangan
Proses kelima, proses untuk mengoptimasikan jadwal dengan mengunakan metode tabu search. Di dalam proses ini proses optimasi akan mengambil data –
data yang ada dalam database solusi awal jadwal kuliah, yang kemudian akan menghasilkan jadwal yang telah teroptimasi. Hasil optimasi akan disimpan dalam
database aplikasi. Dan kemudian dapat digunakan oleh kajursekjur untuk penyusunan laporan.
3.2.11 DFD level 1
1. Sub Proses Menyeleksi dan Menentukan Matakuliah yang Diadakan
Pada gambar 3.6 menjelaskan bahwa DFD level 1 merupakan subsistem dari level 0. DFD ini merupakan subsistem dari proses menyeleksi dan
menentukan matakuliah yang diadakan. Pada DFD level 1 ini terdapat 2 proses yaitu menyeleksi matakuliah yang diadakan pada semester genap atau ganjil
dimana proses ini mengambil data-data dari database mata kuliah dan
menghasilkan data matakuliah yang diadakan.
Gambar 3.6 DFD Level 1 sub proses menyeleksi dan menentukan matakuliah
yang diadakan Setelah itu akan dilakukan proses untuk menentukan jumlah kelas dari
penyelenggaraan matakuliah yang didapat dengan menentukan jumlah mahasiswa atau dengan menghitung jumlah mahasiswa yang mengambil matakuliah tersebut
sehingga didapat jumlah kelas penyelenggaraan matakuliah yang diadakan.Hasil dari proses ini berupa data hasil seleksi yang disimpan dalam database periode
matakuliah.
2. Sub Proses Menyusun Jadwal Awal
Gambar 3.7 DFD Level 1 sub proses menyusun jadwal awal
Pada gambar 3.7 diatas terdapat 2 proses dari subproses menyusun jadwal awal. Pada sub proses ini terdapat satu proses utama yaitu membuat jadwal
awal dengan cara mengalokasikan matakuliah dengan dosen, ruang dan jadwal harijam. Sebelum proses yang utama terdapat proses untuk menentukan dosen
yang berkompeten dari matakuliah tersebut baru kemudian dilakukan proses utama. Hasil dari proses ini kemudian disimpan pada database jadwal awal.
3. Sub Proses Optimasi Jadwal dengan Metode Tabu Search
Gambar 3.8 DFD Level 1 sub proses optimasi jadwal dengan metode Tabu
Search Pada gambar 3.8 diatas terdapat 3 proses dari subproses optimasi jadwal
mengunakan metode tabu search. Proses pertama proses optimasi jadwal kuliah mengambil data dari database solusi awal jadwal ujian untuk diproses
mengunakan metode tabu search. Hasil dari proses optimasi tersebut akan dipilh solusi yang terbaik, tidak ada nilai konflik atau nilai sama yang minimum terkecil
sesuai dengan batasan maksimal iterasi. Jadwal yang telah teroptimasi diberikan kepada dosenmahasiswa, sebagai jadwal yang digunakan untuk kegiatan
perkuliahan. kemudian akan dilakukan proses pembuatan laporan untuk kajursekjur.
3.3 Perancangan Database
Pada perancangan kali ini akan dibahas mengenai perancangan data dan perancangan table yang akan digunakan pada system ini. Dalam perancangan data
ini, menjelaskan tentang 2 model data yaitu: model data konseptual dan model data fisik. Untuk lebih jelasnya dapat dijelaskan di bawah ini.
3.3.1 Perancangan Data
a. Model Data Konseptual Conseptual Data Model
Model data konseptual adalah rancangan dalam bentuk diagram sebelum pembuatan database secara detail. Model data konseptual ini dibuat tanpa harus
mempertimbangkan data DBMS apa yang nanti dipakai, karena bentuk ini hanya sebuah konsep rancangan yang nantinya bisa digunakan oleh semua DBMS.
Model data konseptual pada aplikasi system ini mempresentasikan rancangan basis data konseptual yang nantinya akan digunakan oleh system ini. Pada konsep
rancangan ini dibuat dengan menggunakan Power Designer 15. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini :
Gambar 3.9 CDM Conceptual Data Model
Pada gambar CDM diatas terdapat 9 tabel untuk menyimpan database pada aplikasi penjadwalan kuliah dengan mengunakan metode tabu search.
Penjelasan tentang fungsi dan field-field yang berada pada table tersebut diatas
akan dibahas pada sub bab berikutnya.
b. Model Data Phisik Physical Data Model