17
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.

Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.

Page 2: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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

Page 3: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.

Page 4: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.

Page 5: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.

Page 6: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.

Page 7: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.

Page 8: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.

Page 9: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

11

Page 10: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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

Page 11: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.

Page 12: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.

Page 13: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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

Page 14: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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)

Page 15: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.

Page 16: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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

Page 17: Aplikasi Penjadwalan Mata Pelajaran dengan Algoritma Tabu … · 2013. 6. 19. · 4 . 2. Kajian Pustaka. Sebelumnya telah ada penelitian . Penjadwalan Job Shop Static dengan algoritma

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.