SKRIPSI
REYNOLD LUMBAN TOBING 050803027
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains
REYNOLD LUMBAN TOBING
050803027
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : SISTEM SIMULASI PENJADWALAN
KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIK
Kategori : SKRIPSI
Nomor Induk Mahasiswa : 050803027
Program Studi : SARJANA (S1) MATEMATIKA
Departemen : MATEMATIKA
Fakultas : MATEMATIKA DAN ILMU
PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, Januari 2010
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Syahriol Sitorus, S.Si, M.IT Drs. Sawaluddin, M.IT NIP.19710310 199703 1 004 NIP.19591231 199802 1 001
Diketahui/ Disetujui oleh
Departemen Matematika FMIPA USU
PERNYATAAN
SISTEM SIMULASI PENJADWALAN KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIK
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Januari 2010
PENGHARGAAN
Puji dan syukur kehadirat Tuhan Yesus Kristus atas semua yang telah diberikan sehingga penulis dapat menyelesaikan tulisan ini. Terpujilah Tuhan.
Ucapan terimakasih saya sampaikan kepada Drs. Sawaluddin, M.IT dan Syahriol Sitorus, S.Si, M.IT selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan kepada penulis dalam menyelesaikan tulisan ini. Kepada prof. Dr. Herman Mawengkang dan Drs. James P. Marbun, M.Kom selaku dosen penguji. Ucapan terimakasih juga penulis tujukan kepada Ketua dan Sekretaris Departemen Matematika FMIPA USU Dr. Saib Suwilo, M.Sc dan Drs. Henry Rani Sitepu, M.Si, kepada Dra. Normalina Napitupulu, M.Sc selaku dosen pengajar Algoritma Genetik yang telah memberikan masukan untuk penyelesaian tulisan ini serta seluruh Dosen dan staf pengajar Departemen Matematika FMIPA USU.
ABSTRAK
UNIVERSITY TIMETABLING SIMULATION SYSTEM WITH GENETIC ALGORITHM
ABSTRACT
DAFTAR ISI
2.2 Struktur Umum Algoritma Genetik 10 2.3 Pengkodean 13
2.5 Uraian Singkat Java 2 Standard Edition 21 2.5.1 Mengenal Java 2 Standard Edition 21 3.1.1 Identifikasi Masalah 27 3.1.2 Analisis Algoritma Genetik Pada Penjadwalan 28
3.1.2.2 EvaluasiPenalty Kromosom 31
3.1.2.3 Proses Regenerasi 32
3.1.2.4 Pengujian 33
3.1.3 Mapping Algoritma Genetik 33
3.1.4 Aliran Informasi 39
3.1.4.1 Context Diagram 39
3.1.4.2 Data Flow Diagram(DFD) Level 0 39 3.1.4.3 Data Flow Diagram(DFD) Level 1 40
3.1.5 Pemodelan Data 44
3.2 Perancangan 47
3.2.1 Lingkungan Imlementasi 47
3.2.2 Perancangan Antarmuka 47
3.2.3 Perancangan Proses 49
Bab 4 PERANCANGAN SISTEM 59
4.1 Hasil Perancangan Sistem 59
4.2 Hasil Algoritma Genetik 64
4.3 Evaluasi Algoritma Genetik 65
Bab 5 KESIMPULAN DAN SARAN 66
5.1 Kesimpulan 66
5.2 Saran 67
DAFTAR PUSTAKA 68
LAMPIRAN A.LISTING PROGRAM FORM STARTUP 70
DAFTAR TABEL
Halaman
Tabel 2.1 ContohCrossover 1-titik 16
Tabel 2.2 ContohCrossover 2-titik 17
Tabel 2.3 ContohCrossover seragam 17
Tabel 2.4 Contoh Mutasi pada pengkodean biner 18 Tabel 2.5 Contoh Mutasi pada pengkodean permutasi 18 Tabel 2.6 Tabel Package yang terdapat dalam J2SE 24
Tabel 2.7 Keyword dalam Java 25
Tabel 2.8 Tipe Data dalam Java 26
Tabel 3.1 Matriks Dosen PengajarAvailable 30
Tabel 3.2 Matriks Kelas Mata Kuliah 30
Tabel 3.3 Matriks RuangAvailable 30
Tabel 3.4 BobotPenalty Setiap GolonganPenalty 32 Tabel 3.5 BobotPenalty Setiap Prioritas 32 Tabel 3.6 Deskripsi Proses Pendataan Jurusan 50 Tabel 3.7 Deskripsi Proses Pendataan Kelas 50 Tabel 3.8 Deskripsi Proses Setting Tahun Jadwal 50 Tabel 3.9 Deskripsi Proses Penentuan Durasi Kuliah 51 Tabel 3.10 Deskripsi Proses Pendataan Mata Kuliah 51 Tabel 3.11 Deskripsi Proses Penempatan Mata Kuliah 51 Tabel 3.12 Deskripsi Proses Penentuan Hari Kuliah 52 Tabel 3.13 Deskripsi Proses Penentuan Jam Kuliah 52 Tabel 3.14 Deskripsi Proses WaktuNot Available 52 Tabel 3.15 Deskripsi Proses Pendataan Ruang Kuliah 53 Tabel 3.16 Deskripsi Proses Waktu RuangNot Available 53 Tabel 3.17 Deskripsi Proses Pendataan Dosen 53 Tabel 3.18 Deskripsi Proses Penempatan Dosen 53 Tabel 3.19 Deskripsi Proses Waktu Dosen Not Available 54 Tabel 3.20 Deskripsi Proses Penyusunan Jadwal 54
Tabel 3.21 Deskripsi Data Jurusan 55
Tabel 3.22 Deskripsi Data Kelas 55
Tabel 3.23 Deskripsi Data Dosen 55
Tabel 3.24 Deskripsi Data Pengajar 55
Tabel 3.25 Deskripsi Data Not_Dosen 56
Tabel 3.26 Deskripsi Data Mata Kuliah 56
Tabel 3.27 Deskripsi Data dt_Matakuliah 56
Tabel 3.28 Deskripsi Data SKS 56
Tabel 3.29 Deskripsi Data Kuliah 56
Tabel 3.30 Deskripsi Data Hari 57
Tabel 3.31 Deskripsi Data Jam 57
Tabel 3.32 Deskripsi Data Not_Hari 57
Tabel 3.33 Deskripsi Data Ruang 57
Tabel 3.35 Deskripsi Data Jadwal GA 58
DAFTAR GAMBAR
Halaman
Gambar 1.1 Diagram Konsepsi 5
Gambar 2.1 Diagram Alir Algoritma Genetik 11
Gambar 2.2 Tool-Tool Dasar JDK 23
Gambar 3.1 Algoritma Penyelesaian Jadwal Kuliah 31
Gambar 3.2 Algoritma Penjadwalan Kuliah 34
Gambar 3.3 IlustrasiPointer Penjadwalan Kuliah 36
Gambar 3.4 Persilangan Individu 38
Gambar 3.5 Mutasi Individu 38
Gambar 3.6 Context Diagram 39
Gambar 3.7 Data Flow Diagram (DFD) Level 0 40 Gambar 3.8 DFD Level 1 Proses Pendataan Kelas dan Jurusan 41 Gambar 3.9 DFD Level 1 Proses 2 Pendataan Kurikulum 41 Gambar 3.10 DFD Level 1 Proses 3 Waktu Perkuliahan 42 Gambar 3.11 DFD Level 1 Proses 4 Pendataan Ruang Kuliah 42 Gambar 3.12 DFD Level 1 Proses 5 Pendataan Pengajar 43 Gambar 3.13 DFD Level 1 Proses 6 Penyusunan Jadwal Kuliah 43 Gambar 3.14 Entity Relationship Database (ERD) 45
Gambar 3.15 Skema Diagram 46
Gambar 3.16 Diagram Alir Program Simulasi Penjadwalan Kuliah 48 Gambar 3.17 Flowchart Program Simulasi Penjadwalan Kuliah 49 Gambar 4.1 Menjalankan Program dari Konsole Linux 59 Gambar 4.2 Halaman Startup dan Konfigurasi 60
Gambar 4.3 Form Utama 60
Gambar 4.4 Form Simulasi Jadwal berdasarkan Personal 61 Gambar 4.5 Form Simulasi Jadwal berdasarkan Mata Kuliah 62 Gambar 4.6 Form Simulasi Jadwal berdasarkan Ruangan 62 Gambar 4.7 Form Simulasi Jadwal dengan Algoritma Genetik 63 Gambar 4.8 Form Simulasi Jadwal dengan Algoritma Genetika untuk Hasil
Capaian 100% 63
adalah karuni a besar dari TanganM u.
Skr i psi i ni kupersembahkan teri sti mewa untuk
Ayahanda dan I bunda terci nta yang selalu ada di hati dan
di seti ap langkah keci lku
dan Adek-adekku tersayang Alberd L umban Tobi ng dan
Anggi ta Chri sti ara L umban Tobi ng
ABSTRAK
UNIVERSITY TIMETABLING SIMULATION SYSTEM WITH GENETIC ALGORITHM
ABSTRACT
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi yang pesat memberikan banyak kemudahan dalam
penyelesaian masalah dan pencapaian hasil kerja yang memuaskan bagi
kehidupan manusia. Salah satu teknologi itu adalah teknologi komputer.
Keberadaan komputer sampai saat ini telah mengalami berbagai kemajuan.
Kemampuan komputer untuk melakukan suatu pekerjaan atau tugas pun
semakin baik. Jika dahulu komputer digunakan untuk memproses data secara
sederhana, maka saat ini penggunaan komputer sudah sangat luas pengaruh dan
manfaatnya meliputi segala aspek kehidupan manusia.
Salah satu aspek kehidupan itu sendiri dimana penggunaan komputer
saat ini digunakan untuk membuat aplikasi komputasi untuk dalam masalah
penjadwalan, yang dalam hal ini yaitu dalam penjadwalan kuliah. Melaksanakan
pekerjaan secara efektif dan efisien agar tujuan tercapai merupakan hal yang
penting dalam masalah penjadwalan. Oleh karena itu pemahaman mengenai
konsep penjadwalan sangat penting, sehingga para pelaksana mengetahui kapan
waktu harus memulai suatu pekerjaan dan kapan waktu mengakhirinya.
Penjadwalan kegiatan belajar mengajar dalam suatu kampus adalah hal
yang rumit. Permasalahan yang sering disebut dengan University Timetabling
Problems (UTP) ini. Selain dilihat dari sisi mahasiswa, juga harus dilihat dari
sisi dosen, yaitu kemungkinan-kemungkinan dosen akan mengampu lebih dari
satu mata kuliah yang ada, sebab ada kemungkinan jumlah mata kuliah dan
tidak mengajar dua mata kuliah berbeda pada hari dan jam yang sama. Selain
itu, harus dipertimbangkan juga ketersediaan kelas sehingga kegiatan
perkuliahan dapat dilaksanakan.
Salah satu metode simulasi yang dapat digunakan untuk menyelesaikan
permasalahan tersebut adalah dengan menggunakan pendekatan algoritma
genetik. Algoritma genetik merupakan pendekatan komputasional untuk
menyelesaikan masalah yang dimodelkan dengan proses evolusi biologis.
Diharapkan dengan digunakannya algoritma genetik akan diperoleh optimasi
penjadwalan yaitu kondisi dimana terjadi kombinasi terbaik untuk pasangan
mata kuliah dan dosen pengajar secara keseluruhan, tidak ada permasalahan
bentrokan jadwal pada sisi mahasiswa, serta ketersediaan ruang yang cukup dan
sesuai secara fasilitas untuk seluruh mata kuliah yang ada.
Pada penelitian ini, sistem simulasi penjadwalan dibuat dengan
melibatkan parameter-paramenter terdiri atas mata kuliah, slot waktu dengan
sejumlah batasan (hari dan jam), mahasiswa, dosen, ruangan dan kapasitasnya,
dan syarat (constraint) tertentu. Memasukkan parameter mahasiswa, dan
mengaturnya supaya bentrokan pada mahasiswa seminimal mungkin. Juga
menghidari mahasiswa kuliah lebih dari 3 mata kuliah dalam sehari. Maka
melalui penelitian ini penulis mencoba mengusulkan beberapa alternatif pilihan
dari jadwal yang dihasilkan dan mengusulkan perubahan (seminimal mungkin)
jika masih terjadi bentrokan jadwal. Terdapat berbagai aspek yang berkaitan
dalam penjadwalan tersebut yang harus dilibatkan dalam pertimbangan di
antaranya :
1. Terdapat jadwal-jadwal di mana dosen yang bersangkutan tidak bisa
mengajar.
2. Tidak boleh adanya jadwal kuliah yang beririsan dengan jadwal kuliah
angkatan sebelumnya maupun sesudahnya, sehingga mahasiswa dapat
mengambil mata kuliah angkatan sebelumnya maupun sesudahnya.
3. Distribusi jadwal perkuliahan diharapkan dapat merata tiap harinya
4. Pekerjaan penjadwalan mata kuliah ini akan semakin berat jika
melibatkan semakin banyak kelas per-angkatannya.
Di samping aspek-aspek di atas, dalam penyusunan sistem simulasi
jadwal kuliah ini pun terdapat sangat banyak kemungkinan yang selayaknya
dicoba untuk menemukan penjadwalan yang terbaik. Karena itu dibutuhkan
metode optimasi dengan menggunakan algoritma genetik yang dapat diterapkan
untuk mengerjakan sistem simulasi penjadwalan kuliah ini.
1.2 Perumusan Masalah
Permasalahan yang terdapat dalam penelitian ini adalah sebagai berikut:
1. Bagaimana membangun sistem simulasi penjadwalan kuliah yang dapat
meminimalkan bentrokan sehingga diperoleh suatu sistem simulasi
penjawalan kuliah.
2. Bagaimana kinerja algoritma genetik dalam penjadwalan kuliah sehingga
diperoleh suatu sistem simulasi penjadwalan kuliah yang baik dan
optimal.
1.3 Pembatasan Masalah
Agar pembahasan penelitian ini lebih terarah maka diberikan batasan-batasan
masalah yang akan dibahas. Yang menjadi batasan masalah pada penelitian ini
adalah :
1. Semua parameter danrestriction yang telah ditentukan dapat diinput.
2. Pemecahan permasalahan dengan metode algoritma genetik.
3. Perancangan aplikasi panjadwalan berbasis desktop.
4. Berbasis Client Server dan tetap memperhatikan sistem keamanan
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah penerapan algoritma genetik untuk
menghasilkan sistem simulasi penjadwalan kuliah. Jadwal yang dihasilkan dapat
meminimalkan bentrokan seminimal mungkin, sehingga dapat lebih
memudahkan penggunanya dalam mendapatkan solusi untuk penanganan
penjadwalan kuliah.
1.5 Tinjauan Pustaka
Sebagai pendukung teori dalam penulisan studi ini, penulis menggunakan
beberapa buku dan jurnal, antara lain :
Michael Negnevitsky (2005). Secara umum, proses dari algoritma
genetik ini berisi step-step procedural sekuensial yang memproses sebuah
populasi kromosom buatan (artificial) menjadi populasi baru lainnya. Algoritma
ini menggunakan proses seleksi natural dan teknik-teknik yang terinspirasi dari
teori genetik, yaitu:crossover dan mutasi.
William B. Langdon (2000). Kekuatan algoritma genetik dalam
menemukan solusi optimal telah direkomendasikan dalam berbagai bidang
aplikasi seperti finansial, pengolahan citra, pengontrol pipa gas dan penjadwalan
produksi. Dan belakangan ini pemanfaatan algoritma genetik semakin meluas di
banyak program aplikasi lain sepertigame programming dantext mining.
Rimcharoen (2006). Algoritma genetik menggambarkan populasi seperti
sebuah probabilitas distribusi dari kumpulan solusi, oleh karena itu tidak semua
populasi perlu untuk disimpan. Dalam setiap generasi, algoritma genetik
menghasilkan individu-individu berdasarkan pada probabilitas yang
dispesifikasikan dalam probability vector. Individu-individu tersebut akan
dievaluasikan dan probability vector akan berubah berdasarkan individu yang
memori yang sedikit dan mencapai kualitas yang sebanding dan mempunyai
hasil dengan jumlah yang hampir sama dengan yang dihasilkan oleh Basic
Genetik Algorithm.
1.6 Manfaat Penelitian
Manfaat yang dapat diambil dari penelitian ini adalah:
1. Memperkaya literatur dalam bidang sistem simulasi penjadwalan kuliah
khususnya dengan menggunakan algoritma genetik.
2. Dapat dijadikan sebagai dasar atau pedoman untuk pengembangan
sistem simulasi penjadwalan kuliah tingkat lanjut.
1.7 Diagram Konsepsi
Disini penulis menggambarkan diagram konsepsi dari tahapan algoritma genetik
terhadap sistem simulasi penjadwalan kuliah:
Gambar 1.1 Diagram Konsepsi Analisa Algoritma Genetik
Implementasi J2SE
Proses Input Data
Generate dengan Program
Penjelasan Diagram Konsepsi
1. Analisa Algoritma Genetik.
Pada tahapan ini akan dianalisa bagaimana alur proses dari algoritma
Genetik, dimana mendefenisikan gen, kromosom, individu dan populasi
untuk setiap parameter untuk membuat simulasi penjadwalan kuliah.
2. Implementasi J2SE
Pada tahap ini adalah implementasi pada program J2SE. Sesuai dengan
tahap analisa diawal yang pertama kali dibuat dengan membuat defenisi
dari masing-masing parameter dari genetik. Sehingga dapat
diimplementasikan dalam bentuk program penjadwalan kuliah.
3. ProsesInput Data
Pada tahapan ini merupakan proses input data dari semua
parameter-parameter penjadwalan sehingga bisa diolah dalam program yang telah
diimplementasikan.
4. Generate dengan Program
Pada tahap ini merupakan proses pembentukan jadwal kuliah dengan
Generate semua data input yang telah dimasukkan, sehingga dapat
dihasilkan jadwal kuliah.
5. Analisa HasilGenerate
Dalam tahapan ini merupakan analisa hasilGenerate program yang telah
dijalankan, dimana akan dilihat hasilnya telah optimal atau belum.
Sehingga akan meng-generate ulang apabila hasil dari jadwal yang
sebelumnya belum optimal.
1.8 Metodologi Penelitian
Dalam melakukan penelitian ini, penulis menggunakan beberapa metode
penelitian, antara lain:
Penulisan ini dimulai dengan studi kepustakaan yaitu dengan membaca
buku-buku, jurnal-jurnal dan bahan-bahan referensi dari internet untuk
memperoleh pengertian dan pengetahuan mengenai algoritma genetik,
artificial intelligence, analisis dan perancangan sistem, penjadwalan,
perancangan, dan pemrograman Java 2 Standard Edition.
2. Analisis
Pada tahap ini dilakukan pengumpulan fakta-fakta yang mendukung
perancangan sistem simulasi penjadwalan kuliah dengan mengadakan
konsultasi dengan dosen pembimbing maupun dosen yang
berkemampuan di bidang ini dan membandingkan dengan yang ada pada
buku penuntun, mendaftarkan semua ruangan yang bisa dipakai,
membuat slot waktu untuk masing-masing ruangan, mendefinisikan gen
atau kromosom atau individu dan populasi, membuat algoritma dan
flowchart, merancang sistem database dan proses jadwal kuliah,
meliputi:
a. Membuat ERD (Entity Relationship Diagram) untuk
menggambarkan hubungan entitas.
b. Membuat skema diagram.
c. MembuatContext Diagram.
d. Membuat DFD (Data Flow Diagram) level 0 dan level 1 untuk
menggambarkan proses-proses yang terjadi dalam sistem
penjadwalan kuliah.
3. Perancangan dan Implementasi
Perancangan dan implementasi sistem simulasi penjadwalan kuliah
berdasarkan metode yang digunakan dalam algoritma genetik dengan
menggunakan bahasa pemrograman Java 2 Standard Edition (J2SE) dan
MySQL 5.1.30 untuk sistem databasenya.
4. Pengujian
Pada tahap ini sistem simulasi yang sudah dirancang diuji oleh pemakai
dan membandingkan solusi pada sistem dengan pemikiran dosen
5. Penyusunan laporan dan kesimpulan akhir.
Menyusun laporan hasil analisa simulasi ke dalam format penulisan
LANDASAN TEORI
2.1 Pengertian Algoritma Genetik
Algoritma ini ditemukan di Universitas Michigan, Amerika Serikat oleh John
Holland (1975) melalui sebuah penelitian dan dipopulerkan oleh salah satu
muridnya, David Goldberg (1989). Dimana mendefenisikan algoritma genetik
ini sebagai metode algoritma pencarian berdasarkan pada mekanisme seleksi
alam dan genetik alam.
Algoritma genetik adalah algoritma yang berusaha menerapkan
pemahaman mengenai evolusi alamiah pada tugas-tugas pemecahan-masalah
(problem solving). Pendekatan yang diambil oleh algoritma ini adalah dengan
menggabungkan secara acak berbagai pilihan solusi terbaik di dalam suatu
kumpulan untuk mendapatkan generasi solusi terbaik berikutnya yaitu pada
suatu kondisi yang memaksimalkan kecocokannya atau lazim disebut fitness.
Generasi ini akan merepresentasikan perbaikan-perbaikan pada populasi
awalnya. Dengan melakukan proses ini secara berulang, algoritma ini
diharapkan dapat mensimulasikan proses evolusioner.
Pada akhirnya, akan didapatkan solusi-solusi yang paling tepat bagi
permasalahan yang dihadapi. Untuk menggunakan algoritma genetik, solusi
permasalahan direpresentasikan sebagai khromosom. Tiga aspek yang penting
untuk penggunaan algoritma genetik:
1. Defenisi fungsifitness
2. Defenisi dan implementasi representasi genetik
Jika ketiga aspek di atas telah didefinisikan, algoritma genetik akan
bekerja dengan baik. Tentu saja, algoritma genetik bukanlah solusi terbaik untuk
memecahkan segala masalah. Sebagai contoh, metode tradisional telah diatur
untuk untuk mencari penyelesaian dari fungsi analitisconvex yang “berperilaku
baik” yang variabelnya sedikit. Pada kasus-kasus ini, metode berbasis kalkulus
lebih unggul dari algoritma genetik karena metode ini dengan cepat menemukan
solusi minimum ketika algoritma genetik masih menganalisa bobot dari populasi
awal.
Untuk problem-problem ini pengguna harus mengakui fakta dari
pengalaman ini dan memakai metode tradisional yang lebih cepat tersebut. Akan
tetapi, banyak persoalan realistis yang berada di luar golongan ini. Selain itu,
untuk persoalan yang tidak terlalu rumit, banyak cara yang lebih cepat dari
algoritma genetik. Jumlah besar dari populasi solusi, yang merupakan
keunggulan dari algoritma genetik, juga harus mengakui kekurangannya dalam
dalam kecepatan pada sekumpulan komputer yang dipasang secara seri-fitness
function dari tiap solusi harus dievaluasi. Namun, bila tersedia
komputer-komputer yang paralel, tiap prosesor dapat mengevaluasi fungsi yang terpisah
pada saat yang bersamaan. Karena itulah, algoritma genetik sangat cocok untuk
perhitungan yang paralel.
2.2 Struktur Umum Algoritma Genetik
Algoritma genetik memberikan suatu pilihan bagi penentuan nilai parameter
dengan meniru cara reproduksi genetik, pembentukan kromosom baru serta
seleksi alami seperti yang terjadi pada makhluk hidup. Algoritma Genetik secara
Tidak
Ya
Gambar 2.1 Diagram Alir Algoritma Genetik
Golberg (1989) mengemukakan bahwa algoritma genetik mempunyai
karakteristik-karakteristik yang perlu diketahui sehingga dapat terbedakan dari
prosedur pencarian atau optimasi yang lain, yaitu:
1. Algoritma genetik dengan pengkodean dari himpunan solusi
permasalahan berdasarkan parameter yang telah ditetapkan dean bukan
parameter itu sendiri.
2. Algoritma genetik pencarian pada sebuah solusi dari sejumlah
individu-individu yang merupakan solusi permasalahan bukan hanya dari sebuah
individu.
3. Algoritma genetik informasi fungsi objektif (fitness), sebagai cara untuk
mengevaluasi individu yang mempunyai solusi terbaik, bukan turunan
dari suatu fungsi.
4. Algoritma genetik menggunakan aturan-aturan transisi peluang, bukan
aturan-aturan deterministik. Skema Pengkodean
Inisialisasi Populasi
Fungsi Objektif
Generasi Tua/ lama
Seleksi
Perkawinan Silang (Crossover)
Mutasi
Generasi Baru
Fungsi Objektif
Kondisi Terminasi
Variabel dan parameter yang digunakan pada algoritma genetik adalah:
1. Fungsifitness (fungsi tujuan) yang dimiliki oleh masing-masing individu
untuk menentukan tingkat kesesuaian individu tersebut dengan criteria
yang ingin dicapai.
2. Populasi jumlah individu yang dilibatkan pada setiap generasi.
3. Probabilitas terjadinya persilangan (crossover) pada suatu generasi.
4. Probabilitas terjadinya mutasi pada setiap individu.
5. Jumlah generasi yang akan dibentuk yang menentukan lama penerapan
algoritma genetik.
Secara umum struktur dari suatu algoritma genetik dapat mendefenisikan
dengan langkah-langkah sebagai berikut:
1. Membangkitkan populasi awal
Populasi awal ini dibangkitkan secara random sehingga didapatkan
solusi awal. Populasi itu sendiri terdiri atas sejumlah kromosom yang
merepresentasikan solusi yang diinginkan.
2. Membentuk generasi baru
Untuk membentuk generasi baru, digunakan operator reproduksi/ seleksi,
crossover dan mutasi. Proses ini dilakukan berulang-ulang sehingga
didapatkan jumlah kromosom yang cukup untuk membentuk generasi
baru dimana generasi baru ini merupakan representasi dari solusi baru.
Generasi baru ini dikenal denga istilah anak (offspring).
3. Evaluasi solusi
Pada tiap generasi, kromosom akan melalui proses evaluasi dengan
menggunakan alat ukur yang dinamakan fitness. Nilai fitness suatu
kromosom menggambarkan kualitas kromosom dalam populasi tersebut.
Proses ini akan mengevaluasi setiap populasi dengan menghitung nilai
fitness setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria
berhenti. Bila kriteria berhenti belum terpenuhi maka akan dibentuk lagi
generasi baru dengan mengulangi langkah 2. Beberapa kriteria berhenti
sering digunakan antara lain: berhenti pada generasi tertentu, berhenti
tertinggi tidak berubah, berhenti dalamn generasi tidak didapatkan nilai
fitness yang lebih tinggi.
Fungsifitness tersebut sebagai berikut:
(2.1)
dimana:
Dari persamaan diatas nilai fitness ditentukan oleh nilaipenalty.Penalty
tersebut menunjukkan jumlah pelanggaran kendala pada suatu kromosom.
Semakin tinggi nilai fitness akan semakin besar kemungkinan kromosom
tersebut terpilih ke generasi berikutnya. Jadi nilai penalty berbanding terbalik
dengan nilaifitness, semakin kecil nilai penalty (jumlah pelanggaran) semakin
besar nilaifitnessnya.
Pengkodean adalah suatu teknik untuk menyatakan populasi awal sebagai calon
solusi suatu masalah ke dalam suatu kromosom sebagai suatu kunci pokok
persoalan ketika menggunakan algoritma genetik.
Berdasarkan jenis symbol yang digunakan sebagai nilai suatu gen,
1. Pengkodean biner merupakan cara pengkodean yang paling umum
digunakan karena adalah yang pertama kali digunakan dalam algoritma
genetik oleh Holland. Keuntungan pengkodean ini adalah sederhana
untuk diciptakan dan mudah dimanipulasi. Pengkodean biner
memberikan banyak kemungkinan untuk kromosom walaupun dengan
jumlah nilai-nilai yang mungkin terjadi pada suatu gen yang sedikit (0
dan 1). Di pihak lain, pengkodean biner sering tidak sesuai untuk banyak
masalah dan kadang pengoreksian harus dilakukan setelah operasi
crossover dan mutasi.
2. Pengkodean bilang riil adalah suatu pengkodean bilangan dalam bentuk
riil. Masalah optimalisasi fungsi dan optimalisasi kendala lebih tepat jika
diselesaikan dengan pengkodean bilangan riil karena struktur topologi
ruang genotif untuk pengkodean bilangan riil identik dengan ruang
fenotifnya, sehingga mudah membentuk operator genetik yang efektif
dengan cara memakai teknik yang dapat digunakan yang berasal dari
metode konvensional.
3. Pengkodean bilangan bulat adalah metode yang mengkodekan bilangan
dalam bentuk bilangan bulat. Pengkodean ini baik digunakan untuk
masalah optimisasi kombinatorial.
4. Pengkodean struktur data adalah model pengkodean yang menggunakan
struktur data. Pengkodean ini digunakan untuk masalah kehidupan yang
lebih kompleks seperti perencanaan jalur robot, dan masalah pewarnaan
Graph.
2.4 Operator Genetik
Algoritma genetik merupakan proses pencarian yang heuristik dan acak
sehingga penekanan pemilihan operator yang digunakan sangat menentukan
keberhasilan algoritma genetik dalam menemukan solusi optimum suatu
masalah yang diberikan. Hal yang harus diperhatikan adalah menghindari
terjadinya konvergensi premature, yaitu mencapai solusi optimum yang belum
Operator genetik yang digunakan setelah proses evaluasi tahap pertama
membentuk populasi baru dari generasi sekarang. Operator-operator tersebut
adalah operator seleksi,crossover dan mutasi.
2.4.1 Seleksi
Seleksi bertujuan memberikan kesempatan reproduksi yang lebih besar bagi
anggota populasi yang paling fit. Langkah pertama dalam seleksi ini adalah
pencarian nilaifitness. Masing-masing individu dalam suatu wadah seleksi akan
menerima probabilitas reproduksi yang tergantung pada nilai objektif dirinya
sendiri terhadap nilai objektif dari semua individu dalam wadah seleksi tersebut.
Nilaifitness inilah yang nantinya akan digunakan pada tahap seleksi berikutnya
(Kusumadewi, 2003).
Kemampuan algoritma genetik untuk memproduksi kromosom yang
lebih baik secara progresif tergantung pada penekanan selektif (selective
pressure) yang diterapkan ke populasi. Penekanan selektif dapat diterapkan
dalam dua cara. Cara pertama adalah membuat lebih banyak kromosom anak
yang dipelihara dalam populasi dan memilih hanya kromosom-kromosom
terbaik bagi generasi berikut. Walaupun orang tua dipilih secara acak, metode
ini akan terus menghasilkan kromosom yang lebih baik berhubungan dengan
penekanan selektif yang diterapkan pada individu anak tersebut.
Cara lain menerapkan penekanan selektif adalah memilih orang tua yang
lebih baik ketika membuat keturunan baru. Dengan metode ini, hanya
kromosom sebanyak yang dipelihara dalam populasi yang perlu dibuat bagi
generasi berikutnya. Walaupun penekanan selektif tidak diterapkan ke level
keturunan, metode ini akan terus menghasilkan kromosom yang lebih baik,
Ada beberapa metode untuk memilih kromosom yang sering digunakan
antara lain adalah seleksi roda rolet (roulette wheel selection), seleksi ranking
(rank selection) dam seleksi turnamen (tournament selection).
Dalam penelitian ini, metode yang digunakan adalah seleksi roda rolet
(roulette wheel selection). Pada seleksi ini, orang tua dipilih berdasarkan fitness
mereka. Lebih baik kualitas suatu kromosom, lebih besar peluangnya untuk
terpilih. Probabilitas suatu individu terpilih untuk crossover sebanding dengan
fitness-nya. Cara penyeleksian ini merupakan peniruan dari permainan roda
rolet.
2.4.2Crossover
Crossover (perkawinan silang) bertujuan menambah keanekaragaman string
dalam populasi dengan penyilangan antar-string yang diperoleh dari
sebelumnya. Beberapa jeniscrossover tersebut adalah:
1. Crossover 1-titik
Padacrossover dilakukan dengan memisahkan suatu string menjadi dua
bagian dan selanjutnya salah satu bagian dipertukarkan dengan salah satu
bagian dari string yang lain yang telah dipisahkan dengan cara yang
sama. Proses yang demikian dinamakan operator crossover satu titik
seperti diperlihatkan pada gambar berikut:
Tabel 2.1 ContohCrossover 1-titik Kromosom Orangtua 1 11001011 Kromosom Orangtua 2 11011111
Keturunan 11001111
2. Crossover 2-titik
Proses crossover ini dilakukan dengan memilih dua titik crossover.
Kromosom keturunan kemudian dibentuk dengan barisan bit dari awal
bagian dari titik crossover pertama dan kedua disalin dari orangtua
kedua, kemudian selebihnya disalin dari orangtua pertama lagi.
Tabel 2.2 ContohCrossover 2-titik Kromosom Orangtua 1 11001011 Kromosom Orangtua 2 11011111
Keturunan 11011111
3. Crossover seragam
Crossover seragam manghasilkan kromosom keturunan dengan
menyalin bit-bit secara acak dari kedua orangtuanya.
Tabel 2.3 ContohCrossover seragam Kromosom Orangtua 1 11001011 Kromosom Orangtua 2 11011111
Keturunan 11011111
2.4.3 Mutasi
Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen dalam
suatu kromosom. Operasi crossover yang dilakukan pada kromosom dengan
tujuan untuk memperoleh kromosom-kromosom baru sebagai kandidat solusi
pada generasi mendatang denga fitness yang lebih baik, dan lama-kelamaan
menuju solusi optimum yang diinginkan. Akan tetapi, untuk mencapai hal ini,
penekanan selektif juga memegang peranan yang penting. Jika dalam proses
pemilihan kromosom-kromosom cenderung pada kromosom yang memiliki
fitness yang tinggi saja, konvergensi premature, yaitu mencapai solusi yang
optimal lokal sangat mudah terjadi
Untuk menghindari konvergensi premature tersebut dan tetap menjaga
perbedaan (diversity) kromosom-kromosom dalam populasi, selain melakukan
Proses mutasi dalam system biologi berlangsung dengan mengubah isi allele
gen pada suatu locus dengan allele yang lain. Proses mutasi ini bersifat acak
sehingga tidak selalu menjamin bahwa setelah proses mutasi akan diperoleh
kromosom denganfitness yang lebih baik.
Operator mutasi merupakan operasi yang menyangkut satu kromosom
tertentu. Beberapa cara operasi mutasi diterapkan dalam algoritma genetik
menurut jenis pengkodean terhadapphenotype, antara lain:
1. Mutasi dalam Pengkodean Biner
Mutasi pada pengkodean biner merupakan operasi yang sangat
sederhana. Proses yang dilakukan adalah menginversi nilai bit pada
posisi tertentu yang terpilih secara acak (atau menggunakan skema
tertentu) pada kromosom, yang disebutinverse bit.
Tabel 2.4 Contoh Mutasi pada pengkodean biner Kromosom sebelum mutasi 1 0 0 1 01 1 1 Kromosom setelah mutasi 1 0 0 1 00 1 1
2. Mutasi dalam Pengkodean Permutasi
Proses mutasi yang dilakukan dalam pengkodean biner dengan
mengubah langsung bit-bit pada kromosom tidak dapat dilakukan pada
pengkodean permutasi karena konsistensi urutan permutasi harus
diperhatikan. Salah satu cara yang dapat dilakukan adalah dengan
memilih dua posisi (locus) dari kromosom dan kemudian nilainya saling
dipertukarkan.
Tabel 2.5 Contoh Mutasi pada pengkodean permutasi Kromosom sebelum mutasi 1 23 4 6 5 87 9 Kromosom setelah mutasi 1 27 4 6 5 83 9
3. Mutasi dalam Pengkodean Nilai
Mutasi pada pengkodean nilai hampir sama dengan yang dilakukan pada
Penerapannya bergantung pada jenis nilai yang digunakan. Sebagai
contoh untuk nilai riil, proses mutasi dapat dilakukan seperti yang
dilakukan pada pengkodean permutasi, dengan saling mempertukarkan
nilai dua gen pada kromosom.
4. Mutasi dalam Pengkodean Pohon
Mutasi dalam pengkodean pohon dapat dilakukan antara lain dengan
cara mengubah operator (+, -, *, /) atau nilai yang terkandung pada suatu
verteks pohon yang dipilih. Atau, dapat juga dilakukan dengan memilih
dua verteks dari pohon dan saling mempertukarkan operator atau
nilainya.
Tidak setiap gen selalu dimutasi tetapi mutasi dikontrol dengan
probabilitas tertentu yang disebut dengan mutation rate (probabilitas mutasi)
dengan notasiPm. Jenis operator mutasi antara lain:
1. Mutasi Terarah
Mutasi terarah tergantung dari informasi gen. Informasi gen tersebut
berupa nilai pelanggaran gen (violation gen). Ini berarti bahwa setiap gen
mempunyai peluang yang berbeda untuk terjadi mutasi. Gen yang
mempunyai nilai pelanggaran yang lebih besar maka gen tersebut
mempunyai peluang untuk terjadi mutasi. Mutasi ini menghubungkan
nilai pelanggaran relatif (nilai pelanggaran suatu gen dibagi dengan nilai
pelanggaran total suatu kromosom) dengan probabilitas terjadinya
mutasi dari suatu gen pada kromosom. Hubungan tersebut dinyatakan
secara matematis sebagai berikut:
(2.3)
(2.4)
Keterangan persamaan:
nr(i) : nilai pelanggaran relative gen ke-i
pm(i) : probabilitas mutasi gen ke-i
pm : probabilitas mutasi
2. Mutasi Biasa
Mutasi biasa tidak tergantung dari informasi gen. Setiap gen mempunyai
peluang yang sama untu terjadi mutasi.
2.4.4 Parameter Genetik
Pengoperasian algoritma genetik dibutuhkan 4 parameter (Juniawati, 2003)
yaitu:
1. Probabilitas Persilangan (Crossover Probability)
Menunjukkan kemungkinan crossover terjadi antara 2 kromosom. Jika
tidak terjadi crossover maka keturunannya akan sama persis dengan
kromosom orangtua, tetapi tidak berarti generasi yang baru akan sama
persis dengan generasi yang lama. Jika probabilitas crossover 100%
maka semua keturunannya dihasilkan dari crossover. Crossover
dilakukan dengan harapan bahwa kromosom yang baru akan lebih baik.
2. Probabilitas Mutasi (Mutation Probability)
Menunjukkan kemungkinan mutasi terjadi pada gen-gen yag menyusun
sebuah kromosom. Jika tidak terjadi mutasi maka keturunan yang
dihasilkan setelah crossover tidak berubah. Jika terjadi mutasi bagian
kromosom akan berubah. Jika probabilitas 100%, semua kromosom
dimutasi. Jika probabilitasnya 0%, tidak ada yang mengalami mutasi.
3. Jumlah Individu
Menunjukkan jumlah kromosom yang terdapat dalam populasi (dalam
satu generasi). Jika hanya sedikit kromosom dalam populasi maka
algoritma genetik akan mempunyai sedikit variasi kemungkinan untuk
melakukan crossover antara orangtua karena hanya sebagian kecil dari
search space yang dipakai. Sebaliknya jika terlalu banyak maka
4. Jumlah Populasi
Menetukan jumlah populasi atau banyaknya generasi yang dihasilkan,
digunakan sebagai batas akhir proses seleksi, persilangan dan mutasi.
2.5 Uraian Singkat Java 2Standard Edition
Untuk mengembangkan program aplikasi ini penulis menggunakan bahasa
pemrograman berbasis Java 2Standard Edition. Penulis akan memperkenalkan
dari:
1. Mengenal Java 2Standard Edition.
2. Struktur Aplikasi Java 2Standard Edition Development Kit.
3. Beberapa komponen dalam Java yaitu java class-library.
4. Keyword dan tipe data dalam Java 2 Standard Edition.
2.5.1 Mengenal Java 2Standard Edition
Nama Java kebetulan sama dengan pulau tempat tinggal sebagian besar
penduduk Indonesia, Jawa. Meskipun demikian, proses kelahirannya tidak ada
hubungannya secara fisik dengan Indonesia atau pulau Jawa.
Sejarah kelahiran bahasa Java dimulai pada tahun 1991 ketika Sun
Microsystems memulai proyek penelitian yang diberi kode Green. Proyek ini
bertujuan untuk membangun system yang memungkinkan komputer berperan
dalam peralatan rumah tangga. Bahasa ini sangat berkembang pesat terutama
untukweb programming. Dalam beberapa tahun terakhir, Java telah merambah
dunia mobile dengan J2ME (Micro Edition: MIDlet, dipakai dalam mobile
phone, PDA, smart phone dan sebagainya). Java juga banyak dipakai dalam
aplikasiserver dengan J2EE (Enterprise Edition: JSP, servlet). Dalam penelitian
ini penulis menggunakan J2SE (Java 2Standard Edition). Yaitu terutama untuk
2.5.1.1 Java 2Software Development Kit
Java 2 SDK (Software Development Kit) adalah suatu perangkat lunak yang
digunakan untuk manajemen dan membangun berbagai macam aplikasi Java.
Java SDK sering juga disingkat dengan JDK (Java Development Kit).
Pemrograman windows GUI (Graphical User Interface) adalah interaksi antara
pengguna aplikasi dengan aplikasi dilakukan melalui antarmuka yang disebut
dengan graphical user interface, yaitu antarmuka grafik yang memudahkan
pemakainnya untuk navigasi dengan menggunakan elemenuser interface seperti
button,list,input field, komponen activeX dan lainnya.
Pada saat ini aplikasi sistem simulasi ini ditulis padaplatform windows
dan dengan menggunakan X-window Unix atau Linux pada Ubuntu 8.04
interface. Diharapkan aplikasi ini akan diimplementasikan juga pada platform
yang lain, seperti Apple Machintos,Free BSD dan lainnya.
Aplikasi Java yang dibangun dengan memakai berbagai macam tool dari
Gambar 2.2Tool-Tool Dasar JDK
2.5.1.2 Pemrograman Berorientasi Objek
Orientasi objek merupakan metode pemrograman modern yang mempunyai
kelebihan ketimbang dengan metode konvensional biasa. Salah satu keuntungan
pemrograman berorientasi objek adalah Reusability (kemampuan untuk
digunakan kembali), yaitu memakai komponen yang sudah pernah dibuat, baik
dibuat sendiri maupun yang dibuat oleh pihak lainnya, untuk kemudian
2.5.2 JavaClass-Library
Java menyediakan library-library standard yang telah di-compile dan dapat
langsung dipakai. Dalam library ini terdapat bermacam-macam class yang
dikelompokkan ke dalam package-package. Tabel berikut menjelaskan
package-package yang tersedia dalam J2SE, yaitu terdiri dari class-class inti
yang dipakai dalam pemrograman bahasa java.
Tabel 2.6 TabelPackage yang terdapat dalam J2SE
Package Namapackage Keterangan
Language java.lang Class-class utama merupakan inti dari bahasa java
Utilities java.util Class-class yang mendukung utilitas struktur data
I/O java.io Class-class yang mendukung bermacam-macam tipe input/ output
Text java.text
Class-class yang mendukung lokalisasi
untuk penanganan teks, tanggal, bilangan
danmessage
Math java.math
Class-class untuk melakukan perhitungan
aritmatikarbitrary-precesion, baik integer
ataufloating point
AWT java.awt
Abstract Windowing Toolkit.Class untuk
peracanganuser-interface danevent
-handling
Swing javax.swing
Class untuk membuat berbagai komponen
dalam java yang bertingkah laku sama
dengan berbagaiplatform
Javax javax Perluasan/extention dari bahasa java
Applet java.applet Class-class untuk membuat applet
Beans java.beans Class untuk membuat Java Beans
SQL java.sql Class untuk mendukung akses dan pengolahan data dalam database
RMI java.rmi Class untuk mendukungdistributed programming
Networking java.net Class yang mendukung dalam pembangunan aplikasi jaringan
Security java.security Class untuk mendukung keamanan kriptografi
2.5.3Keyword dan Tipe Data dalam J2SE
2.5.3.1Keyword dalam Java
Pemahaman kata-kata kunci ini sangat penting sebab jika peubah-peubah,
kelas-kelas, objek-objek, tipe-tipe bentukan, atribut-atribut, metode dan sebagainya,
dideklarasikan dengan menggunakan kata-kata kunci yang khas dalam Java,
maka interpreter bahasa Java akan langsung melaporkan adanya kesalahan
(error). Beberapa kara kunci dalam bahasa Java dalam tabel di bawah ini.
Tabel 2.7 Keyword dalam Java
Data
Declaration Loop Conditional Exception Structure Modifier Miscellaneous
2.5.3.2 Tipe Data dalam Java
Tabel 2.8 Tipe Data dalam Java
Tipe Data Panjang Nilai
byte 8 bit 128 s/d 127
short 16 bit -32768 s/d 32767
int 32 bit -2147483684 s/d 2147483647
long 64 bit -9223372036854775808 s/d
9223372036854775807
float 4 byte -3.4e38 s/d 3.4e38
double 8 byte -1.7e308 s/d 1.7e308
char 16 bit Unicode
PEMBAHASAN
3.1 Analisis
Pada subbab ini berisi uraian analisis sistem simulasi penjadwalan kuliah
meliputi identifikasi permasalahan untuk mengetahui hal-hal yang menjadi
permasalahan dan yang harus diselesaikan untuk menerapkan algoritma genetik
dalam proses penjadwalan kuliah sampai pada pemodelan data untuk
menentukan rancangan database.
3.1.1 Identifikasi Masalah
Pada algoritma genetik, terlebih dahulu diidentifikasi tentang kendala yang
dihadapi dalam sistem. Pada penjadwalan terdapat 2 jenis kendala/ prioritas
yang dapat diidentifikasi yaitu kendala yang harus dapat dipenuhi (Hard
Constrains) dan kendalan yang tidak harus dipenuhi (Soft Constraints) tetapi
kendalan ini tetap diusahakan sedapat mungkin dipenuhi (pelanggaran terhadap
kendala dapat diminimalkan). Kendala tersebut muncul karena adanya
aturan-aturan yang berfungsi agar entitas yang ada dalam melakukan proses dapat
berjalan dengan baik. Entitas tersebut meliputi kuliah, dosen, mahasiswa/ kelas,
ruang dan waktu dengan segala keterbatasannya.
1. Hard Constraints
Hard Constraints adalah prioritas umum yang harus dipenuhi dalam
menyusun jadwal kuliah. Ada beberapa ketentuan yang harus
dilaksanakan dengan pertimbangan bahwa apabila prioritas ini tidak
Prioritas yang termasuk dalamhard constraints meliputi:
a. Tidak boleh ada kuliah yang berjalan bersamaan untuk kelas yang
sama.
b. Tidak boleh ada kapasitas ruang kurang dari jumlah mahasiswa yang
mengambil mata kuliah tersebut.
c. Satu dosen tidak bias memberikan kuliah di dua tempat atau lebih di
tempat yang berbeda pada waktu yang bersamaan
d. Satu ruang kuliah tidak bias digunakan lebih dari satu kuliah dalam
waktu yang bersamaan.
e. Tipe ruang kuliah kuliah harus sama dengan tipe kuliah.
f. Kelas praktikum dilakukan secara berturut-turut.
g. Pada waktu tertentu tidak diperkenankan adanya kuliah. Misalkan:
hari Jumat jam 12.00-14.00, dsb.
h. Durasi perkuliahan dalam 1 minggu dan perhari tidak boleh overlap.
2. Soft Constraints
Soft Constraints ialah prioritas yang tidak dapat terpenuhi, tidak
menyebabkan kesalahan yang fatal.
Prioritas yang termasuk dalamSoft Constraints yaitu:
a. Kelas teori dilakukan secara berturut-turut.
b. Dosen dapat memilih jam mengajar yang diinginkan.
3.1.2 Analisis Algoritma Genetik Pada Penjadwalan
Penerapan algoritma genetik dalam proses penjadwalan kuliah, ada 5 hal yang
penting yang harus dilakukan seperti yang telah disampaikan oleh John Holland
dalam Simple Genetik Algorithm yaitu pengkodean kromosom, membangun
populasi awal, proses seleksi, proses regenerasi mulai dari persilangan dan
mutasi serta proses perulangan regenerasi sampai memperoleh kondisi
3.1.2.1 Membangun Populasi Awal
Populasi awal pada umumnya dibangun terdiri dari 2 teknik yaitu sebuah
populasi dibangun dari semua informasi constraints dan populasi awal
dibangkitkan secara random.
Pada penelitian ini digunakan teknik populasi awal dengan mengambil
semua informasi constraints dari pusat data, yang terlebih dahulu setiap
informasi constraints tersebut direpresentasikan, kemudian populasi awal
dibangun berdasarkan informasi yang ada sebanyak N kromosom, dengan N
merupakan banyaknya kuliah dan dapat dikatakan bahwa setiap gen dalam
kromosom mewakili suatu kuliah. Populasi awal tersebut kemudian
dibangkitkan secara random untuk selanjutnya dilakukan proses evaluasi setiap
kromosomnya.
Representasi kromosom tersebut sebagai berikut:
1. Ada 3 informasiconstraints utama yaitu:
a. Dosen pengajaravailable.
b. Mata kuliah yang telah ditetapkan pengajarnya.
c. Informasi ruang kuliahavailable.
2. Pada ke-empat informasi diatas dapat direpresentasikan kromosom
dalam bentuk matriks sebagai berikut:
a. Dosen Pengajaravailable
Representasi ini menginformasikan waktu dosen pengajar dapat
mengajar yang dinotasikan D[i,j] dengan i = hari dan j = jam. Bentuk
representasi dalam matriks dapat digambarkan dengan matriks dua
dimensi, dengan panjang baris (Hari [N]) = maksimum hari
perminggu dan panjang kolom (Jam [N]) = maksimum jam perhari.
Tabel 3.1 Matriks Dosen PengajarAvailable
Bentuk representasi dari mata kuliah adalah matriks satu dimensi
yang dinotasikan KM[i] dengan i = mata kuliah ke-i. Representasi ini
menginformasikan kelas mata kuliah yang telah ditentukan
pengajarnya, dengan panjang matriks = banyak mata kuliah. Bentuk
matriks satu dimensi mata kuliah ditunjukkan pada Tabel 3.2.
Tabel 3.2 Matriks Kelas Mata Kuliah
0 1 … N
Kelas Mata Kuliah KM1 KM2 … KMN
c. Ruang Kuliah
Representasi yang menginformasikan waktu ruang yang dapat
digunakan untuk kuliah. Representasi ini dinotasikan R[i,j] dengan
i=hari dan j = jam, dengan panjang baris (Hari[N]) = maksimum hari
perminggu dan panjang kolom (Jam[N]) = maksimum jam perhari.
Bentuk matriks ruang available ditunjukkan pada Tabel 3.3.
Tabel 3.3 Matriks RuangAvailable
3. Dari constraints yang ada dapat ditunjukkan matriks penyelesaian
penjadwalan kuliah dengan bentuk matriks 3 dimensi, dengan algoritma
sebagai berikut (Gambar 3.1)
For tiap ruang;
For tiap hari;
For tiap jam;
Tempatkan kelas mata kuliahavailable
Gambar 3.1 Algoritma Penyelesaian Jadwal Kuliah
3.1.2.2 EvaluasiPenalty Kromosom
Setiap kromosom pada populasi dievaluasi untuk diketahui nilai penalty (nilai
total pelanggaran). Fungsipenalty disusun berdasarkan prioritas yang dihadapi.
Pada proses evaluasi ini digunakan model seleksi Roulette Wheel Selection,
dengan mengacu nilaifitness ataupenalty.
Proses seleksi yang dilakukan yaitu perhitungan banyaknya pelanggaran
(penalty). Adapun proses seleksi perhitungan pelanggaran tersebut sebagai
berikut:
1. Banyaknya kelas yang bentrok.
2. Kapasitas ruangan yang terlalu kecil dengan jumlah mahasiswa.
3. Tipe ruangan yang tidak sesuai dengan tipe kuliah.
4. Duplikat dosen mengajar.
5. Waktu perkuliahan tertentunot available.
6. Dosen ditempatkan pada waktu dosennot available
7. Kelas teori ditempatkan tidak berturut-turut.
8. Kelas praktikum ditempatkan tidak berturut-turut.
Berdasarkan hal diatas dapat dihitung total nilaipenalty dengan rumus,
penalty = total cost pelanggaran x konstanta beban pelanggaran tersebut. Pada
Tabel 3.4 BobotPenalty Setiap GolonganPenalty
GolPenalty BobotPenalty
Berat 10
Sedang 8
Ringan 1
Dari seluruh prioritas dan bobot penalty diatas, bobot penalty dari
masing-masing prioritas dapat dilihat pada Tabel 3.5
Tabel 3.5 BobotPenalty Setiap Prioritas
Penalty Gol Penalty
Duplikat kelas mahasiswa Berat
Ruang terlalu kecil Berat
Tipe ruangan tidak sesuai tipe kuliah Berat
Duplikat dosen Berat
DosenNot Available Sedang
WaktuNot Available Berat
Durasi teori tidak berturut-turut Ringan
Durasi praktek tidak berturut-turut Berat
3.1.2.3 Proses Regenerasi
Proses regenerasi adalah proses perubahan gen-gen generasi sekarang ke gen
generasi berikutnya. Proses regenerasi meliputi:
1. Persilangan (Crossover)
Proses yang dilakukan untuk melakukan penukaran bagian kromosom
yaitu dengan memilih gen dengan posisi dan panjang kromosom secara
random dalam satu kromosom, kemudian dilakukan penataan kembali
gen yang tidak terjadicrossover.
Proses persilangan yang digunakan dalam penelitian ini dengan tipaOne
2. Mutasi (Mutation)
Proses penukaran gen (mutasi) dalam kromosom yang dipilih dilakukan
secara random berdasarkan nilai probabilitas mutasinya. Proses mutasi
yang digunakan dalam penelitian ini dengan menggunakan tipe mutasi
biasa.
3.1.2.4 Pengujian
Proses algoritma genetik akan terjadi perulangan terus-menerus mulai dari awal
sampai proses regenerasi mencapai maksimum. Perulangan tersebut akan
berhenti, bila kriteria penghentian telah terpenuhi. Pada umumnya kriteria
penghentian ada 2 macam yaitu apabila nilai penalty = 0 atau sudah tidak ada
lagi pelanggaran dan banyaknya generasi telah mencapai nilai maksimum.
Dalam penelitian ini digunakan 2 macam kriteria tersebut dalam
melakukan penghentian proses regenerasi. Pertimbangan digunakan 2 kriteria
tersebut adalah apabila pada proses regenerasi tertentu telah mencapai nilai
penalty = 0 maka sistem tidak perlu melakukan proses regenerasi sampai
mencapai generasi maksimum karena individu terbaik telah ditemukan,
sedangkan bila tidak mencapai nilai penalty = 0 maka proses regenerasi akan
mencapai generasi maksimum dengan memilih individu yang mempunyai nilai
penalty paling rendah dan ini merupakan individu terbaik dari individu yang
berbentuk dari generasi-generasi yang ada.
3.1.3Mapping Algoritma Genetik
Pada proses dalam algoritma genetik dalam penelitian ini adalah
Algoritma yang digunakan dalam menyelesaikan permasalahan
penjadwalan kuliah dapat dilihat pada Gambar 3.2, dengan tujuan utama tetap
dengan algoritma genetik.
Menentukan nilai konstanta yang diperlukan……….(1)
Inisialisasi database………(2)
Inisialisasi penyelesaian dalam bentukpointer………..(3)
While regenerasi < max_generasi {
Disposepointer cost_Penalty paling besar………(4)
Hitung nilai rata-rataPenalty………...(5)
While jml_populasi < max_populasi {
Regenerasi……….(6)
}
If cost_Penalty < 1 {
Regenerasi:=max_regenerasi-1………...(7)
}
Inc(regenerasi);
}
Cetak_penyelesaian
Gambar 3.2 Algoritma Penjadwalan Kuliah
Deskripsi Gambar 3.2:
Ada beberapa asumsi penulis dalam istilah-istilah dalam algoritma genetik:
1. Gen : informasi constraints seperti: ruang, hari, jam, mata kuliah, kelas
mahasiswa, dosen beserta seluruh atributnya.
2. Kromosom : mewakili kelas mata kuliah yang telah ditempatkan yang
digambarkan pada matriks 3 dimensi (Matriks[ruang][hari][jam]).
3. Individu : satu individu mewakili seluruh kelas mata kuliah yang terjadi
pada tahun ajaran tersebut, yang memiliki berbagai variasi. Digambarkan
Berikut ini penjelasan Algoritma Penjadwalan Kuliah
1. Menetukan nilai konstanta yang diperlukan
Berikut ini konstanta yang diperlukan:
a. KonstantaPenalty:
Untuk menetukan prioritas Hard Constraints dan Soft Constraints.
Nilai konstanta dapat dilihat pada Sub Bab 3.1.2.2, Tabel 3.4 dan
Tabel 3.5.
b. Konstanta pendukung
1. Max_populasi : Jumlah maksimum populasi dalam satu
generasi.
2. Crossover_rate : Probabilitas persilangan.
3. Mutation_rate : Probabilitas mutasi.
4. Max_regenerasi : Jumlah maksimum regenerasi.
2. Inisialisasi database
Pada prosedur ini merupakan awal pembentukan populasi, dengan
mengambil seluruh gen/ informasi dalam database yang terdiri atas mata
kuliah, ruang, kelas mahasiswa, waktu dosen dengan semua atributnya,
dapat dilihat pada Sub Bab 3.1.2.1 Membangun Populasi Awal.
3. Inisialisasi penyelesaian dalam bentukpointer
Penyelesaian dari setiap generasi akan disimpan dalam pointer dengan
bentuk Linked List. Kemudian digunakan sebagai pembanding antar
generasi, untuk memilih individu yang terbaik.
Gambar 3.3 IlustrasiPointer Penjadwalan Kuliah
Penjelasan Gambar 3.3:
a. Pertama kali di deklarasikan alokasi memori pointer new
(Temp_pointer).
b. Nilai satu cell pointer berisi informasi seluruh ruang, hari dan jam
yang digunakan kuliah dalam satu semester tahun ajaran, dengan
seluruh informasi dalam bentuk matriks 3 dimensi yang masih
bernilai nol (ruang dan waktu belum ditempatkan mata kuliah
tertentu). Proses ini merupakan proses inisialisasipointer.
c. Sebelum masuk kepointer (c) setelahpointer (b) terdapat
prosedur-prosedur yang dilalui yaitu:
1. Penempatan tiap ruang, hari, jam terhadap mata kuliah tertentu
beserta durasi mata kuliah tersebut.
2. Dihitung nilaipenalty (pelanggaraan) tiap kromosom.
3. Setiap kromosom beserta nilaiPenaltynya dimasukkan ke dalam
4. Pada awal generasi dialokasikan memori pointer Linked Listkepala
dan bagian ekornya new(first) dan new(last), dengan kedua nilai
pointer yang sama.
5. Pada generasi selanjutnya digambarkan pada pointer bentuk Linked
List yang sebenarnya dengan prinsip LIFO (Last In First Out), tetapi
pointer tersebut akan diurutkan berdasarkan nilai Penaltynya mulai
dari kepala dengan nilai total Penalty paling kecil samapi bagian
ekor dengan nilai Penalty terbesar.Linked List tersebut dapat dilihat
pada poin (1) dan (2).
4. Dispose pointer dengancost Penalty terbesar (proses seleksi alam)
Pada prosedur ini dilakukan untuk menghilangkan individu dengan
penalty terbesar dari tiap generasi. Fungsi dari prosedur ini untuk
menghemat memori pointer agar tidak terlalu banyak alokasi memori
pointer dan ini merupakan proses seleksi alam, dengan individu yang
kurang bagus akan dihapus dengan melihat nilaiPenaltynya.
Banyak individu yang dihilangkan dalam penelitian ini adalah 0,5 x
banyaknya individu tiap generasi.
5. Nilai rata-ratapenalty
Prosedur yang digunakan untuk menghitung rata-rata seluruh penalty
setelah ada individu yang dihilangkan. Dengan perhitungan:
(3.1)
Keterangan:
Ptot : Totalpenalty seluruh generasi
I : Jumlah individu
6. Regenerasi
Proses regenerasi bentuk pointer seperti pada point 3 inisialisasi
penyelesaian dalam bentuk pointer, yaitu pointer tetap diurutkan
berdasarkan penalty terkecil. Tetapi sebelum itu dilakukan proses
persilangan dan mutasi, serta memastikan jumlah kromosom tiap
individu.
tot
P
I
a. Proses Persilangan
Bentuk individu dalam proses persilangan dapat dimisalkan pada
pointer Gambar 3.4
Gambar 3.4 Persilangan Individu b. Proses Mutasi
Misal proses mutasi dapat dilihat padapointer Gambar 3.5
Gambar 3.5 Mutasi Individu
c. Memastikan Jumlah Kromosom Setiap Individu.
Pada proses persilangan dan mutasi sangat rentang adanya
kromosom yang hilang karena digantikan kromosom lain maupun
kelebihan kromosom (terbentuk kromosom yang kembar). Untuk
mengatasi hal tersebut diperlukan proses penyeleksian kembali tiap
kromosom dalam individu agar jumlah kromosom sesuai seperti
jumlah kromosom pada populasi awal.
d. Individu-individu yang terbentuk ke dalam pointer utama sesuai
dengan nilaipenalty masing-masing individu.
7. Melihat Kondisi
Proses setelah regenerasi yaitu mengecek total penalty apakah sudah
mencapaipenalty = 0 atau belum, jika sudah mencapai akan keluar dari
perulangan, sehingga tidak perlu sampai generasi maksimum, jika tidak
3.1.4 Aliran Informasi
Hal yang perlu dilakukan sebelum mendesain sebuah sistem aplikasi diperlukan
penggambaran proses-proses yang terjadi dalam sistem yang dapat digambarkan
pada Context Diagram dan lebih didetailkan pada Data Flow Diagram (DFD).
Sehingga dengan dua macam bagan tersebut dapat menggambarkan secara jelas
aliran informasi dalam proses penjadwalan kuliah.
3.1.4.1Context Diagram
Context diagram sistem penjadwalan kuliah dapat dilihat pada gambar di bawah
ini (Gambar 3.6):
Gambar 3.6 Context Diagram
3.1.4.2Data Flow Diagram (DFD) Level 0
DFD Level 0 pada sistem penjadwalan kuliah dapat dilihat pada gambar di
Gambar 3.7 Data Flow Diagram (DFD) Level 0
3.1.4.3 Data Flow Diagram (DFD) Level 1
Gambar 3.8 DFD Level 1 Proses Pendataan Kelas dan Jurusan
Dari Proses 2: Pendataan Kurikulum
Gambar 3.9 DFD Level 1 Proses 2 Pendataan Kurikulum
Gambar 3.10 DFD Level 1 Proses 3 Waktu Perkuliahan
Dari Proses 4: Pendataan Ruang Kuliah
Gambar 3.11 DFD Level 1 Proses 4 Pendataan Ruang Kuliah
Gambar 3.12 DFD Level 1 Proses 5 Pendataan Pengajar
Dari Proses 6: Penyusunan Jadwal Kuliah
3.1.5 Pemodelan Data
Pemodelan data merupakan bagian yang menggambarkan perancangan dari
sudut sumber data yang digunakan untuk membuat tabel database yang
ternormalisasi. Pemodelan data ini terdapat 2 penggambaran yaitu Entity
Relationship Diagram (ERD) yaitu menggambarkan hubungan relasi
antarentitas sebagai langkah agar tabel ternormalisasi pada Gambar 3.14 dan
skema diagram yaitu menggambarkan relasi antara tabel yang telah normal pada
3.2 Perancangan
3.2.1 Lingkungan Implementasi
Sistem ini dibangun dengan didukung perangkat keras dan perangkat lunak yang
meliputi:
1. Perangkat Keras
Spesifikasi perangkat keras yang digunakan dalam penelitian ini sebagai
berikut:
a. Processor Intel Pentium Celeron 1,6 GHz, Package Socket 478
mPGA.
b. Memory DDR2RAM 512 MB sebanyak 1 Keping.
c. Hardisk 80 GB.
d. VGA 64 MB.
e. Monitor 14 Inch, Keyboard, Mouse.
2. Perangkat Lunak
a. Sistem Operasi Microsoft Windows XP SP2 dan Linux Ubuntu 8.04.
b. JDK version 1.6.0_13 for Java 2 Standard Edition.
c. JCreator Pro LE 4.00.028 dan Netbeans 6.5
d. MySQL Server Versi 5.1.30/ XAMPP-linux-1.7.
3.2.2 Perancangan Antarmuka
Penyusunan program penjadwalan kuliiah secara umum disusun berdasarkan
urutan proses/ kerangka pemikiran yang digambarkan pada diagram alir proses
Gambar 3.16 dan struktur program dapat dilihat pada hirarki program Gambar
Gambar 3.16 Diagram Alir Program Simulasi Penjadwalan Kuliah
Hirarki Program
Gambaran umum penggunaan program dapat digambarkan pada flowchart
Gambar 3.17Flowchart Program Simulasi Penjadwalan Kuliah
3.2.3 Perancangan Proses
Berisi deskripsi yang menjelaskan tentang system simulasi penjadwalan kuliah.
Perancangan proses ini mengacu pada DFD Level 0 dan Level 1. Deskripsi
Proses 1: Pendataan Jurusan dan Kelas
Tabel 3.6 Deskripsi Proses Pendataan Jurusan Nama Proses Pendataan Jurusan (Proses 1.1)
Input ke kd_jurusan, nama
Output ke - Status OK
- Proses input kelas (Proses 1.2)
- Penyusunan jadwal kuliah (Proses 6.1)
File Tersimpan Kelas
Deskripsi Input data jurusan
Tabel 3.7 Deskripsi Proses Pendataan Kelas Nama Proses Pendataan Kelas (Proses 1.2)
Input ke kd_kelas, kd_jurusan, kelas, angkatan,
kapasitas
Output ke - Status OK
- Proses Pendataan Kurikulum (Proses 2)
File Tersimpan Kelas
Deskripsi Input data kelas
Proses 2: Pendataan Kurikulum
Tabel 3.8 Deskripsi Proses Setting Tahun Jadwal Nama Proses Setting Tahun Jadwal (Proses 2.1)
Input ke Id, tahun
Output ke - Status OK
File Tersimpan Tahun
Deskripsi Untuk menamai tabel jadwalGA sesuai tahun
Tabel 3.9 Deskripsi Proses Penentuan Durasi Kuliah Nama Proses Penetuan Durasi Kuliah PerSKS (Proses 2.2)
Input ke Tipe, durasi_perSKS
Output ke - Proses pendataan mata kuliah
File Tersimpan SKS
Deskripsi Untuk menentukan durasi perkuliahan 1 SKS
teori dan praktek
Tabel 3.10 Deskripsi Proses Pendataan Mata Kuliah Nama Proses Pendataan mata kuliah (Proses 2.3)
Input ke kd_mk, nama, semester, TotSKS, TotDurasi
kd_mk, kd_dtmk, tipe, SKS, durasi
Output ke - Status OK
- Proses penempatan mata kuliah (Proses
2.4)
- Proses penyusunan jadwal kuliah
(Proses 6)
File Tersimpan Mata kuliah, dt_mata kuliah
Deskripsi Input data mata kuliah baik tipe teori maupun
praktek.
Tabel 3.11 Deskripsi Proses Penempatan Mata Kuliah Nama Proses Penempatan mata kuliah dengan jurusan
(Proses 2.5)
Input ke kd_jurusan, kd_mk
Output ke - Status OK
- Proses pendataan pengajar (Proses 5)
File Tersimpan Kuliah
Deskripsi Menentukan kurikulum mata kuliah tiap
Proses 3: Waktu Perkuliahan
Tabel 3.12 Deskripsi Proses Penentuan Hari Kuliah Nama Proses Penentuan hari kuliah/ minggu (Proses 3.1)
Input ke kd_hari, nama
Output ke - Status OK
- Proses waktu tidak dapat kuliah (Proses
3.3)
- Proses pendataan pengajar (Proses 5)
- Proses Penyusunan jadwal kuliah
(proses 6)
File Tersimpan Hari
Deskripsi Input data hari perkuliahan dalam satu minggu.
Tabel 3.13 Deskripsi Proses Penentuan Jam Kuliah Nama Proses Penentuan jam kuliah/ hari (Proses 3.2)
Input ke kd_jam, awal, akhir
Output ke - Status OK
- Proses waktu tidak dapat kuliah (Proses
3.3)
- Proses pendataan pengajar (Proses 5)
- Proses Penyusunan jadwal kuliah
(proses 6)
File Tersimpan Jam
Deskripsi Input data jam perkuliahan dalam satu hari.
Tabel 3.14 Deskripsi Proses WaktuNot Available
Nama Proses Waktu tidak dapat dipakai kuliah (Proses 3.3)
Input ke kd_hari, kd_jam
Output ke - Status OK
File Tersimpan Not_hari
Proses 4: Pendataan Ruang Kuliah
Tabel 3.15 Deskripsi Proses Pendataan Ruang Kuliah Nama Proses Pendataan ruang kuliah (Proses 4.1)
Input ke kd_ruang, nama, tipe, kapasitas
Output ke - Status OK
- Proses ruang tidak bias dipakai (Proses
4.2)
- Proses Penyusunan jadwal kuliah
(proses 6)
File Tersimpan Ruang
Deskripsi Input data ruang perkuliahan.
Tabel 3.16 Deskripsi Proses Waktu RuangNot Available
Nama Proses Waktu ruang tidak dapat dipakai kuliah
(Proses 4.2)
Input ke kd_ruang, kd_hari, kd_jam
Output ke - Status OK
File Tersimpan Not_ruang
Deskripsi Input data waktu tidak bias dipakai kuliah.
Proses 5: Pendataan Pengajar
Tabel 3.17 Deskripsi Proses Pendataan Dosen Nama Proses Pendataan dosen (Proses 5.1)
Input ke kd_dosen, nip, nama, jk_dosen, alamat, email,
phone
Output ke - Status OK
- Proses penempatan dosen (Proses 5.2)
- Proses waktu dosen tidak bias mengajar
(Proses 5.3)
File Tersimpan Dosen
Tabel 3.18 Deskripsi Proses Penempatan Dosen Nama Proses Penempatan dosen (Proses 5.2)
Input ke kd_dosen, kd_mk
Output ke - Status OK
File Tersimpan Pengajar
Deskripsi Penempatan dosen mengajar mata kuliah
tertentu.
Tabel 3.19 Deskripsi Proses Waktu Dosen Not Available Nama Proses Waktu dosen tidak bias mengajar (Proses 5.3)
Input ke kd_dosen, kd_hari, kd_jam
Output ke - Status OK
File Tersimpan Not_dosen
Deskripsi Input data dosen tidak bias mengajar.
Proses 6: Penyusunan Mata Kuliah
Tabel 3.20 Deskripsi Proses Penyusunan Jadwal Nama Proses Penyusunan jadwal kuliah (Proses 6)
Input ke kd_dtmk, kd_kelas, kd_ruang, kd_hari, kd_jam
Output ke - Status OK
- Proses jadwal kuliah (Proses 7)
- Proses jadwal mengajar (Proses 8)
File Tersimpan JadwalGA<semester>
Deskripsi Proses penyusunan jadwal kuliah, dengan file
tersimpa <semester> sesuai seting input