22 Simbol dasar data flow diagram (Kendall, 2011)

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.

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.

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.

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

3 Mik-4503 Enterprise system

Ganjil

Wajib

3 Mik-1253 Matematika diskrit II

3 Ganjil

Wajib

4 Mik-4403 Jaringan syaraf tiruan

3 Genap

Wajib

3 Mik-4207 Algoritma genetika

3 Gasal

Pilihan

5 Mik-4453 Sistem pakar

3 Gasal

Pilihan

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

3 Genap Pilihan

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

Tabel 4.3 Contoh dosen dengan mata kuliah yang diampu

Mata Kuliah yang Diampu Sri Mulyana, Drs., M.Kom

Dosen

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-

69 Analisis dan MIK4651

Medi, Drs., M.Kom.

Desain Protokol ILKOM-B-

74 Analisis dan MIK4651

Medi, Drs., M.Kom.

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

U2.01

U2.06

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

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

Tabel 4.7 Contoh jadwal mata kuliah

Sesi Ruang Sks ILKOM-A-MIK4651 Kamis 1-2

Kelas

Hari

3 ILKOM-B-MIK4651 Rabu

3 KIMIA-A-MKK2502 Kamis 10

S2.S3

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 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

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 6. Pertemuan kelas mata kuliah yang lebih dari satu kali diadakan pada hari yang berbeda. Biasanya terjadi pada mata kuliah 3 sks yang dipecah

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 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

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.

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.

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 Perancangan basis data diperlukan untuk memodelkan hubungan antar data serta menyedikan struktur informasi bagi sistem. Pada perancangan basis data

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.

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.

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

1:N dosen

M:N program_studi

mata_kuliah_kurikulum 1:N kelas

menyelenggarakan

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

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 Proses utama dalam menghasilkan jadwal dapat dibagi menjadi 3 tahap, yakni proses prediksi peserta mata kuliah, proses pembangkitan kelas, dan proses

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.

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 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

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.

Komponen-komponen tersebut kemudian digunakan dalam membangun model jaringan syaraf tiruan seperti yang dapat ditunjukkan pada gambar 4.4.

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 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

hingga ditunjukan oleh persamaan 4.3.

− 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:

max(

) − min(

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.

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.

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.

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”.

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.

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.

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.

Sisa pertama selalu dialihkan ke kelas pertama. Untuk mendapatkan jumlah peserta per kelas ditunjukan pada persamaan 4.9.

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, 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,

Tabel 4.9 Daftar waktu kuliah dalam seminggu

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.

Ruang/Waktu

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 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

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 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

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. 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, 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,

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.

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.

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 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

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.

ℎ Sehingga didapatkan fungsi fitness dari hasil perhitungan masing-masing

aturan seperti yang ditunjukan pada persamaan 4.17 dan 4.18.

4. Perancangan metode seleksi

Pada penelitian ini digunakan seleksi roulette wheel dalam menyeleksi orang tua yang akan dikawinkan dari kromosom-kromosom yang berada pada Pada penelitian ini digunakan seleksi roulette wheel dalam menyeleksi orang tua yang akan dikawinkan dari kromosom-kromosom yang berada pada

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.

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.

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.

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

dps data program studi

informasi program studi ddsn

ips

informasi dosen dmkk

data dosen

idsn

informasi mata kuliah kurikulum dwkt

data mata kuliah kurikulum

imkk

informasi waktu dru

data waktu

iwkt

informasi ruang dmkrkp

data ruang

iru

informasi mata kuliah rekap dkls

data mata kuliah rekap

imkrkp

informasi kelas djk

data kelas

ikls

informasi jadwal kelas ddsnk

data jadwal kuliah

ijk

informasi dosen kelas dju

data dosen kelas

idsnk

informasi jadwal kuliah dmhk

data jadwal ujian

iju

informasi mahasiswa kelas ddsnwkt

data mahasiswa kelas

imhk

informasi dosen waktu dmkkp

data dosen waktu

idsnwkt

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 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

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.

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 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

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 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

Gambar 4.14 Diagram 3

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.

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.

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 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

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.

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

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

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.

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 Proses prediksi peserta diterapkan menggunakan backpropagation yang merupakan metode pembelajaran terawasi pada jaringan syaraf tiruan. Backpropagation dapat memprediksi jumlah peserta mata kuliah melalui beberapa

//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 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

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.

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()

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.

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 Time) yang digunakan untuk menghentikan proses pencarian bobot apabila

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 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

//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

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 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

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()

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 suatu individu. Pada proses perhitungan nilai fitness dibagi dalam beberapa tahap

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.

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- 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-

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.

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

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 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

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

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.

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.

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.

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

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.

Gambar 5.28 Halaman jadwal mata kuliah

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

Total program studi

Total ruang

Total waktu

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 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

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

UNU1000 AGAMA ISLAM

3 3 0 0 0 98 210 196 MIK4207

ALGORITMA DAN STRUKTUR DATA II

3 5 20 0 0 20 47 21 MFF2025

ALGORITMA GENETIKA

3 3 0 0 0 0 0 12 MMM1202 ALJABAR LINEAR ELEMENTER

ALJABAR ABSTRAK DALAM FISIKA TEORETIK

164 171 110 106 79 MMM3204 ALJABAR LINEAR NUMERIK

2 5 51 50 42 51 65 57 MMM1207 ALJABAR VEKTOR DAN MATRIKS

ANALISIS DAN DESAIN ALGORITMA I

2 5 0 0 0 156 139 222 MKK3841

ANALISIS INSTRUMENTAL II

2 1 0 0 0 57 101 122 MIE2806

ANALISIS KIMIA LINGKUNGAN

2 3 0 0 0 99 121 133 MMS3402

ANALISIS PENGUKURAN FISIS

85 87 73 95 102 MFG3948

ANALISIS REGRESI TERAPAN

2 5 0 0 0 19 70 99 MMS3417

ANALISIS SPEKTRUM SINYAL DIGITAL

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

ANALISIS VARIANSI TERAPAN

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.

Tabel 6.3 Gambaran data hasil prediksi menggunakan data masukkan proses pelatihan pada 14 data pertama

seri 3 MAKUL

seri 1

seri 2

data masukan

data masukan

target prediksi data masukan target prediksi

AGAMA ISLAM

507 240 716 678 528 526 ALGORITMA DAN STRUKTUR DATA II

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

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

153 192 149 134 99 152 ANALISIS DAN DESAIN ALGORITMA I

100 0 91 124 130 110 ANALISIS INSTRUMENTAL II

139 0 156 139 219 150 ANALISIS KIMIA LINGKUNGAN

63 0 57 101 119 72 ANALISIS PENGUKURAN FISIS

108 0 99 121 133 115 ANALISIS REGRESI TERAPAN

85 87 73 74 85 87 73 95 95 87 73 95 102 102 ANALISIS SPEKTRUM SINYAL DIGITAL

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.

0 0 0 19 36 0 0 19 70 56 0 19 70 99 98 ANALISIS VARIANSI TERAPAN

Tabel 6.4 Gambaran hasil prediksi jumlah peserta pada semester ganjil tahun 2014 pada 14 data pertama

Kode Nama Mata Kuliah

Data Masukan

Hasil Prediksi

Target Akurasi

UNU1000 AGAMA ISLAM

ALGORITMA DAN STRUKTUR DATA II

ALGORITMA GENETIKA 20 47 21 21 31 68% MFF2025

ALJABAR ABSTRAK DALAM FISIKA TEORETIK 0 0 12 4 19 21% MMM1202

79 106 85 75% MMM3204

ALJABAR LINEAR ELEMENTER

ALJABAR LINEAR NUMERIK 51 65 57 57 34 32% MMM1207

99 149 100 51% MIK2203

ALJABAR VEKTOR DAN MATRIKS

ANALISIS DAN DESAIN ALGORITMA I

ANALISIS INSTRUMENTAL II

ANALISIS KIMIA LINGKUNGAN

ANALISIS PENGUKURAN FISIS

ANALISIS REGRESI TERAPAN

ANALISIS SPEKTRUM SINYAL DIGITAL 19 70 99 98 77 73% MMS3417

ANALISIS VARIANSI TERAPAN

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

523 MIK2201

UNU1000

AGAMA ISLAM

121 MIK4207

ALGORITMA DAN STRUKTUR DATA II

21 MFF2025

ALGORITMA GENETIKA

4 MMM1202

ALJABAR ABSTRAK DALAM FISIKA TEORETIK

106 MMM3204

ALJABAR LINEAR ELEMENTER

57 MMM1207

ALJABAR LINEAR NUMERIK

149 MIK2203

ALJABAR VEKTOR DAN MATRIKS

108 MKK3501

ANALISIS DAN DESAIN ALGORITMA I

148 MKK3841

ANALISIS INSTRUMENTAL II

71 MIE2806

ANALISIS KIMIA LINGKUNGAN

114 MMS3402

ANALISIS PENGUKURAN FISIS

105 MFG3948

ANALISIS REGRESI TERAPAN

98 MMS3417

ANALISIS SPEKTRUM SINYAL DIGITAL

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

ANALISIS VARIANSI TERAPAN

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.

Tabel 6.6 Konfigurasi global pembangkitan kelas oleh fakultas MIPA

Konfigurasi

Nilai

Jumlah minimal kelas

Jumlah maksimal kelas

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

Kode

Mata Kuliah

Nama Kelas

Jumlah Peserta

59 UNU1000

UNU1000

AGAMA ISLAM

UNU1000-1

58 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 MIK2201

AGAMA ISLAM

UNU1000-9

61 MIK2201

ALGORITMA DAN STRUKTUR DATA II

ILKOM-A-MIK2201

60 MIK4207

ALGORITMA DAN STRUKTUR DATA II

ILKOM-B-MIK2201

21 MMM1202

ALGORITMA GENETIKA

ILKOM-MIK4207

53 MMM1202

ALJABAR LINEAR ELEMENTER

MAT-A-MMM1202

53 MMM3204

ALJABAR LINEAR ELEMENTER

MAT-B-MMM1202

57 MMM1207

ALJABAR LINEAR NUMERIK

MAT-MMM3204

75 MMM1207

ALJABAR VEKTOR DAN MATRIKS

MAT-A-MMM1207

74 MIK2203

ALJABAR VEKTOR DAN MATRIKS

MAT-B-MMM1207

54 MIK2203

ANALISIS DAN DESAIN ALGORITMA I

ILKOM-A-MIK2203

54 MKK3501

ANALISIS DAN DESAIN ALGORITMA I

ILKOM-B-MIK2203

74 MKK3501

ANALISIS INSTRUMENTAL II

KIM-A-MKK3501

74 MKK3841

ANALISIS INSTRUMENTAL II

KIM-B-MKK3501

71 MIE2806

ANALISIS KIMIA LINGKUNGAN

KIM-MKK3841

57 MIE2806

ANALISIS PENGUKURAN FISIS

ELINS-A-MIE2806

57 MMS3402

ANALISIS PENGUKURAN FISIS

ELINS-B-MIE2806

53 MMS3402

ANALISIS REGRESI TERAPAN

STAT-A-MMS3402

52 MFG3948

ANALISIS REGRESI TERAPAN

STAT-B-MMS3402

49 MFG3948

ANALISIS SPEKTRUM SINYAL DIGITAL

GEOFIS-A-MFG3948

49 MMS3417

ANALISIS SPEKTRUM SINYAL DIGITAL

GEOFIS-B-MFG3948

ANALISIS VARIANSI TERAPAN

STAT-MMS3417

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 Kode

Nama smt

Nama kelas

Jadwal Tatap Muka

Peserta

senin

selasa rabu kamis jumat

UNU1000 AGAMA ISLAM

G3 59 15:30-17:10 UNU1000 AGAMA ISLAM

1 UNU1000-1

2 ROTO, Drs., M.Eng., Ph.D.

58 15:30-17:10 UNU1000 AGAMA ISLAM

1 UNU1000-2

2 SUNARTA, Drs., M.S.

U2.02

58 14:30-16: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 15:30-17: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 09:30-11:10 UNU1000 AGAMA ISLAM

1 UNU1000-7

2 EDI SUHARYADI, S.Si., M.Eng., Dr.Eng.

S2.08

G3 58 09:30-11:10 UNU1000 AGAMA ISLAM

1 UNU1000-8

2 ADHITYA RONNIE EFFENDIE, M.Si., M.Sc.,

58 15:30-17:10 MIK2201 ALGORITMA DAN STRUKTUR DATA II

1 UNU1000-9

Dr. 2 GUNTUR MARUTO, Drs., S.U., Dr.

U2.04

61 14:30-17:00 MIK2201 ALGORITMA DAN STRUKTUR DATA II

3 ILKOM-A-MIK2201

3 YOHANES SUYANTO, Drs., M.I.Kom.

S2.01

60 14:30-17:00 MIK4207 ALGORITMA GENETIKA

3 ILKOM-B-MIK2201

3 JANOE HENDARTO, Drs., M.I.Kom.

S2.08

21 13:30-16:00 MMM1202 ALJABAR LINEAR ELEMENTER

5 ILKOM-MIK4207

3 FAIZAH, S.Kom., M.Sc.

S2.06

53 10:30-13:00 MMM1202 ALJABAR LINEAR ELEMENTER

1 MAT-A-MMM1202

3 ARI SUPARWANTO, M.Si., Dr.rer.nat.

U2.06

53 10:30-13:00 MMM3204 ALJABAR LINEAR NUMERIK

1 MAT-B-MMM1202

3 BUDI SURODJO, M.Si., Dr.

M2.10

57 07:30-09:10 MMM1207 ALJABAR VEKTOR DAN MATRIKS

5 MAT-MMM3204

2 YENI SUSANTI, S.Si., M.Si.

U2.06

75 15:30-17:10 MMM1207 ALJABAR VEKTOR DAN MATRIKS

1 MAT-A-MMM1207

2 YENI SUSANTI, S.Si., M.Si.

S2.03

74 15:30-17:10 MIK2203 ANALISIS DAN DESAIN ALGORITMA I

1 MAT-B-MMM1207

2 ARI SUPARWANTO, M.Si., Dr.rer.nat.

S2.505

54 14:30-17:00 MIK2203 ANALISIS DAN DESAIN ALGORITMA I

3 ILKOM-A-MIK2203

3 ANNY KARTIKA SARI, M.Sc.,Dr

M2.10

54 14:30-17:00 MKK3501 ANALISIS INSTRUMENTAL II

3 ILKOM-B-MIK2203

3 JANOE HENDARTO, Drs., M.I.Kom.

U2.06

74 11:30-13:10 MKK3501 ANALISIS INSTRUMENTAL II

5 KIM-A-MKK3501

2 AGUS KUNCAKA, Dr., DEA.

Lab.Das.

74 11:30-13:10 MKK3841 ANALISIS KIMIA LINGKUNGAN

5 KIM-B-MKK3501

2 DWI SISWANTO, Drs., M.Eng., Ph.D.

M2.12

71 07:30-09:10 MIE2806 ANALISIS PENGUKURAN FISIS

1 KIM-MKK3841

2 ENDANG TRI WAHYUNI, M.S., Dr., Prof.

S2.505

57 07:30-09:10 MIE2806 ANALISIS PENGUKURAN FISIS

3 ELINS-A-MIE2806

2 MASIRAN, M.Si.

M2.10

57 07:30-09:10 MMS3402 ANALISIS REGRESI TERAPAN

3 ELINS-B-MIE2806

2 LINA ARYATI, Dra., M.S., Dr.rer.nat.

K1

53 13:30-15:10 MMS3402 ANALISIS REGRESI TERAPAN

5 STAT-A-MMS3402

2 HERNI UTAMI, S.Si., M.Si.,

M2.10

52 13:30-15:10 MFG3948 ANALISIS SPEKTRUM SINYAL DIGITAL

5 STAT-B-MMS3402

2 SUGENG, A.Md.

S2.505

49 10:30-12:10 MFG3948 ANALISIS SPEKTRUM SINYAL DIGITAL

5 GEOFIS-A-MFG3948

2 BUDI EKA NURCAHYA, Drs., M.Si.

S2.08

49 10:30-12:10 MMS3417 ANALISIS VARIANSI TERAPAN

5 GEOFIS-B-MFG3948

2 MARDANI, S.E., M.T.

U2.03

5 STAT-MMS3417

2 SRI HARYATMI, M.Sc., Dr., Prof.

U2.01

78 08:30-10:10

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.

Tabel 6.9 Nilai rata-rata MSE pada pengujian learning rate

MSE (1:10 )

Learning rate

coba-1

coba-5 rata-rata 0.1 9.9882

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.

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.

Pengujian kedua yaitu pengujian threshold terhadap nilai MSE. Pada pengujian threshold dilakukan dengan menggunakan 7 nilai uji yaitu 10 , 5×10 , 10 , 5×10 , 10 , 5×10 , 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-5 rata-rata 10 -4

0.000979 0.0008998 0.00089576 -4 Pada tabel 6.10 terlihat hasil rata-rata nilai MSE skala 1:10 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 5×10 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

Gambar 6.2 Perubahan MSE pada pengujian treshold

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 5×10 , 5×10 , dan 5×10 . 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

coba-5 rata-rata 5000 0.0009841 0.0009334

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.

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 5×10 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 7×10 5 , threshold 10 , dan jumlah epoch 10 .

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 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

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-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.

Gambar 6.4 Perubahan nilai fitness pada pengujian probabilitas crossover

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-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.

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

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 adalah 0,307028 yang terletak ketika populasi bernilai 8. Untuk mengetahui lebih

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

generasi

fitness

coba-1

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

coba-2

coba-3

coba-4

coba-5

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.32 Fi tn 0.318

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.

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-5 rata-rata

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.

Jumlah Kelas

Gambar 6.8 Perubahan nilai waktu pada pengujian jumlah kelas

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.

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 Seperti yang dipaparkan pada pendahuluan, masih terdapat batasan- batasan masalah dan kekurangan pada aplikasi yang telah dikembangkan pada

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.