HEURISTIK (PENGGABUNGAN METODE ALGORITMA GENETIK DAN TABU SEARCH)
TUGAS AKHIR
Disusun Oleh :
RIO PRAYOGA SUPRAYANA NPM. 06 34 015 019
J URUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL ″ VETERAN″ J AWA TIMUR
Judul : Rancang Bangun Perangkat Lunak Penjadwalan Kuliah Menggunakan
Metode Meta-Heuristik (Penggabungan Metode Algoritma Genetik
dan Tabu Search)
Dosen Pembimbing 1 : Basuki Rahmat, S.Si, MT
Dosen Pembimbing 2 : Delta Ardy Prima, ST
ABSTRAK
Penjadwalan kegiatan perkuliahan dalam sebuah Perguruan Tinggi / Kampus adalah
suatu hal yang rumit dan sering mengalami kesulitan, yang menyebabkan pengalokasian mata
kuliah, dosen, dan ruangan sering bentrok dengan jadwal mata kuliah, dosen, dan ruangan
yang lain dalam suatu periode jadwal kuliah. Oleh karena itu dibutuhkan suatu sistem dan
metode optimasi yang dapat diterapkan untuk menyusun sebuah jadwal mata kuliah.
Dalam Algoritma Genetika, populasi awal dibangun secara acak, sedangkan pada
populasi berikutnya merupakan hasil evolusi kromosom-kromosom melalui interasi yang
disebut dengan istilah generasi. Setiap generasi, kromosom akan melalui proses evaluasi yang
akan menghasilkan nilai fitness. Nilai fitness suatu kromosom akan menunjukan kualitas tiap
kromosom dalam populasi tersebut.(Kusumadewi & Purnomo, 2005). Sedangkan Prinsip
dasar Tabu Search adalah untuk mengikuti kemampuan local search bertemu sebuah lokal
optimum dengan cara membiarkan nonimproving bergerak kembali ke solusi sebelumnya
yang dicegah dengan menggunakan memori yang disebut dengan Tabu List.
Dengan adanya perangkat lunak penjadwalan kuliah yang menggunakan
penggabungan metode Algoritma Genetika dan Tabu Search, aplikasi ini mampu membuat
sebuah jadwal yang meminimalisir jumlah bentrok pada sisi mahasiswa maupun dosen, baik
pada jam kuliah maupun hari.
ABSTRAK ... i
UCAPAN TERIMA KASIH ... ii
DAFTAR ISI ...iii
DAFTAR GAMBAR ... vi
DAFTAR TABEL ... vii
BAB I PENDAHULUAN
1.1
Latar Belakang ... 1
1.2
Perumusan Masalah ... 3
1.3
Batasan Masalah ... 3
1.4
Tujuan ... 4
1.5
Manfaat ... 4
1.6
Metodologi Pembuatan Tugas Akhir ... 5
1.7
Sistematika Penulisan ... 6
BAB II TINJ AUAN PUSTAKA
2.1
Penjadwalan ... 5
2.2
Konsep Sistem Kredit Semester ... 11
2.2.1 Nilai Satuan Kredit Semester Perkuliahan ... 12
2.2.2 Nilai Satuan Kredit Semester Praktikum ... 13
2.3
Algoritma Genetika ... 13
2.3.1 Struktur Umum Algoritma Genetika ... 14
2.3.2 Komponen - Komponen Algoritma Genetika ... 15
2.4
Tabu Search... 21
2.5
Konsep Dasar Sistem ... 24
2.5.4 Operasi ... 26
2.6
Permodelan Data ... 26
2.6.1 Entity Relationship Diagram (ERD) ... 26
2.6.2 Entitas dan Atribut ... 26
2.6.3 Relasi ... 27
2.6.4 Data Flow Diagram (DFD) ... 28
2.7
Visual Basic .NET 2010 ... 29
2.8
Microsoft Access ... 30
BAB III ANALISIS DAN PERANCANGAN SISTEM
3.1
Analisis Sistem ... 32
3.2
Perancangan Sistem ... 33
3.2.1 Pengolahan Data Menggunakan Penggabungan Metode Algoritma
Genetik dan Tabu Search ... 33
3.2.2 Pengkodean Kromosom dan Pembentukan Populasi Awal ... 34
3.2.3 Flowchart ... 36
3.2.4 Klasifikasi Constraint ... 38
3.2.4.1 Hard Constraint ... 38
3.2.4.2 Soft Constraint ... 38
3.2.5 Workflow ... 40
3.2.6 Aturan-aturan Terjadi Konflik ... 41
3.2.7 Context Diagram ... 42
3.2.8 DFD Level 1 ... 43
3.3
Perancangan Database... 45
3.3.1 Perancangan Data ... 45
3.3.2 Perancangan Tabel... 47
4.1.1 Perangkat Sistem ... 57
4.2
Implementasi Aplikasi ... 58
4.2.1 Tampilan Login ... 59
4.2.2 Tampilan Utama ... 59
4.2.3 Form Menu Data ... 60
4.2.3.1 Form Sub Menu Data Dosen ... 60
4.2.3.2 Form Sub Menu Mata Kuliah ... 61
4.2.3.3 Form Sub Menu Data Ruang ... 62
4.2.3.4 Form Sub Menu Data Kelas Paralel ... 63
4.2.3.5 Form Data Kompetensi Dosen ... 64
4.2.4 Form Sub Menu Jadwal
... 65
4.2.4.1 Form Sub Menu Genetic Algorithm Proccess and Tabu Search ... 65
4.2.4.2 Form Sub Menu Data Jadwal ... 67
4.2.5 Form Sub Menu User
... 67
BAB V UJ I COBA DAN EVALUASI
5.1
Data Uji Coba Pada Sistem Aplikasi
... 69
5.2
Uji Coba Pada Sistem Aplikasi Penjadwalan Kuliah ... 72
5.3
Analisa Hasil Uji Coba ... 73
BAB Vi PENUTUP
6.1
Data Uji Coba Pada Sistem Aplikasi
... 75
6.2
Uji Coba Pada Sistem Aplikasi Penjadwalan Kuliah ... 76
Gambar 2.1 Contoh Roulette Wheel Selection dari data pada tabel 2.4 ... 18
Gambar 2.2 Ilustrasi Order Based Crossover ... 19
Gambar 2.3 Ilustrasi one-cut-point crossover ... 20
Gambar 2.4 Ilustrasi One-Cut-Point Crossover Reeves ... 20
Gambar 2.5 Contoh tabel pegawai ... 30
Gambar 3.1 Contoh tabel pegawai ... 35
Gambar 3.2 Contoh tabel pegawai ... 36
Gambar 3.3 Flowchart pengolahan data dengan menggunakan penggabungan
metode Algoritma Genetik dan Tabu Search ... 37
Gambar 3.4 Workflow Penjadwalan Kuliah ... 40
Gambar 3.5 Context Diagram ... 42
Gambar 3.6 DFD Level 0 ... 43
Gambar 3.7 Conceptual Data Model (CDM) ... 46
Gambar 3.8 Physical Data Model (PDM) ... 47
Gambar 3.9 Form Data Dosen ... 53
Gambar 3.10 Form Data Mata Kuliah ... 54
Gambar 3.11 Form Data Ruang ... 55
Gambar 3.12 Form Kelas Paralel ... 56
Gambar 4.1 Tampilan Login ... 59
Gambar 4.2 Tampilan Utama ... 60
Gambar 4.3 Form Data Dosen ... 61
Gambar 4.4 Form Data Mata Kuliah... 62
Gambar 4.5 Form Data Ruang ... 63
Gambar 4.6 Form Data Kelas Paralel ... 64
Gambar 4.7 Form Data Kompetensi Dosen ... 65
Gambar 4.8 Form Sub Menu Genetic Algorithm and Tabu Search Proccess 66
Gambar 4.9 Form Sub Menu Data Jadwal ... 67
Gambar 4.10 Form Sub Menu User ... 68
Tabel 2.1 Contoh Binary Encoding ... 15
Tabel 2.2 Contoh Permutation Encoding ... 16
Tabel 2.3 Contoh Value Encoding ... 16
Tabel 2.4 Kromosom dengan Nilai Fitnessnya ... 18
Tabel 3.1 Tabel Sebaran Mata Kuliah ... 35
Tabel 3.2 Tabel User ... 46
Tabel 3.3 Tabel Dosen ... 46
Tabel 3.4 Tabel Matkul ... 46
Tabel 3.5 Tabel Kelas Paralel ... 47
Tabel 3.6 Tabel ruang... 47
Tabel 3.7 Tabel waktu ... 48
Tabel 3.8 Tabel jadwal ... 48
Tabel 3.9 Tabel jadwal_detail ... 49
Tabel 3.10 Tabel Dosen_Pengampu ... 49
Tabel 5.1 Tabel Mata Kuliah ... 70
Tabel 5.2 Tabel Dosen Pengajar ... 71
Tabel 5.3 Tabel Ruang Perkuliahan ... 72
PENDAHULUAN
1.1 Latar Belakang
Di era modern seperti sekarang bukan hal asing bila segala sesuatu
dilakukan dengan menggunakan bantuan komputer. Kemajuan teknologi yang
semakin meningkat, membuktikan bahwa kini teknologi komputer telah menjadi
kebutuhan pokok dalam kehidupan manusia. Hal tersebut diatas tentunya dapat
ditunjang dengan perkembangan teknologi informasi yang telah berkembang
dengan pesat. Salah satunya adalah dengan pemanfaatan bahasa pemrograman
komputer untuk membuat sebuah software dimana informasi yang didapatkan
akan dimanipulasi secara cepat, tepat, dan akurat. Tentunya hal tersebut juga akan
mengubah kebiasaan pengelolaan data secara manual yang membutuhkan waktu
cukup lama. Karena itu dibutuhkan sistem yang terkomputerisasi, yaitu dengan
cara mengubah sistem manual ke sistem komputerisasi. Sistem komputerisasi
tentunya akan lebih efisien, ini dapat dilihat dari proses kecepatan, ketepatan, dan
sebagainya.
Penjadwalan kegiatan kuliah dalam suatu Perguruan Tinggi adalah suatu
hal yang rumit dan sering mengalami kesulitan. Hal ini disebabkan beberapa
faktor yang berkaitan, yang harus dipertimbangkan. Faktor tersebut antara lain,
jumlah mata kuliah yang ada, jumlah dosen pengajar, jumlah ruangan, dan jadwal
dimana dosen yang bersangkutan tidak bisa mengajar yang sering menyebabkan
munculnya masalah penjadwalan mata kuliah seperti adanya konflik
sering bentrok dengan jadwal mata kuliah, dosen, serta ruangan yang lain dalam
satu periode jadwal kuliah. Distribusi jadwal perkuliahan juga diharapkan dapat
merata tiap harinya untuk setiap kelas.
Permasalahan seperti yang telah diuraikan diatas sering disebut dengan
University Timetabling Problems (UTP). Selain dilihat dari sisi mahasiswa,
permasalahan ini juga harus dilihat dari sisi dosen, yaitu kemungkinan dosen akan
mengajar lebih dari satu mata kuliah yang ada, sebab ada kemungkinan jumlah
mata kuliah dan jumlah dosen tidak sebanding, sehingga harus dipikirkan juga
solusi agar dosen tidak mengajar dua mata kuliah yang berbeda pada hari dan jam
yang sama. Selain itu, harus dipertimbangkan juga ketersediaan kelas sehinga
kegiatan belajar dapat dilaksanakan.
Disamping aspek-aspek diatas, dalam penyusunan jadwal kuliah ini juga
terdapat banyak sekali kemungkinan yang selayaknya dicoba untuk menemukan
penjadwalan terbaik. Karena itu, dibutuhkan metode optimasi yang dapat
diterapkan untuk mengerjakan penjadwalan mata kuliah. Terdapat banyak metode
heuristik yang dapat digunakan untuk menyelesaikan permasalahan penjadwalan,
salah satu metode yang dapat digunakan untuk menyelesaikan permasalahan
diatas adalah Metode Algoritma Genetik dan Metode Tabu Search.
Hal itulah yang mendorong penulis untuk merancang tugas akhir dengan
judul, Rancang Bangun Perangkat Lunak Penjadwalan Perkuliahan
1.2 Per umusan Masalah
Berdasarkan latar belakang yang telah dijelaskan diatas, maka dapat
dirumuskan beberapa masalah dalam Tugas Akhir ini, yaitu
1. Bagaimana mencari optimasi penjadwalan perkuliahan dengan
menggabungkan Metode Algoritma Genetik dan Metode Tabu Search
2. Bagaimana membuat sistem penjadwalan perkuliahan yang dapat
memecahkan masalah penjadwalan kuliah dengan kombinasi terbaik untuk
pasangan mata kuliah dan dosen pengajar secara keseluruhan.
3. Bagaimana menjadwalkan jam perkuliahan agar tidak terdapat jadwal yang
bentrok pada sisi mahasiswa serta ketersediaan ruang yang cukup dan
sesuai.
4. Bagaimana merancang sistem dengan antar muka keluaran dan antar muka
masukan agar lebih mudah dimengerti oleh user.
1.3 Batasan Masalah
Pada pembuatan aplikasi ini perlu didefinisikan batasan masalah
mengenai sejauh mana pembuatan aplikasi ini akan dikerjakan. Beberapa batasan
masalah tersebut antara lain:
1. Masalah yang akan dibahas hanya untuk penyusunan penjadwalan
perkuliahan di jurusan Teknik Informatika, Fakultas Teknologi Industri,
UPN “VETERAN” Jawa Timur.
2. Sistem hanya menangani penjadwalan kelas paralel malam.
4. Sistem hanya menggunakan penggabungan dua Metode Heuristik, yaitu
Metode Algoritma Genetik dan Metode Tabu Search.
5. Sistem tidak menangani optimasi pemakaian waktu (efektifitas) dalam
penjadwalan kuliah.
6. Adanya mata kuliah dengan ruangan khusus (Praktikum)
7. Durasi kuliah antara praktek dan teori yang berbeda per sks- nya.
8. Adanya batas hari dalam satu minggu.
9. Adanya batas jumlah mahasiswa dalam satu ruangan kelas.
10.Sistem penjadwalan perkuliahan ini berbasis desktop yang menggunakan
Microsoft Visual Basic .NET 2010 dan Microsoft Access 2010
1.4 Tujuan
Tujuan dari Tugas Akhir ini adalah untuk menghasilkan sebuah
perangkat lunak penjadwalan perkuliahan yang nantinya akan memudahkan
bagian pengajaran ataupun Kepala Jurusan Teknik Informatika dalam membuat
jadwal perkuliahan di pergantian semester ataupun pada tahun ajaran baru.
1.5 Manfaat
Adanya tugas akhir ini diharapkan dapat memberikan manfaat bagi
pihak kampus Universitas Pembangunan Nasional “Veteran” Jawa Timur
khususnya di Fakultas Teknologi Industri, Jurusan Teknik Informatika dalam
1.6 Metodologi Pembuatan Tugas Ak hir
Dalam pembuatan Tugas Akhir kali ini, penulis akan menjelaskan
tentang metode yang digunakan selama menyusun dan membuat Tugas Akhir ini.
a. Studi literatur.
Mengumpulkan referensi baik dari internet, maupun sumber-sumber yang
lainnya mengenai penjadwalan dengan menggabungkan Metode Algoritma
Genetk dan Metode Tabu Search serta optimasi-optimasi yang telah ada
sebagai tambahan referensi Tugas Akhir ini.
b. Analisa dan Perancangan Aplikasi.
Menganalisa dan merancang sebuah perangkat lunak penjadwalan
perkuliahan menggunakan metode meta-heuristk, yaitu dengan
menggabungkan Metode Algoritma Genetik dan Metode Tabu Search dalam
lingkungan kampus UPN ″Veteran″ Jawa Timur khususnya di Fakultas
Teknologi Industri, Jurusan Teknik Informatika.
c. Pembuatan Aplikasi.
Pada tahap ini merupakan tahap yang paling banyak memerlukan waktu
karena model dan rancangan aplikasi yang telah di buat di
implementasikan dengan menggunakan bahasa pemrograman Visual Basic
.NET 2008.
d. Uji coba dan evaluasi aplikasi.
Pada tahap ini setelah aplikasi selesai dibuat maka dilakukan pengujian
aplikasi untuk mengetahui apakah aplikasi tersebut telah bekerja dengan
e. Penyusunan Buku Tugas Akhir.
Pada tahap ini merupakan tahap terakhir dari pengerjaan Tugas Akhir. Buku
ini disusun sebagai laporan dari seluruh proses pengerjaan Tugas Akhir. Dari
penyusunan buku ini diharapkan dapat memudahkan pembaca yang ingin
menyempurnakan dan mengembangkan aplikasi lebih lanjut.
f. Pembuatan Kesimpulan.
Pada tahap ini dalam bagian akhir pembuatan Tugas Akhir. Dibuat
kesimpulan dan saran dari hasil pembuatan aplikasi yang diperoleh sesuai
dengan dasar teori yang mendukung dalam pembuatan aplikasi tersebut yang
telah dikerjakan secara keseluruhan.
1.7 Sistematika Penulisan
Pada laporan Tugas Akhir ini akan menjelaskan tentang pembuatan
Perangkat Lunak Penjadwalan Perkuliahan Menggunakan Metode Meta-Heuristik
(Penggabungan Metode Algoritma Genetik dan Tabu Search ). Agar lebih
memahami materi, laporan Tugas Akhir ini dibagi menjadi enam bab yang
dilengkapi dengan penjelasan langkah-langkah dan ilustrasinya.
BAB I PENDAHULUAN
Bab ini akan menjelaskan tentang Latar Belakang, Perumusan
Masalah, Batasan Masalah, Tujuan Penulisan, Manfaat, Metodologi
BAB II TINJ AUAN PUSTAKA
Bab ini menjelaskan tentang dasar teori yang berkaitan dengan
Metode Algoritma Genetik dan Metode Tabu Search yang digunakan
sebagai penunjang serta referensi dalam pembuatan laporan Tugas
Akhir ini.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Dalam bab ini dijelaskan tentang analisis dan perancangan sistem
informasi, yang antara lain berisi tentang analisis aplikasi yang akan
dibuat. Dalam bab ini juga akan dijelaskan semua kebutuhan yang
diperlukan dalam membuat Perangkat Lunak Penjadwalan
Perkuliahan Menggunakan metode Meta-Heuristik (penggabungan
metode Algoritma Genetik dan metode Tabu Search).
BAB IV IMPLEMENTASI SISTEM
Pada bab ini akan membahas tentang implementasi berdasarkan
konsep perancangan yang ada pada BAB III beserta penjelasan
tentang kebutuhan sistem supaya aplikasi yang dikerjakan sesuai
dengan tujuan dari penulisan Tugas Akhir.
BAB V UJ I COBA DAN ANALISIS SISTEM
Bab ini menjelaskan tentang pengujian yang dilakukan untuk
mengetahui apakah aplikasi yang dibuat bisa bekerja sesuai dengan
BAB VI PENUTUP
Bab ini akan menjelaskan tentang kesimpulan dari keseluruhan isi dari
laporan Tugas Akhir serta Saran yang disampaikan penulis untuk
pengembangan aplikasi yang ada demi kesempurnaan aplikasi yang
lebih baik.
DAFTAR PUSTAKA
Pada bagian ini akan dipaparkan tentang sumber-sumber literatur,
tutorial, buku maupun situs-situs yang digunakan dalam pembuatan
TINJ AUAN PUSTAKA
2.1 Penjadwalan
Jadwal adalah daftar output (tabel kegiatan) atau rencana kegiatan yang
harus dihasilkan dalam jangka waktu tertentu. Biasanya disusun menurut urutan
prioritas dengan pembagian waktu pelaksanaan yang terperinci. Sedangkan
penjadwalan merupakan suatu proses pembuatan atau cara menjadwalkan suatu
data menjadi sebuah jadwal.
Menurut Marthon, 1993. pendekatan terhadap metode penjadwalan
secara garis besar dapat dibagi sebagai berikut:
1. Penjadwalan dilakukan secara manual
Keuntungan dari penjadwalan yang dilakukan secara manual adalah
sebagai berikut:
a. cepat dan akurat dalam memadukan berbagai keahlian manusia
dan prioritas.
b. Mudah mengadaptasi bila terjadi perubahan.
Kekurangan dari penjadwalan yang dilakukan secara manual adalah
sebagai berikut:
a. Kurang mampu menguji sejumlah besar prioritas atau keakuratan
mengetahui dampak dari aktifitas yang berbeda.
b. Meningkatkan kekomplekan sistem (data overload)
c. Kesulitan dalam menangani permasalahan yang komplek.
2. Penjadwalan yang dilakukan dengan simulasi komputer.
Kelebihan dari penjadwalan yang dilakukan dengan simulasi komputer
adalah sebagai berikut:
a. Mudah dilakukan perubahan
b. Menunjukkan pendekatan yang lebih alami dalam menyajikan
keahlian manusia
c. Hampir sama dengan sistem nyata
Kekurangan dari penjadwalan yang dilakukan dengan simulasi komputer
adalah sebagai berikut:
a. Hasil tidak selalu optimal
b. Metode pendekatan tidak selalu tepat
3. Penjadwalan yang dilakukan secara sistematis, antara lain sebagai
berikut:
a. Integer dan Dynamic Programming
Kelebihan metode Integer dan Dynamic Programming adalah
hasil lebih baik. Sedangkan kekurangannya adalah, perhitungan
membutuhkan waktu yang lama.
b. Neighbourhood Search
Kelebihan dari metode Neighbourhood Search antara lain:
1. Hasil yang didapat relatif cepat
2. Keakuratan hasil cukup tinggi
Sedangkan kekurangan dari metode Neighbourhood Search
1. Keoptimalan hasil merupakan lokal optimal, bukan global
optimal
2. Adanya sedikit intuisi dalam mencapai solusi
2.2 Konsep Sistem Kr edit Semester
Penyelenggaraan perkuliahan di Fakultas Teknologi Industri UPN
”Veteran” Jawa Timur, menggunakan Sistem Kredit Semester (SKS). Sistem
Kredit Semester ini mengatur perencanaan, penyusunan, dan pelaksanaan program
pendidikan dengan menggunakan kredit perkuliahan dan kredit praktikum sebagai
tolok ukur beban pendidikan. Setiap mata kuliah dan praktikum diberi bobot
dengan keperluan untuk memenuhi pencapaian tujuan pendidikan. Dalam sistem
kredit ini, beban studi yang harus diselesaikan oleh mahasiswa pada satu jenjang
studi dinyatakan dalam jumlah satuan kredit.
Sistem Kredit Semester adalah suatu sistem penyelenggaraan pendidikan
dengan menggunakan Satuan Kredit Semester (SKS) untuk menyatakan beban
studi mahasiswa, beban kerja dosen, pengalaman belajar, dan beban
penyelenggaraan program.
Semester adalah satuan waktu kegiatan yang terdiri dari 16 – 19 minggu
kuliah atau kegiatan terjadwal lainnya, berikut kegiatan iringannya, termasuk 2 –
3 minggu kegiatan penilaian atau ujian.
Satuan Kredit Semester adalah takaran penghargaan terhadap
pengalaman belajar yang diperoleh selama satu semester melalui kegiatan
kerja lapangan, yang masing–masing diiringi oleh sekitar 1 – 2 jam kegiatan
terstruktur dan 1 – 2 jam kegiatan mandiri.
2.2.1 Nilai Satuan Kr edit Semester Per kuliahan
Nilai Satuan Kredit Semester (1 SKS) untuk perkuliahan ditentukan
berdasarkan atas beban kegiatan yang meliputi 3 (tiga) macam kegiatan
perminggu selama satu semester sebagai berikut:
a. Mahasiswa
1. 60 Menit acara tatap muka terjadwal dengan tenaga pengajar
misalkan dalam bentuk kuliah.
2. 60 Menit acara kegiatan akademik terstruktur, yaitu kegiatan studi
yang tidak terjadwal tetapi direncanakan oleh tenaga pengajar,
misalnya dengan mengerjakan pekerjaan rumah ataupun
mengerjakan soal-soal.
3. 60 Menit acara kegiatan akademik mandiri, yaitu kegiatan yang
harus diselesaikan oleh mahasiswa secara mandiri untuk
mendalami, mempersiapkan, atau tujuan lain suatu tugas akademik
seperti misalnya, membaca buku akademik.
b. Tenaga Pengajar (Dosen)
1. 60 menit acara tatap muka terjadwal dengan mahasiswa.
2. 60 menit acara perencanaan dan evaluasi kegiatan akademik
terstruktur.
2.2.2 Nilai Satuan Kr edit Semester Pr aktikum
a. Satu Kredit Semester sama dengan penyelesaian kegiatan selama 4 –
5 jam seminggu atau 64 – 80 jam dalam satu semester.
b. Nilai Satuan Kredit Semester untuk praktikum di laboraturium
adalah beban tugas di laboraturium sebanyak 2 – 3 jam seminggu
selama satu semester.
2.3 Algor itma Genetika
Algoritma Genetika atau Genetic Algorithm merupakan evolusi atau
perkembangan dunia komputer dalam bidang kecerdasan buatan (Artificial
Intellegencia). Algoritma Genetika merupakan teknik pencarian dan optimasi
yang terinspirasi oleh prinsip dari genetika dan seleksi alam (teori evolusi
Darwin).
Algoritma Genetika adalah algoritma pencarian yang bardasarkan pada
mekanisme sistem natural yaitu genetik dan seleksi alam. Dalam aplikasi
algoritma genetik, variabel solusi dikodekan kedalam struktur string yang
merepresentasikan barisan gen, yang merupakan karakteristik dari solusi problem.
Berbeda dengan teknik pencarian konvensional, Algoritma Genetika bermula dari
himpunan solusi yang diperoleh secara acak. Himpunan ini disebut dengan
populasi, sedangkan setiap individu dalam populasi disebut kromosom yang
merupakan representasi dari solusi. (Syamsuddin, 2004)
Kromosom-kromosom berevolusi dalam suatu proses iteraksi yang
berkelanjutan yang disebut generasi. Pada setiap generasi, kromosom dievaluasi
Setelah beberapa generasi maka Algoritma Genetika akan konvergen pada
kromosom terbaik, yang diharapkan merupakan solusi optimal (Goldberg dalam
Syamsuddin, 1997).
2.3.1 Str uktur Umum Algor itma Genetika
Dalam Algoritma Genetika, populasi awal dibangun secara acak,
sedangkan pada populasi berikutnya merupakan hasil evolusi
kromosom-kromosom melalui interasi yang disebut dengan istilah generasi. Setiap generasi,
kromosom akan melalui proses evaluasi yang akan menghasilkan nilai fitness.
Nilai fitness suatu kromosom akan menunjukan kualitas tiap kromosom dalam
populasi tersebut.(Kusumadewi & Purnomo, 2005). Pada generasi berikutnya
biasa dikenal dengan istilah anak (offspring) yang terbentuk dari dua kromosom
generasi sekarang yang bertindak sebagai induk (parent) dengan menggunakan
operator penyilangan crossover dan mutasi. Setelah mengalami beberapa generasi,
maka algoritma ini akan konvergen ke kromosom terbaik yang merupakan solusi
optimal (Suyanto 2005).
Langkah-langkah sederhana dalam Algoritma Genetika :
a. Membangkitkan populasi awal. Populasi awal ini dibangkitkan secara
random sehingga diperoleh solusi awal. Populasi itu sendiri terdiri dari
sejumlah kromosom yang merepresentasikan solusi yang diinginkan.
b. Membentuk generasi baru. Dalam hal ini digunakan tiga operator
diantaranya operator reproduksi atau seleksi, tukar silang (crossover) dan
mutasi. Pada proses ini dilakukan secara berulang- ulang sehingga diperoleh
merupakan representasi dari solusi baru.
c. Mengevaluasi populasi. Proses ini dilakukan dengan menghitung nilai
fitness setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria
berhenti. Bila kriteria berhenti akan tetapi masih belum terpenuhi, maka
akan dibentuk kembali generasi baru dengan mengulang langkah 2.
Beberapa kriteria yang sering digunakan antara lain:
1. berhenti pada generasi tertentu.
2. berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai
fitness tertinggi tidak berubah.
3. berhenti bila dalam n generasi berikutnya tidak didapatkan nilai fitness
yang lebih tinggi.
2.3.2 Komponen - Komponen Algor itma Genetika
a. Pengkodean Kromosom
Menurut Syamsuddin, 2004. ada beberapa macam pengkodean dalam
Algoritma Genetika yaitu:
1. Binary Encoding, merupakan pengkodean yang paling sering
digunakan untuk bekerja dalam Algoritma Genetika dengan
setiap kromosom terdiri dari bit 0 dan 1.
Tabel 2.1 Contoh Binary Encoding
Kromosom A 1 0 1 1 0 0
2. Permutation Encoding, dalam pengkodean jenis ini setiap
kromosom adalah suatu angka yang merepresentasikan suatu
urutan.
Tabel 2.2 Contoh Permutation Encoding
Kromosom A 7 4 2 9 2 4
Kromosom B 1 5 3 6 8 3
3. Value encoding, dalam pengkodean ini setiap kromosom adalah
string dari suatu nilai. Nilai dapat berupa apapun yang
berhubungan dengan masalah, seperti bilangan bulat, desimal
atau karakter.
Tabel 2.3 Contoh Value Encoding
Kromosom A 1,232 5,324 0,455 2,329
Kromosom B (right), (left), (back), (forward)
b. Fungsi Evaluasi
Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai
ukuran performansinya yang disebut dengan fungsi fitness. Dalam evolusi
alam, individu yang memiliki nilai fitness tinggi yang akan mampu
Output dari fungsi fitness dipergunakan sebagai dasar untuk menyeleksi
individu pada generasi berikutnya.
Pada contoh permasalahan perjalanan salesman, tujuan yang ingin
dicapai yaitu meminimumkan total jarak yang harus ditempuh oleh
seorang salesman dari kota asal ke beberapa kota tujuan dan kembali lagi
ke kota asalnya. Misal n menyatakan ukuran populasi, maka fungsi fitness
yang digunakan adalah:
Fitness[i] = Total Jarak [i], dengan i = 1,2,3,..,n (2.1)
Karena fungsi tujuannya adalah meminimumkan total jarak, maka fungsi
fitness tersebut tidak bisa digunakan secara langsung. Hal tersebut
disebabkan adanya aturan bahwa individu yang memiliki nilai fitness
tinggi akan mampu bertahan hidup pada generasi berikutnya. Oleh karena
itu nilai fitness yang digunakan adalah:
Q [i] = 1 (2.2)
Fitness [i]
yang artinya semakin kecil nilai fitness[i] maka semakin besar nilai Q[i].
c. Seleksi
Seleksi adalah suatu operator algoritma genetika yang berfungsi
crossover atau memberikan kesempatan reproduksi yang lebih besar bagi
anggota populasi yang paling baik. Metode seleksi yang umum digunakan
yaitu Roulette Wheel merupakan salah satu metode seleksi yang banyak
dipergunakan. Roulette Wheel menyeleksi populasi baru dengan distribusi
probabilitas yang berdasarkan nilai fitness.
Tabel 2.4 Kromosom dengan Nilai Fitnessnya
Kromosom Nilai Fitness
K1 1
K2 2
K3 0,5
K4 0,5
Jumlah 4
Gambar 2.1 Contoh Roulette Wheel Selection dari data pada tabel 2.4 K3
K4
K1
d. Tukar Silang (Crossover)
Proses tukar silang pada masalah salesman dapat
diimplementasikan dengan skema order crossover. Operator crossover
yang akan dijelaskan disini order-based crossover dan one-cut-point
crossover (Syamsuddin, 2004).
Parent 1
Offspring
Parent 2
Gambar 2.2 Ilustrasi Order Based Crossover
One-cut-point crossover, metode ini analog dengan implementasi binary.
Algoritmanya adalah:
- Memilih site secara random dari parent pertama.
- Isi disebelah kanan site pada parent pertama ditukar dengan parent
kedua.
(Gen dan Cheng dalam Syamsuddin, 2004).
1 2 3 4 5 6 7 8 9
2 4 5 3 1 6 9 7 8
Parent 1
Parent 2
Offspring 1
Offspring 2
Gambar 2.3 Ilustrasi one-cut-point crossover
One-cut-point crossover yang dikembangkan oleh Reeves adalah:
1. Memilih satu cut-point secara random/acak dari parent pertama
2. Isi disebelah kanan site disesuaikan dengan urutan dari parent kedua
untuk menghasilkan offspring (Gen dan Cheng dalam Syamsuddin,
2004).
cut-point
Parent1
Offspring
Parent2
Gambar 2.4 Ilustrasi One-Cut-Point Crossover Reeves
0 1 1 0 1 0 1 1
1 1 0 0 0 1 1 1
0 1 1 0 0 1 1 1
1 1 0 0 1 0 1 1
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 9 7 8
e. Mutasi
Mutasi menciptakan individu baru dengan melakukan modifikasi
satu atau lebih gen dalam individu yang sama. Mutasi berfungsi untuk
menggantikan gen yang hilang dari populasi selama proses seleksi serta
menyediakan gen yang tidak ada dalam populasi awal. Sehingga mutasi
akan meningkatkan variasi populasi.
2.4 Tabu Sear ch
Tabu Search merupakan sebuah metode optimasi yang berbasis pada local search. Ide tentang Tabu Search pertama kali diperkenalkan oleh Fred
Glover pada tahun 1986. Kata Tabu sendiri berasal dari Tongan, sebuah bahasa
Polinesia, dimana bahasa tersebut digunakan oleh Suku Aborigin di Pulau Tongan
untuk menandakan bahwa sesuatu itu tidak dapat disentuh (tabu) karena hal itu
sakral atau terlarang.
Prinsip dasar Tabu Search adalah untuk mengikuti kemampuan local
search bertemu sebuah lokal optimum dengan cara membiarkan nonimproving
bergerak kembali ke solusi sebelumnya yang dicegah dengan menggunakan
memori yang disebut dengan Tabu List, yang merekam sejarah terbaru, sebuah ide
kunci yang bisa dihubungkan dengan konsep Artificial Intellegencia. Tabu List
yang ada pada Tabu Search digunakan untuk menyimpan sekumpulan solusi yang
baru saja dievaluasi. Selama proses optimasi, pada setiap iterasi, solusi yang akan
dievaluasi akan dicocokkan terlebih dahulu dengan isi tabu list. Apabila solusi
tersebut sudah ada pada pada tabu list, maka solusi tersebut tidak akan dievaluasi
menjadi anggota tabu list, maka nilai terbaik yang baru saja diperoleh merupakan
solusi yang sebenarnya.
Tabu Search mulai dengan cara yang sama seperti neighbourhood search (lokal) biasa dengan cara kerja secara iterasi dari suatu titik (solusi) ke
solusi lain hingga kriteria terminasi yang telah dipilih dipenuhi. Metode
”neigbourhood search” yang terkenal yang telah digunakan untuk menemukan
sebuah penaksiran untuk nilai minimum dari ”real valued function f” pada sebuah
kumpulan S adalah ”metode descent”, yang dijabarkan sebagai berikut:
Langkah 1: Pilih ”solution i” awal pada S
Langkah 2: Temukan ”j” yang terbaik pada N(i) (contoh:
f(j)<=f(k) untuk k apa saja yang ada pada N(i)
Langkah 3: Hentikan jika f(j)>=f(i). Yang lain, susun i=j
dan lanjutkan ke langkah 2.
Pada kasus atau penelitian ini, Tabu Search hanya digunakan untuk memfilter
kromosom yang mengalami crossover agar kromosom yang sama tidak dilakukan
crossover berulang–ulang. Saat iterasi pertama kali, semua kromosom yang
mengalami crossover disimpan ke dalam tabu list, kemudian baru dilakukan
crossover. Untuk iterasi berikutnya, kromosom yang mengalami crossover, akan
di cek terlebih dahulu pada tabu list, apakah kromosom tersebut sudah ada atau
akan dilakukan mutasi, jika belum maka kromosom tersebut disimpan pada tabu
list, kemudian dilakukan crossover.
Komponen paling penting dari Tabu Search adalah strategi intersifikasi
dan diversifikasi. Strategi intersifikasi didasarkan pada modifikasi aturan
pemilihan untuk mendorong kombinasi move-move dan ciri-ciri solusi terdahulu
yang baik, menentukan kembali pada area yang menarik untuk diselidiki lebih
dalam lagi. Sebaliknya, strategi diversifikasi mendorong proses pencarian untuk
menyelidiki area yang belum dikunjungi.
Tabu Search dapat diaplikasikan secara langsung baik verbal maupun
pernyataan simbolik dari berbagai masalah keputusan tanpa harus mengubah
dalam bentuk formulasi matematika untuk mengekspresikan masalah secara jelas
ruang lungkup dan batasan masalah yang dihadapi. Permasalahan tersebut dapat
dikarakteristikkan sebagai permasalahan optimasi (maksimum atau minimum)
dari fungsi tujuan f(x) dengan konstrain x € x dimana f(x) merupakan formulasi
linier ataupun non linier, dan satuan x merupakan himpunan variabel keputusan x
pada konstrain yang ada.
Tabu Serach dapat memiliki kemampuan untuk keluar dari local optimal, tetapi Tabu Search tidak dapat menentukan global optimal. Tabu Search
harus memiliki batas maksimum jumlah iterasi, parameter maksimal iterasi, dan
ukuran tabu list yang ditentukan sendiri oleh individu yang menggunakan metode
ini. Jumlah iterasi yaitu banyaknya iterasi yang akan dilakukan untuk
mengeksplorasi berbagai Space Search Area. Semakin besar jumlah maksimum
iterasi, semakin besar pula peluang untuk menentukan solusi optimal secara
parameter maksimal, iterasi yang merupakan suatu batasan jumlah iterasi yang
dilakukan pada suatu area tertentu mendorong suatu langkah diversifikasi demi
menghindari keterjebakan dalam suatu local optimal.
Secara garis besar, elemen-elemen utama pada Tabu Search antara lain
adalah sebagai berikut:
1. Representasi solusi, setiap solusi pada suatu permasalahan optimasi
harus dipresentasikan secara unik.
2. Fungsi cost, setiap funsi cost (fungsi tujuan) akan memetakan fungsi ke
nilai cost-nya.
3. Neighbourhood (tetangga), setiap fungsi cost akan memetakan setiap
solusi S ke solusi-solusi yang lainnya.
4. Tabu List, suatu list yang berisi gerakan terakhir (T).
5. Jumlah elemen yang harus selalu ada pada suatu solusi.
Solusi akhir adalah best, dengan cost sebesar GlobalMin
2.5 Konsep Dasar Sistem
Sistem adalah suatu jaringan kerja dari prosedur–prosedur yang saling
berhubungan, berkumpul bersama–sama untuk melakukan kegiatan atau untuk
menyelesaikan suatu sasaran yang tertentu. Istilah lain dari suatu sistem adalah,
kumpulan elemen–elemen yang masing–masing elemen saling berinteraksi atau
saling mempengaruhi untuk mewujudkan suatu kegiatan bersama.
Suatu sistem mempunyai tujuan atau sasaran. Tujuan biasanya
dihubungkan dengan ruang lingkup yang lebih luas dan sasaran dalam ruang
keluaran yang akan dihasilkan. Sistem dikatakan berhasil jika dapat mencapai
sasaran atau tujuan.
Siklus hidup sistem adalah sebuah aplikasi dalam pendekatan sistem
untuk mengembangkan sistem informasi berbasis komputer. Siklus hidup sistem
terbagi menjadi 4 tahap, yaitu:
2.5.1 Per encanaan
Meliputi perumusan masalah, pendefinisian masalah, penentuan
keobyektifan sistem, mengenali bagian–bagian sistem, melakukan studi
kelayakan, menyiapkan sebuah proposal sistem, menyetujui atau menolak proyek,
serta menetapkan sebuah mekanisme kontrol.
2.5.2 Desain
Meliputi persiapan detail desain sistem, mengenali konfigurasi
alternatif sistem, melakukan evaluasi konfigurasi alternatif sistem, menyeleksi
konfigurasi terbaik, menyiapkan proposal penerapan, serta menyetujui atau
menolak penerapan sistem
2.5.3 Implementasi
Meliputi perencanaan penerapan, perumusan penerapan, pengenalan
hardware, pengenalan software, menyiapkan database, menyiapkan fasilitas fisik,
menyiapkan pelatihan terhadap user, menyiapkan proposal penerapan sistem baru,
menyetujui atau menolak proposal sistem baru, serta menerapkan penggunaan
2.5.4 Oper asi
Meliputi penggunaan sistem, audit sistem, perawatan sistem,
menyiapkan proposal perencanaan ulang, serta menyetujui atau menolak
proposal perencanaan ulang.
2. 6 Per modelan Data
Model data adalah kumpulan perangkat konseptual untuk
menggambarkan data, hubungan data, semantik (makna) data, dan batasan data.
2.6.1 Entity Relationship Diagram (ERD)
Sesuai dengan namanya, Entity Relationship Diagram (ERD) dibentuk
dari 2 komponen utama, yaitu:
1. Entitas (Entity)
2. Hubungan (Relation)
Yang dideskripsikan lebih detail dengan sejumlah attribute (properti).
2.6.2 Entitas Dan Atr ibut
Entitas (entity), merupakan objek yang mewakili sesuatu dalam dunia
nyata, baik secara fisik (manusia, rumah, mobil, laptop, sepeda motor dsb)
ataupun secara konsep (departemen, pekerjaan, mata kuliah dsb) dan dapat
dibedakan antara satu dengan yang lainnya (unique).
Setiap entitas pasti memiliki atribut yang mendeskripsikan karakteristik
fakta yang ada atau berdasarkan kebutuhan. Atribut identik dengan kolom data
atau field dalam sebuah tabel.
Key Atribute
Atribute Key adalah satu atau gabungan atribut yang dapat membedakan
setiap baris data dalam sebuah tabel secara unik.
Atribute Key dibagi menjadi 3: 3. Super Key
Merupakan satu atau gabungan atribut yang dapat membedakan
setiap baris datadalam sebuah tabel secara unik.
4. Candidate Key
Adalah Super Key yang jumlah atributnya paling sedikit (minimal)
5. Primary Key
Adalah Candidate Key yang dipilih berdasarkan:
a. Key tersebut lebih sering untuk dijadikan acuan.
b. Key tersebut lebih ringkas.
c. Jaminan keunikan key tersebut lebih baik.
2.6.3 Relasi
Relasi menyatakan hubungan antar entitas termasuk terhadap entitas itu
Der ajat Kar dinalitas Rasio (Cardinality Ratio)
Kardinalitas relasi menunjukkan jumlah maksimum data entitas yang
dapat berelasi dengan entitas lain.
1. Satu Ke Satu (One to one)
Setiap data pada entitas A bisa berhubungan dengan maksimal satu
data pada entitas B, begitu pula sebaliknya.
2. Satu Ke Banyak (One to many)
Setiap data pada entitas A bisa berhubungan dengan banyak data
pada entitas B, tetapi data pada entitas B berhubungan maksimal
hanya dengan sebuah data di entitas A.
3. Banyak Ke Satu (Many to One)
Relasi ini merupakan kebalikan dari relasi satu ke banyak
6. Banyak Ke Banyak (Many to many)
Setiap data pada entitas A bisa berhubungan dengan banyak data pada
entitas B. Demikian pula sebaliknya, setiap data pada entitas B bisa
berhubungan dengan banyak data pada entitas A. Derajat Kardinalitas
satu ke banyak, maupun banyak ke satu bisa dianggap sama.
2.6.4 Data Flow Diagram (DFD)
Pada Data Flow Diagram (DFD) atau diagram aliran data ini disebutkan
a. Eksternal Entity
Merupakan kesatuan di luar lingkungan sistem yang dapat berupa
orang, organisasi, dan sebagainya yang akan memberi input atau
menerima output dari sistem.
b. Arus Data
Menunjukan arus dari data yang dapat berupa masukan untuk sistem
atau hasil dari proses sistem. Arus data ini mengalir diantara proses
Data Store dan External Entity.
c. Proses
Merupakan kegiatan atau kerja yang dilakukan oleh orang, mesin atau
komputer dari hasil suatu arus data yang masuk ke dalam proses untuk
dihasilkan arus data yang akan keluar dari proses.
d. Penyimpanan Data
Merupakan simpanan dari data yang berupa file atau database dari
komputer, arsip atau catatan manual. (Annynomous, 2005)
2.7 Visual Basic .NET 2010
Visual Basic adalah bahasa pemrograman klasik, legendaris, dan tiada
duanya yang paling banyak dipakai oleh programmer di dunia. Dari jaman
pemrograman visual di komputer berbasis Windows 3.x hingga kini di jaman
web. Bahasa pemrograman ini dipakai oleh jutaan programmer, dan tercatat
sebagai program yang paling dikuasai oleh mayoritas orang.
Visual Basic digunakan dari mulai programmer professional yang
mahasiswa yang membuat program untuk kuliah dan tugas akhir. Visual Basic
memang bisa diandalkan. Selain digunakan untuk melakukan pemrograman
desktop (yang merupakan asal mula kegunaan Visual Basic), kini Visual Basic
2010 juga sudah lazim dipakai untuk mengembangakan aplikasi web. Ini karena
Visual Studio sudah memberikan fasilitas visual web designer yang
memungkinkan Visual Basic 2010 digunakan untuk membuat web dengan bahasa
pemrograman ASP.NET (Winarno dkk, 2011).
2.8 Microsoft Access
Pengertian database yang paling sederhana adalah kumpulan dari tabel.
Suatu tabel merepresentasikan suatu entitas tertentu. Suatu entitas terdiri dari
beberapa atribut.
Gambar 2.5 Contoh tabel pegawai
Keterangan:
• Tabel Pegawai mewakili entitas pegawai
[image:37.612.175.490.395.585.2]• Atribut-atribut yang ada pada Tabel Pegawai disebut Field atau
Kolom
• Isi dari masing-masing atribut atau field disebut record atau baris.
Tabel-tabel yang ada dikumpulkan dalam suatu container atau wadah.
Wadah inilah yang sering disebut database. Jadi dalam satu database terdiri atas
tabel Pegawai, Jabatan, Golongan, Absen.
Pengertian database dalam Microsoft Access adalah sekumpulan objek
yang terdiri dari tabel, query, form, report, pages, macro, dan module.
Objek-objek ini ditampung dalam satu database. Jadi dalam MS Access yang dimaksud
database adalah kumpulan dari tabel, query, form, report, page, macro, dan module. Database di dalam MS Access selain terdiri dari objek atau objects
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Melakukan analisis terhadap data-data yang telah dikumpulkan serta
melakukan desain sistem yang akan dibuat. Ada beberapa bagian penting dalam
melakukan perancangan dan pembuatan suatu sistem, yaitu melakukan
perancangan dan pembuatan workflow (aliran kerja), Context Diagram, DFD
(Data Flow Diagram), Flowchart dan penggabungan Algoritma Genetika dengan
Tabu Search, serta penyusunan database sistem.
Alur sistem merupakan bagan yang menggambarkan alur atau
tahapan-tahapan yang membentuk suatu aplikasi. Bagian ini juga menampilkan suatu
keterlibatan entitas yang berhubungan dengan aplikasi. Data Flow Diagram
merupakan dokumentasi dari suatu sistem yang baik, karena dapat
menggambarkan arus data di dalam sistem dengan terstruktur dan jelas. Flowchart
dan penggabungan Algoritma Genetika dengan Tabu Search merupakan gambaran
alur dan tahapan bagaimana penggabungan metode meta-heuristik tersebut
melakukan penyusunan jadwal kuliah.
Pada bagian selanjutnya, dilakukan pembuatan rancangan entitas-entitas
yang saling berhubungan serta membentuk suatu database yang relasional.
Struktur database yang terbentuk akan berfungsi sebagai tempat penyimpanan
3.2 Per ancangan Sistem
Perancangan sistem berisikan penjelasan tentang deskripsi umum sistem,
konsep perancangan penggabungan metode Algoritma Genetik dan Tabu Search
dalam bentuk flowchart diagram, perancangan proses, perancangan data,
perancangan tabel basis data, dan perancangan antar muka.
3.2.1 Pengolahan Data Menggunakan Penggabungan Metode Algoritma
Genetik dan Tabu Search
Pada penelitian ini di uji cobakan otomatisasi masalah penjadwalan
kuliah di Perguruan Tinggi dengan metode meta-heuristik, yaitu: kombinasi
Algoritma Genetika dan Tabu Search. Tabu Search pada kombinasi ini digunakan
untuk memfilter kromosom yang mengalami crossover agar kromosom yang sama
tidak dilakukan crossover berulang-ulang. Saat iterasi pertama kali, semua
kromosom yang mengalami crossover disimpan ke dalam tabu list, kemudian
baru dilakukan crossover. Untuk iterasi berikutnya, kromosom yang mengalami
crossover, terlebih dahulu di cek pada tabu list, apakah kromosom tersebut sudah
ada atau belum. Jika kromosom tersebut sudah ada pada tabu list, maka
kromosom tersebut akan dilakukan mutasi, jika belum maka kromosom
tersebut disimpan pada tabu list, kemudian dilakukan crossover.
Untuk jumlah data yang kecil (45 hingga 88 data), kombinasi
Algoritma Genetika dan Tabu Search dapat menyelesaikan masalah
penjadwalan dengan baik, dengan nilai fitness sama dengan 0 dan iterasi atau
jumlah generasi maksimum 1000 generasi. Sedangkan untuk data yang cukup
kombinasi Algoritma Genetika dan Tabu Search masih mampu memperoleh
fitness 0, tetapi dengan jumlah iterasi atau generasi maksimum 10.000
generasi.
3.2.2 Pengkodean Kr omosom dan Pembentukan Populasi Awal
Pengkodean kromosom yang digunakan disini mengadopsi aturan
pengkodean kromosom Algoritma Genetika, yaitu pengkodean dengan bilangan
integer. Dimana bilangan integer ini diperoleh dari indeks array dari
komponen-komponen identitas penjadwalan.
Panjang satu kromosom adalah jumlah dari seluruh mata kuliah yang
ditawarkan pada semester aktif. Sebagai contoh untuk pembentukan kromosom
ini, misalkan ada sebaran mata kuliah seperti pada Tabel 3.1. Dilihat dari Tabel
tersebut, diasumsikan bahwa mata kuliah yang ditawarkan ada 7 (tujuh), dan
setelah dipetakan yang mengasuh mata kuliah-mata kuliah tersebut adalah dosen
dengan kode dosen seperti pada kolom Id Dosen, serta kategori ruangan yang
digunakan pada perkuliahan tersebut adalah kode kategori seperti pada kolom
Id_Ruang. Data pemetaan ini dibaca dari database pemetaan yang selanjutnya
dipindahkan ke variabel array yang sudah dideklarasikan sebelumnya. Susunan
gen dari salah satu kromosom yang dapat dibentuk dari tabel 3.1, adalah seperti
pada Gambar 3.1. Urutan angka pada setiap gen mewakili id Mata Kuliah, id
Ruang yang digunakan, id waktu, Id dosen pengampu, sks mata kuliah, semester,
Tabel 3.1 Contoh Sebaran Mata Kuliah
Id wkt Id MK Nama MK Id Dosen Id r uang Har i Par alel
6 ISI4001 Praktikum BP 1 Asisten 1 Lab. BP Jumat A
8 UPN1006 Pancasila 00 0015 101 Senin A
8 FTI002 Fisika 00 0010 102 Senin A
8 FTI1291 Kalkulus 1 00 0013 102 Rabu A
6 ISI1002 Bhs Pemrograman 00 0005 301 Jumat A
6 ISI1004 Pengantar TI 00 0014 301 Rabu A
6 FTI2107 Metode Numerik 00 0009 302 Senin A
Dari data pada tabel tersebut, nantinya akan menjadi sebuah gen, dan
kumpulan dari gen tersebut dinamakan kromosom. Pada permasalahan pemetaan
jadwal kuliah ini, dalam proses regenerasi, sebuah kromosom hanya dilakukan
proses crossover atau mutasi saja. Hal ini dilakukan dengan asumsi bahwa dengan
cara ini akan didapatkan keturunan yang lebih baik (solusi yang optimal).
1 2 3 4 5 … n Kromorom
gen ke-1 gen ke-2 gen ke-3 gen ke-4 gen ke-5 … gen ke-n
Gambar 3.1 Contoh Skema Kromosom
Data yang terkumpul pada sebuah gen dinamakan allele. Apabila didapat
dari tabel allele tersebut adalah, Mata kuliah – Kelas paralel – id Dosen – ruang
FTI1001-1H-00 0002-G3R102-1-8 ISI2001-3H-00 005-G3R301-4-8 UPN1001-1H-00 006-G3R304-2-8
gen ke-1 gen ke-2 gen ke-3
FTI1001-1H-00 0002- G3R304-2-8 ISI2001-3H-00 005--G3R102-1-8 UPN1001-1H-00 006- G3R301-4-8
gen ke-1 gen ke-2 gen ke-3
Gambar 3.2 Contoh Crossover Kromosom
Saat Proses crossover dan mutasi , hanya data ruang – hari – jam saja
yang dipindah silangkan dan dimutasi. Sedangkan data Mata kuliah – Kelas
paralel – Dosen tetap pada lokasi gen-nya.
3.2.3 Flowchart
Dalam sub-bab ini akan dijelaskan alur kerja sistem penjadwalan kuliah
dalam bentuk flowchart diagram. Untuk lebih jelasnya dapat dilihat pada gambar
[image:43.612.122.522.83.197.2]Gambar 3.3 Flowchart pengolahan data dengan menggunakan penggabungan
[image:44.612.202.490.78.614.2]3.2.4 Klasifikasi Constraint
Peraturan-peraturan yang digunakan dalam pembuatan tabel
penjadwalan perkuliahan dapat dikelompokkan menjadi 2, sesuai dengan tingkat
kewajiban peraturan itu dipenuhi. Kedua kelompok tersebut akan diuraikan pada
bagian Hard Constraint dan Soft Constraint dibawah ini.
3.2.4.1 Hard Constraint
Hard constraint didefinisikan sebagai constraint wajib yang harus
dipenuhi dalam proses perhitungan algoritma. Sebuah solusi hanya dapat
dikatakan sah dan valid, apabila dalam solusi tersebut sama sekali tidak ada hard
constraint yang terlanggar. Berikut adalah daftar hard constraint dalam masalah
penjadwalan kuliah:
1. Jadwal dosen dan mahasiswa tidak boleh bentrok.
2. Ruangan yang digunakan tidak boleh bentrok.
3. Adanya mata kuliah dengan ruangan khusus (praktikum).
4. Durasi kuliah antara praktek dan teori yang berbeda persksnya.
5. Seluruh kelas yang dibuka harus mendapatkan waktu dan ruangan
perkuliahan.
3.2.4.2 Soft Constrainvt
Kendala yang termasuk dalam kelompok soft constraint adalah kendala
yang tidak selalu dapat terpenuhi dalam proses pembuatan tabel jadal kuliah.
semaksimal mungkin berusaha memenuhi ketentuan soft constraint ini. Dan
berikut adalah daftar daftar soft constraint dalam masalah penjadwalan kuliah:
1. Diusahakan seorang dosen tidak mendapatkan jadwal mengajar lebih
dari 3 pertemuan dalam sehari.
2. Jadwal mengajar seorang dosen dalam sehari diusahakan urut tanpa
jeda waktu.
3. Jadwal kuliah mahasiswa diusahakan dalam sehari diusahakan urut
3.2.5 Workflow
Ga mbar 3.4 Workflow Penjadwalan Kuliah
Workflow tersebut menerangkan bagaimana alur kerja dalam proses
[image:47.612.145.491.97.611.2]mata kuliah, dan ruangan ke dalam sebuah sistem. Kemudian Kajur menentukan
pengampuan mata kuliah oleh dosen yang bersangkutan. Setelah selesai
menentukan pengampuan mata kuliah oleh dosen yang bersangkutan, Kajur
menentukan constraint dan menyimpannya ke dalam sebuah database sistem.
Lalu Kajur diminta untuk menentukan periode semester yang diadakan, serta mata
kuliah yang diadakan pada periode tersebut dan kembali menyimpannya ke dalam
database sistem. Baru setelah itu, sistem akan melakukan proses optimasi jadwal
dengan menggunakan penggabungan metode meta-heuristik, yaitu metode
Algoritma Genetik dan Tabu Search. Setelah mendapatkan jadwal terpilih dari
sistem, Kajur mencetak laporan jadwal kuliah dan memberikannya kepada dosen
yang bersangkutan dan mahasiswa.
3.2.6 Atur an-atur an Terjadi Konflik
Aturan terjadinya konflik merupakan aturan-aturan dari kondisi yang
dapat menimbulkan terjadinya suatu konflik antara dosen pengajar, mata kuliah,
ruangan, dan kelas parallel dalam satu hari dan jam yang sama yang akan
diberlakukan pada aplikasi penyusun jadwal kuliah ini. Fungsi konflik tersebut
adalah:
K = Σ Bentrok (3.1)
Nilai konflik ini nantinya digunakan untuk menghitung nilai fitness dari
setiap kromosom. Fungsi dari fitness kromosom adalah sebagai berikut:
Ket :
F (i) = Nilai fitness kromosom ke-i
K (i) = Nilai konflik kromosom ke-i
Dari fungsi diatas, dapat ditarik sebuah kesimpulan, bahwa semakin
banyak bentrok yang terjadi semakin kecil nilai fitness, dan akan semakin kecil
pula kemungkinan kromosom tersebut untuk terpilih ke generasi berikutnya.
3.2.7 Context Diagr am
Context diagram akan menjelaskan gambaran umum mengenai sistem
penjadwalan kuliah yang akan dibuat. Pada context diagram penjadwalan kuliah
ini terdapat 2 entitas yang saling berhubungan, yaitu:
1. Entitas Kajur Sekjur,
2. Entitas Mahasiswa dan Dosen,
Penjelasan Entitas User seperti yang terlihat pada konteks diagram berikut ini :
Jadwal Terpilih
Laporan jadwal kuliah data ruangan dan waktu kuliah data dosen_mata kuliah_kelas paralel
1
Penjadwalan Kuliah Menggunakan GA
dan TS
+
Kajur Sekjur Mahasiswa dan Dosen
[image:49.612.129.529.507.615.2]3.2.8 DFD Level 1
data dosen input data dosen
Jadwal Terpilih Laporan jadwal kuliah
data solusi
solusi terpilih
data kompetensi dosen data kelas paralel
data wkt kuliah data ruangan
data matkul data dosen_mata kuliah_kelas paralel
data ruangan dan waktu kuliah
input data wkt kuliah input data ruangan
input kelas paralel input data matkul Kajur Sekjur Kajur Sekjur Kajur Sekjur Mahasiswa dan Dosen 1 memasukkan data dosen matkul dan kelas paralel + tabel mata kuliah tabel kelas paralel 2 memasukkan data ruangan dan wkt kuliah
tabel waktu kuliah tabel ruangan 3 memasukkan data pengampuan matkul 4
proses optimasi GA dan TS
tabel kompetensi dosen
[image:50.612.144.532.160.501.2]Jadwal Terpilih Tabu List
tabel data dosen
Gambar 3.6 DFD Level 0
Penjelasan Gambar 3.4 DFD Level 0:
1. Proses memasukkan data dosen, mata kuliah, dan kelas paralel
Pada proses ini, Kajur atau Sekjur akan memasukkan data dosen yang
Kajur memasukkan data dosen dan mata kuliah, selanjutnya data tersebut
akan masuk dalam proses ke-3. Sedangkan untuk kelas paralel, data
tersebut akan masuk dalam proses ke-4.
2. Proses memasukkan data ruangan dan waktu kuliah
Pada proses ke-2 ini, Kajur akan memasukkan data ruangan yang akan
digunakan sebagai kegiatan perkuliahan beserta dengan waktunya.
Kemudian, data ruangan dan waktu kuliah yang telah masuk tersebut akan
menuju ke dalam proses ke-4.
3. Proses memasukkan data pengampuan mata kuliah
Proses ini merupakan kelanjutan dari proses pertama diatas, setelah data
dosen dan mata kuliah masuk, Kajur akan menentukan pengampuan mata
kuliah oleh dosen yang bersangkutan. Dari proses ini, kemudian akan
dilanjutkan menuju proses ke-4.
4. Proses Optimasi Algoritma Genetik dengan Tabu Search
Proses ini merupakan proses inti dari sistem penjadwalan kuliah ini.
Seluruh data dari semua proses diatas akan dioptimasi dengan
menggunakan penggabungan metode Algoritma Genetik dengan Tabu
Search. Pada proses optimasi ini, akan menghasilkan data solusi yang akan
dimasukkan kedalam tabu list, dan solusi terpilih yang akan menjadi
3.3 Per ancangan Database
Pada perancangan database ini akan dibahas mengenai perancangan
data dan perancangan tabel yang akan digunakan pada sistem ini. Database atau
Basis data dapat didefinisikan dalam sejumlah sudut pandang sebagai berikut:
1. Himpunan kelompok data (arsip) yang saling berhubungan yang
diorganisasikan sedemikian rupa agar kelak dapat dimanfaatkan
kembali dengan cepat dan mudah.
2. Kumpulan data yang saling berhubungan yang disimpan secara
bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang
tidak perlu untuk memenuhi berbagai kebutuhan.
3. Kumpulan file atau tabel atau arsip yang saling berhubungan yang
tersimpan dalam media penyimpanan elektronik.
Dalam perancangan data ini, akan dijelaskan tentang 2 model data yaitu:
Model Data Konseptual, dan Model Data Fisik. Untuk lebih jelasnya, akan
dijelaskan pada sub-bab dibawah ini.
3.3.1 Per ancangan Data
a) Model Data Konseptual (Conceptual Data Model)
Model data konseptual atau yang biasa disebut dengan CDM
(Conceptual Data Model) adalah rancangan dalam bentuk diagram sebelum
pembuatan database secara detail. Model data konseptual ini dibuat tanpa harus
mempertimbangkan data DBMS (Database Management System) apa saja yang
nanti dipakai, karena bentuk ini hanya sebuah konsep rancangan yang nantinya
ini akan mempresentasikan bagaimana rancangan basis data konseptual yang
nantinya akan digunakan oleh sistem ini. Model data konseptual ini, dibuat
dengan menggunakan software Power Designer 12.0.
Diinput Diinput2 Di input3 Dii nput4 Di input5 memiliki mengampu memiliki3 memiliki4 memiliki5 memiliki7 memili ki2
memil iki 6 User
username password
<pi > Characters (25) Characters (25)
<M>
Identifi er_1 <pi>
Dosen
id_dosen nm_dosen
<pi> Characters (20) Characters (150)
<M>
Identi fier_1 <pi>
MatKul kd_MK nm_MK smt sks ket
<pi > Characters (10) Characters (150) Characters (1) Integer Characters (10) <M> Identifier_1 <pi> Dosen Pengampu Kelas Paralel KP smt Kelas
<pi> Characters (2) Characters (1) Characters (10) <M> Identifier_1 <pi> Jadwal_Detail Waktu kd_waktu hari jam
<pi> Characters (4) Characters (10) Integer <M> Identifier_1 <pi> Ruang kd_ruang ket
<pi> Characters (15) Characters (10)
<M>
Identifier_1 <pi >
Jadwal
kd_jadwal Kelas semester thn
<pi> Characters (20) Characters (10) Characters (7) Characters (20)
<M>
Identifi er_1 <pi>
Ga mbar 3.7 Conceptual Data Model (CDM)
b) Model Data Fisik (Physical Data Model)
Model data fisik yang biasa kita sebut dengan PDM (Physical Data
[image:53.612.130.535.185.563.2]yang telah dijelaskan pada gambar diatas. Model data ini mempresentasikan
rancangan fisik basis data yang disimpan. Dan model data ini akan menghasilkan
tabel-tabel yang nantinya akan digunakan dalam implementasi sistem yang dibuat.
FK_DOSEN_DIINPUT _USER
FK_MAT KUL_DIINPUT 2_USER
FK_KELAS_PA_DIINPUT3_USER FK_RUANG_DIINPUT4_USER FK_WAKTU_DIINPUT 5_USER FK_DOSEN_PE_MEMILIKI_DOSEN FK_DOSEN_PE_MENGAMPU_MAT KUL FK_JADWAL_D_MEMILIKI3_KELAS_PA FK_JADWAL_D_MEMILIKI4_RUANG
FK_JADWAL_D_M EMILIKI5_WAKT U FK_JADWAL _D_MEMILIKI7_MAT KUL
FK_JADWAL_D_MEMILIKI2_DOSEN FK_JADWAL_D_MEMILIKI6_JADWAL User username password char(25) char(25) <pk> Dosen id_dosen username nm_dosen char(20) char(25) char(150) <pk> <fk> MatKul kd_MK username nm _MK smt sks ket char(10) char(25) char(150) char(1) integer char(10) <pk> <fk> Dosen Pengampu id_dosen kd_MK char(20) char(10) <fk1> <fk2> Kelas Paralel KP username smt Kelas char(2) char(25) char(1) char(10) <p k> <fk> Jadwal_Detail kd_waktu kd_jadwal kd_ruang id_dosen kd_MK KP char(4) char(20) char(15) char(20) char(10) char(2) <fk3> <fk6> <fk2> <fk5> <fk4> <fk1> Waktu kd_waktu username hari jam char(4) char(25) char(10) integer <pk> <fk> Ruang kd_ruang username ket char(15) char(25) char(10) <pk> <fk> Jadwal kd_jadwal Kelas semester thn char(20) char(10) char(7) char(20) <pk>
[image:54.612.140.528.182.534.2]3.3.2 Per ancangan Tabel
Dari tabel yang telah dihasilkan dalam pembuatan CDM (Conceptual
Data Model) dan PDM (Physical Data Model), adapun rincian tabel seperti
dibawah ini.
1. Tabel user
Tabel user ini digunakan untuk menyimpan data pengguna atau user.
Dalam tabel user ini terdapat 1 primary key yaitu username.
Tabel 3.2 Tabel user
No Nama Fields Type Panjang Const Keter angan
1. Username CHAR 25 PK Nama user
2. Passwords CHAR 25 Passwords user
2. Tabel dosen
Tabel dosen ini digunakan untuk menyimpan data dosen pengajar.
Dalam tabel dosen ini terdapat 1 primary key yaitu id_dosen.
Tabel 3.3 Tabel dosen
No Nama Fields Type Panjang Const Keter angan
1. Id_dosen CHAR 20 PK Merupakan nomor id
yang dimiliki setiap
dosen pengajar
2. Nm_dosen CHAR 150 Nama dosen pengajar
3. Tabel Matkul
Tabel Matkul ini digunakan untuk menyimpan data mata kuliah.
Tabel 3.4 Tabel Matkul
No Nama Fields Type Panjang Const Keter angan
1. Id_MK CHAR 10 PK Merupakan nomor id
yang dimiliki setiap
nama mata kuliah
2. Nm_MK CHAR 150 Nama mata kuliah
3. Smt CHAR 1 Semester mata kuliah
4. Sks INT Sks mata kuliah
5. Ket CHAR 10 Status mata kuliah
(Ganjil/Genap)
4. Tabel Kelas Paralel
Tabel kelas paralel ini digunakan untuk menyimpan data kelas paralel
di tiap-tiap semester. Dalam tabel kelas paralel ini terdapat 1 primary
key yaitu KP.
Tabel 3.5 Tabel Kelas Paralel
No Nama Fields Type Panjang Const Keter angan
1. KP CHAR 2 PK Merupakan kode kelas
Paralel
2. smt CHAR 1 Semester
3. Kelas CHAR 10 Kelas
5. Tabel ruang
Tabel ruang ini digunakan untuk menyimpan data ruangan yang akan
digunakan dalam perkuliahan. Dalam tabel ruang ini terdapat 1
Tabel 3.6 Tabel ruang
No Nama Fields Type Panjang Const Keter angan
1. Id_ruang CHAR 15 PK Merupakan nomor id
ruangan yg digunakan
dalam perkuliahan
2. Ket CHAR 10 Keterangan ruangan
(ruang kelas/praktek)
6. Tabel waktu
Tabel waktu ini digunakan untuk menyimpan data waktu perkuliahan.
Dalam tabel waktu ini terdapat 1 primary key yaitu id_waktu.
Tabel 3.7 Tabel waktu
No Nama Fields Type Panjang Const Keter angan
1. Id_waktu CHAR 4 PK Merupakan nomor id
waktu
2. Hari CHAR 10 Hari perkuliahan
3. Jam INT Jam perkuliahan
7. Tabel Jadwal
Tabel Jadwal ini digunakan untuk menyimpan jadwal terpilih yang
telah teroptimasi. Dalam tabel jadwal ini terdapat 1 primary key
Tabel 3.8 Tabel Jadwal
No Nama Fields Type Panjang Const Keter angan
1. Id_jadwal CHAR 20 PK Merupakan nomor id
jadwal
2. Kelas CHAR 10 Kelas
3. Semester CHAR 7 Semester
4. Tahun CHAR 20 Tahun ajaran
8. Tabel Jadwal_Detail
Tabel Jadwal ini digunakan untuk menyimpan jadwal terpilih yang
telah teroptimasi. Dalam tabel jadwal_detail tidak terdapat primary
key, tetapi mempunyai 6 foreign key yaitu kd_waktu, kd_ruang,
[image:58.612.125.513.434.654.2]kd_jadwal, id_dosen, id_MK, KP.
Tabel 3.9 Tabel Jadwal_Detail
No Nama Fields Type Panjang Const Keter angan
1. Kd_waktu CHAR 4 Fk Merupakan nomor id
jadwal
2. Kd_ruang CHAR 20 Fk Merupakan kode ruang
kuliah
3. Kd_jadwal CHAR 15 Fk Merupakan kode jdwl
kuliah
4. Id_dosen CHAR 20 Fk Merupakan id dosen
5. Id_MK CHAR 10 Fk Merupakan id Mata
kuliah
9. Tabel Dosen_Pengampu
Tabel Dosen_Pengampu ini digunakan untuk menyimpan data
kompetensi dosen pengajar. Dalam tabel Dosen_Pengampu tidak
terdapat primary key, tetapi mempunyai 2 foreign key yaitu
id_dosen, dan id_MK.
Tabel 3.10 Tabel Dosen_Pengampu
No Nama Fields Typ