• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
69
0
0

Teks penuh

(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

(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.

(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.

(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

(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,

(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

(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

(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,

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(27)

1) Tabel 3.1 Mata kuliah

M09 Matriks dan Transformasi Linier 2 3

M10 Fisika Dasar II 2 3

M11 Pengantar Organisasi Komputer 2 3

M12 Sistem Digital 3 5

ID_Dosen Nama Dosen

D00 Wendi Zarman, M.si

D01 Asep Solih Awalluddin, M.si

D02 Toufik Nuzwir N, S.kom

D03 Hidayat, MT

D04 Agus Mulyana, S.kom

D05 Silvia Lorena Br.ginting, MT

D06 Sri Nurhayati, MT

D07 S.Indriani L, MT

D08 Sri Supatmi, S.kom

D09 Ir. Syahrul, MT

D10 Dr. Yeffry Handoko Putra, MT

D11 Maskie Zoematan,S.kom

D12 Dr. Yusrila Y.kerlooza

(28)

26

3) Tabel 3.3 Kelas

ID_Kelas Nama Kelas

K00 10 TK1

4) Tabel 3.4 Pengajar

ID_MK Mata Kuliah Pengajar

M00 Algoritma Pemograman I Wendi Zarman, M.si

M01 Fisika Dasar I Usep Mohammad Ishaq

M02 Kalkulus I Asep Solih Awalluddin, M.si

M03 Pancasila dan UUD'45 Toufik Nuzwir N, S.kom

M04 Pengantar Sistem Komputer Agus Mulyana, S.kom

M05 Kalkulus II Asep Solih Awalluddin, M.si

M06 Algoritma Pemograman II Maskie Zoematan,S.kom

M07 Matematika Diskrit Sri Nurhayati, MT

M08 Elektronika Dasar Sri Supatmi, S.kom

M09 Matriks dan Transformasi Linier Silvia Lorena Br.ginting, MT

M10 Fisika Dasar II Usep Mohammad Ishaq

M11 Pengantar Organisasi Komputer Dr. Yusrila Y.kerlooza

M12 Sistem Digital Hidayat, MT

M13 Sistem Mikroprosesor Ir. Syahrul, MT

M14 Sistem Pengukuran Dr. Yeffry Handoko Putra, MT

M15 Komunikasi Data S.Indriani L, MT

M16 Penulisan Laporan Teknik Hidayat, MT

M17 Kewiraan Toufik Nuzwir N, S.kom

M18 Sistem operasi Silvia Lorena Br.ginting, MT

M19 Bahasa Inggris Toufik Nuzwir N, S.kom

Untuk memecahkan permasalahan penjadwalan kuliah ini penulis

menggunakan menggunkan algoritma genetika. pemecahan menggunakan

algoritma genetika ini didasarkan pada mekanisme sistem natural yakni genetik

dan seleksi alam. Seperti dalam metode random, pencarian solusi dimulai dari

suatu titik uji tertentu. Titik uji tersebut dianggap sebagai alternative solusi. Pada

(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

(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

(32)

30 Tabel 3.6 Komponen Subjek

N

4 M04 Pengantar Sistem Komputer D04 Agus Mulyana, S.kom

5 M05 Kalkulus II D01 Asep Solih Awalluddin, M.si

6 M06 Algoritma Pemograman II D11 Maskie Zoematan,S.kom

7 M07 Matematika Diskrit D06 Sri Nurhayati, MT

8 M08 Elektronika Dasar D08 Sri Supatmi, S.kom

9 M09 Matriks dan Transformasi Linier D05 Silvia Lorena Br.ginting, MT

10 M10 Fisika Dasar II D13 Usep Mohammad Ishaq

11 M11 Pengantar Organisasi Komputer D12 Dr. Yusrila Y.kerlooza

12 M12 Sistem Digital D03 Hidayat, MT

13 M13 Sistem Mikroprosesor D09 Ir. Syahrul, MT

14 M14 Sistem Pengukuran D10 Dr. Yeffry Handoko Putra, MT

15 M15 Komunikasi Data D07 S.Indriani L, MT

16 M16 Penulisan Laporan Teknik D03 Hidayat, MT

17 M17 Kewiraan D02 Toufik Nuzwir N, S.kom

18 M18 Sistem Operasi D05 Silvia Lorena Br.ginting, MT

35 M19 Teori Teknik Kontrol D10 Dr. Yeffry Handoko Putra, MT

Dilakukan penyusunan seperti terlihat pada tabel 3.6, maka didapat data

komponen subjek yang ada pada studi kasus sejumlah 19 subjek (agar lebih jelas

bisa dilhat pada lampiran), sehingga dengan jumlah sebanyak itu masih bisa

ditapung oleh slot yang berjumlah 328 slot

Representasi kromosom yang dibentuk nantinya data pada tabel 3.6 data yang

terdapat pada kolom “no_gen” akan dijadikan sebagai nomor gen dari suatu kromosom, sehingga apabila didapat gen bernomor 0, maka artinya gen tersebut

berisikan kode mata kuliah M00 yang merupakan mata kuliah Algoritma

pemograman I semester 1 dengan nama dosen Wendi Zarman.Msi dan mengajar

10 TK1 dengan bobot mata kuliah 2 SKS.

Seperti yang telah dijelaskan sebelumnya, pada algoritma genetika pencarian

solusi dimulai dari satu titik uji yang dianggap sebagai alternative solusi.

Kumpulan-kumpulan alternative solusi didalam algortima genetika disebut

populasi. Dengan terbentuknya komponen waktu dan kumpulan komponen

(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

(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

(36)

34

Kemudian setelah dilakukan proses kawin silang dari kedua kromosom induk

(parents) yang terpilih maka akan menghasilkan kromosom anak (offspring).

b) Mutasi

Adapun setengah populasi baru lainnya akan dibangkitkan dengan cara

mutasi yaitu setengah dari populasi induk akan dipilih untuk diduplikasikan.

Pemilihan dapat dilakukan dengan metode Pengkodean biner, random maupun

roulettle. Pada hasil ini akan dilakukan untuk menginversi nilai bit pada posisi

tertentu yang dipilih secara acak pada kromosom.

Teknik mutasi yaitu:

1. Pilih acak kromosom yang akan dimutasi.

2. Tentukan dua atau lebih gen yang akan dimutasi pada kromosom

3. Cari posisi gen-gen yang terpilih kemudian merubah bit-bitnya.

4 2 9 1 10 3 4 1 9 1 10 3

Kromosom sebelum Mutasi Kromosom Setelah Mutasi

1 2 3 4 … 328 1 2 3 4 … 328

Gambar 3.3 Mutasi

Karena proses mutasi juga merupakan salah satu operator dasar dalam

algoritma genetika, sehingga sama dengan crossover, mutasi juga memerlukan

probabilitas dengan proses yang sama seprti probabilitas crossover. Individu

dengan nilai probabilitas lebih kecil dari probabilitas yang telah ditentukan yang

(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

(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

Data login user (name,pasword) Invalid

Data timeslot - Info kromosom hasil Pembentukan populasi - Info Kromosom terbaik

(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

Data mata kuliah yang akan ditambah, dicari, diubah dan dihapus

Data Dosen yang akan ditambah, dicari, diubah dan dihapus

Data kelas yang akan ditambah, dicari, diubah dan dihapus

Data Pengajaryang akan ditambah, dicari, diubah dan dihapus

Info data Pengajaryang akan ditambah, dicari, diubah dan dihapus Info data kelas yang akan ditambah, dicari, diubah dan dihapus

Info data Dosen yang akan ditambah, dicari, diubah dan dihapus

Info data mata kuliah yang akan ditambah, dicari, Diubah dan dihapus

Gambar 3.6 DFD Level 1 proses 2

Pengguna

Data ruang dan data pengajar Dari proses 3 Login user valid

Login user valid

Data kromosom yang akan diatur

Info Data kromosom yang akan diatur

Data parameter

Info Data parameter

Gambar 3.7 DFD Level 1 proses 3

Pada gambar 3.6 terdapat beberapa proses yaitu:

1. Parameter solusi yang didalamnya terdapat kumpulan kromosom yang

akan dibangkitkan secara random untuk membentuk populasi.

(41)

- Populasi awal Data mata kuliah yang akan ditambah

Info data mata kuliah yang akan ditambah

Data mata kuliah yang akan dicari

Info data mata kuliah yang akan dicari

Data mata kuliah yang akan diubah

Info data mata kuliah yang akan diubah

Data mata kuliah yang akan dihapus

Info data mata kuliah yang akan dihapus

Data mata kuliah

Gambar 3.8 DFD Level 2 proses 2.1

Pengguna

2.2.1 Tambah

Dosen

Dosen Data Dosen yang akan ditambah

Info Data Dosen yang akan ditambah

Data Dosen yang akan dicari

Info Data Dosen yang akan dicari

Data Dosenyang akan diubah

Info Data Dosen yang akan diubah

Data Dosen yang akan dihapus

Info Data Dosen yang akan dihapus

Data Dosen

(42)

40 Data Kelas yang akan ditambah

Info Data Kelas yang akan ditambah

Data Kelas yang akan dicari

Info Data Kelas yang akan dicari

Data Data Kelas yang akan diubah

Info Data Kelas yang akan diubah

Data Kelas yang akan dihapus

Info Data Kelas yang akan dihapus Data Kelas

Data Kelas

Gambar 3.10 DFD Level 2 proses 2.3

Pengguna

2.4.1 Tambah Pengajar

Pengajar Data Pengajar yang akan ditambah

Info Data Pengajar yang akan ditambah

Data Pengajar yang akan dicari

Info Data Pengajar yang akan dicari

Data Pengajar yang akan diubah

Info Data Pengajar yang akan diubah

Data Pengajar yang akan dihapus

Info Data Pengajar yang akan dihapus Data Pengajar

Data

(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:

3.2.1.2 Perancangan Tampilan Form Menu

Gambar berikut ini merupakan rancangan tampilan halam utama yang

merupakan tampilan aplikasi pada saat digunakan. Pada aplikasi ini user yang

akan mengolah data dan jadwal diharuskan untuk melakukan login terlebih

dahulu, karena itu menu “data masukan” dan proses jadwal” hanya tampilan dan

bisa diakses apabila sudah melakukan login sebelumnya.

Mata kuliah Dosen Kelas Pengajar Proses Jadwal Laporan Exit -klik “Laporan” maka menuju F08

Tanggal Jam

Keterangan

(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

ID Mata kuliah Mata kuliah SKS

Text Text Text

Gambar 3.14 Form Data Mata Kuliah

3.2.1.4 Perancangan Tampilan Form Data Dosen

Berikut ini merupakan rancangan tampilan form data dosen yang didalamnya

terdapat tabel data Dosen.

Text

(45)

3.2.1.5Perancangan Tampilan Form Data Kelas

Berikut ini merupakan rancangan tampilan form data kelas yang didalamnya

terdapat tabel data Kelas.

Text

Gambar 3.16 Form Data Kelas

3.2.1.6 Perancangan Tampilan Form Data Pengajar

Berikut ini merupakan rancangan tampilan form data pengajar yang

didalamnya terdapat tabel data pengajar.

Text

(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

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.

(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.

(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

(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

(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

Gambar

Tabel 3.6 Komponen Subjek
Gambar 3.4 Diagram Konteks
Gambar 3.5 DFD Level 0
Gambar 3.7 DFD Level 1 proses 3
+7

Referensi

Dokumen terkait

Hasil luaran dari pembangunan mobile GIS kependudukan ini adalah sebuah aplikasi mobile yang dapat digunakan untuk melihat, mencari, dan mengetahui informasi penduduk

Dalam pelaksanaan kuliah kerja media, memperoleh tugas diantaranya merancang desain poster, desain logo, desain company profile, desain ulang materi promosi, desain brand Erporate

Data yang digunakan dalam penelitian ini berupa data MODIS TERRA 8 harian, Lahan baku sawah dari Lembaga Penerbangan dan Antariksa Nasional (LAPAN), batas administrasi (Pulau Jawa,

Mengembangkan Kemampuan Berpikir Logis dan Komunikasi Matematika siswa Sekolah Menengah pertama Melalui Pendekatan Matematika Realistik , Disertasi UPI Bandung :

Sedangkan objek dalam penelitian ini adalah pelaksanaan proses dan hasil yang diperoleh dari penerapan model pembelajaran kooperatif tipe Cooperative Integrated Reading

dilaksanakan oleh guru mata pelajaran matematika untuk mengatasi kesulitan belajar peserta didik dalam mencapai ketuntasan belajar matematika di SMP Negeri 1

Data mining dan algoritma apriori sangat berguna untuk mengetahui hubungan frekuensi penjualan sepatu yang paling diminati oleh konsumen, sehingga dapat dijadikan

Analisa perlakuan kimia dan fisik serat ampas pelepah aren diarahkan pada peningkatan kualitas baik kualitas teknik (kekuatan, keuletan, daya serap air dan ketahanan