Pelita Informatika Budi Darma, Volume : ViI, Nomor: 3, Agustus 2014
ISSN : 2301-9425
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 simpulsimpul 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. 1.3. Batasan Masalah
Perangkat Lunak Pengambilan Keputusan Dalam Penjadwalan Dengan Metode Recursive Largest First. Oleh : Sadar Aman Gulo
135
Pelita Informatika Budi Darma, Volume : ViI, Nomor: 3, Agustus 2014
ISSN : 2301-9425
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
Perangkat Lunak Pengambilan Keputusan Dalam Penjadwalan Dengan Metode Recursive Largest First. Oleh : Sadar Aman Gulo
136
Pelita Informatika Budi Darma, Volume : ViI, Nomor: 3, Agustus 2014
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
ISSN : 2301-9425
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:
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 Perangkat Lunak Pengambilan Keputusan Dalam Penjadwalan Dengan Metode Recursive Largest First. Oleh : Sadar Aman Gulo
137
Pelita Informatika Budi Darma, Volume : ViI, Nomor: 3, Agustus 2014
ISSN : 2301-9425
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 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:
pewarnaan simpul graph dilakukan:
Gambar 5 : Tampilan Form Pemahaman Sebelum Gambar 4. Tampilan Form Hasi 2. 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
Proses Pewarnaan Simpul Graph Dilakukan Tampilan form Pemahaman setelah proses pewarnaan simpul graph dilakukan:
Gambar 6 : Tampilan Form Pemahaman Setelah Proses Pewarnaan Simpul Graph Dilakukan
Perangkat Lunak Pengambilan Keputusan Dalam Penjadwalan Dengan Metode Recursive Largest First. Oleh : Sadar Aman Gulo
138
Pelita Informatika Budi Darma, Volume : ViI, Nomor: 3, Agustus 2014
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
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. 2.
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.
ISSN : 2301-9425
3. 4. 5.
Suryokusumo,Ario “Microsoft Visual Basic 6.0”Penerbit PT Elex Media Komputindo,2001 Promono,Djoko”Mudah Menguasai Visual Basic 6.0” Penerbit PT Elex Media Komputindo, 2001 Munir,Ralph Rinaldi“Algoritma Dan Pemrograman”Edisi Kedua,2002 Munir,Rinaldi “Matematika Diskrit” PenerbitInformatika Bandung, 2005 http://springerlink.com/index/H8VH5L18474735 41.pdf
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
Perangkat Lunak Pengambilan Keputusan Dalam Penjadwalan Dengan Metode Recursive Largest First. Oleh : Sadar Aman Gulo
139