Aplikasi Algortima Genetika Untuk Optimasi Penjadwalan Mata Kuliah Di Jurusan Teknik Komputer UNIKOM Bandung

(1)

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