PENJADWALAN PELAJARAN SMU NEGERI MOJOAGUNG DENGAN ALGORITMA GENETIKA

79
PROYEK AKHIR PENJADWALAN PELAJARAN SMU NEGERI MOJOAGUNG DENGAN ALGORITMA GENETIKA IRA LIA AGUSTINA NRP. 7403.030.065 Dosen Pembimbing: ENTIN MARTIANA K, S.KOM NIP. 132 282 692 ARNA FARIZA, S.KOM, M.KOM NIP. 132 233 198 JURUSAN TEKNOLOGI INFORMASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA SURABAYA 2006

description

PENJADWALAN PELAJARAN SMU NEGERI MOJOAGUNG DENGAN ALGORITMA GENETIKA

Transcript of PENJADWALAN PELAJARAN SMU NEGERI MOJOAGUNG DENGAN ALGORITMA GENETIKA

  • PROYEK AKHIR

    PENJADWALAN PELAJARAN SMU NEGERI MOJOAGUNG DENGAN ALGORITMA GENETIKA

    IRA LIA AGUSTINA NRP. 7403.030.065

    Dosen Pembimbing: ENTIN MARTIANA K, S.KOM

    NIP. 132 282 692

    ARNA FARIZA, S.KOM, M.KOM NIP. 132 233 198

    JURUSAN TEKNOLOGI INFORMASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

    SURABAYA 2006

  • PENJADWALAN PELAJARAN SMU NEGERI MOJOAGUNG DENGAN ALGORITMA GENETIKA

    Oleh : Ira Lia Agustina

    7403 030 065

    Proyek Akhir Ini Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Ahli Madya (A.Md.)

    Di Politeknik Elektronika Negeri Surabaya

    Institut Teknologi Sepuluh Nopember Surabaya

    Surabaya, Agustus 2005 Disetujui oleh

    Tim Penguji Proyek Akhir: Dosen Pembimbing : Dosen Penguji I Dosen PembimbingI 1.Tessy Badriyah,S.Kom,M.Kom 1. Entin Martiana,S.Kom

    NIP. 132 297 020 NIP. 132 282 692

    Dosen Penguji II Dosen Pembimbing II 2. Afrida Helen,S.Kom,M.Kom 2. Arna Fariza S.Kom, M.Kom NIP. 132 170 593 NIP. 132 233 198

    Dosen Penguji III 3. Rengga Asmara, S.Kom NIP. 132 310 244

    Mengetahui : Ketua Jurusan Teknologi Informasi

    Iwan Syarif S.Kom, M.Kom NIP. 132 134 725

  • iii

    ABSTRAK

    Alokasi dan penentuan guru pengajar merupakan salah satu elemen penting di dalam menyusun jadwal pelajaran di SMU ( contoh: SMU Negeri I Mojoagung ) . Selain itu juga merupakan permasahan umum yang selalu menjadi beban bagi pihak kesiswaan di SMU tersebut. Dengan keterbatasan guru yang ada , pihak kesiswaan dituntut agar tetap bisa memenuhi kebutuhan pelayanan kepada siswa khususnya kelas-kelas yang ada. Masalah yang sering muncul adalah pada jam yang bersamaan seorang guru berada di 2 kelas yang berbeda (kres) . Hal ini sangat mengganggu keefektifan waktu belajar siswa . Oleh karena itu , dengan usulan Proyek Akhir ini diharapkan dapat menyelesaikan masalah di atas. Permasalahan tersebut merupakan masalah yang kompleks karena berhubungan dengan jumlah guru dan jumlah kelas yang ada. Hasil yang diharapkan berupa jadwal pelajaran beserta guru pengajar di masing-masing kelas.

    Algoritma Genetika merupakan algoritma optimasi untuk menyelesaikan suatu permasalahan tanpa perhitungan matematik sehingga dapat digunakan untuk optimasi penyusunan jadwal SMU. Keyword : jadwal, algoritma genetika

  • iv

    ABSTRACT

    Allocation and determining of teacher is one of the important elements to arrange high school schedule ( for example : SMU Negeri I Mojoagung ). Beside of that, also is the general problem, which is always become responsibility for student division in high school. With limitedness of teacher, student division is prosecuted to fill need of student servicing especially classes. The often appear problem is in the same time one teacher be two different classes. This is very disturb effectiveness of students time learning. Because of this, the final project hoped can finish this problem. This problem is complexity problem because related with sum of teachers and classes. The hoped result is schedule with teacher of each class.

    Genetic Algorithm is optimation algorithm to finish a problem without mathematic calculation so that can be used for optimation arranging schedule in High School. Keyword : schedule, genetic algorithm

  • v

    KATA PENGANTAR Puji sukur kita haturkan kepada yang Maha Kuasa, Allah SWT, Karena dengan karuniaNyalah samapai saat ini kita masih diberikan rahmat, hidayat dan kekuatan sehingga dapat terus melakukan segala aktifitas sehari-hari yang telah kita jalani. Sampai pada akhirnya dapat menyelesaikan proyek akhir ini yang berjudul : Penjadwalan Pelajaran SMU dengan Algoritma Genetika. Proyek akhir ini dibuat dengan maksud untuk memenui salah satu persyaratan untuk menyelesaikan studi di Politeknik Elektronika Negeri Surabaya, Institut Teknologi Sepuluh Nopember yang telah dijalani selama genap tig atahun. Disamping itu juga sebagai pembelajaran untuk diri pribadi dalam banyak hal, baik itu pengetahuan, mempraktekkan kuliah yang telah didapat selama ini di Politeknik dan sebuah persiapan untuk menghadapi dunia kerja yang tentunya lebih kompleks dari perkuliahan. Proses penyelesaian proyek akhir ini dilakukan dengan usaha maksimal yang bisa diberikan, yang tentu saja menggunakan teori-teori yang telah didapatkan di meja perkuliahan, pembelajaran di luar kuliah ataupun juga bantuan dan literature dari berbagi pihak, baik itu dosen pembimbing yang telah membantu kelancaran proses ini dan pihak-pihak lain yang telah memberikan semangat dan bantuan. Tentu saja, dibalik semua usaha yang telah dilakukan, penulis sadar betul bahwasannya masih banyak kekurangan di sana sini dalam penyusunan buku laporan proyek akhir ini. Untuk itu penulis mohon maaf dan mengharapkan saran-saran serta kritik yang membangun dari pembaca. Diharapkan juga akan ada pengembangan proyek akhir ini untuk memperbaiki kekurangannya ataupun menambah kelebihannya. Dan tentunya semoga buku ini dapat bermanfaat agar dapat menghasilkan sumber daya yang berkualitas. Amin.

    Surabaya, Juli 2006

    Penulis

  • vi

    UCAPAN TERIMA KASIH Adapun pihak-pihak yang turut membantu kelancaran dalam pembuatan proyek akhir ini, diantaranya adalah : 1. Allah SWT, Penguasa semesta alam dan Pemberi kekuatan serta

    nikmat yang tak berhingga sehingga proyek akhir ini dapat terselesaikan dengan baik.

    2. Rasulullah SAW, yang telah memberikan penerangan kepada umatnya sehingga dapat bangkit dari kegelapan dan menyongsong hari esok dengan gemilang.

    3. Kedua orangtua tercinta, yang telah memberikan doa dan restunya sehingga saya dapat tetap eksis sampai hari ini, menjalani studi di politeknik selama tiga tahun dan menyelesaikan proyek akhir ini.

    4. Bu Entin dan Bu Arna, selaku dosen pembimbing yang telah memberi banyak sekali masukan, pengetahuan dan semangat sehingga saya dapat menyelesaikan proyek akhir ini dengan baik.

    5. Bapak Titon Dutono selaku Direktur PENS-ITS, Bapak Iwan Syarif, selaku Ketua Jurusan Teknologi Informasi .

    6. Pak Lik aku yang udah seperti orang tua kedua bagiku, yang telah memberikan doa dan restunya. Dan semua keluargaku baik Pak Poh, Budhe, Pak Lik, Bulek, semuanya makasih banget atas dukungan dan doanya.

    7. Seseorang nan jauh disana dekat di hati, yang telah memberi dukungan dan semangat bagi aku untuk menyelesaikan proyek akhir ini.

    8. Para teknisi dan staf-staf IT yang telah membantu dalam kelancaran pengerjaan Proyek Akhir ini.

    9. Teman-teman lantai 3 terutama A.A Bastomi yang telah telaten mengajariku dan bersedia membantu dalam mengerjakan proyek akhir ini, terimakasih atas bantuannya selama ini. Aku tidak akan melupakan jasa-jasamu. Teruslah telaten A.A dalam mengajari temanmu yang lelet ini,nia, acid, puteri, silvi, febri , ira, semuanya deh arek IT B makasih banget ya.

    10. Teman-teman lantai 2, Ceri, Sinta, Tomo si kura-kura , Adhi, dan Arip yang saling memberi semangat ,berbagi keceriaan, semuanya dehmakasih ya kalian dah mau ndengerin nyanyianku yang merdu dan maaf ya kalau selama ini suaraku sering mengganggu kalian.

    11. Temanku lantai 1 yatie dan mbak mira yang udah seperti kakak bagiku, sempat juga jadi penghuni lantai 2 yang slalu menemaniku disaat senang dan duka , cak Ri makasih ya atas bantuannya.

  • vii

    12. Mbak Wati, mbak evi, mbak riva dan semua anak kost GR 03 makasih ya.

    13. Pihak-pihak lain yang turut membantu yang tidak mungkin disebutkan satu per satu namanya disini, maaf dan terimakasih banyak.

  • viii

    DAFTAR ISI

    Halaman HALAMAN JUDUL ............................................................................ i LEMBAR PENGESAHAN ................................................................. ii ABSTRAK .......................................................................................... iii ABSTRACT.......................................................................................... iv KATA PENGANTAR ......................................................................... v UCAPAN TERIMA KASIH .............................................................. vi DAFTAR ISI ..................................................................................... viii DAFTAR GAMBAR............................................................................. x DAFTAR TABEL................................................................................. xi BAB I PENDAHULUAN ................................................................ 1

    1. 1. Latar belakang ............................................................................ 1 1. 2. Tujuan......................................................................................... 2 1. 3. Batasan masalah.......................................................................... 2 1. 4. Permasalahan .............................................................................. 2 1. 5. Metodologi.................................................................................. 2 1. 6. Sistematika pembahasan ............................................................. 3

    BAB II TEORI PENUNJANG.......................................................... 5

    2. 1. Algoritma Genetika ........................................................... 5 2. 1. 1. Latar Belakang Biologi .......................................... 6 2. 1. 2. Definisi Penting dalam Algoritma Genetika .......... 6 2. 1. 3. Struktur Umum Algoritma Genetika...................... 7

    2. 2. Penjadwalan..................................................................... 17 2. 3. Sekilas Tentang Java........................................................ 19

    2. 3. 1. Vector .................................................................. 19

    BAB III PERENCANAAN DAN PEMBUATAN SISTEM ........... 23 3. 1. Perencanaan Sistem ......................................................... 23

    3. 1. 1. Blok Diagram Sistem ...........................................24 3. 1. 2. Entity Relatinship Diagram ..................................25

    3. 2. Pembuatan Sistem............................................................ 26 3.2.1. Database................................................................. 27 3.2.2.1. Tabel ......................................................... 27 3.2.2.2. Relationship .............................................. 29 3.2.2. GUI ....................................................................... 30 3.2.2.1. Form......................................................... 30

  • ix

    3.2.2.2. Menu Proses............................................. 31 3.2.2.3 Menu About ............................................. 32 3.2.3. Koneksi Database ................................................. 33 3.2.4. Program................................................................ 35 3.2.4.1. Individu/Kromosom................................ 36

    3.2.4.2. Fitness..................................................... 38 3.2.4.3 Proses Algoritma Genetika..................... 39 BAB IV PENGUJIAN PROGRAM DAN ANALISA .................... 53

    4. 1. Hasil Running Program ................................................... 53 4.1.1 Menu Proses........................................................... 53

    4. 2. Analisa Hasil Program..................................................... 63 BAB V PENUTUP ........................................................................... 65

    5. 1. Kesimpulan ..................................................................... 65 5. 2. Saran................................................................................ 65

    DAFTAR PUSTAKA .......................................................................... xii BIODATA

  • x

    DAFTAR GAMBAR

    Gambar 2.1. Struktur Umum Algoritma Genetika................................. 7 Gambar 2.2. Ilustrasi seleksi dengan roulete wheel............................. 10 Gambar 2.3. Ilustrasi metode Rank Selection(sebelum)...................... 11 Gambar 2.4. Ilustrasi metode Rank Selection(sesudah) ...................... 12 Gambar 2.5. Contoh Tree Encoding pada Crossover .......................... 15 Gambar 3.1. Proses Pembuatan Sistem ............................................... 23 Gambar 3.2. Konfigurasi Sistem Secara Keseluruhan......................... 24 Gambar 3.3. Blok Diagram Sistem...................................................... 25 Gambar 3.4. Entity Relationship Diagram........................................... 25 Gambar 3.5. Tabel Kelas ...................................................................... 27 Gambar 3.6. Tabel Pelajaran ................................................................ 28 Gambar 3.7. Tabel Pelajaran_Kelas ..................................................... 29 Gambar 3.8. Relationship dari database data........................................ 29 Gambar 3.9. Form Halaman Depan..................................................... 30 Gambar 3.10. Menu Proses.................................................................... 31 Gamabr 3.11. Form Masukan ................................................................ 32 Gambar 3.12. Form About..................................................................... 32 Gambar 3.13. Form keterangan ............................................................. 33 Gambar 3.14. Data Source (ODBC) ...................................................... 35 Gambar 3.15. Ilustarsi Crossover .......................................................... 47 Gambar 3.16. Ilustarsi Mutasi ............................................................... 49 Gambar 4.1. Form Halaman Depan..................................................... 53 Gambar 4.2. Menu Proses.................................................................... 54 Gambar 4.3. Menentukan Input ........................................................... 55 Gambar 4.4. Pembangkitan Populasi .................................................. 58 Gambar 4.5. Grafik Fitness.................................................................. 59 Gambar 4.6. Jadwal Pelajaran .............................................................. 62 Gambar 4.7. Grafik Fitness2................................................................. 63

  • xi

    DAFTAR TABEL

    Tabel 3.1. Properties Tabel Kelas ...................................................26 Tabel 3.2. Properies Tabel Pelajaran ..............................................26 Tabel 3.3. Properties Tabel Pelajaran_Kelas ..................................26 Tabel 4.1. Nilai Fitness ...................................................................59 Tabel 4.2. Hasil Percobaan Jadwal Pelajaran SMU........................60

  • 1

    BAB I PENDAHULUAN

    1.1. LATAR BELAKANG

    Selama ini penjadwalan pelajaran di SMU (Sekolah Menengah Umum) yang meliputi jadwal mata pelajaran dan pembagian guru di setiap kelas yang ada masih menggunakan cara manual, sedangkan untuk membagi guru sesuai dengan bidangnya dalam ruang kelas dan waktu tertentu diperlukan pengaturan yang cukup rumit. Permasalahan yang dihadapi di SMU (sebagai sample SMU Negeri I Mojoagung) sama dengan hal tersebut, belum ada suatu sistem komputasi yang telah dibuat agar dapat dipergunakan untuk menyusun jadwal pelajaran sesuai dengan yang diinginkan.

    Oleh karena itu dalam proyek akhir kali ini akan dicoba untuk membuat suatu sistem komputasi yang dapat menggantikan cara manual tersebut dan dapat menghasilkan hasil yang lebih bagus dan waktu yang lebih singkat, hanya dengan memberikan parameter input yang dibutuhkan, dapat menghasilkan output penjadwalan pelajaran SMU yang diinginkan.

    Sampai saat ini, metode yang dikenal sebagai metode yang diakui potensinya memiliki teknik optimasi untuk menyelesaikan permasalahan yang kompleks adalah Algoritma Genetika dan telah sukses dijalankan di kalangan teknik seperti yang dikatakan Mitsuo Gen [1] termasuk permasalahan timetabling atau penjadwalan [2]. Sehingga dalam pembuatan sistem penjadwalan pelajaran SMU ini metode yang dipilih untuk dipergunakan adalah Algoritma Genetika.

    Sama seperti kasus pada penjadwalan ujian akhir semester sebelumnya [3] yang menyatakan bahwa setiap dosen tidak diperbolehkan ada di beberapa tempat dalam waktu yang bersamaan, demikian pula salah satu syarat dari penjadwalan pelajaran SMU ini, bahwa setiap guru tidak diperbolehkan berada pada 2 kelas atau lebih pada jam pelajaran yang bersamaan.

    Diharapkan proyek akhir ini dapat menyusun jadwal pelajaran SMU yang meliputi jadwal pelajaran SMU disertai dengan guru pengajar di masing-masing kelas yang ada dengan proses yang lebih memakan waktu sedikit dan hasil yang optimal.

  • Bab I Pendahuluan 2

    1.2. TUJUAN Proyek Akhir yang berjudul Penjadwalan Pelajaran SMU

    Negeri Mojoagung dengan Algoritma Genetika ini bertujuan untuk: 1. Menghasilkan suatu software yang berfungsi untuk menyusun

    jadwal pelajaran di SMU Negeri Mojoagung. 2. Mengembangkan proses komputasi dengan Algorima Genetika

    untuk menyelesaikan permasalahan penjadwalan pelajaran SMU. 3. Mempermudah dan mempercepat proses pembuatan jadwal

    Pelajaran SMU dengan hasil yang optimal.

    1.3. BATASAN MASALAH Dalam proyek akhir ini permasalahan difokuskan pada

    pembuatan perangkat lunak yang meliputi metode dan program-program untuk menyusun jadwal pelajaran dan pembagian guru pada tiap-tiap kelas yang ada di SMU Negeri Mojoagung yang dibatasi dengan membuat jadwal pelajaran dari kelas 1 sampai dengan kelas 3 dimana tiap tingkat kelas terdiri dari 4 kelas dan mempunyai 2 jurusan yaitu : IPA dan IPS yang mulai diambil ketika kelas 2 dengan menggunakan Java Programming Language .

    1.4. PERMASALAHAN

    Permasalahan yang diangkat dalam proyek akhir ini adalah bagaimana membuat jadwal pelajaran dan pembagian guru pengajar pada tiap-tiap kelas di SMU Negeri I Mojoagung, sehingga didapatkan kombinasi pelajaran yang lebih baik guna menghasilkan jadwal pelajaran yang optimal. Jadwal pelajaran dikatakan optimal apabila tidak didapatkan kress didalamnya.

    1.5. METODOLOGI Metodologi penelitian yang digunakan dalam proyek akhir ini meliputi:

    1. Studi pustaka mengenai metode algoritma genetika dan teknik penjadwalan yang telah digunakan menggunakan algoritma genetika melalui buku-buku referensi.

    2. Melakukan pengumpulan data yang dibutuhkan untuk membuat jadwal pelajaran SMU meliputi data pelajaran, kelas dan guru sesuai dengan bidangnya masing-masing.

    3. Melakukan perancangan model sistem database yang digunakan untuk menyimpan data yang telah dikumpulkan

  • Bab I. Pendahuluan 3 meliputi pembuatan Blok Diagram dan Entity Relationship Diagram.

    4. Melakukan perancangan model algoritma genetika untuk penjadwalan pelajaran SMU yang meliputi pendefinisian individu, nilai fitness, pembangkitan populasi awal, seleksi, crossover dan mutasi.

    5. Melakukan pembuatan software yang meliputi proses pembentukan populasi baru untuk mendapatkan susunan jadwal pelajaran SMU dengan hasil yang paling optimal dengan menggunakan bahasa pemrograman Java.

    6. Melakukan uji coba dan analisa terhadap software yang telah dibuat dengan data yang telah didapatkan untuk membuat jadwal pelajaran SMU.

    1.6. SISTEMATIKA PEMBAHASAN

    Sistematika pembahasan proyek akhir yang disusun ini akan dibahas pada bab-bab yang akan diuraikan di bawah ini :

    BAB I Berisi tentang pendahuluan yang terdiri dari:

    Latar Belakang Tujuan Batasan Masalah Permasalahan Metodologi Sistematika Pembahasan

    BAB II Berisi tentang teori-teori penunjang yang terdiri dari:

    Algoritma Genetika Penjadwalan Tentang Java

    BAB III Berisi tentang perencanaan dan pembuatan sistem yang meliputi pembuatan database, Graphic User Interface dan algoritma program yang akan digunakan

    BAB IV Berisi tentang analisa dari sistem, metode dan program yang telah dibuat, kemudian dibandingkan dengan perencanaan awal serta teori-teori dari proyek akhir tentang kelebihan dan kekurangannya.

  • Bab I Pendahuluan 4 BAB V Berisi kesimpulan dan saran serta pengembangan proyek

    akhir, jika dimungkinkan untuk masa yang akan datang.

  • 5

    BAB II TEORI PENUNJANG

    Dalam bab ini akan dibahas mengenai teori-teori penting yang

    dapat menunjang dan menjadi acuan dalam pembuatan proyek akhir ini. Bagian tersebut akan dikelompokkan dalam tiga bab yaitu Algoritma Genetika yang digunakan sebagai metode penyelesaian, teori teori dari teknik penjadwalan dan sekilas tentang Java. 2.1. ALGORITMA GENETIKA

    Kecerdasan buatan (Artificial Intelligence) merupakan suatu ilmu dengan ide-ide untuk membuat bagaimana komputer menjadi cerdas seperti yang bisa dilakukan manusia, dengan mengimplementasikannya dalam sebuah program. Diharapkan nantinya kecerdasan buatan ini dapat menirukan proses belajar yang dilakukan oleh manusia sehingga informasi-informasi baru dapat diserap dan dapat dijadikan acuan pada masa yang akan datang.

    Algoritma genetika merupakan evolusi / perkembangan dunia komputer dalam bidang kecerdasan buatan (Artificial Intelligence). Sebenarnya algoritma genetika ini terinspirasi oleh teori evolusi Darwin (walaupun pada kenyataannya teori tersebut terbukti keliru).

    Algoritma genetika adalah algoritma pencarian yang berdasarkan pada mekanisme sistem natural yakni genetik dan seleksi alam [4]. Pada dasarnya algoritma genetika adalah program komputer yang mensimulasikan proses evolusi, dengan menghasilkan kromosom-kromosom dari tiap populasi secara random dan memungkinkan kromosom tersebut berkembang biak sesuai dengan hukum-hukum evolusi yang nantinya diharapkan akan dapat menghasilkan kromosom prima atau yang lebih baik. Kromosom ini merepresentasikan solusi dari permasalahan yang diangkat, sehingga apabila kromosom yang baik tersebut dihasilkan, maka diharapkan solusi yang baik dari permasalahan tersebut juga didapatkan.

    Algoritma genetika bisa digunakan untuk menyelesaikan permasalahan yang tidak mempunyai metode penyelesaian dengan rumusan yang tepat, ataupun jika ada rumusannya, masih diperlukan waktu yang lama untuk menyelesaikannya, biasanya permasalahan tersebut sangat beragam dan kompleks, salah satu contohnya adalah permasalahan penjadwalan ujian akhir semester yang menentukan

  • Bab II. Teori Penunjang 6 jadwal UAS dengan syarat bahwa setiap dosen tidak diperbolehkan ada di beberapa tempat dalam waktu yang bersamaan.

    2.1.1. Latar Belakang Biologi Setiap makhluk hidup di dunia ini terdiri dari sel-sel. Dalam setiap sel tersebut terdapat set kromosom yang sama. Kromosom adalah susunan atau suatu nilai dari DNA dan menggambarkan makhluk hidup secara keseluruhan. Setiap kromosom terdiri dari gen yang disebut sebagai blok dari DNA. Setiap gen menggambarkan sebuah protein khusus. Pada dasarnya setiap gen menggambarkan sebuah sifat seperti warna mata. Keadaan yang mungkin untuk sifat (seperti biru, coklat) disebut sebagai allele. Setiap gen mempunyai letak tersendiri pada sebuah kromosom yang disebut sebagai locus.

    Dalam proses reproduksi, proses pertama yang terjadi adalah rekombinasi atau disebut juga dengan crossover / kawin silang. Susunan gen dari induk digabungkan dengan beberapa cara untuk menciptakan kromosom baru secara keseluruhan. Selanjutnya, individu baru yang terbentuk dapat dimutasikan. Mutasi adalah perubahan pada beberapa elemen dari DNA yang terdapat pada gen induk. Nilai fitness dari suatu individu dilihat dari kesuksesannya mempertahankan hidup dalam suatu populasi.

    2.1.2. Definisi penting dalam Algoritma Genetika

    Gen Gen merupakan nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom.

    Kromosom / individu Kromosom merupakan gabungan dari gen-gen yang membentuk nilai tertentu dan menyatakan solusi yang mungkin dari suatu permasalahan.

    Populasi Populasi merupakan sekumpulan individu yang akan diproses bersama dalam satu satuan siklus evolusi.

    Fitness Fitness menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapatkan.

  • Bab II. Teori Penunjang 7 Seleksi

    Seleksi merupakan proses untuk mendapatkan calon induk yang baik.

    Crossover Crossover merupakan proses pertukaran atau kawin silang gen-gen dari dua induk tertentu.

    Mutasi Mutasi merupakan proses pergantian salah satu gen yang terpilih dengan nilai tertentu.

    Generasi Generasi merupakan urutan iterasi dimana beberapa kromosom bergabung.

    Offspring Offspring merupakan kromosom baru yang dihasilkan setelah melewati suatu generasi.

    2.1.3. Struktur umum Algoritma Genetika Dalam Algoritma Genetika, terdapat beberapa urutan proses yang perlu dilakukan diantaranya seperti yang terlihat pada gambar di bawah ini :

    Gambar 2.1 Struktur Umum Algoritma Genetika

  • Bab II. Teori Penunjang 8 Untuk menyelesaikan suatu permasalahan menggunakan Algoritma Genetika, perlu diketahui beberapa macam encoding guna menentukan operator crossover dan mutasi yang akan digunakan. Encoding tersebut tergantung pada permasalahan apa yang diangkat. Beberapa macam encoding menurut Marek Obitko akan dijelaskan di bawah ini :

    1. Binary Encoding Encoding jenis ini sering digunakan. Kromosom dari binary encoding ini berupa kumpulan dari nilai biner 0 dan 1. Contohnya:

    Chromosome1 1101100100110110

    Chromosome2 1101011000011110

    Dalam Binary Encoding memungkinkan didapatkan kromosom dengan nilai allele yang kecil, tetapi kekurangannya tidak dapat digunakan untuk beberapa permasalahan dan terkadang diperlukan adanya koreksi setelah proses crossover dan mutasi. Salah satu permasalahan yang menggunakan encoding adalah menghitung nilai maksimal dari suatu fungsi.

    2. Permutation Encoding Kromosom dari permutation encoding ini berupa kumpulan dari nilai integer yang mewakili suatu posisi dalam sebuah urutan. Biasanya digunakan pada permasalahan TSP (Travelling Salesman Problem). Contohnya:

    Chromosome 1 1 4 7 9 6 3 5 0 2 8 Chromosome 2 9 3 2 5 8 1 6 0 4 7

    3. Value Encoding Kromosom dari value encoding berupa kumpulan dari suatu nilai, yang bisa berupa macam-macam nilai sesuai dengan permasalahan yang dihadapi, seperti bilangan real, char atau objek yang lain. Encoding ini merupakan pilihan yang bagus untuk beberapa permasalahan khusus, biasanya diperlukan metode khusus untuk memproses crossover dan mutasinya sesuai dengan permasalahan yang dihadapi. Contohnya:

    Chromosome 1 A B E D B C A E D D Chromosome 2 N W W N E S S W N N

  • Bab II. Teori Penunjang 9 4. Tree Encoding

    Tree Encoding biasanya digunakan pada genetic programming. Kromosom yang digunakan berupa sebuah tree dari beberapa objek, seperti fungsi atau command pada genetic programming.

    Penjelasan lebih lanjut dari struktur umum Algoritma Genetika pada gambar 2.1 di atas adalah sebagai berikut : Pendefinisian Individu

    Pendefinisian individu merupakan proses pertama yang harus dilakukan dalam Algoritma Genetika yang menyatakan salah satu solusi yang mungkin dari suatu permasalahan yang diangkat. Pendefinisian individu atau yang biasa disebut juga merepresentasikan kromosom yang akan diproses nanti, dilakukan dengan mendefinisikan jumlah dan tipe dari gen yang digunakan dan tentunya dapat mewakili solusi permasalahan yang diangkat.

    Membangkitkan Populasi Awal Proses ini dilakukan dengan membangkitkan populasi secara acak, dimana populasi tersebut berisi beberapa kromosom yang telah didefinisikan sebelumnya. Dalam proses ini perlu diperhatikan syarat-syarat yang harus dipenuhi untuk menunjukkan suatu solusi dari permasalahan dan jumlah kromosom yang digunakan dalam satu populasi. Jika kromosom yang digunakan terlalu sedikit, maka individu yang dapat digunakan untuk proses crossover dan mutasi akan sangat

  • Bab II. Teori Penunjang 10 terbatas, sehingga menyia-nyiakan proses yang ada. Tetapi jika jumlah kromosom yang digunakan terlalu banyak, akan memperlambat proses algoritma genetika yang dilakukan. Jumlah kromosom yang dianjurkan lebih besar dari jumlah gen yang ada dalam satu kromosom, tetapi juga harus disesuaikan dengan permasalahan, apabila jumlah gennya terlalu banyak, tidak juga dianjurkan seperti itu.

    Proses Seleksi Operasi seleksi dilakukan dengan memperhatikan fitness dari tiap individu, manakah yang dapat dipergunakan untuk generasi selanjutnya. Seleksi ini digunakan untuk mendapatkan calon induk yang baik, semakin tinggi nilai fitnessnya maka semakin besar juga kemungkinan individu tersebut terpilih. Terdapat beberapa macam cara seleksi untuk mendapatkan calon induk yang baik, diantaranya adalah seleksi roulette wheel, steady state, tournament dan rank. Proses seleksi yang biasa digunakan adalah mesin roulette. Beberapa penjelasan tentang keempat metode seleksi di atas adalah sebagai berikut : 1. Roulette Wheel

    Calon induk yang akan dipilih berdasarkan nilai fitness yang dimilikinya, semakin baik individu tersebut yang ditunjukkan dengan semakin besar nilai fitnessnya akan mendapatkan kemungkinan yang lebih besar untuk terpilih sebagai induk. Misalkan saja roulette wheel merupakan tempat untuk menampung seluruh kromosom dari tiap populasi, maka besarnya tempat dari roulette wheel tersebut menunjukkan seberapa besar nilai fitness yang dimiliki oleh suatu kromosom, semakin besar nilai fitness tersebut, maka semakin besar pula tempat yang tersedia. Ilustrasinya dapat digambarkan sebagai berikut :

    Gambar 2.2 Ilustrasi seleksi dengan Roulette Wheel

  • Bab II. Teori Penunjang 11 2. Steady State

    Metode ini tidak banyak digunakan dalam proses seleksi karena dilakukan dengan mempertahankan individu yang terbaik. Pada setiap generasi, akan dipilih beberapa kromosom dengan nilai fitnessnya yang terbaik sebagai induk, sedangkan kromosom kromosom yang memiliki nilai fitness terburuk akan digantikan dengan offspring yang baru. Sehingga pada generasi selanjutnya akan terdapat beberapa populasi yang bertahan.

    3. Tournament Dalam metode seleksi tournament sejumlah n individu dipilih secara random dan kemudian menentukan fitnessnya. Kebanyakan metode seleksi ini digunakan pada binary , dimana hanya dua individu yang dipilih.

    4. Rank Seleksi ini memperbaiki proses seleksi yang sebelumnya yaitu roulette wheel karena pada seleksi tersebut kemungkinan salah satu kromosom mempunyai nilai fitness yang mendominasi hingga 90% bisa terjadi, sehingga nilai fitness yang lain akan mempunyai kemungkinan yang sangat kecil sekali untuk terpilih. Sehingga dalam seleksi rank, dilakuka perumpamaan sesuai dengan nilai fitnessnya, nilai fitness terkecil diberi nilai 1, yang terkecil kedua diberi nilai 2, dan begitu seterusnya sampai yang terbagus diberi nilai N (jumlah kromosom dalam populasi). Nilai tersebut yang akan diambil sebagai prosentasi tepat yang tersedia. Ilustrasi dapat dilihat seperti pada gambar berikut :

    Gambar 2.3 Ilustrasi Metode Rank Selection ( situasi sebelum ranking )

  • Bab II. Teori Penunjang 12

    Gambar 2.4 Ilustrasi Metode Rank Selection ( situasi sesudah ranking )

    Proses Crossover Crossover 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, menurut Marek Obitko [8] sesuai dengan encodingnya yang dijelaskan sebagai berikut:

    1. Binary Encoding Crossover Satu Titik Memilih satu titik tertentu, selanjutnya nilai biner sampai titik crossovernya dari induk pertama digunakn dan sisanya dilanjutkan dengan nilai biner dari induk kedua. Contoh :

    11001011 + 11011111 = 11001111

    Crossover Dua Titik Memilih dua titik tertentu, lalu nilai biner sampai titik crossover pertama pada induk pertama digunakan, dilanjutkan dengan nilai biner dari titik pertama sampai titik kedua dari induk kedua, kemudian sisanya melanjutkan nilai biner dari titik kedua pada induk pertama lagi. Contoh :

    11001011 + 11011111 = 11011111

  • Bab II. Teori Penunjang 13 Crossover Uniform Nilai biner yang digunakan dipilih secara random dari kedua induk. Contoh :

    11001011 + 11011101 = 11011111

    Crossover Aritmatik Suatu operasi aritmetika digunakan untuk menghasilkan offspring yang baru.

    Contoh :

    11001011 + 11011111 = 11001001 (AND)

    2. Permutation Encoding

    Memilih satu titik tertentu, nilai permutasi 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 )

    Beberapa metode operator crossover diciptakan untuk representasi permutasi, seperti :

    Partial-Mapped Crossover (PMX) PMX diciptakan oleh Goldberg dan Lingle. PMX

    merupakan rumusan modifikasi dari pindah silang dua-poin. Hal yang penting dari PMX adalah pindah silang 2-poin ditambah dengan beberapa prosedur tambahan. Langkah-langkahnya sebagai berikut : 1. Menentukan 2 posisi pada kromosom dengan

    aturan acak. Substring yang berada dalam 2 posisi ini dinamakan daerah pemetaan.

    2. Menukar 2 substring antar induk untuk menghasilkan proto-child.

    3. Menentukan hubungan pemetaan di antara dua daerah pemetaan.

    4. Menentukan kromosom keturunan mengacu pada hubungan pemetaan.

  • Bab II. Teori Penunjang 14 Order Crossover (OX) Order Crossover (OX) diciptakan oleh Davis. Metode ini merupakan variasi dari PMX dengan prosedur tambahan. OX bekerja sebagai berikut: 1. Memilih substring dari sebuah induk secara acak. 2. Membangkitkan sebuah proto-child dengan

    mengkosongkan tempat substring induk 2 pada induk 1.

    3. SHR allele dari substring pada tempat yang bersesuaian.

    4. Menukar substring antara 2 induk. Cycle Crossover (CX) Cycle Crossover (CX) diciptakan oleh Oliver, Smith dan Holland. Metode ini mengkopi gen-gen dari satu induk dan memilih gen-gen yang lain dari induk yang lain, dengan mengingat pola cycle. Cara kerja CX adalah sebagai berikut : 1. Menemukan cycle yang didefinisikan dari relasi

    posisi gen-gen antara induk 2. Menyalin gen-gen dalam cycle pada proto-child

    dengan relasi posisi dari sebuah induk 3. Menentukan gen-gen diingat yang berasal dari

    induk lain 4. Isi keturunan dengan gen-gen yang diingat tadi.

    3. Value Encoding Semua metode crossover pada binary crossover bisa digunakan.

    4. Tree Encoding Memilih satu titik tertentu dari tiap induk, dan menggabungkan tree dibawah titik pada induk pertama dan tree di bawah titik pada induk kedua.

  • Bab II. Teori Penunjang 15 Contoh :

    Gambar 2.5 Contoh Tree Encoding pada Crossover Proses Mutasi

    Mutasi juga merupakan salah satu operator penting dalam algoritma genetika selain crossover. Metode dan tipe mutasi yang dilakukan juga tergantung pada encoding dan permasalahan yang diangkat. Berdasarkan encodingnya, menurut Marek Obitko, terdapat beberapa macam, diantaranya adalah sebagai berikut :

    1. Binary Encoding

    Bit inversion Melakukan inversi pada bit yang terpilih, 0 menjadi 1 dan sebaliknya, 1 menjadi 0. Contoh :

    11001001 => 10001001 2. Permutation Encoding

    Order changing Memilih dua nilai dari gen dan menukarnya.

    Contoh :

    ( 1 2 3 4 5 8 9 7 ) => ( 1 8 3 4 5 6 2 9 7 ) Beberapa operator mutasi telah diciptakan untuk representasi permutasi, seperti metode inversion, insertion, displacement, dan reciprocal exchange mutation.

  • Bab II. Teori Penunjang 16 Inversion Mutation Inversion mutation memilih dua posisi dalam sebuah kromosom dengan cara acak dan kemudian menginversikan substring di antara dua posisi tersebut. Insertion Mutation Insertion Mutation memilih sebuah gen dengan cara acak dan memasukkan ke dalam kromosom dengan cara acak pula. Displacement Mutation Displacement Mutation memilih sebuah sub/sekelompok gen dengan cara acak kemudian memasukkan ke dalam kromosom dengan cara acak. Reciprocal Exchange Mutation (REM) Reciprocal Exchange Mutation memilih dua posisi secara acak, kemudian menukar dua gen dalam posisi tersebut.

    3. Value Encoding Menentukan sebuah nilai kecil yang akan ditambahkan atau dikurangkan pada salah satu gen dalam kromosom.

    Contoh : ( 1.29 5.68 2.86 4.11 5.55 ) => ( 1.29 5.68 2.73 4.22

    5.55 ) 4. Tree Encoding

    Node yang terpilih akan diubah.

    Karena proses mutasi juga merupakan salah satu operator dasar dalam algoritma genetika, sehingga sama dengan crossover, mutasi juga memerlukan probabilitas dengan proses yang sama seperti pada probabilitas crossover. Individu dengan nilai probabilitas yang lebih kecil dari probabilitas yang telah ditentukan yang akan melewati proses mutasi. Nilai probabilitas mutasi ini menunjukkan seberapa sering gen tertentu dari kromosom yang telah diproses dengan crossover akan melewati mutasi. Jika tidak ada proses mutasi, maka offspring yang dihasilkan akan sama dengan hasil individu setelah proses crossover, tanpa ada perubahan sedikitpun. Proses mutasi ini biasanya dilakukan untuk mencgah terjadinya loka l optimum, proses mutasi ini sebaiknya tidak terlalu sering dilakukan karena proses algoritma genetika akan cepat berubah menjadi random search. Pada probabilitas mutasi, jika terlalu rendah akan mengakibatkan banyak gen yang berguna tidak sempat untuk dimanfaatkan dan jika terlalu besar akan menyebabkan offspring kehilangan sifat dari induknya dan tidak akan dapat memanfaatkan lagi proses evolusi alamiah.

  • Bab II. Teori Penunjang 17 Offspring

    Offspring merupakan kromosom baru yang dihasilkan setelah melalui proses-proses di atas. Kemudian pada offspring tersebut dihitung fitnessnya apakah sudah optimal atau belum, jika sudah optimal berarti offspring tersebut merupakan solusi optimal, tetapi jika belum optimal maka akan diseleksi kembali, begitu seterusnya sampai terpenuhi kriteria berhenti [5]. Beberapa kriteria berhenti yang sering digunakan antara lain : 1. Berhenti pada generasi tertentu 2. Berhenti setelah dalam beberapa generasi berturut-turut

    didapatkan nilai fitness tertinggi tidak berubah 3. Berhenti bila dalam n generasi berikut tidak didapatkan nilai

    fitness yang lebih tinggi Proses Elitism

    Proses ini dilakukan untuk mempertahankan individu yang terbagus dari tiap generasi, karena setelah dilakukan proses crossover dan mutasi, kemungkinan untuk kehilangan kromosom yang terbaik sangat besar. Proses elitism ini dilakukan dengan menggantikan kromosom terburuk dari generasi berikutnya dengan kromosom terbaik dari generasi sebelumnya apabila kromosom yang baru tersebut tidak lebih buruk dari yang lama.

    2.2. PENJADWALAN

    Penjadwalan merupakan proses untuk menyusun suatu jadwal atau urutan proses yang diperlukan dalam sebuah persoalan. Persoalan penjadwalan biasanya berhubungan dengan penjadwalan kelas dalam sekolah atau perkuliahan dan juga dalam lingkup yang tidak jauh berbeda seperti penjadwalan pelajaran sekolah, penjadwalan ujian, atau bisa juga penjadwalan karyawan, baik dalam suatu perusahaan ataupun dalam rumah sakit. Dalam penjadwalan kuliah, akan dibahas tentang pembagian jadwal untuk tiap mahasiswa pada kuliah tertentu sekaligus dosen pengajarnya, dalam penjadwalan pelajaran sekolah akan dibahas tentang pembagian jadwal pelajaran untuk tiap-tiap kelas yang ada beserta guru pengajar pelajaran tersebut, dalam penjadwalan ujian akan dibahas pengaturan dosen yang menjaga ujian dan mahasiswa atau murid yang menempati ruang ujian yang ada, sedangkan pada penjadwalan karyawan, dilakukan pengaturan karyawan yang akan bekerja pada waktu tertentu di bagian tertentu.

  • Bab II. Teori Penunjang 18 Proses tersebut tentu saja dibuat berdasarkan permasalahan yang

    ada. Beberapa proses umum ynag perlu dilakukan untuk menyelesaikan suatu proses penjadwalan menurut Research Group Computer Science (BGU) adalah:

    1. Mendefinisikan atau membuat model dari permasalahan. Model yang dibuat mencakup proses apa saja yang akan dikerjakan dalam persoalan penjadwalan yang ada. Atau lebih jelasnya jadwal apa saja yang akan dibuat.

    2. Mendesign metode penyelesaian untuk permasalahan penjadwalan tersebut. Dari model yang telah ada, ditentukan metode yang akan digunakan untuk menyelesaikan permasalahan penjadwalan tersebut.

    3. Mencari bermacam-macam contoh permasalahan penjadwalan yang telah dibuat. Dalam proses ini dilakukan pencarian penyelesaian penjadwalan yang pernah digunakan agar dapat dipakai sebagai referensi dalam proses yang sedang dilakukan.

    Sedangkan pembahasan penjadwalan menurut Tomas Muller dan Roman Bartak sebagai berikut :

    1. Aktivitas yang dilakukan Maksudnya adalah bahwa penentuan dari permasalahan penjadwalan yang dibahas. Misalnya penjadwalan pelajaran di SMU.

    2. Sumber-sumber yang dipakai Sumber-sumber yang dipakai berarti hal-hal yang dapat digunakan untuk menyelesaikan permasalahan penjadwalan (aktifitas) yang telah ditentukan atau bisa juga dikatakan sebagai data yang digunakan. Misalnya pada penjadwalan pelajaran SMU diperlukan data pelajaran, guru, kelas dan sumber lain yang diperlukan.

    3. Syarat-syarat yang diperlukan Syarat disini adalah hal-hal yang perlu diperhatikan ketika menyusun suatu penjadwalan. Misalnya saja dalam penjadwalan pelajaran SMU terdapat syarat bahwa seorang guru tidak boleh mengajar dua kelas yang berbeda dalam waktu / jam pelajaran yang sama.

  • Bab II. Teori Penunjang 19 4. Hubungan Timbal Balik

    Yang dimaksud hubungan timbal balik disini adalah bagaimana jadwal yang telah dibuat tersebut dapat sesuai dengan yang diinginkan oleh user.

    2.3. SEKILAS TENTANG JAVA Java.lang dan java.utils merupakan dua package yang terdapat

    di dalam java. Package java.lang memuat sejumlah class penting, termasuk class-class wrapper dan package ini bisa langsung diimport secara otomatis tanpa mendeklarasikannya. Sedangkan yang tidak kalah pentingnya adalah package java.util. Package ini memuat class-class Vector dan Hashtable.

    2.3.1 Vector Class Vector merupakan class yang dirancang dapat menangani

    penambahan dan pengurangan elemen array serta menggunakan memori seefisien mungkin. Dibandingkan dengan Class array, penggunaan Class ini mempunyai keuntungan jika :

    1. Berhubungan dengan variable dari sekumpulan obyek, sehingga obyek tersebut dapat ditambah atau dikurangi jumlahnya.

    2. Seluruh element array berupa obyek atau dapat direpresentasikan sebagai obyek. Untuk mengkonversi data tipe sederhana ke obyek menggunakan class wrapper di java.lang.

    3. Obyek berada dalam array dan posisinya pada array.

    Satu pertimbangan penting sebelum menggunakan vector adalah bahwa Vector tidak dapat menyimpan tipe data sederhana secara langsung. Vector hanya boleh menyimpan Objek. Sebagai konsekuensinya, digunakan class wrapper ketika akan menyimpan integer dan harga numeric lainnya ke dalam vector array.

    Menggunakan Vector Vector dialokasikan dengan cara yang sama dengan Objek, yakni menggunakan operator new. Saat sebuah vector dibuat, di dalamnya dibuat array private internal yang akan memuat elemen-elemen yang akan ditambahkan kepadanya. Apabila penambahan elemen tersebut melebihi ukuran array, maka array tersebut akan dialokasikan ulang. Class Vector tidak akan

  • Bab II. Teori Penunjang 20 memperlihatkan rincian proses ini. Namun, jika bermaksud mengoptimasi kode lebih jauh lagi, dapat dilihat pilihan konstruktor dan Method yang ada di referensi API. Berikut ini contoh dasar pengalokasian Objek Vector :

    VectortheVector=newVector();

    Pada contoh di atas, digunakan konstruktor default, yang akan bekerja di hamper semua kasus.

    Menambahkan Elemen ke Vector Begitu vector dibuat, dapat ditambahkan objek-Objek ke dalamnya menggunakan Method addElement(). Method addElement() didefinisikan sebagai berikut :

    publicfinalsynchronizedvoidaddElement(Objectobj)

    Method menggunakan Objek sebagai parameternya dan menambahkannya ke akhir vector. Berikut ini contoh penambahan tiga Objek Integer ke sebuah vector

    for(inti=0;i

  • Bab II. Teori Penunjang 21

    current_name=joko;

    nameVector.addElement(current_name);

    Menghapus Elemen Vector Objek dapat dihapus dari dalam vector menggunakan Method-method remove Element(). Remove ElementAt(), atau remove ElementAll(). Method removeElement() menghapus Object yang ditentukan dari Objek Vector. Method ini didefinisikan sebagai berikut :

    public final synchronized void Boolean removeElement(Objectobj)

    Apabila terdapat lebih dari satu objek yang sama di dalam array vector, removeElement() akan menghapus elemen yang pertama. Berikut ini contoh penggunaan remove Element() untuk menghapus Objek newName dari contoh sebelum ini:

    nameVector.removeElement(newName);

    Mengambil dan Menset Elemen Vector Agar dapat menggunakan elemen vector sebagai array, class Vector menyediakan dua Method dalam mengambil dan menset elemen vector dengan menentukan posisi elemen atau indeks. Method-method ini adalah elemenAt() dan setElementAt().

    Definisi kedua Method tersebut adalah sebagai berikut:

    publicfinalsynchronizedObjectElementAt(intindex)

    publicfinalsynchronizedvoidsetElement(Objectobj,intindex)

    Method elementAt() menggunakan posisi sebagai parameternya dan mengembalikannya referensi Objek yang dimuat oleh elemen vector. Method setElementAt() menyimpan referensi Objek yang disampaikan melalui parameter pertaman7a ke dalam elemen vector yang dinyatakan oleh parameter kedua. Elemen vector diberi nomor mulai 0 sampai jumlah objek-1.

    System.out.println(elementAt(0));

  • Bab II. Teori Penunjang 22

    Mencari Objek di Vector Salah satu keindahan class Vector adalah bahwa class ini memiliki sejumlah Method yang memudahkan dalam mencari apakah suatu Object ada di dalam vector dan menentukan letaknya. Sebagian besar Method ini akan dijelaskan disini.

    publicfinalBooleancontains(Objectelem)

    Method contains memeriksa apakah vector memuatObject yang ditanyakan atau tidak. Method ini akan mengembalikan harga true jika objek tersebut ada di dalam vector dan false jika sebaliknya.

    publicfinalintindexOf(Objectelem)

    Method indexOf() akan menelusuri setiap elemen vector dan mengembalikan nomor elemen dari Objek yang ditanyakan apabila Objek tersebut ada di dalam vector. Apabila Objek yang ditanya tidak ditemukan, Method ini akan mengembalikan harga 1.

    publicfinalsynchronizedintindexof(Objectelem,intindex)

  • 23

    BAB III PERENCANAAN DAN PEMBUATAN

    SISTEM

    3.1 Perencanaan Sistem Berdasarkan observasi yang telah dilakukan dengan bagian

    kesiswaan di SMU Negeri I Mojoagung, untuk menyusun sistem penjadwalan Pelajaran diperlukan suatu proses yang dapat kita lihat pada gambar 3.1.

    Gambar 3.1 Proses Pembuatan Sistem

    Bagian Kesiswaan bertanggung jawab dalam menyusun Jadwal

    Pelajaran yang harus disesuaikan dengan beberapa persyaratan. Antara lain: 1. Seorang guru tidak boleh mengajar dua kelas yang berbeda dalam

    satu waktu (dalam jam pelajaran yang sama). 2. Masing-masing kelas hanya boleh mengikuti pelajaran tertentu saja

    Proyek akhir ini dimaksudkan untuk membuat sistem

    komputasi dengan hanya memasukkan data yang diperlukan dalam membuat penjadwalan Pelajaran SMU tersebut dan nantinya akan menghasilkan hasil yang sama dengan proses diatas. Dalam hal ini proses yang dikerjakan adalah pembuatan jadwal Pelajaran SMU dengan data Kelas, Pelajaran dan Guru sebagai input yang telah tersusun. Konfigurasi sistem secara keseluruhan dapat dilihat pada gambar 3.2.

    BAGIAN KESISWAAN

    JADWAL PELAJARAN

    GURU PELAJARAN KELAS

  • Bab III. Perencanaan Dan Pembuatan Sistem 24

    Gambar 3.2 Konfigurasi Sistem Secara Keseluruhan

    Dari sistem tersebut, nantinya data yang dipakai adalah data pelajaran, guru dan kelas yang ada yang nanti akan dijelaskan lebih lengkap di bawah. Kemudian data tersebut akan disimpan dalam sebuah database agar dapat diakses dan diolah melalui program yang menggunakan metode Algoritma Genetika sehingga nantinya akan menghasilkan output sesuai dengan yang diinginkan. Hasil dari proses tersebut akan diserahkan kembali ke bagian Kesiswaan agar selanjutnya dapat digunakan. 3.1.1. Blok Diagram Sistem

    Dari konfigurasi sistem tersebut di atas, proses Algoritma Genetika diperlukan dalam penyusunan Jadwal Pelajaran SMU Negeri I Mojoagung. Dimana dalam proses tersebut dibutuhkan data yang meliputi jumlah kelas, pelajaran dan guru pengajar.

    Dalam proses penyusunan Jadwal Pelajaran SMU akan dilakukan perhitungan terhadap kelas yang ada dan jumlah pelajaran yang diterima oleh masing-masing kelas beserta guru pengajarnya. Penjelasan diatas dapat dilihat pada gambar 3.3.

    INPUT DATA PELAJARAN DATABASE

    ALGORITMA GENETIKA

    OUTPUT JADWAL PELAJARAN

    BAGIAN KESISWAAN

  • Bab III. Perencanaan Dan Pembuatan Sistem 25

    KELAS MENGHITUNG KELASMENYESUAIKAN

    DATA PELAJARAN

    BAGIAN KESISWAAN

    Jadwal Pelajaran

    Gambar 3.3 Blok Diagram Sistem

    Dari proses yang telah dijelaskan di atas, dalam menyusun

    Jadwal Pelajaran SMU haruslah sesuai dengan persyaratan yang telah disebutkan sebelumnya. Yang nantinya persyaratan tersebut dapat dijadikan sebagai fungsi fitness dari algoritma genetika yang akan diproses. 3.1.2. Entity Relationship Diagram (ERD)

    Dari blok diagram sistem yang telah dibuat, berikutnya akan disusun ERD yang sesuai dengan sistem yang akan dibuat. Dalam ERD tersebut terdapat 2 entitas dengan masing-masing atribut seperti pada gambar 3.4.

    Gambar 3.4 ER Diagram

    Dari ER Diagram yang telah dibuat diatas, akan didapatkan 3

    tabel dengan 2 tabel murni yang mewakili tiap entitas dan 1 tabel yang

  • Bab III. Perencanaan Dan Pembuatan Sistem 26 menghubungkan relasi antara tabel Kelas dan pelajaran. Rincian tentang nama field dan tipe data yang akan digunakan dapat dilihat pada tabel 3.1 sampai tabel 3.3 .

    1. Kelas

    Tabel 3.1 Properties Tabel Kelas Nama Field Tipe Data

    Nama Tingkat

    Number (Integer) Primary Key Text (25) Primary Key

    2. Pelajaran

    Tabel 3.2 Properties Tabel Pelajaran Nama Field Tipe Data kode_pelajaran mata_pelajaran guru

    Number (Integer) Primary Key Text (50) Text (50)

    3. Pelajaran_Kelas

    Tabel 3.3 Properties Tabel Pelajaran_Kelas Nama Field Tipe Data Kelas tingkat kpelajaran jam

    Number (Ineteger) Primary Key Text (25) Primary Key Number (Integer) Primary Key Number (Integer)

    Pada tabel Pelajaran, setiap mata pelajaran mempunyai kode yang unik sesuai dengan guru pengajarnya. Setiap mata pelajaran bisa mempunyai lebih dari satu kode jika dibawakan lebih dari satu pengajar. Untuk lebih jelasnya dapat dilihat pada gambar 3.6. 3.2 Pembuatan Sistem Adapun untuk pembuatan sistem yang telah dilakukan melibatkan tiga elemen yaitu database, GUI, dan program. Database yang akan dibuat menggunakan MS.Access 2000 dan bahasa pemrograman Java untuk program yang akan dibuat. Untuk lebih jelasnya akan dijelaskan di bawah ini.

  • Bab III. Perencanaan Dan Pembuatan Sistem 27

    3.2.1 Database Sesuai dengan ERD yang telah dibuat, database yang akan dibuat terdiri dari 3 tabel ( Kelas, pelajaran dan Pelajaran_Kelas ), relationship antar tabel dan satu query yang nantinya dibutuhkan untuk mencari guru yang mengajar mata pelajaran tertentu. Database tersebut nantinya akan diberi nama data. 3.2.1.1 Tabel Sesuai dengan ERD yang telah dibuat, terdapat 2 tabel yaitu tabel Kelas, pelajaran dan 1 tabel tambahan yaitu tabel Pelajaran_Kelas untuk menghubungkan tabel Kelas dan tabel pelajaran.

    Gambar 3.5. Tabel Kelas

  • Bab III. Perencanaan Dan Pembuatan Sistem 28

    Gambar 3.6. Tabel pelajaran

  • Bab III. Perencanaan Dan Pembuatan Sistem 29

    Gambar 3.7. Tabel Pelajaran_Kelas

    3.2.1.2 Relationship Untuk menghubungkan tabel-tabel yang akan dibuat tersebut diperlukan adanya relationsip yang dapat dilihat pada gambar 3.5.

    KELAS MENGAMBIL PELAJARAN1 M M 1

    Gambar 3.8 Relationship dari database data

    Penjelasan dari relationship pada gambar 3.8 adalah sebagai berikut : 1. Setiap kelas bisa mengambil satu atau lebih mata pelajaran.

  • Bab III. Perencanaan Dan Pembuatan Sistem 30 2. Setiap mata pelajaran bisa diambil oleh satu kelas atau lebih. 3.2.2. Graphic User Interface ( GUI )

    Pada aplikasi ini hanya terdapat satu form sebagai halaman depan saja.

    3.2.2.1 Form Pada form sebagai halaman depan di bawah ini terdapat 2 sub menu yaitu :

    1. Menu Proses Pada menu proses terdapat dua submenu algoritma genetika yang meminta user untuk menginputkan parameter algoritma genetika dan Grafik Fitness yang menampilkan grafik dari fitness maksimum dari setiap generasi.

    2. Menu About Pada Menu About akan menampilkan keterangan dari Tugas Akhir itu sendiri.

    Gambar 3.9 Form halaman depan

  • Bab III. Perencanaan Dan Pembuatan Sistem 31 3.2.2.2 Menu Proses

    Gambar 3.10 Menu Proses

    Terdapat dua sub menu dalam menu Proses yaitu algoritma genetika dan grafik fitness. Pada sub menu algoritma genetika user diminta untuk menginputkan 4 nilai parameter seperti yang tampak pada gambar 3.11, antara lain : 1. Input Jumlah Populasi 2. Input Jumlah Generasi 3. Input Probabilitas Crossover 4. Input Probabilitas Mutasi Pada sub menu grafik fitness akan menampilkan grafik fitness maksimum dari tiap generasi.

  • Bab III. Perencanaan Dan Pembuatan Sistem 32

    Gambar 3.11 Form masukan

    3.2.2.3 Menu About

    Gambar 3.12 Form About

  • Bab III. Perencanaan Dan Pembuatan Sistem 33 Pada saat menu item About di klik maka akan ditampilkan form keterangan dari Tugas Akhir tersebut, seperti yang tampil pada gambar di bawah ini.

    Gambar 3.13 Form Keterangan

    3.2.3. Koneksi Database Dalam proyek akhir ini database yang digunakan menggunakan MS-Access 2000. Untuk mengakses database MS-Access, dalam hal ini JDBC memerlukan Driver yang menjembatani Aplikasi dengan ODBC (Open Database Connectivy) yang ada di lingkungan Microsoft Windows.

    Untuk mengaktifkan hubungan antar aplikasi dan database, maka sebuah connection harus dibentuk dengan menggunakan JDBC Driver. Connection dibentuk melalui 1 class java.sql.DriverManager dan 2 interface, yaitu java.sql.Driver dan java.sql.Connection. Class untuk JDBC diakses melalui java.sql.* . Connectioncon;Stringdatabase=jdbc:odbc:data;Stringusername=;Stringpassword=;try{

    Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);

  • Bab III. Perencanaan Dan Pembuatan Sistem 34

    con=DriverManager.getConnection(database,,);}catch(ClassNotFoundExceptionex){ ex.printStackTrace(); System.exit(1);}catch(SQLExceptionex){ System.err.println(TidakberhasilkoneksidenganDatabase); System.exit(1);} Class.forName(nama_driver) Loading driver, artinya koneksi akan dibuat dengan menggunakan jalur dari driver tersebut. DriverManager.getConnection(url, username, passwd) Menghubungkan aplikasi dengan nama database yang akan diakses, dilengkapi dengan otentifikasi berupa nama user dan password. Hasil dari metoda getConnection() memberikan variable yang dapat digunakan untuk mengakses database melalui instruksi SQL. Connectioncon;......con=DriverManager.getConnection(dbname,username,password); Akses ke Driver dan DriverManager dapat menyebabkan Exception yang harus dikendalikan oleh program. Try{...

  • Bab III. Perencanaan Dan Pembuatan Sistem 35

    ...}catch(ClassNotFoundExceptionex){

    System.err.println(Drivererror);Ex.printStackTrace();System.exit(1);

    }catch(SQLExceptionex){

    System.err.println(Unabletoconnect);System.exit(1);

    } Sebelum dapat mengakses Database pada Windows, maka ODBC-Driver harus dipersiapkan lebih dahulu. Caranya : tekan Control Panel Performance and MaintenanceAdministrative ToolsData Source (ODBC)

    Gambar 3.14 Data Source (ODBC)

    3.2.4. Program Adapun implementasi dari Algoritma Genetika dalam program adalah :

  • Bab III. Perencanaan Dan Pembuatan Sistem 36 3.2.4.1. Individu / Kromosom Individu yang digunakan dalam proses pembuatan Jadwal Pelajaran terdiri dari 2904 ( 12C2 x 44 jumlah jam pelajaran) gen dengan setiap gen mewakili mata pelajaran tertentu dan guru yang mengajar yang dinyatakan dalam suatu kode dalam bentuk integer. Pendefinisian individu adalah sebagai berikut : publicclassSelectextendsJFrame{privateConnectioncon;privateStatementsmtn;privateResultSetrs;privateintindividu[][][]=newint[20][20][44];privateintinduk[][][]=newint[20][20][44];

    privateintanak[][][]=newint[20][20][44];Select()

    {smtn=null;rs=null; con=null;

    }publicvoiddbopen()

    {Stringdatabase=jdbc:odbc:data;Stringusername=;Stringpassword=;Stringkelas[]=newString[20];Stringtingkat[]=newString[20];inti=0;try{Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);con=DriverManager.getConnection(database,,);Vectorvector=newVector();Vectorvector1=newVector();Vectorvector2=newVector();

  • Bab III. Perencanaan Dan Pembuatan Sistem 37

    Vectorvector3=newVector();if(con==null){System.out.println(Koneksikedatabasegagal);}else{System.err.println(Koneksikedatabaseberhasil);}smtn=con.createStatement();StringSQL=SELECTKelas.*FROMKelas;rsKelas=smtn.executeQuery(SQL);while(rsKelas.next()){i=rsKelas.getRow();kelas[i1]=rsKelas.getString(Nama);tingkat[i1]=rsKelas.getString(Tingkat);}

    }catch(ClassNotFoundExceptionex){

    ex.printStackTrace(); System.exit(1);}catch(SQLExceptionex){System.err.println(TidakberhasilkoneksidenganDatabase);System.exit(1);}finally{try{if(rs==null){rs.close();}

  • Bab III. Perencanaan Dan Pembuatan Sistem 38

    if(smtn==null){smtn.close();}if(con==null){con.close();}

    }catch(SQLExceptionsqlexception){

    sqlexception.printStackTrace();}}} 3.2.4.2. Fitness Fitness dari Jadwal pelajaran SMU dilakukan dengan menghitung jumlah pelajaran dan guru yang mengajar dalam satu waktu di kelas yang berbeda atau kres (a). Terdapat tiga fungsi fitness yaitu fitness , fitnessInduk dan fitnessAnak. Dimana ketiganya mempunyai algoritma yang sama. Rumusnya adalah sebagai berikut :

    Fitness=1/(a+e)Keterangan : a= jumlah pelajaran yang mengalami kress e=bilangan kecil (0.00001)

    Algoritma yang digunakan untuk menghitung a adalah : 3. m 0; selama m < (populasi) kerjakan baris 2-9 4. n 0 ; selama n < (session) kerjakan baris 3-8 5. o1 0 ; selama o1 < jumlahKelas-1 kerjakan baris 4-7 6. o2 0 ; selama o2 < jumlahKelas+1 kerjakan baris 5 7. jika individu[m][o1][n] = individu[m][o2][n] maka

    fitness=fitness+1 8. o2 = o2 + 1 9. o1 = o1+1 10. n = n+1 11. m = m+1

  • Bab III. Perencanaan Dan Pembuatan Sistem 39

    12. a = fitness Keterangan: populasi = jumlah populasi sesuai parameter input session = jumlah jam pelajaran masing-masing kelas fitness = suatu variable yang akan bertambah satu jika terjadi mata

    pelajaran yang kres

    3.2.4.3. Proses Algoritma Genetika Adapun proses algoritma genetika yang dilakukan setelah mendefinisikan individu dan fitnessnya adalah membangkitkan populasi awal, menghitung nilai fitness tiap individu, melakukan seleksi, crossover, mutasi, dan elitism. Lebih jelasnya akan dijelaskan dibawah ini : 1. Membangkitkan Populasi Awal Dari pendefinisian individu yang telah dilakukan diatas,

    selanjutnya, proses Algoritma Genetika pertama yang dilakukan adalah membangkitkan N individu sesuai dengan jumlah individu (N) yang dimasukkan oleh user 2904 gen dalam bentuk integer dari Jadwal Pelajaran SMU yang dibangkitkan secara acak.

    Algoritma pembangkitan populasi awal untuk Jadwal Pelajaran adalah: 1. m 0, selama m < (populasi) kerjakan baris 2 - 8 2. i 0, selama i < (kelas) kerjakan baris 3 - 7 3. j 0, selama j < (session) kerjakan baris 4 - 6 4. n = Acak (jumlah record dari tabel Pelajaran_Kelas) 5. pelajaran ( m,i,j ) = baris ke-n dari tabel Pelajaran_kelas 6. j = j+1 7. i = i+1 8. m = m+1 Berikut merupakan coding untuk membangkitkan populasi awal pada jadwal pelajaran sesuai dengan algoritma di atas. for(intm=0;m

  • Bab III. Perencanaan Dan Pembuatan Sistem 40

    for(intj=0;j

  • Bab III. Perencanaan Dan Pembuatan Sistem 41

    Enumerationenumeration1=vector3.elements();while(enumeration.hasMoreElements()){Strings6=enumeration.nextElement().toString();Strings7=enumeration1.nextElement().toString();}booleanflag=false;intai[]=newint[44];intj1=0;for(intk1=0;k1

  • Bab III. Perencanaan Dan Pembuatan Sistem 42

    Strings8=enumeration2.nextElement().toString();Strings9=enumeration3.nextElement().toString();if(i2!=i1)continue;k2=Integer.parseInt(s9);i3=Integer.parseInt(s8);break;}for(inti4=0;i4

  • Bab III. Perencanaan Dan Pembuatan Sistem 43

    {System.out.print(individu[m][j][l2+7]);System.out.print();}System.out.println();System.out.print(Rabu|);System.out.print();for(intj3=0;j3

  • Bab III. Perencanaan Dan Pembuatan Sistem 44

    System.out.print();for(intj4=0;j4

  • Bab III. Perencanaan Dan Pembuatan Sistem 45

    }}}System.out.print(JumlahkresIndividuke);System.out.print(m+1);System.out.print(=);System.out.println(fit);fitnes[m]=(1/(fit+e));System.out.print(FitnessIndividuke);System.out.print(m+1);System.out.print(=);System.out.println(fitnes[m]);if(fitnes[m]>maks){maks=fitnes[m];index=m;}}System.out.println(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);System.out.print(FitnesMaksimum:);System.out.println(maks);System.out.print(Indexke);System.out.println(index);returnfitnes;}

    3. Seleksi Proses ini menyeleksi N individu yang bisa dijadikan induk untuk

    proses selanjutnya dengan metode roulette wheel yaitu membangkitkan bilangan random sebanyak jumlah fitness dan memilih individu tersebut sebagai induk berdasarkan nilai fitness yang terpilih. Jadi, proses yang dilakukan adalah :

  • Bab III. Perencanaan Dan Pembuatan Sistem 46 Menghitung total fitness dari populasi yang telah dibangkitkan Memberikan nilai 1 untuk angka 1 sampai dengan nilai fitness

    dari individu pertama, nilai 2 untuk angka dari nilai fitness individu pertama sampai nilai fitness individu kedua dan seterusnya hingga individu terakhir.

    Membangkitkan bilangan acak dari 1 sampai dengan total fitness dan menggunakan individu yang mempunyai nilai fitness sama dengan hasil bilangan acak tersebut sebagai induk.

    Algoritma dari proses seleksi yang digunakan adalah : 1. JumFitnes = jumlahFitness( generasi ke a ) 2. o = 0 3. m 0, selama m< (populasi) kerjakan baris 4 - 8 4. prosen = 100 * (fitness[m] / JumFitnes) 5. n 0, selama n

  • Bab III. Perencanaan Dan Pembuatan Sistem 47

    intprosen;intpilih;fitnes=fitness();for(intm=0;m

  • Bab III. Perencanaan Dan Pembuatan Sistem 48

    2. r2 = Acak (jumlah jam pelajaran) 3. dummy = anak (m, i, j) 4. anak (m, i, j+r1) = anak (m, i, (r1+(r2 - j))) 5. anak (m, i, (r1+(r2 - j))) = dummy Berikut merupakan coding crossover sesuai dengan algoritma di atas : publicvoidCross(){doubleprobCO=0.9;intdummy;intr1,r2;for(intm=0;m

  • Bab III. Perencanaan Dan Pembuatan Sistem 49

    Gambar 3.16. Ilustrasi Mutasi

    Algoritma proses mutasi untuk Jadwal Pelajaran adalah :

    1. m 0, selama m < (populasi) kerjakan baris 2 - 11 2. i 0, selama i < (kelas) kerjakan baris 3 - 10 3. p = Acak ( 0 sampai 1) 4. jika p < probMut maka : 5. r1 = Acak(jumlah jam pelajaran) 6. r2 = Acak(jumlah jam pelajaran) 7. a = anak (m, i, r1 ) 8. anak(m, i, r1 ) = anak (m, i, r2 ) 9. anak(m, i, r2 ) = a 10. i = i + 1 11. m = m + 1 Berikut merupakan coding dari algoritma di atas : publicvoidMutation(){doubleprobMut=0.1;intr1,r2;inta;for(intm=0;m

  • Bab III. Perencanaan Dan Pembuatan Sistem 50

    }}}

    6. Elitism

    Proses elitism ini dilakukan untuk mempertahankan individu terbaik dari setiap generasi. Proses yang dilakukan adalah menggantikan individu terburuk dari generasi yang baru dengan individu terbaik dari generasi sebelumnya, dengan syarat bahwa individu yang menggantikan tersebut lebih baik dari yang digantikan . Algoritma dari proses elitism untuk Jadwal Pelajaran adalah : 1. fitnessmin = fitnessmin (generasi ke- i) 2. fitnessmaks = fitnessmaks (generasi ke- i + 1) 3. m 0 , selama m < (populasi) , kerjakan baris 4 - 5 4. Jika fitnesInduk(m) < fitnessmin maka fitnessmin =

    fitnesInduk(m) 5. m = m+ 1 6. m 0 , selama m < (populasi), kerjakan baris 7 - 8 7. Jika fitnesAnak(m) > fitnessmaks maka fitnessmaks =

    fitnesAnak(m) 8. m = m+1 9. i 0, selama i < jumlah kelas , kerjakan baris 10 - 13 10. j 0, selama j < jumlah jam pelajaran, kerjakan baris 11 -12 11. induk(min, i, j) = anak (maks, i, j ) 12. j = j + 1 13. i = i + 1 Berikut coding berdasarkan algoritma elitism di atas : publicvoidElitism(){intfitnessmin=0;intfitnessmaks=0;intmin=1,maks=1;intfitnesAnak[]=newint[100];intfitnesInduk[]=newint[100];fitnesInduk=fitnessInduk();for(intm=0;m

  • Bab III. Perencanaan Dan Pembuatan Sistem 51

    fitnessmin=fitnesInduk[m];min=m;}}fitnesAnak=fitnessAnak();for(intm=0;mfitnessmaks){fitnessmaks=fitnesAnak[m];maks=m;}}//menggantianakyangmemilikifitnesterkecildenganindividuawalyangmemilikifitnesterbesarfor(inti=0;i

  • Bab III. Perencanaan Dan Pembuatan Sistem 52

    ----------Halaman ini sengaja dikosongkan------------

  • 53

    BAB IV PENGUJIAN PROGRAM DAN

    ANALISA

    4.1 Hasil Running Program Tampilan yang dihasilkan dari program dalam proyek akhir ini berupa form seperti yang telah dijabarkan pada bab sebelumnya. Tampilan pada saat pertama kali program dijalankan adalah Form Halaman Depan ang dapat dilihat pada gambar 4.1. Form ini hanya berisi dua menu yaitu Proses Algoritma Genetika dan About tentang keterangan dari program tersebut.

    Gambar 4.1 Form Halaman Depan Dua menu utama tersebut akan dijelaskan lebih lanjut di bawah ini :

  • Bab IV. Pengujian Program Dan Analisa 54

    4.1.1 Menu Proses Pada menu Proses ini akan melakukan proses Algoritma Genetika pada Penyusunan Jadwal Pelajaran di SMU. Pada saat menu Proses diklik maka akan muncul kotak dialog yang meminta user untuk memilih dua sub menu, algoritma genetika dan grafik fitness. Pada sub menu algoritma genetika, user diminta untuk memberikan inputan pada empat parameter.

    Gambar 4.2 Menu Proses

    Empat parameter tersebut antara lain : 1. Menginputkan banyaknya jumlah populasi yang ingin dibangkitkan

    dari suatu individu. 2. Menginputkan banyaknya jumlah generasi yang diinginkan oleh

    user sehingga nantinya akan dihasilkan Jadwal Pelajaran SMU. 3. Menginputkan besarnya probabilitas crossover untuk menentukan

    terjadinya crossover pada suatu individu. 4. Menginputkan besarnya probabilitas mutasi yang menentukan

    sering tidaknya terjadi suatu mutasi pada suatu individu.

  • Bab IV. Pengujian Program Dan Analisa 55

    Gambar 4.3 Menentukan inputan

    Setelah memberikan masukan seperti di atas, ketika tombol OK di klik maka akan dilakukan serangkaian proses Algoritma Genetika pada penyusunan jadwal pelajaran SMU yang terdiri dari : 1. Membangkitkan populasi awal yang dilakukan secara acak.

    Hasilnya adalah sebagai berikut :

  • Bab IV. Pengujian Program Dan Analisa 56

  • Bab IV. Pengujian Program Dan Analisa 57

  • Bab IV. Pengujian Program Dan Analisa 58

    Gambar 4.4 Pembangkitan populasi awal

  • Bab IV. Pengujian Program Dan Analisa 59 Yang diacak adalah kode mata pelajaran yang diambil dari tabel Pelajaran_Kelas untuk tiap-tiap kelas ( kelas 1 , 2 dan 3). Dihasilkan sebanyak 10 populasi individu pada setiap generasi. Gambar di atas merupakan contoh dari satu generasi.

    2. Menghitung Nilai Fitness pada tiap-tiap individu Tabel 4.1 Nilai Fitness

    Generasi Nilai Fitness Maksimum 1 0.0018622 2 0.00186567 3 0.00187617 4 0.0018797 5 0.0018797 6 0.00190476 7 0.00190476 8 0.00190114 9 0.00192308

    10 0.00193798

    Grafik Fitness

    0.001820.001840.001860.001880.0019

    0.001920.001940.00196

    1 2 3 4 5 6 7 8 9 10

    Generasi

    Fitn

    ess

    Mak

    sim

    um

    Gambar 4.5. Grafik Fitness

  • Bab IV. Pengujian Program Dan Analisa 60 3. Algoritma Genetika dengan Parameter Tertentu

    Dilakukan percobaan dengan memperhatikan perubahan hasil fitness maksimum individu sesuai dengan parameter yang diberikan, yaitu jumlah populasi, jumlah generasi, nilai probabilitas crossover dan mutasi yang akan ditunjukkan pada tabel 4.2.

    Tabel 4.2 Hasil Percobaan jadwal Pelajaran SMU

    Jumlah Populasi

    Jumlah Generasi

    Probabilitas Crossover

    Probabilitas Mutasi

    Fitness Maksimum

    Kress

    0.05 0.001916 522 0.1 0.001901 526

    10 0.15 0.001905 525 0.05 0.001934 517 0.1 0.001908 524

    20 0.15 0.001912 523 0.05 0.001908 524 0.1 0.001901 526

    30 0.7 0.15 0.001908 524 0.05 0.001923 520 0.1 0.001905 525

    10 0.15 0.001916 522 0.05 0.001916 522 0.1 0.001905 525

    20 0.15 0.001923 520 0.05 0.001923 520 0.1 0.001923 520

    30 0.8 0.15 0.001923 520 0.05 0.001905 525 0.1 0.001923 520

    10 0.15 0.001931 518 0.05 0.001905 525 0.1 0.001919 521

    20 0.15 0.001942 515 0.05 0.001916 522 0.1 0.001919 521

    10 30 0.9 0.15 0.001919 521 0.05 0.001919 521 20 10 0.7 0.1 0.001919 521

  • Bab IV. Pengujian Program Dan Analisa 61 0.15 0.001923 520 0.05 0.001934 517 0.1 0.001919 521

    20 0.15 0.001919 521 0.05 0.001919 521 0.1 0.001919 521

    30 0.15 0.001934 517 0.05 0.001919 521 0.1 0.001916 522

    10 0.15 0.001916 522 0.05 0.001919 521 0.1 0.001923 520

    20 0.15 0.001926 519 0.05 0.001916 522 0.1 0.001965 509

    30 0.8 0.15 0.00198 505 0.05 0.001937 516 0.1 0.001934 517

    10 0.15 0.001934 517 0.05 0.001919 521 0.1 0.001931 518

    20 0.15 0.001937 516 0.05 0.001916 522 0.1 0.002016 496

    30 0.9 0.15 0.001976 506 Pada kasus penyusunan jadwal pelajaran SMU hanya memakai satu nilai fitness yaitu mencari guru yang berada dalam dua ruang yang berbeda dalam satu jam pelajaran yang sama. Hasil fitness ini dapat berubah ubah pada saat program dijalankan kembali, sehingga nilai tersebut di atas bukanlah nilai tetap.

  • Bab IV. Pengujian Program Dan Analisa 62 4. Hasil jadwal pelajaran SMU

    Gambar 4.6 Jadwal Pelajaran

    Pada sub menu grafik fitness akan menampilkan grafik fitness maksimum dari setiap generasi.

  • Bab IV. Pengujian Program Dan Analisa 63

    Gambar 4.7 Grafik Fitness2

    4.2 Analisa Hasil Program

    Pada hasil jadwal pelajaran SMU, didapatkan bahwa individu akan semakin baik pada nilai probabilitas crossover dan mutasi yang lebih besar, tetapi tidak didapatkan perubahan / perbedaan yang terlalu besar diantara tiap-tiap individu. Waktu yang diperlukan untuk melakukan proses tergantung pada besar kecilnya parameter yang diinputkan, jika generasi ditambah, maka waktu yang diperlukan akan bertambah juga, tetapi tidak sebanyak waktu yang diperlukan pada saat jumlah populasinya yang diproses juga bertambah. Hal ini diakibatkan karena penambahan jumlah populasi akan menyebabkan penambahan juga pada seluruh proses dalam algoritma genetika itu sendiri, sedangkan penambahan jumlah generasi hanya berpengaruh pada beberapa kali proses algoritma genetika yang dilakukan.

    Program ini terbatas hanya mempunyai jumlah gen yang tetap sesuai dengan jumlah ruang kelas dan jam pelajaran yang ada yaitu 12 kelas dengan 44 jumlah jam pelajaran pada masing masing kelas dalam satu minggunya, perubahan yang dilakukan akan memerlukan perubahan pada program dasarnya. Diharapkan hal tersebut bisa dijadikan masukan untuk pengembangan software ini selanjutnya. Sedangkan input user yang terdapat pada program ini adalah jumlah generasi, populasi, probabilitas crossover dan probabilitas mutasi. Nilai probabilitas crossover dan mutasi berkisar antara 0 sampai dengan 1.

  • Bab IV. Pengujian Program Dan Analisa 64

    ------------Halaman ini sengaja dikosongkan-------------

  • 65

    BAB V PENUTUP

    5.1. Kesimpulan Dari hasil analisa yang telah dilakukan pada bab sebelumnya, dapat diambil beberapa poin kesimpulan sebagai berikut : 1. Algoritma genetika dapat digunakan untuk mengoptimalkan

    penyusunan jadwal pelajaran SMU Negeri Mojoagung dibandingkan dengan cara manual.

    2. Pada proses pembangkitan populasi tidak ditemukan masalah yang terlalu besar karena dengan metode acak yang mengandung persyaratan di dalamnya sudah didapatkan populasi yang beragam atau bisa dikatakan cukup bagus.

    3. Dengan algoritma genetika didapatkan nilai fitness yang semakin membaik dalam setiap generasinya.

    4. Dalam mengoptimalkan penyusunan jadwal pelajaran diperlukan empat parameter antara lain jumlah populasi, jumlah generasi, nilai probabilitas crossover dan mutasi. Besar kecilnya masing-masing perameter sangat mempengaruhi jadwal pelajaran yang dihasilkan. Semakin besar nilai parameternya maka semakin baik pula nilai fitness yang dihasilkan atau jadwal pelajaran yang dihasilkan semakin optimal.

    5. Kelebihan dari metode algoritma genetika adalah terletak pada pendefinisian fitness yang beragam dan dapat ditambah dengan syarat syarat yang diinginkan sebagai tambahan fungsi fitness.

    5.2. Saran

    Untuk pengembangan system yang telah dibuat, maka diperlukan saran yang dapat membantu proses tersebut, diantaranya adalah : 1. Dilakukan pengembangan terhadap operator yang ada untuk

    mengoptimalkan metode Algoritma Genetika yang digunakan sehingga dapat menghasilkan jadwal pelajaran SMU dengan lebih optimal.

  • Bab V. Penutup 66 2. Metode yang telah digunakan dapat diaplikasikan untuk

    permasalahan penjadwalan yang lainnya, seperti halnya jadwal kuliah dengan data yang kompleks juga.

  • xii

    DAFTAR PUSTAKA

    [ 1] Gen, Mitsuo and Runwei Cheng, Genetic Algoritm and

    Engineering Design, John Wiley & Sons Inc, New York, 1997

    [ 2 ] , The Hitch-Hikers Guide to Evolutionary Computation, ftp://rtfm.mit.edu/pub/usenet/news. answer/ai_faq/genetic/

    [ 3 ] Khoiriyah, Shulhu, 2004, Penjadwalan Ujian Akhir Semester dengan Algoritma Genetika, PENS-ITS, Surabaya

    [ 4 ] http://www.IlmuKomputer.com [ 5 ] Budi Sukmawan,Sekilas tentang Algoritma Genetika dan

    Aplikasinya pada Optimasi Jaringan Pipa Air Bersih, http://bimacipta.tripod.com/, Desember 2003

  • BIODATA

    Nama : Ira Lia Agustina Tempat,tanggal lahir : Jombang, 29 Mei 1985 Alamat : Sumobito, Jombang Telepon : - 0856-48616858 - 081-332574661 Hobi : Membaca Motto : Failure is efficacy which delay

    Riwayat Pendidikan : RA Perwanida , tahun 1990-1991 SDN I Kedung Papar, tahun 1991-1997 SLTP Negeri 1 Sumobito, tahun 1997-

    2000 SMU Negeri Mojoagung, tahun 2000-

    2003 Politeknik Elektronika Negeri Surabaya-

    ITS, jurusan Teknologi Informasi tahun 2003- 2006.

    Penulis telah mengikuti Seminar Proyek Akhir pada tanggal 2 Agustus 2006, sebagai salah satu persyaratan untuk memperoleh Gelar Ahli Madya (A.Md)