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.
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 TabuSearch
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
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]
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
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
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.
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
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
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
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
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
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
taburule 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
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
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.
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
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