SISTEM PENDUKUNG PENGAMBILAN KEPUTUSAN PENJADWALAN KULIAH DENGAN ALGORITMA GENETIKA
(Studi Kasus : Jurusan Teknik Informatika Universitas Sanata Dharma Yogyakarta)
Skripsi
Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Disusun oleh : Wahyu Ferianingrum
035314065
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
i
SISTEM PENDUKUNG PENGAMBILAN KEPUTUSAN PENJADWALAN KULIAH DENGAN ALGORITMA GENETIKA
(Studi Kasus : Jurusan Teknik Informatika Universitas Sanata Dharma Yogyakarta)
Skripsi
Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Disusun oleh : Wahyu Ferianingrum
035314065
TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
DECISION SUPPORT SYSTEM OF LECTURE SCHEDULING WITH GENETICS ALGORITHM
(Case Study : Informatics Engineering Department of Yogyakarta Sanata Dharma University)
A THESIS
Presented as Partial Fulfillment of the Requirements to Obtain the Sarjana TeknikDegree
in Department of Informatics Engineering
Created by: Wahyu Ferianingrum
NIM : 035314065
DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
vi
Kupersembahkan Untuk :
Jesus Christ
Ayah, Mamah,
Kakakku
&
vii
HALAMAN MOTTO
Janganlah takut, sebab Aku menyertai engkau
(Yesaya 41 : 10)
Terima kasih Tuhan………..
Karena semua kejadian yang aku alami adalah tidak
kebetulan tetapi bekerja sama untuk mendatangkan
kebaikan bagiku
viii ABSTRAKSI
Penjadwalan kuliah merupakan salah satu masalah optimasi. Proses penjadwalan kuliah di Jurusan Teknik Informatika Universitas Sanata Dharma Yogyakarta masih dilakukan secara manual. Penjadwalan secara manual dapat saja dilakukan, namun penanganan seperti ini akan mengalami masalah terutama dalam hal ketelitian dan waktu yang lama.
Dengan dibangunnya SPPK Penjadwalan kuliah ini, diharapakan dapat mengatasi masalah dalam proses penjadwalan kuliah. Dalam penjadwalan kuliah, terkait dengan ketersediaan hari, ruangan, jam, dan matakuliah yang ditawarkan. Dengan hasil yang diharapkan adalah adanya jadwal kuliah yang sesuai, sehingga tidak terjadi tabrakan antara matakuliah yang satu dengan yang lain, maupun jadwal bagi dosen sebagai pengajar matakuliah.
ix ABSTRACT
Lecture scheduling is one of the problems in optimizing. Process lecture scheduling in Information Technology programme of Sanata Dharma University Yogyakarta is being done manually. Manual scheduling is possibly done. However, some problems may occur especially an accuracy and time constrain.
With this Decision Support System of Lecture Scheduling builded, hopes can fix the problem in lecture scheduling process. Lecture scheduling is closely related to the availability of the days, room, time and the subjects offered. Result that is expected when using Decision Support System (DSS) lecture shedulling is an organized schedule for each subject offered to the students, so that there is no collision between one subject and another.
xi
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa yang telah mengaruniakan
berkat dan hikmatNya sehingga penulis dapat menyelesaikan tugas akhir ini.
Dalam proses penulisan tugas akhir ini ada begitu banyak pihak yang telah
memberikan bentuan dan perhatian dengan caranya masing-masing sehingga
tugas akhir ini dapat diselesaikan. Oleh karena itu penulis mengucapkan terima
kasih diantaranya kepada :
1. Bapak Yosef Agung Cahyanta, S.T., M.T., selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
2. Bapak Drs. J.J. Siang, M.Sc selaku dosen pembimbing tugas akhir yang
telah banyak memberikan bimbingan dalam penyusunan tugas akhir ini.
3. Ibu P.H. Prima Rosa, S.Si., M.Sc. dan Ibu Sri Hartati Wijono, S.Si.,
M.Kom. selaku panitia penguji yang telah memberikan banyak kritik dan
saran sempurnanya tugas akhir ini.
4. Bapak Emanuel Belle Bau, SPd. dan Yustinus Nugroho sebagai laboran
yang telah mendukung dalam mempersiapkan ujian pendadaran.
5. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma yang
telah memberikan bekal ilmu, arahan dan pengalaman selama penulis
menempuh studi.
6. Seluruh staff Sekretariat Fakultas Sains dan Teknologi yang banyak
membantu penulis dalam urusan administrasi akademik terutama menjelang
xii
7. Ayah dan Mamah, terimakasih untuk setiap cinta, kasih sayang, doa,
kesabaran dan pengorbanan sehingga penulis dapat menyelesaikan tugas
akhir ini.
8. Kakakku Ari Yulianto terima kasih atas doa, kasih sayang, dan
dukungannya.
9. Bapak dan Ibu terima kasih atas kasih sayang, perhatian dan semangatnya.
10. Ratna Kusuma Wardhani, Dian Tirta P dan Wahyu Nugroho terima kasih
atas perhatian, semangat dan nasihatnya.
11. Widyatmoko Adi Seputro terima kasih atas cinta, kasih sayang, perhatian,
semangat dan kebersamaan selama ini.
12. Essther Ika, Florentina Puri, Rubin Siswanto, M.Abdul Rosyid, Bregas P,
Santhos F, Odulphus Junaidi, Pamako, Ari Tunggul, Tadea P, Rachel K,
dan E.W Mardani terimakasih atas semangat dan segala bantuannya.
13. Teman-teman seperjuangan di Jurusan Teknik Informatika angkatan 2003.
14. Semua pihak yang telah membantu penulisan baik secara langsung maupun
tidak langsung, yang tidak dapat penulis sebutkan satu persatu.
Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih jauh
dari sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas
akhir ini sangat penulis harapkan. Akhir kata semoga tugas akhir ini dapat
bermanfaat bagi semua pihak. Terima kasih.
Yogyakarta, Juli 2009
Penulis
xiii DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN PERSETUJUAN... iii
HALAMAN PENGESAHAN... ... iv
PERNYATAAN KEASLIAN KARYA... v
HALAMAN PERSEMBAHAN... ... vi
HALAMAN MOTTO... ... vii
ABSTRAKSI... ... viii
ABSTRACT... ... ix
KATA PENGANTAR... ... xi
DAFTAR ISI... ... xiii
DAFTAR GAMBAR... ... xvii
DAFTAR TABEL... ... xix
BAB I. PENDAHULUAN ... 1
1.1 Latar Belakang Masalah... ... 1
1.2. Rumusan Masalah ... 2
1.3 Tujuan Penulisan ... 2
1.4. Batasan Masalah... 3
1.5 Metodologi Penelitian... 3
1.6 Sistematika Penulisan... 4
BAB II. LANDASAN TEORI... . 6
xiv
2.1.1 Pengertian SPPK ... 6
2.1.2 Tujuan SPPK. ... 6
2.1.3 Komponen SPPK ... 7
2.1.4 Karakteristik dan Kemampuan SPPK ... 8
2.1.5 Manfaat SPPK. ... 9
2.1.6 Keterbatasan SPPK... . 10
2.1.7 Proses Pengambilan Keputusan... . 11
2.2 Algoritma Genetika ... 12
2.2.1 Konsep Dasar Algoritma Genetika ... 13
2.2.2 Struktur Umum Algoritma Genetika ... 18
2.2.3 Ilustrasi Algoritma Genetika... 19
2.2.4 Pemodelan Kromosom (Pengkodean)... 21
2.2.5 Operator Algoritma Genetika... 23
2.2.5.1 Seleksi... 23
2.2.5.2 Perkawinan Silang (Crossover)... 27
2.2.5.3 Mutasi... 29
2.2.6 Parameter Genetika... ... 30
BAB III.ANALISIS DAN PERANCANGAN SISTEM... 31
3.1 Definisi Masalah... ... 31
3.1.1 Analisa Sistem... .. 31
3.1.2 Gambaran Umum Sistem... 31
3.2 Perancangan Antarmuka... . 34
xv
3.2.2 Perancangan Input dan Output... 34
3.2.2.1 Perancangan Input... 34
a. Perancangan Form Utama... 34
b. Perancangan Form Data Matakuliah…………. 35
c. Perancangan Form Data Dosen………... 36
d. Perancangan Form Data Ruang………... 37
e. Perancangan Form Data Kelas Matakuliah... 38
f. Perancangan Form Proses Penjadwalan... 39
3.3 Perancangan Basisdata……….. 40
3.3.1 ER Diagram... 40
3.3.2 Perancanagan Tabel... 41
3.4 Perancangan Algoritma Genetika Dalam Penjadwalan Kuliah.. 42
a. Representasi Masalah... 42
b. Pembentukan Kromosom... 45
c. Penentuan Nilai Fitness... 45
d. Pemilihan Kromosom untuk Dijadikan Orang Tua... 46
e. Proses Reproduksi Kromosom... 47
3.5 Penerapan Algoritma Genetika... 47
BAB IV. IMPLEMENTASI DAN ANALISA HASIL ... 63
4.1 Implementasi Program... 66
4.1.1 Form Menu Utama... 66
4.1.2 Form Data Dosen... 67
xvi
4.1.4 Form Data Matakuliah... 68
4.1.5 Form Data Kelas Matakuliah... 69
4.1.6 Form Proses Pembuatan Jadwal Kuliah... 70
4.2 Flowchart... 71
4.3 Testing Program... 72
4.4 Kelebihan Dan Kekurangan Program... 78
BAB V. PENUTUP ... 79
5.1 Kesimpulan ... 79
5.2 Saran ... 79
xvii
DAFTAR GAMBAR
Halaman
Gambar 2.1 Model Konseptual SPPK ………... 8
Gambar 2.2 Karakteristik SPPK ………... 9
Gambar 2.3 Struktur Umum Algoritma Genetika ………...19
Gambar 2.4 Contoh Seleksi Roda Roulette... 24
Gambar 3.1 FlowchartSistem ……….………... 32
Gambar 3.2 FlowchartAlgoritma Genetika... 33
Gambar 3.3 Perancangan Menu...34
Gambar 3.4 Perancangan FormUtama... 34
Gambar 3.5 Perancangan FormData Matakuliah... 35
Gambar 3.6 Perancangan FormData Dosen... 36
Gambar 3.7 Perancangan FormData Ruang... 37
Gambar 3.8 Perancangan FormData Kelas Matakuliah... 38
Gambar 3.9 Perancangan FormProses Penjadwalan... 39
Gambar 3.10 ER Diagram... 40
Gambar 3.11 Ilustrasi Model Kromosom... 43
Gambar 3.12 Proses Crossoverbagian pertama... 63
Gambar 3.13 Proses Crossoverbagian kedua... 63
Gambar 3.14 Proses Crossoverbagian ketiga... 63
Gambar 3.15 Proses Crossoverbagian keempat... 64
Gambar 3.16 Proses Mutasi... 65
Gambar 4.1 FormMenu Utama...66
Gambar 4.2 FormData Dosen... 67
Gambar 4.3 FormData Ruang...68
Gambar 4.4 FormData Matakuliah...69
Gambar 4.5 FormData Kelas... 70
xviii
Gambar 4.7 FlowchartSPPK penjadwalan kuliah... 72 Gambar 4.8 Grafik hubungan nilai fitness dengan iterasi... 73 Gambar 4.9 Hubungan antara Probabilitas Crossover(10% - 25%)
dan Probabilitas Mutasi (1%) dengan Nilai rata-rata Iterasi..75 Gambar 4.10 Hubungan antara Probabilitas Mutasi (10% - 90%) dan
Probabilitas Crossover(25%) dengan Nilai rata-rata Iterasi
yang diperlukan... 76
Gambar 4.11 Hubungan antara jumlah Kelas Mata Kuliah dengan
xix
DAFTAR TABEL
Halaman
Tabel 2.1 Contoh Pengkodean Biner………..………... 21
Tabel 2.2 Contoh Pengkodean Permutasi... 22
Tabel 2.3 Tabel Pengkodean Nilai... 22
Tabel 2.4 Seleksi Rangking... 26
Tabel 3.1 Tabel Matakuliah ………..………... 41
Tabel 3.2 Tabel Dosen... 41
Tabel 3.3 Tabel Kelas... 41
Tabel 3.4 Aturan-Aturan Penjadwalan Kuliah... 46
Tabel 3.5 Contoh Data Matakuliah... 48
Tabel 3.6 Contoh Data Dosen... 49
Tabel 3.7 Contoh Data Hari……….………. 50
Tabel 3.8 Contoh Data Ruang... 50
Tabel 3.9 Contoh Data Jam………... 51
Tabel 3.10 Contoh Data Kelas Matakuliah... 51
Tabel 3.11 Kromosom 1-10, Gen 1-25... 55
Tabel 3.12 Kromosom 1-10, Gen 26-50... 55
Tabel 3.13 Kromosom 1-10, Gen 51-75... 56
Tabel 3.14 Kromosom 1-10, Gen 76-100... 56
Tabel 3.15 Kromosom 1-10, Gen 101-125... 57
Tabel 3.16 Kromosom 1-10, Gen 126-150... 57
Tabel 3.17 Kromosom 1-10, Gen 151-175... 58
Tabel 3.18 Kromosom 1-10, Gen 176-200... 58
Tabel 3.19 Kromosom 1-10, Gen 201-225... 59
Tabel 3.20 Kromosom 1-10, Gen 226-250... 59
Tabel 3.21 Kromosom 1-10, Gen 251-275... 60
xx
Tabel 3.23 Kromosom 1-10, Gen 301-325... 61
Tabel 3.24 Kromosom 1-10, Gen 325-350... 61
Tabel 3.25 Tabel Bobot Nilai Fitness... 62
Tabel 3.26 Tabel Hubungan Antar Substring... 64
Tabel 4.1 Hubungan tabel fitnessdan rata-rata iterasi... 73
Tabel 4.2 Hubungan antara Probabilitas Crossover(10-25%) dan Probabilitas Mutasi(1-5%) dengan nilai rata-rata Iterasi... 74
Tabel 4.3 Hubungan antara Probabilitas Crossover(25%) dan Probabilitas Mutasi (10-90%) dengan Nilai rata-rata Iterasi... ... ... 76
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Saat ini proses penjadwalan kuliah di jurusan teknik informatika
universitas Sanata Dharma masih menggunakan cara manual. Penjadwalan
secara manual dapat saja dilakukan, namun penanganan seperti ini akan
mengalami masalah terutama dalam hal ketelitian dan waktu yang lama.
Proses penjadwalan kuliah terdiri dari beberapa komponen, yaitu matakuliah
yang ditawarkan, dosen, hari, ruang dan jam. Sementara hasil yang
diharapkan adalah adanya jadwal matakuliah yang sesuai, baik bagi dosen
maupun mahasiswa dengan waktu kuliah yang efektif, sehingga tidak terjadi
tabrakan baik antara jadwal matakuliah tertentu, maupun jadwal bagi dosen
sebagai pengajar mata kuliah. Ketika penjadwalan kuliah dilakukan secara
manual, hanya akan dihasilkan satu solusi jawaban, dan jika solusi tersebut
masih terdapat kesalahan, maka untuk mendapatkan kembali solusi yang
lebih baik membutuhkan waktu yang lama.
Pada tugas akhir ini dijelaskan tentang sistem pendukung
pengambilan keputusan untuk membantu menyelesaikan masalah
penjadwalan kuliah dengan menggunakan algoritma genetika Algoritma
genetika adalah algoritma yang berdasarkan konsep teori evolusi alam dan
konsep genetika. Algoritma genetika merupakan algoritma yang dapat
2
eksaknya, karena mempunyai banyak pilihan penyelesaian. Dengan
algoritma genetika, data-data dari komponen yang ada berupa data hari, data
ruang, data jam, dan data matakuliah akan diolah ke bentuk variabel dalam
algoritma genetika sehingga solusi yang dihasilkan merupakan solusi-solusi
yang mendekati optimal. Meskipun ada kemungkinan dengan menggunakan
algoritma genetika tidak dapat ditemukan solusi terbaik, tetapi paling tidak
dapat ditemukan solusi yang mendekati solusi yang terbaik dalam waktu
relatif kecil.
Kehadiran sistem berbasis komputer dengan didukung adanya sistem
pendukung pengambilan keputusan, akan sangat membantu dalam proses
penjadwalan kuliah karena dapat membantu memberikan alternatif
pemecahan bagi masalah yang dihadapai.
1.2 Perumusan Masalah
Dari latar belakang masalah dapat diambil rumusan masalah :
Bagaimana menerapkan algoritma genetika untuk menyelesaikan masalah
penjadwalan kuliah.
1.3 Tujuan Penulisan
Membuat program bantu untuk menyelesaikan masalah penjadwalan kuliah
3
1.4 Batasan Masalah
Adapun batasan masalah yang digunakan untuk menyelesaikan masalah
penjadwalan mata kuliah dengan algoritma genetika adalah :
1. Penjadwalan hanya untuk kelas teori.
2. Studi Kasus di Jurusan Teknik Informatika Universitas Sanata Dharma
Yogyakarta.
3. Satu matakuliah harus dalam blok waktu berurutan atau tidak
diperkenankan adanya pencacahan waktu.
4. Pengguna dapat melakukan input mata kuliah teori, data dosen, data ruang,
dan kelas mata kuliah, sementara data hari dan data jam telah tersedia
dalam sistem.
1.5 Metodologi Penyelesaian Masalah
Metode yang digunakan untuk menyelesaikan masalah penjadwalan mata
kuliah adalah metode System Development Life Cycle (paradigma Waterfall).
Metode ini terdiri dari tahap yaitu :
1. Analisis Kebutuhan
• Mengidentifikasi dan menganalisis semua kebutuhan sistem.
• Pengumpulan data yang diperlukan.
2. Perancangan Sistem
Merupakan tahap menerjemahkan kebutuhan ke dalam sebuah representasi
4
perancangan basis data, perancangan user interface dan perancangan
program.
3. Penulisan Program
Merupakan tahap menerjemahkan hasil rancangan ke bahasa pemrograman
yang digunakan.
4. Pengujian
Tahap pengujian program dilakukan untuk menemukan kesalahan-kesalahan
dengan cara mengeksekusi program.
1.6 Sistematika Penulisan
BAB I : PENDAHULUAN
Bab ini berisi penjelasan mengenai latar belakang masalah,
rumusan masalah, tujuan penulisan, batasan masalah, metodologi
penyelesaian masalah, dan sistematika penulisan.
BAB II : LANDASAN TEORI
Bab ini berisi tentang teori yang mendasari sistem pendukung
pengambilan keputusan dan teori algoritma genetika yang akan
menjadi dasar dalam pembuatan sistem ini.
BAB III : ANALISA DAN PERANCANGAN SISTEM
Bab ini menjelaskan tentang analisis dan perancangan sistem
yang akan dibangun, meliputi serta analisis data penjadwalan,
5
langkah-langkah algoritma genetika dalam menyelesaikan
masalah penjadwalan kuliah.
BAB IV : IMPLEMENTASI DAN ANALISA HASIL
Bab ini berisi tentang implementasi dari perancangan yang telah
dibuat sebelumnya, meliputi tampilan–tampilan program baik
input maupun output yang dihasilkan dan analisa hasil dari
program yang telah dibuat.
BAB V : KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan dan saran dari sistem yang
telah dibangun, berdasarkan pembahasan pada bab-bab
6 BAB II
LANDASAN TEORI
2.1 Konsep Dasar Sistem Pendukung Keputusan
2.1.1 Pengertian Sistem Pendukung Keputusan
Sistem Pendukung Keputusan atau DSS (Decision Support System) diciptakan oleh Gorry dan Scoot Morton pada tahun 1971. Gagasan tersebut didasarkan pada perlunya suatu kerangka kerja untuk mengarahkan aplikasi komputer kepada pengambilan keputusan manajemen.
Gorry dan Scoot Morton mendefinisikan SPPK sebagai sekumpulan prosedur basis model untuk memproses data dan keputusan untuk membantu manajer dalam membuat keputusan.
Dalam bukunya, Turban mengutip definisi yang diberikan oleh Scoot Morton (Efraim turban,1995:11) dengan definisi sistem pendukung keputusan adalah sistem interaktif yang berbasis komputer yang membantu pengambil keputusan menggunakan data dan model untuk membantu memecahkan masalah yang tidak terstuktur atau semi terstuktur.
7
2.1.2 Tujuan SPPK
Menurut Peter G.W. Keen dan Scott Morton, SPPK memiliki tujuan sebagai berikut :
• Membantu pengambil keputusan untuk memecahkan masalah
semi terstuktur.
• Mendukung penilaian pengambil keputusan bukan untuk
menggantikan peran pengambil keputusan. • Meningkatkan efektifitas pengambilan keputusan.
2.1.3 Komponen-komponen SPPK
Pada dasarnya SPPK terdiri dari empat subsistem yang saling berkaitan satu sama lain yaitu :
a. Manajemen data
SPPK terdiri dari sekumpulan basis data yang berisi data-data yang relevan yang dikelola suatu sistem yang disebut DBMS (Database Management System).
b. Manajemen model
SPPK memuat model finansial, statistik, manajemen saintifik, atau model lain yang memberikan kemampuan analitis sistem.
c. Manajemen dialog
8
d. Manajemen pengetahuan
Subsistem optional ini lebih bersifat fleksibel, di mana subsistem ini dapat mendukung subsistem lainnya atau berdiri sendiri. Subsistem ini dibutuhkan ketika ketiga subsistem SPPK lainnya tidak mampu lagi menyelesaikan masalah yang semi terstruktur maupun tidak terstruktur. Subsistem ini terbentuk dari satu atau lebih sistem pakar. Selain itu juga dilengkapi dengan kebutuhan eksekusi dan integrasi sistem pakar.
2.1.4 Karakteristik dan Kemampuan SPPK
SPPK memiliki beberapa karakteristik yang khas dibandingkan dengan sistem informasi lainnya (Turban, 1995) yaitu :
a. SPPK membuat dukungan bagi pembuat keputusan, terutama untuk keputusan semi dan tidak terstuktur.
b. SPPK dapat dimanfaatkan oleh individu maupun kelompok. Sistem Berbasis
Komputer yg lain
Manajer(pengguna) Data internal &
eksternal
9
c. SPPK menyediakan dukungan kepada beberapa ketergantungan dan atau rangkaian keputusan.
d. SPPK dapat mendukung beberapa kondisi keputusan yang saling bergantung atau berurutan.
e. SPPK bersifat fleksibel.
f. SPPK harus mudah digunakan, bersahabat, dan efektif.
g. SPPK mempunyai tujuan khusus untuk mendukung keputusan yang diambil, tetapi tidak menggantikan peran pembuat keputusan.
Karakter-karakter tersebut dapat digambarkan dalam diagram seperti di bawah ini :
Gambar 2.2 Karakteristik SPPK
1. Keputusan semi terstruktur
7. Adaptif dan Fleksibel 5. Mendukung penalaran, perancangan dan pemilihan
6. Mendukung bbg gaya dan proses pengambilan
keputusan
8. Mudah dipakai 9. Efektivitas, bukan
efisiensi 11. Mudah dibangun
2. Untuk manajer di berbagai level
3. Untuk kelompok dan individu
4. Keputusan interdependen atau
sekuensial
10. Bisa dikendalikan pengguna
10
2.1.5 Manfaat SPPK
SPPK sebagai sebuah sistem memberikan manfaat bagi penggunanya, antara lain:
a. SPPK memperluas kemampuan pengambil keputusan dalam memproses data dan informasi bagi penggunanya.
b. SPPK membantu pengambil keputusan dalam hal penghematan waktu pemecahan masalah.
c. SPPK dapat menghasilkan solusi dengan cepat serta dapat diandalkan.
d. Walaupun SPPK mungkin saja tidak mampu menyelesaikan masalah yang dihadapi oleh pengambil keputusan, namun ia mampu menjadi stimulan, karena SPPK menyediakan berbagai alternatif penyelesaian.
e. SPPK dapat menyediakan bukti tambahan untuk memberikan pembenaran sehingga dapat memperkuat posisi pengambil keputusan.
f. SPPK menghasilkan keputusan yang bersifat objektif.
11
2.1.6 Keterbatasan SPPK
Sebuah sistem tentunya memiliki kelemahan dan keterbatasan kemampuan dalam hal tertentu. Demikian juga dengan SPPK, memiliki keterbatasan dalam beberapa hal antara lain :
a. Ada beberapa kemampuan manajemen dan bakat manusia yang tidak dapat dimodelkan, sehingga model yang ada dalam sistem tidak mencerminkan persoalan yang ada secara keseluruhan. b. Kemampuan SPPK terbatas pada perbendaharaan kemampuan yang
dimilikinya (pengetahuan dasar serta model dasar).
c. Proses-proses yang dapat dilakukan SPPK tergantung juga pada kemampuan perangkat lunak yang digunakan.
d. SPPK tidak memiliki kemampuan intuisi seperti yang dimiliki manusia, karena walaupun bagaimana canggihnya suatu SPPK hanyalah kumpulan perangkat lunak, perangkat keras dan sistem operasi yang tidak dilengkapi dengan kemampuan berpikir.
12
2.1.7 Proses Pengambilan Keputusan
Tiga fase dalam proses pengambilan keputusan (Turban, 1995) yaitu : 1. Fase penalaran (intelligence phase)
Tujuan dalam fase ini adalah mengenali permasalahan, situasi dan peluangnya. Output yang dihasilkan berupa rumusan masalah (problem statement).
2. Fase perancangan (design phase)
Tujuan dalam fase ini adalah menghasilkan dan menganalisa alternatif solusi. Dalam fase ini dilakukan pemodelan terhadap permasalahan yang ada. Pemodelan sendiri berarti konseptualisasi masalah dan abstraksinya dalam bentuk kuantitatif dan atau kualitatif.
3. Fase pemilihan (choice phase)
13
Dalam pemecahan masalah (problem solving), tiga fase pengambilan keputusan yang ada akan diikuti implementasi terhadap rekomendasi yang menjadi output dari fase pemilihan.
2.2 Algoritma Genetika
Algoritma genetika adalah algoritma yang berdasarkan pada mekanisme seleksi alami dan konsep genetika. Konsep genetika digunakan untuk merepresentasikan setiap kemungkinan solusi dari masalah optimasi yang ada. Sedangkan seleksi alam merepresentasikan proses seleksi terhadap calon-calon solusi dari sebuah populasi. Dalam implementasinya algoritma genetika meniru beberapa proses yang terdapat pada evolusi alami mahluk hidup antara lain seleksi alam dan reproduksi (crossover dan mutasi).
2.2.1 Konsep Dasar Algoritma Genetika
14
kemampuan suatu organisme untuk beradaptasi dengan lingkungannya. Hal ini menurut Darwin karena terdapat beberapa organisme yang mempunyai tingkat kemampuan bertahannya berbeda dengan organisme lain.
Adapun proses-proses dalam evolusi alami yang menjadi konsep dari algoritma genetika adalah proses seleksi alam dalam rangka mencari anggota populasi yang mempunyai tingkat ketahanan hidup yang tinggi sehingga dapat menyesuaikan diri dengan lingkungannya dan proses reproduksi yang merupakan salah satu proses biologi yang bertujuan untuk mempertahankan kelestarian dari suatu spesies karena dengan adanya reproduksi akan didapatkan keturunan yang sifatnya diturunkan dari induknya. Reproduksi mencakup dua proses yaitu crossover (perkawinan silang) dan mutation (mutasi). Perkawinan silang adalah suatu proses pertukaran gen dari dua individu yang mempunyai karakteristik yang berbeda untuk menghasilkan keturunan dengan karakteristik yang berbeda dari induknya dan diharapkan lebih baik dari induknya. Sedangkan mutasi adalah proses perubahan genetika dari suatu spesies karena spesies tersebut melakukan adaptasi terhadap lingkungannya.
15
fitnessnya. Nilai ini merupakan ukuran yang digunakan untuk mengukur
keoptimalan suatu solusi dalam menyelesaikan masalah.
Langkah-langkah yang dilakukan dalam algoritma genetika untuk mencari penyelesaiaan dari suatu masalah adalah:
1. Menentukan model dari sistem yang dibuat
Untuk melakukan komputasi terhadap masalah optimasi yang dihadapi maka terlebih dahulu dibuat sebuah representasi yang sesuai dengan masalah tersebut. Dalam pemodelan ini juga harus ditentukan batasan-batasan untuk memperkecil ruang pencarian yang akhirnya nanti dapat mempengaruhi cepat lambatnya penemuan solusi dan fungsi tujuan dari permasalahan tersebut. Ada beberapa macam pemodelan, yaitu : pengkodean biner, pengkodean permutasi, pengkodean pohon dan pengkodean nilai.
16
2. Pembangkitan kromosom anggota populasi dan mengevaluasi setiap kromosom dalam populasi dengan menentukan nilai fitnessnya.
Pembangkitan kromosom-kromosom sebagai anggota populasi dilakukan secara random. Anggota populasi yang terpilih kemudian dievaluasi dengan cara menentukan nilai fitness dari setiap populasi.
Penghitungan nilai fitness didapat berdasarkan fungsi tujuan yang telah ditentukan sebelumnya pada saat pemodelan masalah. Nilai fitness ini digunakan untuk mengetahui apakah suatu kromosom anggota populasi merupakan solusi yang tepat untuk permasalahan yang ada atau dapat juga digunakan untuk menentukan apakah calon solusi tersebut dapat menjadi anggota populasi generasi berikutnya.
3. Penentuan nilai fitness masing-masing kromosom-kromosom anggota populasi
Pada masalah optimasi, fungsi fitness yang digunakan untuk mencari nilai fitness adalah fungsi dari masalah optimasi itu sendiri. Untuk masalah penjadwalan kuliah pencarian nilai fitness dilakukan dengan pencarian total bobot dari masing-masing kromosom anggota populasi. Kromosom yang mempunyai nilai fitness baik adalah kromosom yang mempunyai total bobot terkecil. Semakin kecil nilai fitness dari kromosom yang terbentuk semakin baik kromosom tersebut.
17
apakah calon solusi tersebut dapat menjadi anggota populasi generasi berikutnya.
4. Pemilihan kromosom untuk dijadikan orang tua
Dari himpunan kromosom pada populasi kemudian dilakukan pemilihan dua buah kromosom untuk dijadikan orang tua. Pemilihan ini dapat dilakukan dengan berbagai metode seleksi antara lain: roda roulette seleksi, seleksi rangking, seleksi random dll. Kromosom orang tua yang terpilih tadi selanjutnya akan dikenakan operasi perkawinan silang (crossover) atau mutasi. Dan diharapkan melalui operasi ini akan menghasilkan individu-individu baru dengan nilai fitness yang lebih baik dari orang tuanya.
5. Proses reproduksi untuk menghasilkan kromosom baru
18
proses pertukaran gen kromosom dengan sebuah gen yang lain. Kromosom yang mengalami mutasi adalah kromosom hasil crossover dengan nilai fitness yang buruk. Mutasi dilakukan disesuaikan dengan besarnya probabilitas mutasi.
Perbedaan yang mendasar antara proses perkawinan silang dengan mutasi adalah bahwa pada perkawinan silang diperlukan dua kromosom orang tua sedangkan pada mutasi hanya diperlukan satu kromosom. Dengan operasi perkawinan silang ataupun mutasi yang dilakukan secara berulang-ulang melalui iterasi secara berturut-turut diharapkan akan menemukan kromosom yang paling baik. Kromosom tesebut diharapkan merepresentasikan solusi optimal atau solusi yang mendekati nilai optimal dari permasalahan yang ada.
2.2.2 Struktur Umum Algoritma Genetika
Bila P(t) adalah induk dan C(t) adalah keturunan pada generasi t, struktur umum algoritma genetika adalah sebagai berikut :
Procedure Algoritma Genetika begin
t 0
initialize P(t) ; evaluate P(t) ;
while (not terminate condition) do recombine P(t) to yield C(t) ; evaluate C(t) ;
select P(t+1) from P(t) and C(t) ; t t + 1;
19
2.2.3 Ilustrasi Algoritma Genetika
Keterangan
Dalam menyelesaikan suatu permasalahan, algoritma genetika diawali dengan menginisialisasikan himpunan solusi yang dibangkitkan secara random. Himpunan solusi ini disebut populasi (population). Setiap individu pada populasi disebut kromosom (chromosom), yang menggambarkan sebuah solusi dari suatu masalah yang akan diselesaikan.
Gambar 2.3 Struktur Umum Algoritma Genetika solutions
roulette wheel
0011011001
0011001001
offspring 1100101110 1011101010 0011001001 decoding fitness computation solutions 1100101010 1011101110 0011011001 1100110001
110010 1010 101110 1110
20
Sebuah kromosom dapat dinyatakan dalam simbol string, misalnya kumpulan string bit.
Dalam sebuah populasi, setiap kromosom akan dievaluasi dengan menggunakan alat ukur yang disebut dengan fitness (tingkat kesesuaian). Nilai fitness ini digunakan untuk mencari dua kromosom dari sebuah populasi yang akan dijadikan sebagai kromosom induk untuk melakukan regenerasi. Kromosom induk ini akan melakukan regenerasi melalui perkawinan silang (crossover) dan melakukan mutasi (mutation) yang akan menghasilkan kromosom baru (offspring). Perkawinan silang dilakukan dengan cara menggabungkan dua kromosom (induk) dengan menggunakan operator perkawinan silang . Sedangkan mutasi hanya berlaku pada sebuah kromosom, dan kromosom ini akan mengalami suatu perubahan (misalnya : 11101100 menjadi 11001100 pada string bit).
Hasil dari perkawinan silang dan mutasi ini (offspring) akan di evaluasi dengan menggunakan alat ukur yang disebut fitness. Kemudian akan dilihat apakah offspring ini merupakan solusi yang optimal atau belum. Jika optimal maka akan berhenti, dan offspring inilah jawabannya. Jika tidak, maka offspring ini akan diseleksi (selction) lagi dengan menggunakan roulette wheel. Offspring yang lulus seleksi akan menjadi populasi yang baru dan akan melakukan regenerasi lagi, sedangkan yang tidak lulus seleksi akan dibuang.
21
2.2.4 Pemodelan kromosom (pengkodean)
Pemodelan kromosom (pengkodean) adalah cara untuk merepresentasikan masalah kedalam bentuk kromosom. Ada beberapa macam pegkodean, yaitu :
a. Pengkodean Biner
Pengkodean biner merupakan bentuk reperesentasi yang paling banyak digunakan. Dalam pengkodean biner, parameter masalah dikodekan dengan kombinasi nilai biner 0 dan 1. Tabel 2.1 merupakan contoh kromosom dengan pengkodean biner.
Tabel 2.1 contoh pengkodean biner
Kromosom A 1101100100110110 Kromosom B 1101111000011110
Pengkodean biner memberikan banyak kemungkinan kromosom meskipun hanya memiliki jumlah nilai karakter yang sedikit, yaitu 0 atau 1. Contoh masalah yang sesuai untuk pengkodean biner antara lain masalah knapsack.
b. Pengkodean Permutasi
22
harus menghasilkan kromosom yang memiliki konsistensi urutan. Tabel 2.2 merupakan contoh kromosom dengan pengkodean permutasi.
Tabel 2.2 contoh pengkodean permutasi
Kromosom A 1 5 3 2 6 4 7 9 8
Kromosom B 8 5 6 7 2 3 1 4 9
c. Pengkodean Nilai
Pengkodean nilai dapat dipergunakan pada masalah yang mempunyai nilai yang rumit, dimana nilai yang dienkodekan (encoding) langsung merupakan representasi dari masalah. Contohnya adalah pengkodean data yang menggunakan angka real yang akan menjadi susah jika menggunakan pengkodean biner karena setiap angka real tidak dapat direpresentasikan secara tepat hanya dalam bentuk 0 atau 1. Tabel 2.3 merupakan contoh kromosom dengan pengkodean nilai.
Tabel 2.3 contoh pengkodean nilai
Kromosom A 1.2324 5.3243 0.4556 2.3293 2.4545
Kromosom B ABDJEFIGHJKLMNO
Kromosom C (back), (back), (right), (forward), (left)
23
Pengkodean nilai ini sangat baik untuk beberapa masalah khusus, di lain sisi perkawinan silang dan mutasi yang diperlukan untuk pengkodean ini seringkali memerlukan pengembangan tersendiri yang lebih spesifik pada masalah.
2.2.5 Operator Algoritma Genetika
Operator-operator dalam algoritma genetika yang sering digunakan adalah:
2.2.5.1 Seleksi
Seleksi akan menentukan individu-individu mana saja yang akan dipilih untuk dilakukan rekombinasi dan bagaimana offsring (keturunan) terbentuk dari individu-individu terpilih. Yang menjadi permasalahan adalah bagaimana cara memilih kromosom untuk dijadikan orang tua. Berdasarkan teori evolusi Darwin, kromosom yang terbaik harusnya dapat bertahan hidup dan membentuk keturunan baru. Ada beberapa jenis metode seleksi, yaitu :
a. Seleksi Roda Roulette (Roulette Wheel)
Pada metode seleksi ini, orang tua yang dipilih berdasarkan nilai fitness-nya, semakin baik nilai fitness-nya maka semakin besar
24
Kromosom Fitness
A 15
B 5
C 10
D 5
E 5
Gambar 2.4 Contoh Seleksi Roda Roulette
Probabilitas untuk masing-masing individu merupakan hasil pembagian antara fitness masing-masing individu dengan total fitness dalam populasi. Dari contoh diatas, kromosom A memiliki probabilitas 37,5% untuk terpilih sebagai orang tua pembentuk keturunan baru pada setiap pemilihan kromosom. Secara algoritma, seleksi roda roulette dapat dituliskan sebagai berikut :
begin
// jumlahkan fitness semua kromosom dari populasi P
s = sumfitness (P);
Skema seleksi dengan roda roulette ini adalah berdasarkan skala fitness. Karena terpilihnya suatu kromosom dalam populasi untuk
dapat berkembang biak adalah sebanding dengan fitness-nya, maka akan terjadi semacam tradeoff antara ekplorasi dan eksplotasi jika terdapat satu atau kelompok kecil kromosom yang mempunyai fitness yang baik yaitu antara mengekplorasi bagian-bagian baru dalam ruang
A B 37.5 12.5
25
pencarian, atau terus mengekplotasi informasi yang telah diperoleh. Kecendrungan kromosom yang baik untuk terpelihara terus dapat membawa ke hasil optimum lokal bukan global. Sebaliknya jika semua kromosom dalam populasi mempunyai fitness yang hampir sama, maka seleksi ini akan menjadi seleksi yang bersifat acak.
b. Seleksi Rangking
Seleksi rangking pertama yang dilakukan adalah merangking atau mengurutkan kromosom di dalam populasi berdasarkan fitness-nya kemudian memberi nilai fitness baru berdasarkan urutannya. Kromosom dengan nilai terburuk akan memiliki fitness baru bernilai 1, terburuk kedua bernilai 2, dan seterusnya, sebagai kromosom yang memiliki fitness terbaik akan memiliki nilai fitness n, dimana n adalah jumlah kromosom dalam populasi. Setelah proses pengurutan dan pemberian nilai fitness baru, setiap kromosom akan memiliki kesempatan yang lebih adil untuk terpilih. Tetapi metode ini dapat menyebabkan konvergensi menjadi lambat, karena kromosom terbaik tidak selalu berbeda dengan yang lainnya. Tabel 2.4 merupakan contoh dari roda roulette.
Tabel 2.4 Seleksi Rangking
Kromosom Fitnes Kromosom Fitnes Fitness baru
A 15 B 5 1
26
C 10 E 5 3
D 5 C 10 4
E 5 A 15 5
c. Seleksi Turnamen
Seleksi turnamen merupakan jenis seleksi yang divariasi berdasarkan seleksi roda roulette dan seleksi rangking. Sejumlah k kromosom tertentu dari populasi beranggota n kromosom (k n) dipilih secara acak dengan prioritas yang sama. Dari k kromosom yang terpilih kemudian akan dipilih satu kromosom dengan fitness terbaik, yang diperoleh dari hasil pengurutan rangking fitness semua kromosom terpilih.
Perbedaannya dengan seleksi roda roulette adalah pemilihan kromosom yang akan dipergunakan untuk berkembang biak tidak berdasarkan skala fitness dari populasi. Untuk k=1, seleksi turnamen akan sama dengan seleksi secara acak karena hanya melibatkan satu kromosom. Untuk k=2, maka dua kromosom dari populasi secara acak, kemudian akan dipilih satu kromosom dengan nilai fitness terbaik. Biasanya yang sering digunakan adalah k = 2, tergantung dari jumlah kromosom yang terdapat di dalam populasi.
2.2.5.2 Perkawinan Silang (Crossover)
27
dalam algoritma genetika dibandingkan dengan operator mutasi. Jumlah kromosom yang terlibat adalah 2 kromosom.
Perkawinan silang dilakukan dengan harapan kromosom-kromosom baru akan mempunyai bagian baik dari kromosom-kromosom lama dan tidak menutup kemungkinan menjadi kromosom-kromosom yang lebih baik. Ada beberapa pekawinan silang:
a. One Point Crossover
Satu titik pindah silang dipilih, string baru dibentuk sebagian dari induk pertama (dari awal srting sampai titik pindah silang), sisanya dari induk kedua. Contoh :
induk 1 1 2 3 4 5 | 6 7 8 induk 2 9 10 11 12 13 | 14 15 16
Anak 1 1 2 3 4 5 | 14 15 16 Anak 2 9 10 11 12 13 | 6 7 8
b. Two Point Crossover
Pilih dua titik pindah silang, string baru dibentuk sebagian dari induk pertama (dari awal string sampai titik pindah silang pertama), antara titik pindah silang dari induk kedua, dan dari titik pindah silang kedua sampai akhir dari induk pertama.
28
induk 1 1 2 | 3 4 5 | 6 7 8 induk 2 9 10 | 11 12 13 | 14 15 16 Anak 1 1 2 | 11 12 13 | 6 7 8 Anak 2 9 10 | 3 4 5 | 14 15 16
c. Uniform Crossover
String dibentuk dengan mengambil bagian dari induk pertama atau induk kedua secara acak.
Contoh :
induk 1 1 2 3 4 5 6 7 8 induk 2 9 10 11 12 13 14 15 16
Anak 1 2 9 10 5 6 12 14
d. Aritmmetic Crossover
String baru dibentuk dengan melakukan operasi aritmatika (operasi OR) pada induknya.
Contoh :
induk 1 1 2 8 4 5 12 7 (0001 0010 1000 0100 0101 1100 0111)
induk 2 8 9 2 10 12 4 13 (1000 1001 0010 1010 1100 0100 1101)
29
Pada proses pindah silang untuk pengkodean permutasi ada kemungkinan pindah silang menghasilkan sebuah kromosom dengan dua atau lebih allele yang sama.
Contohnya adalah sebagai berikut:
induk 1 1 2 3 4 | 5 6 7 8 induk 2 3 5 7 9 | 4 6 8 0
Anak 1 2 3 4 | 4 6 8 0
2.2.5.3 Mutasi
Mutasi merupakan proses mengubah nilai dari 1 atau beberapa gen dalam satu kromosom. Tujuannya adalah untuk membantu mempercepat terjadinya perbedaan diantara semua kromosom dalam populasi sehingga pencarian dapat menjelajah keseluruh ruang pencarian, tetapi mutasi tidak boleh terlalu sering dilakukan karena akan membuat algoritma genetika berubah menjadi pencarian acak.
30
Contoh :
Kromosom Orang tua : 1 2 3 4 5 6 8 9 7
Kromosom Keturunan : 1 8 3 4 5 6 2 9 7
2.2.6 Parameter Genetika
a. Probabilitas Crossover
Probabilitas atau peluang crossover ini menunjukkan rasio dari kromosom anak yang dihasilkan dengan ukuran populasinya dalam setiap generasi. Probabilitas crossover ini juga dapat menunjukkan jumlah kromosom dalam populasi yang akan mengalami crossover pada setiap generasi. Biasanya besarnya probabilitas crossover berkisar antara 20 – 80%.
b. Probabilitas Mutasi
Probabilitas mutasi merupakan representasi dari jumlah total gen pada populasi yang akan mengalami mutasi. Besarnya probabilitas mutasi biasanya berkisar antara 0.5 – 1%.
c. Ukuran Populasi
31
BAB III
ANALISA DAN PERANCANGAN SISTEM
3.1 Definisi Masalah
3.1.1 Analisa Sistem
Proses penjadwalan kuliah di jurusan Teknik Informatika Universitas
Sanata Dharma masih menggunakan cara manual. Dalam proses
penjadwalan kuliah ini menyangkut penempatan mata kuliah yang
ditawarkan pada hari, ruang dan jam tertentu. Permasalahan yang dihadapi
dalam proses pembuatan jadwal kuliah antara lain, bagaimana pada hari,
ruang dan jam yang sama tidak ada dua atau lebih kelas mata kuliah yang
diajarkan, bagaimana dalam hari dan jam yang sama tidak ada satu orang
dosen yang mengajar dua mata kuliah bersamaan. Proses seperti ini dapat
saja dilakukan secara manual namun penanganan seperti ini akan
mengalami banyak hambatan terutama dalam hal ketelitian dan juga
membutuhkan waktu yang lama.
3.1.2 Gambaran Umum Sistem Yang Dibuat
Untuk mengatasi permasalahan dari proses sistem manual, maka
diperlukan suatu sistem lain yang dapat menangani hal tersebut, agar
didapatkan suatu informasi yang cepat dan tepat. Persoalan penjadwalan
kuliah ini dapat diselesaikan menggunakan algoritma genetika. Algoritma
32
optimasi yang berdasarkan pada mekanisme seleksi alami dan sifat genetika.
Dari data yang ada, berupa data hari, data ruang, data jam, data dosen dan
data mata kuliah yang ditawarkan dapat diarahkan untuk pembentukan
kromosom-kromosom sebagai populasi awal, yang akan mewakili berbagai
kemungkinan jadwal kuliah yang akan terbentuk. Dari berbagai
kemungkinan jadwal kuliah yang terbentuk akan dipilih beberapa jadwal
kuliah yang terbaik yang akan dijadikan sebagai kromosom induk. Dari
kromosom-kromosom induk ini akan dikembangkan dalam perkawinan
silang dan mutasi, yang nantinya diharapkan akan memberikan keturunan
yang baik sebagai hasil akhir.
Flowchart sistem yang akan dibuat tampak pada gambar 3.1
33
Flowchart Algoritma Genetika:
34
3.2 Perancangan Antarmuka
3.2.1 Perancangan Menu
Gambar 3.3 Perancangan Menu
3.2.2 Perancangan Input dan Output
3.2.2.1 Perancangan Input
a. Rancangan Form Utama
SPPK Penjadwalan Kuliah Dengan Algortima Genetika
Data Penjadwalan Keluar
LOGO
Gambar 3.4 Perancangan Form Utama
Form utama yang terdiri dari beberapa menu yaitu Data, Penjadwalan,
35
Data Dosen, Data Ruang untuk dan Data Kelas. Sementara menu
Penjadwalan terdapat sub menu proses Pembuatan jadwal, dan menu
Keluar untuk keluar dari program.
b. Rancangan Form Data Matakuliah
Gambar 3.5 Perancangan Form Data Matakuliah
Form Data Matakuliah berfungsi untuk memasukan data mata kuliah.
Data-data mata kuliah meliputi kode matakuliah, nama matakuliah, sks,
dan semester. Didalam form ini terdapat beberapa button yaitu: Button
Tambah untuk memasukkan (menambah) data matakuliah. Button Edit
untuk meng-edit data matakuliah, dengan cara memilih terlebih dahulu
data yang akan di-edit, kemudian klik button Edit. Button Hapus
digunakan bila ingin menghapus data matakuliah, dengan cara memilih
terlebih dahulu data yang ingin dihapus kemudian klik button Hapus. Dan
36
c. Rancangan Form Data Dosen
Gambar 3.6 Perancangan Form Data Dosen
Form Data Dosen berfungsi untuk memasukkan data dosen. Data-data
dosen meliputi kode dosen, nama dosen dan prodi. Setelah semua data
telah diisi, data-data tersebut akan disimpan kedalam tabel dosen. Pada
form ini terdapat beberapa button yaitu: Button Tambah untuk
memasukkan (menambah) data dosen. Button Edit untuk mengedit data
dosen, dengan cara memilih terlebih dahulu data yang akan diedit,
kemudian klik button Edit. Button Hapus digunakan jika ingin menghapus
data dosen, dengan cara memilih terlebih dahulu data yang ingin dihapus
kemudian klik button Hapus. Button Preview digunakan untuk melihat
37
d. Rancangan Form Data Ruang
Gambar 3.7 Perancangan Form Data Ruang
Form Data Ruang berfungsi untuk memasukkan data ruang. Data
ruang meliputi kode ruang dan nama ruang. Terdapat beberapa Button
yaitu, button Tambah untuk memasukkan (menambah) data dosen. Button
Edit untuk mengedit data dosen, dengan cara memilih terlebih dahulu data
yang akan diedit, kemudian klik buttonEdit. Button Hapus digunakan jika
ingin mengahapus data dosen. Button Preview digunakan untuk melihat
38
e. Rancangan Form Data Kelas Matakuliah
Gambar 3.8 Perancangan Form Data Kelas Matakuliah
Form Data Kelas Matakuliah berfungsi untuk memasukkan data
kelas matakuliah. Setelah semua data telah diisi, data-data tersebut
akan disimpan kedalam tabel kelas. Pada form ini terdapat beberapa
Button yaitu, button Tambah untuk memasukkan (menambah) data
kelas matakuliah. Button Edit digunakan untuk mengedit data kelas
matakuliah, dengan cara memilih terlebih dahulu data yang akan
diedit, kemudian klik Button Edit. Button Hapus digunakan jika ingin
menghapus data kelas matakuliah, dengan cara memilih terlebih
dahulu data yang ingin dihapus kemudian klik Button Hapus. Button
39
f. Rancangan Form Proses Penjadwalan
Gambar 3.9 Perancangan Form Proses Algortima Genetika
Form proses penjadwalan kuliah ini digunakan untuk melakukan
proses algortima genetika dalam membuat jadwal kuliah. Form ini
dapat bekerja jika data matakuliah, data dosen, data ruang dan data
kelas matakuliah sudah diisi. Pada form proses penjadwalan ini
terdapat empat button yaitu, Generate, Start, Stop dan Preview. Untuk
membuat jadwal kuliah pengguna pertamakali mengklik button
Generate, kemudian button Start untuk memulai proses. Button
Preview digunakan untuk melihat jadwal kuliah dari hasil proses
algortima genetika. Dan button Stop digunakan jika pengguna ingin
40
(%) berisi Crossover dan Mutasi, probabilitas crossover dan mutasi
dapat diubah dalam rentangan antara 0% - 100% ketika button
Generate diklik terlebih dahulu. Sedangkan Target Fitness berisi
tujuan yang ingin dicapai dalam proses algortima genetika, yaitu berisi
nol (0) angka maksimal dari nilai fitness.
3.3 Perancangan Basisdata
3.3.1 ER Diagram
Gambar 3.10 ER Diagram
! "
# $
#
$
"
41
3.3.2 Perancangan Tabel
a. Tabel Matakuliah
Tabel 3.1 Tabel Matakuliah
Field Name Type Size Key
kode_mk char 6 *
nama_mk char 27
Sks char 1
Semester char 3
b. Tabel Dosen
Tabel 3.2 Tabel Dosen
Field Name Type Size Key
id_dosen Char 9 *
nama_dosen Char 25
prodi Char 25
c. Tabel Kelas Matakuliah
Tabel 3.3 Tabel Kelas
Field Name Type Size Key
kode_kelas Char 2 *
kode_mk Char 6
kelas Char 1
42
3.4 Perancangan Algoritma Genetika dalam Penjadwalan Mata Kuliah
a. Representasi Masalah
Dalam menyelesaikan masalah penjadwalan mata kuliah dengan
algoritma genetika, yang harus dilakukan adalah membawa permasalahan
penjadwalan kuliah ke dalam bentuk yang dapat dimengerti oleh algoritma
genetika atau mengkodekan masalah menjadi kode-kode tertentu. Dalam
penjadwalan kuliah ini untuk membentuk sebuah model kromosom
menggunakan pengkodean dengan cara permutasi. Model kromosom akan
dibangun dari komponen dalam penjadwalan mata kuliah.
Penjadwalan mata kuliah memiliki beberapa komponen yaitu mata
kuliah, dosen, hari, jam, dan ruang, dan memiliki beberapa aturan-aturan
untuk mengatur pembuatan penjadwalan mata kuliah. Keempat komponen
yaitu mata kuliah, ruang, hari, dan jam akan digunakan sebagai pembentuk
model kromosom. Kromosom akan dibangun dengan menempatkan setiap
mata kuliah pada hari, ruang, dan jam tertentu, di mana hari, ruang dan
jam terlebih dahulu diarahkan menjadi sebuah kode.
Kumpulan beberapa gen membentuk kromosom. Masing masing
gen menempati hari, ruang dan jam tertentu. Panjang sebuah kromosom
merupakan jumlah hasil kali antara jumlah hari, jumlah ruang, dan jumlah
jam. Jumlah gen yang terbentuk diperoleh dari perhitungan dengan
rumus:
43
Keterangan :
K adalah jumlah gen
H adalah jumlah hari yang digunakan untuk perkuliahan
R adalah jumlah ruangan yang digunakan untuk perkuliahan
W adalah jumlah waktu yang digunakan dalam perkuliahan
Sebagai contoh : untuk menjadwalkan 7 matakuliah dengan 2
hari, 2 ruang, dan 5 waktu untuk perkuliahan.
Jumlah gen = 2 * 2* 5
= 20
Jika diilustrasikan pengkodean sebuah kromosom, tampak seperti gambar
3.11 berikut ini :
Hari ke-1 Hari ke-2
1 0 3 0 0 0 2 0 4 0 5 0 0 7 0 0 6 0 0 0
Ruang 1 Ruang 2 Ruang 1 Ruang 2
Jam ke-1 Jam ke-4 jam ke-2 jam ke-4
Jam ke-2 Jam ke-4 jam ke-1 jam ke-5
44
Gambar 3.11 menunjukkan bahwa setiap gen kromosom ditempati
satu matakuliah, dimana nilai 1-7 merupakan kode urutan kelas
matakuliah. Dan bila diartikan untuk matakuliah 1-7 yaitu :
Tiap kotak mempresentasikan = [Matakuliah; Hari; Ruang; Jam]
Jadi untuk,
kotak ke-1 1 = [1; 1; I; 01]
[Matakuliah 1; Hari ke-1; Ruang I;Jam ke- 1]
kotak ke-3 3 = [3; 1; I; 03]
[Matakuliah 3; Hari ke-1; Ruang I;Jam ke- 3]
kotak ke-7 2 = [2; 1; I; 01]
[Matakuliah 2; Hari ke-1; Ruang II;Jam ke- 2]
kotak ke-9 4 = [4; 1; II; 01]
[Matakuliah 4; Hari ke-2; RuangI I;Jam ke- 4]
kotak ke-11 5 = [5; 2; II; 04]
[Matakuliah 5; Hari ke-2; Ruang I;Jam ke- 1]
Kotak ke-14 7 = [7; 2; I; 04]
[Matakuliah 7; Hari ke-2; Ruang I; Jam ke-4]
Kotak ke-17 6 = [6; 2; I; 01]
45
b. Pembentukan Kromosom
Langkah pertama dalam proses penjadwalan kuliah dengan algoritma
genetika adalah membuat populasi awal sebanyak 10 kromosom. Kromosom
akan dibangkitkan secara acak untuk menempatkan mata kuliah pada setiap
hari, ruang, dan jam tertentu.
c. Pencarian Nilai Fitness untuk masing-masing Kromosom
Dilakukan operasi pencarian nilai fitness tehadap kromosom-kromosom
yang telah terbentuk. Nilai fitness merupakan tingkat kesesuaian suatu
krosomsom setelah dilakukan evaluasi susunan kromosomnya. Nilai fitness
ini yang menetukan kualitas suatu kromosom, apakah kromosom itu
mempunyai kualitas baik atau buruk. Nilai fitness dari tiap kromosom
diperoleh dari pelanggaran terhadap aturan-aturan yang telah ditentukan, jika
nilai fitness=0 maka nilai fitness adalah optimal. Nilai fitness dikatakan
optimal jika tidak terjadi pelanggaran terhadap aturan-aturan yang telah
ditetapkan.
Sehingga dapat dirumuskan sebagai berikut :
Total Nilai Fitness = Pelanggaran………. (III.2)
Dimana :
46
Tabel 3.4 Aturan – aturan penjadwalan kuliah
Aturan :
1 Dua atau lebih kelas matakuliah yang
berbeda tidak dapat berada pada hari, ruang
dan jam yang sama.
Pelanggaran = 1, jika
ada dua matakuliah pada hari, jam
dan ruang yang sama.
2 Tidak boleh ada dua atau lebih kelas
matakuliah dengan satu orang dosen
pengajar dalam waktu bersamaan
Pelanggaran = 1, jika
ada mata kuliah yang diajar oleh
satu dosen dalam waktu yang
bersamaan.
3 Kelas tunggal tidak boleh berada pada hari,
dan jam yang sama dengan kelas matakuliah
dalam satu semester yang sama.
Pelanggaran = 1, jika
ada kelas tunggal berada pada hari
dan jam yang sama dengan
matakuliah lain dalam satu
semester sama.
4 Jumlah matakuliah dalam satu semester
yang sama tidak boleh lebih dari 3, dihari
yang sama
Pelanggaran = 1, jika
Jumlah mata kuliah yang
diselenggarakan pada hari yang
sama dalam satu paket > 3
d. Pemilihan Kromosom untuk dijadikan orang tua
Pemilihan kromosom untuk dijadikan orang tua dilakukan berdasarkan nilai
fitness dari masing-masing kromosom. Orang tua dipilih dari kromosom yang
mempunyai nilai fitness yang terbaik. Seleksi yang digunakan untuk pemilihan
adalah seleksi roda roulette (roulette wheel selection). Secara umum cara kerja
dari seleksi roda roulette adalah semua kromosom yang telah dicari nilai
47
ditentukan dari nilai fitnessnya, semakin kecil nilai fitness dari suatu kromosom
maka semakin luas tempat dari kromosom tersebut dalam lingkaran, sehingga
kromosom yang mempunyai nilai fitness yang kecil mempunyai kemungkinan
besar untuk dapat terpilih. Selanjutnya roda roulette akan diputar, dan roda
roulette akan menunjuk kromosom yang dipilih. Anggota-anggota populasi yang
terpilih ini akan dijadikan orang tua yang nantinya akan dikenakan operasi
persilangan dan operasi mutasi untuk mendapatkan kromosom yang lebih baik
dari pada sebelumnya.
e. Proses Reproduksi untuk mendapatkan Kromosom baru
Operasi persilangan dan operasi mutasi digunakan untuk mendapatkan
kromosom yang lebih baik dari induknya. Operasi persilangan merupakan
proses penggabungan dua kromosom (dua orang tua yang terpilih) untuk
menghasilkan dua individu yang baru, sedangkan operasi mutasi merupakan
proses pengubahan pada satu bagian (gen) dari sebuah kromosom yang
terpilih untuk menghasilkan individu baru. Dan nantinya individu-individu
hasil persilangan maupun mutasi akan ditentukan juga nilai fitnes-nya.
3.5 Penerapan Algortima Genetika
Untuk menjadwalkan 59 matakuliah dengan :
• 5 hari
• 7 ruang kuliah
48
Data yang dibutuhkan dalam penjadwalan kuliah
Matakuliah
Tabel 3.5 Contoh Data Matakuliah
KodeMK Nama_Mata_Kuliah Sk
s
JP Semester
TIF001 Pengantar Data Statistik 2 2 II
TIF002 Matematika Diskret 3 3 II
TIF003 Organisasi Komputer 3 3 II
TIF004 Komunikasi Data 3 3 II
TIF005 Metode Numerik 3 3 II
TIF006 Pemrograman Berorientasi Objek I 3 3 II
USD001 Filsafat Moral 2 2 II
USD002 Teologi Moral 2 2 II
TIF007 Analisis Kebutuhan PL 3 3 IV
TIF008 Analisis Algo 3 3 IV
TIF009 Transmisi Data 3 3 IV
TIF010 Sistem Operasi 3 3 IV
TIF011 Struktur Data II 3 3 IV
TIF012 Pemrograman Basis Web 3 3 IV
USD003 Pendidikan Pancasila 2 2 IV
USD004 Bahasa Indonesia 2 2 IV
USD005 Filsafat Ilmu Pengetahuan 2 2 VI
TIF013 Proyek RPL 3 3 VI
TIF014 Simulasi Model 3 3 VI
TIF015 BasisData Lanjut 3 3 VI
TIF016 Animasi Komputer 3 3 VIII
TIF017 Pengujian Perangkat Lunak 3 3 VIII
49
TIF019 SPPK 3 3 VIII
TIF020 Manajemen Resiko PL 3 3 VIII
TIF021 BasisData Multimedia 3 3 VIII
TIF022 Penambangan Data 3 3 VIII
TIF023 Pemrograman Client Server 3 3 VIII
TIF024 Jaringan Saraf Tiruan 3 3 VIII
TIF025 Basis Data Terdistribusi 3 3 VIII
Dosen
Tabel 3.6 Contoh Data Dosen
id_dosen nama_dosen prodi
d1-001 Puspanigtyas TI
d1-002 A.M Polina TI
d1-003 Ridowati TI
d1-004 Agung Hermwan TI
d1-005 St. Yudianto TI
d1-006 Budi Dharmawan TI
d1-007 Albertus Agung TI
d1-008 Stevanus Wisnu TI
d1-009 Merry TI
d1-010 Antok TI
d2-001 PH Prima Rosa TI
d2-002 St Eko Hari TI
d2-003 Sri Hartanti TI
d2-004 Iwan Binanto TI
d2-005 A Rita Widiarti TI
d2-006 Rm. Kun TI
50
d2-008 Joko TI
d3-001 Any Umum
d3-002 Esti Umum
d3-003 Yanto Umum
d3-004 Chandra Umum
d3-005 Heri Umum
d3-006 Atmadi Umum
Hari
Tabel 3.7 Contoh Data Hari
No. Nama Hari
1 Senin
2 Selasa
3 Rabu
4 Kamis
5 Jumat
Ruang
Tabel 3.8 Contoh Data Ruang
No. Nama Hari
1 K-204
2 K-205
3 K-206
4 K-207
5 K-208
6 K-310
51
Jam
Tabel 3.9 Contoh Data Jam
No. Nama_Jam
1 07.00
2 08.00
3 09.00
4 10.00
5 11.00
6 12.00
7 13.00
8 14.00
9 15.00
10 16.00
Kelas Kuliah
Tabel 3.10 Contoh Data Kelas Mata Kuliah
Kode
Kelas
KodeMK Nama_Mata_Kuliah Kelas Id_dose
n
Semeste
r
1 TIF001 Pengantar Data Statistik A d1-008 II
2 TIF001 Pengantar Data Statistik B d2-006 II
3 TIF001 Pengantar Data Statistik C d1-009 II
4 TIF001 Pengantar Data Statistik D d1-009 II
5 TIF001 Pengantar Data Statistik E d2-006 II
6 TIF002 Matematika Diskret A d1-007 II
7 TIF002 Matematika Diskret B d1-007 II
8 TIF002 Matematika Diskret C d2-002 II
9 TIF003 Organisasi Komputer A d1-005 II
52
11 TIF003 Organisasi Komputer C d1-005 II
12 TIF004 Komunikasi Data A d1-010 II
13 TIF004 Komunikasi Data B d1-010 II
14 TIF004 Komunikasi Data C d1-004 II
15 TIF005 Metode Numerik A d1-009 II
16 TIF005 Metode Numerik B d1-009 II
17 TIF005 Metode Numerik C d2-002 II
18 TIF006 Pemrograman Berorientasi Objek I A d2-003 IV
19 TIF006 Pemrograman Berorientasi Objek I B d1-006 IV
20 TIF006 Pemrograman Berorientasi Objek I C d2-001 IV
21 USD001 Filsafat Moral A d3-003 IV
22 USD002 Teologi Moral A d3-002 IV
23 USD002 Teologi Moral B d3-002 IV
24 TIF007 Analisis Kebutuhan PL A d1-001 IV
25 TIF007 Analisis Kebutuhan PL B d1-001 IV
26 TIF008 Analisis Algo A d2-003 IV
27 TIF009 Transmisi Data A d2-007 IV
28 TIF010 Sistem Operasi A d1-004 IV
29 TIF010 Sistem Operasi B d1-004 IV
30 TIF010 Sistem Operasi C d2-004 IV
31 TIF011 Struktur Data II A d2-003 IV
32 TIF011 Struktur Data II B d2-003 IV
33 TIF012 Pemrograman Basis Web A d2-008 IV
34 TIF012 Pemrograman Basis Web B d2-008 IV
35 TIF012 Pemrograman Basis Web C d2-004 IV
36 TIF012 Pemrograman Basis Web D d2-004 IV
37 USD003 Pendidikan Pancasila A d3-001 IV
38 USD003 Pendidikan Pancasila B d3-001 IV
39 USD004 Bahasa Indonesia A d3-005 IV
53
41 USD004 Bahasa Indonesia C d3-004 IV
42 USD005 Filsafat Ilmu Pengetahuan A d3-005 VI
43 TIF013 Proyek RPL A d1-003 VI
44 TIF013 Proyek RPL B d1-002 VI
45 TIF013 Proyek RPL C d2-001 VI
46 TIF013 Proyek RPL D d1-002 VI
47 TIF014 Simulasi Model A d2-002 VI
48 TIF015 BasisData Lanjut A d1-003 VI
49 TIF015 BasisData Lanjut B d1-002 VI
50 TIF016 Animasi Komputer A d2-004 VIII
51 TIF017 Pengujian Perangkat Lunak A d1-008 VIII
52 TIF018 Pemrosesan Citra A d2-008 VIII
53 TIF019 SPPK A d2-001 VIII
54 TIF020 Manajemen Resiko PL A d1-008 VIII
55 TIF021 BasisData Multimedia A d1-002 VIII
56 TIF022 Penambangan Data A d2-006 VIII
57 TIF023 Pemrograman Client Server A d1-001 VIII
58 TIF024 Jaringan Saraf Tiruan A d2-006 VIII
59 TIF025 Basis Data Terdistribusi A d1-006 VIII
1. Pembangkitan Kromosom
Panjang Kromosom = Jumlah hari * Jumlah ruang * jumlah jam
= 5*7*10
= 350
Jumlah gen untuk sebuah kromosom = 350
Tiap gen dalam sebuah kromosom menyatakan hari, ruang dan jam
tertentu. Dan sebuah gen dinyatakan dengan sebuah kotak. Oleh karena
54
Dan untuk gen yang kosong diisi dengan 0 (nol). Hal ini dilakukan untuk
mengatasi permasalahan dalam perhitungan fitness, proses crossover dan
mutasi.
Untuk populasi awal dibangkitkan 10 kromosom secara acak (masing-
55
Kromosom 1- 10, Gen 1-25
Tabel 3.11 Kromosom 1- 10, Gen 1-25 Gen
Kromososm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
1 0 0 0 0 39 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0
2 0 0