optimasi penjadwalan mata kuliah dengan menggunakan algoritma genetika (studi kasus : program studi...

93
OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA) diajukan oleh Rachmat Fauzi NIM: 2008230007 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS DARMA PERSADA JAKARTA 2015

Upload: uofaunsada

Post on 07-Jan-2017

515 views

Category:

Data & Analytics


13 download

TRANSCRIPT

Page 1: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

OPTIMASI PENJADWALAN MATA KULIAH

DENGAN MENGGUNAKAN ALGORITMA GENETIKA

(STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA)

(UNIVERSITAS DARMA PERSADA)

diajukan oleh

Rachmat Fauzi

NIM: 2008230007

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS DARMA PERSADA

JAKARTA

2015

Page 2: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

i

LEMBAR BIMBINGAN TUGAS AKHIR

TEKNIK INFORMATIKA – DARMA PERSADA

NIM : 2008230007

NAMA LENGKAP : Rachmat Fauzi

DOSEN PEMBIMBING : Timor Setiyaningsih ST, MTI

JUDUL TUGAS AKHIR : MERANCANG OPTIMASI

PENJADWALAN MENGGUNAKAN

ALGORITMA GENETIKA

No. Pertemuan Pokok Bahasan

Paraf

Dosen

Pembimbing

1. 10/07/2015 BAB I

2. 14/07/2015 BAB II

3. 27/07/2015 Revisi BAB II

4. 28/07/2015 BAB III

5. 29/07/2015 Revisi BAB III

6. 03/08/2015 Aplikasi

7. 10/08/2015 Revisi Aplikasi

8. 18/08/2015 BAB IV & BAB V

9. 19/08/2015 Revisi BAB IV & BAB V

10. 21/08/2015 BAB I – V & Aplikasi

Jakarta, 26 Agustus 2015

Dosen Pembimbing

Timor Setiyaningsih ST, Mti

Page 3: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

ii

LEMBAR PENGESAHAN

MERANCANG APLIKASI OPTIMASI PENJADWALAN

MENGGUNAKAN METODE ALGORITMA GENETIKA

Disusun oleh :

Rachmat Fauzi

200823008

Timor Setiyaningsih ST, MTI Adam Arif Budiman ST., M.Kom

Pembimbing Laporan Kajur. Teknik Informatika

Page 4: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

iii

LEMBAR PERNYATAAN

Saya yang bertanda tangan di bawah ini :

Nama : Rachmat Fauzi

NIM : 2008230007

Fakultas : Teknik

Jurusan : Teknik Informatika

Judul Laporan : MERANCANG APLIKASI OPTIMASI

PENJADWALAN DENGAN

MENGGUNAKAN ALGORITMA

GENETIKA

Menyatakan bahwa laporan tugas akhir ini saya susun sendiri berdasarkan hasil

peninjauan, penelitian lapangan, wawancara serta memadukannya dengan buku-

buku literature atau bahan-bahan referensi lain yang terkait dan relevan di dalam

menyelesaikan laporan tugas akhir ini.

Demikian pernyataan ini saya buat dengan sesungguhnya.

Jakarta, 30 Agustus 2015

Rachmat Fauzi

Page 5: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

iv

PENGUJIAN LAPORAN TUGAS AKHIR

Laporan Tugas Akhir ini telah dipresentasikan pada tanggal : 3 September 2015,

Dengan judul

“OPTIMASI PENJADWALAN PERKULIAHAN DENGAN

METODE ALGORITMA GENETIKA”

PENGUJI 1 PENGUJI 2

Herianto S.Pd M.T. Aji Setiawan MMSi

PENGUJI 3

Bagus Tri Mahardika MMSi

Page 6: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

v

ABSTRAK

Penjadwalan perkuliahan merupakan proses penyusunan jadwal

pelaksanaan yang menginformasikan sejumlah mata kuliah, dosen yang mengajar,

ruang, serta waktu kegiatan perkuliahan. Perlu diperhatikan beberapa aspek untuk

menyusun jadwal perkuliahan yang sesuai dengan kebutuhan. Aspek yang perlu

diperhatikan antara lain adalah aspek dari dosen yang mengajar, mata kuliah yang

diajar, serta tidak melanggar pembatasan yang sudah ditentukan. Penyusunan

jadwal secara manual cenderung membutuhkan waktu yang lebih lama dan

ketelitian yang cukup bagi pembuat jadwal. Untuk dapat membuat jadwa yang

optional, dibutuhkan metode optimasi. Pada penelitian ini, akan diuji coba

metode optimasi dalam pembuatan jadwal perkuliahan yaitu Algoritma Genetika.

Algoritma genetika merupakan pendekatan komputasional untuk menyelesaikan

masalah yang dimodelkan dengan proses biologi dari evolusi. Parameter-

parameter Algoritma Genetika yang mempengaruhi jadwal perkuliahan yang

dihasilkan adalah jumlah individu, probabilitas crossover, probabilitas mutasi

serta metode seleksi, crossover, mutation yang digunakan. Pengujian dilakukan

dengan cara mencari nilai parameter-parameter algoritma genetika yang paling

optimal dalam jadwal perkuliahan. Hasil penelitian menunjukkan bahwa dengan

100 jumlah generasi, 10 jumlah individu, 30% probabilitas crossover dan 50%

probabilitas mutation dapat menghasilkan jadwal yang paling optimal.

Kata kunci : optimasi, penjadwalan perkuliahan, seleksi, crossover, mutasi,

algoritma genetika,

Page 7: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

vi

KATA PENGANTAR

Assalamu’alaikum Wr. Wb.

Puji syukur kehadirat Allah SWT, atas segala rahmat, bimbingan dan

berkat-Nya, sehingga penulis dapat menyelesaikan penyusunan Tugas Akhir yang

berjudul “Merancang Aplikasi Optimasi Penjadwalan Perkuliahan Dengan

Menggunakan Algoritma Genetika” sebagai salah satu persyaratan akademik

bagi mahasiswa program Strata 1 Fakultas Teknik, Universitas Darma Persada.

Dalam pelaksanakan tugas akhir sampai proses pembuatan Laporan Tugas

Akhir ini, penulis tidak jarang menemui berbagai macam kesulitan dan hambatan,

namun berkat bantuan dan dorongan dari beberapa pihak, akhirnya penulis dapat

mengatasi berbagai kesulitan tersebut. Pada kesempatan ini saya mengucapkan

banyak terimakasih kepada pihak – pihak yang secara langsung atau tidak

langsung membantu dalam tugas akhir dan penulisan laporan ini. Saya

menyampaikan ucapan terimakasih yang tulus kepada :

1. Dekan Fakultas Teknik Universitas Darma Persada Ir. Agus Sun

Sugiharto, MT.

2. Ketua Jurusan Teknik Informatika Adam Arif Budiman, ST., M.Kom.

3. Dosen Pembimbing Timor Setyaningsih ST, Mti yang telah sabar

membimbing saya dalam penyusunan Tugas Akhir ini.

4. Dosen-dosen Universitas Darma Persada yang telah memberikan ilmu yang

sangat bermanfaat kepada saya.

Page 8: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

vii

5. Orang Tua dan keluarga saya yang tidak pernah bosan memberikan

semangat kepada saya.

6. Teman-teman seperjuangan saya Awal, Nando, Tyo, Handy B, Handi A,

Putra, Igoy, Aji, Dana, Mas Ikhsan, Bintang, Eben, Ryan dan yang ada di

Grup Pojok Kantek Bersaudara yang tidak bisa saya sebutkan satu persatu.

7. Mas Adi dan kang Asep dan teman-teman lainnya yang telah memberikan

ilmu kepada saya dalam mengerjakan Tugas Akhir ini.

8. Keluarga besar SAUNG yang telah mensuport dan memberi semangat

kepada saya tanpa henti.

9. Semua pihak yang tidak dapat saya sebutkan satu persatu, yang telah

memberikan bantuan, waktu dan tenaga serta dukungannya dalam

menyelesaikan penulisan laporan kerja praktek ini.

Akhir kata, saya sampaikan terima kasih kepada semua pihak yang telah

berperan serta dalam penyelesaian tugas akhir ini dari awal sampai akhir. Semoga

Allah SWT senantiasa meridhai segala usaha kita. Amin.

Wassalamu’alaikum Wr. Wb.

Jakarta, 24 Agustus 2015

Rachmat Fauzi

Page 9: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

viii

DAFTAR GAMBAR

Gambar 1.1 Diagram Alir Algoritma Genetika ....................................................... 7

Gambar 1.2 Siklus Pengembangan Model RAD ................................................... 8

Gambar 2.1 Flowchart Algoritma Genetika ......................................................... 12

Gambar 2.2 Penyandian Biner Pada Operator Genetika ...................................... 13

Gambar 2.3 Siklus RAD ...................................................................................... 20

Gambar 2.4 Pemodelan UML .............................................................................. 24

Gambar 2.5 Use Case Diagram ............................................................................ 25

Gambar 2.6 Activity Diagram .............................................................................. 26

Gambar 2.7 Sequence Diagram ............................................................................ 27

Gambar 3.1 Diagram Alir Perancangan Sistem ................................................... 29

Gambar 3.2 Use Case Diagram ............................................................................ 30

Gambar 3.3 Activity Diagram Login .................................................................... 32

Gambar 3.4 Activity Diagram Input Data ........................................................... 33

Gambar 3.5 Activity Diagram Generate Jadwal .................................................. 34

Gambar 3.6 Activity Diagram Laporan ............................................................... 35

Gambar 3.7 Sequence Diagram Login ................................................................. 36

Page 10: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

ix

Gambar 3.8 Sequence Diagram Input Data .......................................................... 37

Gambar 3.9 Sequence Diagram Laporan .............................................................. 38

Gambar 3.10 Struktur Tabel Login ...................................................................... 38

Gambar 3.11 Struktur Tabel Dosen ..................................................................... 39

Gambar 3.12 Struktur Tabel Mata Kuliah ............................................................ 39

Gambar 3.13 Struktur Tabel Hari ......................................................................... 40

Gambar 3.14 Struktur Tabel Jam ......................................................................... 40

Gambar 3.15 Struktur Tabel Ruang ..................................................................... 41

Gambar 3.16 Struktur Tabel Pengampu ............................................................... 41

Gambar 3.17 Struktur Tabel Kesediaan ............................................................... 42

Gambar 3.18 Struktur Tabel Jadwal ..................................................................... 42

Gambar 3.19 Relasi Tabel Database .................................................................... 43

Gambar 3.20 Rancangan Menu Login ................................................................. 43

Gambar 3.21 Rancangan Menu Utama ................................................................ 44

Gambar 3.22 Rancangan Menu Dosen ................................................................. 44

Gambar 3.23 Rancangan Menu Mata Kuliah ....................................................... 45

Gamabr 3.24 Rancangan Menu Ruang Kuliah .................................................... 46

Gambar 3.25 Rancangan Menu Hari & Jam ........................................................ 46

Page 11: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

x

Gambar 3.26 Rancangan Menu Dosen Pengampu ............................................... 47

Gambar 3.27 Rancangan Menu Kesediaan Dosen ............................................... 48

Gamabar 3.28 Rancangan Menu Generate Jadwal .............................................. 48

Gambar 3.29 Rancangan Menu Laporan ............................................................. 49

Gambar 4.1 Tampilan Login ................................................................................ 51

Gambar 4.2 Tampilan Menu Utama Administrator ............................................. 52

Gambar 4.3 Tampilan Menu Utama User ............................................................ 53

Gambar 4.4 Tampilan Input Data Dosen ............................................................. 53

Gambar 4.5 Tampilan Menu Data Mata Kuliah ................................................... 54

Gambar 4.6 Tampilan Menu Data Ruang ............................................................ 55

Gambar 4.7 Tampilan Menu Data Hari & Jam .................................................... 56

Gambar 4.8 Tampilan Menu Data Pengampu ...................................................... 57

Gambar 4.9 Tampilan Menu Data Kesediaan ...................................................... 58

Gambar 4.10 Tampilan Menu Generate Jadwal ................................................... 58

Gambar 4.11 Tampilan Laporan Jadwal .............................................................. 59

Gambar 4.12 Tampilan Laporan Dosen ............................................................... 59

Page 12: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

xi

DAFTAR TABEL

Tabel 2.1 Contoh Crossover 1 Titik ..................................................................... 15

Tabel 2.2 Contoh Crossover 2 Titik ..................................................................... 16

Tabel 2.3 Contoh Crossover Seragam .................................................................. 16

Tabel 3.1 Peran Aktor Petugas Penjadwal ........................................................... 30

Tabel 3.2 Peran Aktor User .................................................................................. 31

Tabel 4.1 Hasil Proses Pertama ............................................................................ 64

Tabel 4.2 Hasil Proses Kedua .............................................................................. 65

Tabel 4.3 Hasil Pengujian Per Modul Aplikasi .................................................... 68

Page 13: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

xii

DAFTAR ISI

Halaman judul

LEMBAR BIMBINGAN ....................................................................................... i

LEMBAR PENGESAHAN .................................................................................. ii

LEMBAR PERNYATAAN ................................................................................. iii

LEMBAR PENGUJI ............................................................................................ iv

ABSTRAK ............................................................................................................. v

KATA PENGANTAR ......................................................................................... vi

DAFTAR GAMBAR ......................................................................................... viii

DAFTAR TABEL ................................................................................................ xi

DAFTAR ISI ....................................................................................................... xii

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

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

1.2 Rumusan Masalah ............................................................................. 2

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

1.4 Tujuan Penelitian .............................................................................. 3

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

1.6 Metode Penelitian ............................................................................. 4

1.7 Sistematika Penulisan ....................................................................... 8

Page 14: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

xiii

BAB II LANDASAN TEORI .......................................................................... 10

2.1 Algoritma Genetika dan RAD ...................................................... 10

2.1.1 Algortima Genetika ............................................................... 10

2.1.2 Struktur Umum Algoritma Genetika .................................... 11

2.1.3 Penyandian .......................................................................... 12

2.1.4 Operator Genetika ................................................................ 13

2.1.5 Parameter Genetika ............................................................. 17

2.1.6 Rapid Application Development (RAD) .............................. 18

2.2 Proses Algoritma Genetika

2.2.1 Individu / Krosom ................................................................ 20

2.2.2 Fitness .................................................................................. 20

2.2.3 Membangkitkan Populasi Awal .......................................... 20

2.2.4 Seleksi .................................................................................. 21

2.2.5 Crossover ............................................................................. 21

2.2.6 Mutasi .................................................................................. 21

2.3 Tool Yang Digunakan Pada Penelitian ......................................... 21

2.3.1 Microsoft Visual Basic 2010 ............................................... 21

2.3.2 Sql Server 2008 R2 .............................................................. 22

2.4 Pemodelan UML .......................................................................... 24

2.4.1 Pemodelan Sistem Dengan UML ........................................ 24

2.4.2 Use Case .............................................................................. 24

2.4.3 Activity Diagram ................................................................. 25

2.4.4 Sequence Diagram ............................................................... 26

Page 15: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

xiv

BAB III ANALISA DAN PERANCANGAN ................................................. 28

3.1 Analisa Sistem dengan Algoritma Genetika ................................. 28

3.2 Rancangan Sistem ........................................................................ 28

3.2.1 Use Case Diagram ............................................................... 29

3.2.2 Activity Diagram ................................................................. 32

3.2.3 Sequence Diagram ............................................................... 36

3.3 Rancangan Database ..................................................................... 38

3.3.1 Tabel Login ......................................................................... 38

3.3.2 Tabel Dosen ......................................................................... 39

3.3.3 Tabel Mata Kuliah ............................................................... 39

3.3.4 Tabel Hari ............................................................................ 40

3.3.5 Tabel Jam ............................................................................. 40

3.3.6 Tabel Ruang ......................................................................... 40

3.3.7 Tabel Pengampu .................................................................. 41

3.3.8 Tabel Kesediaan .................................................................. 41

3.3.9 Tabel Jadwal ........................................................................ 42

3.4 Diagram Relasi Database ............................................................. 42

3.5 Rancangan Tampilan .................................................................... 43

3.5.1 Menu Login ......................................................................... 43

3.5.2 Menu Utama ........................................................................ 44

3.5.3 Menu Input Data Dosen ....................................................... 44

3.5.4 Menu Input Data Mata Kuliah ............................................. 45

3.5.5 Menu Input Data Ruang ...................................................... 46

3.5.6 Menu Input Data Hari & Jam .............................................. 46

Page 16: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

xv

3.5.7 Menu Input Dosen Pemngampu .......................................... 47

3.5.8 Menu Input Kesediaan Dosen ............................................. 48

3.5.9 Menu Generate Jadwal ........................................................ 48

3.6 Rancangan Laporan ...................................................................... 49

BAB IV IMPLEMENTASI DAN EVALUASI SISTEM ................................ 50

4.1 Implementasi Sistem .................................................................... 50

4.1.1 Hardware ............................................................................. 50

4.1.2 Software ............................................................................... 50

4.2 Implementasi Aplikasi .................................................................. 51

4.2.1 Rancangan Tampilan Login ................................................ 51

4.2.2 Rancangan Tampilan Menu Utama Admin ......................... 51

4.2.3 Rancangan Tampilan Menu Utama User ............................. 52

4.2.4 Rancangan Tampilan Input Data Dosen .............................. 53

4.2.5 Rancangan Tampilan Input Mata Kuliah ............................ 54

4.2.6 Rancangan Tampilan Input Data Ruang ............................... 54

4.2.7 Rancangan Tampilan Input Hari & Jam .............................. 55

4.2.8 Rancangan Tampilan Input Data Pengampu ....................... 56

4.2.9 Rancangan Tampilan Input Data Kesediaan ....................... 57

4.2.10 Rancangan Tampilan Generate Jadwal ............................. 58

4.2.11 Rancangan Tampilan Laporan ........................................... 59

4.3 Sekilas Program ............................................................................. 60

4.3.1 Membangkitkan Populasi Awal .......................................... 60

4.3.2Menghitung Nilai Fitness ..................................................... 61

4.3.3 Croosover ............................................................................ 62

Page 17: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

xvi

4.3.4 Mutasi .................................................................................. 63

4.4 Evaluasi Sistem ............................................................................ 67

BAB V KESIMPULAN DAN SARAN ........................................................... 69

5.1 Kesimpulan ................................................................................... 69

5.2 Saran ............................................................................................. 70

DAFTAR PUSTAKA

LAMPIRAN

Page 18: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Penjadwalan merupakan kegiatan yang harus dimiliki oleh setiap

orang untuk dapat membantu dalam melakukan aktivitasnya sehari-hari.

Terlebih lagi sebuah instansi atau lembaga yang memiliki agenda-agenda

penting yang diselesaikan secara teratur dan rapi. Begitu pentingnya

penjadwalan ini agar kegiatan dapat berjalan sesuai dengan yang telah

direncanakan.

Berbanding terbalik dengan pentingnya penjadwalan ini, proses

pembuatan jadwal ini merupakan proses yang menyulitkan, karena proses ini

membutuhkan ketelitian dan waktu yang cukup banyak agar tidak terjadi

adanya tumpang tindih antara kegiatan yang satu dengan kegiatan yang lain.

Sampai saat ini, metode yang dikenal sebagai metode yang diakui

potensinya memiliki teknik optimasi untuk menyelesaikan permasalahan

yang kompleks adalah Algoritma Genetika dan telah sukses dijalankan

dikalangan teknik. Sehingga dalam pembuatan system penjadwalan pelajaran

ini metode yang dipilih untuk dipergunakan adalah Algoritma Genetika. (

Mitsuo Gen, 1997)

Page 19: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

2

Teknik Informatika merupakan salah satu jurusan yang ada di

Universitas Darma Persada. Teknik Informatika di Universitas Darma

Persada merupakan salah satu jurusan / prodi (program studi) yang memiliki

jumlah mahasiswa yang cukup banyak. Dengan jumlah mahasiswa yang

cukup banyak, tentu dibutuhkan dosen yang memadai. Penjadwalan kegiatan

kuliah dalam suatu Perguruan Tinggi / kampus adalah suatu hal rumit dan

sering mengalami kesulitan.

Hal ini disebabkan beberapa faktor yang berkaitan yang harus

dipertimbangkan antara lain jumlah mata kuliah yang diselenggarakan,

jumlah ruangan, jumlah dosen dan jadwal dimana dosen yang bersangkutan

tidak bisa mengajar yang seringkali menyebabkan munculnya masalah

penjadwalan mata kuliah.

Untuk memudahkan dalam proses penjadwalan tersebut, maka akan

disusun tugas akhir dengan Judul “Optimasi Jadwal Mata Kuliah Dengan

Menggunakan Algoritma Genetika (Studi Kasus: Program Studi Teknik

Informatika Universitas Darma Persada)”.

Diharapkan proyek tugas akhir ini dapat menyusun jadwal pelajaran

perkuliahan yang meliputi jadwal perkuliahan disertai dengan dosen pengajar

di masing-masing kelas yang ada dengan proses yang lebih memaka waktu

sedikit dan hasil yang optimal.

1.2 Rumusan Masalah

1. Penarikan perumusan masalah Bagaimana sistem penjadwalan kegiatan

menggunakan metode Algoritma Genetika.

Page 20: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

3

2. Bagaimana membuat proses penjadwalan kegiatan yang belum optimal sesuai

yang direncanakan.

3. Bagaimana meminimalisir terjadinya kesalahan-kesalahan dalam melakukan

penjadwalan, dan laporan tentang jadwal perkuliahan.

1.3 Batasan Masalah

Batasan masalah dalam penelitian ini adalah :

1. Metode pengembangan menggunakan metode RAD dan metode Algoritma

Genetika.

2. Menentukan penjadwalan berdasarkan perkuliahan yang dilaksanakan, periode

waktu, dan ruangan pada Program Studi Teknik Informatika Universitas Darma

Persada.

3. Program aplikasi yang dibuat dengan meggunakan bahasa pemrograman

Microsoft Visual Studio.NET dan aplikasi basis data Sql Server 2008 R2.

1.4 Tujuan Penelitian

Maka disini akan dijabarkan beberapa tujuan penelitian yang akan

dilakukan, diantaranya :

1. Untuk menerapkan algoritma genetika dalam menyelesaikan masalah

penjadwalan perkuliahan pada Program Studi Teknik Informatika.

2. Mengoptimalisasikan penjadwalan mengajar dengan tepat waktu dan sesuai

dengan yang di rencanakan, agar tidak terjadinya kesalahan-kesalahan yang

dapat menyebabkan keterlambatan pelaksanaan kegiatan mengajar.

Page 21: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

4

1.5 Manfaat Penelitian

Adanya tugas akhir yang dibuat ini, diharapkan dapat memberikan

manfaat antara lain :

1. Bagi mahasiswa :

a. Dapat menerapkan disiplin ilmu dan memanfaatkannya.

b. Meningkatkan pemahaman tentang penggunaan algoritma genetika.

2. Bagi pihak terkait:

a. Dapat mengoptimalkan penyusunan jadwal mata kuliah.

1.6 Metode Penelitian

Metode penelitian yang diperlukan sebagai bahan untuk menyusun tugas

akhir ini adalah:

1.6.1 Metode Pengumpulan Data

Metode pengumpulan data dengan menggunakan beberapa cara yaitu :

1. Studi Lapangan

Pada metode studi lapangan ini terdapat 2 cara yaitu :

a) Observasi

Melalui observasi ke bagian yang berhubungan dengan kegiatan mengajar,

untuk mendapatkan gambaran yang jelas mengenai pelaksanaan system yang

sedang berjalan.

b) Wawancara

Melakukan serangkaian Tanya jawab pada bagian-bagian yang berhubungan

dengan masalah yang terkait, untuk mengetahui masalah-masalah yang

menjadi kendala bagi para pengguna system lama.

Page 22: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

5

2. Studi Literatur

Studi literature adalah cara penelitian yang dilakukan dengan membaca dan

mempelajari buku-buku literature sejenis yang dapat dijadikan pendukung

penyelesaian skripsi ini.

1.6.2 Metode pengembangan sistem

Metode pengembangan sistem dilakukan dengan metode RAD (Rapid

Application Development). RAD pertama kali diformulasikan oleh James Martin

pada tahun 1991 (Hillary Berger, 2004). Dan penulis menerapkan empat tahap

siklus pengembangan RAD (Kendal & Kendal, 2006), yaitu :

1. Fase Perencanaan Syarat-syarat

Dalam fase ini, pengguna (pihak yang melakukan penilaian terhadap kandidat-

kandidat) dan pihak yang menganalisa bertemu untuk mengidentifikasi syarat-

syarat informasi yang ditimbulkan dari tujuan-tujuan tersebut. Fase ini

memerlukan peran aktif dari kedua kelompok tersebut. Selain itu juga

melibatkan pengguna dari beberapa level yang berbeda dalam organisasi.

2. Workshop Design

Fase ini adalah fase untuk merancang dan memperbaiki yang dapat

digambarkan sebagai workshop. Selama workshop desain RAD, pengguna

merespon working prototype yang ada dan analyst memperbaiki modul-modul

yang dirancang menggunakan perangkat lunak berdasarkan respon pengguna.

3. Fase Implementasi

Pada fase ini dilakukan pengujian dan pengenalan terhadap sistem.

Page 23: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

6

1.6.3 Sekilas Metode

1. Algoritma Genetika

Menurut (Desiani dan Arhami, 2006) Algoritma Genetika (AG)

diperkenalkan pertama kali oleh John Holland (1975) dari Universitas Michigan,

John Holland mengatakan bahwa setiap masalah yang berbentuk adaptasi

(alami maupun buatan) dapat diformulasikan ke dalam terminology genetika.

Kemudian menurut Goldberg (1989) mendefinisikan algoritma genetika

ini sebagai suatu pencarian algoritma berdasarkan pada mekanisme seleksi

alam dan genetika alam. Bauer (1993) mendefinisikan algoritma genetika

sebagai perangkat lunak, prosedur yang dimodelkan setelah genetika dan

evolusi. Selain itu juga Algoritma Genetika mempunyai karakteristik-

karakteristik yang perlu diketahui sehingga dapat terbedakan dari prosedur

pencarian atau optimasi yang lain, yaitu :

1. AG bekerja dengan pengkodean dari himpunan solusi permasalahan

berdasarkan parameter yang telah ditetapkan dan bukan parameter itu sendiri.

2. AG melakukan pencarian pada sebuah populasi dari sejumlah individu-

individu yang merupakan solusi permasalahan bukan hanya dari sebuah

individu.

3. AG merupakan informasi fungsi objektif (fitness), sebagai cara untuk

mengevaluasi individu yang mempunyai solusi terbaik, bukan turunan dari

suatu fungsi.

4. AG menggunakan aturan-aturan transisi peluang, bukan aturan- aturan

deterministic

Page 24: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

7

2. Struktur Umum Algoritma Genetika

Menurut (Kusumadewi, 2003) Pada algoritma ini, teknik pencarian

dilakukan sekaligus atas sejumlah solusi yang mungkin dikenal dengan istilah

populasi. Individu yang terdapat dalam satu populasi individu yang terdapat

dalam satu populasi disebut dengan istilah kromosom, Charles L Karr (1999).

Kromosom ini merupakan suatu solusi yang masih berbentuk simbol. Populasi

awal dibangun secara acak, sedangkan populasinya merupakan hasil evolusi

kromosom-kromosom melalui iterasi yang disebut dengan istilah generasi. Pada

setiap generasi kromosom akan melalui proses evaluasi dengan menggunakan alat

ukur yang disebut fungsi fitness. Nilai fitness dari suatu kromosom akan

menunjukkan kualitas kromosom dalam populasi tersebut. Proses ini dapat

direpresentasikan dalam algoritma sederhana Algoritma Genetika sebagai berikut

:

Gambar 1.1 Diagram Alir Genetic Alghorithms Sederhana

(Kusumadewi, 2003)

Page 25: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

8

1.6.4 RAD (Rapid Application Development)

RAD adalah salah satu alternatif dalam melakukan suatu perkembangan

system. RAD adalah sebuah strategi pengembangan sistem yang menekankan

kecepatan pengembangan melalui keterlibatan pengguna yang ekstensif.

RAD menekankan pada kecepatan pengembangan yang melibatkan peran

user secara cepat, iterative dan meningkat dalam konstruksi prototype sebagai

cikal bakal system final, (Kendall and Kendall, 2006).

Gambar 1.2 Siklus Pengembangan Sistem Model RAD

(Kendall and Kendall, 2010)

1.7 Sistematika Penulisan

Penulisan tugas akhir ini terdiri dari 5 (lima) bab, berikut garis besar dari

masing-masing bab :

BAB I PENDAHULUAN

Pada bab ini akan diuraikan tentang latar belakang, permasalahan,

tujuan dan manfaat penelitian, metodologi penelitian dan sistematika

penulisan.

Page 26: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

9

BAB II LANDASAN TEORI

Pada bab ini menjelaskan tentang konsep dasar system informasi

(pengertian pengembangan sistem, pengertian penjadwalan, pengertian

algoritma genetika dan metode pengembangan sistem).

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini akan dibahas mengenai analisa sistem yang akan di buat.

Pemilihan tool yang digunakan untuk membuat aplikasi, baik database

maupun pemrograman, serta rancangan program yang akan di buat.

BAB IV PEMBAHASAN

Bab ini akan membahas hasil aplikasi yang dibuat, meliputi interface

aplikasi, cara kerja dan cara penggunaan aplikasi.

BAB V PENUTUP

Bab ini berisikan tentang kesimpulan dan saran dari pembahasan bab-

bab sebelumnya.

Page 27: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

BAB II

LANDASAN TEORI

2.1 Algoritma Genetika Dan Rapid Application Development (RAD)

2.1.1 Algoritma Genetika

Algoritma ini ditemukan di Universitas Michigan, Amerika Serikat oleh

John Holland (1975) melalui sebuah penelitian dan dipopulerkan oleh salah satu

muridnya, David Goldberg (1989). Dimana mendefenisikan algoritma genetika ini

sebagai metode algoritma pencarian berdasarkan pada mekanisme seleksi alam

dan genetik alam.

Algoritma genetika adalah algoritma yang berusaha menerapkan

pemahaman mengenai evolusi alamiah pada tugas-tugas pemecahan-masalah

(problem solving). Pendekatan yang diambil oleh algoritma ini adalah dengan

menggabungkan secara acak berbagai pilihan solusi terbaik di dalam suatu

kumpulan untuk mendapatkan generasi solusi terbaik berikutnya yaitu pada suatu

kondisi yang memaksimalkan kecocokannya atau lazim disebut fitness. Generasi

ini akan merepresentasikan perbaikan-perbaikan pada populasi awalnya. Dengan

melakukan proses ini secara berulang, algoritma ini diharapkan dapat

mensimulasikan proses evolusioner.

Pada akhirnya, akan didapatkan solusi-solusi yang paling tepat bagi

permasalahan yang dihadapi. Untuk menggunakan algoritma genetik, solusi

permasalahan direpresentasikan sebagai kromosom. Tiga aspek yang penting

untuk enggunaan algoritma genetik:

Page 28: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

11

1. Defenisi fungsi fitness

2. Defenisi dan implementasi representasi genetic

3. Defenisi dan implementasi operasi genetic

Jika ketiga aspek di atas telah didefinisikan, algoritma genetika akan

bekerja dengan baik. Tentu saja, algoritma genetika bukanlah solusi terbaik untuk

memecahkan segala masalah. Sebagai contoh, metode tradisional telah diatur

untuk untuk mencari penyelesaian dari fungsi analitis convex yang “berperilaku

baik” yang variabelnya sedikit. Pada kasus-kasus ini, metode berbasis kalkulus

lebih unggul dari algoritma genetika karena metode ini dengan cepat menemukan

solusi minimum ketika algoritma genetika masih menganalisa bobot dari

populasi awal.

2.1.2 Struktur Umum Algoritma Genetika

Algoritma genetika memberikan suatu pilihan bagi penentuan nilai

parameter dengan meniru cara reproduksi genetika, pembentukan kromosom

baru serta seleksi alami seperti yang terjadi pada makhluk hidup. Algoritma

Genetika secara umum dapat diilustrasikan dalam diagram alir berikut ini:

Page 29: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

12

Gambar 2.1 Diagram Alir Algoritma Genetika (Kusumadewi, 2003)

(Kusumadewi, 2003) Pada algoritma ini, teknik pencarian dilakukan

sekaligus atas sejumlah solusi yang mungkin dikenal dengan istilah populasi.

Individu yang terdapat dalam satu populasi individu yang terdapat dalam satu

populasi disebut dengan istilah kromosom, Charles L Karr (1999). Kromosom ini

merupakan suatu solusi yang masih berbentuk simbol. Populasi awal dibangun

secara acak, sedangkan populasinya merupakan hasil evolusi kromosom-

kromosom melalui iterasi yang disebut dengan istilah generasi. Pada setiap

generasi kromosom akan melalui proses evaluasi dengan menggunakan alat ukur

yang disebut fungsi fitness. Nilai fitness dari suatu kromosom akan menunjukkan

kualitas kromosom dalam populasi tersebut.

2.1.3 Penyandian

Teknik penyandian disini meliputi penyandian gen dari kromosom. Gen

merupakan bagian dari kromosom. Satu gen biasanya akan mewakili satu

variable.

Page 30: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

13

Gen dapat direpresentasikan dalam bentuk : string bit, pohon, array

bilangan real, daftar aturan, elemen permutasi, elemen program, atau representasi

lainnya yang dapat diimplementasikan untuk operator genetika.

Gambar 2.2 Penyandian Biner pada Operator Genetika

(Kusumadewi, 2003)

Demikian juga, kromosom dapat direpresentasikan dengan menggunakan :

String bit : 011, 01101, 11101, dst.

Bilangan Real : 65.65, -67.98. 562.88, dst.

Elemen Program : pemrograman genetika

Struktur lainnya

2.1.4 Operator Genetika

Algoritma genetik merupakan proses pencarian yang heuristik

dan acak sehingga penekanan pemilihan operator yang digunakan sangat

menentukan keberhasilan algoritma genetik dalam menemukan solusi

optimum suatu masalah yang diberikan. Hal yang harus diperhatikan adalah

menghindari terjadinya konvergensi premature, yaitu mencapai solusi optimum

yang belum waktunya, dalam arti bahwa solusi yang diperoleh adalah hasil

optimum lokal.

Page 31: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

14

Operator genetika yang digunakan setelah proses evaluasi tahap pertama

membentuk populasi baru dari generasi sekarang. Operator-operator tersebut

adalah operator seleksi, crossover dan mutasi. (Kusumadewi, 2003). Berikut ini

akan di jelaskan masing-masing operator pada Genetika.

1. Seleksi

Seleksi bertujuan memberikan kesempatan reproduksi yang lebih besar

bagi anggota populasi yang paling fit. Langkah pertama dalam seleksi ini

adalah pencarian nilai fitness. Masing-masing individu dalam suatu wadah

seleksi akan menerima probabilitas reproduksi yang tergantung pada nilai

objektif dirinya sendiri terhadap nilai objektif dari semua individu dalam wadah

seleksi tersebut. Nilai fitness inilah yang nantinya akan digunakan pada tahap

seleksi berikutnya (Kusumadewi, 2003).

Kemampuan algoritma genetik untuk memproduksi kromosom yang

lebih baik secara progresif tergantung pada penekanan selektif (selective

pressure) yang diterapkan ke populasi. Penekanan selektif dapat diterapkan

dalam dua cara. Cara pertama adalah membuat lebih banyak kromosom anak

yang dipelihara dalam populasi dan memilih hanya kromosom-kromosom

terbaik bagi generasi berikut. Walaupun orang tua dipilih secara acak, metode

ini akan terus menghasilkan kromosom yang lebih baik berhubungan dengan

penekanan selektif yang diterapkan pada individu anak tersebut.

Cara lain menerapkan penekanan selektif adalah memilih orang tua yang

lebih baik ketika membuat keturunan baru. Dengan metode ini, hanya kromosom

sebanyak yang dipelihara dalam populasi yang perlu dibuat bagi generasi

Page 32: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

15

berikutnya. Walaupun penekanan selektif tidak diterapkan ke level keturunan,

metode ini akan terus menghasilkan kromosom yang lebih baik, karena adanya

penekanan selektif yang diterapkan ke orangtua.

Ada beberapa metode untuk memilih kromosom yang sering digunakan

antara lain adalah seleksi roda rolet (roulette wheel selection), seleksi ranking

(rank selection) dam seleksi turnamen (tournament selection).

2. Crossover

Crossover (perkawinan silang) bertujuan menambah keanekaragaman

string dalam populasi dengan penyilangan antar-string yang diperoleh dari

sebelumnya. Beberapa jenis crossover tersebut adalah:

1. Crossover 1-titik

Pada crossover dilakukan dengan memisahkan suatu string menjadi dua

bagian dan selanjutnya salah satu bagian dipertukarkan dengan salah satu

bagian dari string yang lain yang telah dipisahkan dengan cara yang

sama. Proses yang demikian dinamakan operator crossover satu titik

seperti diperlihatkan pada gambar berikut:

Tabel 2.1 Contoh Crossover 1 titik

Kromosom Orangtua 1 11001011

Kromosom Orangtua 2 11011111

Keturunan 11001111

2. Crossover 2 Titik

Proses crossover ini dilakukan dengan memilih dua titik crossover.

Kromosom keturunan kemudian dibentuk dengan barisan bit dari awal

Page 33: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

16

kromosom sampai titik crossover pertama disalin dari orang tua pertama,

bagian dari titik crossover pertama dan kedua disalin dari orang tua

kedua, kemudian selebihnya disalin dari orang tua pertama lagi.

Tabel 2.2 Contoh Crossover 2 titik

Kromosom Orangtua 1 11001011

Kromosom Orangtua 2 11011111

Keturunan 11011111

3. Crossover Seragam

Crossover seragam manghasilkan kromosom keturunan dengan menyalin bit-

bit secara acak dari kedua orangtuanya.

Table 2.3 Contoh Crossover Seragam

Kromosom Orangtua 1 11001011

Kromosom Orangtua 2 11011111

Keturunan 11011111

3. Mutasi

Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen

dalam suatu kromosom. Operasi crossover yang dilakukan pada kromosom

dengan tujuan untuk memperoleh kromosom-kromosom baru sebagai kandidat

solusi pada generasi mendatang dengan fitness yang lebih baik, dan lama-

kelamaan menuju solusi optimum yang diinginkan. Akan tetapi, untuk mencapai

hal ini, penekanan selektif juga memegang peranan yang penting. Jika dalam

proses pemilihan kromosom-kromosom cenderung pada kromosom yang

Page 34: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

17

memiliki fitness yang tinggi saja, konvergensi premature, yaitu mencapai solusi

yang optimal lokal sangat mudah terjadi.

Mutasi ini berperan untuk menggantikan gen yang hilang dari populasi

akibat proses seleksi yang memungkinkan munculnya kembali gen yang tidak

muncul pada inisialisasi populasi.

Mutasi bilangan real

Pada mutasi bilangan real, ukuran langkah mutasi biasanya sangat sulit

ditentukan. Ukuran yang kecil biasanya sering mengalami kesuksesan, namun

adakalanya ukuran yang lebih besar akan berjalan lebih cepat.

Mutasi bilangan real

Cara sederhana untuk mendapatkan mutasi biner adalah dengan mengganti satu

atau beberapa nilai gen dari kromosom.

2.1.5 Parameter Genetika

Pengoperasian algoritma genetik dibutuhkan 4 parameter (Juniawati, 2003)

yaitu :

1. Probabilitas Persilangan (Crossover Probability)

Menunjukkan kemungkinan crossover terjadi antara 2 kromosom. Jika tidak

terjadi crossover maka keturunannya akan sama persis dengan kromosom

orangtua, tetapi tidak berarti generasi yang baru akan sama persis dengan

generasi yang lama. Jika probabilitas crossover 100% maka semua

keturunannya dihasilkan dari crossover. Crossover dilakukan dengan

harapan bahwa kromosom yang baru akan lebih baik.

Page 35: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

18

2. Probabilitas Mutasi (Mutation Probability)

Menunjukkan kemungkinan mutasi terjadi pada gen-gen yang menyusun

sebuah kromosom. Jika tidak terjadi mutasi maka keturunan yang dihasilkan

setelah crossover tidak berubah. Jika terjadi mutasi bagian kromosom akan

berubah. Jika probabilitas 100%, semua kromosom dimutasi. Jika

probabilitasnya 0%, tidak ada yang mengalami mutasi.

3. Jumlah Individu

Menunjukkan jumlah kromosom yang terdapat dalam populasi (dalam

satu generasi). Jika hanya sedikit kromosom dalam populasi maka

algoritma genetik akan mempunyai sedikit variasi kemungkinan untuk

melakukan crossover antara orangtua karena hanya sebagian kecil dari

search space yang dipakai. Sebaliknya jika terlalu banyak maka

algoritma genetik akan berjalan lambat.

4. Jumlah Populasi

Menetukan jumlah populasi atau banyaknya generasi yang dihasilkan,

digunakan sebagai batas akhir proses seleksi, persilangan dan mutasi.

2.1.6 Rapid Application Development (RAD)

Rapid Application Development (RAD) adalah model pengembangan

sistem yang melakukan beberapa penyesuaian terhadap System Development Life

Cycle (SDLC) pada beberapa bagian sehingga lebih cepat untuk sampai ke tangan

pengguna sistem. RAD adalah sebuah strategi pengembangan sistem yang

menekankan kecepatan pengembangan melalui keterlibatan pengguna yang

ekstensif dalam konstruksi, cepat, berulang dan bertambah ke serangkaian

Page 36: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

19

prototype atau prototype yang bekerja ke sebuah sistem yang pada akhirnya

berkembang kedalam sistem final.

Pemaparan konsep yang lebih spesifik lagi dijelaskan oleh Pressman

(2005) dalam bukunya, “Software Engineering: A Practition’s Approach”. Ia

mengatakan bahwa RAD adalah proses model perangkat lunak inkremental yang

menekankan siklus pengembangan yang singkat. Model RAD adalah sebuah

adaptasi “kecepatan tinggi” dari model waterfall, di mana perkembangan pesat

dicapai dengan menggunakan pendekatan konstruksi berbasis komponen. Jika

tiap-tiap kebutuhan dan batasan ruang lingkup projek telah diketahui dengan baik,

Proses RAD memungkinkan tim pengembang untuk menciptakan sebuah

“sistem yang berfungsi penuh” dalam jangka waktu yang sangat singkat. Dari

penjelasan Pressman (2012) ini, satu perhatian khusus mengenai metodologi RAD

dapat diketahui, yakni implementasi metode RAD akan berjalan maksimal jika

pengembang aplikasi telah merumuskan kebutuhan dan ruang lingkup

pengembangan aplikasi dengan baik.

Sedangkan menurut Kendall (2010), RAD adalah suatu pendekatan

berorientasi objek terhadap pengembangan sistem yang mencakup suatu metode

pengembangan serta perangkat-perangkat lunak. RAD bertujuan mempersingkat

waktu yang biasanya diperlukan dalam siklus hidup pengembangan sistem

tradisional antara perancangan dan penerapan suatu sistem informasi. Pada

akhirnya, RAD sama-sama berusaha memenuhi syarat-syarat bisnis yang berubah

secara cepat.

Page 37: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

20

Gambar 2.3 Siklus RAD (Kendall, 2010)

2.2 Proses Algoritma Genetika

2.2.1 Individu / Kromosom

Individu yang digunakan dalam proses pembuatan jadwal perkuliahan ini

yaitu diambil dari kode mata kuliah dan kode dosen yang di jadikan gen dari data

yang tela diinput, dan setiap gen mewakili mata kuliah tertentu dan dosen yang

mengajar yang dinyatakan dalam suatu kode dalam bentuk integer.

2.2.2 Fitness

Fitness dari jadwal kuliah dilakukan dengan menghitung jumlah mata

kuliah dan dosen yang mengajar dalam satu waktu. Terdapat tiga fungsi fitness

yaitu fitness, fitnessInduk dan fitnessAnak. Dimana ketiganya mempunyai

algoritma yang sama.

2.2.3 Membangkitkan Populasi Awal

Dari pendefinisian individu yang telah dilakukan diatas, selanjutnya proses

pertama yang dilakukan adalah membangkitkan N individu sesuai dengan jumlah

Page 38: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

21

individu (N) yang dimasukan oleh user dalam bentuk integer dari jadwal kuliah

yang dibangkitkan secara acak.

2.2.4 Seleksi

Proses menyeleksi individu yang bisa dijadikan induk untuk proses

selanjutnya dengan membangkitkan bilangan random sebanyak jumlah fitness dan

memilih individu tersebut sebagai induk berdasarkan nilai fitness yang terpilih.

2.2.5 Crossover

Proses ini menyilangkan induk yang telah terseleksi dengan metode

crossover langsung. Metodenya adalah mengacak 2 bilangan r1 dan r2 dengan r1

adalah batas awal dan r2 adalah batas akhir.

2.2.6 Mutasi

Proses mutasi dalam jadwal mencari 2 gen dalam satu record yang dilakuakn

secara acak.kemudian menukar diantara kedua gen tersebut.

2.3 Tool Yang Digunakan

2.3.1 Microsoft Visual Basic 2010

Menurut (Budi Prayudi 2012) Visual Studio .NET adalah sebuah tools

pengembangan perangkat lunak untuk membangun aplikasi ASP Web, layanan

XML Web, aplikasi desktop, dan aplikasi mobile. Visual Basic .NET, Visual C++

.NET, Visual C# .NET, dan Visual J# .NET semuanya menggunakan Integrated

Development Environment (IDE) atau lingkungan pengembangan terintegrasi

yang sama, yang membolehkan mereka untuk saling berbagi tools dan fasilitas

dalam pembuatan solusi yang memadukan beberapa bahasa (mixed-language

solutions). Selain itu, bahasa-bahasa ini mempengaruhi fungsionalitas dari .NET

Page 39: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

22

Framework, dan menyediakan pengaksesan ke kunci teknologi yang

menyederhanakan proses pengembangan dari aplikasi ASP Web dan layanan

XML Web. Ada banyak perubahan dalam VBNet 2010 ini dibandingkan VB6,

antara lain:

1. Bahasa pemprograman sekarang benar-benar bahasa berbasis objek

(Object Oriented Programming), sedangkan VB6 bukan bahasa berbasis

objek.

2. Aplikasi dan komponen yang ditulis di VBNet 2010 mempunyai akses penuh

ke Net Framework, sedangkan di VB6 tidak dikenal atau tidak digunakan Net

Framework.

3. Semua aplikasi yang dibuat beroperasi dalam manajemen Common Language

Runtime (CLR).

2.3.2 Sql Server

Microsoft SQL Server adalah sebuah sistem manajemen basis data

relasional (RDBMS) produk Microsoft. Bahasa kueri utamanya adalah Transact-

SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan

oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis

yang memiliki basis data berskala kecil sampai dengan menengah, tetapi

kemudian berkembang dengan digunakannya SQL Server pada basis data besar. (

http://microsoft.com )

Menurut Wood, Leiter dan Turley (2007:1-5), SQL Server 2005

merupakan sebuah Relational Database Management System (RDBMS). Pada

SQL Server 2005 merupakan lanjutan atau pengembangan feature-feature dari

Page 40: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

23

produk SQL Server sebelumnya. Sebagai tamabahan SQL Server 2005 juga

mempunyai kemampuan pelaporan yang kaya, analisis data yang kuat, dan data

mining.

Komponen utama dari SQL Server adalah engine basis data. Engine basis

data ini merupakan Online Transaction Processing (OLTP) dari SQL Server.

Engine basis data dari SQL Server terdapat beberapa pengembangan untuk

mendukung scalability, availability, dan kemajuan ( dan juga keamanan). Seperti :

Partisi fisik tabel dan indeks

Pemicu Data Definition Language (DDL)

Lanjutan dari tipe data panjang variable

Tipe data XML

Multiple Active Result Set (MARS)

Penanganan error terstruktur

Menurut Rizky Sotem dalam bukunya yang berjudul Panduan Belajar

SQL Sqerver 2005 Express Edition, SQL Server memiliki keistimewaan, yaitu :

Microsoft SQL Server lebih mudah digunakan dan memiliki lebih banyak fitur.

Pemicunya antara lain adalah dukungan penuh dari Microsoft. Perangkat lunak

yang ditawarkan oleh Microsoft juga menawarkan integrasi yang erat dengan

.NET framework, dan ini tidak dimiliki oleh produk lain.

Microsoft SQL Server memiliki sejumlah fitur dalam restorasi data dan

pemulihan data.

Page 41: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

24

2.4 Pemodelan UML

2.4.1 Pemodelan Sistem Dengan UML

Menurut Munawar (2005:17) UML (Unified Modelling Language) adalah

Salah satu alat bantu yang sangat handal di dunia pengembangan system yang

berorientasi objek. Hal ini di sebabkan karena UML menyediakan bahasa

pemodelan visual yang memungkinkan bagi pengembang sistem untuk membuat

rancangan aplikasi yang mudah dimengerti.

Gambar 2.4 Pemodelan UML (Munawar, 2005)

2.4.2 Use Case

Menurut Munawar (2005:64) Use case adalah deskripsi dari sebuah sistem

dari perspektif pengguna. Use case bekerja dengan cara mendeskripsikan tipikal

interaksi antar user(pengguna) sebuah sistem dengan sistemnya sendiri melalui

sebuah cerita bagaimana sebuah sistem dipakai.

Use case diagram menggambarkan fungsionalitas yang diharapkan dari

sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan

“bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor

dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke

sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor

Page 42: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

25

adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk

melakukan pekerjaan-pekerjaan tertentu.

Use case diagram dapat sangat membantu apabila kita sedang

menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan

clien, dan merancang test case untuk semua feature yang ada pada sistem.

Gambar 2.5 Use Case Diagram (Munawar, 2005)

2.4.3 Activity Diagram

Menurut (Adi Nugroho 2005: 61) dalam buku Rational Rose Untuk

Pemodelan Berorientasi Objek, Activity diagram adalah salah satu cara untuk

memodelkan event – event yang terjadi dalam suatu usecase. Diagram ini juga

bisa di gantikan dengan sejumlah teks. Namun, penggunaan teks terlalu sulit

untuk dipahami, terutama jika aliran – aliran event yang memiliki alternatif

sehingga activity diagram yang bersifat garis lebih mudah di mengerti. Activity

diagram digunakan untuk memodelkan aspek dinamis dari sistem, yang

memperlihatkan aliran kendali dari suatu aktifitas ke aktifitas lainnya.

Page 43: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

26

Gambar 2.6 Activity Diagram (Adi Nugroho,2005)

2.4.4 Sequence Diagram

Menurut (Adi Nugroho 2005) dalam buku Rational Rose Untuk

Pemodelan Berorientasi Objek, sequence diagram adalah iteraksi diagram yang

memperlihatkan event – event yang berurutan sepanjang waktu menjelaskan

secara detail urutan proses yang dilakukan dalam sistem untuk mencapai tujuan

dari use case: interaksi yang terjadi antar class, operasi apa saja yang terlibat,

urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi.

Page 44: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

27

Gambar 2.7 Sequence Diagram (Adi Nugroho, 2005)

Page 45: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

BAB III

ANALISIS DAN PERANCANGAN

3.1 Analisa Sistem dengan Metode Algoritma Genetika

Metode yang digunakan adalah algoritma genetika karena dapat

menyelesaikan permasalahan penjadwalan perkuliahan yang sangat rumit dan

kompleks. Algoritma genetika merupakan metode pencarian dimana dalam proses

encoding (pengkodean) menghasilkan string yang kemudian disebut kromosom

yang terdiri dari sekumpulan bit-bit. Bit-bit ini dikenal sebagai penyusun sebuah

kromosom. Jadi satu kromosom terdiri dari gen-gen. Gen dalam kasus ini adalah

urutan tabel mata kuliah, tabel dosen, jadwal ruangan dan waktu telah dikodekan

terlebih dahulu sehingga membentuk suatu kromosom, berarti bahwa panjang

kromosom akan sesuai dengan jumlah penjadwalan perkuliahan. Sedangkan

individu merupakan kumpulan kromosom, dalam kasus ini satu individu

memiliki satu kromosom. Sedangkan populasi, merupakan kumpulan individu

yang telah ditentukan jumlahnya oleh user.

3.2 Rancangan Sistem

Proses rancangan sistem algoritma genetika pada penjadwalan perkuliahan

terdiri dari proses data input, Pembentukan Kromosom dari Populasi, Evaluasi

Fitness, Seleksi Poses, Perkawinan Silang (Crossevor, Proses Mutasi dan

Kondisi selesai. Rancangan sistem dapat dijelaskan melalui flowchart. Flowchart

adalah bagan-bagan yang menggambarkan langkah-langkah suatu masalah.

Dibawah ini adalah flowchart algoritma genetika untuk menetukan permasalahan

penjadwalan perkulihan.

Page 46: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

29

Gambar 3.1 Diagram Alir Perancangan Sistem (Flowchart)

3.2.1 Use Case

Use case diagram menggambarkan fungsionalitas yang diharapkan dari

sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem dan bukan

“bagaimana”. Sebuah use case mempresentasikan sebuah interaksi antara aktor

dengan sistem.

a = mengambil total jumlah mata kuliah ( 35 kromosom)

b = mengambil total jumlah kode dosen ( 7 kromosom)

c = mengambil jumlah ruang ( 9 kromosom)

d = mengambil total waktu ( 8 kromosom)

e = mengambil total semester (4 koromoson)

Page 47: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

30

Gambar 3.2 Use case diagram

Berdasarkan Use Case pada gambar 3.2 dapat terlihat bahwa terdapat 2

aktor (Petugas, Jurusan dan PA) yang menggunakan aplikasi tersebut. Berikut ini

akan di jelaskan peran-peran aktor Use Case diagram pada Aplikasi Penjadwalan.

Tabel 3.1 Peran Aktor Petugas Penjadwal

Aktor Use Case Deskripsi

Petugas Penjadwal

- Menambah / Merubah

Data Dosen.

- Menambah dan Merubah

data Dosen yang akan

mengajar

- Menambah / Merubah

Data Mata Kuliah

- Menambah dan merubah

data Mata Kuliah yang

akan di Ajarkan

Page 48: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

31

- Menambah / Merubah

Data Ruangan

- Menambah dan Merubah

data Ruangan yang akan

dipakai

- Menamah / Merubah

Data Jam Kuliah

- Menambah dan Merubah

data Jam Kuliah yang

akan digunakan pada

perkuliahan

- Generate Jadwal - Membuat Jadwal

Perkuliahan yang akan

digunakan

- Hasil Jadwal Kuliah - Melihat Jadwal

Perkuliahan yang telah

dibuat

Tabel 3.2 Peran Aktor Jurusan dan Pembimbing Akademik

Aktor Use Case Deskripsi

Jurusan dan

Pembimbing

Akademik

- Hasil Jadwal Kuliah

- Melihat Jadwal

Perkuliahan yang telah

dibuat

Page 49: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

32

3.2.2 Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem

yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang

mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat

menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.

A. Activity Diagram Login

Gambar 3.3 Activity Diagram Login

Berdasarkan gambar 3.3 terlihat aktivitas dari Aplikasi Penjadwalan dengan

Algoritma Genetika, yaitu pertama-tama seorang aktor (petugas) harus membuka

aplikasi, kemudian petugas harus melakukan login, apabila valid maka petugas

akan masuk ke menu utama sedangkan jika tidak valid maka admin harus

melakukan login ulang.

Page 50: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

33

B. Activity Diagram Input Data

Gambar 3.4 Activity Diagram Input Data

Berdasarkan gambar 3.4 terlihat aktivitas untuk menambah dan merubah

data, yaitu pertama-tama petugas harus membuka aplikasi, kemudian petugas

harus melakukan login, apabila valid maka petugas akan masuk ke menu utama,

sedangkan jika tidak valid maka Petugas harus melakukan Login ulang.

Page 51: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

34

Setalah login, petugas akan masuk ke menu utama dan setelah itu petugas

akan memilih menu mana yang akan di input. Setelah memilih menu, petugas bias

memilih apakah akan menambah atau merubah data yang sudah ada.

Activity diagram input data ini berfungsi untuk Menambah atau merubah

data pada data dosen, data mata kuliah, data ruangan, dan data jam kuliah.

C. Activity Diagram Generte Jadwal

Gambar 3.5 Activity Diagram Generate Jadwal (Algoritma Genetika)

Berdasarkan gambar 3.4 terlihat aktivitas untuk menambah dan merubah

data, yaitu pertama-tama petugas harus membuka aplikasi, kemudian petugas

harus melakukan login, apabila valid maka petugas akan masuk ke menu utama,

sedangkan jika tidak valid maka Petugas harus melakukan Login ulang.

Page 52: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

35

Setalah login, petugas akan masuk ke menu utama dan setelah itu petugas

akan memilih menu Generate Jadwal, setelah itu system akan membuat jadwal

secara otomatis sesuai metode yang dipakai yaitu Algoritma Genetika.

D. Activity Diagram Laporan

.

Gambar 3.6 Activity Diagram Laporan

Berdasarkan gambar 3.4 terlihat aktivitas untuk menambah dan merubah

data, yaitu pertama-tama petugas harus membuka aplikasi, kemudian petugas

harus melakukan login, apabila valid maka petugas akan masuk ke menu utama,

sedangkan jika tidak valid maka Petugas harus melakukan Login ulang.

Page 53: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

36

Setalah login, petugas akan masuk ke menu utama dan setelah itu petugas

akan memilih menu Laporan. Setelah memilih menu petugas bias melihat laporan

yang ada, yaitu laporan Jadwal, laporan Dosen dan laporan Mata kuliah.

3.2.3 Sequence Diagram

Sequence Diagram digunakan untuk menggambarkan skenario atau

rangkaian langkah-langkah yang dilakukan sebagai sebuah respon dari suatu

kejadian/event untuk menghasilkan output tertentu. Berikut Sequence diagram

yang terdapat pada aplikasi Penjadwalan Perkuliahan dengan Algoritma Genetika.

A. Sequence diagram login

Pada sequence diagram login di bawah ini, petugas akan memasukan

username dan password. Jika username dan password valid, maka petugas akan

masuk ke menu utama. Tetapi jika username dan password tidak cocok, maka

petugas akan diminta untuk mengisi kembali.

Gambar 3.7 Sequence diagram Login

Page 54: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

37

B. Sequence diagram Input Data

Pada sequence diagram input data di bawah ini, petugas akan menambah

data yang ingin di masukan ke dalam database seperti data Dosen, Mahasiswa,

Mata Kuliah, Ruangan, dan Jam mata kuliah. Seluruh data yang disimpan ke

database akan ditampilkan di datagrid yang ada di masing-masing form.

Gambar 3.8 Sequence Diagram Input Data

C. Sequence diagram Laporan

Pada sequence diagram laporan dibawah ini, petugas, pembimbing

akademik maupun pihak jurusan masuk ke form laporan, kemudian memilih

laporan apa yang akan dicetak.

Page 55: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

38

Gambar 3.9 Sequence Diagram Laporan

3.3 Rancangan Database

Database sangat dibutuhkan dalam pembuatan aplikasi ini terutama pada

penyimpanan data-data yang dibutuhkan dalam membuat jadwal perkuliahan.

Berikut merupakan rancangan database yang dibutuhkan pada pembuatan aplikasi

pembuatan jadwal perkuliahan

3.3.1 Tabel Login

Tabel login digunakan untuk menyinpan data siapa saja yang erhak untuk

menggunakan aplikasi membuat jadwal perkuliahan ini.

Gambar 3.10 Struktur Tabel Login

Page 56: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

39

3.3.2 Tabel Dosen

Table dosen digunakan untuk menyimpan informasi tentang data dosen

yang akan mengajar di jurusan Teknik Informatika Universitas Darma Persada.

Gambar 3.11 Struktur Tabel Dosen

3.3.3 Tabel Mata Kuliah

Tabel mata kuliah digunakan untuk menyimpan informasi tentang data

mata kuliah yang akan di ajarkan di jurusan Teknik Informatika Universitas

Darma Persada.

Gambar 3.12 Struktur Tabel Mata Kuliah

Page 57: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

40

3.3.4 Tabel Hari

Table hari digunakan untuk menyimpan informasi tentang data hari-hari

apa saja yang akan digunakan dalam kegiatan perkuliahan.

Gambar 3.13 Struktur Tabel Hari

3.3.5 Tabel Jam

Table jam digunakan untuk menyimpan informasi tentang data jam-jam

berapa saja yang akan digunakan dalam kegiatan perkuliahan.

Gambar 3.14 Struktur Tabel Jam

3.3.6 Tabel Ruang

Table ruang digunakan untuk menyimpan informasi tentang data ruang-

ruang mana saja yang akan digunakan dalam kegiatan perkuliahan.

Page 58: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

41

Gambar 3.15 Struktur Tabel Ruang

3.3.7 Tabel Pengampu

Tabel pengampu digunakan untuk menyimpan informasi tentang mata

kuliah yang dipertanggung jawabkan kepada dosen untuk kegiatan perkuliahan.

Gambar 3.16 Struktur Tabel Pengampu

3.3.8 Tabel Kesediaan

Tabel kesediaan digunakan untuk menyimpan informasi tentang hari-hari

dimana dosen berhalangan / tidak bias mengajar perkuliahan.

Page 59: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

42

Gambar 3.17 Struktur Tabel Kesediaan

3.3.9 Tabel Jadwal

Tabel jadwal digunakan untuk menyimpan informasi tentang jadwal

perkuliahan yang telah dibuat dan akan digunakan dalam perkuliahan.

Gambar 3.18 Struktur Tabel Jadwal

3.4 Diagram Relasi Database

Diagram yang menggambarkan relasi / hubungan antara setiap tabel yang

saling berinteraksi dalam database.

Page 60: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

43

Gambar 3.19 Relasi Tabel Didalam Database

3.5 Rancangan Tampilan

3.5.1 Menu Login

Gambar 3.20 Rancangan Menu Login

Gambar 3.19 merupakan tampilan menu login dimana petugas login disini

untuk masuk ke dalam menu utama.

Keterangan : : Garis relasi antar table

: Perintah INNER JOIN antar table

Page 61: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

44

3.5.2 Menu Utama

Gambar 3.21 Rancangan Menu Utama

Gambar 3.20 merupakan tampilan menu utama dimana terdapat menu-

menu yg bias dipilih petugas dalam menjalankan aplikasi seperti, data dosen, mata

kuliah, ruang, jam & hari, dan juga laporan.

3.5.3 Menu Input Data Dosen

Gambar 3.22 Rancangan Menu Dosen

Page 62: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

45

Gambar 3.21 Merupakan tampilan menu dosen dimana petugas mengolah

segala informasi tentang dosen, seperti NIDN, nama, alamat dan telepon.

3.5.4 Menu Input Data Mata Kuliah

Gambar 3.23 Rancangan Menu Mata Kuliah

Gambar 3.22 merupakan tampilan menu mata kuliah dimana petugas

mengolah segala informasi tentang mata kuliah, seperti kode mata kuliah, nama

mata kuliah, sks, semester dan kategori (teori & praktek).

Page 63: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

46

3.5.5 Menu Input Data Ruang

Gambar 3.24 Rancangan Menu Ruang Kuliah

Gambar 3.23 merupakan tampilan menu ruang kuliah dimana petugas

mengolah segala informasi tentang ruang yang akan dipakai untuk perkuliahan,

seperti nama ruang, kapasitas ruang, dan jenis ruang.

3.5.6 Menu Input Data Hari & Jam

Gambar 3.25 Rancangan Menu Hari & Jam

Page 64: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

47

Gambar 3.24 merupakan tampilan menu hari & jam dimana petugas

mengolah segala informasi tentang hari & jam yang digunakan untuk perkuliahan,

seperti kode hari, nama hari, sesi jam kuliah dan range jam kuliah.

3.5.7 Menu Input Dosen Pengampu

Gambar 3.26 Rancangan Menu Dosen Pengampu

Gambar 3.25 merupakan tampilan menu dosen pengampu dimana petugas

mengolah segala informasi tentang matakuliah yang akan di ajarkan oleh dosen.

Page 65: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

48

3.5.8 Menu Input Kesediaan Dosen

Gambar 3.27 Rancangan Menu Kesediaan Dosen

Gambar 3.26 merupakan rancangan menu kesediaan dosen dimana petugas

mengolah informasi tentang hari dimana dosen tidak bisa mengajar.

3.5.9 Menu Input Generte Jadwal

Gambar 3.28 Rancangan Menu Generate Jadwal

Page 66: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

49

Gambar 3.27 merupakan rancangan menu generate jadwal dimana petugas

membuat jadwal perkuliahan yang akan digunakan dalam perkuliahan.

3.6 Rancangan Laporan

Gambar 3.29 Rancangan Menu Laporan

Gambar 3.28 merupakan rancangan menu laporan diamana seluruh

pengguna aplikasi ini bisa melihat laporan-laporan yang telah dibuat oleh petugas,

seperti laporan data dosen dan laporan jadwal perkuliahan.

Page 67: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

BAB IV

IMPLEMENTASI SISTEM DAN EVALUASI SISTEM

4.1 Implementasi Sistem

Pada bab ini akan menjelaskan hasil dari Aplikasi Optimasi Penjadwalan

Perkuliahan dengan Metode Algoritma Genetika. Sesuai dengan alanisis-analisis

kebutuhan yang sudah didapatkan, dengan menerapkan teori yang sudah

ditentukan dalam membangun aplikasi dengan Algoritma genetika. Sekaligus

untuk menjelaskan bagaimana system ini berjalan dan digunakan.

Implementasi dari Aplikasi Optimasi Penjadwalan Perkuliahan dengan

Metode Algoritma Genetika terbagi atas Hardware dan Software.

4.1.1 Hardware

Perancangan dan uji coba ini dilakukan dengan menggunakan sebuah

computer portable dengan konfigurasi sebagi berikut:

Perangkat Leptop Intel Core i3-2370M

Memory RAM 2 GB

Hardisk 500 GB

Sistem operasi Windows 7 Ultimate 32bit

4.1.2 Software

Rancangan perangkat lunak yang digunakan dalam membuat aplikasi ini

adalah menggunakan Microsoft Visual Studio 2010 sebagai sarana bahasa

pemrograman yang berbasi windows, dan SQL Server 2008 R2 sebagai perangkat

lunak sistem database, serta SAP Crystal Report sebagai perangkat lunak untuk

membuat laporan.

Page 68: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

51

4.2 Implementasi Aplikasi

4.2.1 Rancangan Tampilan Login

Pada saat aplikasi dibuka, maka tampilan pertama yang muncul adalah

tampilan login. Petugas harus mengisi username dan password untuk masuk ke

menu utama. Di bawah ini adalah tampilan login.

Gambar 4.1 Tampilan Login

4.2.2 Rancangan Tampilan Menu Utama Admin

Setelah login, maka akan muncul tampilan menu utama dan akan muncul

pula status login sebagai administrator. Dalam menu utama sebagai administrator,

admin dapat mengakses semua fitur yang ada di dalam aplikasi. Di bawah ini

adalah tampilan menu utama administrator.

Page 69: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

52

Gambar 4.2 Tampilan Menu Utama Administrator

4.2.3 Rancangan Tampilan Menu Utama User

Untuk pengguna / user selain admin, dapat pula mengkases menu utama

yang dikhususkan untuk pengguna / user selain admin. Dalam menu utama

pengguna / user hanya terdapat menu laporan yang dapat diakses, pada menu

laporan tersebut terdapat sub menu seperti laporan jadwal dan laporan data dosen.

Di bawah ini adalah tampilan menu utam pengguna / user.

Page 70: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

53

Gambar 4.3 Tampilan Menu Utama User

4.2.4 Rancangan Tampilan Input Data Dosen

Ketika login sebagai admin, dan admin memilih menu Data di menu

utama, maka terdapat pilihan menu lain seperti dosen, mata kuliah, ruang, hari &

jam. Setelah admin memilih menu dosen, maka akan muncul tampilan yang

berfungsi untuk menginput segala informasi tentang dosen. Di bawah ini adalah

tampilan input data dosen.

Gambar 4.4 Tampilan Input Data Dosen

Page 71: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

54

4.2.5 Rancangan Tampilan Input Mata Kuliah

Ketika login sebagai admin, dan admin memilih menu Data di menu

utama, maka terdapat pilihan menu lain seperti dosen, mata kuliah, ruang, hari &

jam. Setelah admin memilih menu mata kuliah, maka akan muncul tampilan yang

berfungsi untuk menginput segala informasi tentang mata kuliah. Di bawah ini

adalah tampilan input mata kuliah.

Gambar 4.5 Tampilan Menu Data Mata Kuliah

4.2.6 Rancangan Tampilan Input Data Ruang

Ketika login sebagai admin, dan admin memilih menu Data di menu

utama, maka terdapat pilihan menu lain seperti dosen, mata kuliah, ruang, hari &

jam. Setelah admin memilih menu ruang, maka akan muncul tampilan yang

berfungsi untuk menginput segala informasi tentang ruang yang akan dipakasi

dalam kegiatan perkuliahan. Di bawah ini adalah tampilan input data ruang.

Page 72: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

55

Gambar 4.6 Tampilan Menu Data Ruang

4.2.7 Rancangan Tampilan Input Data Hari & Jam

Ketika login sebagai admin, dan admin memilih menu Data di menu

utama, maka terdapat pilihan menu lain seperti dosen, mata kuliah, ruang, hari &

jam. Setelah admin memilih menu hari & jam, maka akan muncul tampilan yang

berfungsi untuk menginput segala informasi tentang hari & jam yang akan

digunakan dalam perkuliahan. Di bawah ini adalah tampilan input data ruang &

jam.

Page 73: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

56

Gambar 4.7 Tampilan Menu Data Hari & Jam

4.2.8 Rancangan Tampilan Input Data Pengampu

Ketika login sebagai admin, dan admin memilih menu dosen, maka akan

terdapat pilihan menu lain yaitu pengampu dan kesediaan. Setelah admin memilih

menu pengampu, maka akan muncul tampilan yang berfungsi untuk menginput

segala informasi tentang data dosen dan mata kuliah yang akan diajarkan oleh

dosen yang bersangkuta. Di bawah ini adalah tampilan input data pengampu.

Page 74: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

57

Gambar 4.8 Tampilan Menu Data Pengampu

4.2.9 Rancangan Tampilan Input Data Kesediaan

Ketika login sebagai admin, dan admin memilih menu dosen, maka akan

terdapat pilihan menu lain yaitu pengampu dan kesediaan. Setelah admin memilih

menu kesediaan, maka akan muncul tampilan yang berfungsi untuk menginput

segala informasi tentang data kesediaan dosen mengajar dalam waktu 1 minggu.

Di bawah ini adalah tampilan input data kesediaan.

Page 75: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

58

Gambar 4.9 Tampilan Menu Data Kesediaan

4.2.10 Rancangan Tampilan Generate Jadwal

Ketika login sebagai admin, dan admin memilih menu jadwal, maka hanya

akan terdapat satu menu, yaitu menu proses. Setelah admin memilih menu proses

maka akan muncul tampilan yang berfungsi untuk membuat jadwal yang akan

digunakan dalam perkuliahan pada satu tahun pelajaran. Di bawah ini adalah

tampilan proses pembuatan jadwal.

Gambar 4.10 Tampilan menu Generate Jadwal

Page 76: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

59

4.2.11 Rancangan Tampilan Laporan

Ketika memilih menu laporan, maka akan terdapat pilihan menu lain, yaitu

menu jadwal dan dosen. Setelah memilih salah satu dari menu laporan jadwal atau

dosen, maka akan muncul tampilan yang berfungsi untuk melihat laporan hasil

generate jadwal dan laporan data dosen. Di bawah ini adalah tampilan laporan

jadwal dan dosen.

A. Laporan Jadwal

Gambar 4.11 Tampilan Laporan Jadwal

B. Laporan Data Dosen

Gambar 4.12 Tampilan Laporan Dosen

Page 77: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

60

4.3 Sekilas Program

4.3.1 Membangkitkan populasi awal

Adapun proses algortima genetika pertama yang dilakukan adalah

membangkitkan populasi awal. Dimana user dalam bentuk integer dari data

jadwal perkuliahan yang akan diambil dan dibangkitkan secara acak. Berikut

coding untuk membangkitkan populasi awal :

Dim jumkelas As Integer = 10

Dim jumSemester As Integer Dim arSks(jumkelas) As Integer

Dim arFitness(jumkelas) As Integer

Dim arSemester(jumkelas) As String Dim ar(10, 40) As String

cmd = New SqlCommand("Select DISTINCT semester FROM TblPengampu ",

koneksi.koneksi) rd = cmd.ExecuteReader

Dim semester As String

Dim m As Integer m = 0

While rd.Read()

semester = rd("semester") arSemester(m) = semester

Console.WriteLine("Semester-" + semester)

cmd2 = New SqlCommand("Select * FROM TblPengampu where semester ='" & semester & "'", koneksi.koneksi)

rd2 = cmd2.ExecuteReader

Dim kode_dosen, kode_mk, kode As String

Dim n As Integer

n = 0

While rd2.Read() kode_dosen = rd2("kode_dosen")

kode_mk = rd2("kode_mk")

kode = rd2("kode") Dim js, i As Integer

js = getSks(kode_mk)

For i = 1 To js

'Console.WriteLine(kode)

ar(m, n) = kode_mk

Console.WriteLine(" =[" & ar(m, n) & "]")

n = n + 1 Next i

End While

arSks(m) = n m = m + 1

End While

jumSemester = m

Page 78: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

61

4.3.2 Menghitung nilai fitness

Proses kedua yang dilakukan adalah menghitung nilai fitness dari

setiap individu dengan rumus dan algoritma yang telah ditetapkan dalam

algortima genetika. Berikut coding yang digunakan:

4.3.3 Crossover

Proses ini menyilangkan induk yang telah terseleksi dengan metode

crossover langsung. Metodenya adalah mengacak 2 bilangan r1 dan r2 dengan r1

J = jumlah sks awal yang telah dibangkitkan

Jj = sksmax = jumlah maksimal sks yang akan diolah

Fitness = fitness +1

Keterangan :

Jumlah fitness akan disimpan dalam array dan akan dicetak dalam arFitness(j)

Dim jj, fitness As Integer

For j = 0 To jumSemester - 1

Console.WriteLine("Fitness semester " & arSemester(j) & ":" & arSks(j))

fitness = 0

For jj = 0 To jumSemester - 1 If Not j = jj Then

Dim sksmax As Integer

sksmax = arSks(jj) If arSks(j) < arSks(jj) Then

sksmax = arSks(j)

End If

For k = 0 To sksmax - 1 Dim data1 As String = ar(j, k)

Dim data2 As String = ar(jj, k)

Dim ar1() As String = data1.Split(":") Dim ar2() As String = data2.Split(":")

If data1(0) = data2(0) Then

fitness = fitness + 1 End If

Next k

End If

Next jj arFitness(j) = fitness

Console.WriteLine("================Sebesar " & arFitness(j))

Next j

M = 0 (populasi semester awal)

N = 0 ( populasi sks awal)

Js = 0 (data sks yang di bangkitkan)

Ar(m,n) = kode mata kuliah yang disimpan dalam array

n = n + 1

m = m + 1

Page 79: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

62

adalah batas awal dan r2 adalah batas akhir, yang selanjutnya menukan gen r1

sampai r2 pada record. Berikut coding yang digunakan.

4.3.4 Mutasi

Proses mutasi adalah untuk mencari 2 gen dalam satu record yang dilakukan

secara acak. Kemudian menukar diantar kedua gen tersebut. Berikut coding yang

digunaka :

For j = 0 To jumSemester - 1 Console.WriteLine("Mutasi-SMST " & arSemester(j) & " :" &

arSks(j) & " sks")

For k = 0 To arSks(j) - 1 Dim r1, r2 As Integer

Dim ran As New Random

Dim a As String r1 = ran.Next(arSks(j) + 1)

r2 = ran.Next(arSks(j) + 1)

a = ar(j, r1) ar(j, r1) = ar(j, k)

ar(j, k) = a

DgJadwal.Rows.Add()

Console.WriteLine(ar(j, r1))

r1 = acak (jumlah jam)

r2 = acak (jumlah jam)

dummy = anak (m,j,k)

anak (j,k) = anak (j, r1 + (r2-r1))

anak (j, r1 + (r2 – r1)) = dummy

For j = 0 To jumSemester - 1 Console.WriteLine("Cross-SMST " & arSemester(j) & " :" &

arSks(j) & " sks")

For k = 0 To arSks(j) - 1 Dim r1, r2 As Integer

Dim ran As New Random

r1 = ran.Next(arSks(j))

r2 = ran.Next(arSks(j) - r1) Dim dummy As String

dummy = ar(j, k)

ar(j, k) = ar(j, r1 + (r2 - r1)) ar(j, r1 + (r2 - r1)) = dummy

Console.WriteLine(" :" & ar(j, k))

Next k Next j

Page 80: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

63

4.4 Analisis hasil

Pengujian dilakukan dengan melakukan beberapa percobaan pada aplikasi

untuk membuat jadwal perkuliahan dengan algoritma gentika. Dari percobaan

yang dilakukan untuk pembuatan jadwal, dilakukan 2 kali proses pembuatan.

Berikut hasil yang di peroleh.

Tabel 4.1 Tabel Hasil Proses Pertama

Hari Kode

Mata

Kuliah

Jam Mata Kuliah Sks Seme

ster Dosen Ruang

Senin DF4140-

01

08:00-

10:30

Knowledge

Management 3 8

Bagus Tri

Mahardika,

MMSI

FT401

Senin IF1051-

01

08.00-

10.30

Prak. Struktur

Data 3 2

Suzuki Syofian,

M.Kom FT208

Senin IF2033-

02

10.30-

12:00

Prak. Basis

Data 1 2

Herianto, S.Pd,

MT FT305

Senin IF2051-

01

10.30-

12:00 Statistika 3 2

Bagus Tri

Mahardika,

MMSI

FT402

Senin IF3242-

01

13:30-

16:00

Mobile

Computing 3 6

Adam Arif

Budiman, ST,

M.Kom

FT403

Senin DF3182-

01

13:30-

16:00

Prak.

Pemrograman

Visual Lanjut

4 6

Timor

Setiyaningsih,

ST, M.Ti

FT305

Selasa IF1060-

01

08:00-

10:30 Struktur Data 2 2

Suzuki Syofian,

M.Kom FT404

Selasa DF4142-

01

08.00-

10.30

Manajemen

Jaringan 3 4

Herianto, S.Pd,

MT FT403

Selasa UN2110- 10.30- Monozukuri 3 4 Linda Nur FT404

r1 = acak(jumlah sks)

r2 = acak(jumlah sks)

a = anak(j, r1)

anak(j, r1) = anak (j, k)

anak(j, k) = a

m = m + 1

Page 81: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

64

01 10.30 Data M.Kom

Senin IF2033-

02

10.30-

12:00

Prak. Basis

Data 1 2

Herianto, S.Pd,

MT FT305

Senin IF2051-

01

10.30-

12:00 Statistika 3 2

Bagus Tri

Mahardika,

MMSI

FT402

Senin IF3242-

01

13:30-

16:00

Mobile

Computing 3 6

Adam Arif

Budiman, ST,

M.Kom

FT403

Senin DF3182-

01

13:30-

16:00

Prak.

Pemrograman

Visual Lanjut

4 6

Timor

Setiyaningsih,

ST, M.Ti

FT305

Selasa IF1060-

01

08:00-

10:30 Struktur Data 2 2

Suzuki Syofian,

M.Kom FT404

Selasa DF4142-

01

08.00-

10.30

Manajemen

Jaringan 3 4

Herianto, S.Pd,

MT FT403

Selasa UN2110-

01

10.30-

12:00 Monozukuri 3 4

Linda Nur

Afifa, ST., MT. FT404

Selasa IF4052-

01

10.30-

12:00

Komputer dan

Masyarakat 4 4

Bagus Tri

Mahardika,

MMSI

FT403

Selasa UN1022-

19P-TRL

13:30-

16:00

Bahasa Inggris

II 4 4

Suzuki Syofian,

M.Kom FT406

Selasa IF2052-

01

13:30-

16:00

Mikroprosesor

& Bhs. Rakitan 3 4

Timor

Setiyaningsih,

ST, M.Ti

FT405

Rabu DF3172-

01

08:00-

10:30

Pemrograman

Visual Lanjut 3 6

Timor

Setiyaningsih,

ST, M.Ti

FT403

Rabu UN1040-

01

08.00-

10.30 PPKN 3 2

Aji Setiawan,

MMSI

FT404

Rabu IF3081-

01

10.30-

12:00

Interpersonal

Skill 3 6

Herianto, S.Pd,

MT FT401

Rabu FT1082-

01

10.30-

12:00 Kalkulus II 3 2

Aji Setiawan,

MMSI FT402

Rabu IF2252-

01

13:30-

16:00

Prak.

Pemrograman

Internet

3 2 Herianto, S.Pd,

MT FT305

Rabu UN1031-

01P-TRL

13:30-

16:00

Bahasa Jepang

II 3 4

Linda Nur

Afifa, ST., MT. FT404

Kamis DF3162-

01

08:00-

10:30

Prak. Sql

Lanjut 2 6

Herianto, S.Pd,

MT FT306

Kamis IF3130-

01

08.00-

10.30

Teori Bahasa

dan Automata 3 4

Timor

Setiyaningsih,

ST, M.Ti

FT405

Kamis IF3023-

01

10.30-

12:00

Arsitektur &

Organisasi

Komputer

3 2

Timor

Setiyaningsih,

ST, M.Ti

FT401

Kamis DF3152-

01

10.30-

12:00 Sql Lanjut 3 6

Herianto, S.Pd,

MT FT406

Kamis IF2090-

01

13:30-

16:00

Interaksi

Manusia &

Komputer

3 4

Bagus Tri

Mahardika,

MMSI

FT406

Page 82: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

65

Kamis IF2053-

01

13:30-

16:00

Prak.

Mikroprosesor

& Bhs. Rakitan

3 4

Timor

Setiyaningsih,

ST, M.Ti

FT305

Jumat IF3252-

01

08:00-

10:30

Prak. Mobile

Computing 4 6

Adam Arif

Budiman, ST,

M.Kom

FT306

Jumat IF2242-

01

08.00-

10.30

Pemrograman

Internet 3 2

Herianto, S.Pd,

MT FT404

Jumat IF2231-

01

10.30-

12:00

Sistem

Informasi

Enterprise

3 4

Timor

Setiyaningsih,

ST, M.Ti

FT404

Jumat IF2032-

01

10.30-

12:00 Basis Data 2 2

Adam Arif

Budiman, ST,

M.Kom

FT406

Jumat UN1032-

08P-TRL

13:30-

16:00 Bahasa Jepang 3 2

Linda Nur

Afifa, ST., MT. FT404

Jumat UN1021-

02P-TRL

13:30-

16:00 Bahasa Inggris 2 2

Suzuki Syofian,

M.Kom FT406

Tabel 4.2 Tabel Hasil Proses Kedua

Hari

Kode

Mata

Kuliah

Jam Mata Kuliah Sks Semes

ter Dosen Ruang

Senin DF4140-

01

08:00-

10:30

Knowledge

Management 3 8

Bagus Tri

Mahardika,

MMSI

FT305

Senin DF3172-

01

08.00-

10.30

Pemrograman

Visual Lanjut 2 2

Suzuki

Syofian,

M.Kom

FT402

Senin IF3023-

01

10.30-

12:00

Arsitektur &

Organisasi

Komputer

3 2

Timor

Setiyaningsi

h, ST, M.Ti

FT403

Senin IF3081-

01

10.30-

12:00

Interpersonal

Skill 2 6

Herianto,

S.Pd, MT FT401

Senin DF3182-

01

13:30-

16:00

Prak.

Pemrograman

Visual Lanjut

1 6

Timor

Setiyaningsi

h, ST, M.Ti

FT305

Senin IF1051-

01

13:30-

16:00

Prak. Struktur

Data 1 2

Suzuki

Syofian,

M.Kom

FT208

Selasa IF2052-

01

08:00-

10:30

Mikroprosesor

& Bhs. Rakitan 3 4

Timor

Setiyaningsi

h, ST, M.Ti

FT403

Selasa IF4052-

01

08.00-

10.30

Komputer dan

Masyarakat 2 4

Bagus Tri

Mahardika,

MMSI

FT404

Selasa IF2053- 10.30- Prak. 1 4 Timor FT306

Page 83: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

66

01 12:00 Mikroprosesor

& Bhs. Rakitan

Setiyaningsi

h, ST, M.Ti

Selasa DF4142-

01

10.30-

12:00

Manajemen

Jaringan 3 4

Herianto,

S.Pd, MT FT404

Selasa IF3242-

01

13:30-

16:00

Mobile

Computing 2 6

Adam Arif

Budiman,

ST, M.Kom

FT401

Selasa UN2110-

01

13:30-

16:00 Monozukuri 2 4

Linda Nur

Afifa, ST.,

MT.

FT402

Rabu IF2252-

01

08:00-

10:30

Prak.

Pemrograman

Internet

1 2 Herianto,

S.Pd, MT FT305

Rabu UN1032-

08P-TRL

08.00-

10.30 Bahasa Jepang 2 2

Linda Nur

Afifa, ST.,

MT.

FT405

Rabu DF3152-

01

10.30-

12:00 Sql Lanjut 2 6

Herianto,

S.Pd, MT

FT401

Rabu IF1060-

01

10.30-

12:00 Struktur Data 2 2

Suzuki

Syofian,

M.Kom

FT406

Rabu UN1040-

01

13:30-

16:00 PPKN 3 2

Aji

Setiawan,

MMSI

FT406

Rabu DF3162-

01

13:30-

16:00

Prak. Sql

Lanjut 1 6

Herianto,

S.Pd, MT FT305

Kamis IF3130-

01

08:00-

10:30

Teori Bahasa

dan Automata 3 4

Timor

Setiyaningsi

h, ST, M.Ti

FT404

Kamis IF3252-

01

08.00-

10.30

Prak. Mobile

Computing 1 6

Adam Arif

Budiman,

ST, M.Kom

FT306

Kamis FT1082-

01

10.30-

12:00 Kalkulus II 3 2

Aji

Setiawan,

MMSI

FT405

Kamis IF2090-

01

10.30-

12:00

Interaksi

Manusia &

Komputer

3 4

Bagus Tri

Mahardika,

MMSI

FT406

Kamis IF2033-

02

13:30-

16:00

Prak. Basis

Data 1 2

Herianto,

S.Pd, MT FT305

Kamis IF2231-

01

13:30-

16:00

Sistem

Informasi

Enterprise

3 4

Timor

Setiyaningsi

h, ST, M.Ti

FT401

Jumat IF2242-

01

08:00-

10:30

Pemrograman

Internet 2 2

Herianto,

S.Pd, MT FT402

Jumat UN1022-

19P-TRL

08.00-

10.30

Bahasa Inggris

II 2 4

Suzuki

Syofian,

M.Kom

FT404

Page 84: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

67

Jumat UN1021-

02P-TRL

10.30-

12:00 Bahasa Inggris 2 2

Suzuki

Syofian,

M.Kom

FT404

Jumat IF2032-

01

10.30-

12:00 Basis Data 2 2

Adam Arif

Budiman,

ST, M.Kom

FT406

Jumat UN1031-

01P-TRL

13:30-

16:00

Bahasa Jepang

II 2 4

Linda Nur

Afifa, ST.,

MT.

FT404

Jumat IF2051-

01

13:30-

16:00 Statistika 3 2

Bagus Tri

Mahardika,

MMSI

FT406

4.5 Evaluasi system

Setelah dipersentesikan kepada Ketua Jurusan Teknik Informatika dan 3

orang responden, maka dilakukan beberapa evaluasi. Banyak yang memberi

masukan yang merupakan suatu tahap yang penting untuk aplikasi yang telah

dibuat, yaitu:

1. Data mata kuliah agar ditambahkan lagi

2. Menu proses agar lebih ditata

3. Istilah dibuat lebih sederhana

4.4.1. Evaluasi Per Modul Aplikasi

Tabel 4.3 Tabel Hasil Pengujian Per Modul Aplikasi

No Nama Modul Hasil

1. Form login Berjalan

Page 85: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

68

2. Form input data dosen Berjalan

3. Form input data mata kuliah Berjalan

4. Form lihat data ruang Berjalan

5. Form input jam & hari Berjalan

6. Form input dosen pengampu Berjalan

7. Form input ketidaksediaan dosen Berjalan

8. Form prosses generate jadwal Berjalan

9. Laporan jadwal kuliah Berjalan

10. Laporan data dosen Berjalan

Page 86: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari hasil analisa yang telah dilakuka pada bab sebelumnya, dapat diambil

beberapa poin kesimpulan sebagai berikut :

1. Algoritma genetika dapat digunakan untuk mengoptimalkan penyusunan

jadwal perkuliahan di jurusan Teknik Informatika Universitas Darma Persada.

2. Dalam mengoptimalkan penyusunan jadwal perkuliahan diperlukan empat

parameter antara lain jumlah populasi, jumlah generasi, crossover dan mutasi.

Besar kecilnya masing-masing parameter sangat mempengaruhi jadwal

perkuliahan yang dihasilkan. Semakin besar nilai parameternya maka semakin

baik pula nilai fitness yang dihasilkan atau jadwal perkuliahan yang dihasilkan

semakin optimal.

3. Kelebihan dari metode algoritma genetika adalah terletak pada pendefinisian

fitness yang beragam dan dapat ditambah dengan syarat-syarat yang diinginkan

sebagai tambahan fungsi fitness.

Page 87: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

70

5.2 Saran

Untuk pengembangan sistem yang dibuat, maka diperlukan saran yang

dapat membantu proses tersebut, diantaranya adalah :

1. Data yang dikumpulkan untuk membuat jadwal perkuliahan agar ditambah

lagi. Agar ketika membuat jadwal yang lebih kompleks, hasil yang di dapat

lebih optimal.

2. Metode yang telah digunakan dapat diaplikasikan untuk permasalahan

penjadwalan lainnya, seperti penjadwalan perkuliahan dengan data yang jauh

lebih kompleks dengan batasan masalah yang jauh lebih kompleks seperti

jadwal penerbangan pesawat.

Page 88: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

Daftar Pustaka

Desiani, A. dan Arhami, M. 2006. “Konsep Kecerdasan Buatan”. Yogyakarta :

Andi.

Gen, Mitsuo dan Runwei Cheng. 1997 “Genetic Algoritm and Engineering

Design”. New York : John Wiley & Sons Inc.

Goldberg, D.E. 1989 . “Genetik Algorithms In Search, Optimization And Machine

Learning”. New York: Addison-Wesley Publishing.

Kusumadewi, S. 2003. “Artificial Intelligence (Teknik dan Aplikasinya)”.

Yogyakarta: Graha Ilmu.

Kusumadewi, S., dan Purnomo, H. 2005. “Penyelesaian Masalah Optimasi

Dengan Teknik-Teknik Heuristik”. Yogyakarta : Graha Ilmu.

Munawar. 2005. “Pemodelan Visual Menggunakan UML”. Yogyakarta : Graha

Ilmu.

Nugroho Adi. 2005. “Rational Rose Untuk Pemodelan Berorientasi Objek”.

Bandung : Informatika.

Prayudi, Budi, Eri Mardiani, & Nur Rahmansyah. 2012. “Aplikasi Penjualan

Menggunakan VB.NET”. Jakarta : PT Elex Media Komputindo

Risky, Soetam. 2008. “Panduan Belajar SQL Server 2005 Express Edition”.

Surabaya : Prestasi Pustaka.

Page 89: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

Whitten, J.L. & Bentley, L.D. 2004. “System Analysis & Design Methods: Sixth

Edition”. New York: Mc.Graw-Hill.

Page 90: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

Lampiran Coding

1. Modul Koneksi

Imports System.Data

Imports System.Data.SqlClient

Imports System.Security.SecurityException

Module koneksi

Public da As SqlDataAdapter

Public ds As DataSet

Public cmd As SqlCommand

Public cmd2 As SqlCommand

Public rd2 As SqlDataReader

Public rd As SqlDataReader

Public cmd3 As SqlCommand

Public rd3 As SqlDataReader

Public str As String

Public Function koneksi() As SqlConnection

Dim supernothing As New SqlConnection

supernothing = New SqlConnection("server=UZY-

PC\SQLEXPRESS; database=Penjadwalan;

Connect Timeout=200; pooling='true'; Max Pool

Size=200; trusted_Connection=true")

supernothing.Open()

Return (supernothing)

End Function

End Module

2. Form Login

Imports System.Data.Sql

Imports System.Data.SqlClient

Public Class FrmLogin

Dim koneksi As SqlConnection

Dim Sql, username, password As String

Dim cmd As SqlCommand

Sub kosongkan()

TxtUser.Text = ""

TxtPass.Text = ""

End Sub

Private Sub BtnExit_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtnExit.Click

End

End Sub

Private Sub FormLogin_Load(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles MyBase.Load

Dim strKoneksi As String

strKoneksi = "Data Source=UZY-

PC\SQLEXPRESS;Initial

Catalog=Penjadwalan;Integrated Security=True"

koneksi = New SqlConnection(strKoneksi)

Try

koneksi.Open()

Catch ex As Exception

End Try

End Sub

Private Sub BtnBatal_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtnBatal.Click

Call kosongkan()

End Sub

Private Sub BtnLogin_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtnLogin.Click

If TxtUser.Text = "" Or TxtPass.Text = "" Then

MsgBox("Masukan username dan password!!!")

Else

username = TxtUser.Text

password = TxtPass.Text

Sql = "select * from TblLogin where Username='"

+ username + "'and Password='" + password + "'"

cmd = New SqlCommand(Sql, koneksi)

rd = cmd.ExecuteReader()

rd.Read()

If rd.HasRows = True Then

MsgBox("Anda Berhasil Login!")

Me.Visible = False

Home.Show()

Home.TsUser.Text = rd.GetString(1)

Home.TsLevel.Text = rd.GetString(3)

Home.DataToolStripMenuItem.Enabled = True

Home.DosenToolStripMenuItem1.Enabled = True

Home.JadwalToolStripMenuItem.Enabled = True

Home.LoginToolStripMenuItem.Visible = False

Home.LogoutToolStripMenuItem.Visible = True

rd.Close()

Else

MessageBox.Show("Data Yang Anda Masukkan

Salah")

Call kosongkan()

rd.Close()

End If

End If

Page 91: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

TxtUser.Focus()

Call kosongkan()

End Sub

End Class

3. Form Dosen

Imports System.Data

Imports System.Data.SqlClient

Public Class FrmDosen

Sub tampilcari()

Dim ds As New DataSet

Dim da As New SqlDataAdapter("Select *

from TblDosen where nidn like '%" & TxtCari.Text

& "%' or nama like '%" & TxtCari.Text & "%' ",

koneksi.koneksi)

da.Fill(ds, "TblDosen")

DGDosen.DataSource =

ds.Tables("TblDosen")

DGDosen.ReadOnly = True

Try

Koneksi.koneksi.Open()

Catch ex As Exception

End Try

End Sub

Sub cari()

If TxtCari.Text = "" Then

TxtCari.Focus()

rd = cmd.ExecuteReader

If rd.Read() Then

TxtCari.Focus()

Return

rd.Close()

End If

Else

cmd = New SqlCommand("Select * from

TblDosen where nidn like '%" & TxtCari.Text &

"%' or nama like '%" & TxtCari.Text & "%' ",

koneksi.koneksi)

rd = cmd.ExecuteReader

rd.Read()

Call tampilcari()

rd.Close()

End If

End Sub

Sub Kosongkan()

TxtNidn.Text = ""

TxtNama.Text = ""

TxtAlamat.Text = ""

TxtTelepon.Text = ""

TxtCari.Text = ""

TxtNidn.Focus()

End Sub

Sub batal()

TxtNidn.Enabled = False

TxtNama.Enabled = False

TxtAlamat.Enabled = False

TxtTelepon.Enabled = False

BtnTambah.Enabled = True

BtnHapus.Enabled = True

BtnEdit.Enabled = True

BtnSimpan.Enabled = False

BtnUpdate.Visible = False

TxtNidn.Focus()

Call Kosongkan()

End Sub

Sub Tampilkan()

Dim ds As New DataSet

Dim da As New SqlDataAdapter("Select *

from TblDosen ORDER by kode ASC",

koneksi.koneksi)

da.Fill(ds, "TblDosen")

DGDosen.DataSource =

ds.Tables("TblDosen")

DGDosen.ReadOnly = True

Try

Koneksi.koneksi.Open()

Catch ex As Exception

End Try

End Sub

Private Sub FormAnggota_Load(ByVal sender

As System.Object, ByVal e As System.EventArgs)

Handles MyBase.Load

Call koneksi.koneksi()

Call batal()

Call Tampilkan()

End Sub

Private Sub BtnTutup_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtnTutup.Click

Call Kosongkan()

Me.Close()

End Sub

Private Sub TxtNomor_KeyPress(ByVal sender

As Object, ByVal e As

Page 92: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

System.Windows.Forms.KeyPressEventArgs)

Handles TxtNidn.KeyPress

If (InStr("0123456789", e.KeyChar) = 0) And

(e.KeyChar <> Chr(8)) Then

e.KeyChar = Chr(0)

MsgBox("Masukan Angka Saja!!!")

End If

End Sub

Private Sub TxtNama_KeyPress(ByVal sender

As Object, ByVal e As

System.Windows.Forms.KeyPressEventArgs)

Handles TxtNama.KeyPress

If e.KeyChar = Chr(50) Then

TxtNama.Text = UCase(TxtNama.Text)

TxtNidn.Focus()

End If

End Sub

Private Sub TxtTelepon_KeyPress(ByVal sender

As Object, ByVal e As

System.Windows.Forms.KeyPressEventArgs)

Handles TxtTelepon.KeyPress

If e.KeyChar = Chr(13) Then

BtnSimpan.Focus()

If Not ((e.KeyChar >= "0" And e.KeyChar <=

"9") Or e.KeyChar = vbBack) Then e.Handled() =

True

End Sub

Private Sub BtnSimpan_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtnSimpan.Click

If TxtNidn.Text = "" Or TxtNama.Text = "" Or

TxtAlamat.Text = "" Or TxtTelepon.Text = "" Then

MsgBox("Data Belum Lengkap")

Exit Sub

Else

cmd = New SqlCommand("Select * from

TblDosen where nidn='" & TxtNidn.Text & "'",

koneksi.koneksi)

rd = cmd.ExecuteReader

rd.Read()

If Not rd.HasRows Then

MsgBox("Dosen Berhasil di Tambah!!!")

Dim sqltambah As String = "Insert into

TblDosen(nidn,nama,alamat,telp) values " & _

"('" & TxtNidn.Text & "','" &

TxtNama.Text & "','" & TxtAlamat.Text & "','" &

TxtTelepon.Text & "')"

cmd = New SqlCommand(sqltambah,

Koneksi.koneksi)

cmd.ExecuteNonQuery()

Call batal()

Call Tampilkan()

Else

MsgBox("Id Telah Terdaftar, coba

lagi!!!")

Call Kosongkan()

Call Tampilkan()

End If

End If

End Sub

Private Sub BtnBatal_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtnBatal.Click

Call batal()

End Sub

Private Sub BtnHapus_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtnHapus.Click

If TxtNidn.Text = "" Then

MsgBox("Pilih Dosen Terlebih Dahulu")

TxtNidn.Focus()

Exit Sub

Else

If MessageBox.Show("Yakin akan

dihapus..?", "", MessageBoxButtons.YesNo) =

Windows.Forms.DialogResult.Yes Then

cmd = New SqlCommand("Delete from

TblDosen where nidn='" & TxtNidn.Text & "'",

koneksi.koneksi)

cmd.ExecuteReader()

Call batal()

Call Tampilkan()

Else

Call Kosongkan()

End If

End If

End Sub

Private Sub

DGAnggota_CellContentClick(ByVal sender As

System.Object, ByVal e As

System.Windows.Forms.DataGridViewCellEventA

rgs) Handles DGDosen.CellContentClick

Dim i As Integer

i = DGDosen.CurrentRow.Index

Page 93: OPTIMASI PENJADWALAN MATA KULIAH DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS : PROGRAM STUDI TEKNIK INFORMATIKA) (UNIVERSITAS DARMA PERSADA)

With DGDosen.Rows.Item(i)

txtid.Text = .Cells(0).Value

TxtNidn.Text = .Cells(1).Value

TxtNama.Text = .Cells(2).Value

TxtTelepon.Text = .Cells(4).Value

TxtAlamat.Text = .Cells(3).Value

End With

End Sub

Private Sub BtnUpdate_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtnUpdate.Click

If TxtNidn.Text = "" Then

MsgBox("Pilih Dosen Terlebih Dahulu")

End If

Dim sqledit As String = "Update TblDosen set

" & _

"nidn='" & TxtNidn.Text & "', " & _

"nama='" & TxtNama.Text & "', " & _

"alamat='" & TxtAlamat.Text & "', " & _

"telp='" & TxtTelepon.Text & "' where

kode='" & txtid.Text & "'"

cmd = New SqlCommand(sqledit,

Koneksi.koneksi)

cmd.ExecuteNonQuery()

MsgBox("Data Berhasil di Ubah")

Call Tampilkan()

Call batal()

End Sub

Private Sub Button1_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtnTambah.Click

TxtNidn.Enabled = True

TxtNama.Enabled = True

TxtAlamat.Enabled = True

TxtTelepon.Enabled = True

BtnSimpan.Enabled = True

BtnBatal.Enabled = True

BtnTambah.Enabled = False

BtnEdit.Enabled = False

BtnHapus.Enabled = False

TxtNidn.Focus()

End Sub

Private Sub BtnEdit_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtnEdit.Click

If TxtNidn.Text = "" Then

MsgBox("Pilih Dosen Terlebih Dahulu")

Else

TxtNidn.Enabled = True

TxtNama.Enabled = True

TxtAlamat.Enabled = True

TxtTelepon.Enabled = True

BtnTambah.Enabled = False

BtnHapus.Enabled = False

BtnBatal.Enabled = True

BtnSimpan.Enabled = False

BtnUpdate.Visible = True

End If

End Sub

Private Sub TxtCari_TextChanged(ByVal sender

As System.Object, ByVal e As System.EventArgs)

Handles TxtCari.TextChanged

Call cari()

Call tampilcari()

End Sub

Private Sub Btnapa_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles Btnapa.Click

MsgBox("Masukan NIDN atau Nama

Dosen!")

End Sub

End Class

4.