Anda di halaman 1dari 9

90 Dielektrika, ISSN 2086-9487

Vol. 2, No. 2 : 90 - 97, Agustus 2011

IMPLEMENTASI ALGORITMA BACKTRACKING UNTUK MENYELESAIKAN PERMASALAHAN PEMBUATAN JADWAL SEMINAR DAN UJIAN TUGAS AKHIR
Im leme!tatio! o" #a$ktr$ki!g Algorit%m "or S$%e&uli!g o" 'i!al (ro)e$t Semi!ar a!& *+ami!atio!

Budi Irmawa i! " IBK# Widiar $a%" K&mari Yu'i A(waria$)


A#S,-A. Penjadwalan seminar dan ujian tugas akhir merupakan salah satu kegiatan yang harus ditangani oleh Program Studi Teknik Elektro secara berkala. Pembuatan jadwal ini cukup memakan waktu karena penyusunannya harus melihat kekosongan jadwal kuliah dan jadwal kegiatan dosen pembimbing dan dosen penguji. Selain itu, pembuatan jadwal ini juga harus memperhatikan ketersediaan ruangan dan LCD. ila ada penundaan atau perubahan kegiatan yang lain, maka jadwal juga harus die!aluasi dan disusun kembali sehingga tidak bertabrakan dengan kegiatan akademik yang lain. Program ini menerima masukan berupa jadwal kuliah, jadwal kegiatan dosen, jumlah LCD, dan da"tar kuliah yang menggunakan LCD. Pencarian slot dilakukan dengan membandingkan slot yang tersedia dengan da"tar kegiatan dosen berdasarkan ketersediaan LCD. #eluaran yang dihasilkan berupa beberapa kelompok jadual alternati" yang dapat dipilih untuk ditetapkan sebagai jadwal yang akan digunakan. #eluaran ini selanjutnya akan menjadi masukan bagi sistem sehingga kegiatan pada jadwal yang baru ini akan menjadi pembatas bagi penentuan jadwal selanjutnya. Program ini dilengkapi dengan antarmuka gra"is yang dikembangkan menggunakan $isual Prolog %.& sehingga belum dapat menyajikan in"ormasi dalam "ormat tabel. 'ntuk selanjutnya, sistem ini dapat dikombinasian dengan perangkat yang lain sebagai aplikasi stand alone maupun web. .ata ku!$i( pewarnaan graph, pemrograman logika, jadwal ujian. A#S,-A/, )inal project seminar and "inal e*am scheduling is an acti!ities that should be handled by Electrical Engineering Study Program periodically. This de!elopment o" the time table is time consumable since it should consider the emptiness o" the course time table cell, e*aminers and super!isor acti!ities, rooms a!ailable. +oreo!er, it should re"lect on the LCD a!ailability as well. ," there are delaying or academic acti!ity changes, this should be e!aluated and rescheduled so that it is not crash with other acti!ities. This program get inputs "rom course time table, lecturers acti!ities, the number o" all LCD, and the list o" course that uses LCD. The slots are searched by comparing a!ailable slots with lecturers- acti!ities and the a!ailability o" LCD. The outputs are se!eral time table alternati!es that could be chosen and established as "inal e*am time table. Then, the acti!ities scheduled in this time table will be threaded as inputs "or system so that these cells will become constraints "or de"ining the ne*t "inal e*ams. Since this system is de!eloped using $isual Prolog %.&, the user inter"ace can not present the time table in a table "ormat. )or the "uture, it can be combined with other tools as stand alone or web application. K*+w&rd,( graph coloring, logic programming, "inal e*am time table. PENDAHULUAN Membuat penjadwalan pada tingkat universitas bukan merupakan tugas yang ringan. Tidak ada jaminan bahwa akan diperoleh solusi yang memuaskan. Kalaupun ada, hal ini akan memakan waktu yang lama (Prestwich, !!!". #anyaknya jumlah pembatas yang mempengaruhi menimbulkan kesulitan dalam menyeesaikan masalah pen), ,(

jadwalan sehingga $hand ( !! " membangun model untuk me-nguji jadual dengan pembatas-pembatas yang telah ditentukan dan mengajukan metode heu-ristik untuk mengembangkan penyelesai-an yang diharapkan. %lgoritma &reedy dan Pe-warnaan Peta (Map $oloring" juga dapat di-terapkan pada masalah penjadwalan ('osen, !!(".

*urusan Teknik +lektro ,akultas Teknik -niversitas Mataram, .usa Tenggara #arat

9! Dielektrika, 2 021, Agustus 2011

Penjadwalan seminar dan ujian Tugas %khir dilakukan dengan mempertimbangkan dosen yang menguji, jadwal kuliah yang sedang berjalan, kegiatan dosen di luar pengajaran, dan da/tar ruangan yang dapat digunakan. 0ari jadwal kuliah berjalan dapat diketahui jadwal mengajar dosen, ruang kuliah yang digunakan, dan jumlah 1$0 yang sedang digunakan. Karena jumlah ruangan yang tersedia sangat terbatas sementara seminar dan ujian tugas akhir dilaksanakan pada jam kuliah, maka penyusunan jadwal seminar dan tugas akhir ini memakan waktu untuk meletakkan seminar dan ujian tugas akhir ini sehingga orang dosen penguji dan ( orang dosen pembimbing dapat hadir dalam kegiatan tersebut. #elum lagi, terkadang dosen memiliki kegiatan akademik lain yang tidak dapat ditinggalkan. Pembuatan jadwal kuliah saat ini dilakukan secara manual oleh petugas administrasi dengan mempertimbangkan hal-hal tersebut di atas. .amun beberapa kegiatan dosen selain mengajar terkadang tidak diketahui oleh petugas bila dosen tidak memberitahukan sebe-lumnya. *adi, proses pembuatan jadwal dilakukan dengan melihat da/tar dosen yang akan menjadi penguji. *uga dicatat beberapa waktu dimana seorang dosen memiliki kegiatan lain. 2elanjutnya dicari beberapa alternati/ waktu dimana seluruh dosen yang bertindak sebagai pembimbing dan penguji tidak memiliki jadwal mengajar dan masih ada 1$0 yang tidak digunakan untuk kuliah. Kemudian dipilih satu waktu yang dianggap paling tepat sebagai waktu seminar3ujian. #ila ada dosen yang berhalangan pada waktu yang dipilih maka harus dilakukan pemilihan alternati/ waktu yang lain. Karena dilakukan secara manual, biasanya beberapa alternati/ jadwal yang diperoleh sebelumnya tidak didokumentasi dengan baik sehingga terkadang proses pembuatan jadwal harus dimulai dari awal. %kibatnya, jadwal yang baru tidak dapat segera diperoleh, karena perlu dilakukan proses pencocokan lagi agar tidak ada kegi-atan3ujian yang dilaksanakan dengan menggunakan sumber daya yang sama. Permasalahannya adalah, manusia tidak memiliki kemampuan untuk membuat seluruh kemungkinan kombinasi jadwal yang dapat digunakan sehingga jadwal yang dihasilkan bukanlah jadwal yang paling optimal. 2elain itu, bila pada waktu yang dijadwalkan ternyata ada dosen yang berhalangan, ada ruangan yang digunakan oleh kegiatan lain, atau ada 1$0 yang tidak dapat digunakan

karena rusak atau sedang digunakan untuk kegiatan lain, maka alternati/ perubahan jadwal tidak dapat segera diperoleh karena manusia memiliki keterbatasan untuk mengingat dan mengkompilasi seluruh /akta yang dimiliki. A'-&ri ma P*war(aa( Gra.$# Pewarnaan graph adalah metode pewarnaan elemen sebuah gra/ yang terdiri dari pewarnaan verte4 (simpul", sisi (edge", dan wilayah (region". Pewarnaan simpul pada graph adalah memberi warna pada simpul-simpul suatu graph sedemikian sehingga tidak ada dua simpul bertetangga yang memiliki warna yang sama. Pewarnaan sisi graph berarti cara pemberian warna pada garis sedemikian rupa sehingga setiap garis yang bertumpuan pada titik yang sama diberi warna yang berbeda. Pewarnaan wilayah adalah pemberian warna pada setiap wilayah pada gra/ sehingga tidak ada wilayah bersebelahan yang memiliki warna yang sama. Pewarnaan wilayah ini diterapkan pada pewarnaan peta. %lgoritma pewarnaan graph sudah dapat digunakan untuk menghasilkan jadwal kuliah siswa dalam satu minggu di sebuah universitas.(Koyuncu dan Mahmut". Pada 5rmawati ( !!6", pembuatan jadwal kuliah dilakukan menggunakan constraint programming. 2ebuah jadwal yang ada mula-mula dipetakan menjadi bentuk graph terlebih dahulu. Proses pewarnaan graph ini nantinya akan dilakukan pada graph yang terbentuk. Pemetaan dilakukan dengan mengasumsikan bahwa setiap jadwal adalah sebuah !erte* dan urutan jadwal atau dua jad-wal yang tidak bisa diadakan bersamaan dipe-takan dengan membuat edge antara dua titik tersebut. -ntuk kapasitas atau jumlah ruang yang ada akan dimodelkan dengan batasan jumlah warna sama yang bisa digunakan untuk mewarnai simpul. 0alam hal ini dimisalkan jumlah ruang yang tersedia ada 7 ruangan maka untuk ) warna yang sama maksimal hanya bisa diberikan pada 7 buah simpul yang menunjukkan bahwa simpul-simpul tersebut dapat dijadwalkan secara bersamaan. 2etelah proses pewarnaan gra/ telah selesai, setiap simpul pada gra/ hasil pewarnaan tersebut akan memiliki warna sama yang berbeda-beda. 0ari warna-warna tersebut akan diketahui bahwa simpul dengan warna yang sama bisa dijadwalkan bersamaan sedangkan untuk simpul dengan warna yang berlainan harus dijadwalkan berbeda. *umlah warna yang digunakan menun-

#u&i Irma2ati3 I#.. 4i&iart%a 5 .omari 6uli A!2aria : Im leme!tasi Algoritma #a$ktra$ki!g 7!tuk

9%

jukkan banyaknya jadwal yang harus disusun dalam melakukan penyusunan jadwal.(%s8ad". A'-&ri ma #a$ktra$ki!g. %lgoritma ack. tracking merupakan bentuk algoritma yang banyak dan sering digunakan dalam memecahkan permasalahan yang bersi/at kombinasi. %lgoritma ini juga dikenal juga dengan nama algoritma runut-balik. $ara kerja dari algortima backtracking adalah mencoba satu demi satu kemungkinan cara yang bisa dilakukan untuk memperoleh hasil yang terba-ik, memiliki keunggulan dalam kemampuannya untuk memperoleh hasil kombinasi yang terbaik karena mencoba semua kemungkinan yang ada. 0i sisi lain algoritma ini tidak e/isien sebab proses pencarian membutuhkan waktu yang lama karena pengujian dilakukan satu demi satu untuk semua kemungkinan. 0alam langkah pewarnaan menggunakan algoritma ini, graph yang ada diumpamakan sebagai graph dengan bentuk pohon (pohon merupakan salah satu bentuk graph". 1angkah-langkahnya adalah sebagai berikut. ). 2olusi dicari dengan membentuk lintasan dari akar ke daun. %turan pembentukan yang dipakai adalah mengikuti aturan pencarian mendalam (Depth )irst Search". 2impul-simpul yang sudah dilahirkan dinamakan simpul hidup (li!e node". 2edangkan simpul hidup yang sedang diperluas dinamakan simpul-+ (E*pand.no.de". . Tiap kali simpul-+ diperluas, lintasan yang dibangun olehnya bertambah panjang. *ika lintasan yang sedang dibentuk tidak mengarah ke solusi, maka simpul-+ tersebut 9dibunuh: sehingga menjadi simpul mati (dead node". ,ungsi yang digunakan untuk membunuh simpul-+ adalah dengan menerapkan /ungsi pembatas (bounding "unc. tion". 2impul yang sudah mati tidak akan pernah diperluas lagi. (. *ika pembentukan lintasan berakhir dengan simpul mati, maka proses pen-

carian diteruskan dengan membangkitkan simpul anak yang lainnya. #ila tidak ada lagi simpul anak yang dapat dibangkitkan, maka pencarian solusi dilanjutkan dengan mela- kukan runut-balik ke simpul hidup terdekat atau simpul orangtua (parent node". 2elanjutnya simpul ini menjadi simpul-+ yang baru. ;. Pencarian dihentikan bila kita telah menemukan solusi atau tidak ada lagi simpul hi dup untuk runut-balik. D*. $ /ir, S*ar0$# Penelusuran3 pencarian 0epth ,irst berarti setiap kemungkinan path ke goal digali3 dieks-plorasi ke kesimpulannya sebelum path lain-nya dicoba. $ontoh graph dengan , sebagai goalnya.

Pencarian Depth.)irst akan menelusuri graph di atas dengan susunan< %#0#+#%$,. Pencarian Depth.)irst adalah kemungkinan metoda terbaik yang dapat diikuti di mana metode =euristic tidak digunakan. Turbo Prolog menggunakan pencarian Depth.)irst.yang juga sering disebut backtracking karena pada algoritma ini dilakukan peninjauan kembali dari simpul sebelumnya untuk menambahkan path

9) Dielektrika, 2 021, Agustus 2011

.
&ambar ). 0iagram +' Program Penjadwalan 2eminar dan -jian Tugas %khir

METODE PENELITIAN 0iagram +' untuk sistem ini dapat dilihat pada gambar ) di atas sementara /lowchartnya dapat dilihat pada gambar . ,lowchart tersebut menjelaskan bahwa program penjadwalan ini menggunakan jadwal kuliah yang sedang berjalan sebagai data tetap yang berubah pada setiap semester. 2elain itu, da/tar kegiatan dosen selama periode ujian juga menjadi salah satu masukannya. Program ini juga memungkinkan untuk diberi tambahan masukan berupa waktu yang lebih disukai (prioritas" oleh masing-masing dosen. Pada saat program dijalankan, maka yang pertama dilakukan ialah memasukkan namanama dosen yang akan bertindak sebagai penguji dan waktu prioritas yang lebih disukai. 1angkah selanjutnya adalah melakukan pengecekan jadwal dan waktu prioritas dosen yang akan menghasilkan waktu kosong selama periode ujian tersebut baik dengan atau tanpa waktu prioritas. *ika salah seorang dosen tidak memiliki waktu kosong pada periode tersebut, maka dengan sangat terpaksa, salah satu kegiatannya harus dibatalkan atau dosen tersebut diganti oleh orang lain jika tidak memungkinkan untuk membatalkan kegia-tannya. 1angkah selanjutnya adalah melakukan pembandingan waktu kosong dari masing-masing dosen penguji sehingga dihasilkan irisan dari waktu-waktu kosong tersebut. =asil dari proses ini adalah da/tar waktu kosong dari semua dosen penguji untuk satu mahasiswa. 1angkah selanjutnya adalah melakukan pengecekan 1$0 dan jadual kuliah untuk menentukan apakah ada 1$0 dan ruangan yang tersedia yang dapat digunakan untuk da/tar waktu yang diperoleh dari proses sebelumnya. #ila telah dipilih salah satu waktu, maka ke-giatan seminar 3 ujian ini ditambahkan dalam kegiatan dari masingmasing dosen penguji dan akan menjadi tambahan constraint bagi pencarian jadwal berikutnya. &ambar ( menunjukkan proses pengecekan jadwal dan waktu prioritas dosen yang akan menghasilkan waktu kosong selama periode ujian tersebut baik dengan atau tanpa waktu prioritas.

#u&i Irma2ati3 I#.. 4i&iart%a 5 .omari 6uli A!2aria : Im leme!tasi Algoritma #a$ktra$ki!g 7!tuk

91

&ambar

,lowchart proses pembuatan jadwal

0ari jadwal waktu kosong dan prioritas dari masing-masing dosen, selanjutnya dicari irisannya sehingga diperoleh jadwal kosong dari seluruh dosen penguji. *ika tidak diperoleh irisannya maka dilakukan proses tanpa menyertakan waktu priorotas. Proses ini ditunjukkan oleh /lowchart pada gambar ;.

ruangan kelas yang tidak digunakan, dan jumlah 1$0 yang digunakan. Pembatas yang lain adalah jumlah 1$0 yang tersedia, dan da/tar kegiatan dosen di luar kuliah.

&ambar ; ,lowchart Pembuatan 0a/tar >aktu Kosong dari 2emua 0osen

&ambar ( ,lowchart Pengecekan *adwal dan >aktu Prioritas 0osen

Proses pencocokan yang terakhir adalah mengecek ruang dan 1$0 yang tersedia. 0ari proses ini akan dihasilkan beberapa alternati/ jadwal untuk satu seminar. -ser tinggal memilih salah satu solusi tersebut seperti ditunjukkan pada gambar 6. #ila setelah proses pencarian jadwal tetap tidak diperoleh solusi, maka satu atau beberapa dosen dapat membatalkan salah satu kegiatannya dan proses pencarian jadwal diulang dari awal. P*(-u2ia( Si, *m# Pembatas utama yang digunakan dalam pengujian ini adalah jadwal kuliah. 0ari jadual kuliah tersebut, dapat diperoleh da/tar kegiatan mengajar dosen,

&ambar 6 ,lowchart Pengecekan Ketersediaan 'uang dan 1$0

Pengujian sistem dilakukan dengan membandingkan jadwal yang telah dihasilkan dengan kegiatan dari tiap-tiap dosen. Pembandingan ini dilakukan dengan melakukan searching dari dosen yang diinginkan dan kemudian akan ditampilkan jadwal kegiatan dan jadual seminar ataupun ujian dari dosen tersebut dalam dua jendela berdampingan sehingga dapat dilakukan pengecekan secara manual dengan lebih mudah.

#ila ada waktu ujian yang berbentrokan, maka sistem akan melaporkannya kepada user. #ila tidak ada waktu ujian yang berbentrokan, maka bisa dikatakan bahwa sistem ini berhasil memberikan solusi. #entrokan me-

nunjukkan bahwa telah terjadi kesalahan pada proses penjadwalan tersebut yang menunjukkan kegagalan dari sistem yang telah dibuat.

&ambar 7 ,orm untuk Memasukkan 0ata Kegiatan 0osen

&ambar ? ,orm untuk Memasukkan 0ata *adwal Kegiatan 0osen

HASIL DAN PEMBAHASAN 5mplementasi aplikasi penjadwalan ini dibuat berdasarkan 0iagram +' (entity /elatio. nal" yang menggambarkan hubungan antar entity yang akan digunakan dalam pengambilan keputusan. Masing-masing entity dan relasi tersebut direpresentasikan dalam logika predikat. 2alah satu contohnya adalah entity 0osen yang direpresentasikan sebagai< dosen(string NIP, string Name, string ProgStudy, string NoTlp, string Alamat). 2elanjutnya dimasukkan data yang diguna-kan sebagai constraints (pembataspembatas" seperti kegiatan dosen beserta waktu pelak-sanaannya (&ambar 7 dan &ambar ?" dan waktu3jam prioritas mereka (&ambar @". %plikasi ini juga menyediakan /orm untuk memasukkan data seminar dan ujian yang ter-diri dari list o* NamaDosen yang akan me-nampilkan semua nama dosen di Program 2tudi Teknik +lektro -niversitas Mataram dan list o* dewanPenguji dan pembimbing yang merupakan da/tar kombinasi nama penguji dan pembimbing. 0ata ini diperoleh dengan

memilih nama dosen yang diinginkan dan menekan tombol Add. 2eperti dijelaskan sebelumnya, aplikasi ini dapat menghasilkan lebih dari satu alternati/ jadwal bila tidak banyak constraint yang berbenturan. &ambar A menampilkan salah satu jadual yang terdiri dari empat judul ujian tugas akhir yang dihasilkan oleh aplikasi ini. .amun, Prolog memiliki keterbatasan untuk menyajikan data dalam /ormat tabel sehingga pada &ambar A tersebut tiap kegiatan dipilih menggunakan Listbo*. 0alam tulisannya, %s8ad (B" menguraikan beberapa algoritma Pewarnaan &raph dan menunjukkan bahwa algoritma tersebut dapat digunakan dalam penyusunan penjadwalan kuliah tetapi tidak mengimplementasikannya dalam permasalahan real. 5a juga tidak menyebutkan algoritma yang digunakan dari ( algoritma yang diuraikannya. Penelitian ini dapat dilanjutkan dengan melakukan evaluasi pada program yang yang di-hasilkan untuk membandingkan jumlah constraint yang dapat dipenuhi dan jumlah alternati/ jadual yang dihasilkan. 2elain itu analisa juga dapat dilakukan untuk melihat e/isiensi yang yang dapat dihasilkan oleh program ini.

&ambar @ ,orm untuk

Memasukkan 0ata >aktu Prioritas 0osen &ambar A ,orm untuk Menampilkan #eberapa *adwal yang 0ihasilkan

#erdasarkan jadual yang dihasilkan pada &ambar A, untuk jadwal pada hari dan jam yang sama, dosen yang sama tidak terlibat pada kegiatan yang sama. KESIMPULAN ). Penelitian ini menghasilkan aplikasi untuk membuat jadual seminar dan ujian Tugas %khir menggunakan pemrograman logika. . Pembatas-pembatas yang digunakan daam penyusunan jadual ini diperoleh dengan memasukkan syarat atau kondisi yang diharapkan dapat dipenuhi atau tidak boleh dilanggar. (. *adual yang dihasilkan sangat bergantung pada banyaknya pembatas yang diberikan. Makin banyak pembatas yang diberikan makin sedikit alternati/ jadual yang dihasilkan. SARAN ). Prolog belum memiliki antarmuka untuk menampilkan data dalam /ormat tabel se-hingga jadual yang dihasilkan dapat disaji-kan dalam /ormat =TM1. 0. -ntuk menunjukkan unjuk kerja sistem ini perlu dilakukan pengujian untuk menghi-tung time complecity dan user opinion score.

DA/TAR RUJUKAN %s8ad, .abila, B, 91plikasi Pewarnaan 2ra" pada Pemecahan +asalah Penyusunan 3ad.wal4, *urusan Teknik 5n/ormatika 5T#, #andung. $hand, %tish, !! , 9% =euristic %pproach to $onstraint CptimiDationin Timetab-ling9, S.Pac.3.5at.Sci. $ol. 0&, hal. %6 . %7. 5rmawati, #udi, !!6, 8Penyusunan 3adual #uliah di 3urusan Teknik Elektro +eng.gunakan Constraint Programming8, 1a-poran Penelitian 2PP30PP -.'%M. Koyuncu, #aki dan Mahmut, 2eEir, B, 8Student Time Table y 'sing 2raph Coloring 1l.gorithm4, 1nkara 'ni!ersity Computer Engineering Department4, !76!!, #eFevler, %nkara, Turkey. Prestwich, 2teven, !!!, 91n ,n"ormal Tutorial on Search Techni9ues in Constraint Programming8, Proceding 2eminar 5nternasio-nal 5n/ormation 5ntegration and >eb-#a-sed %pplication G 2ervices (55>%2" 55, 5ndonesia, hal. )!6 H ) ). 'osen, Kenneth =., !!(, 9Discrete +athe.matics and ,ts 1pplications8, +disi kelima, Mc&raw-=ill $ompanies, .ew Iork.