ABTRACT
The process of scheduling courses is a process to implement an event that
contains the components of courses, classes, and lecturer at the time slot that
contains the components of time and space. Schedule of courses is very important
for the smooth process of teaching and learning at the University Computer
Engineering Department of Computer Indonesia.Dalam build alternative
solutions, the genetic algorithm will consider aspects of faculty time for teaching.
There should be a schedule of lectures berisian with class schedules before and the
armed forces afterwards. Genetic algorithm solution is calculated based on the
evenness of the distribution of teaching each lecturer.
One algorithm that appears to solve this problem is genetic algorithms, In this
will be an intensive program of genetic algorithm to create a course scheduler.
The system is designed using a genetic algorithm representation of chromosomes,
inisialisi population, reproduction and selection, crossover, mutation and fitness
evaluation.
Application of genetic algorithm was tested with visual basic 6.0 program,
and performed in 100 generations, where each generation has a value that varies
depending on the input input. Population size 100 and 50, the probability of
crossover 75 and the probability of mutations 3, 4, and 5. results obtained at the
end of the course scheduling solutions at a price of 97.222 fitness.
Key words: genetic algorithms, population, chromosome, fitness, crossover, and
i
ABSTRAK
Proses penjadwalan mata kuliah adalah suatu proses untuk menerapkan
event yang berisi komponen mata kuliah, kelas dan dosen pada time slot yang
berisi komponen waktu dan ruang. Jadwal mata kuliah merupakan hal yang
sangat penting bagi kelancaran proses belajar mengajar di Jurusan Teknik
Komputer Universitas Komputer Indonesia.Dalam membangun alternative
solusi, algoritma genetika akan mempertimbangkan aspek waktu dosen untuk
mengajar. Tidak boleh adanya jadwal kuliah yang berisian dengan jadwal kuliah
angkatan sebelum maupun angkatan sesudahnya. Solusi algoritma genetika
dihitung berdasarkan kemerataan distribusi mengajar setiap dosen.
Salah satu algoritma yang muncul untuk menyelesaikan persoalan ini adalah
algoritma genetika, Pada peneletian ini akan dibuat program algoritma genetik
untuk membuat penjadwal mata kuliah. Sistem algoritma genetik didesain
menggunakan representasi kromosom, inisialisi populasi, reproduksi dan seleksi,
crossover, mutasi dan evaluasi fitness.
Pengaplikasian algoritma genetik ini diuji dengan program visual basic 6.0,
dan dilakukan dalam 100 generasi, dimana setiap generasi mempunyai nilai yang
bervariasi tergantung input masukan. Ukuran populasi 100 dan 50, probabilitas
crossover 75 dan probabilitas mutasi 3, 4, dan 5. pada hasil akhir diperoleh
solusi penjadwalan mata kuliah dengan harga fitness 97,222.
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Proses penjadwalan mata kuliah adalah suatu proses untuk menerapkan event
yang berisi komponen mata kuliah, kelas dan dosen pada time slot yang berisi
komponen waktu dan ruang. Jadwal mata kuliah merupakan hal yang sangat
penting bagi kelancaran proses belajar mengajar di Jurusan Teknik Komputer
Universitas Komputer Unikom. Sering terjadinya tumbukan, baik tumbukan yang
terjadi pada mata kuliah yang diambil mahasiswa maupun tumbukan yang terjadi
pada dosen mengakibatkan tidak efektifnya proses belajar mengajar di Jurusan
Teknik Komputer. Ditambah lagi terjadinya pergantian jadwal yang
mengakibatkan bertambahnya tumbukan yang terjadi pada mahasiswa.
Untuk membuat jadwal mata kuliah yang baik harus memperhatikan berbagai
aspek yang mempengaruhi penjadwalan mata kuliah ini. Dari aspek mahasiswa,
perlu perhatikan ada atau tidaknya tumbukan pada mata kuliah yang diambil oleh
mahasiswa, selain dilihat dari aspek mahasiswa, juga harus melihat dari aspek
dosen, yaitu kemungkinan-kemungkinan dosen yang bersangkutan tidak bisa
mengajar dengan baik karena sedang tugas belajar di jenjang lebih lanjut maupun
karena sudah memiliki jadwal mengajar di jurusan lain, selain itu, harus
dipertimbangkan juga ketersediaan kelas sehingga kegiatan belajar dapat
dilaksanakan.
Algoritma genetika termasuk teknik pencarian acak terarah (guide random
search). Algoritma ini digunakan untuk mendapatkan solusi dari persoalan yang
menggunakan satu atau multi variable seperti pada persoalan penjadwalan mata
kuliah.
Dari latar belakang yang telah disebutkan di atas, maka dalam tugas akhir ini
akan dicoba mengaplikasikan algoritma genetika untuk mendapatkan jadwal mata
kuliah terbaik di Jurusan Teknik Komputer Universitas Komputer Indonesia.
dosen pengajar secara keseluruhan, tidak ada permasalahan tumbukan jadwal pada
sisi mahasiswa, serta ketersediaan ruang yang cukup dan sesuai secara fasilitas
untuk seluruh mata kuliah yang ada.
1.2 Maksud dan Tujuan
Maksud penulis tugas akhir ini adalah membuat suatu aplikasi algoritma
genetika yang dapat digunakan untuk membentuk penjadwalan mata kuliah yang
efektif, yaitu terjadinya kombinasi terbaik untuk pasangan mata kuliah dan dosen
pengajar secara keseluruhan, tidak ada permasalahan tumbukan jadwal pada sisi
mahasiswa, serta ketersedian ruang yang cukup untuk seluruh mata kuliah yang
ada.
Tugas akhir ini bertujuan untuk mendapatkan pemecahan masalah dengan
solusi yang optimal pada persoalan penjadwalan mata kuliah. Dimana optimasi
yang ingin dicapai adalah meminimalkan penyusunan jadwal mata kuliah di
Jurusan Teknik Komputer.
1.3 Rumusan Masalah
Berdasarkan latar belakang masalah, maka yang menjadi permasalahan
adalah bagaimana mengaplikasikan algoritma genetika agar dapat digunakan
untuk melakukan penjadwalan mata kuliah sehingga diperoleh jadwal mata kuliah
dengan kombinasi terbaik untuk pasangan mata kuliah dan dosen pengajar secara
keseluruhan, tidak ada permasalahan tumbukan jadwal pada sisi mahasiswa, serta
ketersediaan ruang yang cukup untuk seluruh mata kuliah.
1.4 Batasan Masalah
Batasan masalah dimaksud agar pembahasan dapat dilakukan secara terarah
dan tercapai sesuai dengan yang diharapkan, maka perlu ditetapkan
batasan-batasan permasalahan yang akan dibahas:
1. Komponen yang terdapat dalam penjadwalan mata kuliah yaitu kelas, mata
kuliah, waktu, ruang dan dosen.
2. Adanya batasan jam perkuliahan dalam satu hari yaitu dari jam 07.00
3. Mahasiswa dapat mengambil mata kuliah angkatan sebelumnya maupun
sesudahnya.
4. Dosen mampu mengajar pada setiap waktu yang telah ditentukan oleh
jadwal.
5. Bahasa pemrograman yang dipakai adalah bahasa pemrograman Visual
Basic 6.0.
1.5 Metodologi penelitian 1. Studi literatur
Metode pengumpulan data dengan cara membaca atau mempelajari
buku-buku, browsing internet yang berhubungan dengan masalah yang menjadi
topik tugas akhir.
2. Interview
Merupakan metode pengumpulan data dengan cara mengajukan
pertanyaan-pertanyaan secara langsung kepada pihak-pihak yang
mengetahui hal-hal yang dipelajari selama pekerjaan tugas akhir.
3. Analisis dan Perancangan perangkat lunak
Mengaplikasikan teori yang didapat dari studi pustaka dan dari hasil
bimbingan.
4. Implementasi dan pengujian perangkat lunak.
5. Membuat Simpulan dan Saran.
Menyimpulkan bagian-bagian sebelumnya dan memberikan saran untuk
penelitian dengan topik sejenis dimasa mendatang.
1.6 Sistematika Penulisan
Untuk memberikan gambaran dalam penyusunan dan penulisan tugas akhir
ini, maka ditetapkan sistematika penulisan sebagai berikut:
BAB I Pendahuluan
Bab ini berisi tentang latar belakang masalah, rumusan masalah,
BAB II Dasar Teori
Bab ini berisi tentang tinjauan pustaka yang diambil dari berbagia
sumber buku, situs dan hasil diskusi dengan dosen pembimbing yang
memuat pembahasan teori-teori mengenai pengertian algoritma
genetika, pengertian individu, struktur umum algoritma genetika, dan
komponen-komponen algoritma.
BAB III Perancangan Sistem
Bab ini berisi perancangan program algoritma genetika untuk mencari
solusi.
BAB IV Analisi Masalah
Bab ini membahas implemintasi dari perancangan program algoritma
genetik, menguji keberhasilan algoritma genetika untuk mencari
solusi.
BAB V Simpulan dan Saran
Bab ini berisi simpulan analisis masalah serta saran guna
meningkatkan dan mengembangkan metode pencarian yang lebih
BAB II
DASAR TEORI
2.1 Algoritma Genetika
Algoritma genetika merupakan evaluasi atau perkembangan dunia komputer
dalam bidang kecerdasan buatan (artificial intelligence). Kemunculan algoritma
genetika ini terinspirasi oleh teori Darwin (walaupun pada kenyataannya teori
tersebut terbukti keliru) dan teori-teori dalam ilmu biologi, sehingga banyak
istilah dan konsep biologi yang digunakan dalam algoritma genetika, karena
sesuai dengan namanya, proses-proses yang terjadi dalam algoritma genetika
sama dengan apa yang terjadi pada evaluasi biologi. [4]
Algoritma genetika adalah suatu algoritma pencarian yang berbasis pada
mekanisme seleksi alam dan genetika. Algoritma genetika merupakan salah satu
algoritma yang sangat tepat digunakan dalam menyelesaikan masalah optimasi
kompleks, yang sulit dilakukan oleh metode konvernsional.
2.1.1 Sejarah Singkat Algoritma Genetika
Algoritma genetika pertama kali dirintis oleh John Holland dari Universitas
Michigan pada tahun 1960-an, algoritma genetika telah diaplikasikan secara luas
pada berbagai bidang. Algoritma Genetika banyak digunakan untuk memecahkan
masalah optimasi, walaupun pada kenyataannya juga memiliki kemampuan yang
baik untuk masalah-masalah selain optimasi. John Holland menyatakan bahwa
setiap masalah yang berbentuk adaptasi (alam maupun buatan) dapat
diformulasikan dalam teknologi genetika. Algoritma genetika adalah simulasi dari
proses evolusi Darwin dan operasi genetika atas kromosom.[5]
Lalu tujuh belas tahun kemudian, John Koza melakukan penelitian suatu
program yang berkembang dengan menggunakan algoritma genetika program
yang dikenal dengan sebutan metode “genetic programming” tersebut dibuat menggunakan LIPS (bahasa pemogramannya dapat dinyatakan dalam bentuk
algoritma genetika terus digunakan untuk memecahkan permasalahan yang sulit
dipecahkan dengan algoritma konvensional.
2.1.2 Aplikasi Algoritma Genetika
Sejak pertama kali dirintis oleh John Holland pada tahun 1960-an, algoritma
genetika telah dipelajari, diteliti dan diaplikasikan secara luas pada berbagai
bidang. Algoritma banyak digunakan pada masalah praktis yang berfokus pada
pencarian parameter-parameter optimal. [3]
Keuntungan penggunaan algoritma genetika sangat jelas terlihat dari
kemudahan implementasi dan kemampuannya untuk menentukan solusi seperti:
1. Ruang masalah sangat besar, kompleks, dan sulit dipahami.
2. Kurang atau bahkan tidak ada pengetahuan yang memandai untuk
merepresentasikan masalah ke dalam ruang pencarian yang lebih sempit.
3. Tidak tersedianya analisis matematika yang memadai.
4. Ketika metode-metode konvensional sudah tidak mampu menyelesaikan
masalah yang dihadapi.
5. Solusi yang diharapkan tidak harus paling optimal, tetapi cukup bisa
diterima.
6. Terdapat batasan waktu, misalnya dalam real time systems atau system
waktu nyata.
Algoritma genetika telah banyak diaplikasikan untuk penyelesaian masalah
dan pemodelan dalam bidang teknologi, bisnis dan entertainment seperti:
1. Optimasi
Algoritma Genetika untuk optimasi numeric dan optimasi kombinatorial
seperti Traveling Salesman Problem (TSP), perancangan Intergrated
Circuit atau IC [LOU93], job shop scheduling [GOL91], optimasi video,
dan suara.
2. Pemograman otomatis
Algoritma genetika telah digunakan untuk melakukan proses evolusi
terhadap program komputer untuk merancang struktur komputasional,
3. Machine learning
Algoritma genetika telah berhasil diaplikasikan untuk memprediksi
struktur protein. Algoritma genetika juga berhasil diaplikasikan dalam
perancangan neural networks (jaringan syaraf tiruan) untuk melakukan
proses evolusi terhadap aturan-aturan pada learning classifier systems atau
symbolic prosuction systems. Algoritma genetika juga digunakan untuk
mengontrol robot.
4. Model Ekonomi
Algoritma genetika telah digunakan untuk memodelkan proses-proses
inovasi dan pembangunan bidding strategies.
5. Model Sistem Imunisasi
Algoritma genetika telah berhasil digunakan untuk memodelkan berbagai
aspek pada sistem imunisasi alamiah, termasuk somatic mulation selama
kehidupan individu dan menentukan keluarga dengan gen ganda (multi
-gen families) sepanjang waktu evolusi.
6. Model Ekologis
Algoritma genetika telah berhasil digunakan untuk memodelkan fenomena
ekologis seperti host-parasite co-evolutions, simbiosis dan aliran sumber
daya dalam ekologi.
7. Interaksi antara Evolusi dan Belajar
Algoritma genetika telah digunakan untuk mempelajari bagaimana proses
belajar suatu individu bisa mempengaruhi proses evolusi suatu species dan
2.1.3 Komponen Algoritma Genetika
Ada beberapa komponen algoritma genetika yang perlu diketahui sebelum
pembuatan program diantaranya yaitu:
2.1.3.1 Teknik Pengkodean
Teknik pengkodean adalah bagaimana mengodekan gen dari kromosom,
dimana gen merupakan bagian dari kromosom. Satu gen biasanya akan mewakili
satu variable. Agar dapat diproses melalui algoritma genetik, maka alternative
solusi tersebut harus dikodekan terlebih dahulu kedalam bentuk kromosom.
Masing-masing kromosom berisi sejumlah gen yang mengodekan informasi yang
disimpan didalam kromosom.
Gen dapat direpresentasikan dalam bentuk : bit, bilangan real, daftar aturan,
elemen permutasi, elemen program atau representasi lainnya yang dapat
diimplementasikan untuk operator genetika.
2.1.3.2 Pengertian Individu
Individu menyatakan salah satu solusi yang mungkin. Individu dapat
dikatakan sama dengan kromosom, yang merupakan kumpulan gen. Beberapa
definisi penting yang perlu diperhatikan dalam membangun penyelesain masalah
menggunakan algoritma genetika, yakni:
1. Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang
membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan
kromosom. Dalam algoritma genetika, gen ini bisa berupa biner, float,
interger maupun karakter, atau kombinatorial
2. Kromosom, gabungan gen-gen yang membentuk nilai tertentu.
3. Allele, merupakan nilai dari gen
4. Individu, menyatakan suatu nilai atau keadaan yang menyatakan salah satu
solusi yang mungkin dari permasalahan yang diangkat.
5. Populasi, merupakan sekumpulan individu yang akan diproses bersama
dalam satu siklus proses evalusi.
7. Crossover, merupakn proses pertukaran atau kawin silang gen-gen dari
dua induk tertentu.
Populasi
Gambar 2.1 Individu dalam algoritma genetik
Hal-hal yang harus dilakukan dalam Algoritma genetika yaitu:
1. Mendefinisikan individu, dimana individu menyatakan salah satu solusi
(penyelesaian) yang mungkin dari permasalahan yang diangkat.
2. Mendefinisikan nilai fitness, yang merupakan ukuran baik-tidaknya sebuah
individu baik-tidaknya solusi yang didapat.
3. Menentukan proses pembangkitan populasi awal. Hal ini biasanya
dilakukan dengan menggunakan pembangkitan acak seperti ramdom-walk.
4. Menentukan proses seleksi yang akan digunakan.
5. Menentukan proses perkawinan silang (cross-over) dan mutasi gen yang
Hal penting yang harus diketahui dalam pemakaian Algoritma genetika:
1. Algoritma genetika adalah algoritma yang dikembangkan dari proses
pencarian solusi menggunakan pencarian acak, ini terlihat pada proses
pembangkitan populasi awal yang menyatakan sekumpulan solusi yang
dipilih secara acak.
2. Berikut ini pencarian dilakukan berdasarkan proses teori genetika yang
memperhatikan pemikiran bagaimana memperoleh individu yang lebih
baik, sehingga dalam proses evaluasi dapat diharapkan diperoleh individu
yang baik.
2.1.3.3 Membangkitkan Populasi Awal
Membangkitkan populasi awal adalah proses membangkitkan sejumlah
individu secara acak atau melalui procedure tertentu. Ukuran untuk populasi
tergantung pada masalah yang akan diselesaikan dan jenis operator genetika yang
akan diimplementasikan. Setelah ukuran populasi ditentukan, kemudian dilakukan
pembangkitan populasi awal. [8]
Teknik dalam pembangkitan populasi awal ini ada beberapa cara, diantaranya
adalah sebagai berikut:
1. Seperti pada metode random seach, pencarian solusi dimulai dari suatu
titik uji tertentu. Titik uji tersebut dianggap sebagai alternative solusi yang
disebut sebagai populasi.
2. Random Generator
Random generator adalah melibatkan pembangkitan bilangan random
untuk nilai setiap gen sesuai dengan representasi kromosom yang
digunakan.
3. Pendekatan tertentu (memasukan nilai tertentu kedalam gen)
Cara ini adalah dengan memasukan nilai tertentu kedalam gen dari
populasi awal yang dibentuk.
4. Permutasi Gen
Cara ini adalah penggunaan permutasi josephus dalam permasalahan
2.1.3.4 Fungsi fitness
Suatu individu atau kromosom dievaluasi berdasarkan suatu fungsi tertentu
sebagai ukuran performasinya. Fungsi yang digunakan untuk mengukur nilai
kecocokan atau derajat optimalitas suatu kromosom disebut dengan fitness
function.
Nilai yang dihasilkan dari fungsi tersebut menandakan seberapa optimal
solusi yang diperoleh. Nilai yang dihasilkan oleh fungsi fitness merepresentasikan
seberapa banyak jumlah persyaratan yang dilanggar, sehingga dalam kasus
penjadwalan perkuliahan semakin kecil jumlah pelanggaran yang dihasilkan maka
solusi yang dihsilkan akan semakin baik.
2.1.3.5 Seleksi
Setiap kromosom yang terdapat dalam populasi akan melalui proses seleksi
untuk dipilih menjadi orang tua. Sesuai dengan teori Evolusi Darwin maka
kromosom yang baik akan bertahan dan menghasilkan keturunan yang baru untuk
generasi selanjutnya.[7]
Ada beberapa metode seleksi, yaitu:
1. Seleksi Roulette Wheel
Model seleksi ini merupakan model yang paling besar variansinya.
Munculnya individu superior sering terjadi pada model ini, sehingga perlu
strategi lain menangani hal ini.
Gambar 2.2 roulette wheel
2. Seleksi Rangking
Seleksi ini memperbaiki proses seleksi yang sebelumnya yaitu roulette
Sehingga nilai fitness yang lain akan mempunyai kemungkinan yang
sangat kecil untuk terpilih. Seleksi rangking dipakai untuk mengatasi
masalah di atas, pertama-tama, diurutkan seluruh kromosom berdasarkan
bagus-tidaknya solusi berdasarkan nilai fitness-nya. Setelah diurutkan,
kromosom terburuk diberi nilai fitness baru sebesar 1, kromosom kedua
terburuk diberi nilai fitness baru sebesar 2, dan seterusnya. Kromosom
terbaik diberi nilai fitness baru sebesar n dimana n adalah banyak
kromosom dalam suatu populasi.
Gambar 2.3 sebelum dirangking
Gambar 2.4 sesudah dirangking
3. Seleksi Steady State
Metode ini tidak banyak digunakan dalam proses seleksi karena dilakukan
dengan mempertahankan individu yang terbaik. Pada setiap generasi, akan
dipilih beberapa kromosom-kromosom yang memiliki nilai fitness
terburuk akan digantikan dengan offspring yang baru. Sehingga pada
generasi selanjutnya akan terdapat beberapa populasi yang dipertahankan.
4. Seleksi Turnamen
Merupakan metode seleksi lainnya yang didasari fenomena alamiah seperti
turnamen antar individu dalam populasi. Dilakukan dengan memilih secara
acak beberapa kromosom dari populasi. Individu-individu yang terbaik
5. Truncation Random
Metode ini lebih mudah diterapkan jika dibandingkan dengan metode
Roulette Wheel, pemilihan kromosom dilakukan secara acak tetapi tidak
semua kromosom mendapatkan kesempatan tersebut, hanya kromosom
terbaik saja yang berpeluang.
2.1.3.6 Cross-Over atau Kawin Silang
Proses kawin silang adalah salah satu operator penting dalam algoritma
genetika, metode dan tipe crossover yang dilakukan tergantung dari encoding dan
permasalahan yang diangkat. Ada beberapa cara yang bisa digunakan untuk
melakukan crossover sesuai dengan encodingnya sebagai berikut: [5]
1. Binary encoding
a. Crossover satu titik
Memilih satu titik tertentu, selanjutnya nilai biner sampai titik
crossovernya dari induk pertama digunakan dan sisanya dilanjutkan
dengan nilai biner dari induk kedua.
Contoh
11001011 + 11011111 = 11001111
b. Crossover dua titik
Memilih dua titik tertentu, lalu nilai biner sampai titik crossover
pertama pada induk pertama digunakan, dilanjutkan dengan nilai biner
dari titik sampai titik kedua dari induk kedua, kemudian sisanya
dilanjutkan nilai biner dari titik kedua induk pertama lagi.
Contoh:
11001011+ 11011111 = 11011111
c. Crossover uniform
Nilai biner yang digunakan dipilih secara random dari kedua induk.
Contoh
11001011 + 11011111 = 11011111
d. Crossover aritmatka
Contoh:
11001011 + 11011111 = 11001001 (AND)
2. Permutation encoding
Memilih satu titik tertentu, nilai permutation sampai titik crossover. Pada
induk pertama digunakan lalu sisanya dilakukan scan terlebih dahulu, jika
nilai permutasi pada induk kedua belum ada pada offspring nilai tersebut
ditambahkan.
Contoh:
(123456789) + (453689721) = 12345689
3. Value encoding
Semua metode crossover pada binary crossover bisa digunakan.
4. Tree encoding
Memilih satu titik tertentu dari tiap induk, dan menggunakan tree dibawah
titik pada induk pertama dan tree dibawah induk kedua.
Gambar 2.5 Tree encoding.
2.1.3.7 Mutasi
Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen dalam
suatu kromosom. Mutasi ini berperan untuk menggantikan gen yang hilang dari
populasi akibat seleksi yang memungkinkan munculnya kembali gen yang tidak
muncul pada inisialisasi populasi. Beberapa cara operasi mutasi yang diterapkan
1. Mutasi dalam pengkodean biner.
Mutasi pada pengkodean biner merupakan operasi yang sangat sederhana.
Proses yang dilakukan adalah menginversi nilai bit pada posisi tertentu
yang dipilih secara acak pada kromosom.
Contoh.
Kromosom sebelum mutasi : 1 0 0 1 0 1 1 1
Kromosom sesudah mutasi : 1 0 0 1 0 01 1
2. Mutasi dalam pengkodean permutasi.
Proses mutasi yang dilakukan pengkodean biner dengan mengubah
langsung bit pada kromosom tidak dapat dilakukan pada pengkodean
permutasi karena konsistensi urutan harus diperhatikan, salah satu cara
yang dapat dilakukan adalah dengan memilih dua posisi dari kromosom
dan kemudian nilainya saling tukar.
Contoh:
Kromosom sebelum mutasi : 1 2 3 4 6 5 8 7 9
Kromosom sesudah mutasi : 1 2 7 4 6 5 8 3 9
3. Mutasi dalam pengkodean nilai
Proses mutasi dalam pengkodean nilai dapat dilakukan dengan berbagai
cara, salah satunya yaitu dengan memilih sembarang posisi gen pada
kromosom, nilai yang ada tersebut kemudian ditambah atau dikurangi
dengan suatu nilai terkecil tertentu yang diambil secara acak.
Contoh mutasi dalam pengkodean nilai riil dengan yang ditambahkan atau
dikurangkan adalah 0,1
Contoh:
Kromosom sebelum mutasi : 1,43 1,09 4,51 9,11 6,94 Kromosom sesudah mutasi : 1,43 1,19 4,51 9,01 6,94
4. Mutasi dalam pengkodean pohon
Mutasi dalam pengkodean pohon dapat dilakukan antara lain dengan cara
mengubah operator ( +, -, *, / ) atau nilai yang terkandung dalam suatu
verteks pohon yang dipilih. Atau dapat juga dilakukan dengan memilih
Contoh
Gambar 2.6 Mutasi dalam pengkodean pohon
2.1.4.8 Kondisi Selesai
Jika kondisi telah terpenuhi, maka algoritma genetika akan menghentikan
proses pencariannya, tetapi jika belum terpenuhi maka algoritma genetika akan
kembali ke evaluasi fitness.
2.2 Software yang mendukung
Software yang digunakan untuk membangun sistem dalam tugas akhir ini
menggunakan Visual Basic 6.0 dan untuk membangun database menggunakan
Microsoft Acces, penjelasan sebagai berikut:
2.2.1 Visual Basic 6.0
Visual Basic adalah salah suatu developement tools untuk membangun
aplikasi dalam lingkungan Windows. Dalam pengembangan aplikasi, Visual Basic
menggunakan pendekatan Visual untuk merancang user interface dalam bentuk
form, sedangkan untuk kodingnya menggunakan dialek bahasa Basic yang
IDE Visual Basic
Langkah awal dari belajar Visual Basic adalah mengenal IDE (Integrated
Developement Environment) Visual Basic yang merupakan Lingkungan
Pengembangan Terpadu bagi programmer dalam mengembangkan aplikasinya.
Dengan menggunakan IDE programmer dapat membuat user interface, melakukan
koding, melakukan testing dan debuging serta menkompilasi program menjadi
executable. Penguasaan yang baik akan IDE akan sangat membantu programmer
dalam mengefektifkan tugas-tugasnya sehingga dapat bekerja dengan efisien.
1. Memilih jenis Project
Gambar 2.7 Jenis Project
2. Jendela IDE
IDE Visual Basic 6 menggunakan model MDI (Multiple Document Interface).
Berikut ini adalah gambar yang menunjukan bagian-bagian dan nama-nama
Gambar 2.8 Jendela IDE
Sebagaimana dengan proses belajar ini, kita akan fokus pada beberapa jendela
yang penting terlebih dahulu sehingga konsentrasi tidak menjadi pecah, dan
peserta belajar menjadi bingung. Adapun jendela-jendela yang perlu anda
Menu Bar, digunakan untuk memilih tugas-tugas tertentu seperti
menyimpan project, membuka project, dll
Main Toolbar, digunakan untuk melakukan tugas-tugas tertentu dengan
cepat.
Jendela Project, jendela ini berisi gambaran dari semua modul yang
terdapat dalam aplikasi anda. Anda dapat menggunakan icon Toggle
Folders untuk menampilkan modul-modul dalam jendela tersebut secara di
group atau berurut berdasarkan nama. Anda dapat menggunakan Ctrl+R
untuk menampilkan jendela project, ataupun menggunakan icon Project
Explorer.
Jendela Form Designer, jendela ini merupakan tempat anda untuk
merancang user interface dari aplikasi anda. Jadi jendela ini menyerupai
kanvas bagi seorang pelukis.
Jendela Toolbox, jendela ini berisi komponen-komponen yang dapat anda
gunakan untuk mengembangkan user interface.
Jendela Code, merupakan tempat bagi anda untuk menulis koding. Anda
dapat menampilkan jendela ini dengan menggunakan kombinasi Shift-F7.
Jendela Properties, merupakan daftar properti-properti object yang sedang
terpilih. Sebagai contohnya anda dapat mengubah warna tulisan
(foreground) dan warna latarbelakang (background). Anda dapat
menggunakan F4 untuk menampilkan jendela properti.
Jendela Color Palette, adalah fasilitas cepat untuk mengubah warna suatu
object.
Jendela Form Layout, akan menunjukan bagaimana form bersangkutan
3. Toolbox
Gambar 2.9 Toolbox
Adapun secara garis besar fungsi dari masing-masing intrinsic kontrol tersebut
adalah sebagai berikut :
Pointer bukan merupakan suatu kontrol; gunakan icon ini ketika anda
ingin memilih kontrol yang sudah berada pada form.
PictureBox adalah kontrol yang digunakan untuk menampilkan image
dengan format: BMP, DIB (bitmap), ICO (icon), CUR (cursor), WMF
(metafile), EMF (enhanced metafile), GIF, dan JPEG.
Label adalah kontrol yang digunakan untuk menampilkan teks yang tidak
dapat diperbaiki oleh pemakai.
TextBox adalah kontrol yang mengandung string yang dapat diperbaiki
Frame adalah kontrol yang digunakan sebagai kontainer bagi kontrol
lainnya.
CommandButton merupakan kontrol hampir ditemukan pada setiap form,
dan digunakan untuk membangkitkan event proses tertentu ketika pemakai
melakukan klik padanya.
CheckBox digunakan untuk pilihan yang isinya bernilai yes/no, true/false.
OptionButton sering digunakan lebih dari satu sebagai pilihan terhadap
beberapa option yang hanya dapat dipilih satu.
ListBox mengandung sejumlah item, dan user dapat memilih lebih dari
satu (bergantung pada property MultiSelect).
ComboBox merupakan konbinasi dari TextBox dan suatu ListBox dimana
pemasukkan data dapat dilakukan dengan pengetikkan maupun pemilihan.
HScrollBar dan VScrollBar digunakan untuk membentuk scrollbar berdiri
sendiri.
Timer digunakan untuk proses background yang diaktifkan berdasarkan
interval waktu tertentu. Merupakan kontrol non-visual.
DriveListBox, DirListBox, dan FileListBox sering digunakan untuk
membentuk dialog box yang berkaitan dengan file.
Shape dan Line digunakan untuk menampilkan bentuk seperti garis,
persegi, bulatan, oval.
Image berfungsi menyerupai image box, tetapi tidak dapat digunakan
sebagai kontainer bagi kontrol lainnya. Sesuatu yang perlu diketahui
bahwa kontrol image menggunakan resource yang lebih kecil
dibandingkan dengan PictureBox
Data digunakan untuk data binding
OLE dapat digunakan sebagai tempat bagi program eksternal seperti
2.2.2 Microsoft Acces
Microsoft Access adalah suatu program Microsoft office pengolahan database.
Para pengguna microsoft access umumnya hanya menggunakan program hanya
untuk membuat tabel database. Padahal, didalam microsoft access tersedia
fasilitas yang bias digunakan untuk membuat laporan dalam bentuk tabel, query,
maupun report database secara maksimal.[2] Jenis-jenis Query:
1. Select queries.
Query ini menampilkan ekstrak data atau seluruh data. Data yang
ditampilkan bias dipilih sesuai kriteria tertentu. Contoh yang ditampilkan
hanya client city dibandung. Selain itu, bias menampilkan field hasil
perhitungan dengan formula tertentu.
2. Action queries.
Query ini digunakan untuk melakukan delete, update, insert data, dan
create tabel baru.
3. Cross tab queries.
Query ini digunakan untuk mengkakulasi data untuk keperluan analisis.
Crosstab queries menghitung sebuah count, average, sum, atau tipe total
BAB III
PERANCANGAN SISTEM
3.1 Analisis Masalah
Analisis sistem merupakan tahap yang sangat penting, karena apabila terjadi
kesalahan dalam tahap ini akan mengakibatkan kesalahan pada saat pembangunan
sistem, sehingga diperlukan ketelitian saat pengamatan dan penelitian, agar
diketahui permasalahan dan kebutuhan yang diperlukan pada saat membangun
sistem.
3.1.1 Deskripsi Masalah
Proses penjadwalan mata kuliah merupakan suatu proses untuk memasangkan
event yang berisi komponen mata kuliah, kelas dan dosen pada time slot berisi
komponen waktu dan ruang. Dalam pembuatan penjadwal kuliah terdapat
berbagai constraint yang berkaitan dalam penjadwalan tersebut harus dilibatkan
sebagai pertimbangan yang dapat menyebabkan persoalan. Constraint sendiri
merupakan kendala yang didefinisikan agar jadwal yang dihasilkan merupakan
jadwal yang baik. Constraint dibagi menjadi dua kata gori yaitu hard constraint
dan soft constraint.
Hard constraint adalah suatu syarat dimana tidak boleh terjadi pelanggaran
terhadap kendala yang ditetapkan,yaitu:
1. Satu kelas tidak dapat belajar pada ruangan yang berbeda dalam satu
waktu.
2. Satu kelas tidak dapat belajar lebih dari satu mata kuliah dalam satu waktu.
3. Dosen tidak dapat mengajar lebih dari satu mata kuliah dalam satu waktu.
4. Dosen tidak dapat mengajar lebih dari satu kelas dalam satu waktu.
Soft constraint adalah kendala-kendala yang mungkin dilanggar, karena
pelanggaran soft constraint tidak akan mempengaruhi keberhasilan penjadwalan,
namun kalaupun terjadi pelanggaran soft constraint maka jadwal yang dihasilkan
bukan merupakan hasil yang nyaman untuk digunakan. Penerapan soft constraint
24 harapan. Penentuan soft constraint itu akan berbeda sesuai dengan kebutuhan dan
kebijakan instansi atau Universitas yang bersangkutan. Maka sesuai dengan
penelitian yang dilakukan di Jurusan Teknik Komputer tahun 2010 sampai 2011
semester ganjil, Soft constraint yang ada dan sebaiknya terpenuhi,yaitu:
1. Distribusi perkuliahan diharapkan dapat merata tiap harinya untuk setiap
kelas.
2. Tidak boleh adanya jadwal kuliah yang berisian dengan jadwal kuliah
angkatan sebelumnya maupun sesudahnya, sehingga mahasiswa dapat
mengambil mata kuliah angkatan sebelumnya maupun sesudahnya.
3. Dari banyak hari perkuliahan dalam satu minggu diharapkan setiap kelas
mendapatkan satu atau dua hari perkulihan yang kosong.
4. Mata kuliah yang dijadwalkan diharapkan memiliki rentang waktu yang
cukup untuk mengikuti kuliah selanjutnya,
3.1.2 Analisis Algoritma Genetika
3.1.2.1 Data Penelitian
Data yang akan digunakan untuk penyususnan untuk jadwal perkuliahan
menggunakan algoritma genetika adalah jadwal perkuliahan semester yang
bersangkutan tahun akademik 2010-2011 pada Jurusan Teknik Komputer
Universitas Komputer Indonesia. Data tersebut berupa waktu perkulihan yang
ditawarkan untuk semester bersangkutan dengan tidak memasukan mata kuliah
pratikum, kerja praktek dan mata kuliah tugas akhir sebagai data studi kasus.
Kemudian yang menjadi data kelas regular semester yang akan datang, lalu data
dosen yang mengajar perkulihan serta data ruangan yang akan dipergunakan
untuk perkulihan pada semester itu.
Dari hasil pengamatan dan pengumpulan data yang telah dilakukan, maka
data-data yang nantinya akan diperlukan sebagai masukkan tersebut kemudian
disusun kedalam tabel-tabel terdiri dari 4 buah tabel yaitu tabel mata kuliah, tabel
1) Tabel 3.1 Mata kuliah
M09 Matriks dan Transformasi Linier 2 3
M10 Fisika Dasar II 2 3
M11 Pengantar Organisasi Komputer 2 3
M12 Sistem Digital 3 5
ID_Dosen Nama Dosen
D00 Wendi Zarman, M.si
D01 Asep Solih Awalluddin, M.si
D02 Toufik Nuzwir N, S.kom
D03 Hidayat, MT
D04 Agus Mulyana, S.kom
D05 Silvia Lorena Br.ginting, MT
D06 Sri Nurhayati, MT
D07 S.Indriani L, MT
D08 Sri Supatmi, S.kom
D09 Ir. Syahrul, MT
D10 Dr. Yeffry Handoko Putra, MT
D11 Maskie Zoematan,S.kom
D12 Dr. Yusrila Y.kerlooza
26
3) Tabel 3.3 Kelas
ID_Kelas Nama Kelas
K00 10 TK1
4) Tabel 3.4 Pengajar
ID_MK Mata Kuliah Pengajar
M00 Algoritma Pemograman I Wendi Zarman, M.si
M01 Fisika Dasar I Usep Mohammad Ishaq
M02 Kalkulus I Asep Solih Awalluddin, M.si
M03 Pancasila dan UUD'45 Toufik Nuzwir N, S.kom
M04 Pengantar Sistem Komputer Agus Mulyana, S.kom
M05 Kalkulus II Asep Solih Awalluddin, M.si
M06 Algoritma Pemograman II Maskie Zoematan,S.kom
M07 Matematika Diskrit Sri Nurhayati, MT
M08 Elektronika Dasar Sri Supatmi, S.kom
M09 Matriks dan Transformasi Linier Silvia Lorena Br.ginting, MT
M10 Fisika Dasar II Usep Mohammad Ishaq
M11 Pengantar Organisasi Komputer Dr. Yusrila Y.kerlooza
M12 Sistem Digital Hidayat, MT
M13 Sistem Mikroprosesor Ir. Syahrul, MT
M14 Sistem Pengukuran Dr. Yeffry Handoko Putra, MT
M15 Komunikasi Data S.Indriani L, MT
M16 Penulisan Laporan Teknik Hidayat, MT
M17 Kewiraan Toufik Nuzwir N, S.kom
M18 Sistem operasi Silvia Lorena Br.ginting, MT
M19 Bahasa Inggris Toufik Nuzwir N, S.kom
Untuk memecahkan permasalahan penjadwalan kuliah ini penulis
menggunakan menggunkan algoritma genetika. pemecahan menggunakan
algoritma genetika ini didasarkan pada mekanisme sistem natural yakni genetik
dan seleksi alam. Seperti dalam metode random, pencarian solusi dimulai dari
suatu titik uji tertentu. Titik uji tersebut dianggap sebagai alternative solusi. Pada
populasi. Dengan adanya populasi ini, maka algoritma genetika melakukan proses
pencarian dari titik uji sekaligus. Pemilihan nilai alternative solusi ini dilakukan
secara random.
Hal pertama yang dilakukan dalam pemecahan masalah penjadwalan mata
kuliah adalah menentukan parameter yang digunakan, agar hasil penjadwalan
yang dihasilkan merupakan solusi terbaik. Parameter yang digunakan penyusunan
jadwal kuliah ini terdiri dari event (mata kuliah, kelas, dan dosen). Total event
adalah gabungan dari tiga tabel.
Berdasarkan hasil penelitian, pembagian waktu di Jurusan Teknik Komputer
tahun ajaran 2010/2011 di Universitas Komputer Indonesia, kegiatan perkulihan
dimulai dari jam 07.00 sampai jam 17.30. kemudian pembagian waktu didasarkan
pada SKS, dimana waktu yang ditentukan dalam satu SKS adalah 45 menit. Berati
dalam satu hari terdapat 14 timeslot, lalu hari yang digunakan perkulihan adalah
dari hari senin-sabtu, berati ada 6 hari perkulihan dalam satu minggu, sehingga
total timeslot yang disediakan dalam satu minggu 6 x 14 = 84 timeslot.
Tabel 3.5 Time slot waktu perkuliahan di Jurusan Teknik Komputer
waktu
Timeslot
Senin Selasa Rabu Kamis Jum'at Sabtu
07.00 - 07.45 1 15 29 43 57 69
07.45 - 08.30 2 16 30 44 58 70
08.30 - 09.15 3 17 31 45 59 71
09.15 - 10.00 4 18 32 46 60 72
10.00 - 10.45 5 19 33 47 61 73
10.45 - 11.30 6 20 34 48 62 74
11.30 - 12.15 7 21 35 49 75
12.15 - 13.00 8 22 36 50 76
13.00 - 13.45 9 23 37 51 63 77
13.45 - 14.30 10 24 38 52 64 78
14.30 - 15.15 11 25 39 53 65 79
15.15 - 16.00 12 26 40 54 66 80
16.00 - 16.45 13 27 41 55 67 81
28 Seperti yang terlihat pada tabel waktu perkulihan di Jurusan Teknik Komputer
Universitas Komputer Indonesia pada tahun akademik 2010-2011 diatas, dari 84
timeslot yang ada hanya sekitar 82 timeslot yang dipergunakan untuk kegiatan
perkuliahan, karena pada timeslot yang dihitamin yaitu pada hari jum’at pukul
11.30-13.00 dipergunakan untuk kegiatan shalat jum’atan bagi umat muslim.
3.1.2.2 Parameter Algoritma Genetika
3.1.2.2.1 Pembentukan Populasi Awal
Seperti pada metode random seach, pencarian solusi dimulai dari suatu titik
uji tertentu. Titik uji tersebut dianggap sebagai alternative solusi yang disebut
sebagai populasi. Dengan adanya populasi ini, maka algoritma genetika
melakukan proses pencarianya dari beberapa titik uji sekaligus. Pemilihan nilai
alternative solusi ini dilakukan secara acak.
Dari data yang tersedia agar dapat diproses melui algoritma genetika, maka
alternative solusi tersebut dikodekan terlebih dahulu kedalam bentuk kromosom,
dimana masing-masing kromosom itu berisikan sejumlah gen yang mengkodekan
informasi yang tersimpan dalam kromosom, sehingga bisa dilakukan operasi
algoritma genetika yaitu reproduksi kromosom baru dengan crossover dan mutasi.
Informasi yang tersimpan pada gen-gen tersebut meliputi komponen subjek dan
komponen waktu yang dibutuhkan untuk menghasilkan suatu jadwal kuliah
nantinya.
Pada algoritma ini dalam menetukan sebuah solusi untuk permasalahan yang
timbul diwakili dengan satu set parameter. Parameter-parameter ini dinamakan
gen yang bersatu membentuk kromosom selanjutnya beberapa kromosom yang
sejenis berkumpul membentuk populasi. Dari populasi inilah algoritma genetika
memulai untuk melakukan pencarian.
Setelah diketahui komponen-komponen yang akan diproses, maka kita dapat
membentuk kromosom yang dibutuhkan dalam proses algoritma genetika
nantinya. Panjang kromosom itu sendiri merupakan perkaliahan dari jumlah
probabilitas timeslot dan jumlah ruangan yang bisa dipergunakan, sehingga
panjang kromosom 82 (time slot) x 4 (ruangan) = 328 slot. Karena pengertian
menyatakan solusi yang mungkin dari suatu permasalahan, maka bisa disebut
bahwa panjang kromosom terdiri dari 328 gen.
1 2 3 4 7 12
1.0 1.1 1.2 1.3 …... 82.3
S.1 S.2 S.3 S.4 …... S.328
Nilai Gen Posisi Gen Kromosom Populasi Jam dan ruang
Gambar 3.1 Visualisasi slot suatu kromosom.
Pada gambar 3.1 menyatakan kromosom telah terbentuk dari S.1 yang
menyatakan slot pertama sampai slot S.328. tiap slot pada kromosom terdiri dari
timeslot dan ruangan, sebagai contoh, untuk penomoran slot ke-82(328)
menyatakan bahwa slot tersebut membawa informasi timeslot ke-82 dari tabel
3.1(hari sabtu pukul 16.45-17.30 untuk perkulihan) dan ruangan ke-4 adalah
(4521).
Setelah dilakukan pembentukan kromosom, untuk membentuk populasi yang
dinginkan harus menyusun terlebih dahulu suatu tabel yang terdiri tabel mata
kuliah berserta dosen mengajarnya serta kelas-kelas mana saja yang bisa diajar
(jumlah kelas yang bisa diajar) oleh dosen tersebut. Untuk mepermudah,
kumpulan data-data diamsumsikan sebagai komponen subjek yang terdiri dari
30 Tabel 3.6 Komponen Subjek
N
4 M04 Pengantar Sistem Komputer D04 Agus Mulyana, S.kom
5 M05 Kalkulus II D01 Asep Solih Awalluddin, M.si
6 M06 Algoritma Pemograman II D11 Maskie Zoematan,S.kom
7 M07 Matematika Diskrit D06 Sri Nurhayati, MT
8 M08 Elektronika Dasar D08 Sri Supatmi, S.kom
9 M09 Matriks dan Transformasi Linier D05 Silvia Lorena Br.ginting, MT
10 M10 Fisika Dasar II D13 Usep Mohammad Ishaq
11 M11 Pengantar Organisasi Komputer D12 Dr. Yusrila Y.kerlooza
12 M12 Sistem Digital D03 Hidayat, MT
13 M13 Sistem Mikroprosesor D09 Ir. Syahrul, MT
14 M14 Sistem Pengukuran D10 Dr. Yeffry Handoko Putra, MT
15 M15 Komunikasi Data D07 S.Indriani L, MT
16 M16 Penulisan Laporan Teknik D03 Hidayat, MT
17 M17 Kewiraan D02 Toufik Nuzwir N, S.kom
18 M18 Sistem Operasi D05 Silvia Lorena Br.ginting, MT
35 M19 Teori Teknik Kontrol D10 Dr. Yeffry Handoko Putra, MT
Dilakukan penyusunan seperti terlihat pada tabel 3.6, maka didapat data
komponen subjek yang ada pada studi kasus sejumlah 19 subjek (agar lebih jelas
bisa dilhat pada lampiran), sehingga dengan jumlah sebanyak itu masih bisa
ditapung oleh slot yang berjumlah 328 slot
Representasi kromosom yang dibentuk nantinya data pada tabel 3.6 data yang
terdapat pada kolom “no_gen” akan dijadikan sebagai nomor gen dari suatu kromosom, sehingga apabila didapat gen bernomor 0, maka artinya gen tersebut
berisikan kode mata kuliah M00 yang merupakan mata kuliah Algoritma
pemograman I semester 1 dengan nama dosen Wendi Zarman.Msi dan mengajar
10 TK1 dengan bobot mata kuliah 2 SKS.
Seperti yang telah dijelaskan sebelumnya, pada algoritma genetika pencarian
solusi dimulai dari satu titik uji yang dianggap sebagai alternative solusi.
Kumpulan-kumpulan alternative solusi didalam algortima genetika disebut
populasi. Dengan terbentuknya komponen waktu dan kumpulan komponen
sehingga dengan adanya populasi ini, algoritma genetika bisa melakukan proses
pencarian dari beberapa titik uji sekaligus, yang dilakukan secara acak(random).
Teknik pembentukan populasi:
1. Ambil komponen subjek pada proses input yang telah tersusun.
2. Acak slot pada komponen waktu.
3. Pada saat pembentukan populasi awal ini diatur sehingga mata kuliah dan
nama dosen tidak terpisah.
4. Ulangi proses 1 sampai dengan proses 3 sehingga keseluruhan komponen
telah masuk kekomponen waktu.
Semakin banyak kromosom dalam suatu populasi yang dibangkitkan, maka
kemungkinan untuk mendapatkan kromosom terbaik yang diseleksi akan semakin
besar, tetapi akibat proses yang dilakukan akan semakin lama pula. Akan tetapi
bila kromosom yang digunakan terlalu sedikit, maka jadwal yang digunakan
untuk proses reproduksi kromosom baru dan mutasi terlulu sedikit,terbatas,
sehingga menyia-nyikan proses yang ada.
3.1.2.2.2 Fungsi Fitness
Fungsi Fitness merupakan masalah yang sangat penting dalam algoritma
genetika. Tiap kromosom pada suatu aplikasi akan diberikan nilai fitness yang
menetukan apakah kromosom pada populasi tersebut akan dipertahankan atau
dibuang. Factor-faktor yang bisa mempengaruhi evaluasi fitness terhadap
alternative solusi tersebut merupakan pelanggaran yang telah ditentukan
sebelumnya. Untuk setiap pelanggaran yang terjadi akan diberikan nilai 1,
sehingga semakin sedikit jumlah pelanggrannya maka jadwal sesuai yang
diharapkan.
Fitness :
Jumlah aktivitas perkuliahan
Popu.individu(i).gen(j)
X 100
Jumlah aktivitas perkuliahan : jumlah mata kuliah yang dijadwalkan
Individu gen : hasil dari data random setiap kali eksekusi
32 1. Jika PopuMain.individuals(i).Fitness >= popuMain.fitxceeds, maka
program akan menghentikan proses.
2. Jika PopuMain.individuals(i).Fitness <= popuMain.fitxceeds, maka
program akan melakukan reproduksi yaitu crossover dan mutasi.
Pelanggaran hanya untuk bahan analis, pelanggaran yang dimaksud adalah:
1. Frekuensi pengajar tinggi dosen
Diinginkan agar tugas mengajar dosen dapat terdistribusi merata di tiap
hari kerjanya dengan tujuan agar performasi dosen sewaktu mengajar
dapat tetap terjaga optimal. Dalam program ini didefinisikan bahwa dosen
yang mengajar lebih dari lima sks tiap harinya telah digolongkan sebagai
dosen yang memiliki frekuensi mengajar tinggi.
2. Frekuensi jam kuliah yang tinggi dalam satu kelas
Seperti hal pada dosen, untuk menjaga performasinya belajar mahasiswa
maka diharapkan tidak ada jadwal kuliah yang terlalu padat dalam satu
hari. Jika solusi menawarkan jadwal kuliah kelas yang terlalu padat dalam
satu hari, kelas yang memiliki kuliah lebih dari lima sks pada satu hari
didefinisikan sebagai kelas yang memiliki frekuensi kuliah yang tinggi.
3.1.2.2.3 Seleksi
Proses seleksi ini dilakukan mempertahankan individu terbaik dari setiap
generasi. Proses yang dilakukan adalah menggantikan individu terburuk dari
generasi sebelumnya dengan individu terbaik dari generasi yang baru.
Untuk mendapatkan solusi yang terbaik, maka program harus menyeleksi
solusi yang memiliki nilai fitness yang tergolong rendah. Seleksi menggunakan
metode truncation selection, metode ini lebih mudah diterapkan jika dibandingkan
dengan metode Roulette Wheel, pemilihan kromosom dilakukan secara acak tetapi
tidak semua kromosom mendapatkan kesempatan tersebut, hanya kromosom
Kemudian agar populasi tetap, maka perlu dibangkitkan
kromosom-kromosom baru sejumlah kromosom-kromosom yang telah dihilangkan, yaitu setengah dari
jumlah populasi. Proses pembangkitan populasi atau yang dikenal dengan nama
reproduksi kromosom, ada dua cara reproduksi kromosom yaitu crossover dan
mutasi.
Cara kerja truncation selection:
1. Jika PopuMain.individuals(i).Fitness > MaxFitnessVal maka individu
terbaik.
2. Jika PopuMain.individuals(i).Fitness < MaxFitnessVal maka individu
terburuk.
3.1.2.2.4 Reproduksi Kromosom Baru
Setengah dari jumlah populasi akan dibangkitkan dengan cara reproduksi
kromosom baru. Yaitu penyusunan alternative solusi penjadwalan secara acak
kembali untuk setiap mata kuliah. Proses ini sama dengan pembentukan populasi.
Dengan proses ini akan dihasilkan sekelompok populasi baru yang bener-benar
berbeda dengan populasi induknya. Reproduksi ada dua cara bisa dilakukan
dengan crossover atau mutasi.
a) Crossover
Kawin silang yang akan digunakan menggunakan teknik kawin silang satu
titik, yaitu satu titik tertentu sampai sepanjang gen sesuai masukan dari
individu pertama yang terpilih kemudian ditukar silangkan dengan jumlah
gen sisa dari induk kedua.
Teknik-teknik crossover:
1. Pilih secara acak dua kromosom yang akan dijadikan kromosom induk.
2. Pilih secara acak posisi gen yang akan dikawin silangkan dari
kromosom induk.
3. Lakukan crossover dengan menempatkan gen pertama populasi induk
pertama, kemudian menukarkan gen dengan yang ada pada populasi
34
Kemudian setelah dilakukan proses kawin silang dari kedua kromosom induk
(parents) yang terpilih maka akan menghasilkan kromosom anak (offspring).
b) Mutasi
Adapun setengah populasi baru lainnya akan dibangkitkan dengan cara
mutasi yaitu setengah dari populasi induk akan dipilih untuk diduplikasikan.
Pemilihan dapat dilakukan dengan metode Pengkodean biner, random maupun
roulettle. Pada hasil ini akan dilakukan untuk menginversi nilai bit pada posisi
tertentu yang dipilih secara acak pada kromosom.
Teknik mutasi yaitu:
1. Pilih acak kromosom yang akan dimutasi.
2. Tentukan dua atau lebih gen yang akan dimutasi pada kromosom
3. Cari posisi gen-gen yang terpilih kemudian merubah bit-bitnya.
4 2 9 1 10 3 4 1 9 1 10 3
Kromosom sebelum Mutasi Kromosom Setelah Mutasi
1 2 3 4 … 328 1 2 3 4 … 328
Gambar 3.3 Mutasi
Karena proses mutasi juga merupakan salah satu operator dasar dalam
algoritma genetika, sehingga sama dengan crossover, mutasi juga memerlukan
probabilitas dengan proses yang sama seprti probabilitas crossover. Individu
dengan nilai probabilitas lebih kecil dari probabilitas yang telah ditentukan yang
3.1.2.2.5 Kondisi Selesai
Terdapat tiga kondisi selesai yang dapat menghentikan proses algoritma
pemograman ini,yaitu:
1. Jika setelah beberapa generasi berturut-turut nilai fitness terbaik dari
populasi tidak mengalami perubahan kembali.
2. Jika jumlah generasi maksimum telah tercapai.
3. Jika nilai fitness terbaik minimal telah tercapai
3.1.3 Analisis Kebutuhan Fungsional
Pada bagian ini diperlukan untuk menentukan keluaran yang akan dihasilkan
sistem, masukan yang diperlukan sistem, lingkup proses yang digunakan untuk
mengolah masukan menjadi keluaran sistem.
3.1.3.1 Digram Konteks
Diagram konteks merupakan suatu model yang menjelaskan secara global
bagaimana data digunakan dan diinformasikan untuk proses, atau dengan kata lain
merupakan gambaran umun mengenai sistem yang menggambarkan aliran data
kedalam dan keluar sistem. Berikut ini adalah diagram konteks dari system yang
akan dibangun.
-- Data Login User
- Data Mata kuliah yang akan ditambah, dicari, diubah dan dihapus - Data Dosen yang akan ditambah, dicari, diubah dan dihapus - Data Kelas yang akan ditambah, dicari, diubah dan dihapus - Data Pengajar yang akan ditambah, dicari, diubah dan dihapus - Data Kromosom yang akan diatur
- Laporan Jadwal seluruhan yang akan dicetak
- Info login User invalid
- Info Mata kuliah yang telah ditambah, dicari, diubah dan dihapus - Info Dosen yang telah ditambah, dicari, diubah dan dihapus - Info Kelas yang telah ditambah, dicari, diubah dan dihapus - Info Pengajar yang akan ditambah, dicari, diubah dan dihapus - Info kromosom hasil pembentukan populasi awal
36 3.1.3.2 Diagram Alir Data
Setelah diagram konteks terbentuk, tahap selanjutnya adalah membuat diagram
alir data (data flow diagram/DFD) untuk menjelaskan proses input data sistem
penjadwalan kuliah dari diagram yang telah terbentuk.
3.1.3.2.1 DFD Level 0
DFD Level 0 dari sitem penjadwalan mata kuliah dapat dilihat pada gambar
berikut:
- Data Mata kuliah yang akan ditambah, dicari, diubah dan dihapus - Data Dosen yang akan ditambah, dicari, diubah dan dihapus - Data Kelas yang akan ditambah, dicari, diubah dan dihapus - Data Ruang yang akan ditambah, dicari, diubah dan dihapus - Data Pengajar yang akan ditambah, dicari, diubah dan dihapus
- Info login user invalid
- Info Mata kuliah yang akan ditambah, dicari, diubah dan dihapus - Info Dosen yang akan ditambah, dicari, diubah dan dihapus - Info Kelas yang akan ditambah, dicari, diubah dan dihapus - Info Ruang yang akan ditambah, dicari, diubah dan dihapus - Info Pengajar yang akan ditambah, dicari, diubah dan dihapus
- Data Kromosom yang akan diatur - Data Parameter yang akan diatur
Pengguna 1
Data login user (name,pasword) Invalid
Data timeslot - Info kromosom hasil Pembentukan populasi - Info Kromosom terbaik
Pada gambar 3.4 terdapat beberapa proses yaitu:
1. Login
Sebelum masuk kproses pengguna melakukan login terlebih dahulu
dengan memasukan user name dan password
- User name : Admin
- Password : 1234
2. Pengolahan data
Didalam pengolah data terdapat beberapa inputan seperti:
- Tabel mata kuliah yang didalamnya terdapat id_matakuliah, nama
matakuliah dan SKS
- Tabel Dosen yang didalamnya terdapat id_dosen dan nama dosen
- Tabel kelas yang didalamnya terdapat id_kelas dan nama kelas
- Tabel pengajar yang didalamnya terdapat gabungan antara tabel mata
kuliah dan tabel dosen.
3. Algoritma genetika
- Parameter solusi atau kromosom
- Pembentukan populasi awal
- Evaluasi fitness
- Seleksi
- Crossover
- Mutasi
4. Hasil laporan atau cetak Jadwal
- Hasil jadwal keseluruhan
38
Data mata kuliah yang akan ditambah, dicari, diubah dan dihapus
Data Dosen yang akan ditambah, dicari, diubah dan dihapus
Data kelas yang akan ditambah, dicari, diubah dan dihapus
Data Pengajaryang akan ditambah, dicari, diubah dan dihapus
Info data Pengajaryang akan ditambah, dicari, diubah dan dihapus Info data kelas yang akan ditambah, dicari, diubah dan dihapus
Info data Dosen yang akan ditambah, dicari, diubah dan dihapus
Info data mata kuliah yang akan ditambah, dicari, Diubah dan dihapus
Gambar 3.6 DFD Level 1 proses 2
Pengguna
Data ruang dan data pengajar Dari proses 3 Login user valid
Login user valid
Data kromosom yang akan diatur
Info Data kromosom yang akan diatur
Data parameter
Info Data parameter
Gambar 3.7 DFD Level 1 proses 3
Pada gambar 3.6 terdapat beberapa proses yaitu:
1. Parameter solusi yang didalamnya terdapat kumpulan kromosom yang
akan dibangkitkan secara random untuk membentuk populasi.
- Populasi awal Data mata kuliah yang akan ditambah
Info data mata kuliah yang akan ditambah
Data mata kuliah yang akan dicari
Info data mata kuliah yang akan dicari
Data mata kuliah yang akan diubah
Info data mata kuliah yang akan diubah
Data mata kuliah yang akan dihapus
Info data mata kuliah yang akan dihapus
Data mata kuliah
Gambar 3.8 DFD Level 2 proses 2.1
Pengguna
2.2.1 Tambah
Dosen
Dosen Data Dosen yang akan ditambah
Info Data Dosen yang akan ditambah
Data Dosen yang akan dicari
Info Data Dosen yang akan dicari
Data Dosenyang akan diubah
Info Data Dosen yang akan diubah
Data Dosen yang akan dihapus
Info Data Dosen yang akan dihapus
Data Dosen
40 Data Kelas yang akan ditambah
Info Data Kelas yang akan ditambah
Data Kelas yang akan dicari
Info Data Kelas yang akan dicari
Data Data Kelas yang akan diubah
Info Data Kelas yang akan diubah
Data Kelas yang akan dihapus
Info Data Kelas yang akan dihapus Data Kelas
Data Kelas
Gambar 3.10 DFD Level 2 proses 2.3
Pengguna
2.4.1 Tambah Pengajar
Pengajar Data Pengajar yang akan ditambah
Info Data Pengajar yang akan ditambah
Data Pengajar yang akan dicari
Info Data Pengajar yang akan dicari
Data Pengajar yang akan diubah
Info Data Pengajar yang akan diubah
Data Pengajar yang akan dihapus
Info Data Pengajar yang akan dihapus Data Pengajar
Data
3.2 Perancangan Sistem
3.2.1 Perancangan antar muka program
Perancangan tampilan antarmuka (interface) merupakan perancangan awal
tampilan yang nantinya akan diimplementasikan pada saat membangun aplikasi.
3.2.1.1 Perancangan Form login
Agar dapat mengakses pengolahan penjadwalan pada aplikasi ini diharuskan
untuk melakukan login. Gambar berikut ini tampilan form login.
Masukan Parameter solusi:
3.2.1.2 Perancangan Tampilan Form Menu
Gambar berikut ini merupakan rancangan tampilan halam utama yang
merupakan tampilan aplikasi pada saat digunakan. Pada aplikasi ini user yang
akan mengolah data dan jadwal diharuskan untuk melakukan login terlebih
dahulu, karena itu menu “data masukan” dan proses jadwal” hanya tampilan dan
bisa diakses apabila sudah melakukan login sebelumnya.
Mata kuliah Dosen Kelas Pengajar Proses Jadwal Laporan Exit -klik “Laporan” maka menuju F08
Tanggal Jam
Keterangan
42
3.2.1.3 Perancangan Tampilan Form Data Matakuliah
Berikut ini merupakan rancangan tampilan form data Mata kuliah yang
didalamnya terdapat tabel data matakuliah.
Text
ID Mata kuliah Mata kuliah SKS
Text Text Text
Gambar 3.14 Form Data Mata Kuliah
3.2.1.4 Perancangan Tampilan Form Data Dosen
Berikut ini merupakan rancangan tampilan form data dosen yang didalamnya
terdapat tabel data Dosen.
Text
3.2.1.5Perancangan Tampilan Form Data Kelas
Berikut ini merupakan rancangan tampilan form data kelas yang didalamnya
terdapat tabel data Kelas.
Text
Gambar 3.16 Form Data Kelas
3.2.1.6 Perancangan Tampilan Form Data Pengajar
Berikut ini merupakan rancangan tampilan form data pengajar yang
didalamnya terdapat tabel data pengajar.
Text
44
3.2.1.7 Perancangan Tampilan Form Proses Algoritma Genetika
Berikut ini merupakan rancangan tampilan form proses penjadwalan yang
form untuk melakukan pengolahan jadwal.
Start Stop Exit
Gambar 3.18 Form Proses AG
3.2.1.8 Perancangan Form parameter
Berikut ini merupakan data yang akan diproses dengan memasukan
parameter-parameter solusi.
3.2.1.9 Perancangan Cetak Hasil
Berikut ini merupakan hasil dari proses dengan menilih pilihan cetak jadwal
keseluruhan atau jadwal perkelas.
Kelas : ComboBox Cetak
-klik “Box” pilihan perkelas atu keseluruhan kelas -klik “cetak” maka akan mencatak
Laporan F08 keterangan
Gambar 3.20 Form Cetak Hasil
3.2.1.10Perancangan Form Tampilan Pesan
Username/password salah !
OK
Data Tidak Ditemukan
OK
Inputan Salah !
OK
Hapus Data…?
Yes No
Gambar 3.21 Form Tampilan pesan.
3.2.2 Perancangan Prosedural
Pada bagian ini akan dibuat deskripsi rinci dari perangkat lunak, yaitu
algoritma yang akan digunakan pada sistem yang akan dibuat.
1. inisialisasi generasi diset: 100 max.
2. inisialisasi populasi (popMain.Individuals) diset: 50 dan 100.
3. inisialisasi panjang gen (PopMain.genome) diset: 3.
4. inisialisasi max fitness diset: 100.
5. inisialisasi Pc (probabilitas crossover) diset: 75.
6. inisialisasi Pm (probabilitas mutasi) diset: 3, 4, dan 5.
46
3.2.2.1Prosedur Algoritma genetika Utama
Pembentukan Populasi Awal
Batasan Fitness Terpenuhi ?
Start
Evaluasi Fitness
Seleksi
Simpan di timeslot secara acak
Ulangi Batas hari dan
Jam..?
End Y
Y
T
T
Crossover Mutasi Proses Data
Input Data
Gambar 3.22 Prosedur Algoritma Genetika utama.
Pada gamabar 3.22 terdapat beberapa proses diantaranya:
1. Input Data terdapat empat masukankelompok data yang perlukan
diberikan yaitu tabel mata kuliah, tabel dosen, tabel kelas dan tabel
pengajar. Tabel mata kuliah berisikan daftar seluruh mata kuliah yang
akan dilaksanakan pada semester yang bersangkutan. Tabel dosen
berisikan daftar seluruh nama dosen yang akan mengajar disemester yang
mengambil perkuliahan disemester yang bersangkutan. Tabel pengajar
berisikan nama mata kuliah dan nama dosen.
2. Proses Data agar dapat diproses dalam algoritma genetika ini, tabel mata
kuliah, tabel dosen, tabel kelas, dan tabel pengajar harus digabungkan
terlebih dahulu menjadi tabel komponen subjek. Untuk menjadwalkan
suatu mata kuliah, perlu mempertimbangkan jadwal waktu dosen, kelas
dan ruangan yang tersedia. Maka setiap mata kuliah akan memiliki
banyaknya pilihan penjadwalan yang berbeda. Bisa jadi ada mata kuliah
yang memiliki tiga hari dan bisa jadi ada mata kuliah yang hanya miliki
satu pilihan hari saja.
3. Jika PopuMain.individu(i).fitness >= popuMain.fitxceeds, maka program
akan menghentikan proses.
4. Jika PopuMain.individu(i).fitness <= popuMain.fitxceeds, maka program
akan melakukan reproduksi yaitu crossover dan mutasi.
48
3.2.2.2Prosedure Pembentukan Populasi
i=1; j=1;
Inisialisasi PopuMain.Individuals(i). Genome(PopuMain.GenomeLen)
PopuMain.Individuals(i).Genome(j) = RndNum(0, jml)
j=j+1;
i=i+1;
j=PopuMain.GenomeLen ?
i=PopuMain.NumOfIndivid ?
Return Awal prosedure
Y
Y T
T
Gambar 3.23 Prosedure Pembentukan Populasi
Pada gambar 2.23 PopMain.genome atau panjang gen udah diinisialisasi
sebelumnya yaitu panjang gennya 3 maksudnya setiap tiga kali eksekusi lalu
3.2.2.3Prosedure Reproduksi Kromosom Baru.
i=1; j=1;
PopuMain.Individuals(PopuMain.DiedIndivid(i)). Genome(j) = PopuMain.Parents(i).Genome(j)
j=j+1;
j=PopuMain.GenomeLen ?
i=i+1;
i=Int(PopuMain.NoOfDied / 2)
PopuMain.NoOfDied=PopuMain.NoOfDied-Int (PopuMain.NoOfDied / 2)
Return Awal prosedure
Y
Y T
T
50
3.2.2.3.1 Prosedur Crossover atau kawin silang
CrossPos = RndNum(1, PopuMain.GenomeLen - 1)
j <= CrossPos ?
PopuMain.Individuals(PopuMain.DiedIndivid(i)).Genome(j) = PopuMain.Parents(i).Genome(j)
PopuMain.Individuals(PopuMain.DiedIndivid(i + 1)).Genome(j) = PopuMain.Parents(i + 1).Genome(j)
PopuMain.Individuals(PopuMain.DiedIndivid(i)).Genome(j) = PopuMain.Parents(i + 1).Genome(j)
PopuMain.Individuals(PopuMain.DiedIndivid(i + 1)).Genome(j) = PopuMain.Parents(i).Genome(j)
j=j+1;
j=PopuMain.GenomeLen ?
i=i+1; i=1; j=1;
i=PopuMain.NoOfDied ?
Keterangan
“CrossOver"
Awal prosedure
Return Y
Y
Y T
T
T
3.2.2.3.2 Prosedur Mutasi
RandMutPos = RndNum(1, CLng(PopuMain.GenomeLen)) RandNum = RndNum(0, 9)
i=i+1;
RandMutPos dan RandMutPos1 sama ?
RandMutPos1 = RndNum(1, CLng(PopuMain.GenomeLen)) RandNum = RndNum(0, 9)
Mutation of All Individuals ?
PopuMain.Individuals(i).Genome(RandMutPos) = RandNum
PopuMain.Individuals(i).Genome(RandMutPos1) = RandNum1
Keterangan=”Mutation of All Individuals “
i=Int(PopuMain.NumOfIndivid / 3) ?
RandMutPos = RndNum(1, CLng(PopuMain.GenomeLen)) RandNum = RndNum(0, 9)
IndividToMutate = RndNum(1,CLng (PopuMain.NumOfIndivid))
Keterangan=”Mutation of Single Individual“ PopuMain.Individuals(IndividToMutate).Genome(RandMut Pos) = RandNum
Return Awal prosedure
Y
Y
Y T
T
T