PERANGKAT LUNAK PENGAMBILAN KEPUTUSAN
DALAM PENJADWALAN DENGAN METODE
RECURSIVE LARGEST FIRST
Sadar Aman Gulo (0911040)Mahasiswa Program Studi Teknik Informatika, STMIK Budidarma Medan Jl. Sisingamangaraja No.338 Simpang Limun Medan
www.stmik-budidarma.ac.id //Email : [email protected] ABSTRAK
Pewarnaan simpul graph adalah memberi warna pada simpul-simpul di dalam graf sedemikian sehingga setiap dua simpul bertetangga mempunyai warna yang berbeda. Pewarnaan simpul graph ini dapat diterapkan untuk membantu pengambilan keputusan dalam penjadwalan. Dalam pembahasan kali ini, akan digunakan algoritma pewarnaan simpul graph Recursive Largest First.
Proses kerja dimulai dari pengisian data variabel, daftar nama variabel dan setting hubungan dari setiap variabel. Setelah itu, proses dilanjutkan dengan penggambaran graph berdasarkan data yang di-input. Simpul-simpul pada graph menyatakan variabel terikat. Sisi yang menghubungkan dua buah simpul menyatakan ada hubungan antara variabel tersebut dengan variabel terikat. Kemudian, proses dilanjutkan dengan pewarnaan simpul graph dan diakhiri dengan pengambilan keputusan berdasarkan warna dari simpul graph. Warna-warna yang sama pada simpul graph menunjukkan bahwa variabel terikat yang diwakili oleh simpul graph tersebut dapat dijadwalkan pada waktu yang sama.
Perangkat lunak pengambilan keputusan dalam penjadwalan dengan algoritma Recursive Largest First ini menyediakan antarmuka untuk mengisi data-data variabel, daftar nama variabel dan setting hubungan dari setiap variabel dari problema yang diinginkan. Perangkat lunak ini mampu menampilkan tahapan-tahapan proses pewarnaan simpul graph dengan menggunakan algoritma Recursive Largest First secara terperinci tahapan demi tahapan.
Kata Kunci : Pewarnaan simpul graph, pengambilan keputusan, Penjadwalan, algoritma Recursive Largest First
1. Pendahuluan
Mutual exclusion merupakan salah satu mekanisme yang dapat digunakan untuk Pewarnaan simpul graph adalah memberi warna pada simpul-simpul di dalam graph sedemikian sehingga setiap dua simpul bertetangga mempunyai warna yang berbeda. Banyak algoritma yang dapat digunakan untuk mewarnai simpul graph. Salah satu algoritma yang dapat digunakan untuk melakukan pewarnaan simpul graph adalah algoritma Recursive Largest First.
Algoritma pewarnaan simpul graph dapat diterapkan dalam persoalan penentuan jadwal, seperti penentuan jadwal ujian. Jadwal ujian harus disusun sedemikian rupa sehingga setiap mahasiswa dapat mengikuti ujian dari semua mata kuliah yang diambil. Di dalam persoalan ini, permasalahannya tidak hanya sekedar mewarnai simpul-simpul dengan warna berbeda dari warna simpul tetangganya saja, namun juga menginginkan jumlah macam warna yang digunakan sesedikit mungkin. Jumlah warna minimum yang dapat digunakan untuk mewarnai simpul disebut bilangan kromatik. Penyelesaian persoalan menentukan jadwal ujian sama dengan
menentukan bilangan kromatik graph yaitu dengan cara menggambarkan graph yang menyatakan penjadwalan ujian. Simpul-simpul pada graph menyatakan mata kuliah. Sisi yang menghubungkan dua buah simpul menyatakan ada mahasiswa yang memilih kedua mata kuliah itu. Berdasarkan graph tersebut dapat dikatakan bahwa apabila terdapat dua buah simpul yang dihubungkan oleh sisi, maka jadwal ujian untuk mata kuliah itu tidak dapat dibuat pada waktu yang sama. Warna-warna yang berbeda dapat diberikan pada simpul graph yang menunjukkan bahwa waktu ujian dari mata kuliahnya berbeda.
1.2. Rumusan Masalah
Berdasarkan latar belakang pemilihan judul, maka yang menjadi permasalahan adalah bagaimana merancang perangkat lunak yang mampu untuk menerapkan algoritma Recursive Largest First dalam mengambil keputusan dalam penjadwalan.
Perangkat Lunak Pengambilan Keputusan Dalam Penjadwalan Dengan Metode 136 Karena keterbatasan waktu dan pengetahuan
penulis, maka ruang lingkup permasalahan dalam merancang perangkat lunak ini antara lain:
a. Perangkat lunak akan menampilkan proses kerja dari algoritma Recursive Largest First secara tahap demi tahap.
b. Proses pemahaman dari perangkat lunak hanya mendukung maksimal 8 buah simpul saja. c. Data yang di-input untuk proses penjadwalan
berupa:
• Data input variabel, terdiri dari jumlah dan nama variabel.
• Data isian variabel.
• Data hubungan antar variabel.
d. Data input akan disimpan ke dalam database Microsoft Access 2003.
e. Perangkat lunak dirancang dengan menggunakan bahasa pemrograman Microsoft Visual Basic 6.0. 2. Algoritma Recursive Largest First
Algoritma Recursive Largest First yang merupakan varian dari algoritma Welch-Powell ini ditemukan oleh Leighton. Algoritma ini merupakan salah satu algoritma yang paling sering digunakan untuk mewarnai sebuah graph G.
Algoritma Recursive Largest First ini dapat dinyatakan sebagai berikut :
colorCount = 1;
while uncolored vertices exist
make a list L of all uncolored vertices while L is not empty
find the vertex v in L with the largest number of
uncolored neighbors color[v] = colorCount
remove v from L and also remove v’s neighbors
colorCount ++
Output the number of colors needed and the color for each vertex
Flowchart proses kerja dari algoritma Recursive Largest First dapat dilihat pada gambar berikut:
Gambar 1. Flowchart dari Algoritma Recursive Largest First
3. Pembahasan 3.1. Algoritma
Algoritma yang digunakan untuk merancang perangkat lunak pengambilan keputusan dalam penjadwalan dengan algoritma Recursive Largest First (RLF) ini dapat dibagi menjadi 4 bagian besar yaitu:
1. Algoritma Passing Data
2. Algoritma Inti Recursive Largest First (RLF). 3. Algoritma Memilih Simpul.
4. Algoritma Membuat Daftar Simpul.
5.
Algoritma Membuang Simpul dari Daftar Simpul.
3.2. Algoritma Passing Data
Algoritma ini digunakan untuk melakukan proses pembacaan data dari database dan pengisian data tersebut ke dalam variabel Node yang akan
digunakan untuk menggambarkan graph. Prosedur kerja dari algoritma passing data ini dapat dijabarkan sebagai berikut:
Buka recordset cSQL Buat List L
Baca semua isi Recordset sampai kosong
Isi setiap data dari Recordset ke masing – masing node ke dalam List L
Tutup Recordset
3.3. Algoritma Inti Recursive Largest First (RLF) Algoritma ini digunakan untuk melakukan proses pewarnaan simpul graph dengan menggunakan algoritma recursive largest first (RLF). Prosedur kerja dari algoritma inti RLF ini dapat dijabarkan sebagai berikut:
Selama Node masih ada yang belum diwarnai
Buat list yang berisi node yang belum diwarnai
Selama list tersebut tidak kosong
Cari node pada list yang berisi nilai node tertinggi
dengan fungsi GetMaxNode Warnai node
Buang node yang sudah diwarnai
3.4. Algoritma Memilih Simpul
Algoritma ini digunakan untuk memilih simpul yang memilih jumlah simpul tetangga terbanyak yang belum diwarnai. Algoritma ini berbentuk fungsi yang mengembalikan nilai indeks dari simpul (node) yang terpilih. Prosedur kerja dari algoritma memilih simpul ini dapat dirincikan sebagai berikut:
Buka List L
Baca jumlah tetangga tiap node sampai list kosong
Jika jumlah tetangga lebih besar dari MaxNode maka
MaxNode = jumlah tetangga dari node
3.5. Algoritma Membuat Daftar Simpul
Algoritma ini digunakan untuk membuat daftar (list) dari simpul yang belum diwarnai. Algoritma ini berbentuk prosedur yang tidak mengembalikan nilai. Prosedur kerja dari algoritma membuat daftar simpul ini dapat dirincikan sebagai berikut:
Buka List L Buat List Temp
Baca semua warna node dari List L Jika node belum diwarnai
Masukkan isi node ke dalam List Temp
3.6. Algoritma Membuang Simpul Dari Daftar Simpul
Algoritma ini digunakan untuk membuang simpul yang telah diwarnai dan semua simpul yang bertetangga dengan simpul yang telah diwarnai tersebut dari daftar (list) simpul yang belum diwarnai. Algoritma ini berbentuk prosedur yang tidak mengembalikan nilai. Prosedur kerja dari algoritma membuang simpul dari daftar simpul ini dapat dirincikan sebagai berikut:
Buka List L
Cari nilai node yang sudah diwarnai Cari node tetangga yang berhubungan dengan node yang sudah diwarnai Masukkan masing-masing node tetangga ke dalam List Temp
Hapus List L
Masukkan List Temp ke dalam List L Hapus List Temp
3.7. Hasil
Gambar 2. Rancangan Menu Perangkat Lunak 1. Tampilan form ‘Pemahaman’:
Form ini digunakan untuk menampilkan proses kerja dari algoritma Recursive Largest First dalam mewarnai simpul graph secara terperinci langkah demi langkah. Tampilan form ‘Pemahaman’ dapat dilihat pada gambar 3:
Perangkat Lunak Pengambilan Keputusan Dalam Penjadwalan Dengan Metode 138 Gambar 3. Tampilan Form Pemahaman
2. Tampilan form ‘Hasil’:
Form ini digunakan untuk menampilkan hasil pengambilan keputusan dalam penjadwalan untuk problema yang dipilih dengan menggunakan algoritma Recursive Largest First. Tampilan form ‘Hasil’ dapat dilihat pada gambar 4:
Gambar 4. Tampilan Form Hasi 3.8. Pengujian Perangkat Lunak
Berikut diberikan sebuah contoh pengambilan keputusan dalam penjadwalan dengan menggunakan input berikut:
Nama Problema : Penjadwalan Mata Kuliah Jumlah Variabel : 2
Nama Variabel : Mata Kuliah dan Mahasiswa
Variabel Terikat : Mata Kuliah Rincian Data :
Tabel 1. Rincian Data Mata Kuliah
Nomor Isi 1 Agama 2 Digital 3 Fisika 4 Kriptografi 5 Kalkulus 6 Kimia
Tabel 2. Rincian Data Mahasiswa
Nomor Isi 1 Anto 2 Badu 3 Budi 4 Cindy 5 Dodi Hubungan antar variabel :
Hasil output perangkat lunak :
1. Tampilan form Pemahaman sebelum proses
pewarnaan simpul graph dilakukan:
Gambar 5 : Tampilan Form Pemahaman Sebelum Proses Pewarnaan Simpul Graph Dilakukan 2. Tampilan form Pemahaman setelah proses
pewarnaan simpul graph dilakukan:
Gambar 6 : Tampilan Form Pemahaman Setelah Proses Pewarnaan Simpul Graph Dilakukan
Hasil yang diperoleh:
Agama,Digital boleh dijadwalkan pada waktu yang sama
Kalkulus,Kimia boleh dijadwalkan pada waktu yang sama
Fisika,Kriptografi boleh dijadwalkan pada waktu yang sama
4. Kesimpulan dan saran 4.1. Kesimpulan
Setelah menyelesaikan tugas akhir ini, penulis menarik beberapa kesimpulan sebagai berikut :
1. Perangkat lunak dapat digunakan untuk membantu pengambilan keputusan dalam penjadwalan, karena mampu memberikan daftar simpul yang dapat diwarnai dengan warna yang sama.
2. Perangkat lunak mampu menampilkan proses kerja dari algoritma Recursive Largest First dalam melakukan pewarnaan simpul graph secara tahap demi tahap sehingga dapat digunakan untuk memahami proses kerja dari algoritma Recursive Largest First.
4.2. Saran
Penulis ingin memberikan beberapa saran yang mungkin berguna untuk pengembangan perangkat lunak lebih lanjut, yaitu :
1. Perangkat lunak dapat dikembangkan lebih lanjut dengan menerapkannya pada proses pembagian waktu dalam penjadwalan.
2. Perangkat lunak dapat dikembangkan dengan menambahkan kemampuan input yang dapat
mempermudah user dalam menentukan variabel dan hubungan antar variabel, misalnya user dapat menentukan hubungan antar variabel hanya dengan menarik garis antara node yang satu dengan yang lainnya.
DAFTAR PUSTAKA
1. Suryokusumo,Ario “Microsoft Visual Basic 6.0”Penerbit PT Elex Media Komputindo,2001 2. Promono,Djoko”Mudah Menguasai Visual
Basic 6.0” Penerbit PT Elex Media Komputindo, 2001
3. Munir,Ralph Rinaldi“Algoritma Dan Pemrograman”Edisi Kedua,2002
4. Munir,Rinaldi “Matematika Diskrit” PenerbitInformatika Bandung, 2005
5. http://springerlink.com/index/H8VH5L18474735 41.pdf