Aplikasi Algortima Genetika Untuk Optimasi Penjadwalan Mata Kuliah Di Jurusan Teknik Komputer UNIKOM Bandung
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 mutation.
(2)
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.
Kata kunci: algoritma genetika, populasi, kromosom, fitness, crossover, dan mutasi.
(3)
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. Diharapkan dengan digunakannya algoritma genetik akan diperoleh optimasi
(4)
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 sampai jam 17.30 dengan 1 jam perkuliahan sama dengan 45 menit.
(5)
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, maksud dan tujuan, batasan masalah, metodologi penelitaian, dan
(6)
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 optimal untuk mencari solusi pada penjadwalan mata kuliah.
(7)
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 parse tree yaitu objek kerjanya pada algoritma genetika). Sampai sekarang
(8)
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, seperti cellular automatis dan sorting networks.
(9)
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 sebaliknya.
(10)
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.
(11)
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 akan digunakan.
(12)
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 kombinatorial seperti TSP.
(13)
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
(14)
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 dalam kelompok ini akan diseleksi sebagai induk.
(15)
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
(16)
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 dalam algoritma genetika, antara lain: [8]
(17)
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 dua verteks dari pohon dan saling mempertukarkan operator atau nilainya.
(18)
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 cenderung mudah dipelajari.[1]
(19)
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 jendela yang dapat tampil pada IDE Visual Basic.
(20)
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 perhatikan adalah sebagai berikut :
(21)
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
(22)
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
(23)
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 Microsoft Excel, Word, dll.
(24)
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 lainnya yang dikelompokan kedalam dua jenis informasi.
(25)
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
(26)
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 dosen, tabel kelas, dan tabel pengajar.
(27)
1) Tabel 3.1 Mata kuliah
ID_MK Mata Kuliah SKS Semester
M00 Algoritma Pemograman I 2 1
M01 Fisika Dasar I 2 1
M02 Kalkulus I 3 1
M03 Pancasila dan UUD'45 1 1
M04 Pengantar Sistem Komputer 2 1
M05 Kalkulus II 3 3
M06 Algoritma Pemograman II 2 3
M07 Matematika Diskrit 1 3
M08 Elektronika Dasar 1 3
M09 Matriks dan Transformasi Linier 2 3
M10 Fisika Dasar II 2 3
M11 Pengantar Organisasi Komputer 2 3
M12 Sistem Digital 3 5
M13 Sistem Mikroprosesor 3 5
M14 Sistem Pengukuran 3 3
M15 Komunikasi Data 2 3
M16 Penulisan Laporan Teknik 2 5
M17 Kewiraan 3 7
M18 Sistem Operasi 3 5
M19 Bahasa Inggris 2 3
2) Tabel 3.2 Dosen
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
(28)
26
3) Tabel 3.3 Kelas
ID_Kelas Nama Kelas
K00 10 TK1
K01 10 TK2
K02 09 TK1
K03 09 TK2
K04 08 TK1
K05 08 TK2
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 algoritma genetik, dibuat kumpulan dari alternative solusi yang disebut sebagai
(29)
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
(30)
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 kromosom adalah gabungan dari gen-gen yang membentuk nilai tertentu dan
(31)
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 tabel data pengajar dan tabel kelas.
(32)
30 Tabel 3.6 Komponen Subjek
N
o id_mk Nama mata kuliah
id_dose
n Nama Dosen
0 M00 Algoritma Pemograman I D00 Wendi Zarman, M.si
1 M01 Fisika Dasar I D13 Usep Mohammad Ishaq
2 M02 Kalkulus I D01 Asep Solih Awalluddin, M.si
3 M03 Pancasila dan UUD'45 D02 Toufik Nuzwir N, S.kom
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 subjek, populasi yang nantinya akan diproses secara genetika bisa dibentuk,
(33)
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
(34)
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 terbaik saja yang berpeluang.
(35)
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 kedua.
(36)
34 Contoh
4 12 15 1 7 3
11 10 8 13 22 33
Titik Potong Parent 1
Parent 2 11 10 15 1 7 3
4 12 8 13 22 33
Offspring 1
Offspring 2
1 2 3 4 … 328
1 2 3 4 … 328
1 2 3 4 … 328
1 2 3 4 … 328
Gambar 3.2 Crossover
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 akan melewati proses mutasi.
(37)
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
- Info Jadwal keseluruhan yang telah dicetak Pengguna Timeslot Aplikasi Algoritma Genetika untuk penjadwalan mata kuliah D at a T im es lo t
(38)
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 login 3 Penjadwalan Algoritma Genetika 2 Pengolahan Data Mata kuliah Dosen Kelas Ruang Pengajar 4 Cetak laporan Jadwal L o g in u se r v al id
Data login user (name,pasword) Data login user (name,pasword) Invalid
Data timeslot - Info kromosom hasil Pembentukan populasi - Info Kromosom terbaik
Lo g in u se r v alid
- Data ruang - Data pengajar
Timeslot
Data jadwal hasil Algoritma genetika
Laporan jadwal keseluruhan yang akan dicetak
Info laporan jadwal keseluruhan yang akan dicetak
L o g in v ali d
(39)
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
(40)
38 3.1.3.2.2 DFD Level 1
Pengguna 2.1 Pengolahan Data mata kuliah 2.2 Pengolahan Data Dosen 2.3 Pengolahan Data Kelas 2.4 Pengolahan Data Pengajar Mta Kuliah Dosen Kelas Pengajar
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
Data mata kuliah
Data mata kuliah
Data Dosen Data Dosen Data Kelas Data Kelas Data Pengajar Data Pengajar Data mata kuliah
Data Dosen
Data menuju Proses 3
Login user valid
Login user valid
Login user valid
Login user valid
Gambar 3.6 DFD Level 1 proses 2
Pengguna 3.1 Parameter solusi 3.2 Algoritma genetika Timeslot
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.
(41)
- Populasi awal
- Crossover
- Mutasi
3.1.3.2.3 DFD Level 2
Pengguna
2.1.1 Tambah Mata kuliah
Mata Kuliah 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
Data mata kuliah
Data mata kuliah
Data mata kuliah
Data mata kuliah
Data mata kuliah
Data mata kuliah
Data mata kuliah Menuju Proses 2.4
Data mata kuliah 2.1.2 Cari Mata kuliah 2.1.3 Ubah Mata kuliah 2.1.4 Hapus Mata kuliah Login user valid
Login user valid
Login user valid
Login user valid
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 Data Dosen Menuju Proses 2.4 2.2.2 Cari Dosen 2.2.3 Ubah Dosen 2.2.4 Hapus Dosen Login user valid
Login user valid
Login user valid
Login user valid
Data Dosen Data Dosen Data Dosen Data Dosen Data Dosen Data Dosen Data Dosen
(42)
40 Pengguna 2.3.1 Tambah Kelas Kelas 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 Menuju Proses 3 2.3.2 Cari Kelas 2.3.3 Ubah Kelas 2.3.4 Kelas Login user valid
Login user valid
Login user valid
Login user valid
Data Kelas Data Kelas Data Kelas Data Kelas Data Kelas 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 Pengajar Menuju Proses 3 2.4.2 Cari Pengajar 2.4.3 Ubah Pengajar 2.4.4 Hapus Pengajar Login user valid
Login user valid
Login user valid
Login user valid
Data Pengajar Data Pengajar Data Pengajar Data Pengajar Data Pengajar Data Pengajar Data Pengajar
(43)
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: Antara 0-n(jml data)
text
OK
Cancel
-Masukan data 0-9
-klik “Ok” maka data diproses -klik” close” data tidak jadi diposes
Input F07 Keterangan
Gambar 3.12 Login
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
Menu F01
-klik “exit” maka keluar dari program dan menuju login F00 -klik “matakuliah” maka menuju F02 -klik “Dosen” maka menuju F03 -klik “Kelas” maka menuju F04 -klik “Pengajar” maka menuju F05 -klik “ proses jadwal” maka menuju F06 -klik “Laporan” maka menuju F08
Tanggal Jam
Keterangan
(44)
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 Text Text Bantal Simpan Edit Tambah Hapus Keluar Cari Text Text/Hasil Kode Mata kuliah :
Mata kuliah :
SKS :
Pencarian
ID Mata kuliah Mata kuliah SKS
Text Text Text
Text Text
Text
-klik”Tambah" maka tambah data menuju database -klik”Edit" maka edit data -klik”Simpan" maka simpan data didatabase -klik”Bantal" maka tidak menyimpan data -klik”Hapus" maka hapus data yang ada didatabase -klik”Keluar" maka menuju F01 menu -klik”Cari" maka mencari data didatabse
Mata kuliah F02
Keterangan
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 Text Bantal Simpan Edit Tambah Hapus Keluar Cari Text Text/Hasil Kode Mata kuliah :
Nama Dosen :
Pencarian
ID Dosen Nama Dosen
Text Text
Text Text
-klik”Tambah" maka tambah data menuju database -klik”Edit" maka edit data -klik”Simpan" maka simpan data didatabase -klik”Bantal" maka tidak menyimpan data -klik”Hapus" maka hapus data yang ada didatabase -klik”Keluar" maka menuju F01 menu -klik”Cari" maka mencari data didatabse
Dosen F03
Keterangan
(45)
3.2.1.5Perancangan Tampilan Form Data Kelas
Berikut ini merupakan rancangan tampilan form data kelas yang didalamnya terdapat tabel data Kelas.
Text Text Bantal Simpan Edit Tambah Hapus Keluar Cari Text Text/Hasil Kode Kelas :
Nama Kelad :
Pencarian
ID Kelas Nama Kelas
Text Text
Text Text
-klik”Tambah" maka tambah data menuju database -klik”Edit" maka edit data -klik”Simpan" maka simpan data didatabase -klik”Bantal" maka tidak menyimpan data -klik”Hapus" maka hapus data yang ada didatabase -klik”Keluar" maka menuju F01 menu -klik”Cari" maka mencari data didatabse
Kelas F04
Keterangan
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 Text Bantal Simpan Edit Tambah Hapus Keluar Cari Text Text/Hasil Kode Kelas :
Nama Kelad :
Pencarian
ID Kelas Nama Kelas
Text Text
Text Text
-klik”Tambah" maka tambah data menuju database -klik”Edit" maka edit data -klik”Simpan" maka simpan data didatabase -klik”Bantal" maka tidak menyimpan data -klik”Hapus" maka hapus data yang ada didatabase -klik”Keluar" maka menuju F01 menu -klik”Cari" maka mencari data didatabse
Pengajar F05
Keterangan
(46)
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
Best Chromosome
Fitness :
Made By : Text
Text
S0 S-1 …... S-14 Senin Selasa ……. Sabtu Text Text Text Text Text Text Text Text Text Text Text Text
S0 S-1 ……. S-14 Senin Selasa ……. Sabtu Text Text Text Text Text Text Text Text Text Text Text Text Ruang_0 Ruang_2
S0 S-1 …... S-14 Senin Selasa ……. Sabtu Text Text Text Text Text Text Text Text Text Text Text Text
S0 S-1 ……. S-14 Senin Selasa ……. Sabtu Text Text Text Text Text Text Text Text Text Text Text Text Ruang_1 Ruang_3 -klik “start” maka menuju F07 -klik “Stop” maka proses dihentikan -klik “Exit” maka mengakhiri proses dan menuju F00 Proses F06 Keterangan
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.
Masukan Parameter solusi: Antara 0-n(jml data)
text
OK
Cancel
-Masukan data 0-9
-klik “Ok” maka data diproses -klik” close” data tidak jadi diposes
Input F07 Keterangan
(47)
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. 7. inisialisasi batasan fitness diset: 97.
(48)
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 bersangkutan. Tabel kelas berisikan daftar seluruh kelas yang akan
(49)
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.
(50)
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 random Popmain individuals untuk menghasilkan pembentukan populasi.
(51)
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
(52)
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
(53)
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
(54)
52
BAB IV
ANALISIS DAN PENGUJIAN
4.1 Implementasi Sistem
Implementasi sistem adalah penerapan hasil perancangan yang telah diuraikan sebelumnya pada bab perancangan sistem. Implementasi yang dilakukan antara lain adalah menerapkan perancangan antarmuka kedalam bentuk software. Tujauan implementasi adalah mengkonfirmasikan model program perancangan pada sistem sehingga user dapat memberikan masukan kepada pembangun sistem. Berikut ini merupakan gambaran tampilan antarmuka yang telah dibuat.
1) Tampilan halaman login
Pada proses ini, user yang akan menggunakan aplikasi akan diminta untuk memasukan username dan password. Sehingga apabila ada user tidak sesuai maka tidak akan melakukan proses selanjutnya, yaitu melakukan penyusunan jadwal menggunakan algoritma genetika.
Gambar 4.1 Login
2) Tampilan menu utama
Pada tampilan ini halaman utama terdapat berberapa pilihan tombol diantaranya tobol keluar, untuk keluar dari aplikasi. Kemudian terdapat pula proses jadwal, untuk melakukan proses penjadwalan dengan menggunakan algoritma genetika.
(55)
Gambar 4.2 Menu utama
3) Tampilan data mata kuliah
Dengan mengklik data mata kuliah pada menu, maka akan tampil tampilan tabel mata kuliah yang didalamnya terdapat tombol-tombol pengolahan data mata kuliah yang disediakan, yaitu proses pencarian, tambah data, edit data, simpan data, batal, menghapus data dan keluar dari aplikasi.
(56)
54
4) Tampilan data dosen
Dengan mengklik data dosen pada menu, maka akan tampil tampilan tabel dosen yang didalamnya terdapat tombol-tombol pengolahan data dosen yang disediakan, yaitu proses pencarian, tambah data, edit data, simpan data, batal, menghapus data dan keluar dari aplikasi.
Gambar 4.4 Data dosen
5) Tampilan data kelas
Dengan mengklik data kelas pada menu, maka akan tampil tampilan tabel kelas yang didalamnya terdapat tombol-tombol pengolahan data kelas yang disediakan, yaitu proses pencarian, tambah data, edit data, simpan data, batal, menghapus data dan keluar dari aplikasi.
(57)
Gambar 4.5 Data kelas
6) Tampilan data pengajar
Dengan mengklik data pengajar pada menu, maka akan tampil tampilan tabel pengajar yang didalamnya terdapat tombol-tombol pengolahan data pengajar yang disediakan, yaitu proses pencarian, tambah data, edit data, simpan data, batal, menghapus data dan keluar dari aplikasi.
(58)
56
7) Tampilan pembentukan populasi awal
Untuk melakukan proses pembentukan populasi awal dimulai dengan memasukan parameter-parameter solusi yang udah tersusun.
Gambar 4.7 Data Pembentukan populasi awal
8) Tampilan parameter solusi
Dengan memasukan parameter solusi maka penjadwalan mata kuliah akan dibentuk secara acak untuk menempati timeslot yang udah tersusun seperti terlihat digambar 4.7.
(59)
4.2 Pengujian Sistem
Pengujian parameter algoritma genetika ini bertujuan untuk menganalisa kinerja algoritma genetika pada proses penyusunan jadwal mata kuliah sesuai dengan ketentuan yang telah ditetapkan pengujian nantinya dilakukan dengan cara mengubah-ubah masukan parameter pada proses penjadwalan sehingga nanti diharapkan bisa didapat rekomendasi atau patokan parameter algoritma genetika yang menghasilakan proses penyusunan jadwal mata kuliah yang baik.
Pada tabel 4.1 dibawah ini menunjukan beberapa hasil pengujian sistem algoritma genetika dengan mengubah-ubah parameter masukan dan probabilitas
crossover Pc dengan nilai 75 dan probabilitas mutasi Pm dengan nilai 3. Apabila
jumlah populasi diset 50 dan 100, jumlah generasi diset 100.
Tabel 4.1 Hasil pengujian pertama:
Populasi Pc Pm Fitness Aktivitas Perkuliahan Waktu
(detik) Jum Mtkul Frekuensi Dosen Frekuensi Kelas
50 75 3 90,909 10 1 3 28,15
50 75 3 93,75 15 2 1 17,00
50 75 3 90 20 1 2 22,05
50 75 3 96 25 1 2 9,07
50 75 3 96,774 30 0 3 11,05
50 75 3 97,222 35 0 0 6,17
100 75 3 90,909 10 0 3 42,40
100 75 3 93,75 15 0 2 19,21
100 75 3 95,238 20 1 2 17,99
100 75 3 96,153 25 0 2 11,89
100 75 3 96,774 30 2 3 10,33
100 75 3 97,222 35 1 2 6,06
Dari data tabel 4.1 terlihat bahwa jadwal terbaik diproleh pada masukan 35 mata kuliah dan jumlah populasi 50 dimana hanya satu frekuensi dosen yang tinggi dalam sehari dan tidak terdapat frekuensi kelas yang tinggi dalam sehari dengan waktu pengeksekusian 6,17 detik, sedangkan pada populasi 100 jadwal yang terbaik pada masukan 25 mata kuliah dimana tidak terdapat frekuensi dosen yang tinggi tetapi terdapat dua frekuensi kelas yang tinggi dan waktu pengeksekusian 11,89 detik.
(60)
58 Gambar 4.9 Grafik Uji pertama.
Pada gambar 4.9 menunjukan laju kecepatan algoritma genetik dalam mengeksekusi, bisa telihat bahwa semakin besar ukuran populasi kemungkinan lebih besar untuk menemukan solusi yang terbaik, namun membutuhkan waktu pengeksekusian yang lebih lama.
Pada tabel 4.2 dibawah ini menunjukan beberapa hasil pengujian sistem algoritma genetika dengan mengubah-ubah parameter masukan dan probabilitas
crossover Pc dengan nilai 75 dan probabilitas mutasi Pm dengan nilai 4. Apabila
jumlah populasi diset 50 dan 100, jumlah generasi diset 100.
Tabel 4.2 Hasil pengujian kedua:
Populasi Pc Pm Fitness Aktivitas Perkuliahan Waktu
(detik) Jm Mtkul Frekuensi Dosen Frekuensi Kelas
50 75 4 83,333 10 0 3 26,16
50 75 4 79,947 15 2 2 16,92
50 75 4 90,909 20 0 2 14,75
50 75 4 96,153 25 0 3 15,05
50 75 4 96,774 30 1 2 11,59
50 75 4 97,142 35 1 2 12,84
100 75 4 90,909 10 2 3 27,83
100 75 4 88,235 15 0 0 16,25
100 75 4 90 20 0 2 12,84
100 75 4 96,153 25 0 1 14,47
100 75 4 96,774 30 1 1 9,36
(61)
Dari data tabel 4.2 terlihat bahwa jadwal terbaik diproleh pada masukan 20 mata kuliah dan jumlah populasi 50 dimana tidak terdapat frekuensi dosen yang tinggi dalam sehari dan terdapat dua frekuensi kelas yang tinggi dalam sehari dengan waktu pengeksekusian 14,75 detik, sedangkan pada populasi 100 jadwal yang terbaik pada masukan 25 mata kuliah dimana tidak terdapat frekuensi dosen yang tinggi tetapi terdapat satu frekuensi kelas yang tinggi dan waktu pengeksekusian 14,75 detik.
Gambar 4.10 Grafik Uji kedua.
Pada gambar 4.10 menunjukan laju kecepatan algoritma genetik dalam mengeksekusi data, bisa telihat bahwa semakin besar ukuran populasi kemungkinan lebih besar untuk menemukan solusi yang terbaik, namun membutuhkan waktu pengeksekusian yang lebih lama.
(1)
APLIKASI ALGORITMA GENETIKA UNTUK OPTIMASI
PENJADWALAN MATA KULIAH
DI JURUSAN TEKNIK KOMPUTER UNIKOM BANDUNG
TUGAS AKHIR
Disusun untuk memenuhi syarat kelulusan
Pada Program Studi Sistem Komputer Strata Satu dijurusan Teknik Komputer
Oleh: Akhmad Tohirin
10205008
Pembimbing: Wendi Zarman, M.Si.
Sri Nurhayati, M.T
JURUSAN TEKNIK KOMPUTER
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
(2)
61
DAFTAR PUSTAKA
[1] Andi, Aplikasi Database Visual Basic 6.0, Madcoms, Yogyakarta, 2007. [2] Andi, Rumusan dan Fungsi Microsoft Access 2007, Madcoms, Yogyakarta
2007.
[3] Suyanto, Algoritma Genetika dalam Matlab, Andi Offset, Yogyakarta, 2005.
[4] Suyanto, ST. M.Sc, Artifical Inteligence: Seaching, reasoning, planning, informatika, Bandung, 2007.
[5] Sani, Ihsan, Abdullah, Analisis dan implementasi Algoritma Gentika pada Penjadwalan Mata kuliah, Tugas Akhir Jurusan Teknik Informatika, Universitas Komputer Indonesia, Bandung, 2008.
[6] Muhammad Arya, Aplikasi Algoritma genetik Untuk Optimasi Penjadwalan Mata Kuliah. Karya Ilmiah Dosen Teknik Elektro, Universitas Komputer Indonesia, Bandung
[7] Algoritma Genetik (http://www.pdf-finder.com/, Aplikasi-Algoritma-Genetik-Untuk-Optimasi-Penjadwalan-Kegiatan diakses pada 20 September 2010).
[8] Basuki, Achmad. Algoritma genetik (World Wide Web: http://www2.eepis-its.edu/~basuki/lecture/AlgoritmaGenetika.pdf, Diakses pada 11 September 2010).
(3)
DAFTAR RIWAYAT HIDUP
DATA PRIBADI
Nama Lengkap : Akhmad Tohirin
Tempat tanggal lahir : Brebes, 21 Agustus 1985
Agama : Islam
Jenis Kelamin : Laki - laki
Kewarganegaraan : Indonesia
Alamat : Jl. Dipatiukur no 96 C. RT 002 RW 013 kel Coblong.
Bandung.
Email : [email protected]
DATA PENDIDIKAN
SDN TENGKI II Brebes 1993-1999
SLTPN I Brebes 1999-2002
SMAN III Brebes 2002-2005
UNIKOM Bandung 2005-2011
ORGANISASI
- Anggota Pramuka 2000
- Anggota OSIS 2003
(4)
(5)
iii
KATA PENGANTAR
Assalamualaikum Wr, Wb.
Segala puji dan syukur kehadirat Allah SWT, yang telah memberikan karunia dan hidayah-Nya kepada penulis sehingga dapat menyelesaikan tugas akhir dengan judul : “Aplikasi Algoritma Genetika Untuk Optimasi Penjadwalan Mata Kuliah Di Jurusan Teknik Komputer UNIKOM Bandung”. Tugas akhir ini disusun untuk memenuhi syarat dalam meraih gelar kesarjanaan pada Jurusan Teknik Komputer Fakultas Teknik dan Ilmu Komputer di Universitas Komputer Indonesia.
Segala usaha tersebut tidak akan berhasil tanpa dorongan serta bimbingan dari semua pihak terutama dari pihak keluarga, dosen pembimbing dan rekan-rekan mahasiswa, sehingga penyusun dapat menyelesaikan tugas akhir ini. Oleh karena itu, perkenankan penyusun mengucapkan terima kasih dan penghargaan yang sebesar-besarnya kepada:
1. Sri Nurhayati, M.T. Selaku Ketua Jurusan Teknik Komputer.
2. Wendi Zarman, M.Si. Selaku Dosen Pembimbing I yang telah meluangkan waktu dan tenaga untuk memberikan bimbingan dan masukan yang sangat berharga bagi terselesaikannya tugas akhir ini.
3. Sri Nurhayati, M.T. Selaku Dosen Pembimbing II yang telah memberikan banyak waktu dan inspirasi selama proses bimbingan.
4. Wendi Zarman, M.Si. Selaku dosen wali kelas 05 TK-1.
5. Bapak dan Ibu Dosen serta Jajaran Staf Jurusan Teknik Komputer.
6. Ayahanda Maskuri dan Ibunda Tarmi yang telah mencintai, menyayangi, membesarkan, mendidik penulis dengan penuh kesabaran dan keikhlasan. 7. Adiku Tercinta Siti Masriyani Terimakasih atas kasih sayang, nasehat,
(6)
iv
8. Semua pihak yang tidak bisa disebutkan satu persatu. Mohon maaf dan terima kasih sebanyak-banyaknya.
Penulis menyadari bahwa masih terdapat kekurangan di dalam tugas akhir ini. Oleh karena itu, penulis mengharapkan saran dan kritik yang bersifat membangun dan semoga tugas akhir ini bermanfaat dalam pengembangan wawasan ilmu pengetahuan bagi pembaca pada umumnya dan penulis pada khususnya.
Kesempurnaan hanya milik Allah SWT, dan penulis hanyalah manusia yang tak luput dari salah dan dosa. Semoga apa yang disampaikan bermanfaat bagi semua pihak.
Wassalamualaikum Wr, Wb.
Bandung, Agustus 2011