aplikasi penjadwalan mata pelajaran dengan algoritma tabu … · 2013. 6. 19. · 4 . 2. kajian...
Post on 02-Mar-2021
7 Views
Preview:
TRANSCRIPT
3
1. Pendahuluan
Selama ini penjadwalan pelajaran hampir di semua sekolah yang meliputi
jadwal mata pelajaran dan pembagian guru di setiap kelas yang ada masih
menggunakan cara manual yaitu pihak Tata Usaha (TU) menuliskan guru, mata
pelajaran, kelas dan waktu kemudian mengatur jadwalnya. Ini tidak mudah dan
diperlukan pengaturan yang cukup rumit. Alokasi dan penentuan guru merupakan
salah satu elemen penting di dalam menyusun jadwal pelajaran di sebuah sekolah.
Selain itu juga merupakan permasalahan umum yang selalu menjadi beban bagi
pihak kurikulum di sekolah tersebut. Dengan keterbatasan jumlah guru yang ada,
pihak kurikulum dituntut agar tetap bisa memenuhi kebutuhan pelayanan kepada
siswa khususnya kelas-kelas yang ada. Masalah yang sering muncul adalah pada
jam yang bersamaan seorang guru bisa berada di dua kelas yang berbeda. Hal ini
sangat mengganggu keefektifan waktu belajar siswa dan keefektifan guru
mengajar.
Permasalahan tersebut merupakan masalah yang kompleks karena
berhubungan dengan jumlah guru dan jumlah kelas yang ada. Sebenarnya
permasalahan yang dihadapi hampir di semua sekolah, adalah belum adanya suatu
sistem komputasi yang dibuat agar dapat dipergunakan untuk menyusun jadwal
pelajaran. Hal ini yang juga dialami SKB Salatiga sebagai tempat studi kasus
dalam artikel ilmiah ini. Pemilihan tempat studi kasus di SKB Salatiga
dikarenakan sekolah tersebut masih menggunakan cara penyusunan jadwal secara
manual oleh pihak TU. Hasil yang diharapkan pihak sekolah adalah berupa jadwal
pelajaran beserta guru di masing-masing kelas. Kiranya dengan memanfaatkan
algoritma tabu search dapat menjadi solusi masalah tersebut.
Tujuan artikel ilmiah ini adalah menghasilkan suatu sistem komputasi yang
dapat menggantikan cara penyusunan jadwal secara manual sehingga dapat
menghasilkan penjadwalan yang baik tanpa terjadi bentrok dan dengan waktu
yang lebih singkat. Proses penyusunan jadwal mata pelajaran tersebut dengan
mengembangkan proses komputasi dengan menggunakan Algoritma Tabu Search.
Dengan demikian secara keseluruhan manfaat sistem ini adalah
mempermudah dan mempercepat pihak sekolah di dalam proses penyusunan
jadwal mata pelajaran, hal ini akan mendukung kelancaran sistem kegiatan belajar
mengajar sekolah.
Dalam artikel ilmiah ini memiliki batasan masalah sebagai berikut.
Permasalahan difokuskan pada pembuatan perangkat lunak yang meliputi metode
dan program untuk menyusun jadwal pelajaran. Selanjutnya proses penjadwalan
mata pelajaran akan mengikuti kurikulum dan aturan yang berlaku di sekolah
tersebut. Untuk pembagian guru tiap kelas, mata pelajaran yang diterima tiap
kelas, jumlah jam mata pelajaran tiap minggu akan sesuai dengan kurikulum dan
aturan yang berlaku di sekolah. Khusus untuk mata pelajaran olahraga akan
menempati jam pertama sampai dengan jam keempat tiap harinya dan pelajaran
agama pada setiap hari jumat di jam terakhir meski pada hari biasa juga ada dalam
sistem penjadwalan. Sedangkan mata pelajaran yang lainnya bebas, dapat
menempati jam kapanpun tiap harinya.
4
2. Kajian Pustaka
Sebelumnya telah ada penelitian Penjadwalan Job Shop Static dengan
algoritma Tabu Search dimana dalam perancangan sistem. Penelitian ini
bertujuan untuk menerapkan algoritma TS dalam menyelesaikan masalah job
shop, serta membandingkan kualitas jadwal yang dihasilkan (dalam satuan
makespan) terhadap hasil dari algoritma simulated annealing dan perangkat lunak
penjadwalan Quant System, yang menerapkan metode heuristik priority
dispatching. Untuk mencapai tujuan tersebut, dibangun sebuah model perangkat
lunak (program) penjadwalan job shop dengan algoritma Tabu Search dan
dilakukan percobaan dengan berbagai ukuran masalah job shop.[1]
Penelitian yang lain terdapat dalam jurnal tentang penggunaan Tabu Search
dalam penjadwalan kuliah dan ujian di perguruan tinggi membahas tentang
perancangan program aplikasi yaitu sebuah software penggunaan Tabu Search
dalam penjadwalan kuliah dan ujian di perguruan tinggi, sehingga dapat
memecahkan masalah penjadwalan kuliah. Informasi yang diberikan sistem
adalah informasi penjadwalan kuliah dan ujian dengan input terdiri dari dosen,
matakuliah, ruang, dan waktu, yang bertujuan untuk mengimplementasikan suatu
program pengolahan informasi data penjadwalan kuliah dan ujian di Sekolah
Tinggi Manajemen Bandung dengan menggunakan Tabu Search. Pada
penjadwalan sebelumnya hanya menggunakan Microsoft Excel untuk menyusun
sebuah jadwal ujian dan kuliah. [2]
Penjadwalan
Merupakan proses untuk menyusun suatu jadwal atau urutan proses yang
diperlukan dalam sebuah persoalan. Penjadwalan, yaitu yang pertama adalah
meningkatkan utilisasi penggunaan sumber daya, atau dengan kata lain
mengurangi waktu tunggu dari sumber daya tersebut, sehingga total waktu proses
dapat berkurang dan produktivitasnya dapat meningkat. Kedua, mengurangi work-
in-process atau barang setengah jadi, yaitu mengurangi rata-rata jumlah pekerjaan
yang menunggu dalam antrian proses ketika sumber daya yang ada masih
mengerjakan tugas lain, dan yang ketiga, mengurangi keterlambatan, yaitu
menjamin pemenuhan due date. Setiap pekerjaan mempunyai due date masing-
masing dan terdapat penalti apabila pekerjaan tersebut selesai setelah due date
seharusnya, sehingga akan meminimasi biaya keterlambatan.[3]
Algoritma Tabu Search
Tabu Search pertama kali diperkenalkan oleh Glover sekitar tahun 1986.
Tabu search adalah sebuah metode optimasi yang berbasis pada local search
atau proses pencarian yang bergerak dari satu solusi ke solusi berikutnya,
dengan cara memilih solusi terbaik dari neighborhood solusi sekarang (current)
yang tidak tergolong solusi terlarang (tabu). Ide dasar dari algoritma tabu search
adalah mencegah proses pencarian dari local search agar tidak melakukan
pencarian ulang pada ruang solusi yang sudah pernah ditelusuri, dengan
5
memanfaatkan suatu struktur memori yang mencatat sebagian jejak proses
pencarian yang telah dilakukan. Struktur memori fundamental dalam tabu search
dinamakan tabu list.
Tabu list menyimpan atribut dari sebagian move (transisi solusi) yang telah
diterapkan pada iterasi-iterasi sebelumnya. Tabu search menggunakan tabu-list
untuk menolak solusi-solusi yang memenuhi atribut tertentu guna mencegah
proses pencarian mengalami cycling pada daerah solusi yang sama, dan
menuntun proses pencarian menelusuri daerah solusi yang belum dikunjungi.
Tanpa menggunakan strategi ini, local search yang sudah menemukan solusi
optimum lokal dapat terjebak pada daerah solusi optimum lokal tersebut pada
iterasi-iterasi berikutnya.Perekaman solusi secara lengkap dalam sebuah
forbidden list dan pengecekan apakah sebuah kandidat solusi tercatat dalam list
tersebut merupakan cara yang mahal, baik dari sisi kebutuhan memori maupun
kebutuhan waktu komputasi. Jadi tabu list hanya menyimpan langkah transisi
(move) yang merupakan lawan atau kebalikan dari langkah yang telah digunakan
dalam iterasi sebelumnya untuk bergerak dari satu solusi ke solusi berikutnya.
Dengan kata lain tabu list berisi langkah-langkah yang membalikkan solusi
yang baru ke solusi yang lama. Pada tiap iterasi, dipilih solusi baru yang
merupakan solusi terbaik dalam neighborhood dan tidak tergolong sebagai tabu.
Kualitas solusi baru ini tidak harus lebih baik dari kualitas solusi sekarang.
Apabila solusi baru ini memiliki nilai fungsi objektif lebih baik dibandingkan
solusi terbaik yang telah dicapai sebelumnya, maka solusi baru ini dicatat sebagai
solusi terbaik yang baru. Sebagai tambahan dari tabu-list, dikenal adanya kriteria
aspirasi, yaitu suatu penanganan khusus terhadap move yang dinilai dapat
menghasilkan solusi yang baik namun move tersebut berstatus tabu Dalam hal
ini, jika move tersebut memenuhi kriteria aspirasi yang telah ditetapkan
sebelumnya, maka move tersebut dapat digunakan untuk membentuk solusi
berikutnya (status tabunya dibatalkan).[4]
Skema mengenai alur Tabu Search dapat dilihat pada Gambar 1. Dalam
gambar tersebut dijelaskan mengenai alur yang berjalan pada algoritma Tabu
Search.
6
Gambar 1 Skema Algoritma Tabu Search
3. Metode Perancangan Sistem
Metode analisa dan perancangan sistem menggunakan model proses
prototyping model. Gambar 2 menjelaskan tahapan proses sebuah metode
prototyping.
7
Gambar 2 Model Prototyping [5]
Pada Gambar 2 menerangkan bahwa dalam metode prototyping diawali
dengan komunikasi. Pengembang dan pengguna bertemu dan mendefinisikan
sasaran-sasaran menyeluruh dari perangkat lunak yang akan dibangun,
mengidentifikasi kebutuhan apa saja yang diinginkan. Iterasi prototyping
direncanakan secara cepat, demikian juga pemodelan dalam bentuk rancangan
segera dibuat. Perancangan yang cepat berfokus pada penggambaran aspek-
aspek perangkat lunak yang akan dilihat oleh pengguna, seperti tampilan
antarmuka pengguna dengan sistem, atau format tampilan output. Rancangan
yang cepat ini akan membawa kearah pembuatan program (konstruksi) dari
prototipe.
4. Perancangan Sistem
Dalam perancangan dan penggambaran proses analisis penjadwalan mata
pelajaran dilakukan dengan menggunakan diagram konteks dan data flow
diagram (DFD). Diagram konteks untuk sistem yang dibuat dapat dilihat pada
Gambar 3.
Gambar 3 Diagram Konteks Sistem
Diagram konteks sistem dalam Gambar 3 dapat dijelaskan sebagai berikut.
Admin atau staff TU memasukkan data pelajaran, data kelas, tabu rule dan data
tutor yang akan digunakan dalam proses penjadwalan ke dalam sistem. Maka
sistem akan memberikan output berupa jadwal pelajaran. DFD Level satu untuk
sistem yang dibuat dapat dilihat pada Gambar 4.
8
Gambar 4 DFD Level 1 Sistem
DFD level satu dari sistem dapat dijelaskan sebagai berikut :
1. Bagian staff TU menginputkan data tutor untuk dimasukkan ke dalam
database tutor.
2. Mengatur rule untuk pelajaran dan tutor.
3. Tabu Search memproses data dalam pendataan dan akan keluar berupa
hasil jadwal.
4. Jadwal pelajaran yang sudah jadi akan ditampilkan kepada TU.
Dalam proses ini terdapat optimasi dari data-data pada database yang
kemudian diperoleh jadwal baru yang sudah teroptimasi. Algoritma Tabu Search
bekerja dengan menggunakan sebuah aturan yaitu adanya rule dalam setiap
prosesnya. Rule atau aturan dalam algoritma Tabu Search akan membagi setiap
mata pelajaran ataupun tutor yang dianggap tabu untuk ditempatkan pada jam
tertentu atau mengajar di jam yang berbeda setiap harinya sehingga tanpa
mengalami bentrok antar mata pelajaran. Algoritma ini juga memungkinkan setiap
mata pelajaran yang seharusnya berada pada waktu tertentu dapat ditempatkan
pada waktu tersebut. Sebagai contoh pada mata pelajaran olahraga, upacara atau
senam dapat ditempatkan pada pagi hari.
DFD Level dua untuk proses pendataan pada sistem ini dapat dilihat pada
Gambar 5.
9
Gambar 5 DFD Level 2 Proses Pendataan
Keterangan DFD level dua proses pendataan adalah sebagai berikut. Pada
proses pendataan ini TU melakukan input data ke dalam sistem. Proses pendataan
meliputi pendataan kurikulum, tutor, pelajaran dan kelas. Data ini kemudian akan
tersimpan di dalam database nya masing-masing. Untuk database akan
menggunakan Microsoft Access.
Gambar 6 merupakan ERD dari proses penjadwalan dengan algoritma tabu
search, yaitu hubungan antar tabel dalam penjadwalan ini. Penjelasan dari ERD
adalah sebagai berikut. Entity tutor mempunyai atribut nama tutor dan kode tutor,
pelajaran mempunyai atribut nama pelajaran dan kode pelajaran, kelas
mempunyai atribut kode kelas, kode kurikulum dan kode wali kelas, sedangkan
rule mempunyai beberapa atribut, antara lain jenis, nilai 1, nilai 2, nilai 3, kode
rule, kode pemilik dan jenis. Tutor, kelas dan pelajaran mempunyai aturan
tertentu atau rule. Rule digunakan untuk memberikan aturan terhadap tutor, kelas
dan pelajaran. Aturan untuk seorang tutor misalnya, tutor hanya boleh mengajar
mata pelajaran tertentu dan diatur tidak bisa mata pelajaran lain diluar rule nya.
10
Gambar 6 Entity Relationship Diagram
Pengolahan Data
Pihak TU memasukkan data meliputi data Mata Pelajaran, data Tutor, data
Kurikulum dan juga data Kelas. Data yang dimasukkan kemudian tersimpan
dalam database yang sewaktu-waktu dapat diambil kembali untuk penggunaan
ataupun penghapusan data. Selanjutnya dilakukan pengalokasian antara mata
pelajaran dengan tutor yang akan mengajar beserta kelas dimana tutor tersebut
mengajar dan mengalokasikan data tersebut ke hari dan waktu jadwal sebagai
inisialisasi. Jadwal awal yang telah dibuat dijadikan sebagai solusi awal (solusi
tetangga) yang akan digunakan untuk proses berikutnya. Proses selanjutnya
adalah mencari nilai konflik awal, nilai konflik dari setiap iterasi (1 jadwal) yang
dihasilkan dengan cara mencari konflik tiap waktu (jam) dari hari senin sampai
dengan hari sabtu dan menjumlahkan semua konflik yang diperoleh. Nilai konflik
yang dihasilkan (Fnew) pada iterasi ke = 0 ini dijadikan sebagai Fbest atau nilai
terbaik sementara. Sehingga didapat solusi awal yang dihasilkan disimpan ke
dalam Tabu List untuk dilakukan proses iterasi berikutnya. Langkah pengolahan
data untuk menyusun jadwal dengan algoritma tabu search dapat dilihat pada
flowchart Gambar 7.
11
12
Gambar 7 Flowchart Pengolahan Data
Keterangan selanjutnya adalah mengalokasikan kembali jadwal awal yang
telah ada secara acak atau random ke dalam hari dan waktu yang tersedia
sehingga menghasilkan jadwal baru atau solusi baru, selanjutnya dilakukan
pengecekan pada Tabu List sudah ada atau tidak. Jadwal baru atau solusi baru
yang telah dihasilkan dilakukan pencocokan dengan jadwal-jadwal yang sudah
ada pada Tabu List atau dari penempatan data, apabila sudah ada maka dilakukan
pengalokasian kembali secara acak. Apabila belum ada maka dicari konfliknya
(Fnew). Perbandingan dilakukan apakah nilai Fnew atau nilai konflik dari jadwal
baru yang dihasilkan mempunyai nilai lebih kecil daripada nilai Fbest atau nilai
konflik terbaik dari jadwal-jadwal sebelumnya atau iterasi sebelumnya. Apabila
mempunyai nilai lebih kecil dari nilai Fbest maka Fnew tersebut ditukar dengan
Fbest dan menjadi nilai Fbest sekarang. Namun apabila tidak lebih kecil atau
sama, maka Fbest tetap nilai sebelumnya. Untuk selanjutnya jadwal baru yang
diperoleh dimasukkan ke dalam Tabu List. Langkah terakhir dengan melakukan
pengecekan apakah iterasi sudah mencapai max iterasi atau Fbest sudah
13
menemukan nilai konflik = 0. Apabila belum memenuhi maka proses dilanjutkan
sampai memenuhi salah satu syarat tersebut.
5. Hasil dan Pembahasan
Pada Gambar 8 merupakan tampilan untuk home dari sistem penjadwalan
dengan algoritma tabu search.
Gambar 8 Tampilan Halaman Home
Admin dapat memulai proses pembuatan jadwal pada menu penjadwalan di
form Home. Tampilan halaman penjadwalan dapat dilihat seperti pada Gambar 9.
Gambar 9 Tampilan Halaman Nilai Siswa
Tampilan form penjadwalan berisi mata pelajaran yang dapat dihapus atau
ditambah sesuai dengan kurikulum yang berlaku.tampilan form ini juga sama
dengan form kurikulum, kelas dan tutor. Gambar tambah pelajaran dapat dilihat
pada Gambar 10.
14
Gambar 10 Tambah Pelajaran
Pada Form edit rule terdapat fasilitas untuk mengubah aturan atau rule dalam
mata pelajaran tertentu. User dapat memilih salah satu mata pelajaran tertentu
untuk mengatur penempatan dalam jadwal. Untuk lebih jelasnya dapat dilihat
pada Gambar 11.
Gambar 11 Tampilan Edit Rule
Pada Gambar 12 merupakan Form jadwal mata pelajaran yang telah diproses.
Pada form jadwal ini terdapat fasilitas reset, proses, cetak dan simpan. Reset
untuk mengembalikan jadwal sebelumnya, proses untuk memproses lagi jadwal,
cetak untuk mencetak atau print jadwal dan simpan untuk menyimpan jadwal
dalam format excel.
15
Gambar 12 Penjadwalan dengan Algoritma Tabu Search
Jadwal yang sudah jadi biasanya masih terdapat bentrok atau adanya
batasan waktu tertentu sehingga mata pelajaran tidak muncul pada jadwal
tersebut. Pada Gambar 13 merupakan tampilan jadwal dengan adanya bentrok,
sehingga akan muncul tanda “??” dalam jadwal tersebut.
Gambar 13 Adanya bentrok dalam penjadwalan
Proses Algoritma
Proses algoritma tabu search pada aplikasi penjadwalan terdapat beberapa
langkah, antara lain :
a. Menghitung jumlah jam pelajaran dan membuat rule yang mendeklarasikan
tabu rule pada tiap kelasnya. Dapat dilihat pada Kode Program 1.
Kode Program 1 Menghitung Jumlah Pelajaran dan Membuat Rule
1 Set colpelajarans = New Collection
2 n = Haris.Count
3 For i = 1 To n
4 Set objhari = Haris(i)
5 m = objhari.Waktus.Count
6 For j = 1 To m
16
7 Set objwaktu = objhari.Waktus(j)
8 = objwaktu.Kurikulums.Count
9 For k = 1 To o
10 Set objkurikulum = objwaktu.Kurikulums(k)
11 p = objkurikulum.Kelass.Count
12 For l = 1 To p
13 Set objkelas = objkurikulum.Kelass(l)
14 If i = 1 And j = 1 Then
15 Set objpelajarans = New Pelajarans
16 objpelajarans.KodeKelas = objkelas.KodeKelas
17 objpelajarans.KodeKurikulum = objkurikulum.KodeKurikulum
18 objpelajarans.Refresh
19 colpelajarans.Addobjpelajarans, objkelas.KodeKelas
20 End If
21 If objkelas.Jenis = "PELAJARAN" Then
22 Set objpelajarans = colpelajarans(objkelas.KodeKelas)
23 a = objpelajarans.FindItem(objkelas.kodepelajaran)
24 If a > 0 Then
25 Set objpelajaran = objpelajarans.Item(a)
26 objpelajaran.JumlahJamMaksimal = objpelajaran.JumlahJamMaksimal + 1
27 objpelajaran.JumlahJamTerpakai = 0
28 Else
29 MsgBox "Pelajarantidakada", vbCritical
30 End If
31 End If
32 Next l
33 Next k
34 Next j
35 Next i
Pada kode program yang pertama sampai dengan 19 merupakan deklarasi
awal yang mengatur hari, waktu, kelas dan kurikulum. Selanjutnya pada kode
program nomor 26 dan 27, fungsi ini yang menghitung keseluruhan deklarasi awal
yang dibuat. Pesan adanya error dalam penghitungan atau tidak ditemukannya
pelajaran dapat dilihat pada kode program nomor 29.
b. Proses kedua akan mencari jadwal pada tiap-tiap jam. Pada proses ini akan
ditempatkan mata pelajaran dalam tiap jamnya. Perintah untuk mencari
jadwal tiap-tiap jam dapat dilihat pada Kode Program 2.
Kode Program 2 Mencari Jadwal Tiap-tiap Jam 1 n = Haris.Count
2 For i = 1 To n
3 Set objhari = Haris(i)
4 m = objhari.Waktus.Count
5 For j = 1 To m
6 Set objwaktu = objhari.Waktus(j)
7 o = objwaktu.Kurikulums.Count
8 For k = 1 To o
9 Set objkurikulum = objwaktu.Kurikulums(k)
10 p = objkurikulum.Kelass.Count
11 For l = 1 To p
12 Set objkelas = objkurikulum.Kelass(l)
13 If objkelas.Jenis = "PELAJARAN" Then
14 Set objpelajarans = colpelajarans(objkelas.KodeKelas)
17
Pada kode program pertama dideklarasikan suatu variabel dengan nama n
sebagai penghitungan hari dalam setaip minggunya. Untuk deklarasi selanjutnya
adalah variabel m sebagai penempatan hari dan juga waktu yang kemudian akan
masuk dalam kurikulum.
c. Mencari pelajaran yang tidak ada dalam tabu rule. Pada proses ini dilakukan
pencarian jadwal yang dideklarasikan sebagai pelajaran yang tidak ada dalam
tabu rule atau yang tidak memiliki rule tertentu. Proses pencarian jadwal bisa
dilihat pada Kode Program 3.
Kode Program 3 Mencari Jadwal yang Tidak Ada Dalam Tabu rule 1 JumlahJam = 1
2 Set colpelajaran = objpelajarans.CariPelajaran(objhari.NamaHari,
objwaktu.jammulai, objwaktu.jamselesai, JumlahJam)
3 b = colpelajaran.Count
4 If b > 0 Then
5 a = 0
d. Mencoba pelajaran yang sama jika sehari belum lebih dari 2 jam pelajaran.
Proses ini bisa dilihat pada Kode Program 4.
Kode Program 4 Mencoba Pelajaran yang Sama 1 If j > 1 Then
2 For c = j - 1 To 1 Step -1
3 Set objkodekelaslast = objhari.Waktus(c).Kurikulums(k).Kelass(l)
4 If objkodekelaslast.Jenis = "PELAJARAN" Then
5 d = objpelajarans.CariPelajaranIndex(colpelajaran,
objkodekelaslast.KodePelajaran)
6 If d > 0 Then
7 Set objpelajaran = colpelajaran(d)
8 e = objpelajaran.CariJumlahJam(objhari.NamaHari)
9 If e < 2 Then
10 a = d
11 End If
12 End If
13 Exit For
14 End If
15 Next c
16 End If
Pada kode program satu dan dua merupakan deklarasi awal dan akan
dimasukkan dalam kode program tiga. Kemudian pada kode program delapan
deklarasi jam pelajaran dan kode program sembilan menjelaskan jika pelajaran
masih kurang dari dua jam sehari maka akan kembali diproses hingga pelajaran
tidak lebih dari dua jam dalam sehari.
e. Mencari pelajaran secara acak dengan mencoba 100x. Pencarian pelajaran ini
dilakukan jika jadwal sudah jadi dan terdapat adanya bentrok, maka pihak
penyusun jadwal bisa memproses ulang jadwal kembali. Proses ini bisa
dilihat pada Kode Program 5.
18
Kode Program 5 Mencari Pelajaran Secara Acak 1 Dim jumlahcoba As Long
2 valid = True
3 jumlahcoba = 0
4 If a <= 0 Then
5 again:
6 a = 1 + (Rnd * (b - 1))
7 Set objpelajaran = colpelajaran(a)
8 e = objpelajaran.CariJumlahJam(objhari.NamaHari)
9 If e >= 2 Then
10 jumlahcoba = jumlahcoba + 1
11 If jumlahcoba < 100 Then
12 GoTo again
13 Else
14 valid = False
15 End If
16 End If
17 End If
18 If valid Then
19 Set objpelajaran = colpelajaran(a)
20 objkelas.View1 = objpelajaran.KodePelajaran
21 objkelas.View2 = objpelajaran.NamaPelajaran
22 objkelas.KodePelajaran = objpelajaran.KodePelajaran
23 objkelas.NamaPelajaran = objpelajaran.NamaPelajaran
24 objpelajaran.JumlahJamTerpakai = objpelajaran.JumlahJamTerpakai +
JumlahJam
Pada kode program nomor enam merupakan kode untuk random mata
pelajaran, dilanjutkan kode program delapan sampai sepuluh untuk mencoba
hari dan jumlah jam. Kode program 11 merupakan perintah untuk mencoba
memproses jadwal hingga 100 kali.
6. Pengujian Sistem
Pengujian atau evaluasi sistem dilakukan dengan menggunakan metode
Blackbox Testing dan pengujian beta. Untuk Blackbox testing pada sistem ini
adalah pengujian yang dilakukan pada sisi admin sebagai pengguna aplikasi
penjadwalan mata pelajaran. Dari hasil pengujian tersebut tidak ditemukan
kesalahan sistem di dalam memproses data inputan yang kemudian menghasilkan
output yang benar berdasarkan perancangan sistem. Berarti sistem tidak
mengalami kesalahan. Pengujian selanjutnya adalah pengujian beta. Pengujian ini
merupakan pengujiaan terhadap penggunaan sistem secara langsung oleh
pengguna sistem. Pengujian ini dilakukan dengan cara mengujikan langsung
terhadap pihak sekolah, yaitu kepada bagian kurikulum dan tutor. Pada pengujian
ini menunjukkan bahwa aplikasi sistem penjadwalan mata pelajaran dapat
berfungsi sesuai dengan yang diinginkan pihak sekolah. Kinerja aplikasi dari
mulai proses input data tutor, data mata pelajaran, data kelas, rule mengajar guru,
proses algoritma tabu search sampai menghasilkan jadwal dapat berjalan lancar
dan tidak ditemukan kesalahan. Proses filter waktu mengajar tiap tutor pun juga
menunjukkan hasil yang bagus. Sehingga tiap tutor dapat dengan mudah
mengetahui waktu mengajarnya. Proses algoritma tabu search dalam
menghasilkan sebuah jadwal tanpa terjadi tabrakan dalam aplikasi ini rata-rata
19
memerlukan waktu 30 sampai dengan 40 detik. Sehingga dapat dikatakan cukup
cepat mengingat banyaknya data yang diproses. Berbeda dengan pembuatan
jadwal sebelumnya yang membutuhkan waktu sekitar 20 sampai 30 menit.
Dengan penggunaan antarmuka sistem yang baik dan mudah dipahami, para
pengguna baik dari kurikulum ataupun dari tutor tidak menemukan kendala yang
berarti pada saat menggunakan aplikasi penjadwalan ini.
7. Simpulan
Berdasarkan hasil penelitian dan pembahasan, maka dapat diambil kesimpulan
bahwa, algoritma tabu search dapat memberikan solusi yang lebih baik daripada
solusi penjadwalan terdahulu, hampir sama dengan algoritma simulated
annealing. Untuk menjaga agar solusi terbaik tidak hilang, tabu search
menyimpan solusi terbaik dan terus mencari berdasarkan solusi terakhir. Hal ini
membuat tabu search lebih efisien dalam hal usaha dan waktu. Algoritma Tabu
Search dapat digunakan untuk mengoptimalkan penyusunan jadwal mata
pelajaran SKB Salatiga dibandingkan dengan cara manual sehingga dapat
mempermudah proses penjadwalan yang dilakukan daripada memakai sistem
yang lama.
8. Daftar Pustaka
[1] Panggabean, Henry P. 2005. Penjadwalan Job Shop Static dengan
Algoritma Tabu Search.
http://home.unpar.ac.id/~integral/Volume%2010/Integral%2010%20No.%
201/Penjadwalan%20Job%20Shop%20dengan%20Tabu%20Search.pdf
Diakses pada 4 September 2012.
[2] Puspitasari, Bunga. 2008. Penggunaan Tabu Search dalam Penjadwalan
Kuliah dan Ujian di Perguruan Tinggi ,
http://rac.uii.ac.id/server/document/Public/20090416100726SKRIPSI_NI
M%2000%20523%20140_Tabu%20Search_Penggunaan%20tabu%20sea
rch%20dalam%20penjadwalan%20kuliah%20dan%20ujian%20di%20per
guruan%20tinggi_studi%20kasus%20sekolah%20tinggi%20manajemen%
20Bandung_%20bunga%20puspitasari_%2000523140.pdf. Diakses pada
tanggal 24 Agustus 2011.
[3] DP, Ignatius Andi. 2007. Aplikasi Konsep Sistem Pendukung Keputusan
dalam Sistem Penjadwalan Produksi, http://digilib.its.ac.id/public/ITS-
Undergraduate-7038-2501100008-bab2.pdf. Diakses pada tanggal 14
April 2011.
[4] Suyanto. 2010. ALGORITMA OPTIMASI (Deterministik atau
Probabilitik). Yogyakarta: Graha Ilmu
[5] Migunani, 2006, Rekayasa Perangkat Lunak, Semarang: Provisi
Semarang.
top related