Penjadwalan Perkuliahan Dengan Menggunakan Algoritma Genetika (Studi Kasus: S-1 Ilmu Komputer Universitas Sumatera Utara)

(1)

PENJADWALAN PERKULIAHAN DENGAN MENGGUNAKAN ALGORITMA GENETIKA ( STUDI KASUS S-1 ILMU KOMPUTER

UNIVERSITAS SUMATERA UTARA )

SKRIPSI

MARTINELLY SEMBIRING 091401012

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2013


(2)

PENJADWALAN PERKULIAHAN DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS S-1 ILMU KOMPUTER USU)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

MARTINELLY SEMBIRING 091401012

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2013


(3)

PERSETUJUAN

Judul : PENJADWALAN PERKULIAHN DENGAN

MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS S-1 ILMU KOMPUTER UNIVERSITAS SUMATERA UTARA)

Katagori : SKRIPSI

Nama : Martinelly Sembiring

Nomor Induk Mahasiswa : 091401012

Program Studi : SARJANA (S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA Diluluskan di

Medan, Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Handrizal, S.Si, M.Comp.Sc Dr. Poltak Sihombing, M.Kom NIP: 196203171991031001 Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP: 196203171991031001


(4)

PERNYATAAN

PENJADWALAN PERKULIAHAN DENGAN MENGGUNAKAN ALGORITMA GENETIKA (STUDI KASUS: S-1 ILMU KOMPUTER UNIVERSITAS

SUMATERA UTARA)

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 15 Mei 2013

Martinelly Sembiring 091401012


(5)

PENGHARGAAN

Pertama-tama penulis ingin mengucapkan puji syukur ke hadirat Tuhan yang Maha Esa karena atas limpahan rahmat-Nya penulis dapat menyelesaikan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer.

Selama mengerjakan skripsi Penjadwalan Perkuliahn Dengan Menggunakan Algoritma (Studi Kasus S-1 Ilmu Komputer Universitas Sumatera Utara), penulis menyadari ada banyak masalah yang sulit dipecahkan. Namun berkat bantuan dari semua pihak, skripsi ini dapat selesai dengan lancar. Untuk itu pada kesempatan ini penulis mengucapkan banyak terima kasih kepada:

1. Prof. Dr. dr. Syahril Pasaribu, DTM&H, MSc(CTM). Sp.A(K), selaku rektor Universitas Sumatera Utara.

2. Prof. Dr. Muhammad Zarlis, selaku Dekan Fasilkom-TI (Fakultas Ilmu Komputer dan Teknologi Informasi) Universitas Sumatera Utara

3. Dr.Poltak Sihombing, M.Kom selaku kepala Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara dan selaku dosen pembimbing pertama yang telah banyak membantu selama bimbingan kepada penulis.

4. Maya Silvi Lydia,B.Sc,M.Sc selaku sekretaris Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara.

5. Handrizal, S.Si, M.Comp.Sc selaku dosen pembimbing kedua yang telah banyak membantu selama bimbingan kepada penulis.

6. Dian Rachmawati S.Kom, M.Kom selaku dosen pembanding pertama yang telah banyak memberikan masukan kepada penulis.

7. Dian Wirdasari S.Kom, M.Kom selaku dosen pembanding kedua yang telah banyak memberikan masukan kepada penulis.

8. Kedua orang tua saya Prof.Dr.Timbangen Sembiring, M.Sc dan Pesta Ulina Br Tarigan yang telah banyak membrikan semangat kepada penulis hingga selesainya laporan skripsi ini serta kepada saudara-saudari penulis: Thomas Sembiring, ST, Meily Japani Artha Br sembiring, dan Ekalma Toto Alloy sembiring.

9. Jos Timanta Tarigan S.Kom, M,Sc selaku dosen yang telah banyak membantu penulis.


(6)

10.Staff pengajar, pegawai dan administrasi pada Program Studi S-1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara yang telah memberikan bantuan dan pelayanan terbaik kapada penulis

11.Rekan mahasiswa/i Angkatan 2009 Program Studi S-1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara yang telah banyak membantu penulis baik berupa dorongan semangat dan doa selama mengikuti perkuliahan Efrienni Tampubolon, Nurul, Arfi semua pihak yang tidak dapat penulis sebutkan satu persatu dalam skripsi ini, terimakasih atas segala bantuan dan doa yang diberikan. Dengan segala kekurangan dan kerendahan hati, sekali lagi penulis mengucapkan terima kasih. Semoga kiranya Tuhan yang membalas segala bantuan dan kebaikan yang telah kalian berikan.

Medan, Mei 2013 Martinelly Sembiring


(7)

ABSTRAK

Penjadwalan mata kuliah merupakan salah satu kegiatan dalam universitas yang membutuhkan banyak waktu untuk menyelesaikannya. Jadwal mata kuliah yang baik adalah jadwal yang memperhatikan semua komponen dasar penyusunnya. Komponen dasar terdiri atas dosen, mata kuliah, ruangan, dan jam kuliah. Permasalahan yang sering terjadi dikegiatan penjadwalan yaitu adanya bentrok antara jadwal yang satu dengan yang lain. Untuk mencari alternatif dari penjadwalan digunakan algoritma genetika, yaitu algoritma yang menyelesaikan masalah dengan melakukan pemodelan mekanisme evolusi biologis. Kombinasi parameter genetika yang digunakan adalah seleksi turnamen, kawin silang satu titik, dan mutasi. Aplikasi ini dibangun dengan menggunakan pemrograman java Dari penggunaan algoritma genetika dalam penyelesaian masalah ini, diharapkan dapat menjadi alternatif untuk penjadwalan.

Katakunci : Penjadwalan, algoritma genetika, PemrogramanJava, Seleksi Tournament, Kawin Silang Satu Titik, dan Mutasi.


(8)

IMPLEMENTATION OF GENETIC ALGORITHM IN LECTURE TIMETABLING

ABSTRACT

Lecture timetabling is one of task in university that takes too much time to complete. A good lecturer timetabling is timetabling that includes all basic components. those components are: lecturer, lecture, class, and time. Problems that often occurred on timetabling is a crash between one timetabling with another. To seek alternative of timetabling is by implemented genetic algorithm, is algorithm that solve problem using mechanism of biological evolution. Combination of genetic parameters used are tournament selection, crossover one point, and mutation. Using genetic algorithm in solving this problem is expected to be an alternative in lecturer timetabling.

Keywords: Timetabling, Genetic algorithm, java programming, tournament selection, crossover one point, and mutation.


(9)

DAFTAR ISI

HALAMAN

Persetuajuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Datftar isi viii

Daftar Tabel xi

Daftar Gambar xiv

BAB I Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 3

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 4

1.5 Manfaat penelitian 4

1.6 Metode Penelitian 4

1.7 Sistematika Penulisan 5

BAB 2 Landasan Teori

2.1 Penjadwalan 7

2.2 Algoritma Genetika 8


(10)

2.2.1.1 Pengkodean 13

2.2.1.1.1 Pengkodean Biner 14

2.2.1.1.2 Pengkodean Bilangan Rill 14

2.2.1.1.3 Pengkodean Bilangan Bulat 14

2.2.1.1.4 Pengkodean Struktur Data 15

2.2.1.2 Prosedur Inisialisasi 15

2.2.1.3 Evaluasi Fitness 16

2.2.1.4 Seleksi 16

2.2.1.4.1 Seleksi Roda Rolet 17

2.2.1.4.2 Seleksi Ranking 18

2.2.1.4.3 Seleksi Tournament 19

2.2.1.5 Perkawinan Silang 19

2.2.1.5.1 Perkawinan Silang 1-titik 20

2.2.1.5.2 Perkawinan Silang 2-titik 20

2.2.1.5.3 Perkawinan Seragam 20

2.2.1.6 Mutasi 21

2.2.1.6.1 Mutasi dalam pengkodean Biner 21 2.2.1.6.2 Mutasi dalam pengkodean Permutasi 22 2.2.1.6.3 Mutasi dalam Pengkodean Nilai 22

BAB 3 Analisis Perancangan Sistem 23

3.1 Analisi kebutuhan Perangkat Lunak 23

3.1.1 Metode Analisis 23

3.2 Hasil analisis Penjadwalan dengan Algoritma Genetika 25

3.2.1 Teknik Pengkodean 25

3.2.2. Menetukan PopulasiAwal dan Inisialisasi kromosom 25

3.2.3 Fungsi Fitness 28

3.2.4 Seleksi 30

3.2.5 Crossover 31

3.2.6 Mutasi 32

3.3 Sistem penjadwalan Perkuliahan di FASILKOM-TI 33


(11)

3.3.2 Aturan Umum Penjadwalan 37

3.3.3 Aturan Khusus Penjadwalan 38

3.4 Perancangan Perangkat Lunak 40

3.4.1 Hasil Perancangan 40

3.4.1.1 Pemodelan Proses 40

3.4.1.2 Pemodelan Data 44

3.4.1.3 Perancangan User Interface 47

BAB 4 IMPLEMENTASI DAN PERANCANGAN 49

4.1 Implementasi 49

4.1.1 Penggunaan Aplikasi 49

4.1.1.1 Halaman Utama 49

4.2 Pengujian 53

4.2.1 Pengujian Max Population 54 4.2.1.1 Max Population = 50 55 4.2.1.2 Max Population = 100 61 4.2.1.3 Max Population = 150 68 4.2.1.4 Max Population = 200 74 4.2.1.5 Max Population = 250 81

BAB 5 KESIMPULAN DAN SARAN 82

5.1 Kesimpulan 82

5.2 Saran 82

DAFTAR PUSTAKA 83


(12)

DAFTAR TABEL

HALAMAN

Tabel 2.1 Contoh Pengkodean Biner 14

Tabel 2.2 Contoh Pengkodean Bilangn Rill 14

Tabel 2.3 Contoh Pengkodean Bilangan Bulat 14

Tabel 2.4 Contoh Populasi dengan 5 Kromosom beserta Fitness nya 17

Tabel 2.5 Keadaan Fitness Sebelum diranking 18

Tabel 2.6 Keadaan Fitness Sesudah diranking 18

Tabel 2.7 ContohPerkawinan Silang 1-titik 20

Tabel 2.8 Contoh Perkawinan Silang 2-titik 20

Tabel 2.9 Contoh Perkawinan Seragam 21

Tabel 2.10 Contoh Mutasi Pada Pengkodean Biner 22 Tabel 2.11 Contoh Mutasi dalam Pengkodean Permutasi 22 Tabel 2.12 Contoh Mutasi dalam Pengkodean Permutasi nilai Rill 23 Tabel 3.1 Contoh Tabel Pembentukan Kromosom pada ruang Pascal 27 Tabel 3.2 Contoh Tabel Pembentukan Kromosom Pada Ruang Delphi 28

Tabel 3.3 Contoh Penjadwalan Mata Kuliah 28

Tabel 3.4 Contoh Seleksi Tournament 30

Tabel 3.5 Contoh Dosen dan mata kuliah yang di ampu 35

Tabel 3.6 Contoh Paket Mata Kuliah 35

Tabel 3.7 Daftar Jam Kuliah 36

Tabel 3.8 Ruangan dan kapasistas 36

Tabel 3.9 Contoh penjadwalan mata kuliah 37

Tabel 3.10 Struktur tabel dosen 46

Tabel 3.11 Struktur tabel mata Kuliah 46


(13)

Tabel 3.13 Struktur data kelas 47

Tabel 3.14 Struktur data jadwal 47

Tabel 3.15 Interface Ruang 48

Tabel 3.16 Interface Ruang Fortran 56

Tabel 3.17 Interface Ruang Basic 56

Tabel 3.18 Interface Ruang Java 56

Tabel 3.19 Interface Ruang Visual Basic 57

Tabel 3.20 Interface RUang Delphi 57

Tabel 4.1 Penjadwalan Perkuliahan Ruang Pascal 50 Tabel 4.2 Penjadwalan Perkuliahan Ruang Fortran 51 Tabel 4.3 Penjadwalan Perkuliahan Ruang Basic 51

Tabel 4.4 Penjadwalan Perkuliahan Ruang Java 52

Tabel 4.5 Penjadwalan Perkuliahan Ruang Visual Basic 52 Tabel 4.6 Penjadwalan Perkuliahan Ruang Delphi 53

Tabel 4.7 Tabel MaxPopulation =50 55

Tabel 4.8 Penjadwalan Perkuliahan Ruang Pascal ketika MaxPop=50 59 Tabel 4.9 Penjadwalan Perkuliahan Ruang Fortran ketika MaxPop=5059 Tabel 4.10 Penjadwalan Perkuliahan Ruang Basic ketika MaxPop=50 60 Tabel 4.11 Penjadwalan Perkuliahan Ruang Java ketika MaxPop=50 60 Tabel 4.12 Penjadwalan Perkuliahan R V.Basic ketika MaxPop=50 61 Tabel 4.13 Penjadwalan Perkuliahan Ruang Delphi ketika MaxPop=50 61

Tabel 4.14 Tabel MaxPopulation = 100 62

Tabel 4.15 Penjadwalan Perkuliahan Ruang Pascal ketika MaxPop=100 65 Tabel 4.16 Penjadwalan Perkuliahan Ruang Fotran ketika MaxPop=100 66 Tabel 4.17 Penjadwalan Perkuliahan Ruang Basic ketika MaxPop=100 66 Tabel 4.18 Penjadwalan Perkuliahan Ruang Java ketika MaxPop=100 67


(14)

Tabel 4.19 Penjadwalan Perkuliahan Ruang V. Basic MaxPop=100 67 Tabel 4.20 Penjadwalan Perkuliahan Ruang Delphi MaxPop=100 68

Tabel 4.21 Tabel Max Population =150 68

Tabel 4.22 Penjadwalan Perkuliahan Ruang Pascal MaxPop=150 72 Tabel 4.23 Penjadwalan Perkuliahan Ruang Fotran MaxPop=150 72 Tabel 4.24 Penjadwalan Perkuliahan Ruang Basic MaxPop=150 73 Tabel 4.25 Penjadwalan Perkuliahan Ruang Java MaxPop=150 73 Tabel 4.26 Penjadwalan Perkuliahan Ruang V.Basic MaxPop=150 74 Tabel 4.27 Penjadwalan Perkuliahan Ruang Delphi MaxPop=150 74

Tabel 4.28 Tabel Max Population =200 75

Tabel 4.29 Penjadwalan Perkuliahan Ruang Pascal MaxPop=20078 Tabel 4.30 Penjadwalan Perkuliahan Ruang Fotran MaxPop=200 79 Tabel 4.31 Penjadwalan Perkuliahan Ruang Basic MaxPop=200 79 Tabel 4.32 Penjadwalan Perkuliahan Ruang Java MaxPop=200 80 Tabel 4.33 Penjadwalan Perkuliahan Ruang V.Basic MaxPop=200 80 Tabel 4.34 Penjadwalan Perkuliahan Ruang Delphi MaxPop=200 81

Tabel 4.35 Tabel Max Population =250 81

Tabel 4.36 Penjadwalan Perkuliahan Ruang Pascal MaxPop=25085 Tabel 4.37 Penjadwalan Perkuliahan Ruang Fotran MaxPop=250 85 Tabel 4.38 Penjadwalan Perkuliahan Ruang Basic MaxPop=250 86 Tabel 4.39 Penjadwalan Perkuliahan Ruang Java MaxPop=250 86 Tabel 4.40 Penjadwalan Perkuliahan Ruang V.Basic MaxPop=250 87 Tabel 4.41 Penjadwalan Perkuliahan Ruang Delphi MaxPop=250 87


(15)

ABSTRAK

Penjadwalan mata kuliah merupakan salah satu kegiatan dalam universitas yang membutuhkan banyak waktu untuk menyelesaikannya. Jadwal mata kuliah yang baik adalah jadwal yang memperhatikan semua komponen dasar penyusunnya. Komponen dasar terdiri atas dosen, mata kuliah, ruangan, dan jam kuliah. Permasalahan yang sering terjadi dikegiatan penjadwalan yaitu adanya bentrok antara jadwal yang satu dengan yang lain. Untuk mencari alternatif dari penjadwalan digunakan algoritma genetika, yaitu algoritma yang menyelesaikan masalah dengan melakukan pemodelan mekanisme evolusi biologis. Kombinasi parameter genetika yang digunakan adalah seleksi turnamen, kawin silang satu titik, dan mutasi. Aplikasi ini dibangun dengan menggunakan pemrograman java Dari penggunaan algoritma genetika dalam penyelesaian masalah ini, diharapkan dapat menjadi alternatif untuk penjadwalan.

Katakunci : Penjadwalan, algoritma genetika, PemrogramanJava, Seleksi Tournament, Kawin Silang Satu Titik, dan Mutasi.


(16)

IMPLEMENTATION OF GENETIC ALGORITHM IN LECTURE TIMETABLING

ABSTRACT

Lecture timetabling is one of task in university that takes too much time to complete. A good lecturer timetabling is timetabling that includes all basic components. those components are: lecturer, lecture, class, and time. Problems that often occurred on timetabling is a crash between one timetabling with another. To seek alternative of timetabling is by implemented genetic algorithm, is algorithm that solve problem using mechanism of biological evolution. Combination of genetic parameters used are tournament selection, crossover one point, and mutation. Using genetic algorithm in solving this problem is expected to be an alternative in lecturer timetabling.

Keywords: Timetabling, Genetic algorithm, java programming, tournament selection, crossover one point, and mutation.


(17)

BAB I

PENDAHULUAN

1.1Latar Belakang

Universitas Sumatera Utara adalah salah satu universitas terbesar di Indonesia. Jumlah mahasiswa di Universitas terbesar di Sumatera Utara ini ada sekitar 35.000 mahasiswa. Jumlah ini akan semakin terus bertambah dari tahun ke tahun.USU memiliki beberapa fakultas yang terdiri dari berbagai jurusan. Fakultas Ilmu Komputer dan Tekmologi Informasi adalah Fakultas yang ke -14 yang ada di USU. Fakultas Ilmu Komputer dan Teknologi Informasi, khusus nya Program Studi Ilmu Komputer diwajibkan untuk memberikan pelayanan yang optimal kepada mahasiswanya. Salah satu kendala dalam memberikan pelayanan adalah masalah penyusunan jadwal. Mahasiswa Ilmu Komputer yang semakin lama semakin meningkat jumlah nya, maka jumlah perkuliahan yang diadakan juga harus bertambah, sehingga menyebabkan semakin sulitnya menyusun jadwal dalam perkuliahan. Alasan inilah yang membuat saya tertarik untuk membuat penelitian tentang penjadawalan perkuliahan.

Penjadwalan mata kuliah (lecture timetabling) adalah masalah menempatkan waktu dan ruangan kepada sejumlah kuliah, tutorial, dan kegiatan akademik sejenis, dengan memperhatikan sejumlah aturan yang berhubungan dengan kapasitas dan lokasi dari ruangan yang tersedia, waktu bebas yang diperlukan dan sejumlah aturan lain yang berkaitan dengan toleransi untuk dosen, dan hubungan antara mata kuliah khusus. Komponen-komponen utama dari penjadwalan mata kuliah adalah dosen,


(18)

mahasiswa, mata kuliah yang ditawarkan, waktu dan ruangan kelas. Hasil dari proses penjadwalan mata kuliah merupakan pengelompokan komponen-komponen utama secara bersam-sama dengan memperhatikan aturan-aturan yang telah ditetapkan dalam penjadwalan mata kuliah.

Umumnya masalah penjadwalan mata kuliah diselesaikan dengan membuat tabel jadwal secara manual, cara ini membutuhkan waktu yang lama untuk menyelesaikannya dan seringkali semakin banyak jumlah anggota komponen yang terlibat maka semakin banyak aturan penjadwalan yang tidak dapat dipenuhi. Cara lain adalah dengan menggunakan penjadwalan yang telah dipergunakan tahun atau semester sebelumnya dengan beberapa modifikasi sesuai keadaan dan anggota komponen yang baru.

Algoritma Genetika (AG) adalah suatu algoritma pencarian yang berbasis pada mekanisme seleksi alam dan genetika. Algoritma genetika diinspirasi dari konsep biologi oleh Darwin, dimana di dalam proses evolusi dapat terjadi perkawinan silang

(cross over) dan mutasi (mutation). Algoritma genetika dimulai dengan memilih

himpunan penyelesaian, digambarkan dengan kromosom, yang disebut dengan populasi. Solusi dari satu populasi diambil untuk membentuk populasi baru, dimana pemilihannya tergantung dari fitness terbaiknya. Hal ini dimotivasi dengan harapan bahwa populasi yang baru akan lebih baik dibandingkan populasi terdahulu. Proses ini dilakukan berulang-ulang hingga kondisi tertentu terpenuhi. Algoritma genetika merupakan salah satu algoritma yang sangat tepat digunakan dalam menyelesaikan masalah optimasi kompleks.

Algoritma genetika yang digunakan disini berfungsi untuk mendefinisikan permasalahan ke dalam suatu kumpulan solusi yang disebut dengan kromosom, kemudian melalui proses-proses yang ada dalam algoritma genetika, dilakukan pencarian solusi yang paling optimal yang didasarkan atas nilai fitness. Nilai fitness dihitung berdasarkan jumlah bentrokan yang terjadi pada jadwal yangdibuat. Semakin


(19)

besar nilai fitness dalam proses evolusi, maka semakin banyak jumlah bentrokan yang terjadi dari solusi yang diberikan. Hal ini dapat dikatakan, bahwa dalam proses algoritma genetika untuk masalah penjadwalan adalah dicari nilai fitness sama dengan nol.

Penelitian tentang penjadwalan yang pernah di lakukan sebelumnya yaitu penerapan algoritma genetika untuk optimasi jadwal mata kuliah pada Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara. Penelitian ini dilakukan oleh Rury Handayani pada tahun 2010. Selain itu, ada juga penelitian lainnya, yaitu aplikasi algoritma genetik untuk optimasi penjadwalan mata kuliah oleh Muhammad Aria dari Jurusan Teknik Elektro Universitas Komputer Indonesia.

1.2Rumusan Masalah

Berdasarkan latar belakang di atas maka rumusan masalahnya adalah bagaimana mendapatkan penjadwalan yang optimum dengan menggunakan Algoritma Genetika.

1.3Batasan Masalah

Agar masalah yang ditulis dalam proposal skripsi tidak telalu luas dan menyimpang dari topik yang ada, maka penulis perlu membatasi permasalahan sebagai berikut:

1. Kasus yang diambil adalah mata kuliah yang ada pada semester ganjil tahun ajaran 2012/2013.

2. Mata kuliah yang diikutkan pada penjadwalan hanyalah mata kuliah yang bersifat teori, sedangkan mata kuliah praktik, praktik kerja lapangan, dan pengerjaan skripsi tidak ikut dijadwalkan.


(20)

3. Hasil akhir penjadwalan adalah daftar waktu mengajar yang ditawarkan untuk setiap dosen.

4. Parameter yang digunakan dalam penelitian ini adalah (PopSize; Pc; Pm ) =( 100;1;0.1)

5. Operator algoritma genetika yang digunakan adalah, pengkodean bilangan bulat, seleksi tournament, perkawinan silang satu titik, dan mutasi dalam pengkodean permutasi.

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah menggunakan Algoritma Genetika untuk penyelesaian penjadwalan perkuliahan.

1.5Manfaat Penelitian

Manfaat penelitian ini adalah agar penjadwalan perkuliahan semakin terstruktur dan semakin optimal dengan menggunakan metode genetika sehingga pelayanan yang dilakukan di dalam perkuliahan semakin optimal .

1.6Metode penelitian

Metodologi penelitian yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut:

1. Studi Literatur

Penulisan laporan skripsi ini dimulai dengam mengumpulkan refresnsi dari berbagai sumber misalnya buku, jurnal ilmiah, makalah,halaman web, dan lain lain yang berkaitan dengan metode genetika.


(21)

Metode penelitian berikutnya adalah dengan mengumpulkan data. Caranya adalah dengan mengambil data penjadwalan perkuliahan, seperti data dosen, jumlah ruangan yang tersedia, mata kuliah yang ditawarkan.

3. Analisis dan Perancangan

maka dilakukan analisis yang meliputi kegiatan: pemilahan informasi yang diperoleh dari survei, membuat alur kerja (work flow, menyusun pemodelan untuk menentukan modul-modul apa saja yang perlu dibuat, menyusun DFD (Data Flow Diagram), menyusun ERD (Entity Relationship

Diagram), dan menyusun Dokumen Standar.

4. Implementasi dan Pengujian

Tahap implementasi merupakan tahap pengimplementasian terhadap Sistem Penjadwalan Matakuliah yang telah dikembangkan. Sistem ini siap digunakan oleh Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumater Utara. Pengujian ini meliputi: validasi terhadap data masukan, pemetaan pengasuh mata kuliah, ruangan, serta interface aplikasi. Jika terjadi ketidaksesuaian terhadap validasi di atas, maka sistem ini harus segera diperbaiki. Baik itu dari sisi databasenya maupun programnya. Proses ini akan dilakukan bersama-sama dengan user/pengguna. Sehingga user dapat memberikan pertimbangan-pertimbangan ataupun masukan-masukan sehingga dapat tercipta sebuah sistem yang sesuai dengan kebutuhan

user.

5. Dokumentasi

Melakukan dokumentasi hasil implementasi dan pengujian system secara tertulis dalam bentuk laporan skripsi.

1.7Sistematika Penulisan

Sistematika penulisan tugas akhir ini dibagi menjadi lima bab, yaitu sebagai berikut:


(22)

BAB I PENDAHULUAN

Bab ini berisikan penjelasan tentang Latar Belakang, Rumusan Masalah, Batasan Masalah, Tujuan Penulisan, Manfaat Penulisan, dan Metodologi Penelitian.

BAB II TIJAUAN PUSTAKA

Bab ini akan membahas teori-teori yang berkaitan dengan penjadwalan, algoritma genetika, dan komponen utama algoritma genetika.

BAB III ANALISIS DAN PERANCANGAN

Bab ini dilakukan analisis yang meliputi kegiatan: pemilahan informasi yang diperoleh dari survei, membuat alur kerja (Work Flow), menyusun dokumen User Specification menjadi dokumen teknis, menyusun pemodelan untuk menentukan modul-modul apa saja yang perlu dibuat, menyusun DFD (Data Flow Diagram),

menyusun ERD (Entity Relationship Diagram), dan menyusun Dokumen Standar.

BAB IV IMPLEMENTASI DAN PENGUJIAN

Tahap implementasi merupakan tahap pengimplementasian terhadap sistem penjadwalan mata kuliah yang telah dikembangkan. Sistem ini siap digunakan oleh Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumater Utara.

Pengujian ini meliputi: validasi terhadap data masukan, pemetaan pengasuh mata kuliah, ruangan, serta interface aplikasi. Jika terjadi ketidaksesuaian terhadap validasi di atas, maka sistem ini harus segera diperbaiki. Baik itu dari sisi databasenya maupun programnya. Proses ini akan dilakukan bersama-sama dengan user/pengguna. Sehingga user dapat memberikan


(23)

pertimbangan-pertimbangan ataupun masukan-masukan sehingga dapat tercipta sebuah sistem yang sesuai dengan kebutuhan user.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi rangkuman keseluruhan dari penelitian yang telah dilakukkan. Apakah algoritma dapat digunakan untuk penyelesaian masalah penjadwalan, atau sebaliknya, algoritma ini tidak dapat diterapkan untuk masalah penjadwalan.


(24)

BAB II

LANDASAN TEORI

2.1 Penjadwalan

Penjadwalan adalah penempatan sumber daya (resource) dalam satu waktu. Penjadwalan mata kuliah merupakan persoalan penjadwalan yang umum dan sulit dimana tujuannya adalah menjadwalkan pertemuan dari sumber daya. Sumber daya yang dimaksud adalah dosen pengasuh mata kuliah, mata kuliah,ruang kuliah, kelas mahasiswa, dan waktu perkuliahan. Terdapat batasan-batasan dalam penyusunan penjadwalan mata kuliah. Menurut Burke, dkk. Mengemukakan bahwa batasan-batasan dalampenjadwalan dibagi ke dalam dua kategori yaitu

“hard” dan “softconstraints. Jadwal yang melanggar “hard constraints” adalah

solusi yang tidak mungkin, dan harus diperbaiki atau di buang dengan algoritma penjadwalan. Hard constraints meliputi “first order conflict”, sebagai contoh adalah tidak ada seorang mahasiswa yang dapat mengikuti perkuliahan pada waktu yang sama. Soft constraints tidak begitu penting dibandingkan dengan hard

constraints,dan biasanya tidak mungkin untuk menghindari pelanggaran. Ketika

metode penjadwalan diaplikasikan, jadwal biasanya ditingkatkan dengan fungsi penalty, yang menghitung tingkat pelanggaran jadwal yang telah disusun. Beberapa soft constraints lebih penting dibandingkan dengan hard constraints, dan ini sering di tentukan dengan nilai prioritas.

Masalah penjadwalan dalam institusi pendidikan, masih menjadi isu yang menarik dan secara luas masih diteliti oleh banyak peneliti di dunia. Masalah penjadwalan dapat diklasifikasikan ke dalam dua kategori utama, yaitu masalah


(25)

penjadwalan kuliah dan masalah penjadwalan ujian. Masalah penjadwalan dalam pendidikan merupakan persoalan khusus dari masalah optimasi yang ditemukanpada situasi nyata. Masalah ini membutuhkan waktu komputasi yang cukup tinggi untuk pencarian solusinya, terlebih lagi jika ukuran permasalahan semakin besar dengan bertambahnya jumlah komponen dan tetapan atau syarat yang ditentukan oleh institusi tempat jadwal tersebut di gunakan. Selama proses, banyak aspek yang harus dipertimbangkan untuk memperoleh jadwal yang optimal, dan seringkali tidak dapat memuaskan karena tidak semua kebutuhan terpenuhi. Oleh karena itu perlu ditetapkan suatu batasan dalam penyusunan jadwal yang bersifat harus dipenuhi (hard constraints) dan tidak harusdipenuhi

(soft constraints) tetapi tetap menjadi acuan dalam proses pembuatan jadwal. [11]

2.2 Algoritma Genetika

Algoritma Genetika (AG) 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.

Pengertian lain mengenai Algoritma Genetika adalah : Algoritma Genetika adalah algoritma pencarian heuristik yang didasarkan atas mekanisme evolusi biologis. Setiap masalah yang berbentuk adaptasi (alami maupun buatan) dapat diformulasikan dalam terminologi genetika. Algoritma ini adalah simulasi dari proses evolusi Darwin dan operasi genetika atas kromosom.Metode yang dapat disebut algoritma genetika adalah metode yang setidaknya memiliki komponen seperti populasi dari kromosom, seleksi berdasarkan fitness, crossoveruntuk memproduksi offspring baru, dan random mutasi pada offspring.

Seleksi bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang paling fit. Seleksi akan menentukan individu -individu


(26)

mana saja yang akan dipilih untuk mendapatkan generasi baru. Crossover adalah proses pertukaran dua kromosom yang menciptakan offspring yang mewarisi karakter dari kedua parent. Dengan mewarisi karakter parent tersebut, tujuan melakukan

crossover adalah untuk mencari kombinasi gen terbaik dari parent. Operator Mutasi

mengubah field individual (gen) didalam kromosom berdasarkan pada probabilitas. Mutasi dipakai untuk menghindari kecenderungan suatu populasi untuk menjadi mirip .Fitness adalah suatu nilai yang dipakai untuk tolak ukur kualitas kromosom Nilai

fitness ini digunakan untuk menentukan kromosom yang berkualitas lebih baik dari

pada kromosom yang lain.

Algoritma Genetika memiliki algoritma umum dalam mencari solusi melalui pembangkitan populasi kromosom, mekanisme seleksi berdasarkan fitness,

crossoveruntuk memproduksi offspring baru, dan mutasi acak pada off- spring.

Namun, algoritma tersebut perlu penyesuaian untuk permasalahan yang dihadapi. Pada penelitian ini, Algoritma Genetika digunakan karena memiliki keunggulan utama, yaitu efisiensi waktu dalam pencarian solusi. Namun, algoritma ini juga memiliki kekurangan utama, yaitu tidak adanya jaminan solusi yang dihasilkan adalah solusi terbaik (bila dibandingkan dengan pencarian melalui evaluasi lengkap pada semua kemungkinan solusi).

Algoritma genetika bekerja dari populasi yang merupakan himpunan solusi yang dihasilakan secara acak. Setiap anggota himpunan yang merepresentasikan satu populasi masalah dinamakan generasi, tiap kromosom dievaluasi berdasarkan fungsi evaluasi. Pada algoritma genetika, fungsi evolusi biasanya dapat berupa fungsi objektif dari masalah yang akan dioptimalisasikan.

Sebagai ide dasar heuristik, algoritma genetika dimulai dengan sekumpulan solusi yang direpresentasikan dengan kromosom, disebut populasi. Semua solusi dari satu populasi diambil dan digunakan untuk membentuk populasi baru. Hal ini dimotivasi dengan harapan populasi baru akan lebih baik daripada populasi lama.


(27)

Solusi terpilih yang merupakan orangtua pembentuk keturunan (offspring), dipilih berdasarkan lingkungannya atau nilai fitness, semakin baik maka semakin besar kesempatan yang dimiliki untuk bertahan dan bereproduksi. Hal ini dilakukan berulang kali hingga memenuhi beberapa kondisi penghentian, misalnya jumlah generasi atau tercapainya hasil yang dicari.

Algoritma genetika mempunyai karateristik-karateristik yang perlu diketahui sehingga dapat terbedakan dari prosedur pencarian atau optimasi yang lain, yaitu;

1. Algoritma genetika bekerja dengan pengkodean dari himpunan solusi permasalahan berdasarkan parameter yang telah ditetapkan dan bukan parameter itu sendiri.

2. Algoritma genetika melakukan pencarian pada sebuah populasi dari sejumlah individu-individu yang merupakan solusi permasalahn bukan hanya dari sebuah individu.

3. Algoritma genetika merupakan informasi fungsi objektif, sebagai cara untuk mengevaluasi individu yang mempunyai solusi terbaik, bukan turunan dari suatu fungsi.

4. Algoritma genetika menggunakan aturan-aturan transisi peluang, bukan aturan-aturan deterministik.

Algoritma genetika memberikan suatu pilihan bagi penentuan nilai parameter dengan meniru cara reproduksi genetik, pembentukan kromosom baru serta seleksi alami seperti terjadi pada mahluk hidup. Inisialisasi populasi awal dilakukan untuk menghasilkan solusi awal dari suatupermasalahan algoritma genetika. Inisialisasi ini dilakukan secara acak sebanyak jumlah kromosom/populasi yang diinginkan. Selanjutnya dihitung nilai fitness dan seterusnya dilakukan seleksi dengan menggunakan metode roda roullete, tournament atau ranking. Kemudian dilakukan perkawinan silang (crossover) dan mutasi. Terdapat beberapa definisi penting dalam Algoritma Genetika yang perlu diperhatikan,yaitu:

1. Genotype (Gen), sebuah nilai yang menyatakan satuan


(28)

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. Allele, merupakan nilai dari gen

3. Individu atau kromosom, gabungan gen-gen yang membentuk nilai tertentu dan merupakan salah satu solusi yang mungkin dari permasalahan yang diangkat.

4. Populasi, merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evalusi.

5. Generasi, menyatakan satu siklus proses evolusi atau satu iterasi di dalam algoritma genetika.

Setelah melalui beberapa generasi maka algoritma ini akan berhenti sebanyak generasi yang diinginkan. Sebagaimana halnya proses evolusi di alam, suatu algoritma genetika yang sederhana umumnya terdiri dari tiga operator yaitu: operator reproduksi, operator crossover(persilangan) dan operator mutasi. Ada dua hal penting yang harus dilakukan pada awal proses Algoritma Genetika. Pertama, pendefinisian atau pengkodean kromosom yang merupakan solusi yang masih berbentuk simbol. Kedua, penentuan fungsi fitness atau fungsi obyektif. Dua hal ini berperan penting dalam algoritma genetika untuk menyelesaikan suatu masalah. Secara sederhana, proses dari metode genetika dapat digambarkan sebagai berikut:


(29)

Gambar 2.1 : Proses Algoritma Genetika

Secara sederhana, proses algoritma genetika adalah sebagai berikut: 1. [Mulai] Membangun populasi random sebanyak n kromosom.

2. [Pengkodean Data] Teknik pengkodean adalah bagaimana mengkodekan gen dari kromosom.Masing-masing kromosom berisi sejumlah gen yang mengkodekan informasi yang disimpan didalam kromosom.

3. [Jumlah Populasi dan kromosom] Menentukan populasi awal adalah proses membangkitkan sejumlah kromosom secara acak (random). Kromosom menyatakan salah satu alternatif solusi yang mungkin. Kromosom dapat dikatakan sama dengan individu. Ukuran populasi tergantung pada masalah yang akan diselesaikan. Setelah ukuran populasi ditentukan, kemudian dilakukan pembangkitan populasi awal dengan cara melakukan inisialisasi solusi yang mungkin kedalam sejumlah kromosom.

Mulai

Pengkodean Data

Crossover

Mutasi Seleksi

Selesai Evaluasi

fitness Jumlah populasi dan

kromosom

Iterasi terpenuhi TIDAK


(30)

Panjang satu kromosom ditentukan berdasarkan permasalahan yang diteliti.

4. [Evaluasi Fitness] 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 dihasilkan akan semakin baik. Untuk setiap pelanggaran yang terjadi akan diberikan nilai 1. Agar tidak terjadi nilai fitness yang tak terhingga maka jumlah total semua pelanggaran akan ditambahkan 1.

5. [Seleksi] pilih 2 kromosom orangtua dari populasi berdasarkan

fitness (semakin besar fitness semakin besar kemungkinan untuk

terpilih).

6. [Perkawinan Silang] sesuai dengan besarnya kemungkinan perkawinan silang, orangtua terpilih disilangkan untuk membentuk anak. Jika tidak ada perkawinan silang, maka anak merupakan salinan dari orangtua.

7. [Mutasi] sesuai dengan besarnya kemungkinan mutasi, anak dimutasi pada setiap lokus ( posisi pada kromosom).

8. [Iterasi terpenuhi] maskud dari iterasi terpenuhi adalah solusi optimum yang dihasilkan dari metode genetika.

9. [Selesai ] Proses dengan menggunakan algoritma genetika selesai. Tujuan dari algoritma genetika ini adalah menghasilkan populasi yang terbaik dari populasi awal. Sedangkan keuntungan dari algoritma genetika adalah sifat metoda pencariannya yang lebih optimal, tanpa terlalu memperbesar ruang pencarian.


(31)

2.2.1 Komponen dalam Algoritma Genetika

Algoritma genetika adalah salah satu proses pencarian yang heuristik dan acak sehingga penekanan pemilihan operator yang digunakan sangat menetukan keberhasilan algoritma genetika dalam menemukan solusi optimum suatu masalah yang diberikan. Salah satu hal yang harus di perhatikan adalah menghindari terjadi konvergensi prematur. Pengertian dari konvergensi prematur adalah mencapai solusi optimum yang belum waktunya, dalam arti solusi yang diperoleh tersebut adalah hasil optimum lokal. Ada beberapa komponen dari algoritma genetika. Berikut akan di jelaskan komponen dalam algoritma genetika.

2.2.1.1 Pengkodean

Pengkodean adalah suatu teknik untuk menyatakan populasi awal sebagai calon solusi dari suatu masalah ke dalam suatu kromosom sebagai suatu kunci pokok persoalan ketika menggunakan algoritma genetika. Berdasarkan jenis simbol yang digunakan sebagai nilai suatu gen, metode pengkodean dapat diklasifikasikan sebagai berikut pengkodean biner, bilangan riil, bilangan bulat dan struktur data: [2]

2.2.1.1.1 Pengkodean Biner( binary encoding)

Pengkodean biner adalah suatu metode pengkodean bilangan dalam bentuk bilangan biner. Pengkodean biner merupakan teknik pengkodean paling umum digunakan oleh peneliti AG. Oleh karena itu banyak orang mengggunakan teknik ini dalam aplikasi nyata dari AG dengan berbagai hasil. Keuntungan dari pengkodean ini adalah sederhana diciptakan dan mudah dimanipulasi (Davis ). Contoh dari pengkodean biner adalah sebagai berikut : [2]


(32)

Tabel 2.1 Contoh Pengkodean Biner

Chromosome A 101100101100101011100101 Chromosome B 111111100000110000011111

2.2.1.1.2 Pengkodean Bilangan Rill

Pengkodean bilangan riil adalah suatu pengkodean bilangan dalam bentuk riil. Gen dan Cheng (2000) menyatakan bahwa pengkodean bilangan riil baik digunakan untuk masalah optimasi fungsi dan optimasi kendala. [2]

Tabel 2.2 Contoh Pengkodean Bilangan Rill

2.2.1.1.3 Pengkodean Bilangan Bulat

Pengkodean bilangan bulat adalah suatu metode mengkodekan bilangan dalam bentuk bilangan bulat. Pengkodean ini baik digunakan untuk masalah optimasi kombinatorial. Dengan pengkodean bilangan bulat, ukuran kromosom menjadi lebih sederhana dan tidak terlalu panjang. [2]

Tabel 2.3 Contoh Pengkodean Bilangan Bulat Kromosom sebelum mutasi 1,43 1,09 4,51 9,11

6,94

Kromosom setelah mutasi 1,43 1,19 4,51 9,11 6,94

Kromosom sebelum mutasi

12345679


(33)

2.2.1.1.4Pengkodean Struktur data

Pengkodean struktur data adalah mode pengkodean yang menggunakan struktur data pengkodean ini digunakan untuk masalah yang lebih kompleks seperti perencanaan trajek robot dan masalah pewarnaan graph. [2]. Berikut adalah conoth pewarnaan graph

Gambar 2.2 Pewarnaan graf yang tepat

Masalah pewarnaan graf merupakan konsep dari graf tak berarah (undirected

graph). Diberikan suatu graf tak berarah G(V,E), bagaimana mewarnakan setiap

verteks v V dengan k warna tertentu sedemikian sehingga dua verteks yang berdekatan menerima warna yang berbeda, disebut sebagai masalah pewarnaan graf

(graph coloring problem). Biasanya graf dapat diwarnakan secara tepat dengan

banyak cara yang berbeda, seperti pada gambar 2.3 menggambarkan tiga pewarnaan graf yang berbeda.

2.2.1.2Prosedur Inisialisasi

Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis operator genetika yang akan diimplementasikan. Setelah ukuran populasi ditentukan, kemudian harus dilakukan inisialisasi terhadap kromosom yang terdapat pada populasi tersebut.


(34)

Inisialisasi kromosom dilakukan secara acak, namun demikian harus tetap memperhatikan domain solusi dan kendala permasalahan yang ada.

2.2.1.3 Evaluasi Fitness

Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran performansinya. Didalam evolusi alam, individu yang bernilai fitness tinggi yang akan bertahan hidup. Sedangkan individu yang bernilai fitness rendah akan mati. Pada masalah optimasi, solusi yang akan dicari adalah memaksimumkan fungsi h ( dikenal sebagai masalah maksimasi ) sehingga nilai fitness yang digunakan adalah nilai dari fungsi h tersebut, yakni f = h (di mana f adalah nilai fitness). Tetapi jika masalahnya adalah meminimalkan fungsi h (masalah minimasi), maka fungsi h tidak bisa digunakan secara langsung. Hal ini disebabkan adanya aturan bahwa individu yang memiliki nilai fitness tinggi lebih mampu bertahan hidup pada generasi berikutnya. Oleh karena itu nilai fitness yang bisa digunakan adalah f = 1/h, yang artinya semakin kecil nilai h, semakin besar nilai f. Tetapi hal ini akan menjadi masalah jika h bisa bernilai 0, yang mengakibatkan f bisa bernilai tak hingga. Untuk mengatasinya, h perlu ditambah sebuah bilangan yang dianggap kecil [0-1] sehingga nilai fitnessnya menjadi :

� = 1 (h + a)

dengan a adalah bilangan yang kecil dan bervariasi [0-1] sesuai dengan masalah yang akan diselesaikan. [10]

2.2.1.4 Seleksi

Seleksi bertujuan memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang paling fit. Langkah pertama yang dilakukan dalam seleksi adalah pencarian nilai fitness. Masing-masing individu dalam suatu wadah seleksi akan menerima probabilitas reproduksi yang tergantung pada nilai objektif dirinya sendiri terhadap nilai objektif dari semua individu dalam wadah seleksi tersebut. Nilai fitness


(35)

inilah yang nantinya akan digunakan pada tahap-tahap seleksi yang akan dilakukan pada bagian berikutnya.

Ada beberapa metode yang digunakan bagaimana memilih kromosom yang sering digunakan antara lain adalah seleksi roda rolet(roulette wheel selection), seleksi rangking(rank selection) dan seleksi turnamen(tournament selection). [6]

2.2.1.4.1. Seleksi Roda Rolet (Roulette Wheel Selection)

Teknik kromosom yang paling sering digunakan adalah seleksi roda roulette (Roulette wheel selection). Cara kerja yang dilakukan dalam teknik ini adalah dengan memilih anggota populasi tertentu untuk menjadi orangtua dengan probabilitas sama dengan fitness dibagi dengan total fitness populasi. Kromosom dipilih berdasarkan nilai fitness, semakin besar nilai fitnessnya maka kromosom tersebut memiliki peluang untuk dipilih beberapa kali.

Yang dilakukan pada seleksi ini adalalah: orangtua dipilih berdasarkan fitness mereka. Probabilitas suatu individu terpilih untuk perkawinan silang sebanding dengan fitnessnya. Cara penyeleksian ini merupakan peniruan dari permainan roda roulette. Berikut merupakan contoh dari seleksi roda roulette. Jumlah dari keseluruhan fitness adalah dengan menambahkan seluruh nilai dari fitness. Dari contoh di bawah, maka jumlah keseluruhannya adalah 40. Sehingga probablitas nya adalah membagi nilai masing-masing fitness terhadap total keseluruhan fitness.

Tabel 2.4: Contoh Populasi Dengan 5 Kromosom Beserta Fitnessnya

Kromosom Fitness Probablitias

X1 15 15/40 = 0.375 ( 37.5 %)

X2 5 5/40 = 0.125 ( 12.5 %)


(36)

2.2.1.4.2 Seleksi Rangking (Rank Selection)

Didalam seleksi roda roulette juga akan memiliki masalah pada saat terdapat perbedaan fitness yang jauh. Salah satu contohnya adalah, jika kromosom terbaik adalah 90% dari semua roda roulette dapat menyebabkan kromosom yang lain memiliki kesempatam yang sangat kesil untuk dapat terpilih.

Cara yang dilakukan dalam seleksi ini yaitu terlebih dahulu merangking atau mengurutkan kromosom di dalam populasi berdasarkan fitnessnya kemudian memberikan nilai fitness baru berdasarkan urutannya. Kromosom dengan fitness terburuk memiliki fitness bernilai 1, terburuk kedua bernilai 2 dan seterusnya, sehingga kromosom yang memiliki fitness terbaik akan memiliki nilai fitness N, dimana N adalah jumlah kromosom di dalam populasi. Berikut akan di jelaskan dengan menggunakan contoh :

Tabel 2.5: Keadaan Fitness Sebelum Dirangking

X4 5 5/40 = 0.125 ( 12.5 %)

X5 5 5/40 = 0.12.5 (12.5%)

Kromosom Fitness

B 5

D 5

E 5

C 10


(37)

Tabel2.6:Keadaan Fitness Sesudah Dirangking Kromosom Fitness Fitness Baru

B 5 1

D 5 2

E 5 3

C 10 4

A 15 5

Setelah proses pengurutan dan pemberian nilai fitness baru, setiap akan memiliki kesempatan yang lebih adil untuk dipilih. Tetapi metode ini dapat menyebabkan konvergensi menjadi lambat, karena kromosom terbaik tidak terlalu berbeda dengan yang lainnya.

2.2.1.4.3. Seleksi Tournamen(Tournament Selection)

Seleksi tournament merupakan gabungan dari seleksi roda roulette dan metode rangking. Cara yang digunakan didalam seleksi ini adalah sejumlah k kromosom tertentu dari populasi beranggota n kromosom (k≤n) dipilih secara acak dengan probabilitas yang sama. Dari K kromosom yang terpilih kemudian akan dipilih satu kromosom dengan fitness terbaik, yang diperoleh dari hasil pengurutan rangking fitness semua kromosom terpilih. Perbedaan nya dengan seleksi roda roulette adalah pemilihan kromosom yang akan digunakan untuk berkembang biak tidak berdasarkan skala fitness dari populasi.

Untuk k=1, seleksi turnamen akan menajdi sama dengan seleksi secara acak karena hanya melibatkan satu kromosom. Untuk K=2, maka akan dipilih dua kromosom dari populasi secara acak, kemudian akan dipilih salah satu berdarkan nilai fitnessnya. Biasanya yang sering digunakan adalah K=2, tergantung dari jumlah


(38)

kromosom yang terdapat di dalam populasi. Berikut akan di tampilkan contoh dari seleksi turnamen:

Random yang terbaik individu yang terpilih

Ts=3

Gambar 2.3: Contoh Seleksi Tournament

2.2.1.5 Perkawinan Silang ( Crossover)

Tujuan dari perkawanan silang adalah untuk menambah keanekaragaman string dalam satu populasi dengan penyilangan atar string yang diperoleh dari reproduksi sebelumnya. Salah satu jenis pengkodean yang paling sederhana adalah perkawinan silang untuk pengkodean biner. Ada beberapa jenis perkawinin silang untuk pengkodean biner: perkawinan sialng 1-titik, perkawinan silang 2 titik,dan perkawinan silang seragam.

2.2.1.5.1. Perkawinan Silang 1-Titik

Pada crossoverdilakukan dengan memisahkan suatu string menjadi dua bagian dan selanjutnya salah satu bagian dipertukarkan dengan salah satu bagian dari string yang lain yang telah dipisahkan dengan cara yang sama. Proses yang demikian dinamakan operator crossoversatu titik seperti diperlihatkan pada gambar berikut:

F=9 F=7 F=2 F=6

F=5 F=3

F=9


(39)

Tabel 2.7: Contoh Perkawinan Silang 1-titik

Nama Kromosom Proses Penyilangan Kromosom OrangTua

1

0110 1011

Kromosom OrangTua 2

1101 0001

Posisi Penyilangan 3

Keturunan I 0111 0001 Keturunan II 1100 1011

2.2.1.5.2. Perkawinan Silang 2-Titik

Proses crossover ini dilakukan dengan memilih dua titik crossover. Kromosom keturunan kemudian dibentuk dengan barisan bit dari awal kromosom sampai titik

crossoverpertama disalin dari orangtua pertama, bagian dari titik crossoverpertama

dan kedua disalin dari orangtua kedua, kemudian selebihnya disalin dari orangtua pertama lagi.

Tabel 2.8 : Contoh Perkawinan Silang 2-Titik

Nama Kromosom Proses Penyilangan Kromosom OrangTua

1

11 0010 11

Kromosom OrangTua 2


(40)

Keturunan I 11 0111 11 Keturunan II 11 0010 11

2.2.1.5.3 Perkawinan Seragam

Pada penyilangan seragam, setiap lokasi memiliki potensi sebagai tempat penyilangan. Orangtua mana yang menyumbangkan bit ke keturunannya dipilih secara acak dengan probabilitas yang sama. Sebagai contoh, dapat dilihat pada Tabel dibawah ini.

Tabel 2.9: Contoh Perkawinan Seragam

Nama Kromosom Proses Penyilangan Kromosom OrangTua

1

0110 1011 0010

Kromosom OrangTua 2

1101 0001 1010

Keturunan 1 0101 1001 1010 Keturunan II 1101 1011 0010

2.2.1.6 Mutasi

Mutasi adalah operator yang menghasilkan perubahan acak secara spontan padakromosom. Pada dasarnya akan mengubah secara acak nilai suatu bit pada posisi tertentu, dengan mengganti bit 1 dengan bit 0 atau sebaliknya. Pada mutasi sangat dimungkinkan muncul kromosom baru yang semula belum muncul dalam populasi awal. Faktor terbesar dalam teori evolusi yang menyebabkan suatu kromosom dapat


(41)

bertahan hidup, mati, melakukan persilangan atau melakukan mutasi adalah lingkungan. Operator mutasi merupakan operasi yang menyangkut suatu kromosom tertentu. Beberapa cara operasi mutasi diterapkan dalam algoritma genetika menurut jenis pengkodean terhadap phenotype, antara lain :

2.3.1.6.1 Mutasi dalam Pengkodean Biner

Proses yang terjadi didalam mutasi pengkodea biner adalah: menginversi nilai bit pada posisi tertentu yang dipilih secara acak (atau menggunakan skema tertentu) pada kromosom yang disebut dengan inverse bit. Berikut contoh mutasi pada pengkodean biner:

Tabel 2.10: Contoh Mutasi Pada Pengkodean Biner

Kromosom sebelum mutasi

10010111

Kromosom sesudah mutasi

10010011

2.2.1.6.2 Mutasi dalam Pengkodean Permutasi

Proses yang terajadi pada mutasi dalam pengkodean biner dengan mengubah langsung bit-bit pada kromosom tidak dapat dilakukan pada pengkodean permutasi. Hal ini disebabkan karena konsistensi urutan permutasi harus diperhatikan. Salah satu cara yang dapat dilakukan adalah dengan memilih dua posisi dari kromosom dan kemudian nilainya saling dipertukarkan. Contoh dari mutasi dalam pengkodean permutasi adalah sebagai berikut:


(42)

Tabel 2.11: Contoh Mutasi Dalam Pengkodean Permutasi

Kromosom sebelum mutasi

12345679

Kromosom setelah mutasi 12745639

2.2.1.6.3. Mutasi dalam Pengkodean Nilai Rill

Cara yang dialakukan dalam mutasi pengkodean nilai hamper sama dengan cara yang dilakukan pada pengkodean biner. Namun yang dilakukan bukan menginversikan nilai bit. kekurangan yang dimiliki oleh mutasi dalam pengkodean permutasi adalah : tidak menjamin adanya perbedaan pada populasi. Maka dari itu, cara selanjutnya yang dilakukan adalah dengan cara mutasi dalam pengkodean nilai. Cara yang dilakukan adalah dengan memilih sembarang posisi gen pada kromosom. Nilai yang ada tersebut kemudian ditambahkan atau dikurangkan dengan suatu nilai kecil tertentu yang diambil secara acak. Berikut akan diberikan contoh mutasi dalam pengkodean nilai.

Tabel 2.12 : Contoh Mutasi Pada Pengkodean Permutasi Nilai Rill Dengan Nilai yang Ditambahkan atau Dikurangkan adalah 0,10

Kromosom sebelum mutasi 1,43 1,09 4,51 9,11 6,94

Kromosom setelah mutasi 1,43 1,19 4,51 9,11 6,94


(43)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1Analisis Kebutuhan Perangkat Lunak

Analisis sistem adalah pembelajaran sebuah sistem dan komponen-komponennya sebagaiprasyarat sebuah desain sistem dan spesifikasi sistem serta komponen-komponennya (Jeffery et al, 2004). Dengan kata lain, analisis sistem merupakan suatu istilah yang mendeskripsikan fase fase awal pengembangan sistem untuk memecahkan masalah. [6]

3.1.1 Metode Analisis

Penulis menggunakan analisis pendekatan driven, yang biasanya menggunakan flowchart untuk menggambarkan proses dari genetika pada penjadwalan. Untuk mengetahui apa saja yang dibutuhkan dalam pembangunan aplikasi ini, penulis melakukan dua cara, yaitu: [6]

1. Observasi

Metode pengumpulan data ini digunakan untuk mendapatkan data utama yang dibutuhkan dalam penjadwalan. [6]


(44)

Metode ini dilakukan dengan mengumpulkan bahan pustaka yang berhubungan

dengan algoritma genetika dan penerapannya.[6]

3.2 Hasil Analisis Penjadwalan dengan Algoritma Genetika

Penulis melakukan observasi ke Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara (Fasilkom-TI USU) untuk mengetahui komponen dasar penyusun jadwal mata kuliah. Komponen dasar yang dibutuhkan adalah data dosen, data mata kuliah, data ruangan, dan data jam kuliah. Tidak hanya komponen dasar penyusun jadwal mata kuliah, penulis juga mencari tahu proses penjadwalan yang ada di Fasilkom-TI USU, sehingga dapat membantu penulis dalam menyelesaikan penelitian ini. Setelah melakukan observasi, penulis juga melakukan studi pustaka untuk mencari referensi mengenai algoritma genetika dan bagaimana penerapannya ke permasalahan penjadwalan mata kuliah. Secara garis besar, diagram proses aplikasi penjadwalan mata kuliah dapat digambarkan sebagai berikut:


(45)

Selesai Mulai

Input Data Dosen, Mata Kuliah, Ruangan, dan Jadwal Pengkodean Bilangan Bulat

Pembentukan Populasi Awal Seleksi Tournament

Perkawinan Silang Satu Titik

Mutasi

Penjadwalan yang Terbaik

Gambar 3.1 Diagram Proses Penjadwalan Mata Kuliah dengan Algoritma Genetika

3.2.1 Teknik Pengkodean

Teknik pengkodean adalah bagaimana mengkodekan gen dari kromosom. Masing-masing kromosom berisi sejumlah gen yang mengkodekan informasi yang disimpan didalam kromosom. Teknik pengkodean yang digunakan dalam permasalahn ini adalah teknik pengkodean bilangan real.

3.2.2 Menentukan Populasi Awal dan Inisialisasi Kromosom

Pada penelitian tentang penjadwalan ini solusi yang akan dihasilkan adalah menentukan waktu dan ruang untuk perkuliahan. Solusi tersebut akan direpresentasikan sebagai sebuah kromosom. Satu kromosom berisi informasi


(46)

satu jadwal untuk semua slot pada semua ruangan setiap hari. Pada Fasilkom-TI USU, terdapat 6 ruangan dan 5 hari perkuliahan. Sedangkan jumlah mata kuliah yang akan disusun berjumlah 110 mata kuliah. Untuk menyederhanakan proses penyusunan jadwal, penulis mengasumsikan terdapat 5 slot per hari, dan setiap mata kuliah hanya mengisi satu slot

Dalam pengkodean kromosom, penulis menggunakan pengkodean bilangan bulat. Untuk merepresentasikan 110 mata kuliah, penulis memberikan sebuah id yang terdiri atas 3 digit bilangan bulat. Pada sebuah jadwal terdiri atas 150 slot (5 hari dikali 6 ruangan dikali 5 slot per hari). Berdasarkan perhitungan tersebut, maka setiap kromosom direpresentasikan dengan bilangan bulat 450 digit (150 slot dikali 3 digit id kuliah). Berikut contoh pengkodean bilangan bulat dalam penjadwalan perkuliahan:

C1=101011013000097075017016027038…021103044 C2=013 101 009 000 094 045 054091033 ... 012056022 C3 = 078102065085000000016032044051...072088012 Jika dipecah per kuliah, maka C1 dapat ditulis seperti contoh di bawah:

C1 = 101 011 013 000 097 074 017 016 027 038 … 021 103 044

Kromosom di atas merepresentasikan jadwal dimulai dari ruang pascal, hari senin (pada program yang dibangun merupakan ruang dengan id 1) slot pertama diisi dengan mata kuliah dengan id 101 (3 digit pertama), sampai ruang delphi, hari jumat (pada program yang dibangun merupakan ruang dengan id 6) slot kelima diisi dengan mata kuliah dengan id 044 (3 digit terakhir). Pengisian kromosom-kromosom ini dimulai dengan merepresentasikannya kedalam ruangan,dan kemudian hari. Didalam program, representasi ini dapat dilihat dengan penggunaan listing program sebagai berikut:


(47)

query = "INSERT INTO kelas (id_mk, ruangan, hari, jam) " +

"values (" + idMk + ", " + a + ", " + b + ", " + c + ")";

Jadwal yang direpresentasikan kromosom C1 dapat dijelaskan pada tabel di bawah ini: Tabel 3.1 Contoh Tabel Pembentukan Kromosom pada Ruang Pascal

Ruang Pascal

Senin Selasa Rabu Kamis Jumat

1 B. Inggris A (101)

Metode Numerik (B)

(074)

… … …

2 Struktur Data (B) (011)

Logika Komputer (B)

(017)

… … …

3 Fisika-1 (A) (013)

Logika Komputer (A)

(016)

… … …

4 - (000) Pengantar Ilmu Komputer (A)

(027)

… … …

5 Matematika Dasar (A) (097)

Pendidikan Agama Islam

(C) (038)


(48)

Tabel 3.2 Contoh Tabel Pembentukan Kromosom pada Ruang Delphi

Ruang Delpi

Senin Selasa Rabu Kamis Jumat

1 … … … … …

2 … … … … …

3 … … … … Konsep Dasar

Pemrograman (B) (021)

4 … … … … Pendidikan

Agama Budha (A) (103)

5 … … … … Bahasa Inggris

(C) (044) Pada tabel di atas, setiap slot terdiri atas nama mata kuliah, kelompok, dan id 3 digit yang digunakan oleh mata kuliah tersebut.

Tabel 3.3: Contoh Penjadwalan Mata Kuliah

Hari Waktu Mata Kuliah Ruangan Dosen

Senin 11.20-113.50

Konsep Dasar Pemrograman (ILK 1201 /A)

Pascal Handrial, S.Si, M.Comp,Sc

Selasa 09.40-12.10

Sistem Operasi (KTC 303/B)

Basic Dr.Poltak Sihombing, M.Kom Rabu

13.00-15.30

Struktur data (KTB 301 /B)

Fortran Jos Timanta Tarigan, S.Kom, M,Sc


(49)

3.2.3 Fungsi Fitness

Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran performansinya. Didalam evolusi alam, individu yang bernilai fitness tinggi yang akan bertahan hidup. Sedangkan individu yang bernilai fitness rendah akan mati. 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 dihasilkan akan semakin baik. Untuk setiap pelanggaran yang terjadi akan diberikan nilai 1. Agar tidak terjadi nilai fitness yang tak terhingga maka jumlah total semua pelanggaran akan ditambahkan 1.

Keterangan:

BD= Banyaknya bentrok dosen dan mata kuliah BJ= banyaknya bentrok jadwal perkuliahan Kamis

13.00-14.40

Teori Bahasa dan Otomata (KTB 301/B)

Basic Drs. Marihat Situmorang, M.Kom.

Jumat 08.00-10.30

Organisasi dan Arsitektur Komputer

(KTC 201/A)

Fortran Drs. Dahlan Sitompul, M.Eng

�= 1


(50)

BR= banyaknya bentrok ruangan yang digunakan Beberapa batasan yang digunakan dalam penyusunan penjadwalan ini adalah :

a. Dosen tidak boleh dijadwalkan lebih dari satu kali pada waktu yang bersamaan.

b. Penjadwalan perkuliahan pada masing-masing ruangan kelas tidak melebihi 10(sepuluh) slot untuk satu hari.

c. Satu ruangan tidak boleh digunakan lebih dari satu kali oleh satu kelompok.

Dari contoh yang ada akan menghasilkan nilai fitness sebagai berikut: Fitness kromosom 1 = 1

1+(1+0+0)= 0.5

Fitness kromosom 2 = 1

1+(0+1+0)= 0.5

Fitness kromosom 3 = 1

1+(1+1+1)= 0.25

Fitness Kromosom 4 = 1

1+(1+1+0)= 0.33

3.2.4 Seleksi

Pembentukan susunan kromosom pada suatu populasi baru dilakukan dengan menggunakan metode Tournamnet. Seleksi turnamen merupakan variasi dari seleksi roda roulette dan seleksi ranking. Pada metode seleksi ini, kromosom dipilih secara acak, kemudian diranking untuk diambil nilai fitness terbaiknya.Berikut akan di tampilkan contoh dari seleksi turnamen:


(51)

Kromosom 1 = ILK1203K3R0T3 ILK1202K1R0T1 UNI1222K1R0T3 ILK1202K3R0T3

Kromosom 2 =KTB203K3R1T4 KTC202K3R1T3 UNI106K3R1T1 KTC201K1R1T1

Kromosom 3= KTB302K1R2T3 KTC301K1R2T1 KTB304K1R2T5 KTC303K1R2T1

Kromosom 4= KTC402K2R3T3 KTD401K1R4T5 KTB301K2R4T7 ILK1200K1R5T8

Langkah selanjutnya adalah memilih beberapa kromosom secara random (acak). maka yang kromosom yang terplih adalah kromosom 1,kromosom 2, dan kromosom 3. Dari kromosom ini, maka dihitung nilai fitness nya:

Kromosom 1 = ILK1203K3R0T3 ILK1202K1R0T1 UNI1222K1R0T3 ILK1202K3R0T3

Fitness kromosom 1 = 1

1+(1+0+0)= 0.5

Kromosom 2 =KTB203K3R1T4 KTC202K3R1T3 UNI106K3R1T1 KTC201K1R1T1

Fitness kromosom 2 = 1

1+(1+1+1)= 0.25

Kromosom 3= KTB302K1R2T3 KTC301K1R2T1 KTB304K1R2T5 KTC303K1R2T1

Fitness Kromosom 3= 1

1+(1+1+0)= 0.33

Tabel 3.4 Contoh Seleksi Tournament


(52)

Fitness 1 Kromosom 1 = ILK1203K3R0T3 ILK1202K1R0T1

UNI1222K1R0T3 ILK1202K3R0T3

0.5

2 Kromosom 2 =KTB203K3R1T4 KTC202K3R1T3

UNI106K3R1T1 KTC201K1R1T1

0.25

3 Kromosom 3= KTB302K1R2T3 KTC301K1R2T1

KTB304K1R2T5 KTC303K1R2T1

0.33

Maka dari nilai fitness ini, maka kromosom yang terbaik adalah kromosom yang memiliki nilai fitness yang terkecil yaitu 0.25, kromosom 2 dengan urutan penjadwalannya adalah Kromosom 2 =KTB203K3R1T4 KTC202K3R1T3 UNI106K3R1T1 KTC201K1R1T1.

3.2.5 Pindah silang ( Crossover)

Pindah silang (CrossOver) digunakan sebagai metode pemotongan kromosom secara acak (random) dan merupakan penggabungan bagian pertama dari kromosom induk 1 dengan bagian kedua dari kromoson induk 2 .Metode pindah silang yang paling umum digunakan adalah pindah silang satu titik potong (one-point crossover). Suatu titik potong dipilih secara acak (random), kemudian bagian pertama dari kromosom induk 1 digabungkan dengan bagian kedua dari kromosom induk 2. Bilangan acak (random) yang dibangkitkan untuk menentukan posisi titik potong adalah [1-N] dimana N merupakan banyaknya jumlah gen dalam satu kromosom.

Berikut adalah contoh perkawinan silang satu titik dalam penjadwalan perkuliahan:


(53)

Kromosom 2= ILK1203K3R0T3ILK1202K1R0T1 UNI1222 K1R0T3 ILK1202

Kromosom4 = KTB203K3R1T4 KTC202K3 K3 R0T3

R1T3 UNI106K3R1T1

Titik Potong

KTC201K1R1T1

Hasil pindah silang kedua kromosom tersebut adalah

Kromosom2 = KTB203K3R0T3 ILK1202K1R1T3 UNI1222K1R1T1 KTC201K3R0T3

Kromosom4 = ILK1203K3R1T4 KTC202K3R0T1 UNI106K3R0T3 ILK1202K3R0T3

Fitness kromosom 2 setelah pindah silang = 1

1+(1+0+1+1)= 0.25

Fitness kromosom 4 setelah pindah silang = 1

1+(1+1+0+0)= 0.33

3.2.6 Mutasi

Proses mutasi adalah suatu proses kemungkinan memodifikasi informasi gen-gen pada suatu kromosom. Perubahan ini dapat membuat solusi duplikasi menjadi memiliki nilai fitness yang lebih rendah maupun lebih tinggi daripada solusi induknya. Jika ternyata diperoleh solusi yang memiliki fitness yang lebih tinggi maka hal itulah yang diharapkan. Tetapi jika diperoleh solusi dengan nilai fitness yang lebih rendah maka bisa jadi pada iterasi berikutnya diperoleh solusi hasil mutasi yang lebih baik nilai fitnessnya daripada solusi induknya. Untuk semua gen yang ada, jika bilangan acak (random) yang dibangkitkan kurang dari probabilitas mutasi (Pmut) yang telah ditentukan maka beberapa informasi gen akan dirubah dengan menggunakan metode pengkodean nilai.


(54)

Pmut umumnya diset antara [0 – 1], misalnya 0,1 (Suyanto, 2005). Untuk mendapatkan posisi gen yang akan dimutasi maka perlu dihitung jumlah total gen dalam satu populasi yaitu Total gen = Jumlah gen dalam satu kromosom x Jumlah kromosom yang ada. Berdasarkan contoh yang ada maka total gen adalah = 4 x 4 = 16. Probabilitas mutasi ditetapkan 0,1 maka diharapkan mutasi yang terjadi adalah : 0,1 x 16 = 1,6 = 2 gen yang akan mengalami mutasi.

Selanjutnya dilakukan iterasi sebanyak jumlah total gen [0-16] dan membangkitkan bilangan acak untuk tiap iterasi antara [0-1]. Diasumsikan gen yang mendapatkan bilangan dibawah probabilitas mutasi adalah gen 2 dan 3. informasi dalam gen yang akan dirubah adalah waktu perkuliahan, maka hasil mutasi pada kromosom tersebut adalah:

Kromosom 1 = ILK1203K3R0T3 ILK1202K1R0T1 UNI1222K1R0T3 ILK1202K3R0T3

Kromosom 2 =KTB203K3R1T4 KTC202K3R1T3 UNI106K3R1T1 KTC201K1R1T1

Kromosom 3= KTB302K1R2T3 KTC301K1R2T1 KTB304K1R2T5 KTC303K1R2T1

Kromosom 4= KTC402K2R3T3 KTD401K1R4T5 KTB301K2R4T7 ILK1200K1R5T8

Contoh dari mutasi ini, diambil sample pada kromosom 3, yaitu: KTB302K1R2T3 KTC301K1R2T1 KTB304K1R2T5 KTC303K1R2T1.

Sebelum Mutasi : KTB302K1R2T3 KTC301K1R2T1 KTB304K1R2T5 KTC303K1R2T1.


(55)

Sesudah Mutasi : KTB302K1R2T3 KTC301K1R2T2 KTB304K1R2T6 KTC303K1R2T1.

3.3 Sistem Penjawalan Perkuliahan di Fakultas Ilmu Komputer dan Teknologi Informasi

Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara adalahFakultas yang berdiri pada tahun 2009. Dan merupakan Fakultas ke-14(Empat Belas) yang ada di USU. Fasilkom-TI USU memiliki 2(dua) Program Studi, salah satunya adalah Program Studi Ilmu Komputer. Setiap Program Studi memulai proses perkuliahan belajar mengajar pada pukul 08.00 WIB dan berakhir pada pukul 17.00 WIB.

Penjadwalan mata kuliah di Fakultas Ilmu Komputer dan Teknologi Informasi dilakukan oleh bagian akademik. Proses penjadwalan mata kuliah dimulai dengan penyusunan mata kuliah yang ditawarkan untuk tiap program studi, baik itu mata kuliah wajib, maupun mata kuliah pilihan. Setiap proses perkuliahan biasanya diadakan di gedung fakultas. Tidak seperti proses perkuliahan di universitas lain, di Universitas Sumatera Utara, untuk mata kuliah yang bersifat universal, misalnya Bahasa Indonesia, proses perkuliahan juga diadakan di gedung yang terdapat di fakultas. Setelah itu dilanjutkan dengan usulan dosen yang akan mengampu mata kuliah yang telah ditawarkan. Untuk masalah ruangan yang akan digunakan biasanya disamakan dengan tahun sebelumnya, dengan catatan kurikulum yang digunakan masih kurikulum yang sama.

Proses selanjutnya adalah daftar mata kuliah dan dosen dari tiap program studi dirapatkan untuk membicarakan masalah mata kuliah dan penugasan dosen tersebut. Hasil dari rapat masing-masing departemen kemudian diserahkan ke fakultas dan selanjutnya digunakan untuk menyusun jadwal kuliah. Untuk menyusun jadwal kuliah


(56)

tersebut, biasanya tiap fakultas akan mempertimbangkan waktu ketersediaan dosen, sehingga kegiatan perkuliahan dapat berjalan optimal.

3.3.1. Komponen Utama Penjadwalan

Komponen utama penjadwalan adalah komponen-komponen yang menyusun jadwal mata kuliah, setiap komponen memiliki karakteristik tertentu, sehingga banyak aturan-aturan yang harus dipenuhi agar tiap komponen tetap dapat saling berhubungan dan menghasilkan jadwal mata kuliah yang sesuai dengan waktu ketersediaan dosen.

Agar penjadwalan dapat dibuat dengan benar, terdapat sejumlah factor dan aturan penjadwalan yang harus dipenuhi. Faktor yang berpengaruh dalam pembentukan jadwal meliputi:

1. Dosen

Dosen tidak dapat mengajar beberapa mata kuliah pada jam yang sama. Misalnya, Dosen untuk mata kuliah Bahasa Pemrograma II, M. Andri Budiman, ST, M.Comp.Sc, MEM, tidak boleh mengajar pada jam sama untuk mata kuliah Analisis & Disain Algoritma.

2. Ruang

Jumlah ruangan yang ada di Program Studi Ilmu Komputer sangat terbatas, sehingga harus diperhatikan ruang yang tersedia agar tidak mengganggu jalannya perkuliahan.

3. Mata Kuliah

Harus dibuatnya aturan yang membatasi penjadwalan mata kuliah, agar mata kuliah sesuai dengan aturan-aturan penjadwalan

4. Waktu

Ada hari-hari yang jam kuliahnya dibatasi sampai dengan jam tertentu, misalnya adalah jam kuliah hari jumat dibatai mulai jam 08.00-11.00


(57)

dan mulai kembali jam 13.00. sehingga pengaturan waktu sangat diperlukan dalam penyusunan jadwal.

Tabel 3.5: Contoh Dosen dan Mata Kuliah yang Diampunya

Dosen Mata Kuliah yang Diampu

Mata Kuliah Kode

M. Andri Budiman, ST, M.Comp.Sc, MEM

Analisis & Disain Algoritma

KTB 302

Bahasa Pemrograman II KTC 202 Dian Wirdasari, S.Si ,

M.Kom

Konsep Dasar Pemrograman

ILK1201

Komputer & Masyarakat KTE 301 Jos Timanta Tarigan, Msc Struktur Data KTB 203

Komponen berikutnya adalah mahasiswa. Setiap mahasiswa harus mengambil paket mata kuliah wajib jika indeks prestasinya cukup, dan jika berlebih, maka tiap mahasiswa boleh mengambil mata kuliah atas, atau mengulang mata kuliah bawah. Contoh paket mata kuliah wajib yang ada di Jurusan Ilmu Komputer terlihat pada tabel dibawah ini.

Tabel. 3.6: Contoh Paket Mata Kuliah

Semester Mata Kuliah Wajib

I UNI1201 , UNI1202, UNI1203,UNI1204,

UNI1205,UNI1208,ILK1200,UNI1222,ILK1201 ILK1202,ILK1203


(58)

III UNI 106, UNI 108,KTB 202,KTB 203,KTC 201 KTC 202

V KTB 301,KTB 302,KTB 303,KTB 304KTC 301

KTC 302,KTC 303,KTE 301

VII KTB 401,KTC 401,KTC 402,KTD 401KTD 402 Komponen utama selanjutnya adalah satuan waktu kuliah, yaitu durasi waktu per jam kuliah. Satuan waktu yang digunakan di Fasilkom-TI adalah 50 menit untuk tiap 1 SKS. Berikut adalah daftar urutan waktu yang berlaku di Fasilkom-TI.

Tabel 3.7: Daftar jam Kuliah

Jam Kuliah Waktu

1 08.00-08.50

2 08.50-09.40

3 09.40-10.30

4 10.30-11.20

5 11.20-12.10

6 12.10-13.00

7 13.00-13.50

8 13.50-14.40

9 14.40-15.30

10 15.30-16.20

11 16.20-17.10

Komponen utama yang terakhir adalah ruangan kuliah, sebagai tempat berlangsungnya proses perkuliahan. Program Studi Ilmu Komputer memiliki beberapa ruangan kelas. Ruangan kelas tersebut adalah : Pascal, Delphi, Basic, Visual Basic, Java, Fortran. Setiap ruangan bisa digunakan untuk proses belajar mengajar selama masih berada di jam kuliah kuliah. Kapasitas setiap ruangan juga berbeda-beda sesuai


(59)

dengan jumlah mahasiswa yang mengikuti perkuliahan didalam satu mata kuliah. Contoh nya adalah sebagai berikut;

Tabel 3.8: Ruangan Dan Kapasitas

Id Ruangan Nama Ruangan Kapasitas maksimal

0 Ruang Basic 75

1 Ruang Fortran 75

2 Ruang Pascal 75

3 Ruang Java 75

4 Ruang Visual

Basic

75

5 Ruang Delphi 75

Komponen-komponen utama tersebut akan menghasilkan jadwal mata kuliah yang akan digunakan untuk semester tertentu. Penjadwalan dapat dikatakan optimal jika semua komponen saling terhubung dan aturan-aturan untuk tiap komponen dapat terpenuhi. Contoh hasil jadwal mata kuliah di Fasilkom-TI untuk semester adalah sebagai berikut:

Tabel 3.9: Contoh Penjadwalan mata Kuliah

Hari Waktu Mata Kuliah Ruangan Dosen

Senin 11.20-113.50

Konsep Dasar Pemrograman (ILK 1201 /A)

Pascal Handrial, S.Si, M.Comp,Sc

Selasa 09.40-12.10

Sistem Operasi (KTC 303/B)

Basic Dr.Poltak Sihombing, M.Kom


(60)

Rabu 13.00-15.30

Struktur data (KTB 301 /B)

Fortran Jos Timanta Tarigan, S.Kom, M,Sc

Kamis 13.00-14.40

Teori Bahasa dan Otomata (KTB 301/B)

Basic Drs. Marihat Situmorang, M.Kom.

Jumat 08.00-10.30

Organisasi dan Arsitektur Komputer

(KTC 201/A)

Fortran Drs. Dahlan Sitompul, M.Eng

3.3.2 Aturan Umum Penjadwalan

Ada beberapa aturan umum yang digunakan didalam penjadwalan perkuliahan, diantaranya adalah sebagai berikut

1. Ada batasan yang pasti pada kesediaan ruangan dan waktu.

Ruangan yang dimiliki jumlahnya tetap sepanjang 1 semester, tidak berubah-ubah jumlah nya

2. Tidak ada mahasiswa yang menghadiri dua kelas mata kuliah yang

berbeda pada waktu yang berbeda pada waktu yang sama.

3. Tidak ada dosen yang mengajar dua kelas mata kuliah yang berbeda pada

waktu yang sama.

4. Dua kelas mata kuliah yang berbeda tidak dapat berada pada ruangan

dan waktu yang sama.

Tidak mungkin ada dua kelas mata kuliah yang berbeda diselenggarakan bersamaan di sebuah ruangan.

5. Jadwal kuliah merupakan kombinasi yang mungkin dari

komponen-komponen utama, yaitu dosen, ruang, waktu dan mahasiswa pada suatu kelas mata kuliah tertentu. Ketidaklengkapan dari komponen utama menyebabkan jadwal tidak dapat digunakan.


(61)

Sebuah kelas mata kuliah tidak mungkin diselenggarakan jika tidak ada dosen yang mengampu, tidak ada alokasi waktu , tidak disediakan ruang kuliah atau tidak ada mahasiswa yang mengambil mata kuliah itu.

6. Jadwal kuliah yang dihasilakan hanya baik bagi periode waktu tertentu,

dalam hal ini semester, setelah itu komponen-komponen penyususnnya bisa mengalami perubahan sehingga jadwal yang lalu tidak dapat dipergunakan lagi.

Pengaruh dari komponen utama, seperti data dosen, mata kuliah, data ruangan sangat mempengaruhi proses penjadwalan. Contohnya adalah : peserta kelas mata kuliah tertentu setiap semester bisa bertambah atau berkurang sehingga mempengaruhi pemilihan ruangan yang digunakan.

3.3.3 Aturan Khusus penjadwalan di Fasilkom-TI

Selain aturan umum yang digunakan didalam penjadwalan perkuliahan, ada juga aturan khusus yang digunakan didalam penjadwalan perkuliahan di Program Studi Ilmu Komputer, di antaranya adalah

1. Mata kuliah wajib tingkat semester berdekatan tidak boleh diselenggarakan

pada saaat yang bersamaan.

Contoh dari aturan tersebut adalah : mata kulaih wajib semester 1 tidak bolehkonflik dengan mata kuliah wajib semester 3, tetpi boleh konflik dengan mata kuliah wajib semester 5, sedangkan mata kuliah wajib semester 2 tidak boleh konflik dengan mata kuliah wajin semester 4, tetapi boleh konflik dengan mata kuliah wajib semester 6. Hal ini dilakukan mengingat banyaknya mahasiswa yang memilih untuk mengambil mata kuliah wajib semester berikutnya dari pada mata kuliah pilihan.

2. Dosen tidak boleh mengajar lebih dari 11 SKS, dengan toleransi 12 SKS, pada

strata 1 (Satu) reguler.

Aturan ini dibuat berdasarkan jumlah jam kerja efektif pegawai di Indonesia, yaitu 40 jam per minggu.


(62)

3. Jadwal mata kuliah yang disusun hanya berlaku untuk 1(satu) semester, bisa semester ganjil, semester genap atau semester ganjil.

4. satu mata kuliah dapat diampu lebih dari seorang dosen

Contoh dari pernyataan ini adalah: mata kuliah Struktur Data pada semester 3(tiga) Memiliki 2(dua) Dosen. Yaitu : Drs. Partano Siagian, M.Sc untuk kelas A dan B, Sedangkan untuk kelas C, dosen yang mengajar adalah Jos Timanta Tarigan, S.Kom, M.Sc.

5. Dosen ditempatkan pada kelas mata kuliah yang hanya diampunya sebelum

jadwal dibuat, satu mata kuliah ditawarkan hanya jika ada dosen yang bisa mengampunya.

Jika mata kuliah yang tidak mendapatkan dosen adalah mata kuliah wajib, maka akan dicarikan dosen, sebab mata kuliah itu tetap harus diselnggarakan, sedangkan jika tidak mendaptkan dosen adalah mat kuliah pilihan, maka mata kuliah itu tidak akan di tawarkan.

6. waktu kuliah dalam sehari dimulai dari jam 08.00 sampai 17.10. lama setiap

satuan waktu kuliah adalah 50 menit, dalam jangka waktu 1 hari terdapat 9 (Sembilan) slot waktu, maka 5 (hari).

7. Sebaiknya ada waktu istirahat bagi dosen minimal 1 satuan waktu diantara 2

kelas yang berbeda.

Alasan mengapa diperlukan waktu istirahat ini adalah agar tidak menurunkan kualitas materi yang akan disampaikan pada kelas mata kuliah berikutnya. Namun pada prakteknya aturan ini tidak dapat dilakukan mengingat keterbasan waktu, sedikitnya jumlah dosen dan banyaknya jumlah mata kuliah yang diselenggarakan. Selain itu dosen memiliki waktu istirahat minimal 10 (sepuluh) menit diantara jam kuliah.


(63)

Tujuan dibuatnya perancangan perangkat lunak ini adalah agar menentukan bagimana system akan berfungsi. Jika terjadi kesalahan pada perancangan, akan mengakibatkan kegagalan pada penyelesaian masalah oleh computer.

3.4.1. Hasil Perancangan

Tahapan yang ada dalam perancangan adalah tahapan untuk menspesifikasikan proyek yang nantinya akan dibuat.Pada perancangan aplikasi penjadwalan mata kuliah dengan menggunakan algoritma genetika, ada beberapa dokumen yang akan dibuat, yaitu:

1. Pemodelan proses 2. Pemodelan data

3. Pemodelan Antar Muka

3.4.1.1 Pemodelan Proses

Pengertian Pemodelan Proses adalah bagaimana cara formal untuk menggambarkan aplikasi penjadwalan beroperasi. Cara yang paling sering digunakan adalah dengan menggunakan data flow diagram (DFD). Pemodelan prose berupa pemodelan fungsi yang digambarkan dengan Diagram Arus Data (DAD).

1. Diagram Konteks ( DAD Level 0).

Didalam contex diagram terdapat satu entitas admin penyusun jadwal. Admin memberikan data mata kuliah, dosen, kelas, matkul_dosen_kelas , ruang ke dalam system untuk menghasilkan penjadwalan hasil proses algoritma genetika.


(64)

Admin

0 Sistem penjadwalan

algoritma genetika Data Mata Kuliah, Dosen, Kelas,

Matkul_dosen-kelas, Ruang,

Info Data Mata kuliah , Dosen, Matkul_dosen_kelas, Ruang, Kelas

Gambar 3.2: Diagram konteks

2. Diagram Arus Data level 1 Penjadwalan algoritma genetika

Diagram Arus Data level 1 Penjadwalan algoritma genetika terdiri dari 3 proses, Proses pertama adalah pengolahan data-data master mata kuliah, dosen, kelas, ruang. Proses kedua adalah proses untuk pengolahan data penggabungan data matakuliah, dosen dan kelas yang diampu oleh dosen. Proses ketiga merupakan proses pengolahan jadwal dengan algoritma genetika yang diambil dari tabel mata kuliah, dosen, kelas, matkul_dosen_kelas, ruang. Data hasil penjadwalan akan disimpan dalam tabel GA_Kuliah. Ditunjukkan pada gambar berikut:


(65)

admin

1 Pengolahan data

master Input data master

Ruang Data ruang

Info Data Ruang

Mata Kuliah

Dosen

Kelas Info Data Mata Kuliah

Data mata kuliah

Info data Dosen

Data Dosen

Info data Kelas

Data Kelas

2. Pengolahan data matkul_dosen_ke

las Input datamatkul_dosen_kelas

Matkul_dosen _kelas Data Kelas

Data Dosen

Data Mata Kuliah Info data matkul_dosen_kelas

Data Matkul_dosen_kelas

Info data matkul_dosen_kelas

3. Pengolahan jadwal algoritma

genetika

Data matkul_dosen_kelas

Data ruang

GA_Kuliah

Info jadwal kuliah algoritma genetika

Jadwal kuliah algoritma genetika

Gambar 3.3 Diagram Arus Data level 1 Penjadwalan algoritma genetika

3. Diagram Arus Data Level 2 Proses 2 Pengolahan Data

Pada Diagram Arus Data Level 2 Proses 2 Pengolahan Data Master terdapat 5 proses yaitu pengolahan data mata kuliah, pengolahan data dosen, pengolahan data kelas, pengolahan data ruang


(66)

Admin

2.1 Pengolahan

Data Mata Kuliah

2.3 Pengolahan

Data Kelas 2.2 Pengolahan Data Dosen

2.4 Pengolahan Data Ruang

Data Mata Kuliah

Data Dosen

Data Kelas

Data Ruangan

Mt_kuliah

Dosen

Kelas

Ruangan Data Dosen

Info Data Dosen

Info data Kelas Data Kelas

Info Data Ruangan Data Ruangan Info Data Mata Kuliah

Data Mata Kuliah

Gambar 3.4 : DAD Level 2 proses 2 pengolahan data

4. DAD Level 2 Proses 4 Pengolahan Jadwal Algoritma Genetika

Diagram Arus Data Level 2 Proses 4 Pengolahan Jadwal Algoritma Genetika memiliki 8 proses. Admin menginputkan jumlah generasi, populasi, probabilitas crossover dan mutasi. Proses Encoding mengambil data dari tabel matkul_dosen_kelas. Selanjutnya diproses untuk membentuk populasi dan kromosom. Evaluasi fitness untuk menilai seberapa bagus solusi individu yang dihasilkan. Proses seleksi merupakan proses pembentukan susunan kromosom baru. Proses pindah silang adalah proses memindah silangkan gen dari 2 kromosom induk.. Proses mutasi mengganti atau merubah gen dari kromosom. Kondisi selesai merupakan suatu kondisi yang digunakan untuk menghentikan


(67)

proses pengulangan algoritma genetika. Ditunjukkan pada gambar 3.9

Admin

3.1 proces encoding

3.2 proses populasi dan kromosom

3.3. proses evaluasi fitness

3.4 proses seleksi

3.5 proses pindah silang

3.6 proses mutas

Matkul_dosen_kelas

Ruang Data matkul_dosen_kelas

Data ruang

3.7 Pemilihan Generasi Terbaik GA_kuliah

Info jadwal kuliah hasil GA

Gambar 3.5: DAD Level 2 Proses 4 Pengolahan jadwal algoritma Genetika

3.4.1.2Pemodelan Data

Terdapat 2 perancangan permodelan data yang digunakan yaitu perancangan database konseptual (Entity Relationship Diagram) dan fisik.

1) Perancangan database konseptual (Entity Relationship Diagram) Entity Relationship Diagram (ERD) merupakan gambaran mengenai berelasinya antar entitas yang digunakan dalam sistem. Gambar 3.10 menunjukkan perancangan ERD pada penelitian ini :


(1)

for (int a = 0; a < maxRoom; a++) {

for (int b = 0; b < maxDay; b++) {

for (int c = 0; c < maxHour; c++) {

tempTimetable[a][b][c] = table.timetable[a][b][c]; }

} }

int sks = 0;

for (int a = 0; a < maxRoom; a++) {

for (int b = 0; b < maxDay; b++) {

for (int c = 0; c < maxHour; c++) {

idMk = table.timetable[a][b][c]; if (idMk == -1) continue;

// search the lecturer for the lecture for (int j = 0; j < mkVector.size(); j++) {

if (mkVector.get(j).idMk == idMk) {

sks = mkVector.get(j).sks; j = mkVector.size();


(2)

} }

int sksLeft = sks - 1;

// first try to fill the slot after the current slot for (int k = 0; k < sks; k++)

{

if (c+k < maxHour && tempTimetable[a][b][c+k] == -1 && sksLeft > 0)

{

tempTimetable[a][b][c+k] = idMk; sksLeft--;

//System.out.println("Attempt to go forward success " + sksLeft);

} }

for (int k = 0; k < sks; k++) {

if (c-k > 0 && tempTimetable[a][b][c-k] == -1 && sksLeft > 0)

{

tempTimetable[a][b][c-k] = idMk; sksLeft--;

//System.out.println("Attempt to go backward success " + sksLeft);

} }


(3)

// timetable

if (sksLeft == 0) {

//System.out.println("Succesfully 0"); }

totalSksCost += 5 * sksLeft;

// if there's still sks left and }

} }

//System.out.println(totalSksCost); table.cost += totalSksCost;

}

// mengurutkan populasi agar populasi dengan cost terkecil terletak pada awal

// list dan cost terbesar pada akhir populasi static void sortNewBreed(int index)

{

while(index > 0 &&

tableVector.get(index).cost < tableVector.get(index-1).cost)

{

swapBooking(index, index-1); index--;


(4)

}

static void printTable(int tableIndex) {

System.out.println(); System.out.println(); System.out.println();

System.out.println("Printing Table " + tableIndex);

System.out.println("Cost = " + tableVector.get(tableIndex).cost); Timetable table = tableVector.get(tableIndex);

int counter = 0;

for (int a = 0; a < maxRoom; a++) {

for (int b = 0; b < maxDay; b++) {

for (int c = 0; c < maxHour; c++) {

if(table.timetable[a][b][c] != -1) {

System.out.print(table.timetable[a][b][c] + " "); }

if (table.timetable[a][b][c] != -1) {

counter++; }

} } }


(5)

}

// metode ini untuk mensimulasikan ketersediaan dosen untuk mengajar.

// dalam program ini, data ketersediaan dosen diisi secara acak static void simulateAvailability()

{

lecturerAvailable = new

boolean[dosenVector.size()][maxRoom][maxDay][maxHour]; for (int i = 0; i < dosenVector.size(); i++) {

for (int a = 0; a < maxRoom; a++) {

for (int b = 0; b < maxDay; b++) {

for (int c = 0; c < maxHour; c++) {

// sample

if (getRandomFloat(2.0f) > 0.25) {

//System.out.println("lecturer IS available");

lecturerAvailable[ i][a][b][c] = true;

} else {

//System.out.println("lecturer NOT available"); lecturerAvailable[i][a][b][c] = false;

} } } } }}}


(6)

CURRICULUM VITEA

Nama

: Martinelly Sembiring

Tempat/Tanggal Lahir

: Sembahe/ 17 Maret 1991

Alamat

: Jalan Jamin Ginting Gang Bakti No 99 (Depan SMPN-1

P.Batu)

Pancur Batu, DS

Agama

: Kristen Protestan

Status

: Mahasiswa

Alamat Email

: martinellys@ymail.com

No. HP

: 085372015809

Pendidikan Terakhir

: SMA

PENDIDIKAN FORMAL

2006-2009

SMA Methodist-AN Pancur batu

2003-2006

SMP Methodst –AN Pancur batu

1997-2003

SD Bakti Pancur batu

SEMINAR ,KURSUS

2013

Peserta Seminar Nasional Kongres Nasional Ikatan Lembaga

Penalaran dan Penelitian Mahasiswa Indonesia.

2011

Kursus Bahasa Inggris Yayasan Pengembangan Persahabatan

Indonesia-Amerika

PENGALAMAN ORGANISASI

2011

Anggota Seksi Kesehatan PMB(Peneriamaan Mahasiswa Baru)

2009

Anggota IMILKOM (Ikatan Mahasiswa Ilmu Komputer)

2007

Anggota OSIS SMA Methodist-An Pancur Batu