i
SISTEM PENJADWALAN MATA KULIAH DENGAN
ALGORITMA GENETIKA
JUDUL
TUGAS AKHIR
Diajukan guna memenuhi sebagian persyaratan
Dalam rangka menyelesaikan pendidikan sarjana strata satu (S1) Jurusan Teknik Elektro
Oleh :
I PUTU BAYU DHARMAPUTRA NIM. 0504405013
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS UDAYANA
JIMBARAN-BALI
ii
LEMBAR PERNYATAAN
Dengan ini saya menyatakan bahwa dalam Tugas Akhir ini tidak terdapat karya yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu perguruan tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis diacu dalam naskah ini dan disebutkan dalam daftar pustaka.
Denpasar, 15 Juli 2012
iii
JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS UDAYANA
LEMBAR PENGESAHAN TUGAS AKHIR
JUDUL : SISTEM PENJADWALAN MATA KULIAH DENGAN ALGORITMA GENETIKA
NAMA : I PUTU BAYU DHARMAPUTRA NIM : 0504405013
FAKULTAS : TEKNIK
JURUSAN : TEKNIK ELEKTRO
BIDANG STUDI : SISTEM KOMPUTER DAN INFORMATIKA DIUJI TANGGAL : 11 JULI 2012
Menyetujui,
Dosen Pembimbing I,
(Dr. I K G Darma Putra, S.Kom., MT.)
NIP. 19740424 199903 1 003
Dosen Pembimbing II,
(A. A. K. Oka Sudana, S.Kom, MT.)
NIP. 19750612 199903 1 002
Mengetahui,
Ketua Jurusan Teknik Elektro Fakultas Teknik Universitas Udayana,
(Ir. I Nyoman Setiawan, MT.)
iv
ABSTRAK
Penjadwalan mata kuliah merupakan salah satu kegiatan dalam universitas yang membutuhkan banyak waktu untuk menyelesaikannya. Jadwal mata kuliah yang baik adalah jadwal yang memperhatikan semua komponen dasar penyusunnya. Komponen dasar terdiri atas dosen, mata kuliah, ruangan, dan jam kuliah.
Salah satu algoritma yang muncul untuk menyelesaikan persoalan ini adalah algoritma genetika, Pada peneletian ini akan dibuat program algoritma genetik untuk membuat penjadwalan mata kuliah. Sistem algoritma genetik didesain menggunakan representasi kromosom, inisialisi populasi, reproduksi dan seleksi, crossover, mutasi dan evaluasi fitness.
Berdasarkan hasil analisa diperoleh bahwa parameter kontrol AG pada nilai-nilai tertentu dapat memberikan pengaruh positif atau negatif terhadap hasil optimalisasi
v
ABSTRACT
Scheduling is one of the courses in university activities that require a lot of time to complete. A good schedule of courses is scheduled to take into account all the basic components of the constituent. The basic components consist of faculty, courses, rooms, and lecture hours.
One algorithm that appears to solve this problem is a genetic algorithm, the program will be made peneletian genetic algorithm to create a course schedule. The system is designed using a genetic algorithm chromosome representation, inisialisi population, reproduction and selection, crossover, mutation and fitness evaluation.
Analysis of the results obtained that the Genetic Algorithm control parameters on the specific values can be positive or negative influence on the results of the optimization.
vi
KATA PENGANTAR
Puji dan syukur penulis panjatkan kehadapan Ida Sang Hyang Widi Wasa/Tuhan Yang Maha Esa, karena atas asung wara nugraha-Nya, akhir penulis dapat menyelesaikan laporan tugas akhir ini. Laporan tugas akhir yang berjudul “SISTEM PENJADWALAN MATA KULIAH DENGAN ALGORITMA
GENETIKA” ini disusun sebagai syarat untuk memenuhi sebagian persyaratan
menyelesaikan Program Sarjana S-1 pada Jurusan Teknik Elektro Universitas Udayana.
Dalam penyusunan tugas akhir ini, penulis mendapatkan petunjuk dan bimbingan dari berbagai pihak. Sehubungan dengan hal tersebut pada kesempatan ini penulis menyampaikan ucapan terima kasih kepada :
1. Bapak Dr. I K G Darma Putra, S.Kom, M.T. sebagai Pembimbing I yang telah banyak memberi bimbingan dan masukan.
2. Bapak A. A. K. Oka Sudana, S.Kom, MT. sebagai Pembimbing II yang telah banyak memberi bimbingan dan masukan.
3. Teman-teman angkatan 2005 Jurusan Teknik Elektro yang telah memberikan kontribusi yang luar biasa besar kepada penulis, yang tidak dapat penulis sebutkan satu persatu.
Karya manusia tidak akan pernah sempurna karena manusia memiliki kelebihan serta kekurangan masing-masing. Demikian halnya dengan karya ini yang telah diusahakan dibuat dengan segenap kemampuan yang ada, jika masih ada kekurangan, penulis akan bertanggung jawab sepenuhnya.
Denpasar, Mei 2012 Penulis
vii
DAFTAR ISI
JUDUL ... i
LEMBAR PERNYATAAN ... ii
LEMBAR PENGESAHAN ... iii
ABSTRAK ... iv
ABSTRACT ...v
KATA PENGANTAR ... vi
DAFTAR ISI ... vii
DAFTAR GAMBAR ... xi
DAFTAR TABEL ... xiv
DAFTAR SINGKATAN ... xvi
BAB I PENDAHULUAN ...1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 1
1.3 Tujuan ... 2
1.4 Manfaat ... 2
1.5 Ruang Lingkup dan Batasan Masalah ... 3
1.6 Sistematika Pembahasan ... 3
BAB II TINJAUAN PUSTAKA ...5
2.1 Algoritma Genetika ... 5
2.1.1 Pengertian Algoritma Genetika ... 5
2.1.2 Sejarah Algoritma genetika ... 5
2.1.3 Pengertian Populasi AG ... 7
2.1.4 Operasional AG ... 9
2.1.4.1 Membangun Generasi Awal ... 10
2.1.4.2 Representasi kromosom ... 10
2.1.4.3 Fungsi fitness ... 11
2.1.4.4 Seleksi ... 12
viii
2.1.4.6 Mutasi ... 15
2.1.4.7 Kondisi Berhenti ... 16
2.1.5 Kontrol Parameter Algoritma Genetika ... 16
2.2 Perkembangan Metode Penjadwalan ... 18
2.2.1 Ant Colony Optimization ... 18
2.2.2 Tabu Search ... 18
2.2.2 Colloring Search ... 18
2.3 Perangkat Permodelan Sistem ... 19
2.3.1 Diagram konteks ... 19
2.3.2 Data flow diagram (DFD) ... 19
2.3.3 Flowchart ... 20
2.4 Konsep Database Management System (DBMS) ... 22
2.4.1 Definisi DBMS dan database ... 22
2.4.2 Bahasa DBMS ... 22
2.4.3 Komponen DBMS ... 24
2.4.4 Kegunaan DBMS ... 25
2.5 Bahasa Pemrograman Microsoft Visual C# ... 26
2.6 Database SQL Server ... 27
2.6.1 Komponen SQL Server ... 27
2.6.2 Keunggulan SQL Server ... 29
2.6.3 Tipe Data SQL Server ... 29
BAB III METODE DAN PERANCANGAN SISTEM ...33
3.1 Tempat dan Waktu Penelitian ... 33
3.2 Data ... 33
3.2.1 Sumber data ... 33
3.2.2 Jenis data ... 33
3.2.3 Cara pengumpulan data ... 33
3.3 Deskripsi Masalah ... 34
3.3.1 Representasi Individu ... 36
3.3.2 Rekombinasi ... 38
ix
3.3.4 Fungsi Fitness ... 39
3.4 Analisis Data ... 40
3.4.1 Data Flow Diagram (DFD) ... 41
3.4.1.1 Diagram konteks ... 41
3.4.1.2 Diagram berjenjang (Hierarchy chart) ... 41
3.4.1.3 DFD level 0 ... 43
3.4.1.4 DFD level 1 ... 44
3.4.1.5 DFD level 2 ... 47
3.4.2 Struktur data ... 50
3.4.3 Entitas dan himpunan entitas ... 57
3.4.4 Hubungan antar tabel ... 57
3.4.5 Flowchart ... 58
3.4.5.1 Flowchart membuat populasi awal ... 58
3.4.5.2 Flowchart input mata kuliah ... 61
3.4.5.3 Flowchart hitung fitness ... 61
3.4.5.4 Flowchart hitung jumlah bentrok... 64
3.4.5.5 Flowchart crossover ... 68
3.4.5.6 Flowchart mutasi ... 70
3.5 Alur Analisis ... 72
3.6 Jadwal Kegiatan Penelitian ... 72
BAB IV PENGUJIAN DAN ANALISIS HASIL PENGUJIAN ...74
4.1 Implementasi Sistem ... 74
4.1.1 Inisialisasi populasi awal... 74
4.1.2 Evaluasi fitness ... 76 4.1.3 Seleksi ... 83 4.1.4 Crossover ... 85 4.1.5 Mutasi ... 87 4.1.6 Populasi baru ... 89 4.2 Pengujian Sistem ... 92
x 4.2.1.1 Pengujian GA dengan metode seleksi Generational Replacement
... 92
4.2.1.2 Pengujian GA dengan metode seleksi Steady-State Selection .. 94
4.2.1.3 Pengujian GA dengan Metode Seleksi Elitism ... 97
4.2.2 Pengujian GA Terhadap Bobot Pelanggaran ... 100
4.2.3 Pengujian GA Terhadap Sering Tidaknya Terjadi Crossover dan Mutasi ... 101
4.2.3.1 Nilai Pc dan Pm Rendah ... 101
4.2.3.2 Nilai Pc dan Pm Tinggi ... 102
4.2.4 Pengujian GA Terhadap Parameter Hari yang digunakan ... 103
4.2.4.1 Pengujian GA dengan Parameter Hari Senin sampai dengan Kamis………. ... 104
4.2.4.2 Pengujian GA dengan Parameter Hari Senin sampai dengan Jumat……… ... 105
4.3 Analisis Kekurangan dan Kelebihan Aplikasi ... 106
BAB V PENUTUP ...108
5.1 Simpulan ... 108
5.2 Saran ... 109
DAFTAR PUSTAKA ...110
xi
DAFTAR GAMBAR
Gambar 2.1 Susunan dari Populasi ... 8
Gambar 2.2 Siklus Algoritma Genetika ... 10
Gambar 2.3 Representasi Kromosom Menggunakan Binary Encoding ... 11
Gambar 2.4 Seleksi Orang Tua Menggunakan Algoritma Roulette-Wheel ... 13
Gambar 2.5 Contoh Rekombinasi Satu Titik ... 14
Gambar 2.6 Contoh Rekombinasi Dua Titik ... 14
Gambar 2.7 Notasi kesatuan luar di DFD ... 20
Gambar 2.8 Notasi proses di DFD ... 20
Gambar 2.9 Arus Data dari kesatuan luar ke proses ... 20
Gambar 3.1 Representasi Kuliah untuk Masalah Penjadwalan Kuliah... 36
Gambar 3.2 Konversi Kromosom dari Matriks 3 menjadi Matriks 2 ... 37
Gambar 3.3 Rekombinasi Order Crossover pada Kromosom 2 Dimensi ... …… 38
Gambar 3.4 Swap Mutation pada kromosom 2dimensi ... 38
Gambar 3.5 Mutasi Kromosom dengan Mengubah Suatu Gen dalam Kromosom39 Gambar 3.6 Flowchart Algoritma Genetika ... 40
Gambar 3.7 Diagram Konteks Sistem Penjadwalan dengan Algoritma Genetika 41 Gambar 3.8 Diagram Berjenjang Sistem Penjadwalan dengan Algoritma Genetika ... 42
Gambar 3.9 DFD Level 0 Sistem Penjadwalan dengan Algoritma Genetika ... 43
Gambar 3.10 DFD Level 1 Proses Login ... 44
Gambar 3.11 DFD Level 1 Proses Pengolahan Data Penjadwalan ... 45
Gambar 3.12 DFD Level 1 Proses Algoritma genetika ... 46
Gambar 3.13 DFD Level 2 Proses Mengolah Data Dosen ... 47
Gambar 3.14 DFD Level 2 Proses Mengolah Data Mata Kuliah ... 47
Gambar 3.15 DFD Level 2 Proses Mengolah Data Ruangan ... 48
Gambar 3.16 DFD Level 2 Proses Mengolah Data Waktu ... 48
Gambar 3.17 DFD Level 2 Proses Request Dosen ... 49
Gambar 3.18 Hubungan Antar Tabel ... 58
xii Gambar 3.20 Flowchart Isi slot jadwal dengan Kombinasi Hari, Ruang, Waktu 60
Gambar 3.21 Flowchart Input Data Mata Kuliah Ke Dalam Slot ... 61
Gambar 3.22 Flowchart Menghitung Fitness ... 63
Gambar 3.23 Flowchart Menghitung Jumlah Mata Kuliah dengan Bentrok Dosen ... 65
Gambar 3.24 Flowchart Menghitung Jumlah Mata Kuliah dengan Bentrok Mahasiswa………..66
Gambar 3.25 Flowchart Menghitung Kesalahan Kapasitas Ruangan ... 67
Gambar 3.26 Flowchart Menghitung Kesalahan Request Dosen ... 68
Gambar 3.27 Flowchart Proses Crossover ... 69
Gambar 3.28 Flowchart Mutasi ... 71
Gambar 3.29 Flowchart Alur Analisis ... 72
Gambar 4.1 Proses Input Inisialisasi Populasi Awal ... 74
Gambar 4.2 Proses Pemilihan Individu Awal ... 76
Gambar 4.3 Show Individu Awal ... 76
Gambar 4.4 List Bentrok dari Sisi Dosen ... 77
Gambar 4.5 View Bentrok dari Sisi Dosen... 78
Gambar 4.6 List Bentrok dari Sisi Mahasiswa ... 79
Gambar 4.7 View Bentrok dari Sisi Mahasiswa ... 79
Gambar 4.8 List Bentrok Karena Kapasitas Ruangan Tidak Sesuai ... 80
Gambar 4.9 View Bentrok Karena Kapasitas Ruangan Tidak Sesuai dengan Peserta Perkuliahan ... 81
Gambar 4.10 List Request Dosen Tidak Terpenuhi ... 82
Gambar 4.11 ViewRequest Dosen yang Tidak Terpenuhi ... 82
Gambar 4.12 Form Bobot Pelanggaran ... 83
Gambar 4.13 Menampilkan Fitness masing-masing Individu ... 83
Gambar 4.14Metode Roulette Wheel ... 84
Gambar 4.15 Pencarian Parent ... 84
Gambar 4.16 Parent Satu Sebelum Proses Crossover ... 85
Gambar 4.17 Parent Dua Sebelum Proses Crossover ... 86
xiii
Gambar 4.19 Parent Dua Sesudah Proses Crossover ... 87
Gambar 4.20 Parent Sebelum di Mutasi ... 88
Gambar 4.21 Parent Sesudah di Mutasi ... 89
Gambar 4.22 Perhitungan Fitness dari Offspring yang tercipta ... 90
Gambar 4.23 Individu Baru... 90
Gambar 4.24 Grafik Fitness Seluruh Iterasi ... 91
Gambar 4.25 Jadwal Mata Kuliah Dalam Excel ... 91
Gambar 4.26 Proses Pemilihan Hari ... 93
Gambar 4.27 Proses Pemilihan Ruangan ... 93
Gambar 4.28 Grafik Fitness AG dengan Metode Generational Replacement ... 94
Gambar 4.29 Proses Pemilihan Hari ... 95
Gambar 4.30 Proses Pemilihan Ruangan ... 96
Gambar 4.31 Grafik Fitness AG dengan Metode Seleksi Steady-State Selection 96 Gambar 4.32 Proses Pemilihan Hari ... 98
Gambar 4.33 Proses Pemilihan Ruangan ... 98
Gambar 4.34 Grafik Fitness AG dengan Metode Seleksi Elitism ... 99
Gambar 4.35 Grafik Fitness AG dengan Pc dan Pm Rendah ... 102
Gambar 4.36 Grafik Fitness AG dengan Pc dan Pm Tinggi ... 103
Gambar 4.37 Grafik Fitness AG dengan Parameter Hari (Senin-Kamis) ... 104
xiv
DAFTAR TABEL
Tabel 2.1 Contoh perintah Data Definition Language (DDL) ... 23
Tabel 2.2 Contoh perintah Data Manipulation Language (DML) ... 23
Tabel 2.3 Katagori Tipe Data ... 29
Tabel 2.4 Tipe Data Exact Numeric ... 30
Tabel 2.5 Tipe Data Approximate Numeric... 30
Tabel 2.6 Tipe Data Monetary ... 30
Tabel 2.7 Tipe Data Date and Time ... 31
Tabel 2.8 Tipe Data Character... 31
Tabel 2.9 Tipe Data Binary ... 31
Tabel 3.1 Basis Data Pertemuan Kuliah ... 36
Tabel 3.2 Field dari tb_mk ... 50
Tabel 3.3 Contoh isi dari tb_mk ... 50
Tabel 3.4 Field dari tb_dosen ... 51
Tabel 3.5 Contoh isi dari tb_dosen ... 51
Tabel 3.6 Field dari tb_konsentrasi ... 51
Tabel 3.7 Contoh isi dari tb_konsentrasi ... 52
Tabel 3.8 Field dari tb_hari ... 52
Tabel 3.9 Contoh isi dari tb_hari ... 52
Tabel 3.10 Field dari tb_ruang ... 52
Tabel 3.11 Contoh isi dari tb_ruang ... 52
Tabel 3.12 Field dari tb_waktu ... 53
Tabel 3.13 Contoh isi dari tb_waktu ... 53
Tabel 3.14 Field dari tb_mk_ditawarkan ... 53
Tabel 3.15 Contoh isi dari tb_mk_ditawarkan ... 53
Tabel 3.16 Field dari tb_request... 54
Tabel 3.17 Contoh isi dari tb_request ... 54
Tabel 3.18 Field dari tb_jadwal ... 54
Tabel 3.19 Contoh isi dari tb_jadwal ... 55
xv
Tabel 3.21 Contoh isi dari tb_bentrok ... 55
Tabel 3.22 Field dari tb_bobot ... 55
Tabel 3.23 Contoh isi dari tb_bobot ... 56
Tabel 3.24 Field dari tb_history_fitness ... 56
Tabel 3.25 Contoh isi dari tb_history_fitness ... 56
Tabel 3.26 Field dari tb_user ... 56
Tabel 3.27 Contoh isi dari tb_user ... 57
Tabel 3.28 Jadwal Kegiatan Penelitian ... 73
Tabel 4.1 Variabel GA untuk Proses Seleksi Generational Replacement ... 92
Tabel 4.2 Bobot Kesalahan untuk Proses Seleksi Generational Replacement ... 92
Tabel 4.3 Perbandingan Antara Jumlah Kromosom dengan Waktu Pada Proses Seleksi Generational Replacement ... 94
Tabel 4.4 Variabel GA untuk Proses Seleksi Steady-State Selection... 95
Tabel 4.5 Bobot Kesalahan untuk Proses Seleksi Steady-State Selection ... 95
Tabel 4.6 Perbandingan Antara Jumlah Kromosom dengan Waktu Pada Proses Seleksi Steady-State Selection ... 97
Tabel 4.7 Variabel GA untuk Proses Seleksi Elitism ... 97
Tabel 4.8 Bobot Kesalahan untuk Proses Seleksi Elitism ... 98
Tabel 4.9 Perbandingan Antara Jumlah Kromosom dengan Waktu Pada Proses Seleksi Elitism ... 99
Tabel 4.10 Perbandingan antara bobot pelanggaran dengan nilai fitness... 100
Tabel 4.11 Variabel GA untuk Proses Pengujian Pc dan Pm Rendah ... 101
Tabel 4.12 Variabel GA untuk Proses Pengujian Pc dan Pm Tinggi ... 102
Tabel 4.13 Variabel GA untuk Proses Pengujian Parameter Hari ... 103
Tabel 4.14 Nilai Pinalti untuk Setiap Kesalahan ... 104 Tabel 4.15 Tabel Hasil Nilai Fitness dengan Parameter Hari (Senin-Jumat) 105
xvi
DAFTAR SINGKATAN
ACO : Ant Colony Optimization
AG : Algoritma Genetika
CLR : Common Language Runtime
DBMS : Database Management System
DCL : Data Control Language
DDL : Data Definition Language
DFD : Data Flow Diagram
DML : Data Manipulation Language
DTS : Data Transformation Service
GA : Genetic Algoritm
IC : Integrated Circuit
MMAS : Max Min Ant System
OLAP : Online Analytical Processing
Pc : Probabilitas Crossover
Pm : Probabilitas Mutasi
SQL : Structured Query Language
TSP : Traveling Salesman Problem
BIODATA
Nama : I Putu Bayu Dharmaputra
Jenis Kelamin : Laki-laki
Tempat/Tanggal Lahir : Tabanan, 20 Maret 1987
Alamat : Jl. Batas Dukuh Sari Gg Garuda
No.18 Denpasar Selatan
Agama : Hindu
Golongan Darah : B
Nomor Induk Mahasiswa : 0504405013
Fakultas : Teknik
Jurusan : Teknik Elektro
Konsentrasi : Sistem Komputer dan Informatika
Nama Orang Tua
 Ayah : I Wayan Pastika
 Ibu : Ni Nyoman Wiratni
Riwayat Pendidikan
1. TK Kumara Adi (1992 – 1993) 2. SDN 18 Sesetan (1993 - 1999) 3. SLTPK 1 Harapan (1999 - 2002) 4. SMAN 5 Denpasar (2002 - 2005)
5. Fakultas Teknik Jurusan Teknik Elektro Universitas Udayana (2005 - Sekarang)