Anda di halaman 1dari 138

SKRIPSI

PENERAPAN ALGORITMA GENETIKA DAN JARINGAN SYARAF


TIRUAN DALAM PENJADWALAN MATA KULIAH DI FAKULTAS
MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA

IMPLEMENTATION OF GENETIC ALGORITHM AND ARTIFICIAL


NEURAL NETWORK IN LECTURE SCHEDULING IN FACULTY OF
MATHEMATICS AND NATURAL SCIENCE
UNIVERSITAS GADJAH MADA

EKO BUDI PRASETYO


12/336144/PA/15079

PROGRAM STUDI ILMU KOMPUTER


JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
YOGYAKARTA

2014
SKRIPSI

PENERAPAN ALGORITMA GENETIKA DAN JARINGAN SYARAF


TIRUAN DALAM PENJADWALAN MATA KULIAH DI FAKULTAS
MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA

IMPLEMENTATION OF GENETIC ALGORITHM AND ARTIFICIAL


NEURAL NETWORK IN LECTURE SCHEDULING IN FACULTY OF
MATHEMATICS AND NATURAL SCIENCE
UNIVERSITAS GADJAH MADA

Diajukan untuk memenuhi salah satu syarat memperoleh derajat


Sarjana Komputer

EKO BUDI PRASETYO


12/336144/PA/15079

PROGRAM STUDI ILMU KOMPUTER


JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
YOGYAKARTA

2014
HALAMAN PENGESAHAN

SKRIPSI

PENERAPAN ALGORITMA GENETIKA DAN JARINGAN SYARAF


TIRUAN DALAM PENJADWALAN MATA KULIAH DI FAKULTAS
MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA

Telah dipersiapkan dan disusun oleh

EKO BUDI PRASETYO


12/336144/PA/15079

Telah dipertahankan di depan Tim Penguji


pada tanggal 15 Desember 2014

Susunan Tim Penguji

Faizah, S.Kom., M.Kom. Anifuddin Aziz, S.Si., M.Kom.


Pembimbing Penguji I

Retantyo Wardoyo, Drs., M.Sc., Ph.D.


Penguji II
PERNYATAAN

Dengan ini saya menyatakan bahwa Skripsi 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.

Yogyakarta, 21 November 2014

EKO BUDI PRASETYO

iv
PRAKATA

Segala puji dan syukur kehadirat Allah SWT atas berkah limpahan rahmat
dan karunia, serta petunjuk-Nya sehingga tugas akhir berupa penyusunan skripsi
ini telah terselesaikan dengan baik.
Banyak arahan, bantuan, serta dukungan dari berbagai pihak yang
diberikan kepada penulis dalam rangka penyelesaian skripsi ini. Maka dari itu
pada kesempatan ini penulis mengucapkan banyak terima kasih kepada:
1. Ayah, Ibu, dan Adik penulis yang selalu mendoakan dan mendukung
perjuangan penulis selama ini.
2. Ibu Sukati selaku nenek penulis yang telah banyak memberikan inspirasi
perjuangan bagi penulis.
3. Ibu Faizah, S.Kom., M.Kom., selaku dosen pembimbing yang telah banyak
membantu dan memberi bimbingan kepada penulis dalam menyelesaikan
skripsi ini.
4. Bapak Anifuddin Aziz, S.Si., M.Kom., selaku dosen penguji I sidang skripsi
penulis.
5. Bapak Retantyo Wardoyo, Drs., M.Sc., Ph.D., selaku dosen penguji II sidang
skripsi penulis.
6. Bapak Janoe Hendarto, Drs., M.Kom., selaku dosen wali akademik atas
bimbingan dan arahan selama penulis menempuh pendidikan S1 Ilmu
Komputer.
7. Seluruh dosen pengajar serta civitas akademika di lingkungan fakultas MIPA
UGM, khususnya program studi ilmu komputer.
8. Rekan-rekan seperjuangan Ilmu Komputer alih jenis angkatan 2012 (Bayu,
Ani, Uzun, Joko) serta teman-teman alih jenis angkatan 2011 dan 2013.
9. Teman-teman kos Nusantara dan teman-teman Gamatechno divisi enterprise
dan divisi egov.

v
10. Pihak-pihak lain yang telah membantu dalam penyelesaian skripsi ini dan
tidak dapat disebutkan satu-persatu.
Penulis menyadari bahwa dalam skripsi ini masih terdapat kekurangan.
Oleh karena itu, saran dan kritik yang bersifat membangun sangat penulis
harapkan. Akhir kata, penulis berharap semoga skripsi ini dapat memberikan
manfaat bagi pembaca.

Yogyakarta, 22 Desember 2014

Penulis

vi
DAFTAR ISI

HALAMAN PENGESAHAN ............................................................................. iii

PERNYATAAN ................................................................................................. iv

PRAKATA .......................................................................................................... v

DAFTAR ISI ..................................................................................................... vii

DAFTAR GAMBAR .......................................................................................... xi

DAFTAR TABEL ............................................................................................ xiv

INTISARI ......................................................................................................... xvi

ABSTRACT .................................................................................................... xvii

BAB I .................................................................................................................. 1

PENDAHULUAN ............................................................................................... 1

1.1 Latar Belakang ............................................................................................ 1

1.2 Perumusan Masalah .................................................................................... 3

1.3 Batasan Masalah ......................................................................................... 3

1.4 Tujuan Penelitian ........................................................................................ 4

1.5 Manfaat Penelitian ...................................................................................... 4

1.6 Sistematika Penulisan .................................................................................. 4

BAB II ................................................................................................................. 6

TINJAUAN PUSTAKA....................................................................................... 6

BAB III................................................................................................................ 8

LANDASAN TEORI ........................................................................................... 8

3.1 Algoritma Genetika ..................................................................................... 8

vii
3.1.1 Skema pengkodean (encoding) ............................................................. 9
3.1.2 Nilai fitness ........................................................................................ 10
3.1.3 Seleksi orang tua ................................................................................ 10
3.1.4 Pindah silang (crossover) ................................................................... 12
3.1.5 Mutasi ................................................................................................ 14
3.1.6 Elitisme .............................................................................................. 15
3.1.7 Penggantian populasi ......................................................................... 15
3.1.8 Kriteria penghentian ........................................................................... 15
3.2 Jaringan syaraf tiruan ................................................................................ 16

3.2.1 Sejarah jaringan saraf tiruan ............................................................... 16


3.2.2 Model neuron jaringan syaraf tiruan ................................................... 17
3.2.3 Arsitektur jaringan saraf tiruan ........................................................... 18
3.2.4 Fungsi aktifasi .................................................................................... 20
3.2.5 Metode pelatihan ................................................................................ 21
3.2.6 Backprogation.................................................................................... 22
3.3 PHP .......................................................................................................... 26

3.4 Diagram E-R ............................................................................................. 27

3.7 Data Flow Diagram ................................................................................... 30

3.7.1 Langkah pengembangan data flow diagram ....................................... 32


BAB IV ............................................................................................................. 33

ANALISIS DAN PERANCANGAN ................................................................. 33

4.1 Analisis Penjadwalan Mata Kuliah ............................................................ 33

4.1.1 Mekanisme penjadwalan mata kuliah di fakultas MIPA UGM............ 34


4.1.2 Karakteristik komponen utama penjadwalan mata kuliah ................... 35
4.1.3 Aturan umum penjadwalan mata kuliah.............................................. 37
4.1.4 Aturan khusus penjadwalan mata kuliah ............................................. 39
4.1.5 Kriteria mata kuliah............................................................................ 41

viii
4.2 Analisis Kebutuhan Aplikasi ..................................................................... 42

4.2.1 Kebutuhan fungsional ........................................................................ 42


4.2.2 Kebutuhan non fungsional .................................................................. 42
4.3 Perancangan Basis Data ............................................................................ 42

4.3.1 Perancangan bisnis proses .................................................................. 43


4.3.2 Perancangan diagram E-R .................................................................. 45
4.4 Perancangan Proses ................................................................................... 46

4.4.1 Perancangan proses prediksi peserta mata kuliah ................................ 47


4.4.2 Perancangan proses pembangkitan kelas ............................................ 53
4.4.3 Perancangan proses penjadwalan kelas mata kuliah ............................ 55
4.4.4 Perancangan Data Flow Diagram (DFD) ............................................ 64
4.5 Perancangan Antarmuka Pengguna............................................................ 70

4.5.1 Perancangan halaman menu pengelolaan referensi ............................. 70


4.5.2 Perancangan halaman menu prediksi jumlah peserta mata kuliah ....... 72
4.5.3 Perancangan halaman menu penjadwalan kuliah ................................ 74
BAB V............................................................................................................... 76

IMPLEMENTASI.............................................................................................. 76

5.1 Pengembangan Aplikasi ............................................................................ 76

5.2 Implementasi Basis Data ........................................................................... 76

5.3 Implementasi Proses.................................................................................. 77

5.3.1 Implementasi proses prediksi peserta.................................................. 77


5.3.2 Implementasi proses pembangkitan kelas ........................................... 83
5.3.3 Implementasi proses pembuatan jadwal .............................................. 85
5.4 Implementasi Antarmuka .......................................................................... 92

5.4.1 Implementasi halaman pengelolaan .................................................... 92


5.4.2 Implementasi halaman pengelolaan mata kuliah ................................. 93

ix
5.4.3 Implementasi halaman rekapitulasi jumlah peserta mata kuliah .......... 94
5.4.4 Implementasi halaman input proses prediksi....................................... 94
5.4.5 Implementasi halaman prediksi jumlah peserta mata kuliah ................ 95
5.4.6 Implementasi halaman input pembangkitan kelas ............................... 96
5.4.7 Implementasi halaman daftar kelas ..................................................... 97
5.4.8 Implementasi halaman input proses penjadwalan................................ 98
5.4.9 Implementasi halaman jadwal mata kuliah ......................................... 98
BAB VI ........................................................................................................... 100

HASIL PENELITIAN DAN PENGUJIAN ...................................................... 100

6.1 Statistik Data ........................................................................................... 100

6.2 Hasil Penelitian ....................................................................................... 100

6.2.1 Prediksi jumlah peserta mata kuliah ................................................. 101


6.2.2 Pembangkitan kelas .......................................................................... 103
6.2.3 Penjadwalan mata kuliah .................................................................. 105
6.3 Pengujian ................................................................................................ 106

6.3.1 Pengujian prediksi peserta mata kuliah ............................................. 106


6.3.2 Pengujian penjadwalan mata kuliah .................................................. 110
6.3.3 Pengujian jumlah kelas mata kuliah terhadap waktu penjadwalan ..... 116
BAB VII .......................................................................................................... 118

KESIMPULAN DAN SARAN ........................................................................ 118

7.1 Kesimpulan ............................................................................................. 118

7.2 Saran ....................................................................................................... 118

DAFTAR PUSTAKA ...................................................................................... 120

x
DAFTAR GAMBAR

Gambar 3.1 Contoh representasi real-number encoding ....................................... 9


Gambar 3.2 Contoh representasi discrete decimal encoding ............................... 10
Gambar 3.3 Contoh representasi binary encoding .............................................. 10
Gambar 3.4 Contoh seleksi roda roulette............................................................ 11
Gambar 3.5 Contoh pindah silang satu titik ........................................................ 13
Gambar 3.6 Contoh pindah silang banyak titik ................................................... 13
Gambar 3.7 Contoh pindah silang pola seragam ................................................. 14
Gambar 3.8 Contoh mutasi tingkat kromosom.................................................... 14
Gambar 3.9 Contoh mutasi tingkat gen .............................................................. 14
Gambar 3.10 Contoh mutasi tingkat bit .............................................................. 14
Gambar 3.11 Model neuron jaringan syaraf tiruan (Hajek, 2005) ....................... 17
Gambar 3.12 Jaringan syaraf dengan lapisan tunggal (Kawaguchi, 2000) ........... 19
Gambar 3.13 Jaringan syaraf dengan banyak lapisan (Kawaguchi, 2000) ........... 19
Gambar 3.14 Jaringan syaraf dengan lapisan kompetitif (Kusumadewi, 2003) ... 20
Gambar 3.15 Arsitektur jaringan backpropagation ............................................. 23
Gambar 3.16 Server-side processing (Davis dan Philips, 2007) .......................... 26
Gambar 3.17 Komponen diagram E-R (Pallaw, 2010) ........................................ 27
Gambar 3.18 One-to-one (Earp dkk., 2003)........................................................ 28
Gambar 3.19 One-to-many (Earp dkk., 2003) ..................................................... 29
Gambar 3.20 Many-to-one (Earp dkk., 2003) ..................................................... 29
Gambar 3.21 Many-to-many (Earp dkk., 2003) .................................................. 30
Gambar 3.22 Simbol dasar data flow diagram (Kendall, 2011) ........................... 30
Gambar 4.1 Diagram E-R................................................................................... 46
Gambar 4.2 Tahapan proses utama secara umum ............................................... 47
Gambar 4.3 Struktur neuron ............................................................................... 48
Gambar 4.4 Model jaringan syaraf ..................................................................... 50

xi
Gambar 4.5 Model matriks ruang waktu............................................................. 57
Gambar 4.6 Kromosom penjadwalan ................................................................. 58
Gambar 4.7 Rancangan pembangkitan populasi ................................................. 59
Gambar 4.8 Contoh proses 2-points crossover.................................................... 63
Gambar 4.9 Contoh proses mutasi ...................................................................... 64
Gambar 4.10 Diagram konteks ........................................................................... 65
Gambar 4.11 Diagram 0 ..................................................................................... 66
Gambar 4.12 Diagram 1 ..................................................................................... 67
Gambar 4.13 Diagram 2 ..................................................................................... 68
Gambar 4.14 Diagram 3 ..................................................................................... 69
Gambar 4.15 Rancangan halaman utama ............................................................ 70
Gambar 4.16 Rancangan halaman view pengelolaan referensi ............................ 71
Gambar 4.17 Rancangan halaman masukan ....................................................... 72
Gambar 4.18 Rancangan konfirmasi hapus......................................................... 72
Gambar 4.19 Rancangan halaman pemrosesan prediksi ...................................... 73
Gambar 4.20 Rancangan halaman masukan parameter prediksi .......................... 74
Gambar 4.21 Rancangan halaman penjadwalan kuliah ....................................... 74
Gambar 4.22 Rancangan halaman masukan parameter penjadwalan kuliah ........ 75
Gambar 5.1 Struktur basis data .......................................................................... 77
Gambar 5.2 Algoritma proses prediksi peserta ................................................... 78
Gambar 5.3 Kode sumber fungsi createWeight() ................................................ 79
Gambar 5.4 Kode sumber fungsi scale()............................................................. 80
Gambar 5.5 Kode sumber fungsi feedForward() ................................................ 80
Gambar 5.6 Kode sumber fungsi prosesBackprop() ........................................... 82
Gambar 5.7 Kode sumber fungsi mse() .............................................................. 83
Gambar 5.8 Kode sumber unscaleOutput()......................................................... 83
Gambar 5.9 Algoritma pembangkitan kelas ........................................................ 84
Gambar 5.10 Kode sumber fungsi klasifikasi() ................................................... 85
Gambar 5.11 Algoritma proses pembuatan jadwal.............................................. 86

xii
Gambar 5.12 Kode sumber fungsi generate_population() .................................. 86
Gambar 5.13 Kode sumber fungsi create_ind() .................................................. 87
Gambar 5.14 Kode sumber fungsi update_population() ..................................... 87
Gambar 5.15 Kode sumber fungsi count_fitness() .............................................. 88
Gambar 5.16 Kode sumber fungsi roulette_wheel_selection() ............................ 89
Gambar 5.17 Kode sumber fungsi crossover().................................................... 90
Gambar 5.18 Kode sumber fungsi mutation() ..................................................... 91
Gambar 5.19 Kode sumber fungsi update_selection() ........................................ 92
Gambar 5.20 Halaman pengelolaan .................................................................... 93
Gambar 5.21 Halaman pengelolaan mata kuliah ................................................. 93
Gambar 5.22 Halaman daftar rekapitulasi mata kuliah ....................................... 94
Gambar 5.23 Halaman input proses prediksi ...................................................... 95
Gambar 5.24 Halaman mata kuliah beserta prediksi jumlah peserta.................... 96
Gambar 5.25 Halaman input pembangkitan kelas ............................................... 97
Gambar 5.26 Halaman daftar kelas..................................................................... 97
Gambar 5.27 Halaman input proses penjadwalan ............................................... 98
Gambar 5.28 Halaman jadwal mata kuliah ......................................................... 99
Gambar 6.1 Perubahan MSE pada pengujian learning rate............................... 107
Gambar 6.2 Perubahan MSE pada pengujian treshold ...................................... 108
Gambar 6.3 Perubahan MSE pada pengujian jumlah epoch .............................. 110
Gambar 6.4 Perubahan nilai fitness pada pengujian probabilitas crossover ....... 111
Gambar 6.5 Perubahan nilai fitness pada pengujian probabilitas mutasi............ 113
Gambar 6.6 Perubahan nilai fitness pada pengujian populasi ............................ 114
Gambar 6.7 Perubahan nilai fitness pada pengujian generasi ............................ 115
Gambar 6.8 Perubahan nilai waktu pada pengujian jumlah kelas ...................... 116

xiii
DAFTAR TABEL

Tabel 4.1 Daftar jurusan dan program studi S1 di Fakultas MIPA UGM ............ 33
Tabel 4.2 Contoh daftar mata kuliah .................................................................. 35
Tabel 4.3 Contoh dosen dengan mata kuliah yang diampu ................................. 36
Tabel 4.4 Contoh daftar kelas mata kuliah.......................................................... 36
Tabel 4.5 Contoh daftar ruang dan kapasitas maksimalnya ................................. 36
Tabel 4.6 Daftar sesi kuliah................................................................................ 37
Tabel 4.7 Contoh jadwal mata kuliah ................................................................. 37
Tabel 4.8 Kardinalitas pada entitas ..................................................................... 45
Tabel 4.9 Daftar waktu kuliah dalam seminggu .................................................. 57
Tabel 4.10 Keterangan label pada Data Flow Diagram ....................................... 65
Tabel 6.1 Statistik data ..................................................................................... 100
Tabel 6.2 Gambaran data rekapitulasi mata kuliah pada 14 data pertama .......... 101
Tabel 6.3 Gambaran data hasil prediksi menggunakan data masukkan proses
pelatihan pada 14 data pertama ........................................................................ 102
Tabel 6.4 Gambaran hasil prediksi jumlah peserta pada semester ganjil tahun 2014
pada 14 data pertama ....................................................................................... 102
Tabel 6.5 Representasi daftar mata kuliah dan jumlah peserta prediksi pada 14
data pertama .................................................................................................... 103
Tabel 6.6 Konfigurasi global pembangkitan kelas oleh fakultas MIPA ............. 104
Tabel 6.7 Gambaran hasil kelas yang dibangkitkan pada 29 data pertama ........ 104
Tabel 6.8 Gambaran hasil jadwal kelas mata kuliah untuk semester ganjil tahun
2014 pada 29 data pertama ............................................................................... 105
Tabel 6.9 Nilai rata-rata MSE pada pengujian learning rate ............................. 107
Tabel 6.10 Nilai rata-rata MSE pada pengujian treshold................................... 108
Tabel 6.11 Nilai rata-rata MSE pada pengujian jumlah epoch .......................... 109
Tabel 6.12 Nilai rata-rata fitness pada pengujian probabilitas crossover ........... 111
Tabel 6.13 Nilai rata-rata fitness pada pengujian probabilitas mutasi ................ 112

xiv
Tabel 6.14 Nilai rata-rata fitness pada pengujian populasi ................................ 113
Tabel 6.15 Nilai rata-rata fitness pada pengujian generasi ................................ 114
Tabel 6.16 Nilai rata-rata waktu pada pengujian jumlah kelas .......................... 116

xv
INTISARI

Penerapan Algoritma Genetika dan Jaringan Syaraf Tiruan dalam


Penjadwalan Mata Kuliah di Fakultas Matematika dan
Ilmu Pengetahuan Alam Universitas Gadjah Mada

Eko Budi Prasetyo


12/336144/PA/15079

Pembuatan jadwal mata kuliah di fakultas Matematika dan Ilmu


Pengetahuan Alam (MIPA) Universitas Gadjah Mada (UGM) biasanya dilakukan
oleh fakultas melalui perwakilan masing-masing program studi. Selama ini proses
ini memakan waktu yang cukup lama dikarenakan setelah jadwal terbentuk
fakultas masih harus melakukan sinkronisasi terhadap semua jadwal yang
diterima. Selain itu, keterbatasan ruang dan waktu dalam penjadwalan dapat
memungkinkan terjadinya tumbukan mata kuliah dan ketidaksesuaian antara
kapasitas ruang dan jumlah mahasiswa yang mengambil mata kuliah tersebut.
Salah satu cara untuk mengatasi masalah penjadwalan adalah dengan
menggunakan algoritma genetika dan jaringan syaraf tiruan. Jaringan syaraf tiruan
melalui metode backpropagation dapat digunakan dalam prediksi jumlah peserta
mata kuliah yang dipakai untuk penentuan ruang. Algoritma genetika akan
digunakan untuk menentukan solusi optimal dari beberapa solusi jadwal yang
dihasilkan.
Penelitian ini mengembangkan aplikasi berbasis web yang mampu
melakukan prediksi jumlah peserta mata kuliah yang berperan dalam penentuan
ruang mata kuliah dan mampu untuk melakukan penjadwalan mata kuliah secara
satu pintu. Penerapan algoritma genetika dan jaringan syaraf tiruan dengan
parameter yang tepat dapat menghasilkan jadwal mata kuliah yang optimal. Selain
itu waktu yang dibutuhkan dalam proses penjadwalan menjadi lebih cepat.

Kata kunci: Penjadwalan Mata Kuliah, Backpropagation, Algoritma Genetika,


Jaringan Syaraf Tiruan.

xvi
ABSTRACT

Implementation of Genetic Algorithm and Artificial Neural Network in


Lecture Scheduling in Faculty of Mathematics and Natural Science
Universitas Gadjah Mada

Eko Budi Prasetyo


12/336144/PA/15079

Lecture scheduling in faculty of Matematika dan Ilmu Pengetahuan Alam


(MIPA) Universitas Gadjah Mada (UGM) is usually performed by faculty through
delegation of each study program. So far its process takes a long time because
after the schedule was established the faculty still need to synchronize for all
schedules that have been given. Moreover, the limitations of time and room in
scheduling can allow collision of lecture and incompatibility between the room
capacity and the number of student who take the lecture.
One of the way to get over the scheduling problem is by using genetic
algorithm and artificial neural network. Artificial neural network through
backpropagation method can be used in the prediction of the number of lecture
participants that is used for the determination of room. Genetic algorithms will be
used to determine the optimal solution of some generated solutions schedule.
This research develop an web based application which capable to predict
the number of lecture participants that have a role in determining lecture room and
capable to scheduling the lecture in one door. The implementation of genetic
algorithm and artificial neural network with appropriate parameters can produce
optimal lecture schedule. Furthermore time required in scheduling process
become faster.

Keyword: Lecture Scheduling, Backpropagation, Genetic Algorithm, Artificial


Neural Network.

xvii
BAB I
PENDAHULUAN

1.1 Latar Belakang

Algoritma adalah serangkaian langkah-langkah untuk menyelesaikan suatu


permasalahan. Algoritma genetika merupakan algoritma yang digunakan dalam
teknik pencarian evolutionary computation yang menemukan perkiraan solusi
untuk optimasi dan masalah pencarian. Algoritma genetika termasuk algoritma
heuristik (solusi tidak harus tepat namun mendekati) dan stokastik (menerapkan
metode pengacakan pada proses pembangkitan individu dan seleksinya).
Algoritma genetika sendiri telah banyak digunakan untuk permasalahan yang sulit
(misalkan pada permasalahan NP-complete), untuk pembelajaran mesin dan juga
untuk mengembangkan program sederhana (Deepa dkk., 2007). Salah satu
penerapan untuk permasalahan yang sulit yaitu dalam permasalahan penjadwalan
mata kuliah pada fakultas di perguruan tinggi.
Perguruan tinggi terdiri dari banyak fakultas yang di dalamnya terdapat
berbagai macam program studi dan disiplin ilmu. Dalam pelaksanaan kegiatan
perkuliahan, dibutuhkan banyak sumber daya pengajaran terutama dosen, waktu,
dan ruang. Namun dalam kenyataannya jumlah sumber daya yang ada tersebut
jumlahnya sangat terbatas. Oleh karena itu, untuk memanfaatkan sumber daya
tersebut dengan optimal dibutuhkan penjadwalan yang baik sesuai dengan aturan
atau batasan yang telah ditetapkan agar tidak terjadi permasalahan yang
menyebabkan jadwal tidak dapat dilaksanakan. Hal ini menyebabkan pembuatan
jadwal mata kuliah merupakan masalah klasik yang sulit untuk diselesaikan
(Weare dkk., 1995).
Penjadwalan di fakultas Matematika dan Ilmu Pengetahuan Alam (MIPA)
Universitas Gadjah Mada (UGM) telah dilakukan sebelum periode pengisian

1
Kartu Rencana Studi (KRS) di masing-masing program studi setiap semester.
Proses pertama yang dilakukan adalah dengan membuat suatu rancangan jadwal
yang mengalokasikan ruang dari blok program studi yang disediakan oleh fakultas
dan juga alokasi dosen untuk mengampu mata kuliah yang terselenggara sesuai
dengan kurikulum yang berlaku. Kemudian ditentukan ruang untuk masing-
masing mata kuliah dengan cara melakukan perkiraan jumlah peserta berdasarkan
jumlah mahasiswa yang mengambil mata kuliah yang sama pada tahun lalu. Hasil
jadwal dari masing-masing program studi lalu dikumpulkan dan diverifikasi
melalui rapat pada jurusan yang kemudian diserahkan kepada sekretariat fakultas
MIPA UGM.
Hasil jadwal dari masing-masing jurusan yang diserahkan kepada
sekretariat MIPA UGM biasanya belum sepenuhnya baik, karena ada
kemungkinan kapasitas ruang yang besar dialokasikan untuk mahasiswa yang
jumlahnya sedikit. Maka dari itu, setelah jadwal selesai dibuat biasanya akan
diproses ulang oleh sekretariat MIPA UGM dengan melakukan penukaran ruang
pada kelas mata kuliah agar sisa tempat duduk yang tidak terpakai menjadi
seminimal mungkin. Permasalahan lain pada penjadwalan muncul pada saat
pengisian KRS, yaitu ketika mahasiswa akan mengulang mata kuliah pilihan di
semester tahun lalu tetapi tidak dapat dilakukan karena terjadi tumbukan waktu
dengan mata kuliah wajib pada paket semester dan program studi yang sama.
Penelitian ini bermaksud untuk mengembangkan aplikasi guna
menghasilkan jadwal mata kuliah sesuai dengan aturan atau batasan dalam
penjadwalan yang ada pada fakultas MIPA UGM yang dapat digunakan pada
masa pengisian KRS dengan penentuan ruang berdasarkan hasil prediksi jumlah
peserta mata kuliah. Selain itu, penelitian ini diharapkan mampu menjadikan
sistem satu pintu dalam pembuatan jadwal di fakultas MIPA UGM serta dapat
memanfatkan semua sumber daya ruang dan waktu yang ada secara optimal.
Dengan adanya aplikasi ini diharapkan juga dapat mempercepat proses pembuatan

2
jadwal yang nantinya akan digunakan pada masa pengisian KRS di fakultas MIPA
UGM.

1.2 Perumusan Masalah

Berdasarkan permasalahan yang telah dipaparkan di latar belakang di atas


maka objek penelitian ini adalah bagaimana menyelesaikan permasalahan
pembuatan jadwal mata kuliah secara kolektif sesuai aturan penjadwalan yang
digunakan pada masa pengisian KRS di fakultas MIPA UGM dengan
menggunakan algoritma genetika. Selain itu penelitian ini juga melakukan
prediksi untuk jumlah peserta mata kuliah guna menentukan ruang yang
digunakan dalam penjadwalan sesuai dengan kriteria-kriteria yang telah
ditentukan dengan mengimplementasikan jaringan syaraf tiruan.

1.3 Batasan Masalah

Adapun batasan masalah dalam penelitian ini agar lebih mudah dipahami
dan tidak terlalu luas dalam penulisannya yaitu sebagai berikut:
1. Algoritma genetika digunakan pada proses penjadwalan mata kuliah.
2. Jaringan syaraf tiruan digunakan dalam proses prediksi jumlah peserta mata
kuliah.
3. Prediksi dilakukan dengan menggunakan data pelatihan berupa data mata
kuliah dari tahun 2008 hingga tahun 2013.
4. Penjadwalan yang dilakukan terbatas dan tidak melibatkan komponen
mahasiswa.
5. Diasumsikan setiap kelas mata kuliah paralel diampu oleh dosen yang
berbeda.
6. Aplikasi yang dikembangkan berbasis web menggunakan framework
codeigniter, dengan bahasa pemrograman PHP dan database mysql.
7. Aplikasi yang dihasilkan tidak termasuk access control list.

3
8. Penjadwalan difokuskan pada mata kuliah jenjang S1 yang menggunakan
ruang di fakultas MIPA UGM.
9. Sistem penjadwalan mata kuliah dibuat untuk menghasilkan jadwal dalam
waktu satu semester.

1.4 Tujuan Penelitian

Tujuan penelitian yang dilakukan adalah mengembangkan aplikasi dengan


menerapkan algoritma genetika yang mampu melakukan penjadwalan mata kuliah
dan menghasilkan jadwal mata kuliah yang digunakan pada masa pengisian KRS
di fakultas MIPA UGM dengan pemilihan ruang berdasarkan jumlah peserta yang
dihasilkan dari proses prediksi dengan menerapkan jaringan syaraf tiruan.

1.5 Manfaat Penelitian

Dengan adanya penelitian ini diharapkan mampu memberikan manfaat


sebagai berikut:
1. Melakukan otomatisasi penjadwalan mata kuliah secara kolektif di fakultas
MIPA UGM.
2. Mempercepat proses penjadwalan yang dilakukan di fakultas MIPA UGM.

1.6 Sistematika Penulisan

Sistematika dalam penulisan tugas akhir ini akan terdiri dari tujuh bab,
yaitu:
BAB I PENDAHULUAN
Berisi mengenai latar belakang, perumusan masalah, batasan masalah,
tujuan penelitian, manfaat penelitian, dan sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Bab ini menyajikan pembahasan mengenai penelitian terdahulu yang
digunakan sebagai referensi dalam penulisan penelitian ini. Selain itu memuat

4
penjelasan yang membedakan penelitian ini dengan penelitian sejenis yang
dilakukan sebelumnya.
BAB III LANDASAN TEORI
Bab ini berisi teori-teori yang menjadi landasan dalam penulisan penelitian
ini yang menyangkut kajian ilmu yang terlibat.
BAB IV ANALISIS DAN PERANCANGAN
Bab ini berisi uraian tentang hasil analisis yang dilakukan serta
perancangan sistem yang akan dikembangkan.
BAB V IMPLEMENTASI
Bab ini berisi hasil penerapan dari sistem yang telah dibangun berdasarkan
analisis dan perancangan sistem yang dilakukan sebelumnya.
BAB VI HASIL PENELITIAN DAN PENGUJIAN
Pada bab ini berisi pembahasan mengenai kevalidan sistem dalam
menghasilkan keluaran dan hasil pengujian terhadap sistem yang telah dibangun.
BAB VII KESIMPULAN DAN SARAN
Bab ini berisi mengenai kesimpulan dari penelitian yang telah dilakukan
dan saran untuk pengembangan penelitian selanjutnya.

5
BAB II
TINJAUAN PUSTAKA

Adamanti (2002) mencoba memecahkan masalah penjadwalan matakuliah


dengan menggunakan algoritma genetika. Pemodelan kromosom dilakukan
dengan membaginya menjadi dua fase. Fase pertama menempatkan mata kuliah
pada slot waktu yang tersedia. Kemudian fase kedua menempatkan mata kuliah
yang telah mendapatkan slot waktu pada ruangan yang sesuai. Fase pertama
diselesaikan dengan algoritma genetika, sedangkan fase ke dua diselesaikan
dengan pengacakan yang menerapkan prinsip semua kelas mata kuliah
mendapatkan ruang sesuai dengan kurang dari atau sama dengan kapasitasnya.
Penelitian diimplementasikan dengan aplikasi berbasis desktop dan diklaim
mampu menghasilkan jadwal mata kuliah yang memenuhi aturan-aturan yang
sudah ditentukan. Namun tidak semua aturan dapat terpenuhi dalam pembuatan
jadwal mata kuliah. Pada penelitian terkait, penjadwalan ruang dilakukan setelah
diketahui peserta masing-masing mata kuliah atau setelah mahasiswa selesai
mengisi KRS. Selain itu aturan yang dipakai dalam penjadwalan ketika penelitian
sudah tidak relevan lagi dengan aturan yang ada sekarang di fakultas MIPA UGM.
Penelitian yang sama dengan metode yang berbeda dilakukan oleh
Anggamardika (2008). Penelitiannya mencoba membangun system untuk
menyelesaikan masalah penjadwalan mata kuliah di fakultas MIPA UGM dengan
menggunakan pendekatan Artificial Immune System yang merupakan metode yang
terinspirasi dari cara kerja system kekebalan tubuh mamalia. Sistem yang
dihasilkan diklaim mampu mengoptimalisasi dan mengotomatisasi pembuatan
jadwal mata kuliah untuk seluruh program studi S1 reguler sekaligus dalam satu
kali penjadwalan berdasarkan aturan-aturan yang sudah ditentukan.
Aydin (2008) membuat timetable penjadwalan mata kuliah yang
diterapkan di fakultas untuk jadwal mahasiswa dengan menggunakan algoritma

6
genetika. Berbeda dengan Adamanti, Aydin melakukan penjadwalan dengan satu
fase, yang mengalokasikan kelas mata kuliah ke slot-slot dimensi ruang dan waktu
dari sumber daya yang diketahui. Penjadwalan dilakukan pada periode setelah
mahasiswa melakukan pengisian KRS sehingga jumlah peserta mata kuliah telah
diketahui secara pasti.
Rahayu (2010) membangun sistem tentang penjadwalan praktikum dengan
menggunakan algoritma genetika. Sistem yang dibangun mampu mengotomatisasi
pembuatan jadwal praktikum dalam satu kali penjadwalan. Pada penelitian yang
dilakukan menghasilkan jadwal yang mengalokasikan kelas praktikum ke dalam
slot waktu dan mengabaikan penjadwalan ruang.
Pada penelitian ini, dilakukan penjadwalan matakuliah dengan cara
mengalokasikan kelas mata kuliah ke dalam slot waktu dan ruang secara acak
dengan memperhatikan aturan-aturan yang digunakan dalam penjadwalan mata
kuliah. Penjadwalan diaplikasikan pada program berbasis web dengan
mengimplementasikan algoritma genetika. Penjadwalan dilakukan pada periode
sebelum mahasiswa melakukan pengisian KRS. Penentuan ruang dalam
penjadwalan dioptimalkan dengan cara meminimalkan selisih antara kapasitas
ruang dengan jumlah peminat pada mata kuliah tertentu. Selain itu dalam
penentuan ruang juga menggunakan jumlah peserta dari hasil prediksi berdasarkan
jumlah peserta mata kuliah yang sama pada tahun sebelumnya dan
diimplementasikan menggunakan jaringan syaraf tiruan.

7
BAB III
LANDASAN TEORI

3.1 Algoritma Genetika

Algoritma genetika adalah algoritma pencarian yang didasarkan pada


mekanisme seleksi alamiah dan genetika alamiah. Pada awalnya algoritma
genetika memang digunakan sebagai algoritma pencarian parameter-parameter
optimal. Namun dalam perkembangannya, algoritma genetika bisa diaplikasikan
untuk berbagai masalah lain seperti pembelajaran, peramalan, pemrograman
otomatis, dan sebagainya. Pada bidang soft computing, algoritma genetika banyak
digunakan untuk mendapatkan nilai-nilai parameter yang optimal pada jaringan
syaraf tiruan maupun sistem fuzzy (Suyanto, 2011).
Algoritma genetika adalah optimasi dan teknik pencarian berdasarkan
prinsip-prinsip genetika dan seleksi alam. Algoritma genetika memungkinkan
populasi yang terdiri dari banyak individu untuk dapat berkembang berdasarkan
aturan seleksi tertentu ke keadaan fitness maksimal (fungsi biaya minimal).
Metode ini dikembangkan oleh John Holland (1975) selama tahun 1960-an dan
1970-an dan akhirnya dipopulerkan oleh salah seorang muridnya, David Goldberg
(Haupt, 2004).
Suyanto (2011) mengemukakan terdapat beberapa komponen dalam
algoritma genetika, yaitu:
1. Skema pengkodean, merupakan hasil konversi suatu permasalahan ke dalam
bentuk individu yang diwakili oleh satu atau lebih kromosom dengan kode
tertentu.
2. Nilai fitness, merupakan nilai dari suatu fungsi tertentu yang digunakan dalam
eveluasi. Individu dalam populasi dengan fitness tinggi kemungkinan akan
bertahan hidup menjadi lebih besar.

8
3. Seleksi orang tua, merupakan proses pemilihan dua individu sebagai orang tua
yang biasanya dilakukan secara proporsional berdasarkan nilai-nilai fitness-
nya.
4. Pindah silang (crossover), merupakan proses kombinasi pewarisan gen-gen
dari induknya yang menghasilkan susunan kromosom yang baru.
5. Mutasi direpresentasikan sebagai suatu proses berubahnya satu atau lebih nilai
gen dalam kromosom dengan suatu nilai acak.
6. Elitisme, merupakan proses yang berfungsi menyalin individu yang bernilai
fitness tertinggi agar tidak hilang selama proses evolusi akibat seleksi individu
secara acak. Prosedur ini digunakan pada algoritma genetika yang berjenis
generational replacement.
7. Penggantian populasi, pada algoritma genetika berjenis generational
replacement, sejumlah individu pada suatu generasi digantikan sejumlah
individu baru hasil pindah silang dan mutasi.
8. Kriteria penghentian, merupakan kriteria yang digunakan untuk menghentikan
proses iterasi dalam evolusi.

3.1.1 Skema pengkodean (encoding)

Algoritma genetika merepresentasikan gen (buatan), secara umum, sebagai


bilangan real, desimal atau biner, yaitu:
1. Real-number encoding. Pada skema ini, nilai gen berada dalam interval [0,R],
dimana R adalah bilangan real positif dan biasanya R = 1. Contoh representasi
real-number encoding ditunjukkan pada gambar 3.1.

Kromosom A 213568749

Kromosom B 613429578

Gambar 3.1 Contoh representasi real-number encoding

9
2. Discrete decimal encoding. Pada skema ini, setiap gen bisa berupa deretan
bilangan bulat dalam interval [0,9]. Contoh representasi discrete decimal
encoding ditunjukkan pada gambar 3.2.

Kromosom A 0.122 1.456 5.333 1.925

Kromosom B 1.456 1.925 5.333 0.122

Gambar 3.2 Contoh representasi discrete decimal encoding


3. Binary encoding. Setiap gen bisa berupa deretan dengan nilai 0 atau 1. Contoh
representasi binary encoding ditunjukkan pada gambar 3.3.

Kromosom A 010100001

Kromosom B 101001010

Gambar 3.3 Contoh representasi binary encoding


3.1.2 Nilai fitness

Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran


nilai fitness-nya. Dalam proses evolusi, individu yang survive dari proses seleksi
alam akan mempunyai kesempatan untuk bereproduksi kembali. Dengan demikian
kemampuan individu untuk dapat beradaptasi dan bertahan hidup untuk selamat
sangat penting. Dalam terminologi algoritma genetika kemampuan suatu individu
atau kromosom untuk bertahan dapat diukur berdasarkan nilai fitness-nya.
Semakin baik nilai fitness suatu kromosom maka akan semakin baik peluang
kromosom tersebut untuk bertahan hidup dan ikut dalam proses reproduksi. Nilai
fitness suatu kromosom dapat dihitung dengan menggunakan fungsi objektif
(Goldberg, 1989).

3.1.3 Seleksi orang tua

Terdapat beberapa jenis metode seleksi, berikut ini adalah beberapa


metode seleksi yang sering digunakan (Suyanto, 2011).

10
1. Seleksi roda roulette (roulette wheel selection)

Pada metode seleksi ini, parent dipilih berdasarkan nilai fitness-nya,


semakin baik nilai fitness-nya maka semakin besar kemungkinannya untuk
terpilih. Contoh probabilitas terpilihnya suatu kromosom dalam roda roulette
ditunjukkan pada gambar 3.4.

Gambar 3.4 Contoh seleksi roda roulette


Skema seleksi dengan roda roulette ini adalah berdasarkan skala fitness
(fitness scale). Karena terpilihnya suatu kromosom dalam populasi untuk dapat
berkembang biak adalah sebanding dengan fitness-nya, maka akan terjadi
semacam trade off antara ekplorasi dan ekploitasi jika terdapat satu atau kelompok
kecil kromosom yang mempunyai fitness yang baik yaitu antara mengeksplorasi
bagian-bagian baru dalam ruang pencarian, atau terus mengeksplotasi informasi
yang telah diperoleh. Kecenderungan kromosom yang baik untuk terpelihara terus
dapat membawa ke hasil optimum lokal atau konvergensi dini (premature
convergence) ke suatu hasil yang bukan optimum global. Sebaliknya jika semua
kromosom dalam populasi mempunyai fitness yang hampir sama, maka seleksi ini
akan menjadi seleksi yang bersifat acak.

2. Seleksi rangking (rank selection)

Metode seleksi roda roulette akan memiliki masalah ketika terdapat


perbedaan fitness yang jauh. Sebagai contoh, jika fitness kromosom terbaik adalah
90% dari semua roda roulette dapat menyebabkan kromosom yang lain memiliki
kesempatan yang sangat kecil untuk dapat terpilih.

11
Seleksi ranking terlebih dahulu merangking atau mengurutkan kromosom di
dalam populasi berdasarkan fitness-nya kemudian memberi nilai fitness baru
berdasarkan urutannya. Kromosom dengan fitness terburuk akan memiliki fitness
baru bernilai 1, terburuk kedua bernilai 2 dan seterusnya, sehingga kromosom
yang memiliki fitness terbaik akan memiliki nilai fitness N, dimana N adalah
jumlah kromosom di dalam populasi.
Setelah proses pengurutan dan pemberian nilai fitness baru, setiap
kromosom akan memiliki kesempatan yang lebih adil untuk terpilih. Namun
metode ini dapat menyebabkan konvergensi menjadi lambat, karena kromosom
terbaik tidak terlalu berbeda dengan yang lainnya.

3. Seleksi turnamen (tournament selection)

Seleksi turnamen merupakan variasi antara seleksi roda roulette dan


seleksi rangking. Sejumlah k kromosom tertentu dari populasi beranggota n
kromosom (k n) dipilih secara acak dengan probabilitas yang sama. Dari k
kromosom yang terpilih kemudian akan dipilih satu kromosom dengan fitness
terbaik, yang diperoleh dari hasil pengurutan rangking fitness semua kromosom
terpilih. Perbedaannya dengan seleksi roda roulette adalah pemilihan kromosom
yang akan digunakan untuk berkembang biak tidak berdasarkan skala fitness dari
populasi.

3.1.4 Pindah silang (crossover)

Pada proses pindah silang dihasilkan variasi genetik. Dengan suatu skema,
dua individu dipilih sebagai orang tua. Setelah didapatkan dua individu orang tua,
selanjutnya ditentukan titik pindah silang secara acak. Titik pindah silang adalah
titik terjadinya pertukaran gen antar dua individu orang tua. Pertukaran tersebut
akan menghasilkan dua anak. Namun, operasi pindah silang tidak selamanya
berhasil. Peluang keberhassilan pindah silang dinyatakan dengan probabilitas
pindah silang. Terdapat tiga skema pindah silang yang biasa digunakan, yaitu

12
pindah silang satu titik, pindah silang banyak titik, dan pindah silang pola
seragam.

1. Pindah silang satu titik (single-point crossover)

Pindah silang ini merupakan skema pindah silang yang paling sederhana. Titik
pindah silang hanya satu dengan posisi yang dibangkitkan secara acak. Contoh
pindah silang satu titik ditunjukkan pada gambar 3.5.

Gambar 3.5 Contoh pindah silang satu titik


2. Pindah silang banyak titik (multi-point crossover)

Pindah silang ini menggunakan banyak titik untuk pertukarannya. Contoh pindah
silang banyak titik ditunjukkan pada gambar 3.6.

Gambar 3.6 Contoh pindah silang banyak titik


3. Pindah silang pola seragam (uniform crossover)

Dengan operasi pindah silang pola seragam maka komposisi gen-gen tertentu
pada suatu individu dapat dipertahankan. Hal ini akan memudahkan proses
pencarian solusi. Contoh pindah silang pola seragam ditunjukkan pada gambar
3.7.

13
Gambar 3.7 Contoh pindah silang pola seragam
3.1.5 Mutasi

Mutasi diperlukan untuk mengembalikan informasi bit yang hilang akibat


crossover. Mutasi diterapkan dengan probabilitas yang sangat kecil. Jika mutasi
dilakukan terlalu sering, maka akan menghasilkan individu yang lemah karena
konfigutasi gen pada individu yang unggul akan dirusak. Mutasi dapat dibedakan
menjadi tiga bagian:
1. Mutasi pada tingkat kromosom, yakni semua gen dalam kromosom berubah
seperti yang ditunjukkan pada gambar 3.8.

Gambar 3.8 Contoh mutasi tingkat kromosom


2. Mutasi pada tingkat gen, yakni semua bit dalam satu gen akan berubah seperti
yang ditunjukkan pada gambar 3.9.

Gambar 3.9 Contoh mutasi tingkat gen


3. Mutasi pada tingkat bit, yakni hanya satu bit yang akan berubah seperti yang
ditunjukkan pada gambar 3.10.

Gambar 3.10 Contoh mutasi tingkat bit

14
3.1.6 Elitisme

Karena seleksi dilakukan secara acak, maka tidak ada jaminan bahwa
suatu individu bernilai fitness tertinggi akan selalu dipilih. Kalaupun individu
bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak karena
proses pindah silang. Untuk menjaga agar individu bernilai fitness tertinggi
tersebut tidak hilang selama proses evolusi, perlu dibuat satu atau dua salinannya.
Prosedur ini dikenal dengan elitisme. Prosedur ini hanya digunakan pada
algoritma genetika berjenis generational replacement.

3.1.7 Penggantian populasi

Pada algoritma genetika berjenis generational replacement, N individu


pada suatu generasi digantikan sekaligus oleh N individu baru hasil pindah silang
dan mutasi. Untuk mempertahankan individu terbaik, diperlukan skema elitisme.

3.1.8 Kriteria penghentian

Terdapat berbagai macam kriteria penghentian yang bisa digunakan, tiga


diantaranya adalah:
1. Memberikan batasan jumlah iterasi. Apabila batas iterasi tersebut dicapai,
iterasi dihentikan dan laporkan individu bernilai fitness tertinggi sebagai solusi
terbaik.
2. Memberikan batasan waktu proses algoritma genetika. Kriteria ini digunakan
pada sistem-sistem waktu nyata (real time system), dimana solusi harus
ditemukan paling lama, misalkan 12 jam. Dengan demikian, algoritma
genetika bisa dihentikan, ketika proses sudah berlangsung hampir 12 jam.
3. Menghitung kegagalan penggantian anggota populasi yang terjadi secara
berurutan sampai jumlah tertentu.

15
3.2 Jaringan syaraf tiruan

Jaringan syaraf tiruan adalah jaringan komputasi yang mencoba untuk


mensimulasikan secara kasar jaringan sel syaraf (neuron) biologis sistem syaraf
pusat yang terdapat pada manusia atau hewan. Simulasi ini diambil dari ilmu
neurofisiologis tentang neuron biologis dan jaringan neuron biologis. Simulasi ini
juga berbeda dari mesin komputasi tradisional (digital atau analog) yang berbasis
pada pelayanan atau penggantian, yakni meningkatkan atau mempercepat
komputasi otak manusia tanpa berkaitan dengan pengelolaan elemen komputasi
dan jaringannya. Sehingga dapat dikatakan bahwa simulasi yang diberikan oleh
jaringan syaraf tiruan masih bersifat kasar (Graupe, 1997).

3.2.1 Sejarah jaringan saraf tiruan

Mulai dari ditemukannya, jaringan syaraf tiruan telah mengalami tahap-


tahap perkembangan (Kusumadewi, 2003). Dimulai tahun 1940-an, para ilmuwan
menemukan bahwa psikologi dari otak sama dengan mode pemrosesan yang
dilakukan oleh peralatan komputer. McCulloch dan Pitts (1943) merancang model
formal yang pertama kali sebagai perhitungan dasar neuron. Hebb (1949)
menyatakan bahwa informasi dapat disimpan dalam koneksi-koneksi dan
mengusulkan adanya skema pembelajaran untuk memperbaiki koneksi-koneksi
antar neuron tersebut. Farley dan Clark (1954) menginisiasi model-model untuk
relasi adaptif stimulus-respon dalam jaringan random. Rosenblatt (1958)
mengembangkan kosep dasar tentang perceptron untuk klasifikasi pola. Widrow
dan Hoff (1960) mengembangkan adaline untuk kendali adaptif dan pencocokan
pola yang dilatih dengan aturan pembelajaran Least Mean Square (LMS). Werbos
(1974) memperkenalkan algoritma backpropagation untuk melatih perceptron
dengan banyak lapisan. Little dan Shaw (1975) menggambarkan jaringan syaraf
dengan menggunakan model probabilistik. Kohonen (1982) mengembangkan
metode pembelajaran jaringan syaraf yang tidak terawasi (unsupervised learning)
untuk pemetaan. Grossberg (1982) mengembangkan teori jaringan yang

16
diinspirasi oleh perkembangan psikologi. Bersama Carpenter, mereka
mengenalkan sejumlah arsitektur jaringan, antara lain Adaptive Resonance Theory
(ART), ART2, dan ART3. Hopfield (1982) mengembangkan jaringan syaraf
reccurent yang dapat digunakan untuk menyimpan informasi dan optimasi. Pada
tahun 1985, algoritma pembelajaran dengan menggunakan mesin Boltzmann yang
menggunakan model jaringan syaraf probabilistik mulai dikembangkan. Kosko
(1987) mengembangkan jaringan Adaptive Bidirectional Associative Memory
(ABAM). Pada tahun 1988, mulai dikembangkan fungsi radial basis.

3.2.2 Model neuron jaringan syaraf tiruan

Neuron adalah unit pemrosesan informasi yang penting untuk


pengoperasian jaringan saraf. Model neuron yang terdapat pada jaringan syaraf
tiruan dapat ditunjukkan seperti pada gambar 3.11.

Gambar 3.11 Model neuron jaringan syaraf tiruan (Hajek, 2005)


Hajek (2005) mengidentifikasi tiga elemen dasar dari model neuron:
1. Kumpulan sinapsis masing-masing ditandai dengan bobot yang memiliki nilai.
Secara khusus, sebuah sinyal pada masukan sinapsis m yang terhubung ke
neuron k dikalikan dengan sinapsis bobot w . Pada bobot w , Subskrip

17
pertama mengacu pada neuron yang bersangkutan dan subskrip kedua
mengacu pada akhir masukan dari tempat bobot sinapsis berasal. Bobot w
positif jika sinapsis terkait merupakan perangsangan, dan bernilai negatif jika
sinapsis berupa penghambatan.
2. Sebuah adder (summing function) berfungsi untuk menjumlahkan sinyal-sinyal
input, yang berasal dari sinapsis masing-masing dari neuron.
3. Fungsi aktivasi untuk membatasi simpangan terjauh pada suatu output dari
neuron. Fungsi aktivasi juga disebut dalam literatur sebagai fungsi squashing.
Dalam hal ini, squashes (batas) rentang simpangan yang diizinkan dari sinyal
output untuk beberapa nilai terbatas. Biasanya, normalisasi rentang simpangan
output dari neuron ditulis sebagai satuan interval tertutup [0, 1] atau [-1, 1].

3.2.3 Arsitektur jaringan saraf tiruan

Ada beberapa arsitektur jaringan syaraf tiruan (Kusumadewi, 2003),


antara lain:
1. Jaringan dengan lapisan tunggal (single layer net)
Jaringan dengan lapisan tunggal hanya memiliki satu lapisan dengan bobot-bobot
terhubung. Jaringan ini hanya menerima input kemudian secara langsung akan
mengolahnya menjadi output tanpa harus melalui lapisan tersembunyi . Lapisan
input memiliki N neuron, yaitu X1, X2, X3, hingga Xn. Pada lapisan output
terdapat N neuron yaitu Y1, Y2 hingga Yn neuron-neuron pada kedua lapisan
saling berhubungan. Seberapa besar hubungan antara 2 neuron ditentukan oleh
bobot yang bersesuaian. Semua unit input akan dihubungkan dengan setiap unit
output. Jaringan syaraf dengan lapisan tunggal ditunjukkan pada gambar 3.12.

18
Gambar 3.12 Jaringan syaraf dengan lapisan tunggal (Kawaguchi, 2000)

2. Jaringan dengan banyak lapisan (multilayer net)


Jaringan dengan banyak lapisan memiliki 1 atau lebih lapisan yang terletak
diantara lapisan input dan lapisan output (memiliki 1 atau lebih lapisan
tersembunyi). Umumnya, ada lapisan bobot-bobot yang terletak antara 2 lapisan
yang bersebelahan. Jaringan dengan banyak lapisan ini dapat menyelesaikan
permasalahan yang lebih sulit daripada lapisan dengan lapisan tunggal, tentu saja
dengan pembelajaran yang lebih rumit. Namun demikian, pada banyak kasus,
pembelajaran pada jaringan dengan banyak lapisan ini lebih sukses dalam
menyelesaikan masalah. Jaringan syaraf dengan banyak lapisan ditunjukkan pada
gambar 3.13.

Gambar 3.13 Jaringan syaraf dengan banyak lapisan (Kawaguchi, 2000)

3. Jaringan dengan lapisan kompetitif (competitive layer net)

19
Umumnya, hubungan antar neuron pada lapisan kompetitif ini tidak diperlihatkan
pada diagram arsitektur. Gambar di bawah ini menunjukkan salah satu contoh
arsitektur jaringan dengan lapisan kompetitif yang memiliki bobot . Jaringan
syaraf dengan lapisan kompetitif ditunjukkan pada gambar 3.14.

Gambar 3.14 Jaringan syaraf dengan lapisan kompetitif (Kusumadewi, 2003)


3.2.4 Fungsi aktifasi

Dalam jaringan syaraf tiruan, fungsi aktifasi digunakan untuk menentukan


keluaran satu neuron. Argumen fungsi aktifasi adalah set masukkan (kombinasi
linier masukan dan bobotnya) (Siang, 2004).
Jika net = x w
Maka fungsi aktifasinya adalah seperti yang ditunjukan pada persamaan 3.1.
f(net) = f(x w ) (3.1)

Beberapa fungsi aktifasi yang digunakan adalah (Jon, 2004):


1. Fungsi threshold (batas ambang) ditunjukan pada persamaan 3.2.
1,
( )= (3.2)
0,

Fungsi treshold merupakan fungsi threshold biner. Untuk kasus bilangan


bipolar, maka angka 0 diganti dengan angka -1. Sehingga persamaan di atas
diubah ditunjukan pada persamaan 3.3.
1,
( )= (3.3)
1,

20
2. Fungsi sigmoid ditunjukan pada persamaan 3.4 dan fungsi turunannya
ditunjukkan pada persamaan 3.5.

( )= (3.4)

( ) = ( )(1 ( )) (3.5)

3. Fungsi identitas ditunjukan pada persamaan 3.6.


( ) = (3.6)

Digunakan jika keluaran yang dihasilkan oleh jaringan syaraf tiruan merupakan
sembarang bilangan riil (bukan hanya pada range [0,1] atau [1,-1]).

3.2.5 Metode pelatihan

Cara berlangsungnya pembelajaran atau pelatihan jaringan syaraf tiruan


dikelompokkan menjadi 3 yaitu (Puspitaningrum, 2006):
a. Supervised learning (pembelajaran terawasi).
Pada metode ini, setiap pola yang diberikan kedalam jaringan syaraf tiruan telah
diketahui output-nya. Selisih antara pola output aktual (output yang dihasilkan)
dengan pola output yang dikehendaki (output target) yang disebut error
digunakan untuk mengoreksi bobot jaringan syaraf tiruan sehingga jaringan
syaraf tiruan mampu menghasilkan output sedekat mungkin dengan pola target
yang telah diketahui oleh jaringan syaraf tiruan. Contoh algoritma jaringan syaraf
tiruan yang menggunakan metode ini adalah hebbian, perceptron, adaline,
boltzman, hopfield, dan backpropagation.
b. Unsupervised learning (pembelajaran tak terawasi).
Pada metode ini, tidak memerlukan target output. Pada metode ini tidak dapat
ditentukan hasil seperti apakah yang diharapkan selama proses pembelajaran.
Selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu
tergantung pada nilai input yang diberikan. Tujuan pembelajaran ini adalah

21
mengelompokkan unit-unit yang hampir sama dalam suatu area tertentu.
Pembelajaran ini biasanya sangat cocok untuk klasifikasi pola. Contoh algoritma
jaringan syaraf tiruan yang menggunakan metode ini adalah competitive, hebbian,
kohonen, LVQ (Learning Vector Quantization), dan neocognitron.
c. Hybrid learning (pembelajaran hibrida).
Merupakan kombinasi dari metode pembelajaran supervised learning dan
unsupervised learning, sebagian dari bobot-bobotnya ditentukan melalui
pembelajaran terawasi dan sebagian lainnya melalui pembelajaran tak terawasi.
Contoh algoritma jaringan syaraf tiruan yang menggunakan metode ini adalah
algoritma RBF.

3.2.6 Backprogation

Backpropagation merupakan algoritma pembelajaran yang terawasi dan


biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah
bobot-bobot yang terhubung dengan neuron-neuran yang ada pada lapisan
tersembunyinya. Algoritma backpropagation menggunakan error output untuk
mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk
mendapatkan error ini, tahap perambatan maju (feed-forward propagation) harus
dikerjakan terlebih dahulu.Pada saat perambatan maju, neuron-neuron diaktifkan
dengan menggunakan fungsi aktivasi sigmoid (Puspitaningrum, 2006). Arsitektur
jaringan backpropagation ditunjukkan pada gambar 3.15.

22
Gambar 3.15 Arsitektur jaringan backpropagation
Algoritma backpropagation (Puspitaningrum, 2006):
a) Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil).
b) Kerjakan langkah-langkah berikut selama kondisi berhenti bernilai false:
1. Untuk tiap-tiap pasangan elemen yang akan dilakukan pembelajaran,
kerjakan:
Propagasi maju:
a. Tiap-tiap unit input (Xi, i=1,2,3,...,n) menerima sinyal xi dan
meneruskan sinyal tersebut ke semua unit pada lapisan yang ada di
atasnya (lapisan tersembunyi).
b. Tiap-tiap unit tersembunyi (Zj, j=1,2,3,...,p) menjumlahkan sinyal-
sinyal input terbobot, serta menambahkan bias jika diketahui.
Proses tersebut ditunjukan seperti pada persamaan 3.7.

_ = + (3.7)

gunakan fungsi aktivasi untuk menghitung sinyal output-nya seperti


yang ditunjukan pada persamaan 3.8.
= ( _ ) (3.8)

23
dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit
output).
c. Tiap-tiap unit output (Yk, k=1,2,3,...,m) menjumlahkan sinyal-sinyal
input terbobot. Proses tersebut ditunjukan seperti pada persamaan 3.9.

_ = + (3.9)

gunakan fungsi aktivasi untuk menghitung sinyal output-nya seperti


yang ditunjukan oleh persamaan 3.10.

= ( _ ) (3.10)

dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit


output).
Propagasi mundur:
d. Tiap-tiap unit output (Yk, k=1,2,3,...,m) menerima target pola yang
berhubungan dengan pola input pembelajaran, hitung informasi error-
nya seperti yang ditunjukan oleh persamaan 3.11.
=( ) ( _ ) (3.11)

kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk


memperbaiki nilai wjk) seperti yang ditunjukan oleh persamaan 3.12.
= (3.12)

hitung juga koreksi bias (yang nantinya akan digunakan untuk


memperbaiki nilai w0k) seperti yang ditunjukan oleh persamaan 3.13.
= (3.13)

kirimkan k ini ke unit-unit yang ada di lapisan bawahnya.

24
e. Tiap-tiap unit tersembunyi (Zj, j = 1,2,3,...,p) menjumlahkan delta
input-nya (dari unit-unit yang berada pada lapisan di atasnya) seperti
yang ditunjukan oleh persamaan 3.14.

_ = (3.14)

kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk


menghitung informasi error seperti yang ditunjukan oleh persamaan
3.15.

= _ ( _ ) (3.15)

kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk


memperbaiki nilai vij) seperti yang ditunjukan oleh persamaan 3.16.
= (3.16)

hitung juga koreksi bias (yang nantinya akan digunakan untuk


memperbaiki nilai v0j) seperti yang ditunjukan oleh persamaan 3.17.
= (3.17)

f. Tiap-tiap unit output (Yk, k=1,2,3,...,m) memperbaiki bias dan bobotnya


(j=0,1,2,...,p) seperti yang ditunjukan oleh persamaan 3.18.
( )= ( )+ (3.18)

Tiap-tiap unit tersembunyi (Zj, j=1,2,3,...,p) memperbaiki bias dan


bobotnya (i = 0,1,2,...,n) seperti yang ditunjukan oleh persamaan 3.19.
( )= ( )+ (3.19)
2. Tes kondisi berhenti apabila error ditemukan.
Untuk memeriksa error digunakan Mean Search Error (MSE) seperti yang
ditunjukan pada persamaan 3.20.

25
( )
= (3.20)
2

3.3 PHP

PHP adalah bahasa pengembangan web yang ditulis oleh dan untuk
pengembang web. PHP singkatan dari Hypertext Preprocessor. PHP adalah
bahasa scripting server-side, yang dapat tertanam dalam HTML atau digunakan
sebagai biner mandiri (Converse dkk., 2004). Pemrosesan PHP pada server
disebut dengan server-side processing. Proses tersebut dapat diilustrasikan seperti
yang ditunjukkan pada gambar 3.16.

Gambar 3.16 Server-side processing (Davis dan Philips, 2007)


Pemrosesan PHP pada server atau server-side processing dimulai dengan
adanya pengelompokan dari alamat web yang dimasukkan pada browser untuk
mendapatkan nama berkas yang diminta dan alamat server yang dituju. Kemudian
klien mengirimkan request atau permintaan kepada web server. Request yang
dikirim tersebut kemudian diproses oleh web server process dan dilakukan
pencarian terhadap berkas yang diminta. Kemudian web server membaca berkas
yang terdapat pada hard disk dari web server. Hasil pembacaan berkas tersebut
kemudian dikembalikan dalam bentuk response ke browser pada klien. Web

26
browser menggunakan markup HTML yang dikembalikan dari web server untuk
menampilkan halaman web di layar komputer.

3.4 Diagram E-R

Diagram E-R merupakan diagram pemodelan data yang didasarkan pada


persepsi pada dunia nyata yang terdiri dari kumpulan dasar objek yang disebut
entitas dan hubungan antara objek-objek tersebut (Pallaw, 2010). Diagram terdiri
dari entity, relationship, dan attribute. Entity merupakan penyimpan data yang
namanya dapat merepresentasikan suatu kelas atau tipe. Relationship merupakan
hubungan antara entitas yang biasanya dilambangkan dengan frase kata kerja.
Atribute merupakan properti atau karakteristik dari suatu entity (Bagui dan Earp,
2003). Diagram E-R dapat tersusun dari komponen-komponen seperti yang
tampak pada gambar 3.17.

Gambar 3.17 Komponen diagram E-R (Pallaw, 2010)

Berikut penjelasan dari gambar 3.17.


a. Line
Merupakan penghubung yang digunakan untuk menghubungkan attribute ke
entity set dan penghubung antar entity.
b. Rectangle
Merepresentasikan entity set.
c. Diamond

27
Merepresentasikan hubungan antara entity set.
d. Ellips
Merepresentasikan attribute.
e. Double Line
Merepresentasikan partisipasi total dari sebuah entity pada suatu hubungan.
f. Double Rectangle
Merepresentasikan entity set lemah, yakni entity dimana keberadaan dari
entity tersebut tergantung dari keberadaan entity lain.
g. Double Diamond
Merepresentasikan bahwa pada suatu hubungan terdapat entity lemah yang
terlibat.
h. Double Ellips
Merepresentasikan multi valued attribute, yakni nilai dari suatu attribute yang
mempunyai lebih dari satu nilai (multi value) dari attribute yang
bersangkutan.
Menurut Bagui dan Earp (2003), relationship terbagi menjadi 4 tipe yaitu:
1) One-to-one: Pada relationship jenis ini, tiap satu anggota himpunan pada
entity terhubung dengan satu anggota himpunan pada entity lain dan
sebaliknya. Representasi dari relationship one-to-one ditunjukan pada gambar
3.18.

Gambar 3.18 One-to-one (Earp dkk., 2003)

28
2) One-to-many: Pada relationship jenis ini, satu anggota himpunan pada entity
terhubung dengan banyak anggota himpunan pada entity. Representasi dari
relationship one-to-many ditunjukan pada gambar 3.19.

Gambar 3.19 One-to-many (Earp dkk., 2003)


3) Many-to-one: Pada relationship jenis ini, banyak anggota himpunan entity
terhubung dengan satu anggota himpunan pada entity lain. Representasi dari
relationship many-to-one ditunjukan pada gambar 3.20.

Gambar 3.20 Many-to-one (Earp dkk., 2003)


4) Many-to-many: Pada relationship jenis ini, banyak anggota himpunan pada
entity dapat terhubung dengan banyak anggota himpunan pada entity lain dan
sebaliknya. Representasi dari relationship many-to-many ditunjukan pada
gambar 3.21.

29
Gambar 3.21 Many-to-many (Earp dkk., 2003)

3.7 Data Flow Diagram

Data flow diagram adalah penggambaran data process, data flow, dan
data store pada suatu sistem (Kendall, 2011). Data flow diagram merupakan
model proses yang digunakan untuk menggambarkan aliran data yang melalui
sebuah sistem dan proses-proses yang dilakukan oleh sistem tersebut. Terdapat 4
simbol dasar yang digunakan pada data flow diagram seperti yang ditunjukkan
pada gambar 3.22.

Gambar 3.22 Simbol dasar data flow diagram (Kendall, 2011)


Keterangan dari gambar 3.22 sebagai berikut:

30
a. Entity
Entity digunakan untuk menggambarkan suatu entitas eksternal (departemen,
bisnis, sesorang, atau mesin) yang dapat mengirim data atau menerima data
dari sistem. Entitas eksternal atau entitas ini bisa juga disebut sumber atau
tujuan data dan dianggap terletak di luar sistem yang digambarkan. Setiap
entitas diberi label dengan nama yang sesuai. Meskipun berinteraksi dengan
sistem, entitas dianggap di luar batas dari sistem. Entitas harus dinamai
dengan menggunakan kata benda. Entitas yang sama dapat digunakan lebih
dari sekali pada data flow diagram yang digambarkan untuk menghindari
melintasi garis aliran data.
b. Data flow
Data flow menunjukkan pergerakan data dari satu titik ke titik lain, dengan
kepala panah menunjuk ke arah tujuan data. Arus data yang terjadi secara
simultan dapat digambarkan melalui penggunaan panah paralel. Karena panah
mewakili data tentang seseorang, tempat, atau hal. Data flow dinamai dengan
menggunakan kata benda.
c. Process
Process digunakan untuk menunjukkan terjadinya proses transformasi.
Process selalu menunjukkan suatu perubahan atau transformasi data sehingga
data flow yang meninggalkan process selalu diberikan label yang berbeda
pada saat masuk pertama kali. Process merupakan pekerjaan yang dilakukan
di dalam sistem sehingga harus diberi nama yang menunjukan proses
melakukan sesuatu. Sebuah proses juga harus diberi nomor identifikasi yang
unik yang menunjukkan tingkat kedalaman diagram.
d. Data store
Data store dapat mewakili sebuah penyimpanan manual, seperti lemari arsip,
direktori file komputer atau database. Karena data store mewakili orang,
tempat, atau hal, maka diberi nama dengan menggunakan kata benda.
Penyimpan data sementara seperti catatan kertas atau file komputer

31
sementara, tidak disertakan pada data flow diagram. Masing-masing data
store diberi nomor referensi yang unik, seperti D1, D2, D3, dan sebagainya.

3.7.1 Langkah pengembangan data flow diagram

Menurut Kendall (2011), terdapat beberapa langkah pendekatan dalam


mengembangkan data flow diagram yakni sebagai berikut:
1) Buat daftar aktifitas bisnis dan gunakan untuk menentukan berbagai
macam external entity, data flow, process, dan data store.
2) Buat diagram konteks yang menunjukan asal dan tujuan dari external
entity dan data flow pada lingkungan sistem. Pada langkah ini tidak
ditunjukkan detil dari process maupun data store.
3) Gambar diagram 0 pada level selanjutnya yang menunjukan process yang
bersifat general atau umum. Tunjukkan data store pada level ini.
4) Buat diagram anak untuk tiap process yang ada di diagram 0.
5) Periksa kesalahan dan pastikan label yang diberikan pada tiap process dan
data flow tepat dan berarti.
6) Kembangkan sebuah physical data flow diagram dari logical data flow
diagram. Bedakan antara proses manual dan otomatis, jelaskan file
sebenarnya dan laporan berdasarkan nama, dan tambahkan kontrol untuk
mengindikasikan ketika proses lengkap atau terjadi kesalahan.
7) Lakukan partisi physical data flow diagram dengan memisahkan atau
mengelompokkan bagian-bagian dari diagram yang bertujuan untuk
memfasilitasi tahap pemrograman dan implementasi.

32
BAB IV
ANALISIS DAN PERANCANGAN

4.1 Analisis Penjadwalan Mata Kuliah

Penjadwalan mata kuliah bertujuan untuk menempatkan kelas mata kuliah


ke dalam slot-slot ruang dan waktu dalam rangka aktifitas perkuliahan. Saat ini
proses penjadwalan dibuat di masing-masing program studi di fakultas MIPA
UGM.
Fakultas MIPA UGM terdiri dari 4 jurusan, yaitu jurusan fisika, jurusan
kimia, jurusan matematika, serta jurusan ilmu komputer dan elektronika. Program
studi pada jenjang S1 (strata 1) yang ada di masing-masing jurusan ditunjukan
pada tabel 4.1.
Tabel 4.1 Daftar jurusan dan program studi S1 di Fakultas MIPA UGM
Jurusan Program Studi
Fisika S1 Fisika
S1 Geofisika
Kimia S1 Kimia
Matematika S1 Matematika
S1 Statistika
Ilmu Komputer dan S1 Ilmu Komputer
Elektronika S1 Elektronika dan Instrumentasi

Kegiatan perkuliahan untuk semua program studi secara standar dari


akademik fakultas dimulai pada jam 07.30 pagi sampai dengan jam 17.20 sore
dibagi dalam 10 sesi kecuali pada hari Jumat yang terdapat 8 sesi dengan
meniadakan jam 11.20 - 13.00 karena untuk ibadah sholat Jumat untuk civitas
akademika di UGM yang mayoritas beragama islam.

33
4.1.1 Mekanisme penjadwalan mata kuliah di fakultas MIPA UGM

Penjadwalan mata kuliah di fakultas MIPA UGM diawali dengan


penyusunan program kurikulum yang digunakan untuk jangka waktu 5 tahun yaitu
menentukan mata kuliah wajib dan mata kuliah pilihan setiap semester di masing-
masing program studi, setelah itu diusulkan nama dosen yang akan mengajar mata
kuliah yang ditawarkan beserta rekomendasi ruang berdasarkan blok ruang
program studi yang disepakati. Jika suatu jurusan mewajibkan mahasiswanya
mengambil mata kuliah milik jurusan lain, maka jurusan akan meminta dosen dari
jurusan penyelenggara mata kuliah atau menitipkan mahasiswanya pada kelas di
jurusan penyelenggara mata kuliah. Jumlah kelas untuk suatu mata kuliah
diputuskan berdasarkan peserta mata kuliah tahun lalu jika kurikulum masih sama,
dan berdasarkan perkiraan jika kurikulumnya baru.
Kemudian daftar mata kuliah dan dosen dari program studi dibahas
melalui rapat di masing-masing jurusan. Hal-hal yang dibahas pada rapat itu
antara lain masalah mata kuliah dan penugasan dosen untuk jurusan itu sendiri,
jurusan lain dan fakultas lain. Sebagai salah satu fakultas ilmu dasar, fakultas
MIPA berkewajiban menugaskan dosen-dosennya untuk memberikan kuliah di
fakultas lain yang menyelenggarakan ilmu dasar seperti misalnya fisika dasar,
kimia dasar, kalkulus, dan lain-lain. Hasil dari rapat masing-masing jurusan
diserahkan kepada fakultas dan selanjutnya digunakan untuk menetapkan jadwal
kuliah.
Fakultas bertugas menyusun kembali penjadwalan ruang untuk semua
mata kuliah berdasarkan efisiensi penggunaan kapasitas ruang. Penyusunan
kembali dilakukan setelah proses pengisian kartu rencana studi oleh mahasiswa,
karena pemilihan ruangan memerlukan data jumlah peserta mata kuliah.

34
4.1.2 Karakteristik komponen utama penjadwalan mata kuliah

Penjadwalan mata kuliah tersusun dari beberapa komponen utama seperti


kelas mata kuliah, ruang, dan waktu. Masing-masing komponen ini memiliki
karakteristik yang digunakan dalam proses pembuatan jadwal mata kuliah.
Kelas mata kuliah terbentuk dari sekumpulan mahasiswa yang mengambil
mata kuliah yang sama pada semester tertentu. Ruang di fakultas MIPA memiliki
kapasitas terbatas sehingga untuk kelas mata kuliah tertentu yang jumlah
mahasiswa melebihi kapasitas ruang maksimal akan dipecah menjadi beberapa
kelas yang lebih kecil disebut kelas paralel. Kegiatan perkuliahan pada kelas
paralel biasanya diselenggarakan dalam waktu yang sama. Kelas mata kuliah
tersusun oleh beberapa komponen yaitu jumlah peserta/mahasiswa, mata kuliah,
dan dosen.
Mata kuliah merupakan sumber daya dari perguruan tinggi yang
ditawarkan di setiap program studi pada semester tertentu sesuai dengan
kurikulum yang digunakan. Mata kuliah terdiri dari mata kuliah wajib dan pilihan
yang telah dipaketkan di setiap semester. Contoh daftar mata kuliah ditunjukan
pada tabel 4.2.
Tabel 4.2 Contoh daftar mata kuliah
Kode Nama Mata Kuliah Sks Semester Sifat Paket Semester
Mik-3001 Filsafat ilmu komputer 2 Ganjil Wajib 3
Mik-4503 Enterprise system 3 Ganjil Wajib 3
Mik-1253 Matematika diskrit II 3 Genap Wajib 4
Mik-4403 Jaringan syaraf tiruan 3 Gasal Pilihan 3
Mik-4207 Algoritma genetika 3 Gasal Pilihan 5
Mik-4453 Sistem pakar 3 Genap Pilihan 4

Masing-masing mata kuliah akan diampu oleh dosen pengajar. Dosen


dapat mengampu lebih dari satu mata kuliah di setiap semester pada jam yang
berbeda. Contoh daftar dosen ditunjukan pada tabel 4.3.

35
Tabel 4.3 Contoh dosen dengan mata kuliah yang diampu
Dosen Mata Kuliah yang Diampu
Sri Mulyana, Drs., M.Kom MMS-1801, MMS-2702
Medi, Drs., M.Kom. MIK-2601
Suprapto, Drs., M.Ikom. MIK-4203, MIK-2203
Y. Suyanto, Drs., M.Kom MMS-2806

Dari komponen mata kuliah dan dosen serta sejumlah peserta/mahasiswa


yang mengambil mata kuliah tersebut dikombinasikan menghasilkan kelas mata
kuliah seperti yang ditunjukan pada gambar 4.4.
Tabel 4.4 Contoh daftar kelas mata kuliah
Jumlah
Kelas Mata Kuliah Dosen Mata kuliah
Mahasiswa
ILKOM-A- Medi, Drs., M.Kom. 69 Analisis dan
MIK4651 Desain Protokol
ILKOM-B- Medi, Drs., M.Kom. 74 Analisis dan
MIK4651 Desain Protokol
MAT-UMM101 Karlina Denistia, S.S., 54 Bahasa inggris
M.A.
Irwan Endrayanto A.,
S.Si., M.Sc., Dr.

Ruang merupakan tempat penyelenggaraan kuliah. Semua ruang kuliah di


fakultas MIPA dapat digunakan pada semua jam kuliah yang ada. Kapasitas
masing-masing ruangan untuk menampung jumlah peserta dapat berbeda-beda
tergantung dari besarnya ruangan. Berikut adalah contoh ruang dan kapasitas
maksimalnya yang ditunjukan pada tabel 4.5.
Tabel 4.5 Contoh daftar ruang dan kapasitas maksimalnya
Nama Ruang Kapasitas Maksimal
B1.02 150
T2.01 100
U2.01 80
U2.06 30

36
Waktu merupakan kombinasi dari hari dan jam yang digunakan dalam
penyelenggaraan mata kuliah. Di fakultas MIPA, kegiatan kuliah diadakan selama
5 hari dalam seminggu yakni dari Senin hingga Jumat. Kegiatan perkuliahan
dalam sehari dibagi menjadi 10 sesi dengan setiap sesinya 50 menit yang berbobot
1 SKS. Berikut adalah daftar urutan satuan waktu yang digunakan. Contoh daftar
waktu ditunjukan pada tabel 4.6.
Tabel 4.6 Daftar sesi kuliah
Sesi Jam Sesi Jam
1 07.30 - 08.20 6 12.30 - 13.20
2 08.30 - 09.20 7 13.30 - 14.20
3 09.30 - 10.20 8 14.30 - 15.20
4 10.30 - 11.20 9 15.30 - 16.20
5 11.30 - 12.20 10 16.30 - 17.20

Kombinasi semua komponen utama membentuk penjadwalan mata kuliah.


Penjadwalan mata kuliah dikatakan optimal jika semua aturan yang ditentukan
dapat terpenuhi. Berikut adalah contoh penjadwalan mata kuliah yang dibentuk
dari kombinasi komponen-komponen utama seperti yang ditunjukan pada tabel
4.7.
Tabel 4.7 Contoh jadwal mata kuliah
Kelas Hari Sesi Ruang Sks
ILKOM-A-MIK4651 Kamis 1-2 T2.01 3
ILKOM-B-MIK4651 Rabu 4-5 M2.14 3
MAT-UMM101 Senin 7-8 S2.03 3
KIMIA-A-MKK2502 Kamis 10 S2.S3 3

4.1.3 Aturan umum penjadwalan mata kuliah

Penjadwalan memiliki aturan yang wajib dipenuhi dalam mengalokasikan


ruang dan waktu ke dalam kelas-kelas mata kuliah. Aturan-aturan tersebut
dinamakan aturan umum. Apabila aturan umum dilanggar maka jadwal tidak
dapat digunakan dan harus dicari alternatif jadwal yang lain. Berdasarkan
wawancara yang dilakukan kepada Ibu Erri Ismiyati, S.I.P selaku narasumber dari

37
fakultas MIPA, terdapat beberapa aturan umum yang dipakai yakni sebagai
berikut:
1. Durasi kelas mata kuliah tidak lebih dari jam 17.20 pada hari yang sama.
Waktu perkuliahan pada jenjang S1 reguler setiap hari diadakan sesuai
jadwal waktu yang ditentukan yakni sebanyak 10 sesi dari pukul 07.30
hingga pukul 17.20.
2. Durasi kelas mata kuliah tidak diadakan pada hari Jumat jam 11.30 -
13.00. Sesuai aturan kriteria penjadwalan yang digunakan sekretariat
akademik di fakultas MIPA Universitas Gadjah Mada, pada hari jumat
pukul 11.30 hingga 13.00 tidak diadakan kegiatan perkuliahan karena
bertepatan dengan ibadah sholat jumat.
3. Kelas mata kuliah yang satu paket pada program studi yang sama tidak
diadakan pada waktu yang sama. Mata kuliah yang memiliki paket
semester yang sama akan digunakan sebagai alternatif pilihan bagi
mahasiswa di masing-masing program studinya sehingga mahasiswa dapat
mengambil mata kuliah pada semester tersebut tanpa harus terjadi bentrok
waktu.
4. Kapasitas ruang kelas mata kuliah lebih dari atau sama dengan jumlah
peserta. Setiap ruang memiliki kapasitas yang berbeda dan dapat
digunakan maksimal sejumlah peserta kelas mata kuliah.
5. Dosen yang sama tidak mengajar lebih dari satu kelas mata kuliah pada
waktu yang sama. Dosen pengajar ditugaskan untuk mengajar 1 kelas
dalam 1 waktu. Pada implementasinya, kelas berbeda dapat dijadwalkan
dengan dosen yang sama pada waktu yang sama apabila salah satu kelas
termasuk team-teaching (kelas memiliki lebih dari satu dosen pengajar)
yakni membagi penugasan kepada dosen yang lain ketika pelaksanaan
kuliah.
6. Pertemuan kelas mata kuliah yang lebih dari satu kali diadakan pada hari
yang berbeda. Biasanya terjadi pada mata kuliah 3 sks yang dipecah

38
menjadi 2 sks dan 1 sks. Maka pertemuan kelas tersebut diselenggarakan
pada hari yang berbeda.
7. Kelas mata kuliah wajib yang berdekatan jenis semesternya (ganjil/genap)
pada paket semester yang sama dan program studi yang sama, tidak
diadakan pada waktu yang sama. Mata kuliah wajib memiliki prioritas
dalam penyelenggaraannya daripada mata kuliah pilihan, karena mata
kuliah wajib adalah mata kuliah yang harus diselesaikan dalam masa studi.
Oleh karena itu mata kuliah wajib dijadwalkan pada waktu yang tidak
bertabrakan satu sama lain.
8. Kelas yang memiliki mata kuliah yang sama (kelas paralel) diadakan pada
waktu yang sama. Mata kuliah yang dibagi menjadi beberapa kelas, maka
diselenggarakan dalam waktu yang sama. Hal ini digunakan untuk
mempermudah pembuatan jadwal ujian pada kelas mata kuliah yang sama
diadakan juga pada waktu yang sama.
9. Kelas kemipaan dari mata kuliah bersama diadakan pada sesi pertama dan
dijadwalkan secara merata harinya. Kelas kemipaan terbentuk dari mata
kuliah bersama yang biasanya terdiri dari beberapa kelas sekaligus.
Sehingga penjadwalan waktunya diambil di sesi pertama dan disebar
secara merata pada jadwal mingguannya. Misalnya kelas kemipaan terdiri
dari 8 kelas, maka penjadwalannya tiap 2 kelas ditempatkan pada hari
yang sama demikian seterusnya dari senin hingga kamis, maka selama 4
hari tersebut akan ada 2 kelas kemipaan pada jam yang sama di ruang yang
berbeda.

4.1.4 Aturan khusus penjadwalan mata kuliah

Penjadwalan memiliki aturan yang tidak wajib dipenuhi namun jika


dipenuhi maka semakin baik kualitas jadwal yang dihasilkan. Aturan-aturan
tersebut dinamakan aturan khusus. Berdasarkan wawancara yang dilakukan

39
kepada Ibu Erri Ismiyati, S.I.P selaku narasumber dari fakultas MIPA, terdapat
beberapa aturan khusus yang dipakai yakni sebagai berikut:
1. Kelas mata kuliah pilihan dengan kelas mata kuliah wajib pada program
studi yang sama dan paket semester yang berdekatan jenis semesternya
(ganjil/genap), tidak diadakan pada waktu yang sama. Hal ini digunakan
mengingat banyaknya mahasiswa yang sering mengulang mata kuliah
pilihan pada semester tahun sebelumnya namun kadang tidak dapat
diambil karna bertabrakan waktunya dengan mata kuliah wajib pada
semester saat mahasiswa sedang mengisi Kartu Rencana Studi (KRS).
2. Kelas mata kuliah diadakan pada ruang yang sesuai dengan program studi.
Terdapat kesepakatan di fakultas, untuk membagi ruang yang tersedia
kepada program studi untuk digunakan sebagai kelas perkuliahan. Namun
kesepakatan ini tidak harus terpenuhi, karena kemungkinan dapat terjadi
seperti kasus ruang dengan kapasitas 100 ditempati mahasiswa yang hanya
berjumlah 10 orang. Sehingga perlu dialokasikan ke ruang yang lainnya
yang kapasitasnya mendekati jumlah mahasiswa. Dan ruang yang diambil
bisa dari ruang milik program studi lainnya.
3. Kelas mata kuliah yang memiliki paket yang sama maksimal berjumlah 8
sks dalam sehari. Hal ini dilakukan agar mahasiswa tidak merasa jenuh
dalam mengikuti kegiatan perkuliahan dalam sehari.
4. Ruang kelas ditempati minimal sejumlah prosentase dari kapasitasnya.
Biasanya fakultas memiliki kriteria perkiraan kapasitas ruang kelas
minimal yang harus terpenuhi agar ruang terpakai secara optimal.
5. Waktu kelas mata kuliah diadakan sesuai dengan rekomendasi waktu
dosen pengajar yang bersangkutan. Dosen pengajar kadangkala memiliki
aktifitas yang padat di luar tugasnya dalam menjalankan perkuliahan.
Sehingga dosen dapat memberi rekomendasi waktu jadwal sesuau yang dia
inginkan.

40
4.1.5 Kriteria mata kuliah

Pada dasarnya penjadwalan mata kuliah diimplementasikan dengan


pemilihan ruang dan waktu yang terdapat pada fakultas sesuai dengan aturan yang
telah ditetapkan. Pemilihan ruang hanya dapat dilakukan jika ruang tersebut ada
dan disediakan oleh fakultas. Maka pada proses penjadwalan, mata kuliah yang
dijadwalkan adalah mata kuliah yang dicalonkan untuk menempati ruang-ruang
yang telah disediakan fakultas sesuai kriteria yang ditentukan. Terdapat beberapa
kriteria mata kuliah yang tidak termasuk dalam penjadwalan jika diamati dari
masing-masing karakter mata kuliah tersebut antara lain:
1. Mata kuliah praktikum. Mata kuliah praktikum diselenggarakan pada
ruang praktikum yang telah disediakan khusus oleh fakultas dan tidak
termasuk ke dalam referensi ruang yang digunakan dalam penjadwalan.
2. Mata kuliah seminar. Mata kuliah seminar seperti seminar tugas akhir
biasanya telah disediakan ruang khusus seperti ruang siding.
3. Mata kuliah tugas akhir / tugas khusus / skripsi / penelitian. Mata kuliah
tugas akhir tidak memerlukan ruang dalam pelaksanaannya.
4. Mata kuliah praktek / kerja lapangan. Mata kuliah praktek / kerja lapangan
tidak menggunakan ruang dalam pelaksanaannya.
5. Mata kuliah KKN. Mata kuliah KKN tidak menggunakan ruang dalam
pelaksanaannya.
6. Mata kuliah untuk kelas internasional. Mata kuliah kelas internasional
biasanya telah disediakan ruang khusus oleh jurusan.
7. Mata kuliah yang diadakan di fakultas lain (agama budha, agama hindu,
dan lain-lain). Mata kuliah ini biasanya diadakan di fakultas lain seperti
fakultas filsafat sehingga tidak menggunakan ruang yang telah
direferensikan dari fakultas MIPA UGM.

41
4.2 Analisis Kebutuhan Aplikasi

Pada analisis kebutuhan aplikasi yang dilakukan adalah analisis kebutuhan


fungsional dan analisis kebutuhan non fungsional.

4.2.1 Kebutuhan fungsional

Kebutuhan fungsional adalah jenis kebutuhan yang berisikan proses-


proses yang mampu diberikan oleh aplikasi yang akan dibangun. Kebutuhan
fungsional pada aplikasi yang dibuat meliputi:
1. Aplikasi mampu mengelola data yang digunakan dalam penjadwalan.
2. Aplikasi dapat melakukan prediksi jumlah peserta mata kuliah serta
menampilkan hasil prediksinya.
3. Aplikasi mampu melakukan pembangkitan kelas dengan jumlah peserta
dari hasil prediksi.
4. Aplikasi dapat melakukan penjadwalan mata kuliah serta menampilkan
hasil jadwal yang didapatkan.

4.2.2 Kebutuhan non fungsional

Kebutuhan non-fungsional merupakan kebutuhan yang memberikan


batasan terhadap kebutuhan fungsional. Kebutuhan non-fungsional pada aplikasi
meliputi:
1. Aplikasi menggunakan browser untuk menjalankannya.
2. Aplikasi membutuhkan web server.
3. Aplikasi membutuhkan database MySQL.
4. Aplikasi membutuhkan software pengolah sheet seperti Microsoft Excel.

4.3 Perancangan Basis Data

Perancangan basis data diperlukan untuk memodelkan hubungan antar


data serta menyedikan struktur informasi bagi sistem. Pada perancangan basis data

42
dalam penelitian ini pertama terdapat rancangan bisnis yang terjadi kemudian
dimodelkan dengan diagram E-R (Entity Relationship).

4.3.1 Perancangan bisnis proses

Perancangan bisnis proses terbagi menjadi 3 kebutuhan yakni kebutuhan


entitas, atribut, dan relasi.
a. Entitas dan atribut
Dalam penjadwalan mata kuliah terdapat beberapa entitas yang digunakan
serta atribut atribut penyusunnya yaitu :
1) mata_kuliah_kur_rekap : digunakan untuk menyimpan jumlah peserta
mata kuliah pada tahun tertentu.
Dengan atribut sebagai berikut:
a) mkkurrkp_id: merupakan atribut primary key.
b) mkkurrkp_tahun: merupakan tahun jumlah peserta mata kuliah.
c) mkkurrkp_jml_peminat: jumlah peserta untuk mata kuliah pada tahun
tertentu.
2) mata_kuliah_kurikulum : digunakan untuk menyimpan data mata kuliah
yang digunakan dalam penjadwalan.
Dengan atribut sebagai berikut:
a) mkkur_id: merupakan atribut primary key.
b) mkkur_nama: nama mata kuliah.
c) mkkur_kode: kode mata kuliah.
d) mkkur_sks: jumlah sks mata kuliah.
e) mkkur_paket: paket semester mata kuliah.
f) mkkur_smt: semester mata kuliah (ganjil atau genap).
g) mkkur_sifat: sifat mata kuliah (wajib atau pilihan)
3) dosen : digunakan untuk menyimpan data dosen.
Dengan atribut sebagai berikut:
a) dsn_id: merupakan atribut primary key.

43
b) dsn_nip: nomor induk pegawai pada dosen.
c) dsn_nama: nama dosen.
4) ruang: digunakan untuk menyimpan data ruang yang digunakan dalam
penjadwalan.
Dengan atribut sebagai berikut:
a) ru_id: merupakan atribut primary key.
b) ru_kode: kode pada ruang.
c) ru_nama: nama ruang.
d) ru_kapasitas: kapasitas atau daya tamping ruang mata kuliah.
e) ru_is_cadangan: kondisi jika ruang termasuk ruang cadangan.
5) waktu: digunakan untuk menyimpan data waktu yang digunakan dalam
penjadwalan.
Dengan atribut sebagai berikut:
a) wkt_id: merupakan atribut primary key.
b) wkt_jam_mulai: jam mulainya waktu/sesi perkuliahan.
c) wkt_jam_selesai: jam selesainya waktu/sesi perkuliahan.
d) wkt_hari: hari untuk waktu/sesi perkuliahan.
e) wkt_is_kuliah: kondisi jika waktu/sesi digunakan perkuliahan.
6) program_studi: digunakan untuk menyimpan data program studi yang
terdapat di fakultas MIPA UGM.
Dengan atribut sebagai berikut:
a) prodi_id: merupakan atribut primary key.
b) prodi_kode: kode program studi, contoh: KIM (Kimia).
c) prodi_nama: nama program studi.
7) kelas: digunakan untuk menyimpan data kelas mata kuliah yang akan
dijadwalkan dosen, ruang, dan waktunya.
Dengan atribut sebagai berikut:
a) kls_id: merupakan atribut primary key.
b) kls_nama: nama kelas mata kuliah.

44
c) kls_mkkur_id: id mata kuliah.
d) kls_kode_par: kode kelas paralel pada mata kuliah jika kelasnya lebih
dari 1.
e) kls_jml_predk: jumlah peserta kelas mata kuliah dari hasil prediksi.
b. Relasi / hubungan
Masing-masing entitas pada penjadwalan memiliki relasi dan kardinalitas
seperti yang ditunjukkan pada tabel 4.8.
Tabel 4.8 Kardinalitas pada entitas
entitas relationship entitas tujuan kardinalitas
mata_kuliah_kurikulum memiliki mata_kuliah_kur_rekap 1:N
memiliki kelas 1:N
dosen mengampu kelas M:N
merekomendasikan waktu M:N
program_studi memiliki ruang M:N
menyelenggarakan mata_kuliah_kurikulum 1:N
kelas kuliah pada ruang 1:N
kuliah pada waktu 1:N

4.3.2 Perancangan diagram E-R

Diagram E-R berisi komponen-komponen himpunan entitas dan himpunan


relasinya. Diagram E-R ditampilkan pada gambar 4.1

45
Gambar 4.1 Diagram E-R
Diagram E-R yang dihasilkan seperti yang nampak pada gambar 4.1 akan
dipergunakan dalam pengembangan basis data seperti yang telah
diimplementasikan pada bab berikutnya ditunjukan pada gambar 5.1.

4.4 Perancangan Proses

Proses utama dalam menghasilkan jadwal dapat dibagi menjadi 3 tahap,


yakni proses prediksi peserta mata kuliah, proses pembangkitan kelas, dan proses

46
penjadwalan kelas mata kuliah. Proses prediksi peserta mata kuliah digunakan
untuk menggambarkan proses dalam mendapatkan jumlah peserta mata kuliah
melalui prediksi dari jumlah peserta mata kuliah pada tahun yang sebelum-
sebelumnya yang telah berjalan. Proses pembangkitan kelas digunakan untuk
membentuk kelas-kelas mata kuliah berdasarkan jumlah peserta hasil prediksi.
Proses penjadwalan kelas digunakan dalam melakukan automatisasi penjadwalan
dengan aturan-aturan yang sudah ditetapkan oleh fakultas pada kelas-kelas mata
kuliah yang dibentuk melalui proses pembangkitan kelas. Untuk menggambarkan
tahapan proses yang terjadi secara garis besar dapat dilihat pada gambar 4.2.

Gambar 4.2 Tahapan proses utama secara umum

4.4.1 Perancangan proses prediksi peserta mata kuliah

Perancangan proses prediksi peserta mata kuliah akan diimplementasikan


menggunakan jaringan syaraf tiruan yang terdiri dari perancangan yang lebih
spesifik seperti perancangan model jaringan syaraf tiruan, proses pelatihan, dan
proses pengujian.

47
1. Perancangan model jaringan syaraf tiruan
Prediksi jumlah peserta mata kuliah menggunakan model jaringan syaraf
yang berupa time series yakni rangkaian berupa vektor atau skalar yang
bergantung pada satuan waktu. Metode pembelajaran jaringan syaraf tiruan yang
digunakan adalah backpropagation dengan komponen sebagai berikut:
a. Neuron
Jaringan syaraf tiruan tersusun dari beberapa neuron yang saling terhubung
yang merupakan unit pengolah informasi yakni berupa jumlah peserta mata
kuliah. Struktur neuron jaringan syaraf yang digunakan seperti yang
ditunjukkan pada gambar 4.3.

Gambar 4.3 Struktur neuron


b. Bobot
Hubungan dari masing-masing neuron memiliki suatu nilai yang dikenal
sebagai bobot. Besar nilai bobot pertama kali ditentukan secara acak. Nilai
random pada bobot awal didapatkan dari persamaan 4.1.
(0, maks)
= + (4.1)

Persamaan di atas digunakan untuk mendapatkan nilai random pada range


hingga dengan batas bilangan acak yang bernilai maks.
c. Layer
Pada jaringan syaraf, neuron-neuron dikumpulkan dalam lapisan-lapisan
yang disebut layer. Struktur jaringan syaraf tiruan yang digunakan terdiri
dari 3 layer yakni input layer, hidden layer, dan output layer dengan skema

48
yang dipakai adalah 3-3-1. Pada input layer terdapat 3 neuron sebagai
masukan dan 1 neuron bias untuk semua neuron pada hidden layer. Nilai
masukan ini berupa data tahunan jumlah peserta pada tahun sebelumnya
dari tahun target t. Pada hidden layer digunakan 3 neuron dan 1 neuron
bias. Pada output layer terdapat 1 neuron sebagai keluaran yakni target
jumlah peserta yang ingin diprediksi pada tahun t.
d. Fungsi aktifasi
Setiap neuron pada jaringan syaraf memiliki fungsi aktifasi yang digunakan
dalam menentukan keluaran suatu neuron. Pada jaringan syaraf ini
memakai fungsi aktifasi sigmoid karena mudah untuk diturunkan. Fungsi
sigmoid ditunjukkan oleh persamaan 4.2.
1
= ( )= (4.2)
1+e
Komponen-komponen tersebut kemudian digunakan dalam membangun model
jaringan syaraf tiruan seperti yang dapat ditunjukkan pada gambar 4.4.

49
Gambar 4.4 Model jaringan syaraf
2. Perancangan proses pelatihan jaringan
Proses pelatihan digunakan untuk mendapatkan jaringan syaraf tiruan
dengan bobot yang sesuai. Proses pelatihan yang memakai backpropagation ini
meliputi 3 fase, yakni fase propagasi maju, fase propagasi mundur, dan fase
perubahan bobot. Fase propagasi maju menghitung maju pola masukan mulai dari
input layer hingga output layer menggunakan fungsi aktifasi sigmoid. Selisih
antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan
(error) yang terjadi. Kesalahan tersebut dipropagasikan mundur pada fase
propagasi mundur, dimulai dari garis yang berhubungan langsung dengan unit-
unit di output layer. Fase perubahan bobot adalah modifikasi bobot untuk
menurunkan kesalahan yang terjadi. Sebelum data jumlah peserta diproses oleh
jaringan syaraf, data dinormalisasikan yang besarnya terletak antara 0 dan 1
karena berhubungan dengan penggunaan fungsi sigmoid yang tidak pernah

50
menghasilkan 0 atau 1. Untuk menghitung nilai baru hasil normalisasi yang
terletak pada range nilai hingga ditunjukan oleh persamaan 4.3.
min( )
= + (4.3)
max( ) min( )
Nilai baru hasil persamaan 4.3 kemudian digunakan sebagai masukan dan target
pada proses pelatihan jaringan syaraf tiruan. Tahapan proses pelatihan ini dapat
dijelaskan sebagai berikut:
a. Fase I : Propagasi maju
1) Nilai masukan dipropagasikan ke hidden layer dan output layer
menggunakan fungsi aktifasi sigmoid dan menghasilkan nilai keluaran.
2) Hasil nilai keluaran jaringan kemudian dibandingkan dengan target
dengan cara dicari selisih antara target dengan keluaran untuk
mendapatkan kesalahan (error) yang terjadi.
3) Kesalahan (error) yang terjadi dipakai dalam menentukan rata-rata
kesalahan jaringan yakni MSE (Mean Square Error) dengan menerapkan
persamaan 3.20 yang kemudian dibandingkan dengan batas toleransi
(threshold), apabila nilai MSE lebih kecil dari batas toleransi yang
ditentukan maka pelatihan bobot pada jaringan selesai. Akan tetapi jika
kesalahan bernilai lebih besar daripada batas toleransi maka bobot dalam
jaringan akan diubah untuk mengurangi kesalahan yang terjadi melalui
fase selanjutnya.
b. Fase II : Propagasi mundur
1) Hasil nilai kesalahan kemudian digunakan untuk mendapatkan faktor
kesalahan yang digunakan dalam pendistribusian kesalahan di unit
output layer ke semua unit pada hidden layer.
2) Faktor kesalahan pada output layer juga dipakai untuk mendapatkan
perubahan bobot antara output layer dan hidden layer.

51
3) Dengan langkah yang sama, dicari faktor kesalahan untuk setiap unit
pada hidden layer yang kemudian digunakan untuk mendapatkan
perubahan bobot antara hidden layer dan input layer.
c. Fase III : Perubahan bobot
1) Perubahan bobot yang didapatkan pada masing-masing penghubung
layer, kemudian digunakan untuk mengubah bobot jaringan syaraf
sehingga didapatkan bobot-bobot yang baru.
Ketiga fase ini diulang hingga kondisi penghentian terpenuhi. Pengulangan atau
iterasi dalam perubahan bobot dikenal dengan epoch. Kondisi penghentian terjadi
yakni apabila jumlah epoch telah melebihi dari jumlah epoch yang ditetapkan,
atau jika nilai MSE sudah lebih kecil dari batas toleransi (threshold) yang
dimasukkan.
3. Perancangan proses pengujian jaringan
Setelah proses pelatihan jaringan syaraf selesai dilakukan dan telah
didapatkan bobot yang baik, kemudian jaringan syaraf digunakan dalam proses
pengujian dengan menerapkan fase pertama pada pelatihan jaringan syaraf untuk
menghasilkan output yang merupakan hasil prediksi. Pengujian dilakukan untuk
mendapatkan hasil prediksi jumlah peserta pada tahun yang aktif, dengan data uji
berupa rekap jumlah peserta dari 3 tahun sebelumnya berturut-turut pada masing-
masing mata kuliah. Hasil pengujian berupa keluaran hasil prediksi yang masih
ternormalisasi, sehingga perlu dilakukan denormalisasi untuk dapat dikembalikan
ke nilai yang sebelum dilakukan normalisasi dengan range yang sama yakni
hingga menggunakan persamaan 4.4.

= (max( ) min( )) + min ( ) (4.4)

Kemudian dilakukan juga pengukuran akurasi prediksi yang dilakukan antara


hasil prediksi yang telah didapatkan dengan target jumlah peserta pada mata
kuliah yang sama dengan menggunakan persamaan 4.5.

52
| |
= 100% 100% (4.5)

4.4.2 Perancangan proses pembangkitan kelas

Proses penjadwalan pada intinya adalah mengalokasikan ruang dan waktu


pada kelas mata kuliah. Mata kuliah harus dipecah menjadi kelas-kelas sesuai
dengan aturan pembuatan kelas karena kemungkinan terdapat jumlah peserta mata
kuliah yang melebihi ambang batas maksimal suatu kelas. Proses pembangkitan
kelas dari mata kuliah dilakukan dengan aturan-aturan berikut ini:
1. Mata kuliah dapat memiliki batasan daya tampung maksimal masing-masing
yang akan digunakan dalam pembangkitan kelas. Secara default, mata kuliah
menggunakan batasan maksimal yang telah ditetapkan di tiap kelas, tetapi
jika tidak ditetapkan maka menggunakan batasan maksimal standar yang
ditetapkan oleh fakultas.
2. Kelas dibangkitkan menggunakan kondisi:
i. Jika jumlah peserta kurang dari ambang batas minimal kelas.
ii. Jika ambang batas minimal kurang dari atau sama dengan jumlah
peserta dan ambang batas maksimal lebih dari atau sama dengan jumlah
peserta.
iii. Jika jumlah peserta lebih dari ambang batas maksimal.
3. Pada kondisi i, hanya kelas yang berasal dari mata kuliah wajib yang dapat
dibuat meskipun jumlah peserta tidak ada.
4. Pada kondisi ii berlaku:
a. Mata kuliah universal yakni mata kuliah yang sifatnya umum dan tidak
terikat pada program studi tertentu, penamaan kelas dilakukan sama
dengan kode mata kuliahnya. Contoh: UNU1000 untuk mata kuliah
agama islam.
b. Mata kuliah bersama penamaan kelasnya memakai KEMIPAAN.

53
c. Mata kuliah non-universal dan terikat dengan program studi tertentu,
penamaan kelas dilakukan dengan menambahkan prefiks dari singkatan
program studi pada kode mata kuliahnya. Contoh: MAT-MMM1207
untuk mata kuliah aljabar vektor matriks.
d. Jumlah peserta kelas sama dengan jumlah peserta mata kuliah.
5. Pada kondisi iii berlaku:
a. Pada mata kuliah universal atau tidak terikat pada program studi tertentu,
penamaan kelas dilakukan dengan menambahkan imbuhan urutan pada
kode mata kuliah. Contoh: UNU1100-3 untuk mata kuliah
kewarganegaraan.
b. Mata kuliah bersama penamaan kelasnya memakai KEMIPAAN
beserta urutan kelasnya. Contoh: KEMIPAAN-2
c. Pada mata kuliah non-universal dan terikat dengan program studi tertentu,
penamaan kelas dilakukan dengan memperhatikan jenis program studi
gabungan atau program studi independen. Mata kuliah program studi
gabungan adalah satu mata kuliah yang terdiri dari beberapa program
studi. Mata kuliah program studi independen adalah mata kuliah yang tiap
kelasnya hanya terdiri dari satu program studi namun diselenggarakan
oleh beberapa program studi sekaligus.
1) Untuk mata kuliah program studi gabungan, penamaan kelas dengan
menambahkan prefiks berupa gabungan singkatan program studi
terkait serta urutan alfabetis pada kode mata kuliah. Contoh: MAT-
STAT-KIM-A-MIK2203 untuk mata kuliah analisis dan desain
algoritma 1 kelas A program studi matematika, statistika, dan kimia.
2) Untuk mata kuliah program studi independen, penamaan kelas dengan
menambahkan awalan prefiks berupa gabungan singkatan program
studi terkait serta urutan alfabetis pada kode mata kuliah. Contoh:
ILKOM-B-MIK2203 untuk mata kuliah analisis dan desain algoritma
1 kelas B program studi ilmu komputer.

54
d. Jumlah peserta kelas didapatkan melalui langkah-langkah di bawah ini:
1) Mencari jumlah kelas yang mungkin dari jumlah peserta seperti yang
ditunjukan pada persamaan 4.6.

= (4.6)

2) Mendapatkan sisa peserta dari pembagian kelas ditunjukan pada persamaan


4.7.
= % (4.7)

3) Mendapatkan jumlah peserta per kelas ditunjukan pada persamaan 4.8.



= (4.8)

Sisa pertama selalu dialihkan ke kelas pertama. Untuk mendapatkan jumlah


peserta per kelas ditunjukan pada persamaan 4.9.

, =0

=
(4.9)
+ , >0

4.4.3 Perancangan proses penjadwalan kelas mata kuliah

Pada perancangan proses penjadwalan kelas mata kuliah ini akan


diimplementasikan menggunakan algoritma genetika yang terdiri dari beberapa
tahapan yang lebih spesifik seperti perancangan pembangkitan kromosom,
perancangan metode pembangkitan populasi, perancangan nilai fitness individu,
perancangan metode seleksi, perancangan metode kawin silang (crossover),
perancangan metode mutasi, dan perancangan update generasi.
1. Perancangan pembangkitan kromosom
Pembangkitan kromosom dilakukan dengan memanfaatkan aturan umum
(hard constraint) dan diharapkan tiap kromosom yang dibangkitkan dapat
memenuhi semua aturan yang ada di dalamnya. Kromosom merepresentasikan
kandidat solusi jadwal yang akan dihasilkan yang terbentuk dari kumpulan kelas,

55
waktu, dan ruang. Panjang kromosom yang dibangkitkan sama dengan panjang
jumlah kelas mata kuliah. Waktu yang digunakan pada perkuliahan adalah 5 hari
dibagi dalam 10 sesi setiap harinya kecuali hari Jumat yang dibuat menjadi 8 sesi
sesuai dengan aturan umum yang telah ditentukan. Waktu perkuliahan yang
berjumlah 48 sesi ditunjukan pada tabel 4.8.

56
Tabel 4.9 Daftar waktu kuliah dalam seminggu

Senin Selasa Rabu Kamis Jumat


07.30 08.20 1 11 21 31 41
08.30 09.20 2 12 22 32 42
09.30 10.20 3 13 23 33 43
10.30 11.20 4 14 24 34 44
11.30 12.20 5 15 25 35
12.30 13.20 6 16 26 36
13.30 14.20 7 17 27 37 45
14.30 15.20 8 18 28 38 46
15.30 16.20 9 19 29 39 47
16.30 17.20 10 20 30 40 48

Dari 48 sesi waktu yang didapatkan kemudian dikombinasikan dengan


ruang menghasilkan matriks ruang waktu. Matriks ruang waktu dimodelkan
seperti yang ditunjukkan pada gambar 4.5.

Senin Jumat
Ruang/Waktu
1 2 3 4 5 6 7 8 9 10 1 2 3 4 7 8 9 10
S2.01 1 2 3 4 5 6 7 8 9 10 41 42 43 44 45 46 47 48
S2.02 49 50 51 52 53 54 55 56 57 58 89 90 91 92 93 94 95 96
M2.13 97 98 99 100 101 102 103 104 105 106 137 138 139 140 141 142 143 144
S2.03 145 146 147 148 149 150 151 152 153 154 185 186 187 188 189 190 191 192
K1 193 194 195 196 197 198 199 200 201 202 233 234 235 236 237 238 239 240
S2.505 241 242 243 244 245 246 247 248 249 250 281 282 283 284 285 286 287 288
S2.506 289 290 291 292 293 294 295 296 297 298 329 330 331 332 333 334 335 336
M2.10 337 338 339 340 341 342 343 344 345 346 377 378 379 380 381 382 383 384
M2.14 385 386 387 388 389 390 391 392 393 394 425 426 427 428 429 430 431 432
K6 433 434 435 436 437 438 439 440 441 442 473 474 475 476 477 478 479 480
M2.09 481 482 483 484 485 486 487 488 489 490 521 522 523 524 525 526 527 528
G3 529 530 531 532 533 534 535 536 537 538 569 570 571 572 573 574 575 576
S2.05 577 578 579 580 581 582 583 584 585 586 617 618 619 620 621 622 623 624
M2.12 625 626 627 628 629 630 631 632 633 634 665 666 667 668 669 670 671 672
U2.02 673 674 675 676 677 678 679 680 681 682 713 714 715 716 717 718 719 720
T2.01 721 722 723 724 725 726 727 728 729 730 761 762 763 764 765 766 767 768
U2.01 769 770 771 772 773 774 775 776 777 778 809 810 811 812 813 814 815 816

Gambar 4.5 Model matriks ruang waktu

Matriks ruang waktu berisi indeks yang merupakan angka yang berurutan
dari sesi pertama hingga terakhir pada hari senin hingga jumat untuk semua daftar
ruang mata kuliah. Tiap indeks pada matriks ruang waktu mewakili sesi, hari, dan
ruang. Indeks inilah yang kemudian secara acak akan mengisi gen-gen pada
kromosom dan masing-masing nilainya berbeda. Pada saat penentuan indeks
matriks ruang waktu pada sebuah gen dapat dilakukan lebih dari satu kali

57
pengacakan. Saat pengacakan, indeks matriks ruang waktu ini dapat gugur ketika
indeks tersebut tidak memenuhi salah satu aturan umum (hard constraints)
penjadwalan sehingga dilakukan pengacakan kembali hingga indeks benar-benar
layak atau memenuhi semua aturan umum. Model kromosom dapat ditunjukkan
seperti pada gambar 4.6.

Gambar 4.6 Kromosom penjadwalan


Gen akan menyimpan indeks yang terpilih serta indeks setelahnya
sebanyak jumlah sks kelas tersebut. Indeks matriks ruang waktu yang telah
digunakan pada gen kromosom tidak dapat dipilih kembali oleh gen lainnya pada
kromosom yang sama.
2. Perancangan metode pembangkitan populasi
Metode pembangkitan kromosom yang dilakukan adalah metode
pengacakan secara random permutasi pada indeks matriks ruang waktu dengan
menggunakan pengkodean nilai. Kromosom tersusun dari sejumlah gen yang
bernilai unik dari indeks matriks ruang waktu. Dalam pencarian gen secara acak
dilakukan pengecekan terhadap aturan umum hingga benar-benar memenuhi
aturan tersebut. Dari gen-gen yang telah memenuhi aturan-aturan umum, maka
akan digabungkan secara terurut menjadi satu kromosom. Slot-slot kromosom
mewakili kelas mata kuliah dan gen mewakili ruang dan waktu yang akan
dijadwalkan pada kelas tersebut, sehingga panjang kromosom berjumlah sama
dengan jumlah kelas mata kuliah. Populasi berisi beberapa kromosom yang telah

58
memenuhi aturan umum. Contoh rancangan populasi sebanyak N dengan jumlah
gen (kelas) sebanyak m ditunjukan pada gambar 4.7.

Gambar 4.7 Rancangan pembangkitan populasi

3. Perancangan nilai fitness individu


Nilai fitness pada individu menggunakan nilai antara 0 dan 1, dengan 0
jika sebuah kromosom melanggar semua aturan khusus, dan 1 jika semua aturan
khusus terpenuhi oleh kromosom. Masing-masing aturan khusus memiliki nilai
sebagai representasi dari masing-masing kromosom yang bernilai antara 0 dan 1,
dengan 0 jika kromosom tidak melanggar aturan khusus tersebut dan bernilai 1
jika kromosom melanggar aturan khusus tersebut. Fungsi fitness yang digunakan
adalah seperti yang ditunjukan pada persamaan 4.10.

= 1 (4.10)

1. Kelas mata kuliah pilihan dengan kelas mata kuliah wajib pada paket
semester yang berdekatan jenis semesternya (ganjil/genap) tidak diadakan
pada waktu yang sama.
Pada penilaian aturan ini diperoleh dengan mencari perbandingan antara
kelas mata kuliah pilihan yang jadwalnya bertumbukan dengan kelas mata
kuliah wajib pada paket semester yang jenis semesternya berdekatan,

59
kemudian dibagi dengan total kelas mata kuliah yang terdapat pada satu
kromosom. Nilai aturan pertama ditunjukan oleh persamaan 4.11.

1 = (4.11)

2. Kelas mata kuliah diadakan pada ruang yang sesuai dengan program studi.
Gen yang mewakili kelas pada kromosom dilakukan pengecekan terhadap
ruang hasil penjadwalan, yang kemudian diverifikasi kesesuaian dengan
blok program studinya. Apabila tidak sesuai maka akan dihitung sebagai
bentuk pelanggaran aturan dan dibagi dengan total gen kelas yang
mengandung blok prodi pada ruangnya. Nilai aturan ke-2 ditunjukan oleh
persamaan 4.12.

2 = (4.12)

3. Kelas mata kuliah yang memiliki paket yang sama maksimal berjumlah 8
sks dalam sehari.
Setiap gen pada kromosom dikelompokkan berdasarkan jadwal harinya
dari Senin hingga Jumat. Kemudian gen yang telah terklasifikasi tersebut
dikelompokkan kembali berdasarkan program studi dan paket
semesternya. Gen yang memiliki hari, program studi, dan paket yang sama
dijumlahkan sks-nya, apabila hasil jumlahan tersebut lebih dari 8 sks maka
dianggap sebagai sebuah pelanggaran. Pelanggaran-pelanggaran ini
kemudian dijumlahkan, dan dibagi jumlah total perkalian antara jumlah
hari dan jumlah program studi untuk menentukan nilai aturannya. Nilai
aturan ke-3 ditunjukan oleh persamaan 4.13.

3 = (4.13)

4. Ruang kelas ditempati minimal sejumlah persentase dari kapasitasnya.
Tiap gen memiliki ruang hasil dari penjadwalan dan jumlah peserta dari
hasil prediksi pada satu kromosom. Kemudian gen-gen tersebut

60
didapatkan nilai minimal jumlah peserta dari prosentase ruang sesuai
dengan yang ditentukan oleh fakultas. Apabila jumlah peserta kurang dari
nilai persentase minimal peserta dari ruang maka dianggap sebagai
pelanggaran. Pelanggaran-pelanggaran ini kemudian dihitung dan dibagi
dengan total gen yang ada pada kromosom untuk mendapatkan nilai
aturannya. Nilai aturan ke-4 ditunjukan oleh persamaan 4.15.

4 = (4.15)

5. Waktu kelas mata kuliah diadakan sesuai dengan rekomendasi waktu
dosen pengajar yang bersangkutan.
Gen kelas memiliki waktu penjadwalan dan dosen pengajar. Pada dosen
pengajar dilakukan pengecekan terhadap rekomendasi waktu dosen yang
bersangkutan. Jika dosen memiliki rekomendasi waktu tetapi tidak
terpenuhi maka dianggap sebagai pelanggaran aturan. Hasil pelanggaran
dari semua gen dijumlahkan kemudian dibagi dengan jumlah total gen
pada kromosom untuk mendapatkan nilai aturannya. Nilai aturan ke-5
ditunjukan oleh persamaan 4.16.

5 = 1 (4.16)

Sehingga didapatkan fungsi fitness dari hasil perhitungan masing-masing


aturan seperti yang ditunjukan pada persamaan 4.17 dan 4.18.

= 1 (4.17)


= 1 (4.18)
5
4. Perancangan metode seleksi
Pada penelitian ini digunakan seleksi roulette wheel dalam menyeleksi
orang tua yang akan dikawinkan dari kromosom-kromosom yang berada pada

61
populasi dengan menggunakan nilai fitness yang telah didapatkan. Jumlah
kromosom yang dihasilkan dari hasil seleksi adalah sebanyak jumlah kromosom.
5. Perancangan metode perkawinan silang
Metode perkawinan silang (crossover) yang digunakan adalah metode n-
point crossover dengan 2 titik (2-point crossover) menggunakan probabilitas .
Pertama kromosom yang telah terseleksi masing-masing dibangkitkan nilai
random yang kemudian dibandingkan dengan . Apabila nilainya kurang dari
atau sama dengan , maka kromosom tersebut ditandai sebagai parent. Setelah
parent didapatkan, kemudian dicari 2 titik potong kromosom secara acak dari
indeks gen 2 hingga n-1. Masing-masing parent dibuat berpasangan secara
sekuensial (parent A dan parent B, parent B dan parent C, parent C dan parent
A, dan seterusnya) yang kemudian dikawinkan silang menggunakan 2-point
crossover berdasarkan titik potong yang telah didapatkan hingga akhirnya
didapatkan offspring. Apabila terjadi duplikasi offspring, yakni terdapat gen yang
sama dalam satu kromosom atau dalam artian terdapat jadwal ruang dan waktu
yang sama, maka salah satu gen tersebut secara random akan memilih slot yang
kosong pada matriks ruang waktu yang belum digunakan sehingga kromosom
offspring tetap layak untuk menjadi solusi. Masing-masing offspring dihitung
fitness-nya kembali untuk penilaian kualitasnya. Contoh rancangan crossover
dengan titik potong a = 2 dan b = 5 ditunjukan pada gambar 4.8.

62
Gambar 4.8 Contoh proses 2-points crossover
6. Perancangan metode mutasi
Pada proses mutasi ini menggunakan kromosom offspring yang dihasilkan
dari proses crossover. Pertama membangkitkan nilai acak dari masing-masing
kromosom yang nilainya 1 atau 0 yang kemudian dibandingkan dengan ,
apabilai nilainya lebih kecil dari maka kromosom offspring tersebut
mengalami mutasi. Metode mutasi menggunakan mutasi pada pengkodean nilai,
yakni mengganti bagian gen yang posisinya didapatkan secara acak dengan indeks
waktu ruang yang belum digunakan. Setelah kromosom offspring mengalami
mutasi, kemudian dilakukan pengecekan kembali terhadap aturan umum. Jika
terjadi pelanggaran terhadap aturan umum maka indeks ruang waktu diganti
dengan indeks yang belum digunakan hingga didapatkan kromosom yang layak.
Kemudian masing-masing offspring dihitung fitness-nya kembali untuk penilaian
kualitasnya. Contoh rancangan mutasi ditunjukan pada gambar 4.9.

63
Gambar 4.9 Contoh proses mutasi
7. Perancangan update generasi
Pada proses update generasi dilakukan penggabungan kromosom offspring
hasil proses mutasi dan kromosom hasil seleksi sebelumnya. Kemudian dari
kumpulan kromosom tersebut dilakukan seleksi dengan menggunakan seleksi
roulette wheel sebanyak jumlah kromosom pada populasi yang digunakan.
Hasilnya berupa populasi yang berisi kromosom terpilih yang kemudian
menggantikan populasi sebelumnya.

4.4.4 Perancangan Data Flow Diagram (DFD)

Pada penelitian ini menggunakan Data Flow Diagram (DFD) untuk


menggambarkan proses yang terjadi pada sistem atau aplikasi.

1. Diagram konteks

Diagram konteks merupakan diagram yang menggambarkan sistem secara


keseluruhan dan bersifat umum. Pada aplikasi penjadwalan menerima input dan
mengirimkan output dari satu user. Input yang dikirimkan oleh user berupa data-
data yang dipergunakan dalam penjadwalan seperti data mata kuliah, data
program studi, data ruang dan sebagainya. Kemudian aplikasi akan merespon
dengan mengirimkan output kepada user berupa informasi yang berhubungan
dengan penjadwalan seperti informasi jadwal, informasi kelas, dan lain-lain.
Diagram konteks ditunjukkan pada gambar 4.10.

64
Gambar 4.10 Diagram konteks
Berikut keterangan singkatan yang terdapat pada rancangan DFD seperti yang
ditunjukan pada tabel 4.10.
Tabel 4.10 Keterangan label pada Data Flow Diagram
Label Keterangan Label Keterangan
dps data program studi ips informasi program studi
ddsn data dosen idsn informasi dosen
dmkk data mata kuliah kurikulum imkk informasi mata kuliah kurikulum
dwkt data waktu iwkt informasi waktu
dru data ruang iru informasi ruang
dmkrkp data mata kuliah rekap imkrkp informasi mata kuliah rekap
dkls data kelas ikls informasi kelas
djk data jadwal kuliah ijk informasi jadwal kelas
ddsnk data dosen kelas idsnk informasi dosen kelas
dju data jadwal ujian iju informasi jadwal kuliah
dmhk data mahasiswa kelas imhk informasi mahasiswa kelas
ddsnwkt data dosen waktu idsnwkt informasi dosen waktu
dmkkp data mata kuliah kur prodi imkkp informasi mata kuliah kur prodi

2. Diagram 0

Diagram 0 merupakan dekomposisi dari diagram konteks. Pada aplikasi


penjadwalan yang dibangun memiliki 3 proses utama, yakni proses pengelolaan
referensi, proses prediksi peserta, dan proses penjadwalan. Proses pengelolaan
referensi digunakan untuk menangani pengelolaan data-data yang akan digunakan
dalam proses prediksi dan proses penjadwalan. Proses prediksi peserta menangani

65
prediksi yang dilakukan oleh aplikasi yang kemudian akan menghasilkan jumlah
peserta pada masing-masing mata kuliah. Data mata kuliah yang telah memiliki
jumlah peserta dari proses prediksi kemudian digunakan dalam proses
penjadwalan. Diagram 0 ditunjukan pada gambar 4.11.

Gambar 4.11 Diagram 0


3. Diagram 1

Diagram 1 merupakan dekomposisi dari diagram 0 pada proses 1 yakni


proses pengelolaan referensi. Pengelolaan referensi pada aplikasi digunakan untuk
mempersiapkan data-data yang nantinya digunakan dalam proses prediksi dan
penjadwalan. Diagram 1 ditunjukan pada gambar 4.12.

66
Gambar 4.12 Diagram 1
4. Diagram 2

Diagram 2 merupakan dekomposisi dari diagram 0 pada proses 2 yakni


proses prediksi peserta. Pada proses prediksi peserta pertama kali yang dilakukan
adalah mempersiapkan data training yang akan digunakan untuk memprediksi

67
yakni berupa jumlah peserta pada data rekap mata kuliah tahun sebelumnya.
Kemudian dengan menggunakan data rekap mata kuliah tersebut dilakukan proses
prediksi jumlah peserta dan kemudian hasilnya disimpan oleh sistem. Diagram 2
ditunjukan pada gambar 4.13.

Gambar 4.13 Diagram 2

5. Diagram 3

Diagram 3 merupakan dekomposisi dari diagram 0 pada proses 3 yakni


proses penjadwalan kuliah. Aplikasi dapat melakukan proses penjadwalan mata
kuliah setelah jumlah peserta mata kuliah didapatkan melalui proses prediksi
peserta. Pada proses penjadwalan mata kuliah pertama dilakukan pembuatan kelas
prediksi, yakni mempersiapkan kelas dari mata kuliah yang ada dengan batasan-
batasan jumlah minimal peserta kelas yang dapat dikirimkan ke aplikasi.
Kemudian aplikasi menghasilkan kelas-kelas mata kuliah secara otomatis. Kelas
tersebut kemudian ditentukan dosen pengajarnya dengan cara memilih dari data
dosen yang disediakan oleh aplikasi. Kemudian kelas diproses untuk mendapatkan

68
jadwal ruang dan waktunya. Hasil penjadwalan kelas kemudian disimpan oleh
aplikasi. Diagram 3 ditunjukan pada gambar 4.14.

Gambar 4.14 Diagram 3

69
4.5 Perancangan Antarmuka Pengguna

Antarmuka aplikasi terdiri dari halaman yang memuat 3 halaman menu


utama, yaitu pengelolaan referensi, prediksi jumlah peserta mata kuliah, dan
penjadwalan kuliah. Halaman-halaman tersebut dapat diakses pertama kali
melalui halaman utama seperti yang ditunjukan pada gambar 4.15.

Gambar 4.15 Rancangan halaman utama


4.5.1 Perancangan halaman menu pengelolaan referensi

Menu pengelolaan referensi terdiri dari submenu yang berisi halaman yang
menangani pengelolaan data seperti melihat, menambah, mengubah, dan
menghapus data. Halaman pada pengelolaan secara garis besar dibagi menjadi 4
yakni halaman view, halaman masukan, dan halaman hapus. Halaman view
digunakan untuk menampilkan data seperti yang ditunjukan pada gambar 4.16.

70
Gambar 4.16 Rancangan halaman view pengelolaan referensi
Halaman masukan memiliki rancangan yang sama untuk aksi tambah dan edit.
Halaman masukan berfungsi untuk melakukan penambahan data pada aksi tambah
dan melakukan pengubahan data pada aksi edit. Pada halaman masukan terdapat
beberapa label dan field masukan, serta terdapat tombol simpan. Halaman
masukan ditunjukan pada gambar 4.17.

71
Gambar 4.17 Rancangan halaman masukan
Halaman hapus merupakan halaman yang digunakan untuk menghapus data
terpilih. Pada rancangan halaman hapus diwakili dengan tampilan konfirmasi
hapus. Halaman konfirmasi hapus ditunjukan pada gambar 4.18.

Gambar 4.18 Rancangan konfirmasi hapus


4.5.2 Perancangan halaman menu prediksi jumlah peserta mata kuliah

Halaman prediksi jumlah peserta mata kuliah merupakan halaman khusus


untuk menangani prediksi jumlah peserta mata kuliah dari data rekap mata kuliah
yang telah dilaksanakan. Untuk melakukan prediksi memerlukan data luaran

72
sebagai data input yang nantinya akan diproses. Rancangan antarmuka untuk
masukan sekaligus menampilkan data masukan dapat dilihat pada gambar 4.19.

Gambar 4.19 Rancangan halaman pemrosesan prediksi


Pada proses prediksi memerlukan parameter masukan untuk mengontrol
prediksi yang dilakukan. Rancangan antarmuka untuk memasukkan parameter
proses prediksi dapat ditunjukan pada gambar 4.20.

73
Gambar 4.20 Rancangan halaman masukan parameter prediksi
4.5.3 Perancangan halaman menu penjadwalan kuliah

Halaman penjadwalan kuliah merupakan halaman yang menampilkan hasil


pembuatan jadwal sesuai dengan batasan yang ditentukan. Halaman penjadwalan
kuliah ditunjukan pada gambar 4.21.

Gambar 4.21 Rancangan halaman penjadwalan kuliah

74
Pada proses penjadwalan kuliah memerlukan parameter masukan untuk
mengontrol jadwal yang dihasilkan. Rancangan antarmuka untuk memasukkan
parameter proses penjadwalan kuliah dapat ditunjukan pada gambar 4.22.

Gambar 4.22 Rancangan halaman masukan parameter penjadwalan kuliah

75
BAB V
IMPLEMENTASI

5.1 Pengembangan Aplikasi

Analisis dan perancangan diimplementasikan menjadi suatu aplikasi


berbasis web. Teknologi yang digunakan dalam pengembangan meliputi:
1. Sublime Text 2 sebagai editor kode.
2. Apache versi 2.2.22 sebagai web server.
3. MySQL versi 5.5.34 sebagai database server.
4. PHP versi 5.4.9 sebagai bahasa pemrograman.
5. Framework Codeigniter versi 2.1.4 sebagai framework PHP pada aplikasi.

5.2 Implementasi Basis Data

Hasil rancangan pada diagram E-R kemudian diimplementasikan menjadi


suatu basis data. Aplikasi membutuhkan basis data sebagai media untuk
menyimpan dan memanajemen data-data yang digunakan dalam penjadwalan
mata kuliah. Basis data terdiri dari beberapa tabel utama yang digunakan dalam
proses penjadwalan, diantaranya tabel mata_kuliah_kurikulum, tabel
mata_kuliah_kurikulum_rekap, tabel jadwal_kuliah, table waktu, tabel ruang,
tabel kelas, tabel dosen_kelas, tabel dosen_waktu, tabel dosen, tabel mkkur_prodi,
tabel ruang_prodi, dan tabel program_studi. Tabel-tabel tersebut saling berelasi
seperti yang ditunjukkan pada Gambar 5.1. Setelah struktur basis data siap maka
aplikasi dapat melakukan proses pengelolaan untuk mempersiapkan data-data
yang dibutuhkan pada proses-proses seperti proses prediksi jumlah peserta mata
kuliah, proses pembangkitan kelas, dan proses penjadwalan kuliah. Rangkaian
implementasi proses pada aplikasiakan dipaparkan di bagian selanjutnya pada bab
ini.

76
Gambar 5.1 Struktur basis data

5.3 Implementasi Proses

Implementasi proses merupakan penerapan dari rancangan analisa alur


yang telah dilakukan untuk mendapatkan jadwal mata kuliah. Pada implementasi
proses dibagi menjadi 3 tahap yakni implementasi proses prediksi jumlah peserta,
proses pembangkitan kelas, dan proses pembuatan jadwal.

5.3.1 Implementasi proses prediksi peserta

Proses prediksi peserta merupakan proses untuk mendapatkan jumlah


peserta mata kuliah di masa depan dengan menggunakan data jumlah peserta pada
masa lalu. Proses prediksi peserta diaplikasikan dengan menggunakan jaringan
syaraf tiruan yang diterapkan dengan beberapa bentuk prosedur dan fungsi.
Proses prediksi peserta diterapkan menggunakan backpropagation yang
merupakan metode pembelajaran terawasi pada jaringan syaraf tiruan.
Backpropagation dapat memprediksi jumlah peserta mata kuliah melalui beberapa

77
langkah prosedur seperti yang ditunjukan pada gambar 5.2. Langkah utama yang
dilakukan yakni dimulai dengan transformasi data, proses pelatihan, proses
pengujian, dan transformasi ke data awal. Langkah-langkah tersebut diterapkan
dengan beberapa fungsi yakni createWeight(), scale(), feedForward(),
prosesBackprop(), mse(), dan unscaleOutput(). Proses pelatihan untuk
mendapatkan bobot dilakukan secara berulang dan akan berhenti apabila telah
mencapai batas jumlah epoch yang ditentukan atau nilai MSE (Mean Search
Time) telah mencapai batas threshold yang ditentukan sebelumnya.
//jmlPattern = 3
//numInput = 4

// transformasi data pelatihan dataTrain pd range [0.1 - 0.9]


data = scale(dataTrain, minDataTrain, maxDataTrain);

/*proses pelatihan untuk mendapatkan bobot*/


for e=1 to jmlEpoch do
//data nilai pada input layer
dataInput = data[e%jmlPattern];
//data nilai pada output layer
target = data[e%jmlPattern][numInput];

prosesBackprop(dataInput,target);
MSE = mse(target);

if( MSE < treshold){


break;
}
}

/*proses pengujian*/
hasil = feedForward(ujiData);

//hasil ditransformasikan ke nilai awalnya


outHasil = unscaleOutput(hasil, minDataTrain, maxDataTrain);

Gambar 5.2 Algoritma proses prediksi peserta


1. createWeight()

Fungsi createWeight() merupakan fungsi yang digunakan untuk


mendapatkan nilai bobot awal secara acak di setiap neuron pada masing-masing
layer jaringan syaraf tiruan. Selain itu, fungsi ini juga memberi nilai -1 bobot pada
bias. Nilai bobot sebelumnya diinisiasi dengan nilai 0 karna belum terjadi proses

78
pelatihan. Gambar 5.3 merupakan kode sumber fungsi createWeight() untuk
mendapatkan nilai bobot awal.

public function createWeight(){


for($i=1; $i<$this->jmlLayer; $i++){
for($j=0; $j<$this->layersSize[$i]; $j++){
for($k=0; $k<$this->layersSize[$i-1]+1; $k++){
//pemberian nilai acak untuk bobot
$this->weight[$i][$j][$k] = $this->get_random();
}
//pemberian nilai acak untuk bobot pada bias
$this->weight[$i][$j][$this->layersSize[$i-1]] = -1;
}
}

for($i=1; $i<$this->jmlLayer; $i++){


for($j=0; $j<$this->layersSize[$i]; $j++){
for($k=0; $k<$this->layersSize[$i-1]+1; $k++){
//bobot sebelumnya diset dengan nilai 0
$this->prevDwt[$i][$j][$k] = (double)0.0;
}
}
}
}

public function get_random(){


$randValue = LO + (HI - LO) * mt_rand(0, _RAND_MAX)/_RAND_MAX;
return $randValue; //32767
}

Gambar 5.3 Kode sumber fungsi createWeight()


2. scale()

Fungsi scale() dipakai dalam mentransformasikan data pada range antara 0


hingga 1 karena akan digunakan dalam fungsi aktifasi sigmoid. Gambar 5.4
menunjukan proses transformasi data yang akan digunakan pada pelatihan.

79
public function scale($data, $min, $max){
//jumlah data pelatihan pertama
$numElem = count($data[0]); //4
$temp = 0.0;

for( $i=0; $i < $this->jmlPattern; $i++ ){


for($j=0; $j<$numElem; $j++){
$temp = (HI-LO)*(($data[$i][$j]-$min)/($max-$min))+LO;
$data[$i][$j] = $temp;
}
}

return $data;
}

Gambar 5.4 Kode sumber fungsi scale()


3. feedForward()

Fungsi feedForward() merupakan fungsi yang dipakai untuk mendapatkan


nilai output yang dihasilkan oleh fungsi aktifasi. Gambar 5.5 merupakan proses
propagasi maju yang menghasilkan nilai output

public function feedForward($inputSource){


$sum = 0.0;

$numElem = count($inputSource); //4


//set nilai neuron input
for($i=0; $i<$numElem; $i++){
$this->output[0][$i] = $inputSource[$i];
}

for($i=1; $i<$this->jmlLayer; $i++){


for($j=0; $j<$this->layersSize[$i]; $j++){
$sum = 0.0;
for($k = 0;$k<$this->layersSize[$i-1]; $k++){
//jumlah perkalian nilai neuron dan bobot
$sum += $this->output[$i-1][$k] * $this->weight[$i][$j][$k];
}
//jumlahkan dengan bobot pada bias
$sum += $this->weight[$i][$j][$this->layersSize[$i-1]];
//nilai neuron pada hidden layer
$this->output[$i][$j] = $this->sigmoid($sum);
}
}
}

public function sigmoid($x){


return (double)(1.0 / (1.0 + exp(-$x)));
}

Gambar 5.5 Kode sumber fungsi feedForward()

80
4. prosesBackprop()

Fungsi prosesBackprop() merupakan fungsi yang digunakan untuk melatih


bobot pada jaringan syaraf tiruan. Pada fungsi terbagi menjadi 2 metode di
dalamnya yakni feed forward dan backward. Feed forward telah diterapkan pada
fungsi feedForward(). Backward atau lebih dikenal dengan propagasi mundur
merupakan metode untuk mendapatkan besar nilai galat atau error yang
merupakan gambaran sejauh mana perbedaan dengan target. Nilai galat yang
dihasilkan kemudian digunakan untuk mendapatkan perubahan bobot. Dengan
menggunakan perubahan bobot tersebut maka dapat dihasilkan bobot baru untuk
jaringan syaraf tiruan. Kode sumber fungsi prosesBackprop() ditunjukan pada
gambar 5.6.

81
public function prosesBackprop($inputSource,$target){
/* --- Update the output values for each neuron */
$this->feedForward($inputSource);

$n = $this->jmlLayer;
for($i=0;$i<$this->layersSize[$n-1];$i++){
$y_out = $this->output[$n-1][$i];
//hitung delta pada output layer
$this->delta[$n-1][$i]= $y_out*(1-$y_out)*($target-$y_out);
}

for($i=$n-2;$i>0;$i--){
for($j=0; $j<$this->layersSize[$i]; $j++){
$d_net=0.0;
for($k=0; $k<$this->layersSize[$i+1]; $k++){
//hitung jumlahan delta dan bobot untuk hidden layer
$d_net += $this->delta[$i+1][$k]*$this->weight[$i+1][$k][$j];
}
$z_out = $this->output[$i][$j];
//hitung delta pada hidden layer
$this->delta[$i][$j] = $z_out*(1-$z_out)*$d_net;
}
}

//learning rate
$a = $this->lr;
for($i=1; $i<$n; $i++){
$jmlNrnPrv = $this->layersSize[$i-1];
for($j=0;$j<$this->layersSize[$i];$j++){
for($k=0; $k<$jmlNrnPrv; $k++){
//delta
$d = $this->delta[$i][$j];
//nilai neuron
$x = $this->output[$i-1][$k];
//hitung perubahan bobot
$this->prevDwt[$i][$j][$k] = $a*$d*$x;
//hitung nilai bobot baru
$this->weight[$i][$j][$k] += $this->prevDwt[$i][$j][$k];
}

//hitung perubahan bobot pada bias


$this->prevDwt[$i][$j][$jmlNrnPrv] = $a*$this->delta[$i][$j];
$delta_w = $this->prevDwt[$i][$j][$jmlNrnPrv];
//hitung nilai bobot baru pada bias
$this->weight[$i][$j][$jmlNrnPrv] += $delta_w;
}
}
}

Gambar 5.6 Kode sumber fungsi prosesBackprop()


5. mse()

Fungsi mse() dipakai untuk menentukan besaran nilai MSE (Mean Search
Time) yang digunakan untuk menghentikan proses pencarian bobot apabila

82
nilainya sudah melebihi threshold yang ditentukan. Gambar 5.7 menunjukan
perhitungan nilai MSE.

public function mse($t){


$mse = 0;
$n = $this->jmlLayer;

for($i=0; $i<$this->layersSize[$n-1]; $i++){


$mse+=($t-$this->output[$n-1][$i])*($t-$this->output[$n-1][$i]);
}
$mse = $mse/2;

return $mse;
}

Gambar 5.7 Kode sumber fungsi mse()


6. unscaleOutput()

Fungsi unscaleOutput() merupakan fungsi yang digunakan untuk


mengembalikan hasil transformasi data ke bentuk asalnya. Gambar 5.8 merupakan
bagaimana proses pengembalian transformasi data ke bentuk asalnya.

public function unscaleOutput($outputVector, $min, $max){


$temp=0.0;

$temp = ($max-$min) * (($outputVector - LO) / (HI-LO)) + $min ;


$unscaledVector = $temp;

return $unscaledVector;
}

Gambar 5.8 Kode sumber unscaleOutput()


5.3.2 Implementasi proses pembangkitan kelas

Proses pembangkitan kelas merupakan proses yang dilakukan untuk


membuat kelas-kelas mata kuliah berdasarkan jumlah prediksi yang didapatkan.
Kelas dibuat dengan beberapa aturan sesuai dengan jumlah peserta hasil prediksi
dan batas jumlah kelas. Aturan tersebut terdiri dari 3 kondisi utama yakni apabila
jumlah peserta prediksi kurang dari batas minimal kelas (i), jika lebih dari atau
sama dengan batas minimal kelas dan kurang dari atau sama dengan batas

83
maksimal kelas (ii), dan jika lebih dari batas maksimal kelas (iii). Gambar 5.9
merupakan algoritma pembangkitan kelas.
//data prodi berdasarkan mata kuliah
mkProdi = get_base_mkprodid_by_mkid(idmk);
kelas = array();
if pred_jml_peminat < bts_kls_min do
if sifat_makul = 'W' do
//set nama kelas dengan kode mata kuliah
nama_kelas = kd_mk;
//set jumlah peserta kelas dengan hasil prediksi
jumlah_per_kelas = pred_jml_peminat;
//set data kelas
kelas[] = daftarkanKelas(nama_kelas,jumlah_per_kelas);
else
kelas[] = null;
elseif pred_jml_peminat >= bts_kls_min
AND pred_jml_peminat <= bts_kls_max do
if makul_is_universal() OR count(mkProdi)==0 do
nama_kelas = kd_mk;
jumlah_per_kelas = pred_jml_peminat;
kelas[] = daftarkanKelas(nama_kelas,jumlah_per_kelas);
else
prodi_mk = mkProdi.prodi_kode;
for i=1 to count(mkProdi) do
prodi_mk .= mkProdi.prodi_kode;
nama_kelas = prodi_mk.'-'.kd_mk;
jumlah_per_kelas = pred_jml_peminat;
kelas[] = daftarkanKelas(nama_kelas,jumlah_per_kelas);
else
//set batas maks kelas
a = bts_kls_max;
//set kode mata kuliah
b = kd_mk;
if makul_is_universal() do
prodi_mk = '';
is_universal = true;
kelas = klasifikasi(a, b, jml_porsi,prodi_mk,is_unvrsl);
else
if (count(mkProdi)>0) do
for i=1 to count(mkProdi) do
prodi_mk = mkProdi.prodi_kode;
if i == 0 do
jml_porsi += mkProdi.sisa;
is_universal = false;
kelas_temp = klasifikasi(a,b,jml_porsi,prodi_mk,is_unvrsl);
for j=1 to count(kelas_temp) do
kelas[] = kelas_temp[j];
else
prodi_mk = '';
is_universal = false;
kelas = klasifikasi(a,b,jml_porsi,prodi_mk,is_unvrsl);

Gambar 5.9 Algoritma pembangkitan kelas

84
Pada kondisi ketika jumlah peserta prediksi lebih dari batas maksimal
kelas maka akan dibuat kelas paralel. Kelas paralel memiliki urutan abjad untuk
membedakan masing-masing kelas. Pengimplementasian kelas ini diterapkan
dengan memakai fungsi klasifikasi() seperti yang ditunjukan pada gambar 5.10.
function klasifikasi(bts_kls_max, kd_mk, jml_porsi, prodi_mk, is_unvrsl){
//hitung jumlah kelas dengan pembulatan ke atas
kelas_bagi = ceil(jml_porsi/bts_kls_max) ;
//hitung sisa
mod = jml_porsi % kelas_bagi;
for i=1 to kelas_bagi do
//hitung daya tampung kelas
jumlah_per_kelas = floor(jml_porsi / kelas_bagi);
if mod > 0 AND i==1 do
jumlah_per_kelas = floor(jml_porsi / kelas_bagi)) + mod;
}
kelas_nama = '';
if is_unvrsl do
if kelas_bagi>1 do
kelas_nama = i+1;
//set nama kelas paralel dengan urutan angka
nama_kelas = kd_mk.'-'.kelas_nama;
else
if kelas_bagi>1 do
//set urutan abjad untuk nama kelas
kelas_nama = chr(i+65);

if prodi_mk == '' do
//set nama kelas paralel
nama_kelas = kd_mk.'-'.(kelas_nama!=''?kelas_nama:'');
else
kelas_nama!=''?kelas_nama.'-'.kd_mk:kd_mk;
//set nama kelas paralel
nama_kelas = prodi_mk.'-'.kelas_nama;
//set data kelas
kelas[] = daftarkanKelas(nama_kelas,jumlah_per_kelas);

return kelas;
}

Gambar 5.10 Kode sumber fungsi klasifikasi()

5.3.3 Implementasi proses pembuatan jadwal

Pembuatan jadwal mata kuliah hanya dapat dilakukan ketika telah terdapat
kelas-kelas mata kuliah yang telah dilengkapi dengan dosen pengajarnya.
Pembuatan jadwal mata kuliah ini diimplementasikan dengan menggunakan
algoritma genetika. Untuk menghasilkan solusi jadwal mata kuliah, terdapat

85
beberapa fungsi yang harus dilalui diantaranya generate_population(),
update_population(), count_fitness(), roulette_wheel_selection(), crossover(),
mutation(), dan update_selection(). Gambar 5.11 merupakan proses-proses di
dalam algoritma genetika untuk mendapatkan jadwal mata kuliah.

for i=1 to jumlah_generasi do


if i == 0 do
//pembangkitan populasi pada generasi pertama
generate_population();
else
//pembaruan populasi
update_population();

//perhitungan nilai fitness


count_fitness();
//proses seleksi
roulette_wheel_selection();
crossover();
mutation();
update_selection();

}
//pengambilan solusi dari hasil proses algoritma genetika
solusi = get_solution();

Gambar 5.11 Algoritma proses pembuatan jadwal


1. generate_population()

Fungsi generate_population() merupakan fungsi yang digunakan untuk


membuat populasi awal yang tersusun dari individu-individu pembentuk solusi
yang layak atau telah sesuai dengan aturan umum yang telah ditetapkan. Gambar
5.12 menunjukan proses pembangkitan populasi. Fungsi ini akan mengeksekusi
fungsi create_ind() untuk membentuk individu di dalam populasi.

public function generate_population(){


//data kelas
$this->kromosom = $this->create_information_class();
$this->populasi = array();
for ($i=0; $i < $this->post['jml_ind']; $i++) {
//pembuatan ind
$this->populasi[] = $this->create_ind();
}
}

Gambar 5.12 Kode sumber fungsi generate_population()

86
Fungsi create_ind() membuat individu sebagai pilihan solusi jadwal mata
kuliah yang telah layak. Gambar 5.13 menunjukan proses pembuatan individu
yang memenuhi aturan.

public function create_ind(){


// untuk menampung sejumlah ind yang mewakili jadwal
$ind = array();
// untuk mengelompokan kelas berdasar matakuliahnya.
$mkGrup = array();
// data grup waktu_id kelas berdasar makulnya.
$wktGrup = array();
// matriks data ruang, hari, dan waktu
$timeSpace = $this->timeSpace;
foreach ($this->kromosom as $key => $val) {
$arr_data = compact('timeSpace','ind','val','mkGrup','wktGrup');
//tiap gen diberi value ruang dan waktu
$ret_data = $this->get_feasible_ind($arr_data);
extract($ret_data);
}

return $ind;
}

Gambar 5.13 Kode sumber fungsi create_ind()


2. update_population()

Fungsi update_population() merupakan fungsi untuk memperbarui


populasi yang tersusun dari individu layak atau tidak melanggar aturan umum
yang ditetapkan. Gambar 5.14 menunjukan proses pembaruan populasi.

public function update_population(){


$this->populasi = array();
//individu hasil proses genetika diperbaiki sesuai aturan umum
foreach ($this->populasi_baru as $key => $value) {
$this->populasi[] = $this->repairing_individu($value);
}
$this->populasi_baru = null;
}

Gambar 5.14 Kode sumber fungsi update_population()


3. count_fitness()

Fungsi count_fitness() digunakan untuk menghitung nilai fitness pada


suatu individu. Pada proses perhitungan nilai fitness dibagi dalam beberapa tahap

87
perhitungan nilai pelanggaran pada masing-masing aturan khusus. Gambar 5.15
merupakan proses penentuan nilai fitness pada masing-masing individu.

public function count_fitness(){


foreach ($this->populasi as $i => $ind) {
//hitung fitness aturan khusus ke-1
$fit1 = $this->fitness_klsmk_pilihan_wajib_not_sametime($ind);
//hitung fitness aturan khusus ke-2
$fit2 = $this->fitness_klsmk_on_ruangblokprodi($ind);
//hitung fitness aturan khusus ke-3
$fit3 = $this->fitness_klsmk_sepaket_max_8_sks_sehari($ind);
//hitung fitness aturan khusus ke-4
$fit4 = $this->fitness_kls_filled_min_prosen_capacity($ind);
//hitung fitness aturan khusus ke-5
$fit5 = $this->fitness_kls_dosen_choose_their_time($ind);
//total fitness aturan khusus
$totFitRule = $fit1+$fit2+$fit3+$fit4+$fit5;
//nilai fitness per individu
$fitness = 1-(($totFitRule) / 5);
//fitness ditambahkan pada data populasi
$this->populasi_breeding[$i]['fitness'] = $fitness;
//total fitness pada populasi
$this->total_fitness += $fitness;
}
}

Gambar 5.15 Kode sumber fungsi count_fitness()


4. roulette_wheel_selection()

Fungsi roulette_wheel_selection() merupakan fungsi untuk melakukan


seleksi terhadap individu pada populasi yang akan dipilih sebagai kandidat parent
crossover. Gambar 5.16 menunjukan proses seleksi menggunakan roulette wheel
selection. Pemilihan parent dilakukan secara acak dengan menggunakan nilai
probabilitas fitness masing-masing individu.

88
public function roulette_wheel_selection(){
//populasi dari individu terpilih
$popBreeding = $this->popBreeding;
foreach ($popBreeding as $i => $value) {
//hitung probabilitas fitness
$prob = $value['fitness'] / $this->total_fitness;
$popBreeding[$i]['idx'] = $i;
$popBreeding[$i]['prob'] = round($prob,5);
//kondisi pembuatan range roulette pada nilai awal
if ($i == 0) {
$range[$i]['awal']=0;
}else{
$range[$i]['awal']=$range[($i-1)]['akhir']+0.00001;
}
//pembuatan rentangan roulette pada nilai akhir
$range[$i]['akhir']=$range[$i]['awal']+$popBreeding[$i]['prob'];
//set nilai acak
$random_number[$i] = mt_rand(0,100000)/100000;
}
$pick_individu = array();
foreach ($random_number as $i => $val) {
foreach ($range as $j => $vale) {
if ($val >= $vale['awal'] and $val <= $vale['akhir'] ) {
//proses roulette wheel
$pick_individu[] = $j;
}
}
}
for ($i=0; $i < $this->post['jml_individu']; $i++) {
//data populasi untuk breeding
$popBreedingSelected[] = $popBreeding[$pick_individu[$i]];
}
foreach ($popBreedingSelected as $i => $value) {
// nilai acak untuk crossover
$popBreedingSelected[$i]['val_random']=mt_rand(0,100000)/100000;
}
// set total fitness 0 karna sudah digunakan
$this->total_fitness = 0;
//simpan data populasi breeding
$this->populasi_breeding_selected = $popBreedingSelected;
}

Gambar 5.16 Kode sumber fungsi roulette_wheel_selection()


5. crossover()

Fungsi crossover() digunakan sebagai proses crossover atau pindah silang.


Tiap individu yang terpilih sebagai parent dibangkitkan nilai acak yang kemudian
dibandingkan dengan nilai Pc atau probabilitas crossover. Apabilai nilai acak
tersebut lebih kecil atau sama dengan dari Pc maka parent akan mengalami
pindah silang dan menghasilkan 2 offspring. Crossover yang digunakan adalah 2-

89
point crossover dengan pemilihan titik pada gen ke-2 hingga ke-(n-1). Ketika
individu telah mengalami mutasi maka dilakukan pengecekan kembali pada
masing-masing gen terhadap aturan umum untuk kemungkinan terjadi
pelanggaran. Apabila terjadi pelanggaran terhadap aturan umum maka dilakukan
perbaikan dengan cara mencari waktu dan ruang yang lain yang belum terpakai.
Gambar 5.17 menunjukan proses crossover atau pindah silang.

public function crossover(){


$pop = array();
foreach ($this->populasi_breeding_selected as $key => $value) {
if ($value['val_random'] <= $this->pc) {
//populasi crossover
$pop[] = $value;
}
}
//hitung jumlah gen
$n_gen = count($pop[0]['arr_gen']);
//hitung jumlah individu
$n_ind = count($pop);
//set titik potong
$pointRandom = array(mt_rand(2,$n_gen-1), mt_rand(2,$n_gen-1) );
for ($i=0; $i < $n_ind-1 ; $i++) {
//proses breeding secara sekuensial
$this->build_offspring($pop[$i],$pop[$i+1],$pointRandom);
}
//proses breeding sekuen terakhir
$this->build_offspring($pop[($n_ind-1)],$pop[0],$pointRandom);
}

Gambar 5.17 Kode sumber fungsi crossover()


6. mutation()

Fungsi mutation() merupakan proses mutasi yang terjadi pada individu.


Proses mutasi terjadi pada individu dengan cara membangkitkan nilai acak antara
0 dan 1 kemudian dibandingkan dengan Pm atau probabilitas mutasi, apabila nilai
acak tersebut lebih kecil maka mutasi dilakukan pada individu tersebut. Ketika
individu telah mengalami mutasi maka dilakukan pengecekan kembali pada
masing-masing gen terhadap aturan umum untuk kemungkinan terjadi
pelanggaran. Apabila terjadi pelanggaran terhadap aturan umum maka dilakukan
perbaikan dengan cara mencari waktu dan ruang yang lain yang belum terpakai.
Gambar 5.18 menunjukan proses mutasi pada individu.

90
public function mutation(){
foreach ($this->ind_breed as $key => $value) {
foreach ($value as $i => $item) {
if ($item['randvalmut'] < $this->pm) {
//proses mutasi pada offspring
$o = $this->mutasi_kromosom($item['offspring']);
//memperbarui offspring
$this->ind_breed[$key][$i]['offspring'] = $o
}
$this->ind_update_calon[] = $this->ind_breed[$key][$i];
}
}
$this->ind_breed = null;
}

Gambar 5.18 Kode sumber fungsi mutation()


7. update_selection()

Fungsi update_selection() merupakan fungsi yang digunakan untuk


memperbarui populasi. Populasi tersebut berasal dari offspring hasil crossover dan
mutasi serta individu pada seleksi sebelum dilakukan breeding. Kemudian
kumpulan individu tersebut diseleksi kembali menggunakan seleksi roulette wheel
selection dan menghasilkan individu untuk populasi pada generasi selanjutnya.
Gambar 5.19 merupakan proses pembaruan generasi

91
public function update_selection(){
$populasi_breeding = $this->populasi_breeding;
$this->populasi_breeding = array();
//data populasi hasil seleksi awal
foreach ($populasi_breeding as $key => $value) {
$this->populasi_breeding[] = array(
'fitness' => $value['fitness'],
'arr_gen' => $value['arr_gen']
);
}
//data populasi hasil mutasi
foreach ($this->individu_update_calon as $key => $value) {
$this->populasi_breeding[] = array(
'fitness' => $value['fitness'],
'arr_gen' => $value['offspring']
);
}
//hitung total fitness populasi hasil breeding
$this->total_fitness = $this->count_total_fitness_pop_breeding();
//proses seleksi kembali
$this->roulette_wheel_selection();
foreach ($this->populasi_breeding_selected as $key => $value) {
//populasi baru hasil breeding
$this->populasi_baru[] = $value['arr_gen'];
}
$this->individu_update_calon = null;
}

Gambar 5.19 Kode sumber fungsi update_selection()

5.4 Implementasi Antarmuka

Implementasi antarmuka merupakan penerapan dari hasil rancangan


antarmuka dengan menggunakan aplikasi berbasis web. Pada implementasi
antarmuka ini terdiri dari implementasi halaman pengelolaan, halaman
pengelolaan mata kuliah, halaman rekapitulasi jumlah peserta mata kuliah,
halaman input proses prediksi, halaman prediksi jumlah peserta mata kuliah,
halaman input pembangkitan kelas, halaman daftar kelas, halaman input proses
penjadwalan, dan halaman jadwal mata kuliah.
5.4.1 Implementasi halaman pengelolaan

Halaman pengelolaan merupakan halaman yang digunakan untuk


melakukan pengelolaan terhadap data-data yang nantinya digunakan dalam proses
penjadwalan. Beberapa fitur yang terdapat pada halaman pengelolaan antara lain
konfigurasi, mata kuliah, prodi, dosen, ruang, waktu dosen, makul prodi, dan

92
ruang prodi seperti yang ditunjukan pada gambar 5.20. Pada masing-masing fitur,
secara garis besar pengelolaan data dapat berupa tambah, ubah, hapus, dan lihat
detil.

Gambar 5.20 Halaman pengelolaan


5.4.2 Implementasi halaman pengelolaan mata kuliah

Halaman pengelolaan mata kuliah merupakan salah satu fitur pengelolaan


data mata kuliah pada semester tertentu (genap atau ganjil). Gambar 5.21
menunjukan halaman pengelolaan mata kuliah. Pengelolaan yang dapat dilakukan
berupa tambah, ubah, dan hapus data mata kuliah.

Gambar 5.21 Halaman pengelolaan mata kuliah

93
5.4.3 Implementasi halaman rekapitulasi jumlah peserta mata kuliah

Halaman rekapitulasi jumlah peserta mata kuliah digunakan untuk melihat


data jumlah peminat mata kuliah dari beberapa tahun sebelumnya yang nantinya
digunakan sebagai data untuk proses prediksi. Pada halaman ini terdapat dua aksi
menu untuk proses prediksi dan melakukan impor data dari berkas spreadsheet.
Gambar 5.22 merupakan halaman rekapitulasi jumlah peserta mata kuliah.

Gambar 5.22 Halaman daftar rekapitulasi mata kuliah


5.4.4 Implementasi halaman input proses prediksi

Halaman input proses prediksi merupakan halaman untuk masukan


parameter yang digunakan proses prediksi jumlah peserta mata kuliah dengan
menggunakan teknologi jaringan syaraf tiruan. Parameter yang menjadi masukan
pada proses prediksi ditunjukan pada gambar 5.23.

94
Gambar 5.23 Halaman input proses prediksi
5.4.5 Implementasi halaman prediksi jumlah peserta mata kuliah

Halaman prediksi jumlah peserta mata kuliah merupakan halaman yang


menampilkan data hasil proses prediksi yakni jumlah peserta yang akan mengikuti
mata kuliah. Prediksi jumlah peserta mata kuliah didapatkan berdasarkan dari data
jumlah peminat mata kuliah pada tahun-tahun sebelumnya. Periode jumlah tahun
sebelumnya yang dipakai dalam proses prediksi ini dikonfigurasikan pada fitur
konfigurasi di halaman pengelolaan. Hasil prediksi jumlah peminat mata kuliah
ditunjukan seperti pada gambar 5.24.

95
Gambar 5.24 Halaman mata kuliah beserta prediksi jumlah peserta
5.4.6 Implementasi halaman input pembangkitan kelas

Halaman input pembangkitan kelas digunakan untuk memberikan


masukan parameter yang digunakan dalam membangkitkan kelas. Pembangkitan
kelas ini memakai data jumlah peminat mata kuliah dari hasil prediksi yang
dilakukan. Masukan parameter batas maksimal kelas yang digunakan pada
halaman ini merupakan parameter standar yang akan dipakai dalam membentuk
kelas apabila belum terdapat penentuan kapasitas maksimal kelas pada mata
kuliah. Masing-masing mata kuliah sendiri dapat ditentukan jumlah kapasitas
maksimal kelasnya dengan memanfaatkan fitur pengelolaan mata kuliah. Gambar
5.25 menunjukan masukan parameter yang digunakan dalam pembangkitan kelas.

96
Gambar 5.25 Halaman input pembangkitan kelas
5.4.7 Implementasi halaman daftar kelas

Halaman daftar kelas merupakan halaman yang menampilkan data kelas


yang telah dibangkitkan dengan menggunakan jumlah peminat mata kuliah dari
hasil prediksi. Masing-masing kelas memiliki aksi untuk menentukan dosen yang
akan mengampu kelas mata kuliah. Kelas tersebut harus memiliki dosen
pengampu sebelum digunakan dalam proses penjadwalan mata kuliah. Daftar
kelas mata kuliah ditunjukan pada gambar 5.26.

Gambar 5.26 Halaman daftar kelas

97
5.4.8 Implementasi halaman input proses penjadwalan

Halaman input proses penjadwalan digunakan untuk memberi masukan


parameter yang akan digunakan dalam proses penjadwalan mata kuliah. Proses
penjadwalan mata kuliah ini menggunakan data kelas yang telah ditentukan dosen
pengampunya. Proses penjadwalan mata kuliah menggunakan teknologi algoritma
genetika dengan masukan parameter seperti jumlah individu dalam populasi, nilai
Pc (probabilitas crossover), nilai Pm (probabilitas mutasi), dan jumlah generasi.
Halaman input proses penjadwalan ditunjukan pada gambar 5.27.

Gambar 5.27 Halaman input proses penjadwalan


5.4.9 Implementasi halaman jadwal mata kuliah

Halaman jadwal mata kuliah merupakan halaman untuk menampilkan


jadwal mata kuliah dari masing-masing kelas sesuai dengan aturan umum dan
aturan khusus yang ditentukan. Jadwal disusun menggunakan kombinasi antara
ruang dan waktu dengan masing-masing sesinya seperti yang ditunjukan pada
gambar 5.28.

98
Gambar 5.28 Halaman jadwal mata kuliah

99
BAB VI
HASIL PENELITIAN DAN PENGUJIAN

6.1 Statistik Data

Statistik data dibutuhkan untuk menggambarkan banyaknya data pada


proses pengujian yang akan digunakan mulai dari proses prediksi jumlah peserta
mata kuliah hingga penjadwalan mata kuliah sehingga setelah pemrosesan tidak
ada data hilang maupun data terduplikasi. Statistik data yang digunakan dalam
penjadwalan semester ganjil 2014 ditunjukan pada tabel 6.1.
Tabel 6.1 Statistik data
Data Statistik
Total mata kuliah 190
Total program studi 7
Total ruang 28
Total waktu 48
Slot ruang waktu 28 x 48 = 1344

6.2 Hasil Penelitian

Pada hasil penelitian ini bertujuan untuk menunjukan hasil pemrosesan


data mata kuliah agar dapat menghasilkan jadwal mata kuliah sesuai dengan
algoritma yang dikembangkan mulai dari prediksi peserta mata kuliah hingga
penjadwalan mata kuliah pada semester yang ditentukan. Kemudian dilakukan
percobaan untuk mendapatkan jadwal kelas mata kuliah fakultas MIPA UGM
pada semester ganjil 2014 yang dilakukan dengan menggunakan data mata kuliah
mulai dari tahun 2008 pada jenjang S1 di 7 program studi dan berdasarkan
statistik data yang terdapat pada tabel 6.1. Pengaruh parameter masukan pada
hasil penjadwalan oleh sistem dalam percobaan belum dipertimbangkan karna
lebih mengutamakan pada kesesuaian antara hasil dengan algoritma yang telah
dibuat. Untuk mendapatkan hasil jadwal mata kuliah pada percobaan ini akan

100
melalui dalam 3 tahap, yakni prediksi peserta mata kuliah, pembagian kelas, dan
penjadwalan mata kuliah.

6.2.1 Prediksi jumlah peserta mata kuliah

Prediksi jumlah peserta mata kuliah bertujuan untuk mengetahui


banyaknya mahasiswa yang akan mengikuti mata kuliah pada semester ganjil
2014 yang diimplementasikan dengan menggunakan metode backpropagation
dari jaringan syaraf tiruan berdasarkan data mata kuliah yang diambil mulai dari
tahun 2008. Prediksi dilakukan pada mata kuliah dari semua program studi di
fakultas MIPA dengan total sebanyak 190 mata kuliah. Representasi dari data
rekapitulasi mata kuliah semester ganjil dari tahun 2008 hingga tahun 2013
ditunjukan pada tabel 6.2.
Tabel 6.2 Gambaran data rekapitulasi mata kuliah pada 14 data pertama
KODE MAKUL SIFAT SKS PAKET 2008 2009 2010 2011 2012 2013
UNU1000 AGAMA ISLAM W 2 1 273 362 240 716 678 528
MIK2201 ALGORITMA DAN STRUKTUR DATA II W 3 3 0 0 0 98 210 196
MIK4207 ALGORITMA GENETIKA P 3 5 20 0 0 20 47 21
MFF2025 ALJABAR ABSTRAK DALAM FISIKA TEORETIK P 3 3 0 0 0 0 0 12
MMM1202 ALJABAR LINEAR ELEMENTER W 3 1 138 164 171 110 106 79
MMM3204 ALJABAR LINEAR NUMERIK P 2 5 51 50 42 51 65 57
MMM1207 ALJABAR VEKTOR DAN MATRIKS W 2 1 158 211 192 154 165 117
MIK2203 ANALISIS DAN DESAIN ALGORITMA I W 3 3 0 0 0 91 129 150
MKK3501 ANALISIS INSTRUMENTAL II W 2 5 0 0 0 156 139 222
MKK3841 ANALISIS KIMIA LINGKUNGAN P 2 1 0 0 0 57 101 122
MIE2806 ANALISIS PENGUKURAN FISIS W 2 3 0 0 0 99 121 133
MMS3402 ANALISIS REGRESI TERAPAN W 2 5 100 85 87 73 95 102
MFG3948 ANALISIS SPEKTRUM SINYAL DIGITAL P 2 5 0 0 0 19 70 99
MMS3417 ANALISIS VARIANSI TERAPAN P 2 5 74 69 63 80 54 80

Dari data rekapitulasi mata kuliah yang ditunjukan tabel 6.2 kemudian
digunakan untuk pelatihan pada jaringan syaraf dengan menggunakan metode
backpropagation untuk mendapatkan bobot-bobotnya. Proses pelatihan
menggunakan 1 keluaran yaitu jumlah peserta pada tahun target dan 3 masukkan
yaitu jumlah peserta pada 3 tahun sebelum tahun target. Setelah bobot-bobot telah
terlatih maka jaringan syaraf digunakan untuk proses prediksi. Hasil prediksi
dengan menggunakan data masukkan yang sama pada proses pelatihan ditunjukan
pada tabel 6.3.

101
Tabel 6.3 Gambaran data hasil prediksi menggunakan data masukkan
proses pelatihan pada 14 data pertama
seri 1 seri 2 seri 3
hasil hasil hasil
MAKUL data masukan target data masukan target data masukan target
prediksi prediksi prediksi
2008 2009 2010 2011 2011 2009 2010 2011 2012 2012 2010 2011 2012 2013 2013
AGAMA ISLAM 273 362 240 716 489 362 240 716 678 507 240 716 678 528 526
ALGORITMA DAN STRUKTUR DATA II 0 0 0 98 97 0 0 98 210 104 0 98 210 196 122
ALGORITMA GENETIKA 20 0 0 20 19 0 0 20 47 19 0 20 47 21 21
ALJABAR ABSTRAK DALAM FISIKA TEORETIK 0 0 0 0 4 0 0 0 0 4 0 0 0 12 4
ALJABAR LINEAR ELEMENTER 138 164 171 110 110 164 171 110 106 109 171 110 106 79 108
ALJABAR LINEAR NUMERIK 51 50 42 51 56 50 42 51 65 56 42 51 65 57 57
ALJABAR VEKTOR DAN MATRIKS 158 211 192 149 154 211 192 149 134 153 192 149 134 99 152
ANALISIS DAN DESAIN ALGORITMA I 0 0 0 91 91 0 0 91 124 100 0 91 124 130 110
ANALISIS INSTRUMENTAL II 0 0 0 156 125 0 0 156 139 139 0 156 139 219 150
ANALISIS KIMIA LINGKUNGAN 0 0 0 57 58 0 0 57 101 63 0 57 101 119 72
ANALISIS PENGUKURAN FISIS 0 0 0 99 99 0 0 99 121 108 0 99 121 133 115
ANALISIS REGRESI TERAPAN 100 85 87 73 74 85 87 73 95 95 87 73 95 102 102
ANALISIS SPEKTRUM SINYAL DIGITAL 0 0 0 19 36 0 0 19 70 56 0 19 70 99 98
ANALISIS VARIANSI TERAPAN 74 69 63 80 75 69 63 80 54 60 63 80 54 80 80

Setelah proses pelatihan untuk mendapatkan bobot pada jaringan syaraf


maka jaringan syaraf tersebut digunakan untuk proses pengujian jaringan syaraf.
Proses pengujian ini bertujuan untuk mendapatkan jumlah peserta mata kuliah
pada semester ganjil tahun 2014. Proses pengujian jaringan syaraf memerlukan 3
masukkan parameter berupa jumlah peserta pada 3 tahun sebelumnya yaitu mulai
dari tahun 2011 hingga tahun 2013 di semester ganjil. Representasi dari hasil
prediksi jumlah peserta mata kuliah untuk semester ganjil 2014 setelah proses
pengujian dilakukan ditunjukan pada tabel 6.4.
Tabel 6.4 Gambaran hasil prediksi jumlah peserta pada semester ganjil
tahun 2014 pada 14 data pertama
Hasil
Data Masukan Target
Kode Nama Mata Kuliah Prediksi Akurasi
2011 2012 2013 2014
UNU1000 AGAMA ISLAM 716 678 528 523 550 95%
MIK2201 ALGORITMA DAN STRUKTUR DATA II 98 210 196 121 128 95%
MIK4207 ALGORITMA GENETIKA 20 47 21 21 31 68%
MFF2025 ALJABAR ABSTRAK DALAM FISIKA TEORETIK 0 0 12 4 19 21%
MMM1202 ALJABAR LINEAR ELEMENTER 110 106 79 106 85 75%
MMM3204 ALJABAR LINEAR NUMERIK 51 65 57 57 34 32%
MMM1207 ALJABAR VEKTOR DAN MATRIKS 149 134 99 149 100 51%
MIK2203 ANALISIS DAN DESAIN ALGORITMA I 91 124 130 108 87 76%
MKK3501 ANALISIS INSTRUMENTAL II 156 139 219 148 207 71%
MKK3841 ANALISIS KIMIA LINGKUNGAN 57 101 119 71 161 44%
MIE2806 ANALISIS PENGUKURAN FISIS 99 121 133 114 106 92%
MMS3402 ANALISIS REGRESI TERAPAN 73 95 102 105 66 41%
MFG3948 ANALISIS SPEKTRUM SINYAL DIGITAL 19 70 99 98 77 73%
MMS3417 ANALISIS VARIANSI TERAPAN 80 54 80 78 85 92%

102
Dari total mata kuliah yang berjumlah 190 yang telah berhasil diprediksi
jumlah pesertanya, didapatkan rata-rata akurasi prediksinya sebesar 67%.

6.2.2 Pembangkitan kelas

Pembangkitan kelas bertujuan untuk membagi jumlah peserta setiap mata


kuliah hasil prediksi pada semester ganjil tahun 2014 menjadi satu atau beberapa
kelas mata kuliah. Terdapat jumlah total 190 mata kuliah dengan jumlah peserta
dari hasil proses prediksi pada semester ganjil tahun 2014. Representasi daftar
mata kuliah beserta jumlah peserta dari hasil prediksi yang akan dibangkitkan
kelasnya ditunjukan seperti yang terdapat pada tabel 6.5.
Tabel 6.5 Representasi daftar mata kuliah dan jumlah peserta prediksi pada
14 data pertama
Jumlah
Kode Nama Mata Kuliah Peserta
Prediksi
UNU1000 AGAMA ISLAM 523
MIK2201 ALGORITMA DAN STRUKTUR DATA II 121
MIK4207 ALGORITMA GENETIKA 21
MFF2025 ALJABAR ABSTRAK DALAM FISIKA TEORETIK 4
MMM1202 ALJABAR LINEAR ELEMENTER 106
MMM3204 ALJABAR LINEAR NUMERIK 57
MMM1207 ALJABAR VEKTOR DAN MATRIKS 149
MIK2203 ANALISIS DAN DESAIN ALGORITMA I 108
MKK3501 ANALISIS INSTRUMENTAL II 148
MKK3841 ANALISIS KIMIA LINGKUNGAN 71
MIE2806 ANALISIS PENGUKURAN FISIS 114
MMS3402 ANALISIS REGRESI TERAPAN 105
MFG3948 ANALISIS SPEKTRUM SINYAL DIGITAL 98
MMS3417 ANALISIS VARIANSI TERAPAN 78

Pembagian jumlah peserta setiap mata kuliah didasarkan pada daya


tampung maksimal dan jumlah peserta minimal kelas yang terdapat pada masing-
masing mata kuliah. Ketika mata kuliah tidak terdapat ketentuan jumlah peserta
maksimal dan jumlah peserta minimal kelas maka akan dibagi dengan mengikuti
standar jumlah global yang ditentukan fakultas MIPA dan berlaku untuk semua
mata kuliah. Tabel 6.6 merupakan konfigurasi global jumlah maksimal kelas dan
jumlah minimal kelas yang digunakan dalam pembangkitan kelas.

103
Tabel 6.6 Konfigurasi global pembangkitan kelas oleh fakultas MIPA
Konfigurasi Nilai
Jumlah minimal kelas 5
Jumlah maksimal kelas 90

Proses pembangkitan kelas diperoleh dengan cara membagi jumlah peserta


dari hasil prediksi dengan jumlah maksimal kelas apabila jumlah peserta tersebut
lebih besar atau sama dengan jumlah minimal kelas. Dari percobaan
pembangkitan kelas menggunakan jumlah peserta hasil prediksi pada 190 mata
kuliah di semester ganjil tahun 2014 menghasilkan kelas sebanyak 324.
Representasi hasil kelas yang dibangkitkan dari jumlah peserta hasil prediksi tiap
mata kuliah ditunjukan pada tabel 6.7.
Tabel 6.7 Gambaran hasil kelas yang dibangkitkan pada 29 data pertama
Jumlah
Kode Mata Kuliah Nama Kelas
Peserta
UNU1000 AGAMA ISLAM UNU1000-1 59
UNU1000 AGAMA ISLAM UNU1000-2 58
UNU1000 AGAMA ISLAM UNU1000-3 58
UNU1000 AGAMA ISLAM UNU1000-4 58
UNU1000 AGAMA ISLAM UNU1000-5 58
UNU1000 AGAMA ISLAM UNU1000-6 58
UNU1000 AGAMA ISLAM UNU1000-7 58
UNU1000 AGAMA ISLAM UNU1000-8 58
UNU1000 AGAMA ISLAM UNU1000-9 58
MIK2201 ALGORITMA DAN STRUKTUR DATA II ILKOM-A-MIK2201 61
MIK2201 ALGORITMA DAN STRUKTUR DATA II ILKOM-B-MIK2201 60
MIK4207 ALGORITMA GENETIKA ILKOM-MIK4207 21
MMM1202 ALJABAR LINEAR ELEMENTER MAT-A-MMM1202 53
MMM1202 ALJABAR LINEAR ELEMENTER MAT-B-MMM1202 53
MMM3204 ALJABAR LINEAR NUMERIK MAT-MMM3204 57
MMM1207 ALJABAR VEKTOR DAN MATRIKS MAT-A-MMM1207 75
MMM1207 ALJABAR VEKTOR DAN MATRIKS MAT-B-MMM1207 74
MIK2203 ANALISIS DAN DESAIN ALGORITMA I ILKOM-A-MIK2203 54
MIK2203 ANALISIS DAN DESAIN ALGORITMA I ILKOM-B-MIK2203 54
MKK3501 ANALISIS INSTRUMENTAL II KIM-A-MKK3501 74
MKK3501 ANALISIS INSTRUMENTAL II KIM-B-MKK3501 74
MKK3841 ANALISIS KIMIA LINGKUNGAN KIM-MKK3841 71
MIE2806 ANALISIS PENGUKURAN FISIS ELINS-A-MIE2806 57
MIE2806 ANALISIS PENGUKURAN FISIS ELINS-B-MIE2806 57
MMS3402 ANALISIS REGRESI TERAPAN STAT-A-MMS3402 53
MMS3402 ANALISIS REGRESI TERAPAN STAT-B-MMS3402 52
MFG3948 ANALISIS SPEKTRUM SINYAL DIGITAL GEOFIS-A-MFG3948 49
MFG3948 ANALISIS SPEKTRUM SINYAL DIGITAL GEOFIS-B-MFG3948 49
MMS3417 ANALISIS VARIANSI TERAPAN STAT-MMS3417 78

104
6.2.3 Penjadwalan mata kuliah

Penjadwalan mata kuliah merupakan proses untuk menempatkan kelas-


kelas mata kuliah yang telah dibentuk ke ruang dan waktu tertentu sehingga
memenuhi aturan-aturan penjadwalan yang sudah ditetapkan oleh fakultas MIPA.
Penjadwalan mata kuliah diimplementasikan menggunakan algoritma genetika.
Hasil jadwal yang diperoleh harus memenuhi aturan wajib dan dikatakan semakin
baik apabila semakin terpenuhi aturan khusus yang ditentukan. Dari percobaan
untuk proses penjadwalan menggunakan kelas yang telah dibangkitkan hasilnya
sejumlah 324 kelas berhasil terjadwalkan. Ini berarti tidak ada data hilang selama
proses penjadwalan karena kelas dapat terjadwalkan secara penuh. Representasi
hasil penjadwalan kelas-kelas mata kuliah pada semester ganjil tahun 2014
ditunjukan pada tabel 6.8.
Tabel 6.8 Gambaran hasil jadwal kelas mata kuliah untuk semester ganjil
tahun 2014 pada 29 data pertama
Mata Kuliah Paket Jumlah Jadwal Tatap Muka
Nama kelas SKS Dosen Ruang
Kode Nama smt Peserta senin selasa rabu kamis jumat
UNU1000 AGAMA ISLAM 1 UNU1000-1 2 ROTO, Drs., M.Eng., Ph.D. G3 59 15:30-17:10
UNU1000 AGAMA ISLAM 1 UNU1000-2 2 SUNARTA, Drs., M.S. U2.02 58 15:30-17:10
UNU1000 AGAMA ISLAM 1 UNU1000-3 2 MOH. ALI JOKO WASONO, M.S., Dr. U2.06 58 14:30-16:10
UNU1000 AGAMA ISLAM 1 UNU1000-4 2 SUTARNO, M.Si., Dr. M2.12 58 14:30-16:10
UNU1000 AGAMA ISLAM 1 UNU1000-5 2 SUNARTA, Drs., M.S. S2.02 58 15:30-17:10
UNU1000 AGAMA ISLAM 1 UNU1000-6 2 INDRIANA KARTINI, S.Si., M.Si., Ph.D. U2.01 58 15:30-17:10
UNU1000 AGAMA ISLAM 1 UNU1000-7 2 EDI SUHARYADI, S.Si., M.Eng., Dr.Eng. S2.08 58 09:30-11:10
UNU1000 AGAMA ISLAM 1 UNU1000-8 2 ADHITYA RONNIE EFFENDIE, M.Si., M.Sc., G3 58 09:30-11:10
UNU1000 AGAMA ISLAM 1 UNU1000-9 2 Dr.
GUNTUR MARUTO, Drs., S.U., Dr. U2.04 58 15:30-17:10
MIK2201 ALGORITMA DAN STRUKTUR DATA II 3 ILKOM-A-MIK2201 3 YOHANES SUYANTO, Drs., M.I.Kom. S2.01 61 14:30-17:00
MIK2201 ALGORITMA DAN STRUKTUR DATA II 3 ILKOM-B-MIK2201 3 JANOE HENDARTO, Drs., M.I.Kom. S2.08 60 14:30-17:00
MIK4207 ALGORITMA GENETIKA 5 ILKOM-MIK4207 3 FAIZAH, S.Kom., M.Sc. S2.06 21 13:30-16:00
MMM1202 ALJABAR LINEAR ELEMENTER 1 MAT-A-MMM1202 3 ARI SUPARWANTO, M.Si., Dr.rer.nat. U2.06 53 10:30-13:00
MMM1202 ALJABAR LINEAR ELEMENTER 1 MAT-B-MMM1202 3 BUDI SURODJO, M.Si., Dr. M2.10 53 10:30-13:00
MMM3204 ALJABAR LINEAR NUMERIK 5 MAT-MMM3204 2 YENI SUSANTI, S.Si., M.Si. U2.06 57 07:30-09:10
MMM1207 ALJABAR VEKTOR DAN MATRIKS 1 MAT-A-MMM1207 2 YENI SUSANTI, S.Si., M.Si. S2.03 75 15:30-17:10
MMM1207 ALJABAR VEKTOR DAN MATRIKS 1 MAT-B-MMM1207 2 ARI SUPARWANTO, M.Si., Dr.rer.nat. S2.505 74 15:30-17:10
MIK2203 ANALISIS DAN DESAIN ALGORITMA I 3 ILKOM-A-MIK2203 3 ANNY KARTIKA SARI, M.Sc.,Dr M2.10 54 14:30-17:00
MIK2203 ANALISIS DAN DESAIN ALGORITMA I 3 ILKOM-B-MIK2203 3 JANOE HENDARTO, Drs., M.I.Kom. U2.06 54 14:30-17:00
MKK3501 ANALISIS INSTRUMENTAL II 5 KIM-A-MKK3501 2 AGUS KUNCAKA, Dr., DEA. Lab.Das. 74 11:30-13:10
MKK3501 ANALISIS INSTRUMENTAL II 5 KIM-B-MKK3501 2 DWI SISWANTO, Drs., M.Eng., Ph.D. M2.12 74 11:30-13:10
MKK3841 ANALISIS KIMIA LINGKUNGAN 1 KIM-MKK3841 2 ENDANG TRI WAHYUNI, M.S., Dr., Prof. S2.505 71 07:30-09:10
MIE2806 ANALISIS PENGUKURAN FISIS 3 ELINS-A-MIE2806 2 MASIRAN, M.Si. M2.10 57 07:30-09:10
MIE2806 ANALISIS PENGUKURAN FISIS 3 ELINS-B-MIE2806 2 LINA ARYATI, Dra., M.S., Dr.rer.nat. K1 57 07:30-09:10
MMS3402 ANALISIS REGRESI TERAPAN 5 STAT-A-MMS3402 2 HERNI UTAMI, S.Si., M.Si., M2.10 53 13:30-15:10
MMS3402 ANALISIS REGRESI TERAPAN 5 STAT-B-MMS3402 2 SUGENG, A.Md. S2.505 52 13:30-15:10
MFG3948 ANALISIS SPEKTRUM SINYAL DIGITAL 5 GEOFIS-A-MFG3948 2 BUDI EKA NURCAHYA, Drs., M.Si. S2.08 49 10:30-12:10
MFG3948 ANALISIS SPEKTRUM SINYAL DIGITAL 5 GEOFIS-B-MFG3948 2 MARDANI, S.E., M.T. U2.03 49 10:30-12:10
MMS3417 ANALISIS VARIANSI TERAPAN 5 STAT-MMS3417 2 SRI HARYATMI, M.Sc., Dr., Prof. U2.01 78 08:30-10:10

105
6.3 Pengujian

Pengujian dilakukan dalam 2 proses yang berbeda, yakni pengujian pada


prediksi peserta mata kuliah yang mengimplementasikan jaringan syaraf tiruan
dan pengujian pada penjadwalan mata kuliah yang mengimplementasikan
algoritma genetika. Pengujian dilakukan pada media komputer yang memiliki
hardware dengan spesifikasi prosesor 4x Intel(R) Core(TM) i3-2120 CPU
@3.30GHz, dan memori 4029MB. Untuk perangkat lunaknya menggunakan
spesifikasi sistem operasi Linux Mint 15 Olivia, server Apache 2.2.22, php 5.4.9,
mysql 5.5.34 , dan browser Chromium 30.0.1599.114.

6.3.1 Pengujian prediksi peserta mata kuliah

Pengujian prediksi peserta mata kuliah dilakukan untuk mengetahui


jumlah peserta mata kuliah pada periode tahun tertentu dengan penerapan jaringan
syaraf tiruan. Proses pengujian dilakukan dengan mengkombinasikan parameter -
parameter jaringan syaraf seperti learning rate, threshold, dan jumlah epoch.
Tujuan dari uji coba adalah untuk mengetahui pengaruh parameter jaringan syaraf
terhadap jumlah peserta yang dihasilkan, dalam hal ini adalah nilai MSE-nya.
Terdapat 3 tahap dalam pengujian prediksi jumlah peserta mata kuliah untuk
mendapatkan parameter optimal pada sistem dan masing-masing parameter akan
diujikan terhadap nilai MSE yang dihasilkan. Tahapan tersebut antara lain adalah
pengujian learning rate, pengujian jumlah epoch, dan pengujian besar threshold.
Pengujian pertama adalah pengujian learning rate terhadap nilai MSE. Pada
pengujian learning rate dilakukan pada rentang 10% hingga 90% dengan masing-
masing perubahan sebesar 10%. Percobaan dilakukan sebanyak 5 kali untuk
mendapatkan rata-rata nilai MSE. Hasil rata-rata nilai MSE dari uji coba besar
learning rate disajikan pada tabel 6.9.

106
Tabel 6.9 Nilai rata-rata MSE pada pengujian learning rate
MSE (1:10-4)
Learning rate
coba-1 coba-2 coba-3 coba-4 coba-5 rata-rata
0.1 9.9882 9.8781 7.6017 8.601 8.4708 8.90796
0.2 9.6758 7.6218 5.2337 6.5173 6.9018 7.19008
0.3 5.4248 2.1506 4.4773 6.7159 3.2024 4.3942
0.4 1.1395 6.9708 4.5252 5.1108 8.3646 5.22218
0.5 2.5012 3.5407 2.06 0.3667 6.4002 2.97376
0.6 2.3612 0.007 3.1161 4.1931 4.7539 2.88626
0.7 0.0621 4.8088 2.7825 0.0043 0.4533 1.6222
0.8 1.3645 1.5933 0.1123 7.7422 0.6028 2.28302
0.9 0.0187 8.1243 2.0612 1.0087 2.0922 2.66102

Pada tabel 6.9 terlihat hasil rata-rata nilai MSE skala 1:10-4 dari 5
percobaan yang dilakukan. Nilai MSE terkecil terletak pada learning rate 0,7
dengan nilai MSE 1,6222. Untuk nilai MSE terbesar terletak pada learning rate
0,1 dengan nilai MSE 8,90796. Sehingga learning rate yang akan digunakan
dalam tahap pengujian selanjutnya yaitu 0,7. Adapun grafik pengaruh besar
learning rate terhadap nilai MSE ditunjukan oleh grafik pada gambar 6.1.
10 8.90796
9
8 7.19008
7
6 5.22218
1:10-4
MSE

5 4.3942

4 2.97376 2.88626
2.66102
3 2.28302
1.6222
2
1
0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Learning rate

Gambar 6.1 Perubahan MSE pada pengujian learning rate


Berdasarkan hasil yang ditunjukan oleh grafik pada gambar 6.1 terlihat
bahwa nilai MSE yang dihasilkan memiliki kecenderungan semakin turun. Nilai
MSE sempat mengalami kenaikan ketika learning rate bernilai 0,4 dan konsisten
naik setelah learning rate bernilai 0,7.

107
Pengujian kedua yaitu pengujian threshold terhadap nilai MSE. Pada
pengujian threshold dilakukan dengan menggunakan 7 nilai uji yaitu 10 ,
510 , 10 , 510 , 10 , 510 , dan 10 . Percobaan dilakukan sebanyak
5 kali untuk mendapatkan rata-rata nilai MSE. Hasil rata-rata nilai MSE dari uji
coba besar threshold disajikan pada gambar 6.10.
Tabel 6.10 Nilai rata-rata MSE pada pengujian treshold
MSE (1:10-4)
Threshold
coba-1 coba-2 coba-3 coba-4 coba-5 rata-rata
10-4 0.8689 0.9879 0.0012 0.9942 0.67 0.70444
-4
510 1.2776 0.2505 0.2597 1.5836 0.3205 0.73838
10-5 0.0971 0.0991 9.79E-02 0.0988 0.09851 0.098282
-5
510 0.3905 0.3773 0.4923 0.4935 0.0578 0.36228
10-6 0.0099 0.0098 0.0094 0.0099 0.0096 0.00972
510-6 0.0499 0.0489 0.0481 0.0495 0.0494 0.04916
10-7 0.0008 0.0009 0.0009 0.000979 0.0008998 0.00089576

Pada tabel 6.10 terlihat hasil rata-rata nilai MSE skala 1:10-4 dari 5
percobaan yang dilakukan. Nilai MSE terendah terletak pada saat threshold
bernilai 10 yaitu 0.000896. Untuk nilai MSE tertinggi diperoleh pada saat
threshold bernilai 510 yaitu 0,73838. Sehingga untuk tahap pengujian
selanjutnya digunakan threshold 10 . Adapun grafik pengaruh besar threshold
terhadap nilai MSE ditunjukan oleh grafik pada gambar 6.2.

10-4 5x10-4 10-5 5x10-5 10-6 5x10-6 10-7

1
0.5
0.25 0.70444 0.73838
0.125 0.36228
0.0625
(1:10-4 )

0.03125 0.098282
MSE

0.015625 0.04916
0.007812
0.003906 0.00972
0.001953
0.000976
0.000488
0.00089576
Treshold

Gambar 6.2 Perubahan MSE pada pengujian treshold

108
Berdasarkan hasil yang ditunjukan oleh grafik pada gambar 6.2 terlihat
bahwa nilai MSE yang dihasilkan bersifat fluktuatif dan memiliki kecenderungan
semakin turun. Nilai MSE beberapa kali sempat mengalami kenaikan ketika
threshold bernilai 510 , 510 , dan 510 .
Pengujian terakhir untuk prediksi peserta mata kuliah yaitu pengujian
jumlah epoch terhadap nilai MSE. Pada pengujian ini menggunakan 6 nilai epoch
yaitu 5000, 10000, 50000, 100000, 500000, dan 1000000. Percobaan dilakukan
sebanyak 5 kali untuk mendapatkan rata-rata nilai MSE. Hasil rata-rata nilai MSE
dari uji coba besar threshold disajikan pada tabel 6.11.
Tabel 6.11 Nilai rata-rata MSE pada pengujian jumlah epoch
MSE (1:10-4)
Epoch
coba-1 coba-2 coba-3 coba-4 coba-5 rata-rata
5000 0.0009841 0.0009334 0.000909 0.0008936 0.0008899 0.000922
10000 0.00095407 0.00086557 0.00092722 0.00097942 8.6694E-08 0.00074527
50000 0.0008765 0.00095646 0.00096835 0.00095424 0.00094479 0.00094007
100000 0.00095938 0.00098786 0.00097848 0.00091254 0.00099356 0.00096636
500000 0.00093696 0.00098249 0.00099714 0.00080078 0.00098381 0.00094024
1000000 7.50E-04 0.00099036 0.00096295 0.00094866 0.00096428 0.00077325

Pada tabel 6.11 terlihat hasil rata-rata nilai MSE skala 1:10-4 dari 5 kali
percobaan yang dilakukan. Nilai MSE terendah terletak ketika jumlah epoch
bernilai 10000 yaitu 0,00074527. Untuk nilai MSE tertinggi diperoleh pada saat
jumlah epoch bernilai 100000 yaitu 0,00096636. Adapun grafik pengaruh jumlah
epoch terhadap nilai MSE ditunjukan oleh grafik pada gambar 6.3.

109
0.001 0.000966365
0.000940069 0.000940236
0.00095 0.000922

0.0009

0.00085
1:10-4
MSE

0.0008 0.00077325
0.000745272
0.00075

0.0007

0.00065

0.0006
5103 104 5104 105 5105 106

Epoch

Gambar 6.3 Perubahan MSE pada pengujian jumlah epoch


Secara teori semakin besar jumlah epoch maka semakin kecil nilai MSE
yang dihasilkan, namun berdasarkan hasil yang ditunjukan oleh grafik pada
gambar 6.3 terlihat bahwa nilai MSE yang dihasilkan mengalami kenaikan pada
510 dan 10 kemudian nilainya turun setelahnya.
Dari tahap-tahap pengujian untuk prediksi peserta mata kuliah yang telah
dilakukan maka didapatkan parameter-parameter yang optimal untuk sistem yakni
learning rate 710-1, threshold 10 , dan jumlah epoch 105.

6.3.2 Pengujian penjadwalan mata kuliah

Pengujian penjadwalan mata kuliah dilakukan untuk mengetahui optimasi


jadwal yang memenuhi aturan dengan penerapan algoritma genetika. Proses
pengujian dilakukan dengan mengkombinasikan parameter-parameter genetika
seperti probabilitas crossover, probabilitas mutasi, jumlah populasi, dan jumlah
generasi. Tujuan dari uji coba adalah untuk mengetahui pengaruh parameter
genetika terhadap jadwal yang dihasilkan, dalam hal ini adalah nilai fitness-nya.
Dalam pengujian penjadwalan mata kuliah dibagi dalam 4 tahap, yakni pengujian

110
probabilitas crossover, pengujian probabilitas mutasi, pengujian jumlah populasi,
dan terakhir pengujian jumlah generasi.
Pengujian pertama adalah pengujian pengaruh probabilitas crossover
terhadap nilai fitness yang dilakukan pada 6 nilai yaitu 0,4, 0,5, 0,6, 0,7, 0,8 dan
0,9. Untuk setiap nilai uji dilakukan 5 kali percobaan untuk mendapatkan rata-rata
nilai fitness-nya. Hasil rata-rata nilai fitness dari uji coba yang dilakukan disajikan
pada tabel 6.12.
Tabel 6.12 Nilai rata-rata fitness pada pengujian probabilitas crossover
fitness
Pc
coba-1 coba-2 coba-3 coba-4 coba-5 rata-rata
0.4 0.325239 0.300764 0.305123 0.300904 0.318674 0.310141
0.5 0.317075 0.316897 0.310678 0.305393 0.310107 0.31203
0.6 0.320413 0.312791 0.314979 0.311343 0.31382 0.314669
0.7 0.320254 0.310658 0.311688 0.304944 0.294338 0.308376
0.8 0.303915 0.315924 0.327999 0.298818 0.295919 0.308515
0.9 0.321994 0.322555 0.307685 0.312435 0.304505 0.313835

Berdasarkan tabel 6.12 terlihat bahwa nilai rata-rata fitness tertinggi yaitu
0,314669 yang terletak pada probabilitas crossover 0,6. Untuk nilai rata-rata
fitness terendah adalah 0,308376 yang terletak ketika probabilitas crossover
bernilai 0,7. Untuk mengetahui lebih jelas mengenai perubahan rata-rata nilai
fitness dapat dilihat grafik pada gambar 6.4.
0.316 0.3146692
0.315 0.3138348
0.314
0.313 0.31203
0.312
fitness

0.311 0.3101408
0.31
0.3083764 0.308515
0.309
0.308
0.307
0.306
0.305
0.4 0.5 0.6 0.7 0.8 0.9

Pc

Gambar 6.4 Perubahan nilai fitness pada pengujian probabilitas crossover

111
Berdasarkan hasil yang ditunjukan oleh grafik pada gambar 6.4 terlihat
bahwa nilai fitness yang dihasilkan cenderung naik dan sempat mengalami
penurunan ketika fitness bernilai 0,7. Dari pengujian yang telah dilakukan maka
nilai 0,6 yang akan digunakan sebagai parameter probabilitas crossover pada
pengujian selanjutnya.
Pengujian selanjutnya adalah pengujian pengaruh probabilitas mutasi
terhadap nilai fitness yang dilakukan pada 5 nilai yaitu 0,05, 0,1, 0,2, 0,4, dan 0,8.
Untuk setiap nilai uji dilakukan 5 kali percobaan untuk mendapatkan rata-rata
nilai fitness-nya. Hasil rata-rata nilai fitness dari uji coba yang dilakukan disajikan
pada tabel 6.13.
Tabel 6.13 Nilai rata-rata fitness pada pengujian probabilitas mutasi
fitness
Pm
coba-1 coba-2 coba-3 coba-4 coba-5 rata-rata
0.05 0.323509 0.308807 0.315521 0.312174 0.306889 0.31338
0.1 0.289925 0.329533 0.309351 0.331151 0.316934 0.315379
0.2 0.315943 0.297827 0.330832 0.312174 0.300221 0.311399
0.4 0.333572 0.308675 0.308573 0.331749 0.322975 0.321109
0.8 0.295722 0.307638 0.320937 0.306047 0.326932 0.311455

Pada tabel 6.13 di atas terlihat bahwa nilai rata-rata fitness tertinggi yaitu
0,321109 yang terletak pada probabilitas mutasi 0,4. Untuk nilai rata-rata fitness
terendah adalah 0,3113994 yang terletak ketika probabilitas mutasi bernilai 0,2.
Untuk mengetahui lebih jelas mengenai perubahan rata-rata nilai fitness dapat
dilihat grafik pada gambar 6.5.

112
0.322 0.3211088

0.32
0.318
0.3153788
0.316
fitness 0.314
0.31338
0.3113994 0.3114552
0.312
0.31
0.308
0.306
0.05 0.1 0.2 0.4 0.8

Pm

Gambar 6.5 Perubahan nilai fitness pada pengujian probabilitas mutasi


Grafik perbandingan probabilitas mutasi dan fitness seperti yang
ditunjukan pada gambar 6.5 menunjukan perubahan yang fluktuatif. Nilai fitness
mengalami penurunan ketika probabilitas mutasi bernilai 0,2 dan 0,8. Dari
pengujian yang telah dilakukan maka nilai 0,4 yang akan digunakan sebagai
parameter probabilitas mutasi pada pengujian selanjutnya.
Selanjutnya adalah pengujian pengaruh jumlah populasi terhadap nilai
fitness yang dihasilkan. Pengujian dilakukan dengan menggunakan 5 nilai yaitu 8,
15, 30, 55, dan 70. Untuk setiap nilai uji dilakukan 5 kali percobaan untuk
mendapatkan rata-rata nilai fitness-nya. Hasil rata-rata nilai fitness dari uji coba
yang dilakukan disajikan pada tabel 6.14.
Tabel 6.14 Nilai rata-rata fitness pada pengujian populasi
fitness
populasi
coba-1 coba-2 coba-3 coba-4 coba-5 rata-rata
8 0.299155 0.319955 0.297491 0.290111 0.328429 0.307028
15 0.310696 0.327372 0.316925 0.319011 0.315597 0.31792
30 0.33346 0.332291 0.342121 0.343917 0.325427 0.335443
55 0.328457 0.325005 0.326157 0.324388 0.342934 0.329388
70 0.327904 0.324556 0.335892 0.325444 0.333433 0.329446

Pada tabel 6.14 di atas terlihat bahwa nilai rata-rata fitness tertinggi yaitu
0,335443 yang terletak pada populasi 30. Untuk nilai rata-rata fitness terendah
adalah 0,307028 yang terletak ketika populasi bernilai 8. Untuk mengetahui lebih

113
jelas mengenai perubahan rata-rata nilai fitness dapat dilihat grafik pada gambar
6.6.
0.34 0.3354432
0.335 0.3293882 0.3294458
0.33
0.325
0.3179202
0.32
fitness

0.315
0.31 0.3070282

0.305
0.3
0.295
0.29
8 15 30 55 70

Populasi

Gambar 6.6 Perubahan nilai fitness pada pengujian populasi


Grafik perbandingan populasi dan fitness seperti yang ditunjukan pada
gambar 6.6 memperlihatkan perubahan yang cenderung naik. Nilai fitness sempat
mengalami penurunan ketika populasi bernilai 55. Dari pengujian yang telah
dilakukan maka nilai 30 yang akan digunakan sebagai parameter populasi pada
pengujian selanjutnya.
Pengujian terakhir adalah pengujian pengaruh jumlah generasi terhadap
nilai fitness yang dihasilkan. Pengujian dilakukan dengan menggunakan 5 nilai
yaitu 9, 10, 11, 12, dan 13. Untuk setiap nilai uji dilakukan 5 kali percobaan untuk
mendapatkan rata-rata nilai fitness-nya. Hasil rata-rata nilai fitness dari uji coba
yang dilakukan disajikan pada tabel 6.15.
Tabel 6.15 Nilai rata-rata fitness pada pengujian generasi
fitness
generasi
coba-1 coba-2 coba-3 coba-4 coba-5 rata-rata
9 0.326848 0.325006 0.321995 0.320469 0.324108 0.323685
10 0.321863 0.316719 0.323986 0.325342 0.332105 0.324003
11 0.327821 0.326474 0.319394 0.314812 0.312791 0.320258
12 0.328336 0.306384 0.332581 0.324117 0.324164 0.323116
13 0.319357 0.307067 0.316934 0.327391 0.313165 0.316783

114
Pada tabel 6.15 di atas terlihat bahwa nilai rata-rata fitness tertinggi yaitu
0,324003 yang terletak pada generasi 9. Untuk nilai rata-rata fitness terendah
adalah 0,3167828 yang terletak ketika generasi bernilai 13. Untuk mengetahui
lebih jelas mengenai perubahan rata-rata nilai fitness dapat dilihat grafik pada
gambar 6.7.
0.326
0.3236851 0.324003
0.324 0.3231164

0.322
0.3202584
0.32
Fitness

0.318 0.3167828

0.316

0.314

0.312
9 10 11 12 13

Populasi

Gambar 6.7 Perubahan nilai fitness pada pengujian generasi


Grafik perbandingan generasi dan fitness seperti yang ditunjukan pada
gambar 6.7 memperlihatkan perubahan yang fluktuatif. Nilai fitness sempat
mengalami penurunan ketika generasi bernilai 11, dan 13. Dari pengujian yang
telah dilakukan maka nilai 10 yang akan digunakan sebagai parameter jumlah
generasi.
Dari tahap-tahap pengujian untuk penjadwalan mata kuliah yang telah
dilakukan dengan menerapkan algoritma genetika maka parameter-parameter
yang optimal untuk sistem antara lain nilai probabilitas crossover adalah 0,6 , nilai
probabilitas mutasi adalah 0,4 , jumlah populasi adalah 30, dan jumlah generasi
adalah 10.

115
6.3.3 Pengujian jumlah kelas mata kuliah terhadap waktu penjadwalan

Pengujian jumlah kelas mata kuliah terhadap waktu penjadwalan


digunakan untuk membuktikan bahwa semakin banyak kelas mata kuliah yang
dijadwalkan maka semakin lama waktu proses penjadwalan yang dibutuhkan.
Pengujian dilakukan dengan menggunakan 5 nilai yaitu 304, 312, 316, 320, dan
324. Untuk setiap nilai uji dilakukan 5 kali percobaan untuk mendapatkan rata-
rata waktunya. Hasil rata-rata waktu proses penjadwalan dari uji coba yang
dilakukan disajikan pada tabel 6.16.
Tabel 6.16 Nilai rata-rata waktu pada pengujian jumlah kelas
waktu
jumlah kelas
coba-1 coba-2 coba-3 coba-4 coba-5 rata-rata
304 7829.06 8076.675 8830.655 9085.182 9535.708 8671.456
312 12730.06 13609.79 13974.34 14340.58 13568.33 13644.62
316 12853.33 17659.3 13560.94 12794.72 17473.22 14868.3
320 17002.53 20145.91 17033.35 14650.89 18515.19 17469.57
324 22323.14 19993.16 19919.54 19340.41 18098.73 19934.99

Pada tabel 6.16 di atas terlihat bahwa nilai rata-rata waktu tertinggi yaitu
19934,99 detik yang terletak pada jumlah kelas 324. Untuk nilai rata-rata waktu
terendah adalah 8671,456 detik yang terletak ketika jumlah kelas bernilai 304.
Untuk mengetahui lebih jelas mengenai perubahan rata-rata nilai waktu dapat
dilihat grafik pada gambar 6.8.
25000
19934.9942
20000 17469.5748
14868.3046
waktu (detik)

13644.618
15000

8671.456
10000

5000

0
304 312 316 320 324

Jumlah Kelas

Gambar 6.8 Perubahan nilai waktu pada pengujian jumlah kelas

116
Grafik perbandingan jumlah kelas dan waktu seperti yang ditunjukan pada
gambar 6.8 memperlihatkan perubahan yang semakin naik. Ini artinya bahwa
semakin banyak jumlah kelas mata kuliah yang dijadwalkan maka semakin
banyak waktu untuk pemrosesan yang dibutuhkan.

117
BAB VII
KESIMPULAN DAN SARAN

7.1 Kesimpulan

Pada penelitian yang telah dilakukan ini menghasilkan beberapa


kesimpulan dari aplikasi yang telah dikembangkan antara lain sebagai berikut:
1. Aplikasi yang dikembangkan berhasil mengimplementasikan jaringan syaraf
tiruan untuk proses prediksi jumlah peserta mata kuliah di fakultas
Matematika dan Ilmu Pengetahuan Alam.
2. Aplikasi yang dikembangkan berhasil mengimplementasikan algoritma
genetika untuk proses penjadwalan kelas mata kuliah di fakultas Matematika
dan Ilmu Pengetahuan Alam yang menggunakan ruang berdasarkan jumlah
peserta mata kuliah hasil prediksi.
3. Kombinasi parameter masukan yang tepat pada proses prediksi jumlah
peserta mata kuliah dengan menerapkan jaringan syaraf tiruan dapat
menghasilkan hasil prediksi yang lebih optimal.
4. Kombinasi parameter masukan yang tepat pada proses penjadwalan kelas
mata kuliah dengan menerapkan algoritma genetika dapat menghasilkan hasil
jadwal yang lebih optimal.
5. Pada proses penjadwalan kelas mata kuliah, semakin banyak kelas yang
dijadwalkan maka semakin lama waktu yang dibutuhkan oleh algoritma
genetika dalam menghasilkan jadwal.

7.2 Saran

Seperti yang dipaparkan pada pendahuluan, masih terdapat batasan-


batasan masalah dan kekurangan pada aplikasi yang telah dikembangkan pada

118
penelitian ini. Beberapa hal yang dapat dijadikan acuan atau pertimbangan pada
penelitian lebih lanjut adalah sebagai berikut:
1. Penelitian selanjutnya dapat membandingkan performa jaringan syaraf tiruan
dengan teknik lain dalam memprediksi jumlah peserta mata kuliah.
2. Penelitian selanjutnya pada proses prediksi jumlah peserta mata kuliah dapat
dilakukan perbandingan dengan data yang lebih banyak serta pola jaringan
yang bervariasi.
3. Implementasi dengan menggunakan bahasa pemrograman lain mengingat
keterbatasan bahasa pemrograman php dalam proses pengolahan komputasi.
4. Penelitian ini menghasilkan aplikasi yang mampu menghasilkan jadwal kelas
mata kuliah, dan penelitian selanjutnya dapat mengembangkan aplikasi agar
juga mampu menghasilkan jadwal ujian mata kuliah.

119
DAFTAR PUSTAKA
Adamanti, J., 2002, Penyelesaian Penjadwalan Mata Kuliah di Fakultas
Matematika dan Ilmu Pengetahuan Alam Universitas Gadjah Mada dengan
Menggunakan Algoritma Genetika, Skripsi, Jurusan Ilmu Komputer dan
Elektronika FMIPA UGM, Yogyakarta.
Anggamardika, P., 2008, Penyelesaian Masalah Penjadwalan Matakuliah di
Fakultas MIPA Universitas Gadjah Mada Dengan Artificial Immune
System, Skripsi, Jurusan Ilmu Komputer dan Elektronika FMIPA UGM,
Yogyakarta.
Arfandi, N., 2013, Implementasi Algortima Genetika Untuk Proses Penempatan
(Plotting) Peserta Kuliah Kerja Nyata di Universitas Gadjah Mada,
Skripsi, Jurusan Ilmu Komputer dan Elektronika FMIPA UGM,
Yogyakarta.
Aydin, M.A., 2008, Solving University Course Timetabling Problem Using
Genetic Algorithm, Tesis, Institute Of Sciences Industrial Engineering
Bahcesehir University, Istanbul.
Bagui, S., and Earp, R., 2003, Database Design Using Entity-Relationship
Diagrams, Auerbach Publications, Florida.
Burke, E.K., Elliman, D.G., and Weare, R.F., 1995, A Genetic Algorithm for
University Timetabling, Baywood Publishing Company, San Fransisco.
Converse, T., Park, J., and Morgan, C., 2004, PHP5 and MySQL Bible, Wiley
Publishing, Inc., Indiana.
Davis, M.E., and Phillips, J.A., 2007, Learning PHP and MySQL, Second Edition,
OReilly Media, Inc., California.
Goldberg, D.E., 1989, Genetic Algorithms in Search, Optimization, and Machine
Learning, Addison-Wesley, Alabama.
Graupe, D., 1997, Principles of Artificial Neural Networks, Vol. 3, World
Scientific Pub Co, Inc., Chicago.

120
Griffiths, A., 2010, Codeigniter 1.7 Professional Development, Packt Publishing
Ltd., Birmingham.
Hajek, M., 2005, Neural Networks, University of KwaZulu-natal, KwaZulu-natal.
Kawaguchi, K., 2000, A Multithreaded Software Model for Backpropagation
Neural Network Applications, Thesis, Department of Electrical and
Computer Engineering, University of Texas, Austin.
Kendall, K.E. and Kendall, J.E., 2011, Systems Analysis and Design, Eighth
Edition, Prentice Hall , New Jersey.
Kusumadewi, S., 2003, Artificial Intelligence (Teknik dan Aplikasinya), Graha
Ilmu, Yogyakarta.
Naramore, E., Gerner, J., Le-Scouarnec, Y., Stolz, J., and Glass, M.K., 2005,
Beginning PHP5, Apache, and MySQL Web Development, Wiley
Publishing, Inc., Indiana.
Negnevitsky, M., 2005, Artificial Intelligence, Pearson Education, England.
Pallaw, V.K., 2010, Database Management Systems, Second Edition, Asian
Books, New Delhi.
Puspitaningrum, D., 2006, Pengantar Jaringan Syaraf Tiruan, Penerbit Andi,
Yogyakarta.
Rahayu, D.D., 2010, Implementasi Algoritma Genetika Dalam Penjadwalan
Praktikum, Skripsi, Jurusan Ilmu Komputer dan Elektronika FMIPA UGM,
Yogyakarta.
Siang, J.J., 2004, Jaringan Syaraf Tiruan dan Pemrogramannya Menggunakan
MATLAB, Penerbit Andi, Yogyakarta.
Sivanandam, S.N., and Deepa, S.N., 2007, Introduction to Genetic Algorithms,
Springer, New York.
Suyanto, 2011, Artificial Intelligence: Searching - Reasoning - Planning -
Learning, Edisi Revisi, Informatika Bandung, Bandung.

121

Anda mungkin juga menyukai