2014
SKRIPSI
2014
HALAMAN PENGESAHAN
SKRIPSI
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.
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.
Penulis
vi
DAFTAR ISI
PERNYATAAN ................................................................................................. iv
PRAKATA .......................................................................................................... v
BAB I .................................................................................................................. 1
PENDAHULUAN ............................................................................................... 1
BAB II ................................................................................................................. 6
TINJAUAN PUSTAKA....................................................................................... 6
BAB III................................................................................................................ 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
viii
4.2 Analisis Kebutuhan Aplikasi ..................................................................... 42
IMPLEMENTASI.............................................................................................. 76
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
x
DAFTAR GAMBAR
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
xvi
ABSTRACT
xvii
BAB I
PENDAHULUAN
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.
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.
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
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
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.
Kromosom A 213568749
Kromosom B 613429578
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 010100001
Kromosom B 101001010
10
1. Seleksi roda roulette (roulette wheel selection)
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.
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.
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.
Pindah silang ini menggunakan banyak titik untuk pertukarannya. Contoh pindah
silang banyak titik ditunjukkan pada gambar 3.6.
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
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.
15
3.2 Jaringan syaraf tiruan
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.
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].
18
Gambar 3.12 Jaringan syaraf dengan lapisan tunggal (Kawaguchi, 2000)
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.
20
2. Fungsi sigmoid ditunjukan pada persamaan 3.4 dan fungsi turunannya
ditunjukkan pada persamaan 3.5.
( )= (3.4)
( ) = ( )(1 ( )) (3.5)
Digunakan jika keluaran yang dihasilkan oleh jaringan syaraf tiruan merupakan
sembarang bilangan riil (bukan hanya pada range [0,1] atau [1,-1]).
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
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)
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)
= ( _ ) (3.10)
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)
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.
26
browser menggunakan markup HTML yang dikembalikan dari web server untuk
menampilkan halaman web di layar komputer.
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.
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.
29
Gambar 3.21 Many-to-many (Earp dkk., 2003)
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.
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.
32
BAB IV
ANALISIS DAN PERANCANGAN
33
4.1.1 Mekanisme penjadwalan mata kuliah di fakultas MIPA UGM
34
4.1.2 Karakteristik komponen utama penjadwalan mata kuliah
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
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
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.
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
41
4.2 Analisis Kebutuhan Aplikasi
42
dalam penelitian ini pertama terdapat rancangan bisnis yang terjadi kemudian
dimodelkan dengan diagram E-R (Entity Relationship).
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
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.
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.
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.
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)
52
| |
= 100% 100% (4.5)
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)
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 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
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.
58
memenuhi aturan umum. Contoh rancangan populasi sebanyak N dengan jumlah
gen (kelas) sebanyak m ditunjukan pada gambar 4.7.
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)
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.
1. Diagram konteks
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
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.
66
Gambar 4.12 Diagram 1
4. Diagram 2
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.
5. Diagram 3
68
jadwal ruang dan waktunya. Hasil penjadwalan kelas kemudian disimpan oleh
aplikasi. Diagram 3 ditunjukan pada gambar 4.14.
69
4.5 Perancangan Antarmuka Pengguna
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.
72
sebagai data input yang nantinya akan diproses. Rancangan antarmuka untuk
masukan sekaligus menampilkan data masukan dapat dilihat pada gambar 4.19.
73
Gambar 4.20 Rancangan halaman masukan parameter prediksi
4.5.3 Perancangan halaman menu 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.
75
BAB V
IMPLEMENTASI
76
Gambar 5.1 Struktur basis data
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
prosesBackprop(dataInput,target);
MSE = mse(target);
/*proses pengujian*/
hasil = feedForward(ujiData);
78
pelatihan. Gambar 5.3 merupakan kode sumber fungsi createWeight() untuk
mendapatkan nilai bobot awal.
79
public function scale($data, $min, $max){
//jumlah data pelatihan pertama
$numElem = count($data[0]); //4
$temp = 0.0;
return $data;
}
80
4. prosesBackprop()
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];
}
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.
return $mse;
}
return $unscaledVector;
}
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);
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;
}
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.
}
//pengambilan solusi dari hasil proses algoritma genetika
solusi = get_solution();
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.
return $ind;
}
87
perhitungan nilai pelanggaran pada masing-masing aturan khusus. Gambar 5.15
merupakan proses penentuan nilai fitness pada 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;
}
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.
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;
}
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;
}
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.
93
5.4.3 Implementasi halaman rekapitulasi jumlah peserta mata kuliah
94
Gambar 5.23 Halaman input proses prediksi
5.4.5 Implementasi halaman prediksi jumlah peserta mata kuliah
95
Gambar 5.24 Halaman mata kuliah beserta prediksi jumlah peserta
5.4.6 Implementasi halaman input pembangkitan kelas
96
Gambar 5.25 Halaman input pembangkitan kelas
5.4.7 Implementasi halaman daftar kelas
97
5.4.8 Implementasi halaman input proses penjadwalan
98
Gambar 5.28 Halaman jadwal mata kuliah
99
BAB VI
HASIL PENELITIAN DAN PENGUJIAN
100
melalui dalam 3 tahap, yakni prediksi peserta mata kuliah, pembagian kelas, dan
penjadwalan mata kuliah.
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
102
Dari total mata kuliah yang berjumlah 190 yang telah berhasil diprediksi
jumlah pesertanya, didapatkan rata-rata akurasi prediksinya sebesar 67%.
103
Tabel 6.6 Konfigurasi global pembangkitan kelas oleh fakultas MIPA
Konfigurasi Nilai
Jumlah minimal kelas 5
Jumlah maksimal kelas 90
104
6.2.3 Penjadwalan mata kuliah
105
6.3 Pengujian
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
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.
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
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
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
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
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
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
115
6.3.3 Pengujian jumlah kelas mata kuliah terhadap waktu penjadwalan
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
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
7.2 Saran
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