• Tidak ada hasil yang ditemukan

Aplikasi penjadwalan mata kuliah menggunakan algoritma genetika : studi kasus Program Studi Pendidikan Guru Sekolah Dasar (PGSD) Universitas Sanata Dharma.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Aplikasi penjadwalan mata kuliah menggunakan algoritma genetika : studi kasus Program Studi Pendidikan Guru Sekolah Dasar (PGSD) Universitas Sanata Dharma."

Copied!
232
0
0

Teks penuh

(1)

x

DAMAI KURNIA ADHI. Aplikasi Penjadwalan Mata Kuliah Menggunakan Algoritma Genetika (Studi Kasus : Program Studi Pendidikan Guru Sekolah Dasar (PGSD) Universitas Sanata Dharma). Dibimbing oleh Puspaningtyas Sanjoyo Adi, S.T., M.T.

Penjadwalan matakuliah merupakan pekerjaan rutin dalam kegiatan sistem akademik di Universitas. Dalam pelaksanaanya, seringkali jadwal yang telah dibuat tidak sesuai dengan yang diharapkan. Pada dasarnya dalam menentukan jadwal mata kuliah perlu diatur sedemikian rupa sehingga semua mahasiswa dapat mengikuti mata kuliah yang diambilnya tanpa bertabrakan dengan mata kuliah lain dan sesuai dengan jam dosen tersebut mengajar. Penyusunan Jadwal matakuliah perlu mempertimbangkan aturan – aturan tertentu. Apabila dalam penyusunan jadwal masih menggunakan cara manual, waktu yang dibutuhkan untuk menyelesaikan juga akan lebih banyak.

Penjadwalan matakuliah merupakan kombinasi dari hari, ruang, dan waktu terhadap kuliah dengan mempertimbangkan aturan tertentu dalam program studi. Algoritma Genetika digunakan sebagai pendekatan permasalahan yang ditemukan pada penjadwalan matakuliah. Dalam mencari solusi permasalahan, Algoritma Genetika menerapkan sistem sekelsi alam. Tujuan penelitian ini adalah merancang Algoritma Genetika dalam menyusun jadwal matakuliah dan mengukur tingkat keberhasilan pemetaan jadwal matakuliah menggunakan algoritma genetika.

Tahapan proses dalam Algoritma Genetika terdiri dari populasi awal, evaluasi fitness kromosom (jadwal kuliah), dan operator genetika yaitu crossover dan mutasi. Dari penelitian yang dilakukan, didapatkan hasil bahwa pembuatan jadwal matakuliah menggunakan Algoritma genetika dapat berjalan dengan baik dalam meminimalisir penggunaan ruang. Berkaitan dengan penerapan jumlah kromosom dalam Algoritma Genetika, semakin banyak jumlah kromosom dalam satu populasi maka penyelesaian pembuatan jadwal matakuliah jauh lebih cepat.

(2)

xi

ABSTRACT

DAMAI KURNIA ADHI. Application Of Scheduling Courses with Genetic Algorithm (Case Study : Primary School Teacher Education Study Program Sanata Dharma University). Mentored by Puspaningtyas Sanjoyo Adi, S.T., M.T.

Scheduling courses is routine work in the academic activities at the University. In the implementation, often schedules that have been made are not as expected. In determining the schedule of courses should be so arranged that all students can follow the courses he had taken without colliding with other course and in accordance with the teaching lecturer hours. Preparation of scheduling courses need to consider the certain rules. If in the preparation of the schedule is still using the manual method, the time it takes to complete will also be more.

Scheduling course is a combination of day, rooms, and time to lecture by considering certain rules in the study program. Genetic Algorithm is used as an approach to the problems found in the course scheduling. In searching for solutions to problems, Genetic Algorithm applying natural selection system. The purpose of this research is to design Genetic Algorithm to build scheduling courses and measure the success rate of the course schedule mapping using Genetic Algorithms.

Step of the process of Genetic Algorithm consists of initial population, fitness evaluation (class schedule), and genetic operators, are crossover and mutation. From the research conducted, showed that creating scheduling courses using Genetic Algorithm can work well in minimizing the use rooms. Related with the implementation of the number of chromosomes in a Genetic Algorithm, the more the number of chromosomes in the population of the completion of the course scheduling much faster.

(3)

i

APLIKASI PENJADWALAN MATA KULIAH MENGGUNAKAN ALGORITMA GENETIKA

(Studi Kasus : Program Studi Pendidikan Guru Sekolah Dasar (PGSD) Universitas Sanata Dharma)

SKRIPSI

Ditujukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

HALAMAN JUDUL

Disusun Oleh : Damai Kurnia Adhi

105314024

PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

(4)

ii

APPLICATION OF SCHEDULING COURSES WITH GENETIC ALGORITHM

(Case Study : Primary School Teacher Education Study Program Sanata Dharma University)

A THESIS

Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Komputer Degree In Department of Informatics Engineering

By :

Damai Kurnia Adhi NIM : 105314024

INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY

(5)

iii

(6)

iv

(7)
(8)

vi

HALAMAN PERSEMBAHAN

Karya tulis ini kupersembahkan untuk:

Ayah dan Ibuku tercinta yang selalu memberikan doa, kepercayaan dan dukungan

yang sangat berarti untukku.

Kedua adikku yang kukasihi yang selalu memberikan semangat motivasi untuk

terus berusaha mendapatkan hasil yang terbaik.

(9)

vii

HALAMAN MOTTO

“Berbahagialah orang yang membawa damai, karena mereka akan disebut anak-anak Allah” - Matius 5:9

"Barangsiapa setia dalam perkara-perkara kecil, ia setia juga dalam perkara-perkara besar. Dan barangsiapa tidak benar dalam perkara-perkara kecil, ia tidak benar juga dalam perkara-perkara

besar." - Lukas 16:10

“Karena itu, saudara-saudaraku yang kekasih, berdirilah teguh, jangah goyah, dan giatlah selalu dalam pekerjaan Tuhan! Sebab kamu tahu, bahwa dalam persekutuan dengan Tuhan jerih

payahmu tidak sia-sia” – 1 Korintus 15:58

“Dan segala sesuatu yang kamu lakukan dengan perkataan atau perbuatan, lakukanlah semuanya itu dalam nama Tuhan Yesus, sambil mengucap syukur oleh Dia kepada Allah, Bapa Kita” –

Kolose 3:17

"Karena aku senang dan rela di dalam kelemahan, di dalam siksaan, di dalam kesukaran, di dalam penganiayaan dan kesesakan oleh karena Kristus. Sebab jika aku lemah, maka aku kuat." -

2 Korintus 12:10

"Hendaklah kamu selalu rendah hati, lemah lembut, dan sabar. Tunjukkanlah kasihmu dalam hal saling membantu." - Efesus 4:2

(10)

viii

(11)

ix

(12)

x

ABSTRAKSI

DAMAI KURNIA ADHI. Aplikasi Penjadwalan Mata Kuliah Menggunakan Algoritma Genetika (Studi Kasus : Program Studi Pendidikan Guru Sekolah Dasar (PGSD) Universitas Sanata Dharma). Dibimbing oleh Puspaningtyas Sanjoyo Adi, S.T., M.T.

Penjadwalan matakuliah merupakan pekerjaan rutin dalam kegiatan sistem akademik di Universitas. Dalam pelaksanaanya, seringkali jadwal yang telah dibuat tidak sesuai dengan yang diharapkan. Pada dasarnya dalam menentukan jadwal mata kuliah perlu diatur sedemikian rupa sehingga semua mahasiswa dapat mengikuti mata kuliah yang diambilnya tanpa bertabrakan dengan mata kuliah lain dan sesuai dengan jam dosen tersebut mengajar. Penyusunan Jadwal matakuliah perlu mempertimbangkan aturan – aturan tertentu. Apabila dalam penyusunan jadwal masih menggunakan cara manual, waktu yang dibutuhkan untuk menyelesaikan juga akan lebih banyak.

Penjadwalan matakuliah merupakan kombinasi dari hari, ruang, dan waktu terhadap kuliah dengan mempertimbangkan aturan tertentu dalam program studi. Algoritma Genetika digunakan sebagai pendekatan permasalahan yang ditemukan pada penjadwalan matakuliah. Dalam mencari solusi permasalahan, Algoritma Genetika menerapkan sistem sekelsi alam. Tujuan penelitian ini adalah merancang Algoritma Genetika dalam menyusun jadwal matakuliah dan mengukur tingkat keberhasilan pemetaan jadwal matakuliah menggunakan algoritma genetika.

Tahapan proses dalam Algoritma Genetika terdiri dari populasi awal, evaluasi fitness kromosom (jadwal kuliah), dan operator genetika yaitu crossover dan mutasi. Dari penelitian yang dilakukan, didapatkan hasil bahwa pembuatan jadwal matakuliah menggunakan Algoritma genetika dapat berjalan dengan baik dalam meminimalisir penggunaan ruang. Berkaitan dengan penerapan jumlah kromosom dalam Algoritma Genetika, semakin banyak jumlah kromosom dalam satu populasi maka penyelesaian pembuatan jadwal matakuliah jauh lebih cepat.

(13)

xi

ABSTRACT

DAMAI KURNIA ADHI. Application Of Scheduling Courses with Genetic Algorithm (Case Study : Primary School Teacher Education Study Program Sanata Dharma University). Mentored by Puspaningtyas Sanjoyo Adi, S.T., M.T.

Scheduling courses is routine work in the academic activities at the University. In the implementation, often schedules that have been made are not as expected. In determining the schedule of courses should be so arranged that all students can follow the courses he had taken without colliding with other course and in accordance with the teaching lecturer hours. Preparation of scheduling courses need to consider the certain rules. If in the preparation of the schedule is still using the manual method, the time it takes to complete will also be more.

Scheduling course is a combination of day, rooms, and time to lecture by considering certain rules in the study program. Genetic Algorithm is used as an approach to the problems found in the course scheduling. In searching for solutions to problems, Genetic Algorithm applying natural selection system. The purpose of this research is to design Genetic Algorithm to build scheduling courses and measure the success rate of the course schedule mapping using Genetic Algorithms.

Step of the process of Genetic Algorithm consists of initial population, fitness evaluation (class schedule), and genetic operators, are crossover and mutation. From the research conducted, showed that creating scheduling courses using Genetic Algorithm can work well in minimizing the use rooms. Related with the implementation of the number of chromosomes in a Genetic Algorithm, the more the number of chromosomes in the population of the completion of the course scheduling much faster.

(14)

xii

KATA PENGATAR

Puji dan syukur kepada Tuhan Yang Maha Esa yang telah mengaruniakan

kasih karunia kepada hambaNya sehingga penulis dapat menyelesaikan tugas

akhir ini.

Dalam proses penulisan tugas akhir ini ada begitu banyak pihak yang telah

memberikan bantuan dan perhatian kepada saya sehingga tugas akhir ini dapat

terselesaikan. Oleh karena itu penulis mengucapkan terima kasih diantaranya

kepada :

1. Ibu P.H. Prima Rosa, S.Si., M.Sc. selaku Dekan Fakultas Sains dan

Teknologi Universitas Sanata Dharma Yogyakarta.

2. Ridowati Gunawan, S.Kom., M.T. selaku Kaprodi Teknik Informatika

Universitas Sanata Dharma.

3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku dosen pembimbing

tugas akhir yang telah banyak memberikan bimbingan dan masukkan

dalam penyusunan tugas akhir ini.

4. Bapak Alb. Agung Hadhiatma, S.T., M.T. dan Bapak Eko Hari Parmadi,

S.Si., M.Kom. selaku panitia penguji yang telah memberikan kritik dan

saran untuk tugas akhir ini.

5. Ayah, Ibu, dan kedua Adikku tercinta yang sudah memberikan semangat,

cinta, dan kasih sayang, serta doa sehingga penulis dapat menyelesaikan

tugas akhir ini.

6. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma yang

(15)

xiii

studi.

7. Putri Emilia Yusuf yang sudah memberikan semangat dan doa kepada

penulis. Terima kasih atas kesabaran yang diberikan hingga penulis dapat

menyelesaikan tugas akhir ini.

8. Keluarga besar Mbah Marto Darsono yang telah memberikan semangat

serta doa hingga penulis dapat menyelesaikan tugas akhir ini. Terima kasih

khususnya kepada Mbah Marto Darsono yang secara terus-menerus

memberikan doa kepada cucu-cucunya hingga menjadi orang yang

berhasil.

9. Teman seperjuangan skripsi penjadwalan matakuliah PGSD, Antonius

Rianditya Putra, H. Roy Wiranata, dan Aweng yang telah membantu

penulis dalam memberikan saran dan kritik terhadap dokumen dan

program penulis.

10. Bapak Kartono, Kristopel, Agustinus Dwi, Tomi, Dita, Eko, Mas Yanuar,

dan Theo yang telah memberikan semangat, bantuan, ide, masukkan, dan

kritik yang membangun selama hingga penyelesaian skripsi ini.

11. Mas Arif dan Risko yang telah membantu meminjamkan perlengkapan

sidang tugas akhir penulis.

12. Seluruh Staff Sekretariat Fakultas Sains dan Teknologi yang banyak

membantu penulis dalam urusan administrasi akademik terutama

menjelang tugas akhir dan yudisium.

13. Teman-teman seperjuangan Jurusan Teknik Informatika angkatan 2010.

(16)

xiv

maupun tidak langsung, yang tidak dapat penulis sebutkan satu persatu.

Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih jauh dari

sempurna, oleh karena itu kritik dan masukkan saran untuk perbaikkan tugas akhir

ini sangat penulis harapkan. Akhir kata semoga tugas akhir ini dapat bermanfaat

bagi semua pihak. Terima Kasih.

Yogyakarta, Desember 2014

Penulis,

(17)

xv

DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

PERNYATAAN KEASLIAN KARYA ... v

HALAMAN PERSEMBAHAN ... vi

HALAMAN MOTTO ... vii

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH viii LEMBAR PERNYATAAN PERSETUJUAN PENYERAHAN PERANGKAT LUNAK ... ix

ABSTRAKSI ... x

ABSTRACT ... xi

KATA PENGATAR ... xii

DAFTAR ISI ... xv

DAFTAR GAMBAR ... xviii

DAFTAR TABEL ... xxi

BAB I ... 1

PENDAHULUAN ... 1

1.1. Latar Belakang Masalah ... 1

1.2. Rumusan Masalah ... 3

1.3. Tujuan ... 3

1.4. Batasan Masalah... 3

1.5. Metodologi Penelitian ... 4

1.6. Sistematika Penulisan ... 5

BAB II ... 7

LANDASAN TEORI ... 7

2.1. Penjadwalan Matakuliah ... 7

2.2. Algoritma Genetika ... 7

2.2.1. Alur Dasar Algoritma Genetika ... 8

2.2.2. Kromosom ... 9

(18)

xvi

2.2.2.2. Pengkodean Bilangan Bulat. ... 11

2.2.2.3. Pengkodean Struktur Data. ... 11

2.2.3. Operator Algoritma Genetika ... 12

2.2.3.1. Seleksi ... 12

2.2.3.2. Perkawinan Silang (Crossover) ... 13

2.2.3.3. Mutasi ... 15

BAB III ... 17

ANALISIS DAN PERANCANGAN ... 17

3.1. Latar Belakang Masalah ... 17

3.2. Analisis Permasalahan ... 18

3.2.1. Analisis Algoritma Genetika Pada Penjadwalan ... 19

3.2.1.1. Perancangan Populasi Awal Penjadwalan ... 20

3.2.1.2. Evaluasi Fitness Pada Penjadwalan ... 26

3.2.1.3. Proses Regenerasi Pada Penjadwalan ... 35

3.3. Perancangan Proses ... 40

3.3.1. Spesifikasi Kebutuhan Perangkat Keras dan Perangkat Lunak .... 40

3.3.2. Use Case... 41

3.3.3. Perancangan Basisdata ... 51

3.3.3.1. ER Diagram ... 51

3.3.4. UML ... 51

3.3.5. Diagram Kelas Analisis ... 62

BAB IV ... 63

IMPLEMENTASI DAN ANALISA HASIL ... 63

4.1. IMPLEMENTASI PROGRAM ... 63

4.1.1. Progress Bar ... 63

4.1.2. Form Utama (Home) ... 63

4.1.3. Form Matakuliah ... 64

4.1.3.1. Simpan Matakuliah ... 64

4.1.3.2. Ubah Matakuliah... 65

4.1.3.3. Hapus Matakuliah ... 67

4.1.3.4. Upload Data Matakuliah ... 69

(19)

xvii

4.1.4.1. Simpan Dosen ... 70

4.1.4.2. Ubah Dosen ... 72

4.1.4.3. Hapus Dosen ... 73

4.1.4.4. Upload Data Dosen ... 74

4.1.5. Form Ruang ... 76

4.1.5.1. Simpan Ruang ... 76

4.1.5.2. Ubah Ruang ... 78

4.1.5.3. Hapus Ruang ... 79

4.1.5.4. Upload Data Ruang ... 80

4.1.6. Form Kelas Kuliah... 82

4.1.7. Form Penjadwalan ... 84

4.1.7.1. Membuat Kelas Permintaan ... 85

4.1.7.2. Penjadwalan ... 88

4.2. PENGUJIAN PROGRAM ... 92

4.2.1. Pengujian Program Terhadap Nilai Fitness, Waktu, dan Panjang Kromosom ... 92

4.2.2. Pengujian Program Terhadap Penggunaan Ruang ... 103

BAB V ... 109

PENUTUP ... 109

5.1. KESIMPULAN ... 109

5.2. SARAN ... 109

DAFTAR PUSTAKA ... 111

(20)

xviii

DAFTAR GAMBAR

Gambar 1-1 Definisi Kromosom ... 10

Gambar 1-2 Contoh Pengkodean Biner ... 11

Gambar 1-3 Contoh Pengkodean Bulat ... 11

Gambar 1-4 Contoh One Point Crossover ... 14

Gambar 1-5 Contoh Two Point Crossover ... 14

Gambar 1-6 Contoh Uniform Crossover ... 15

Gambar 1-7 Contoh Mutasi ... 15

Gambar 3. 1 Flowchart Algoritma Genetika ... 20

Gambar 3. 2 Pemetaan Ruang dalam Kromosom ... 21

Gambar 3. 3 Ilustrasi Pemetaan Kromosom 1 ... 23

Gambar 3. 4 Pemetaan Kromosom 2 ... 24

Gambar 3. 5 Pemetaan Populasi ... 25

Gambar 3. 6 Algoritma prosesRandom() ... 26

Gambar 3. 7 Flowchart Evaluasi Fitness ... 27

Gambar 3. 8 Algoritma Method eksekusiAturan ... 29

Gambar 3. 9 Algoritma HC2 (cekDosen) ... 31

Gambar 3. 10 Algoritma HC3 (cekMatakuliah) ... 32

Gambar 3. 11 Algoritma HC4 (cekJumlahMatakuliah) ... 33

Gambar 3. 12 Algoritma HC5 (cekDosenMengajar) ... 35

Gambar 3. 13 Flowchart Roulette Wheel Selection ... 36

Gambar 3. 14 Flowchart Crossover ... 37

Gambar 3. 15 Ilustrasi Crossover ... 38

Gambar 3. 16 Ilustrasi Mutasi Replace Duplikat ... 39

Gambar 3. 17 Use Case Diagram ... 41

Gambar 3. 18 ER Diagram ... 51

Gambar 3. 19 UML Kelas Dosen ... 51

Gambar 3. 20 UML Kelas Kromosom ... 52

Gambar 3. 21 UML Kelas Populasi ... 53

Gambar 3. 22 UML Kelas Pelanggaran ... 54

Gambar 3. 23 UML Kelas Genetika ... 55

Gambar 3. 24 UML Kelas Dosen ... 56

Gambar 3. 25 UML Kelas KelasKuliah ... 57

Gambar 3. 26 UML Kelas Matakuliah ... 57

Gambar 3. 27 UML Kelas Ruang ... 58

Gambar 3. 28 UML Kelas TabelPermintaan ... 58

Gambar 3. 29 UML Kelas Koneksi ... 59

Gambar 3. 30 UML Kelas DosenKontrol ... 59

Gambar 3. 31 UML Kelas MatakuliahKontrol ... 60

Gambar 3. 32 UML KelasMatkulKontrol ... 61

(21)

xix

Gambar 3. 34 UML Kelas RuangKontrol ... 62

Gambar 3. 35 Diagram Kelas Analisis ... 62

Gambar 4. 1 Tampilan Progress Bar... 63

Gambar 4. 2 Tampilan Home ... 63

Gambar 4. 3 Tampilan Form Matakuliah ... 64

Gambar 4. 4 Tampilan Form Matakuliah (Isian) ... 65

Gambar 4. 5 Tampilan Pesan Berhasil (Insert Matakuliah) ... 65

Gambar 4. 6 Tampilan Form Matakuliah (Tabel) ... 65

Gambar 4. 7 Tampilan Form Matakuliah 2 ... 66

Gambar 4. 8 Tampilan Form Matakuliah (label Edit) ... 66

Gambar 4. 9 Tampilan Pesan Berhasil dirubah (Matakuliah) ... 66

Gambar 4. 10 Tampilan Form Matakuliah (Tabel Matakuliah) ... 67

Gambar 4. 11 Tampilan Form Matakuliah (Hapus Matakuliah) ... 67

Gambar 4. 12 Pesan Konfirmasi Hapus ... 68

Gambar 4. 13 Pesan Matakuliah Berhasil Dihapus ... 68

Gambar 4. 14 Tabel Matakuliah (Setelah dihapus) ... 68

Gambar 4. 15 Tabel Format Pengisian data Matakuliah (Excel) ... 69

Gambar 4. 16 Tampilan FileChooser (matakuliah) ... 69

Gambar 4. 17 Pesan Konfirmasi Upload Matakuliah ... 70

Gambar 4. 18 Tampilan Form Dosen ... 70

Gambar 4. 19 Tampilan Form Dosen (Label) ... 71

Gambar 4. 20 Pesan Konfirmasi (Dosen) ... 71

Gambar 4. 21 Tampilan Form Dosen (Tabel Dosen) ... 71

Gambar 4. 22 Tampilan Form Dosen ... 72

Gambar 4. 23 Tampilan Form Dosen (Label) 2 ... 72

Gambar 4. 24 Pesan Konfirmasi 2 ... 73

Gambar 4. 25 Tampilan Form Dosen (Tabel Dosen) 2... 73

Gambar 4. 26 Tampilan Form Dosen (Label) 3 ... 74

Gambar 4. 27 Konfirmasi Hapus Dosen ... 74

Gambar 4. 28 Pesan Berhasil Hapus Dosen ... 74

Gambar 4. 29 Format Excel Dosen ... 75

Gambar 4. 30 Tampilan JFileChooser Dosen ... 75

Gambar 4. 31 Pesan berhasil Upload ... 76

Gambar 4. 32 Tampilan Form Ruang ... 76

Gambar 4. 33 Tampilan Form Ruang (Label) ... 77

Gambar 4. 34 Pesan Berhasil Tambah Ruang ... 77

Gambar 4. 35 Tampilan Form Ruang (Label) 2 ... 77

Gambar 4. 36 Tampilan Form Ruang 2 ... 78

Gambar 4. 37 Tampilan Form Ruang (Label) ... 78

Gambar 4. 38 Pesan Berhasil dirubah (ruang) ... 79

Gambar 4. 39 Tabel Ruang 2... 79

Gambar 4. 40 Tampilan Form Ruang 3 ... 79

(22)

xx

(23)

xxi

DAFTAR TABEL

(24)

xxii

(25)

1

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Penjadwalan mata kuliah merupakan pekerjaan rutin dalam kegiatan

sistem akademik di Universitas. Dalam menyusun matakuliah terdapat berbagai

jenis komponen yang diperlukan, diantaranya Mata kuliah, Dosen mengajar,

ruang dan waktu. Penjadwalan mata kuliah dilakukan setiap semester. Dalam

pelaksanaanya, seringkali jadwal yang telah dibuat tidak sesuai dengan yang

diharapkan. Hal – hal yang mendukung bisa dikarenakan dosen yang melebihi

batas mengajar, kesibukan dosen terhadap kepentingannya, jadwal mahasiswa

yang bertabrakan, adanya dosen pengajar dari luar kampus, dan lain lain. Pada

dasarnya dalam menentukan jadwal mata kuliah perlu diatur sedemikian rupa

sehingga semua mahasiswa dapat mengikuti mata kuliah yang diambilnya tanpa

bertabrakan dengan mata kuliah lain dan sesuai dengan jam dosen tersebut

mengajar.

Penyusunan Jadwal matakuliah perlu mempertimbangkan aturan – aturan

tertentu. Aturan tersebut antara lain : tidak adanya dosen yang mengajar dua atau

lebih matakuliah di jam yang sama, satu ruang hanya dapat diisi oleh 1 matakuliah

di jam tertentu, penggunaan ruang lab hanya untuk kelas praktikum, dan lain lain.

Apabila dalam penyusunan jadwal masih menggunakan cara manual, waktu yang

dibutuhkan untuk menyelesaikan juga akan lebih banyak. Waktu penyusunan

(26)

matakuliah yang menyebabkan waktu penyusunan jadwal juga ikut

bertambah.

Dalam penyusunan jadwal matakuliah menggunakan sistem komputerisasi

dapat dilakukan dengan bantuan algoritma tertentu, salah satunya adalah

Algoritma Genetika. Untuk mendapatkan hasil yang optimal dalam menyusun

jadwal mata kuliah, diperlukan penambahan aturan-aturan yang lebih kompleks

(Constrains) (Winoto, D. S., dkk, 2012). Constrains didapat berdasarkan aturan

penjadwalan matakuliah yang berlaku pada Universitas. Semakin kompleks

constrainsnya, maka Jadwal matakuliah yang dihasilkan akan semakin optimal.

Algoritma Genetika cukup baik diimplementasikan sebagai algoritma untuk

membuat sistem penjadwalan (Setemen. K, 2010). Hal ini dibuktikan dengan

melakukan ujicoba sebanyak 3 kali dengan data pemetaan matakuliah yang

berbeda. Untuk setiap kali ujicoba, nilai fitness yang dihasilkan sama dengan nol.

Artinya tidak ada matakuliah yang terjadi bentrokan. Untuk ujicoba 1 (pemetaan

53 matakuliah), algoritma genetika dapat menghasilkan nilai fitness sama dengan

nol hanya dengan 209 Iterasi dari target maksimal 5000 Iterasi. Ujicoba 2

(pemetaan 88 matakuliah) dapat diselesaikan algoritma genetika dengan 2161

Iterasi dari target maksimal 5000 Iterasi. Sedangkan ujicoba 3 (pemetaan 141

matakuliah), algoritma genetika mampu memperoleh fitness dengan 6623 Iterasi ,

tetapi dengan target maksimal iterasi sebanyak 10000.

Pada tugas akhir ini bertujuan untuk menerapkan sistem penjadwalan mata

kuliah di Program Studi Guru Sekolah Dasar (PGSD) dengan menggunakan

(27)

Mata kuliah, Dosen mengajar, ruang dan waktu dapat diimplementasikan ke

dalam sebuah jadwal sehingga dapat memberikan solusi bagi Sekretariat Prodi

hingga akhirnya Jadwal tersebut dapat dicetak dan dapat digunakan. Yang akan

dikembangkan adalah optimasi waktu pemrosesan progam (Timing) dan

penambahan aturan – aturan (Constrains) yang sesuai dengan Prodi PGSD

Universitas Sanata Dharma.

1.2. Rumusan Masalah

Berdasarkan permasalahan penjadwalan mata kuliah di PGSD, maka

rumusan masalahnya adalah :

1. Bagaimana menyusun jadwal mata kuliah di PGSD dengan menggunakan

Algoritma Genetika?

2. Seberapa tingkat keberhasilan pemetaan jadwal mata kuliah dengan

menggunakan Algoritma Genetika?

1.3. Tujuan

1. Membuat aplikasi penjadwalan mata kuliah dengan menggunakan

Algoritma Genetika.

2. Mengukur tingkat keberhasilan pemetaan jadwal mata kuliah dengan

menggunakan Algoritma Genetika.

1.4. Batasan Masalah

(28)

matakuliah kelas teori Tahun Akademik 2013/2014 Semester Ganjil

Program Studi Guru Sekolah Dasar (PGSD) Universitas Sanata Dharma.

2. Kelas kuliah yang masuk ke dalam penjadwalan adalah matakuliah yang

membutuhkan ruang untuk menjalankan proses belajar mengajar.

3. Informasi yang dihasilkan berupa jadwal mata kuliah untuk Program Studi

Guru Sekolah Dasar (PGSD).

4. Mahasiswa hanya dapat mengambil mata kuliah di semester yang

diajarkan.

5. Pengguna program dapat memasukkan input nama mata kuliah, dosen

mengajar dan ruangan yang ditentukan. Hari dan Waktu sudah tersedia di

dalam sistem.

6. Pemilihan induk dalam proses seleksi Kromosom adalah memilih dua

Kromosom dengan nilai fitness terbaik untuk dijadikan orang tua.

7. Metode crossover yang diterapkan di dalam sistem adalah One Point

Crossover.

8. Metode Mutasi yang diterapkan di dalam sistem adalah Mutasi Bebas.

9. Pembagian waktu dalam kuliah menerapkan sistem Timeslot, dimana 1

Timeslot berisi 3 Jam Pelajaran PGSD. Dalam sehari, satu ruang berisi 4

Timeslot (12 Jam Pelajaran).

1.5. Metodologi Penelitian

Metode yang digunakan dalam menyusun jadwal matakuliah PGSG adalah

(29)

dari berbagai tahap :

1. Analisis Kebutuhan

Pada tahap ini, akan dilakukan Identifikasi tentang kebutuhan system serta

pengumpulan data – data yang diperlukan dalam proses penjadwalan.

2. Perancangan Sistem

Pada tahap ini, akan dilakukan penerjemahan rancangan sistem ke dalam

perangkat lunak. Proses perancangan meliputi Perancangan Sistem, desain

Basis Data, user interface dan rancangan implementasi program.

3. Penulisan Progam

Pada tahap ini, akan dilakukan penerjemahan dari perancangan sistem ke

dalam bahasa pemrograman.

4. Pengujian

Pada tahap ini akan dilakukan pengujian program. Pengujian bertujuan

untuk menemukan kesalahan – kesalahan hingga program dapat sesuai

dengan yang diharapkan.

1.6. Sistematika Penulisan

BAB I : PENDAHULUAN

Bab ini berisi penjelasan tentang latar belakang masalah, rumusan

masalah, tujuan, batasan masalah, metodologi penelitian, dan sistematika

penulisan.

BAB II : LANDASAN TEORI

(30)

pembuatan sitem penjadwalan mata kuliah PGSD.

BAB III : ANALISA DAN PERANCANGAN SISTEM

Bab ini berisi tentang analisis dan perancangan sistem yang akan

dibangun, serta meliputi analisis data penjadwalan, aturan dalam proses

penjadwalan, dan penjelasan algoritma genetika dalam menyelesaikan

permasalahan mata kuliah.

BAB IV : IMPLEMENTASI DAN ANALISA HASIL

Bab ini berisi tentang implementasi dari perancangan pada Bab III.

Implementasi tersebut meliputi tampilan progam (input dan output) dan

analisa dari progam yang dibuat.

BAB V : KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan dan saran dari sistem yang akan dibuat

(31)

BAB II

LANDASAN TEORI

2.1. Penjadwalan Matakuliah

Penjadwalan mata kuliah (lecture timetabling) adalah masalah

menempatkan waktu dan ruangan kepada sejumlah kuliah, tutorial, dan kegiatan

akademik sejenis, dengan memperhatikan sejumlah aturan yang berhubungan

dengan kapasitas dan lokasi dari ruangan yang tersedia, waktu bebas yang

diperlukan dan sejumlah aturan lain yang berkaitan dengan toleransi untuk dosen,

dan hubungan antara mata kuliah khusus (Ross, P., dkk, 1994).

Penjadwalan matakuliah merupakan permasalahan yang sangat penting

dan dihadapi oleh prodi di tiap semesternya. Dalam penyusunan jadwal, terdapat

dua batasan yang bersifat mutlak (hard constraint) dan batasan lunak (soft

constraint) (Oner,A., dkk, 2011).

2.2. Algoritma Genetika

Genetic Algorithms atau algoritma genetika adalah algoritma pencarian

yang didasarkan pada proses seleksi alam (proses evolusi). Proses evolusi berarti

individu (kromosom) yang secara terus menerus mengalami perubahan gen

sehingga dapat menyesuaikan lingkungan hidupnya. Hanya individu yang kuat

yang mampu bertahan (Setemen, K., 2010).

(32)

alamiah dengan melibatkan perubahan gen yang terjadi pada individu melalui

proses perkembangbiakan. Proses perkembangbiakan menjadi proses dasar yang

penting. “Tujuan yang akan dicapai dari perkembangbiakan adalah bagaimana

mendapatkan keturunan yang lebih baik” (Basuki, A., 2003). Untuk dapat

menemukan keturunan baru, dapat dilakukan dengan perkawinan silang

(crossover) dan mutasi (mutation). Perkawinan silang adalah proses pertukaran

gen dari dua individu yang mempunyai karakteristik yang berbeda sehingga

menghasilkan gen yang lebih baik dari induknya. Sedangkan Mutasi adalah proses

perubahan gen dari satu individu karena individu tersebut melakukan adaptasi

terhadap lingkungannya.

2.2.1. Alur Dasar Algoritma Genetika

Secara umum, alur dasar algoritma genetika dinyatakan sebagai berikut :

(Bambrick, L., 1997).

1. [Start], Generasi populasi pertama secara random sebanyak n individu.

2. [Fitness], Evaluasi nilai fitness f(x) dari setiap individu x didalam

populasi.

3. [New Population], Bentuk populasi baru dengan melakukan pengulangan

langkah – langkah dibawah ini sehingga didapatkan populasi baru.

a. [Selection], Pilih 2 individu sebagai induk dari sebuah populasi sesuai

dengan fitness (Semakin baik fitness, maka semakin besar peluang

untuk dipilih).

(33)

probabilitas crossover untuk membentuk sebuah keturunan baru.

c. [Mutation], Mutasi setiap keturunan yang baru sesuai dengan

probabilitas mutasi di setiap gen.

d. [Accepting], tempatkan keturunan yang baru sesuai dengan populasi

yang baru.

4. [Replace], Gunakan populasi yang baru dibentuk untuk menjalankan

algoritma.

5. [Test], Jika kondisi akhir dipenuhi maka berhenti dan tampilkan solusi dari

populasi.

6. [Loop], Lakukan lagi langkah 2.

2.2.2. Kromosom

Kromosom (individu) merupakan gabungan dari Gen yang membentuk

nilai tertentu. Individu bisa dikatakan sama dengan kromosom, yang merupakan

kumpulan gen. Gen ini bisa biner, float, dan kombinatorial. Beberapa definisi

penting yang terdapat dalam kromosom adalah sebagai berikut (Yulyantari, L.M.,

2011)

Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang

membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan

kromosom. Dalam algoritma genetika, gen ini bisa berupa nilai biner,

float, integer maupun karakter, atau kombinatorial.

Allele, nilai dari gen.

(34)

Individu, menyatakan satu nilai atau keadaan yang menyatakan salah satu

solusi yang mungkin dari permasalahan yang diangkat

Populasi, merupakan sekumpulan individu (kromosom) yang akan

diproses bersama dalam satu siklus proses evolusi.

Generasi, menyatakan satu siklus proses evolusi atau satu iterasi di dalam

algoritma genetika.

Secara umum definisi Kromosom dapat diilustrasikan sebagai berikut :

Gambar 1-1 Definisi Kromosom

Untuk memetakan masalah ke dalam sebuah kromosom dapat dilakukan

(35)

2.2.2.1. Pengkodean Biner

Pengkodean biner merupakan pengkodean kromosom yang paling banyak

digunakan. Dalam hal ini, parameter dikodekan dalam bentuk 0 dan 1.

Keuntungan dari pengkodean ini adalah sederhana dan mudah dimanipulasi.

KROMOSOM KODE BINER

A 10110010100

B 11001001101

Gambar 1-2 Contoh Pengkodean Biner

2.2.2.2. Pengkodean Bilangan Bulat.

Pengkodean bilangan bulat adalah metode yang mengkodekan bilangan ke

dalam bentuk bilangan bulat. Pengkodean ini sangat baik digunakan untuk

masalah optimasi kombinatorial.

KROMOSOM KODE BULAT

A 50310020400

B 35001002406

Gambar 1-3 Contoh Pengkodean Bulat

2.2.2.3. Pengkodean Struktur Data.

Pengkodean Struktur Data adalah model pengkodean yang menggunakan

struktur data. Pengkodean ini digunakan untuk masalah yang lebih kompleks,

(36)

2.2.3. Operator Algoritma Genetika

2.2.3.1. Seleksi

Seleksi bertujuan untuk memberikan kesempatan individu dalam

reproduksi bagi anggota populasi yang lebih unggul. Langkah pertama yang

dilakukan dalam tahap seleksi adalah pencarian nilai fitness. Masing-masing

individu dalam seleksi akan menerima probabilitas reproduksi yang tergantung

pada nilai yang diperoleh dibandingkan dengan anggota individu lainnya. Nilai

fitness inilah nantinya akan digunakan dalam tahap seleksi berikutnya

(Kusumadewi, S., 2003)

Kemampuan algoritma genetika dalam menciptakan sebuah kromosom

yang lebih unggul terganting dari penekanan selektif terhadap kromosom dalam

populasi. Penekanan selektif diterapkan dengan dua cara. Cara pertama adalah

menciptakan lebih banyak kromosom anak dalam populasi dan memilih hanya

kromosom yang terbaik untuk generasi berikutnya. Metode ini menerapkan

seleksi orangtua secara acak namun metode ini akan terus menghasilkan

kromosom yang lebih baik.

Cara lain menerapkan penekanan selektif adalah memilih orangtua yang

lebih baik untuk proses regenerasi. Dengan metode ini hanya kromosom sebanyak

jumlah tertentu dalam satu populasi yang dipelihara untuk generasi berikutnya.

Walaupun penekanan selektif tidak diterapkan di level keturunan, metode ini juga

akan menghasilkan kromosom yang lebih baik karena penekanan selektif

(37)

a. Seleksi Roulete Wheel

Pada seleksi ini akan dipilih calon orang tua berdasarkan fitnessnya.

Semakin baik fitnessnya, maka semakin besar kemungkinan kromosom

dipilih untuk dijadikan orang tua. Probabilitas suatu individu terpilih untuk

crossover sebanding dengan fitnessnya.

b. Seleksi Rangking

Pada seleksi ini akan dilakukan sistem ranking (mengurutkan) dari

fitness terkecil hingga fitness terbesar. Bobot fitness semula akan dirubah

dengan nomor urut dari 1 hingga n kromosom dimana kromosom dengan

bobot fitness n merupakan kromosom dengan nilai fitness terbesar dalam

populasi.

2.2.3.2. Perkawinan Silang (Crossover)

Perkawinan silang merupakan operator yang berfungsi untuk membentuk

sebuah keturunan baru. Operator ini membutuhkan 2 kromosom sebagai induk

(parent) hingga menghasilkan anak (child). Perkawinan silang bertujuan untuk

menciptakan kromosom baru yang memiliki bagian baik kromosom lama dan

tidak menutup kemungkinan tercipta sebuah kromosom yang lebih baik. Ada

beberapa jenis perkawinan silang :

a. One Point Crossover

(38)

kromosom induk. Sehingga akan menghasilkan anak yang memiliki gen dari

kedua induk tersebut. Contoh :

Gambar 1-4 Contoh One Point Crossover

b. Two Point Crossover

Proses crossover ini dilakukan dengan memilih dua titik crossover.

Kromosom keturunan dibentuk dengan barisan gen awal dari induk pertama,

kemudian disalin dengan gen induk kedua, lalu selebihnya disalin dengan gen

induk pertama.

Gambar 1-5 Contoh Two Point Crossover

c. Uniform Crossover

Uniform Crossover menghasilkan kromosom keturunan dengan

(39)

Gambar 1-6 Contoh Uniform Crossover

2.2.3.3. Mutasi

Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen

dalam satu kromosom. Perubahan gen dilakukan dengan berbagai cara :

mengubah gen 1 menjadi 0 dan sebaliknya, melakukan pertukaran gen pada suatu

posisi dengan gen pada posisi lain, mengubah gen dengan batasan tertentu, dan

sebagainya bergantung pada representasi individunya (Suyanto, 2010). Tujuan

dari mutasi adalah mempercepat perbedaan diantara semua kromosom dalam

populasi sehingga pencarian dapat dipetakan ke seluruh ruang. Selain itu mutasi

bertujuan untuk mengembalikan komponen penting yang hilang ketika proses

crossover.

Contoh :

Gambar 1-7 Contoh Mutasi

Ada beberapa jenis operator Mutasi :

(40)

Mutasi terarah sangat bergantung pada informasi gen. Informasi gen

berupa nilai pelanggaran gen (bagian dari nilai fitness). Hal ini berarti bahwa

adanya kemungkinan untuk gen yang berbeda akan di mutasi. Mutasi akan

dilakukan jika pelanggaran gen tersebut lebih besar dari gen yang lain dalam

satu kromosom.

b. Mutasi Biasa

Mutasi biasa tidak memperhitungkan informasi gen. Hal ini berarti setiap

(41)

BAB III

ANALISIS DAN PERANCANGAN

3.1. Latar Belakang Masalah

Sebagian besar proses penjadwalan kuliah di PGSD Universitas Sanata

Dharma masih menggunakan cara manual. Program penjadwalan yang ada untuk

penjadwalan tidak mampu dalam menyusun data matakuliah di PGSD yang

banyak. Jika digunakan, sistem tidak menghasilkan jadwal bahkan sering terjadi

crash dalam aplikasinya. Apabila masih menggunakan cara manual akan

berdampak pada pekerjaan lain selain penjadwalan matakuliah, misalnya waktu

yang dibutuhkan dalam menyusun jadwal (timing).

Dalam proses pembuatan jadwal kuliah akan menyangkut penempatan

matakuliah yang ditawarkan pada hari, ruang, dan jam tertentu. Permasalahan

yang dihadapi adalah bagaimana menyusun jadwal matakuliah dengan

mempertimbangkan hari, jam dan ruangan yang tepat sehingga tidak terjadi

bentrok antar kelas dan matakuliah yang ditawarkan. Selain itu, sistem juga

mempertimbangkan dosen yang mengajar sehingga tidak ada hari dan jam yang

sama untuk 1 dosen mengajar lebih dari 1 matakuliah. Dalam penyusunan jadwal

dapat dilakukan dengan cara manual namun dalam proses pengerjaannya akan

mengalami banyak hamabtan terutama dalam hal ketelitian dan permasalahan

waktu.

(42)

3.2. Analisis Permasalahan

Masalah yang akan dibahas melalui tulisan ini adalah bagaimana sebuah

Prodi dapat mengatur jadwal mata kuliah tanpa bentrok sehingga dapat digunakan

selama 1 semester. Masalah penjadwalan merupakan masalah yang klasik. Hingga

saat ini telah berkembang banyak metode yang dapat digunakan untuk

menyelesaikan masalah tersebut. Umumnya masalah ini sangat sulit untuk

diselesaikan karena suatu proses penjadwalan diperlukan hard constraint dan soft

constraint.

Hard Constraint disebut juga Hard Requirement, merupakan salah satu

kebutuhan dari suatu penjadwalan yang jika kebutuhan ini dilanggar, maka akan

mengakibatkan penjadwalan yang dibentuk tidak dapat digunakan. Hard

Constraint merupakan prioritas utama yang harus dipenuhi dalam menyusun

jadwal kuliah. Hard Requirement dapat dijabarkan sebagai berikut :

1. Satu ruang hanya dapat digunakan oleh satu matakuliah di hari dan jam

tertentu.

2. Satu dosen hanya dapat mengajar satu matakuliah di hari dan jam yang

sama.

3. Matakuliah untuk satu semester tertentu tidak boleh berada di jam yang

sama kecuali untuk matakuliah yang sama dan dosen berbeda.

4. Jumlah matakuliah di dalam satu semester yang sama tidak boleh lebih

dari 3 di hari yang sama.

(43)

Soft Constraint disebut juga Soft Requirement merupakan salah satu

persyaratan dalam penjadwalan jika syarat ini tidak dipenuhi, penjadwalan dapat

terus dilakukan. Soft requirements umumnya merupakan kebijakan – kebijakan

yang sudah diputuskan oleh prodi. Contoh soft constrains adalah :

1. Dosen luar dapat memilih jam mengajar yang diinginkan.

3.2.1. Analisis Algoritma Genetika Pada Penjadwalan

Untuk menyusun sebuah jadwal dengan menggunakan Algoritma

Genetika, hal yang harus dilakukan adalah merepresentasikan mata kuliah

kedalam bentuk yang dimengerti oleh Algoritma Genetika. Dalam Genetika

terdapat kata kunci Gen, Allele, Kromosom, dan Populasi. Jika diterapkan ke

dalam penjadwalan matakuliah maka :

Tabel 3. 1 Tabel Penerapan Algoritma Genetika dalam Penjadwalan

Kata Kunci Definisi

Gen Gen mewakili hari, jam, dan ruang tertentu untuk

kelas kuliah tersebut.

Allele Representasi dari Kelas Matakuliah.

Kromosom Kumpulan dari Gen. Dengan kata lain, Kromosom

adalah Jadwal matakuliah selama seminggu.

Populasi Kumpulan dari Jadwal matakuliah.

Proses yang dapat dilakukan adalah membangun populasi awal, evaluasi

(44)

genetika yang akan diterapkan pada penjadwalan matakuliah adalah :

Start

Populasi Awal

Evaluasi Fitness Mutasi

Crossover

Seleksi Kriteria Berhenti

Terpenuhi?

Hasil (jadwal)

Selesai

Gambar 3. 1 Flowchart Algoritma Genetika

3.2.1.1. Perancangan Populasi Awal Penjadwalan

Penjadwalan matakuliah terdiri dari komponen mata kuliah, dosen, hari,

jam, dan ruang. Yang akan dijadikan model kromosom adalah komponen mata

kuliah, hari, jam dan ruang. Pembentukan populasi awal penjadwalan matakuliah

adalah N kromosom, dengan N merupakan kandidat banyaknya matakuliah.

(45)

secara random untuk selanjutnya dilakukan proses evaluasi setiap kromosomnya.

Panjang 1 kromosom adalah N gen, dimana N merupakan hasil perkalian antara

jumlah hari, jumlah ruang, dan jumlah waktu.

Pemetaan kromosom akan menerapkan time slot pada jam matakuliah.

Setiap time slot terdiri dari 3 jam matakuliah. Berikut tabel penjelasan

pengelompokan jam :

Tabel 3. 2 Tabel Pengelompokan Jam

Pada Tabel 3.2 menjelaskan deskripsi singkat mengenai pengelompokan

waktu dalam 1 hari. Jika setiap ruang yang dipakai adalah 12 jam pelajaran, maka

pemetaan Ruang dalam kromosom adalah 4 untuk setiap Ruangnya. Jika

digambarkan pemetaan ruang yang dikaitkan dengan waktu akan menjadi sebagai

berikut :

Gambar 3. 2 Pemetaan Ruang dalam Kromosom

Gambar 3.2 Setiap 1 time slot waktu akan direpresentasikan dengan 1 Gen.

Gen merupakan kandidat Kelas kuliah tertentu. Pemetaan untuk menentukan

(46)

Ngen = (H * R * W) / 3

Keterangan :

Ngen = jumlah gen dalam 1 kromosom

H = jumlah hari dalam perkuliahan

R = jumlah ruang dalam perkuliahan

W = jumlah waktu dalam perkuliahan

Berdasarkan data yang diperoleh, Prodi PGSG Universitas Sanata Dharma

menerapkan jadwal dengan 156 Kelas kuliah, 5 hari, 14 ruang teori, dan 12 waktu

(jam) untuk perkuliahan semester Ganjil Tahun Akademik 2013/2014. Maka

jumlah gen yang terbentuk untuk 1 kromosom adalah :

Ngen = (5 * 14 * 12) / 3

= 280

Dalam perancangan sistem, Ngen merupakan representasi dari panjang 1

kromosom. Kromosom tersebut merupakan jadwal matakuliah di PGSD selama 1

minggu. Setiap Gen nya memiliki makna Hari, Ruang dan Jam tertentu.

Kelas kuliah merupakan komponen penting dalam penyusunan jadwal

matakuliah. Kombinasi Matakuliah dan Dosen akan membentuk sebuah Kelas

Kuliah. Kelas Kuliah akan berbeda setiap semesternya. Data Matakuliah

ditawarkan oleh PGSD terdapat pada Tabel 5.1, data dosen pengampu terdapat

(47)

Kuliah PGSD berdasarkan data Semester Ganjil Tahun Ajaran 2014/2015 terdapat

pada Tabel 5.4.

Tabel Kelas Kuliah terdiri dari kode kelas kuliah, kode matakuliah, kode

dosen pengampu dan kelas. Data tersebut akan diimplementasikan ke dalam

Algoritma Genetika. Dalam menyusun tabel kelas kuliah ke dalam kromosom,

masing-masing kelas kuliah akan ditempatkan secara random index Gen nya. Hal

ini berarti setiap kelas kuliah memiliki index (slot) Gen yang berbeda. Index Gen

yang tidak ditempati oleh kelas kuliah manapun akan dikodekan dengan 0, yang

berarti tidak ada kelas kuliah di hari, jam, dan ruang tersebut.

Pemetaan kromosom yang terbentuk dan digabungkan dengan kelas kuliah

dapat diilustrasikan sebagai berikut :

Gambar 3. 3 Ilustrasi Pemetaan Kromosom 1

Berikut pemetaan Kromosom secara keseluruhan dengan menggabungkan

(48)

Gambar 3. 4 Pemetaan Kromosom 2

Berikut sebagian penjelasan pemetaan Kromosom Gambar 3.4 :

 Gen[0]  Kelas Kuliah ke 2 (PDW 2106 – Logika, Semester 1,Kelas B,

Dosen Pengampu G. Ari Nugraha, S.J., M.A.) Hari Senin, Ruang 1, Time

Slot 1 (Jam 07.00-09-59).

 Gen[67]  Kelas Kuliah ke 17 (PDW 2122 - Bahasa dan Sastra Indonesia,

Semester 1, Kelas B, Dosen Pengampu Apri Damai SK, S.S., M.Pd.) Hari

Selasa, Ruang 3, Time Slot 4 (Jam 16.00-18.59).

 Gen[234]  Tidak ada kelas kuliah di hari Jumat, Ruang 3, Time Slot 3

(49)

Populasi merupakan kumpulan dari kromosom. Dengan kata lain, populasi

merupakan kumpulan dari jadwal matakuliah. Dalam perancangan program, 1

populasi terdiri dari 4 kromosom. Jika digambarkan maka rancangan populasi

yang dibangun untuk Iterasi 1 (populasi awal) adalah :

Gambar 3. 5 Pemetaan Populasi

Membangun populasi awal juga mempertimbangkan aturan soft constraint

yang berlaku. Pada saat membangun populasi awal, kelas kuliah permintaan akan

dimasukkan terlebih dahulu ke dalam sistem sesuai dengan Hari, Ruang, dan

Waktu yang sesuai dengan permintaan. kemudian kelas kuliah lainnya akan

dimasukkan secara random. Berikut algoritma ProsesRandom.

method prosesRandom()

1. Buat variabel r bertipe random.

2. Buat variabel hari bertipe int. Set nilai dengan 5. 3. Buat variabel waktu bertipe int. Set nilai dengan 12.

4. Buat variabel matkul bertipe int set dengan panjang kelas kuliah. 5. Buat Gen bernama data sepanjang (hari*ruang*waktu)/3.

(50)

7. Buat variabel N bertipe int set dengan matkul. 8. Untuk i = 0 hingga panjang data lakukan langkah 9.

9. Buat gen kosong baru set matakuliah sama dengan kosong dan hari ruang waktu sesuai dengan lokasi gen.

10. Untuk i = 0 hingga matkul lakukan langkah 11.

11. Set seluruh cek dengan false. Menandakan matakuliah belum berada di dalam kromosom.

12. Untuk i = 0 hingga panjang data permintaan lakukan langkah 13-15

13. Masukkan seluruh kelas kuliah ke Gen yang sesuai dengan permintaan Hari, Ruang, dan Waktu.

14. Set cek kelaskuliah permintaan dengan true. Menandakan matakuliah telah ada di dalam kromosom.

15. Kurangi N sebanyak matakuliah permintaan. 16. Buat variabel index bertipe int set dengan 0.

17. Ketika N tidak sama dengan 0. Lakukan langkah 18-22

18. Buat variabel tangkap bertipe int set dengan nilai acak panjang data.

19. Cek apakah cek ke index sama dengan true. Jika ya, maka penambahan nilai index dengan 1. Jika tidak, lakukan langkah 20-22.

20. Cek apakah slot gen posisi tangkap kosong. Jika ya, masukkan kelasMatakuliah ke dalam Gen.

21. Tambahkan nilai index dengan 1. 22. Kurangi nilai N dengan 1.

23. Kembalikan data sebagai nilai balik. 24. Selesai.

Gambar 3. 6 Algoritma prosesRandom()

3.2.1.2. Evaluasi Fitness Pada Penjadwalan

Setelah kromosom terbentuk, langkah selanjutnya adalah menentukan

(51)

kromosom tersebut baik atau tidak. Nilai fitness didapat dari banyaknya

pelanggaran Hard Constraint yang dilakukan pada 1 kromosom.

Diagram Flowchart evaluasi fitness adalah sebagai berikut :

Gambar 3. 7 Flowchart Evaluasi Fitness

Adapun aturan (constraint) dan bobot fitness yang diterapkan dalam Prodi

PGSG Universitas Sanata Dharma adalah sebagai berikut :

Tabel 3. 3 Tabel Aturan Penjadwalan Matakuliah

HC Aturan Nilai Fitness

1.

Satu ruang hanya dapat

digunakan oleh satu

matakuliah di hari dan jam tertentu.

(52)

2. Satu dosen hanya dapat mengajar satu matakuliah di jam yang sama.

Pelanggaran = 1 jika ada dua atau lebih matakuliah dosen tersebut berada di jam yang sama.

3. Matakuliah untuk satu

semester tertentu tidak boleh berada di jam yang sama

kecuali untuk matakuliah

yang sama dan dosen

berbeda.

Pelanggaran = 1 jika ada dua atau lebih matakuliah sama untuk dosen yang sama di jam yang sama.

4. Jumlah matakuliah di dalam

satu semester yang sama tidak boleh lebih dari 3 di hari yang sama.

Pelanggaran = 1, jika jumlah

matakuliah yang berada di hari yang sama berjumlah > 3.

5. Dosen mengajar dalam sehari tidak boleh lebih dari 3 matakuliah.

Pelanggaran = 1, jika terdapat lebih dari 3 matakuliah dalam sehari yang diampu dosen yang sama

Dalam penentuan nilai fitness, kromosom dikatakan optimal atau

merupakan sebuah solusi jika nilai fitnessnya sama dengan 0 (nol). Pada flowchart

akan memulai dengan mengeksekusi semua kromosom. Setiap kromosom akan

dieksekusi untuk mencari nilai fitness dengan menjalankan method

eksekusiAturan(). Method ini merupakan representasi dari kelima aturan Hard

Constraint pada Tabel 3.7.

Algoritma Method eksekusiAturan(Kromosom x)

(53)

2. Panggil method cekDosen dengan parameter x. Hasilnya disimpan ke dalam parent.

3. Panggil method cekMatakuliah dengan parameter parent. Hasilnya disimpan ke dalam parent.

4. Panggil method cekJumlahMatakuliah dengan parameter parent. Hasilnya disimpan ke dalam parent.

5. Panggil method cekDosenMengajar dengan parameter parent. Hasilnya disimpan ke dalam parent.

6. Kembalikan nilai parent; 7. Selesai.

Gambar 3. 8 Algoritma Method eksekusiAturan

Method eksekusiAturan merupakan method yang bertujuan untuk

mendapatkan nilai fitness total di setiap gen nya. Nilai fitness setiap gen akan

ditambahkan berdasarkan kelima aturan hard constrans (HC). Method

eksekusiAturan hanya mengecek HC 2 hingga HC 5 saja. HC 1 secara otomatis

sudah dapat dipenuhi oleh program karena setiap slot gen hanya dapat berisi 0

hingga 1 kelas matakuliah.

Pada method eksekusiAturan, kromosom akan dievaluasi tiap gennya. Ada

5 method yang merepresentasikan aturan penjadwalan matakuliah yang berlaku

dalam Prodi PGSD Universitas Sanata Dharma. Berikut penjelasan ke 5 method :

HC 2 : method cekDosen (parameter x bertipe kromosom)

1. Buat variabel posisi_jam bertipe array of int dengan panjangnya sesuai dengan jumlah_ruang kuliah.

(54)

3. Buat variabel jam bertipe int dengan nilai awal 1. 4. Buat variabel count bertipe int dengan nilai awal 0.

5. Untuk i sama dengan 0 hingga panjang posisi jam, lakukan langkah 6. 6. jika i sama dengan 0 maka set posisi_jam ke i sama dengan 0. Selain itu set

posisi_jam ke i bernilai posisi_jam ke [i-1] ditambah 4. 7. Ketika true, maka lakukan langkah 8.

8. Jika Gen ke count pada kromosom x harinya sama dengan hari yang ke 0 (senin), maka menambahkan nilai count dengan 1. Selain itu hentikan looping.

9. Untuk i = 1 hingga panjang hari, lakukan langkah 10-22. 10. Untuk b = 0 sampai kurang dari 4 lakukan langkah 11-19.

11. Untuk j = 0 sampai kurang dari jumlah ruang, lakukan langkah 12-17. 12. Untuk k = j +1 hingga jumlah ruang, lakukan langkah 13-17.

13. Buat variabel banding1 dan banding2 bertipe String. Dimana banding1 menyimpan idDosen dari gen ke posisi_jam ke j dan banding 2 menyimpan idDosen dari gen ke posisi_jam ke k.

14. Cek apakah banding1 sama dengan “-”. Jika ya maka program tidak melakukan apapun. jika tidak, lakukan langkah 15.

15. Cek apakah banding1 sama dengan banding2. Jika ya maka lakukan langkah 16-17.

16. Buat variabel fitness_awal bertipe int yang berisi nilai fitness dari data gen ke posisi_jam ke k.

17. Set nilai fitness gen ke posisi)jam ke k dengan fitness_awal +1; 18. Untuk l = 0 hingga panjang posisi_jam, lakukan langkah 19. 19. Set posisi_jam ke l sama dengan posisi_jam ke l +1.

20. Untuk l = 0 hingga panjang posisi_jam, lakukan langkah 21.

21. Cek apakah l sama dengan 0. Jika ya makan posisi_jam ke l = count. jika tidak maka posisi_jam ke l sama dengan posisi_jam ke l-1 ditambah 4. 22. Set count sama dengan count + count;

(55)

24. Selesai.

Gambar 3. 9 Algoritma HC2 (cekDosen)

HC 3 : method cekMatakuliah (parameter x bertipe kromosom)

1. Buat variabel array of int posisi_jam sepanjang jumlah_ruang.

2. Buat variabel hari bertipe array of String dengan isian adalah Hari kuliah (senin-jumat)

3. Buat variabel jam bertipe int set dengan nilai 1. 4. Buat variabel count bertipe int set dengan 0;

5. Untuk i sama dengan 0 hingga panjang posisi jam lakukan langkah 6

6. Cek apakah i sama dengan 0, Jika ya maka set posisi_jam ke i sama dengan 0.Jika tidak maka set posisi_jam ke i sama dengan posisi jam ke i-1 ditambah 4.

7. Ketika true, maka lakukan langkah 8.

8. Cek apakah Hari gen kromosom x ke count sama dengan hari ke 0 (hari senin). Jika ya maka count ditambah 1. Jika tidak maka berhenti looping. 9. Untuk i = 1 hingga panjang hari lakukan langkah 10-27

10. Untuk b = 0 hingga 4 lakukan langkah 11-24

11. Untuk j = 0 hingga jumlah_ruang, lakukan langkah 12-21 12. Untuk k = j +1 hingga jumlah_ruang, lakukan langkah 13-21

13. Buat variabel banding1 bertipe String set dengan idMk kromosom x gen ke posisi_jam ke j.

14. Buat variabel banding2 bertipe String set dengan idMk kromosom x gen ke posisi_jam ke k.

15. Buat variabel banding3 bertipe String set dengan semester kromosom x gen ke posisi_jam ke j.

16. Buat variabel banding4 bertipe String set dengan semester kromosom x gen ke posisi_jam ke k.

(56)

posisi_jam ke j.

18. Buat variabel banding8 bertipe String set dengan kelas kromosom x gen ke posisi_jam ke k.

19. Cek apakah banding1 sama dengan “-”. Jika ya, maka tidak menjalankan

apapun. Jika tidak, lakukan langkah 20-21.

20. Cek apakah banding3 sama dengan banding4, Jika ya cek juga apakah banding7 sama dengan banding8, jika ya maka buat variabel fitness_awal set dengan nilai fitness kromosom x gen ke posisi_jam ke k.

21. Set gen kromosom x data ke posisi_jam ke k dengan nilai_fitness +1. 22. Untuk l = 0 hingga panjang posisi_jam, lakukan langkah 22.

23. Cek apakah l sama dengan 0. Jika ya makan posisi_jam ke l = count. jika tidak maka posisi_jam ke l sama dengan posisi_jam ke l-1 ditambah 4. 24. Set count sama dengan count + count.

25. Untuk l = 0 hingga posisi_jam lakukan langkah 26.

26. Cek apakah l sama dengan 0, jika ya maka posisi_jam ke l sama dengan count. Jika tidak maka posisi_jam ke l sama dengan posisi jam ke l+1 ditambah 4.

27. Set count sama dengan count+count; 28. Kembalikan nilai x.

29. Selesai.

Gambar 3. 10 Algoritma HC3 (cekMatakuliah)

HC 4 : method cekJumlahMatakuliah(parameter x bertipe kromosom)

1. Buat variabel hari bertipe array of hari yang berisi hari senin - jumat. 2. Buat variabel jam bertipe int set dengan nilai 0.

3. Buat variabel count bertipe int set dengan nilai 0. 4. Buat variabel temp_count bertipe int set dengan nilai 0. 5. Buat variabel kel bertipe List<String> set dengan nilai null.

6. Membuat kelompok kelas dalam 1 semester kemudian masukkan kelompok

(57)

7. Ketika true maka lakukan langkah 8.

8. Cek apakah hari di Gen ke count sama dengan hari ke 0 (hari senin). Jika ya maka lakukan penambahan count dengan 1. Jika tidak, maka hentikan looping.

9. Set temp_count = count.

10. Untuk i = 0 hingga panjang hari, lakukan langkah 11-24

11. Untuk jam sama dengan jam hingga temp_count, Lakukan langkah 12-20. 12. Buat variabel banding2 bertipe String set dengan semester Data ke jam. 13. Buat variabel banding3 bertipe String set dengan kelas Data ke jam. 14. Untuk j = 0 hingga panjang kel, Lakukan langkah 15-20.

15. Buat variabel banding1 bertipe array String set dengan semester dan kelas yang didapat dari kel.

16. Cek apakah banding1 ke 0 sama dengan banding2 dan banding1 ke 1 sama dengan banding3. Jika ya, maka lakukan langkah 17-20

17. Buat variabel temp bertipe int set dengan banding1 ke2. 18. Set temp sama dengan temp+1.

19. Tambahkan nilai temp dan masukkan ke dalam kel sebagai penunjik banyaknya kelas dengan semester sama dalam 1 hari.

20. Cek apakah temp lebih besar dari 3. Jika ya maka pelanggaran ditambahkan di data ke jam.

21. Untuk j sama dengan 0 hingga panjang kel. Lakukan langkah 22-23. 22. Buat variabel temp. Pisahkan semester dan Kelas yang ada di kel ke j, 23. Set kel ke j dengan temp ke 0 dan temp ke 1 beserta angka 0 sebagai

penentu matakuliah semester yang berada dalam sehari. 24. Set temp_count sama dengan temp_count ditambah count. 25. Kembalikan nilai x.

26. Selesai

Gambar 3. 11 Algoritma HC4 (cekJumlahMatakuliah)

(58)

1. Buat variabel hari ebrtippe Array String dengan inputan Hari Senin hingga Jumat.

2. Buat variabel jam bertipe int set dengan 0. 3. Buat variabel count bertipe int set dengan 0. 4. Buat variabel temp_count bertipe int set dengan 0. 5. Buat variabel kel bertipe List<String> set dengan null.

6. Set kel dengan idDosen beserta angka 0 untuk semagai penyimpan dosen mengajar dalam sehari.

7. Lakukan looping untuk mencari rentang hari Senin pada kromosom dengan menambahkan count bernilai 1 setiap kali looping.

8. Set temp_count sama dengan count.

9. Untuk i = 0 hingga panjang hari, Lakukan langkah 10-20 10. Untuk jam = jam hingga temp_count lakukan langkah 11-18

11. Buat variabel banding2 bertipe String set dengan idDosen data ke jam. 12. Untuk j = 0 hingga panjang kel Lakukan langkah 13-18

13. Pisahkan kel ke j (idDosen dan jumlah dosen mengajar) dan masukkan ke dalam variabel banding1 bertipe Array String.

14. Cek apakah banding1 ke 0 sama dengan banding2. Jika ya maka lakukan langkah 15-18

15. buat variabel temp bertipe int. Simpan banding1 ke 1. 16. set temp sama dengan temp +1.

17. Masukkan temp ke dalam kel ke j. Menandakan bahwa idDosen ke j mengajar sebanyak tenp kali dalam seminggu.

18. Cek apakah temp lebih besar dari 3. Jika ya maka tambahkan nilai Pelanggaran ke dalam data ke jam.

19. Untuk j = 0 hingga panjang kel. Lakukan set jumlah dosen mengajar menjadi 0 tiap masing - masing idDosen.

20. Set temp_count sama dengan temp_Count ditambah count yang berfungsi untuk mengecek hari lainnya.

(59)

22. Selesai.

Gambar 3. 12 Algoritma HC5 (cekDosenMengajar)

3.2.1.3. Proses Regenerasi Pada Penjadwalan

Proses regenerasi adalah proses perubahan gen-gen generasi sekarang ke

gen generasi berikutnya. Proses Regenerasi meliputi Seleksi, Crossover, dan

Mutasi.

1. Seleksi

Seleksi merupakan proses penentuan dua kromosom yang akan

menjadi calon kandidat orang tua untuk membentuk kromosom baru. Pada

proses seleksi dilakukan model seleksi Roulette Wheel Selection dengan

mengacu pada nilai fitness tersebut. Semakin kecil nilai fitnessnya, maka

kromosom tersebut dipilih sebagai orang tua untuk populasi selanjutnya.

Dalam program akan menggunakan 4 kromosom dalam 1 populasi. Semakin

kecil jumlah fitness yang dimiliki kromosom tersebut, maka akan

berdampak pada pergeseran kromosom ke slot teratas. Semakin banyak nilai

fitness nya maka akan menduduki posisi terendah. Pada proses seleksi akan

menentukan 2 Kromosom terbaik untuk dijadikan orang tua. Berikut

(60)

Gambar 3. 13 Flowchart Roulette Wheel Selection

2. Perkawinan Silang (Crossover)

Crossover merupakan proses penggabungan dua kromosom yang

berasal dari dua orang tua terpilih. Hasil dari penggabungan ini akan

membentuk kromosom baru. Program aplikasi yang dibuat oleh penulis

menggunakan 4 Kromosom dalam 1 populasi dimana kromosom ke-1 dan

ke-2 adalah slot yang dikhususkan untuk kandidat orang tua terpilih. Seleksi

kromosom berdasarkan seleksi Roulette Wheel Selection. Sedangkan untuk

kromosom ke-3 dan ke-4 adalah slot kromosom yang akan digunakan untuk

(61)

digantikan dengan kromosom baru pada iterasi selanjutnya. Proses ini

terjadi karena seleksi alam. Untuk kasus Penjadwalan matakuliah prodi

PGSD, penulis akan menerapkan One Point Crossover. Berikut algoritma

crossover yang diterapkan pada Aplikasi penjadwalan :

Gambar 3. 14 Flowchart Crossover

Algoritma diatas menjelaskan bahwa setiap kromosom anak

(kromosom 2 dan 3) merupakan perpaduan gen kedua orang tuanya

(kromosom 0 dan 1). Pada One Point Crossover, Titik penenentu keturunan

(62)

kromosom. Pada kasus penjadwalam PGSD, nGen pada tiap kromosom

adalah 280. Sehingga point setiap kromosom adalah :

point = nGen / 2

= 280 / 2

= 140

Sehingga ilustrasi crossover adalah sebagai berikut :

Gambar 3. 15 Ilustrasi Crossover

Gambar diatas menjelaskan bahwa kromosom (parent) 2 dan 3

terjadi seleksi alam. Seleksi alam tersebut mengubah nilai allele (kelas mata

kuliah) dari nilai allele parent. Sehingga memungkinkan child memiliki

allele dari kedua induk.

3. Mutasi (Mutation)

Mutasi merupakan penukaran gen yang satu ke gen yang lain dalam

(63)

Mutasi biasa adalah mutasi yang tidak memperhatikan nilai fitness. Semua

gen memiliki probabilitas yang sama untuk dimutasi. Proses Mutasi

dilakukan atas berbagai pertimbangan diantaranya :

a. Terjadinya duplikasi Allele setelah melewati phase Crossover. Pada phase ini. Kromosom anak setelah di crossover akan

memungkinkan terjadinya duplikasi terhadap kelas kuliah yang sama.

Selain itu kromosom anak juga memungkinkan terjadi hilangnya allele

pada satu kromosom. Pada tahap ini, Mutasi berperan untuk

menghilangkan allele duplikat kemudian menggantinya dengan allele

yang hilang dalam satu kromosom. Proses mengganti allele yang

hilang dilakukan dengan cara random slot gen hingga mendapatkan

gen yang kosong.

(64)

b. Mempercepat kromosom untuk mencapai solusi.

Pada phase ini, mutasi berperan untuk membentuk kromosom

sehingga mencapai solusi. Langkah utama yang dilakukan adalah

memindahkan nilai Allele pada slot Gen tertentu ke slot Gen lain.

Proses perpindahan setiap Genetasi (iterasi) adalah 1 slot Gen pada

setiap kromosom anak.

3.3. Perancangan Proses

3.3.1. Spesifikasi Kebutuhan Perangkat Keras dan Perangkat Lunak

Untuk menjalankan aplikasi penjadwalan PGSD, Spesifikasi perangkat

keras dan perangkat lunak yang dibutuhkan adalah :

1. Perangkat Keras (Spesifikasi Minimum)

Processor : Intel Pentium IV, 1 Ghz

Memori : 512 MB

HDD : 16 GB

2. Perangkat Lunak : Windows XP atau diatasnya.

(65)

3.3.2. Use Case

SEKRETARIAT

Tambah Matakuliah

Rubah Matakuliah

Hapus Matakuliah

<<extend>> DATA

MATAKULIAH

<<extend>> <<extend>>

Tambah Ruang

Rubah Ruang

Hapus Ruang

DATA RUANG

<<extend>>

<<extend>>

<<extend>>

Tambah Dosen

Rubah Dosen

Hapus Dosen

DATA DOSEN

<<extend>>

<<extend>>

<<extend>>

BUAT KELAS KULIAH

<<depends on>>

<<depends on>>

BUAT KELAS PERMINTAAN

<<depends on>>

PENJADWALAN

<<depends on>>

Gambar 3. 17 Use Case Diagram

Narasi Use Case

Tabel 3. 4 Narasi Tambah Matakuliah

Nama use case Tambah MataKuliah

Aktor Sekretariat

Diskripsi Pengguna memasukkan data Matakuliah Prakondisi Mengaktifkan aplikasi

(66)

kerja 1. User memasukkan data matakuliah dan mengklik tombol simpan.

2. Sistem mengecek setiap data yang dimasukan. 3. Jika data lengkap, sistem

menyimpan data tersebut kedalam database

matakuliah.

Alternate 3. Jika tidak lengkap, sistem

akan menyampaikan pesan untuk melengkapi data.

Tabel 3. 5 Narasi Rubah Matakuliah

Nama use case Rubah MataKuliah

Aktor Sekretariat

Diskripsi Pengguna mengubah data Matakuliah Prakondisi Mengaktifkan aplikasi

Langkah kerja

Aksi aktor Reaksi sistem

1. User mengklik baris pada tabel matakuliah.

4. User mengganti data di dalam text field. 5. User Mengklik tombol

rubah.

2. Sistem menampilkan data matakuliah kedalam text field.

3. Sistem menampilkan tombol Rubah.

6. Sistem menyimpan data terbaru kedalam database.

Alternate 6. Jika text field kosong,

sistem akan menyampaikan pesan untuk melengkapi data.

Tabel 3. 6 Narasi Hapus Matakuliah

Gambar

Gambar 1-1 Definisi Kromosom
Gambar 1-3 Contoh Pengkodean Bulat
Gambar 1-4 Contoh One Point Crossover
Gambar 1-7 Contoh Mutasi
+7

Referensi

Dokumen terkait

Based on the background of the problem above, the researcher focuses the discussion on investigating the perception of the eleventh grade students’ of SMA Negeri 2 Yogyakarta

Penelitian ini bertujuan untuk mengetahui kadar unsur dan senyawa kimia limbah cangkang kerang Totok (Geloina sp.) hasil tangkapan masyarakat desa Bulupayung Cilacap di

Dari hasil penelitian diperoleh kesimpulan bahwa terdapat perubahan kekuatan otot dasar panggul yang bermakna pada persalinan pervaginam, baik secara spontan,

Kebijakan umum mengacu pada agenda pemerintah Jawa Barat 2003-2008 yaitu: “Akselerasi Peningkatan Kesejahteraan Rakyat guna mendukung pencapaian Visi Jawa Barat

Sekiranya Kementerian Kewangan Malaysia mendapati syarikat telah melanggar syarat-syarat yang ditentukan di atas, ataupun telah menyerahkan pengurusan syarikat dan kontrak

Pada tahap ini penulis melakukan pengujian terhadap program website yang telah dibuat untuk memastikan program layak digunakan , dan meminimalisir kesalahan (error)

Remaja yang tidak dapat menyesuaikan diri dengan lingkungannya khusunya dalam pesantren menunjukkan ketidakmampuan dalam berperilaku. Apabila remaja memiliki perasaan

18.3 Pembuktian kualifikasi untuk menilai pengalaman yang sejenis dan besaran nilai pekerjaan yang sesuai dengan nilai pekerjaan yang akan dikompetisikan dilakukan