Algoritma Ant Colony System Dalam Penjadwalan Kegiatan Belajar Mengajar Di Sekolah Dasar
ALGORITMA
ANT COLONY SYSTEM
DALAM PENJADWALAN
KEGIATAN BELAJAR MENGAJAR DI SEKOLAH DASAR
SKRIPSI
YELLY ARVIANI
061401068
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER & TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2013
(2)
ALGORITMA ANT COLONY SYSTEM DALAM PENJADWALAN KEGIATAN BELAJAR MENGAJAR DI SEKOLAH DASAR
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer
YELLY ARVIANI 061401068
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER & TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2013
(3)
PERSETUJUAN
Judul : ALGORITMA ANT COLONY SYSTEM DALAM
PENJADWALAN KEGIATAN BELAJAR MENGAJAR DI SEKOLAH DASAR
Kategori : SKRIPSI
Nama : YELLY ARVIANI
Nomor Induk Mahasiswa : 061401068
Program Studi : SARJANA (S1) ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Diluluskan di
Medan, 21 Agustus 2013 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Drs. Sawaluddin, MIT Maya Silvi Lydia, B.Sc, M.Sc NIP. 195912311998021001 NIP. 197401272002122001
Diketahui / Disetujui oleh
Departemen Ilmu Komputer FASILKOMTI USU Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991021001
(4)
PERNYATAAN
ALGORITMA ANT COLONY SYSTEM DALAM PENJADWALAN KEGIATAN BELAJAR MENGAJAR DI SEKOLAH DASAR
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Agustus 2013
YELLY ARVIANI 061401068
(5)
PENGHARGAAN
Alhamdulillah, segala puji dan syukur penulis panjatkan kehadiran Allah SWT yang telah melimpahkan rahmat dan hidayah-Nya, sehingga penulis dapat menyelesaikan penyususan skripsi ini. Shalawat dan salam penulis sampaikan kepada Rasulullah SAW berserta keluarganya, sahabatnya, dan orang-orang yang tetap setia mengikuti sunnahnya.
Skripsi ini berjudul “Algoritma Ant Colony System dalam Penjadwalan Kegiatan Belajar Mengajar di Sekolah Dasar” disusun sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer Universitas Sumatera Utara. Penulis menyadari banyak hambatan dalam penyelesaian skripsi ini namun senantiasa mendapatkan dukungan, saran, dan nasehat dari berbagai pihak. Oleh karena itu, penulis mengucapkan terima kasih kepada pihak-pihak yang terkait, yakni:
1. Rektor Universitas Sumatera Utara, Bapak Prof. Dr. dr. Syahril Pasaribu, D.T.M.&H, M.Sc. (C.T.M), Sp.A.(K.).
2. Dekan Fakultas Ilmu Komputer dan Teknologi Informasi USU, Bapak Prof. Dr. Muhammad Zarlis, M.Kom.
3. Bapak Dr. Poltak Sihombing, M.Kom. sebagai Ketua Departemen Ilmu Komputer dan juga selaku dosen penguji I yang telah memberikan masukan kepada penulis.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc sebagai sekretaris Departemen Ilmu Komputer dan selaku pembimbing I, yang telah meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.
5. Bapak Drs. Sawaluddin, MIT selaku pembimbing II yang telah meluangkan waktunya dalam memberikan masukan-masukan kepada penulis dalam menyelesaikan skripsi ini.
(6)
6. Bapak M. Andri B, ST, MCompSc, MEM selaku penguji II yang telah memberikan masukan kepada penulis dalam menyelesaikan skripsi ini.
7. Bapak dan Ibu staf pengajar Departemen Ilmu Komputer USU, yang telah memberikan bimbingan dan pengajaran selama perkuliahan.
8. Ibunda Eni Rostati tercinta yang telah memberikan kasih sayang, pengorbanan, doa dan kesabaran yang luar biasa dalam membimbing dan memberikan dukungan sehingga penulis dapat merampungkan penyelesaian skripsi ini. Dukungan dari M. Ichsan (abang), Amel (adik), serta seluruh keluarga besar yang telah memberikan motivasi kepada penulis.
9. Sahabat Ayudia Rifki, Chili Harahap dan Ruby yang senantiasa mengingatkan penulis. Teman seperjuangan angkatan 2006 yang telah banyak berbagi ilmu, saran, dukungan, dan kenangan selama proses perkuliahan spesial Esti Utami, Indah Wike dan Desfa teman seperjuangan disaat akhir.
10.Semua pihak yang tidak dapat Penulis sebutkan satu persatu yang telah membantu selama ini baik secara moril maupun materil. Semoga Allah SWT memberikan limpahan karunia atas kebaikan dan dukungan mereka sehingga Penulis dapat menyelesaikan skripsi ini.
Akhir kata Penulis menyadari bahwa masih banyak kekurangan dalam penulisan skripsi ini. Oleh karena itu, Penulis mengharapkan saran dan kritik yang membangun agar kelak dapat lebih menjadi lebih baik. Penulis juga mengharapkan semoga laporan ini dapat bermanfaat dan menambah wawasan kepada pembaca.
Medan, Agustus 2013
(7)
ABSTRAK
Penyusunan jadwal mata pelajaran adalah masalah yang ditemukan pada setiap awal tahun ajaran baru oleh setiap sekolah. Penjadwalan merupakan salah satu hal yang penting dalam proses pembelajaran pada setiap sekolah. Pada proses penjadwalan banyak batasan yang terlibat untuk menghasilkan jadwal yang sesuai untuk sekolah dan guru. Komponen dasar yang terdiri dari guru, mata pelajaran, ruangan dan waktu harus dapat dijadwalkan dengan efektif dan bebas dari bentrok. Penelitian ini menggunakan data Sekolah Dasar Sultan Agung Pematangsiantar tahun ajaran 2010/2011. Selama ini penyusunan jadwal mata pelajaran dilakukan secara manual sehingga membutuhkan waktu yang lama. Tugas akhir ini membahas penggunaan algoritma Ant Colony System dalam menyelesaikan penjadwalan mata pelajaran secara otomotis. Algoritma Ant Colony System merupakan salah satu variasi dari Ant Colony Optimization (ACO). Algoritma ini adalah salah satu jenis algoritma meta-heuristic
yang telah digunakan untuk menyelesaikan permasalahan kombinatorial. Algoritma ini meniru tingkah laku semut ketika mereka berada dalam koloni untuk mencari sebuah sumber makanan. Program ditulis dengan menggunakan Visual Basic 6.0,
Database Management System Microsoft SQL Server 2000 dan Crystal Report. Dari hasil pengujian diperoleh hasil jadwal mata pelajaran bebas konflik.
(8)
ANT COLONY SYSTEM ALGORITHM IN SCHEDULING OF TEACHING ACTIVITIES IN PRIMARY SCHOOL
ABSTRACT
Arranging of the lesson schedule are problems found at the beginning of each school year by each school. Schedulling is one of the important activity in teaching process at each school. Many restrictions on the scheduling process involved in producing the appropriate schedule for schools and teachers. Basic components consisting of teachers, lesson, space and time must be scheduled with the effective and free from clashing. This research used data from Primary School Sultan Agung Pematangsiantar academic year 2010/2011. During this lesson scheduling is done manually so it takes a long time. This paper is talking about the using Ant Colony System(ACS) algorithm to solve the automatic scheduling of lessons. Ant Colony System algorithm is one of the variations Ant Colony Optimization (ACO). This algorithm is a kind of meta-heuristic algorithm that has been used can solve combinatorial problems. This algorithm adapt from ant behavioural when they are in their colony in order looking for a food source. This Program written in Visual Basic 6.0, Database Management System Microsoft SQL Server 2000 and Crystal Report. Results obtained from the test results free lesson schedule conflict.
(9)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xii
Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
Bab 2 Landasan Teori 6
2.1 Penjadwalan 6
2.1.1 Definisi Penjadwalan Kegiatan Belajar Mengajar 6 2.1.2 Batasan-Batasan dalam Masalah Penjadwalan 7
2.1.3 Penyelesaian Penjadwalan 8
2.2. Ant Colony Optimization (ACO) 10
2.2.1 Konsep Dasar Ant Colony Optimization (ACO) 10
2.2.2 Varian Algoritma ACO 13
2.2.3 Ant Colony System (ACS) 14
Bab 3 Analisis dan Perancangan Sistem
3.1 Analisis Penjadwalan Kegiatan Belajar Mengajar di Sekolah Dasar 19 3.2 Faktor – faktor yang Mempengaruhi Penjadwalan Kegiatan Belajar
Mengajar di Sekolah Dasar 20
3.2.1 Guru 20
3.2.2 Ruangan 21
3.2.3 Mata Pelajaran 21
3.2.4 Waktu 22
3.3 Analisis Proses Penjadwalan 24
3.3.1 Batasan – batasan (constraints) dalam Penjadwalan 24
3.3.2 Perancangan Flow Chart Sistem 26
3.3.3 Penerapan Algoritma Ant Colony System dalam Penjadwalan 27 3.3.3.1 Karakteristik Algoritma Ant Colony System 27 3.3.3.2 Paramater Algoritma Ant Colony System 29
(10)
3.3.3.2 Paramater Algoritma Ant Colony System 29
3.3.3.3 Pembentukan Solusi 29
3.3.3.4 Flow chart Penjadwalan Ant Colony System(ACS) 30
3.4 Spesifikasi Keperluan Sistem 32
3.4.1 Fungsi Sistem 32
3.4.2 Masukan Sistem 33
3.4.3 Keluaran Sistem 33
3.5 Perancangan Sistem Penjadwalan Kegiatan Belajar Mengajar 33 3.5.1 Perancangan DFD (Data Flow Diagram) 33 3.5.1.1 Diagram Konteks (DFD Level 0) 33 3.5.1.2 DFD (Data Flow Diagram) Level 1 34
3.5.2 Basis Data 37
3.5.2.1 Tabel Guru 37
3.5.2.2 Tabel Kelas 37
3.5.2.3 Tabel Jam 38
3.5.2.4 Tabel Hari 38
3.5.2.5 Tabel Pelajaran 38
3.5.2.6 Tabel Ampu 39
3.5.2.7 Tabel DAmpu 39
3.5.2.8 Tabel User 39
3.5.2.9 Tabel Ketersedian Hari 40
3.5.2.10 Tabel Jumlah Pertemuan 40
3.5.2.11 Tabel Jadwal Guru 40
3.5.3 Relasi Tabel 41
3.5.4 Perancangan Antarmuka 42
3.5.4.1 Perancangan Form Menu Utama 42 3.5.4.2 Perancangan Form Data Hari 42
3.5.4.3 Perancangan Form Data Jam 43
3.5.4.4 Perancangan Form Data Guru 43 3.5.4.5 Perancangan Form Data Ruangan 44 3.5.4.6 Perancangan Form Data Jumlah Jam Pertemuan
per Ruangan 44
3.5.4.7 Perancangan Form Data Mata Pelajaran 45 3.5.4.8 Perancangan FormData Pengampu Mata Pelajaran 45 3.5.4.9 Perancangan Form Data Ketersedian Guru Mengajar 46 3.5.4.10 Perancangan Form Data User 46 3.5.4.11 Perancangan Form Proses Penjadwalan 47
3.5.4.12 Perancangan Menu About 47
Bab 4 Implementasi dan Pengujian Sistem 48
4.1 Implementasi Sistem 48
4.1.1 Lingkungan Implementasi 48
4.1.2 Implementasi Antarmuka Sistem 49
4.1.2.1 Form Utama 49
4.1.2.2 Form LogIn Admin 50
4.1.2.3 Form Data Hari 51
4.1.2.4 Form Data Jam Pelajaran 53
4.1.2.5 Form Data Guru 53
(11)
4.1.2.7 Form Data Jumlah Pertemuan per Ruangan 55
4.1.2.8 Form Data Mata Pelajaran 56
4.1.2.9 Form Data Pengampu Mata Pelajaran 57 4.1.2.10 Form Data Ketersediaan Guru 59
4.1.2.11 Form Data User 62
4.1.2.12 Form About 63
4.1.2.13 Form Proses Penjadwalan Otomatis ACS 63
4.2 Pengujian Sistem 64
4.2.1 Data Pengujian 64
4.2.2 Hasil Pengujian Sistem 64
Bab 5 Kesimpulan dan Saran 69
5.1 Kesimpulan 69
5.2 Saran 69
Daftar Pustaka 70
(12)
DAFTAR TABEL
Tabel Keterangan Halaman
2.1 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9. 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 4.1 4.2 4.3 4.4 4.5
Sembilan varian ACO yang diusulkan oleh para ahli Daftar beberapa guru dan mata pelajaran yang diampunya Mata Pelajaran di SD Swasta Sultan Agung
Daftar pembagian waktu kegiatan belajar mengajar dalam 1 minggu untuk setiap kelas
Contoh jadwal kegiatan belajar mengajar Inisialisasi jadwal
Constraint jumlah jam matapelajaran Spesifikasi proses diagram konteks Spesifikasi proses DFD level 1 proses 1 Kamus data pada DFD level 1 proses 1 Spesifikasi proses DFD level 1 proses 2 Kamus data pada DFD level 1 proses 2 Tabel guru Tabel kelas Tabel jam Tabel hari Tabel pelajaran Tabel ampu Tabel DAmpu Tabel user
Tabel ketersedian hari Tabel jumlah pertemuan Tabel jadwal guru
Jadwal guru Wang Siu Cen Jadwal guru Lina
Jadwal guru Eko Suzatmiko Jadwal guru Sherly
Jadwal guru Lan-lan
13 20 22 23 23 31 32 34 35 36 36 36 37 37 38 38 38 39 39 39 40 40 41 65 65 66 67 67
(13)
DAFTAR GAMBAR
Gambar Keterangan Halaman
2.1 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21
Perjalanan semut menemukan sumber makanan
Flow chart sistem
Flow chart penjadwalan ACS Diagram konteks
DFD level 1
Skema relasi antar tabel
Perancangan form menu utama Perancangan form data hari
Perancangan form data jam pelajaran Perancangan form data guru
Perancangan form data ruangan
Perancangan form data jumlah pertemuan per ruangan Perancangan form data mata pelajaran
Perancangan form data pengampu mata pelajaran Perancangan form dataketersediaan guru mengajar Perancangan form data user
Perancangan form proses penjadwalan Perancangan form menu about
Tampilan implementasi antarmuka form utama Tampilan implementaasi antarmuka form login
Tampilan implementasi antarmuka form utama setelah
login
Tampilan implementasi antarmuka form data hari Tampilan kotak dialog ketika data belum lengkap Tampilan kotak dialog yakin dihapus
Tampilan implementasi antarmuka form data jam pelajaran Tampilan implementasi antarmuka form data guru Tampilan implementasi antarmuka form data ruangan
Tampilan implementasi antarmuka form data jumlah pertemuan per Ruangan
Tampilan implementasi antarmuka form data mata pelajaran
Tampilan implementasi antarmuka form data pengampu mata pelajaran
Tampilan nama guru yang tersedia dan nama mata pelajaran
Pemberitahuan ketika jumlah les melebihi alokasi waktu Kotak dialog data mata pelajaran ketika akan dihapus Kotak diolog data guru ampu ketika akan dihapus
Tampilan implementasi antarmuka form data ketersediaan guru
Tampilan waktu yang tersedia dalam proses mengajar Tampilan ketika admin setelah selesai memilih data ketersedian guru mengajar untuk setiap guru
Kotak dialog data sudah disimpan Kotak dialog data sudah dihapus
12 26 30 34 35 41 42 42 43 43 44 44 45 45 46 46 47 47 50 50 51 52 52 53 53 54 55 56 56 57 58 58 59 59 60 60 61 61 62
(14)
4.22 4.23 4.24
Tampilan implementasi antarmuka form data admin
Tampilan implementasi antarmuka form about
Tampilan implementasi proses penjadwalan otomatis ASC
62 63 64
(15)
ABSTRAK
Penyusunan jadwal mata pelajaran adalah masalah yang ditemukan pada setiap awal tahun ajaran baru oleh setiap sekolah. Penjadwalan merupakan salah satu hal yang penting dalam proses pembelajaran pada setiap sekolah. Pada proses penjadwalan banyak batasan yang terlibat untuk menghasilkan jadwal yang sesuai untuk sekolah dan guru. Komponen dasar yang terdiri dari guru, mata pelajaran, ruangan dan waktu harus dapat dijadwalkan dengan efektif dan bebas dari bentrok. Penelitian ini menggunakan data Sekolah Dasar Sultan Agung Pematangsiantar tahun ajaran 2010/2011. Selama ini penyusunan jadwal mata pelajaran dilakukan secara manual sehingga membutuhkan waktu yang lama. Tugas akhir ini membahas penggunaan algoritma Ant Colony System dalam menyelesaikan penjadwalan mata pelajaran secara otomotis. Algoritma Ant Colony System merupakan salah satu variasi dari Ant Colony Optimization (ACO). Algoritma ini adalah salah satu jenis algoritma meta-heuristic
yang telah digunakan untuk menyelesaikan permasalahan kombinatorial. Algoritma ini meniru tingkah laku semut ketika mereka berada dalam koloni untuk mencari sebuah sumber makanan. Program ditulis dengan menggunakan Visual Basic 6.0,
Database Management System Microsoft SQL Server 2000 dan Crystal Report. Dari hasil pengujian diperoleh hasil jadwal mata pelajaran bebas konflik.
(16)
ANT COLONY SYSTEM ALGORITHM IN SCHEDULING OF TEACHING ACTIVITIES IN PRIMARY SCHOOL
ABSTRACT
Arranging of the lesson schedule are problems found at the beginning of each school year by each school. Schedulling is one of the important activity in teaching process at each school. Many restrictions on the scheduling process involved in producing the appropriate schedule for schools and teachers. Basic components consisting of teachers, lesson, space and time must be scheduled with the effective and free from clashing. This research used data from Primary School Sultan Agung Pematangsiantar academic year 2010/2011. During this lesson scheduling is done manually so it takes a long time. This paper is talking about the using Ant Colony System(ACS) algorithm to solve the automatic scheduling of lessons. Ant Colony System algorithm is one of the variations Ant Colony Optimization (ACO). This algorithm is a kind of meta-heuristic algorithm that has been used can solve combinatorial problems. This algorithm adapt from ant behavioural when they are in their colony in order looking for a food source. This Program written in Visual Basic 6.0, Database Management System Microsoft SQL Server 2000 and Crystal Report. Results obtained from the test results free lesson schedule conflict.
(17)
BAB I
PENDAHULUAN
1.1 Latar Belakang
Penyampaian informasi dalam institusi pendidikan dalam hal ini sekolah adalah hal yang penting dilakukan terutama yang berkaitan dengan penjadwalan kegiatan belajar mengajar. Pada umumnya penjadwalan kegiatan belajar mengajar di setiap sekolah dilakukan setiap memasuki semester ganjil dan dilakukan setahun sekali. Inti dari masalah ini adalah bagaimana menjadwalkan berbagai komponen yang terdiri dari guru, siswa, mata pelajaran, ruang dan waktu dengan memperhatikan sejumlah batasan dan syarat tertentu. Dibutuhkan sebuah penjadwalan yang baik agar komponen tersebut dapat didistribusikan secara merata dan tanpa ada bentrok satu dengan yang lainnya. Sehingga proses belajar mengajar dapat terselenggara secara efisien dan efektif bagi guru dan juga siswa.
Sekolah Dasar (SD) adalah jenjang pendidikan paling dasar pada pendidikan formal di Indonesia. Sekolah dasar ditempuh dalam waktu enam tahun, mulai dari kelas 1 sampai kelas 6. Penelitian terkait penjadwalan ini akan penulis lakukan di Yayasan Perguruan Sultan Agung Pematang Siantar. Saat ini penyusunan jadwal kegiatan belajar dilakukan secara manual. Hal ini tentu akan membutuhkan waktu dan pemikiran yang cukup besar dikarenakan batasan dan syarat tertentu yang harus dipenuhi saat menyusun jadwal. Misalnya, adanya kemungkinan seorang guru akan mengajar dua mata pelajaran yang berbeda sehingga perlu disusun agar jadwal guru tersebut tidak bentrok, menjadwalkan mata pelajaran yang tidak membebankan siswa dalam satu hari, dan beberapa batasan dan syarat lain yang telah ditetapkan dari sekolah.
Berdasarkan hal tersebut, muncul keinginan penulis untuk menyelesaiakan masalah penjadwalan kegiatan belajar mengajar secara otomatis dengan bantuan komputer agar dapat mengurangi waktu dan tenaga dalam membuat jadwal kegiatan
(18)
belajar mengajar serta memperkecil terjadinya kesalahan yang diakibatkan human error.
Dalam tugas akhir ini, permasalahan penjadwalan kegiatan belajar mengajar akan diselesaikan dengan menggunakan algoritma Ant Colony System (ACS).
Algoritma ini memiliki kemampuan untuk menyelesaikan permasalahan optimisasi kombinatorial seperti traveling salesman problem (TSP), quadratic assignment problem, jobscheduling, vehicle routing, graph coloring, dan network routing [1]. Untuk masalah penjadwalan, algoritma ini juga telah digunakan dalam menyelesaikan masalah penjadwalan kereta api [5], masalah penjadwalan ujian [2] dan masalah penjadwalan kuliah di universitas [13].
Dengan digunakannya algoritma ini diharapkan akan diperoleh sebuah aplikasi yang dapat mencari solusi penjadwalan pada waktu yang dapat digunakan baik oleh guru, kelas, siswa yang terlibat dalam suatu kegiatan belajar mengajar.
1.2 Rumusan Masalah
Masalah yang dibahas dalam penelitian ini, yaitu:
1. Bagaimana menyelesaikan masalah penjadwalan yang terdiri dari mata pelajaran, guru, siswa, dan ruang kelas agar dapat ditempatkan pada slot waktu dalam menyusun jadwal belajar mengajar.
2. Bagaimana mengimplementasikan algoritma Ant Colony System untuk menyelesaikan masalah penjadawalan kegiatan belajar mengajar.
1.3 Batasan Masalah
Agar pembahasan penelitian ini lebih terarah maka diberikan batasan-batasan masalah yang akan dibahas. Batasan masalah yang penulis ambil dalam penulisan tugas akhir ini adalah:
1. Aplikasi yang akan dibangun untuk dapat menyelesaikan masalah kegiatan belajar mengajar di SD (Sekolah Dasar) Yayasan Perguruan Sultan Agung Pematangsiantar.
(19)
2. Penelitian ini hanya menjadwalkan kegiatan belajar mengajar pada semester ganjil 2010/2011.
3. Aplikasi ini akan menghasilkan keluaran berupa jadwal kegiatan belajar mengajar untuk setiap guru.
4. Bahasa pemograman yang akan dipakai adalah bahasa pemograman Visual Basic 6.0 dengan Database Management System Microsoft SQL Server 2000.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah
1. Merancang sebuah aplikasi penjadwalan kegiatan belajar mengajar dengan menggunakan algoritma Ant Colony System sehingga masalah penjadwalan yang terdiri dari mata pelajaran, guru, siswa, dan ruang kelas dapat ditempatkan pada slot waktu jadwal belajar mengajar dengan solusi terbaik. 2. Mengefisienkan waktu proses pembuatan jadwal kegiatan belajar mengajar
bagi pihak sekolah.
1.5 Manfaat Penelitian
Tersedianya aplikasi penjadwalan kegiatan belajar mengajar yang dapat memudahkan pihak yang terkait dalam menyusun jadwal kegiatan belajar mengajar yang efektif dan efisien.
1.6 Metodologi Penelitian
Tahapan yang dilakukan dalam penelitian ini adalah: 1. Studi Literatur
Pada tahap ini dilakukan dengan mempelajari buku-buku referensi baik dari buku, artikel, paper, jurnal, makalah, maupun situs Internet mengenai algoritma Ant Colony System (ACS) dan penjadwalan kegiatan belajar mengajar.
(20)
2. Analisis Permasalahan
Pada tahap ini dilakukan analisis terhadap algoritma Ant Colony System (ACS) dan masalah penjadwalan kegiatan belajar mengajar.
3. Perancangan Sistem
Pada tahap ini dirancang suatu sistem dengan algoritma Ant Colony System
(ACS) yang dapat memecahkan masalah penjadwalan kegiatan belajar mengajar.
4. Implementasi Sistem
Implementasi sistem yang dirancang kedalam sebuah bahasa pemograman.
5. Testing Program
Untuk mengetahui sejauh mana tingkat keberhasilan program yang telah dihasilkan.
6. Penyusunan laporan dan penarikan kesimpulan
Menyusun laporan hasil analisis dan perancangan kedalam format tulisan akhir disertai penarikan kesimpulan.
1.7 Sistematika Penulisan
Dalam penulisan skripsi ini, sistematika penulisan dibagi menjadi lima bab yaitu:
1. Bab I Pendahuluan, berisikan penjelasan mengenai latar belakang, perumusan masalah, batasan masalah, tujuan, manfaat, metodologi penelitian, serta sistematika penelitian yang digunakan untuk menyusun laporan.
2. Bab II Landasan Teori, berisikan dasar teori yang digunakan dalam analisis, perancangan dan implementasi skripsi.
3. Bab III Analisis dan Perancangan Sistem, berisikan tentang analisis permasalahan dan kebutuhan serta perancangan perangkat lunak.
(21)
4. Bab IV Implementasi dan Pengujian Sistem, berisikan implementasi dari sistem berdasarkan analisis dan perancangan yang telah dilakukan serta melakukan pengujian sistem.
5. Bab V Kesimpulan dan Saran, berisi kesimpulan dan saran yang didapatkan selama penulisan skripsi.
(22)
BAB II
LANDASAN TEORI
2.1 Penjadwalan
2.1.1 Definisi Penjadwalan Kegiatan Belajar Mengajar
Penjadwalan terkait pada aktivitas dalam hal untuk membuat sebuah jadwal. Sebuah jadwal adalah sebuah tabel dari kegiatan-kegiatan yang disusun berdasarkan waktu kapan aktivitas tersebut ditempatkan. Kegiatan ini biasanya pertemuan antar beberapa komponen pada sebuah waktu dan tempat yang sama. Jadwal harus memenuhi beberapa persyaratan dan memenuhi keinginan semua orang yang terlibat sebaik mungkin. Waktu dari aktivitas harus disusun sedemikian rupa sehingga tidak ada salah satu komponen pun memliki lebih dari satu kegiatan pada waktu yang sama [15].
Penjadwalan kegiatan belajar mengajar merupakan pengaturan perencanaan belajar mengajar yang meliputi mata pelajaran, guru, waktu dan tempat pada sekolah. Pada umumnya penjadwalan kegiatan belajar mengajar disajikan dalam sebuah tabel hari dalam seminggu yang terdiri dari slot waktu yang terdiri dari mata pelajaran, hari, jam, serta pengajar yang sesuai dengan mata pelajaran yang diajarkan.
Tiga pembagian dari penjadwalan akademik (academic timetables) [11], antara lain :
1. Penjadwalan Sekolah (School Timetabling)
Pada penjadwalan sekolah setiap kelas memiliki mata pelajaran tertentu serta memiliki ruangan tertentu dimana proses kegiatan belajar mengajar dilaksanakan. Pada dasarnya isi dari jadwal diatur oleh kurikulum dimana jumlah dari waktu tiap mata pelajaran yang diajar dalam seminggu sering ditetapkan secara nasional. Setiap kelas terdiri dari seorang pengajar, yang harus ditempati saat pelajar tiba di sekolah hingga meninggalkan sekolah dan memiliki seorang guru tertentu yang akan bertanggung jawab atas kelas tersebut dalam sebuah periode waktu tertentu . Pengajar biasanya dialokasikan di awal proses penjadwalan, yang menjadi masalah adalah
(23)
menyesuaikan pertemuan dari pengajar dengan kelas untuk slot waktu tertentu sehingga setiap pengajar tertentu mengajar tiap kelas yang diwajibkan kepadanya. Setiap kelas atau pengajar tidak dapat terlibat lebih satu pertemuan pada saat waktu yang bersamaan.
2. Penjadwalan Mata Kuliah (Course Timetabling)
Penjadwalan mata kuliah mencakup kumpulan scheduling dari perkuliahan, dimana dalam setiap mata kuliah diberikan sejumlah ruangan dan periode waktu. Karakteristik penjadwalan mata kuliah, antara lain:
a. Setiap mahasiswa dapat memiliki jumlah mata kuliah yang berbeda. b. Ketersediaan ruangan berperan sangat penting.
c. Jika dua ruangan memiliki mahasiswa yang sama, maka ruangan tidak dapat dijadwalkan pada waktu yang sama.
3. Penjadwalan Ujian (Exam Timetabling) Karakteristik penjadwalan ujian, antara lain:
a. Hanya ada satu ujian untuk tiap objek (mata kuliah).
b. Ada banyak batasan yang berbeda, contohnya pada hari yang sama ada mahasiswa yang memiliki ujian yang sangat banyak dan berurutan waktunya tetapi ada juga yang tidak.
c. Satu ujian dapat memiliki lebih dari satu ruangan.
2.1.2 Batasan-Batasan dalam Masalah Penjadwalan
Dalam masalah penjadwalan memiliki beberapa macam batasan yang dapat menyebabkan output yang dihasilkan menjadi salah. Dalam menerapkan batasan dalam suatu masalah, biasanya tidak terlalu sama untuk setiap masalah [3]. Batasan tersebut terdiri dari :
1. Edge constraint
Edge constraint adalah batasan yang mengatur dua kejadian tidak boleh menempati satu slot waktu yang sama. Contohnya pada hari Senin jam 07.30 sampai 08.10 tidak mungkin guru A mengajar di ruang kelas 1-A dan mengajar di ruang kelas 5-A.
(24)
2. Ordering constraint
Ordering constraint adalah batasan yang menjaga urutan kejadian dalam
timetable. Contoh mata pelajaran A harus dilakukan sebelum mata pelajaran B. Biasanya masalah batasan ini jarang digunakan karena dapat menyebabkan penjadwalan menjadi lebih rumit.
3. Event-spread constraint
Event-spread constraint adalah batasan yang mengatur penyebaran kejadian pada suatu timetable. Contoh dalam menjalani ujian, seorang siswa diperbolehkan max 3 mata pelajaran yang diujikan dalam 1 hari.
4. Present specification and exclusion
Present specification and exclusion adalah menentukan terlebih dahulu slot waktu yang akan digunakan oleh suatu kejadian sebelum proses pencarian solusi dilakukan. Contoh mata pelajaran agama digabung dengan kelas 1-A dan 1-B maka akan ditentukan waktu yang sama untuk kedua kelas tersebut agar tidak terganggu untuk menyusun mata pelajaran yang lain.
5. Capacity constraint
Capacity constraint adalah batasan yang berhubungan dengan kapasitas ruangan. Untuk masing-masing kelas hanya boleh diisi sebanyak 40 siswa.
6. Hard and soft constraint
Hard constraint adalah batasan yang sama sekali tidak boleh dilanggar, sedangkan
soft constraint adalah batasan yang diusahakan semaksimal mungkin tidak dilanggar namun jika dilanggar, hal tersebut masih dapat diterima.
2.1.3 Penyelesaian Penjadwalan
Penyelesaian penjadwalan dapat menggunakan metode-metode yang berhubungan dengan optimasi. Berdasarkan penelitian sebelumnya beberapa peneliti telah berhasil menyelesaikan penjadwalan dengan menggunakan algoritma-algoritma optimasi.
(25)
Penelitian yang dilakukan oleh Krzysztof Socha, Michael Samples dan Max Manfrin dalam penyelesaian penjadwalan (timetable) di universitas menggunakan algoritma Ant. Dalam penelitiannya mereka menggunakan algoritma Ant dasar dan variasinya (Max Min Ant System / MMAS). Kedua algoritma tersebut diujui untuk tiga kasus penjadwalan dan menyimpulkan bahwa variasi MMAS lebih baik kinerjanya dibandingkan dengan algoritma Ant dasar [13].
Penelitian yang dilakukan oleh Ivan Ghoseiri dan Fahimeh Kemorshedsolouk dalam penyelesaian penjadwalan kereta api menggunakan Ant Colony System. Dalam penelitiannya mereka menggunakan model matematis dan berdasarkan pada ACS dalam penyelesaian penjadwalan. Masalah penjadwalan ini berdasarkan pada masalah pencarian rute terpendek atau travelling salesman problem (TSP). Dalam TSP kota-kota direpresentasikan sebagai kereta api. Penjadwalan dilakukan dengan menggunatkan urutan serta memindahkan bentrokan yang terjadi. Contoh numerik diberikan dalam ukuran kecil dan juga besar dapat diselesaikan penggunakan ACS serta dibandingkan solusi optimum untuk mengecek kualitas dan ketelitian hasil dari penjadwalan. Perbandingan solusi ditunjukkan bahwa penggunaan ACS dalam penjadwalan kereta api memperoleh hasil yang bagus dan dapat menghemat waktu [5].
Penelitian yang dilakukan oleh Eley dalam penyelesaian permasalahan penjadwalan ujian menggunakan variasi dari algoritma Ant. Dalam penelitiannya pendekatan Ant Colony dapat menyelesaikan permasalahan penjadwalan ujian di universitas. Pendekatan Ant Colony dapat menyelesaikan masalah optimasi kombinatorial. Dalam penelitiannya dibandingkan dua variasi algoritma Ant yaitu
Max-Min dan AntCol dan dengan modifikasi algoritma perwarnaan graph [2].
Penelitian yang dilakukan oleh Rachmat Selamet dalam penyelesain masalah penjadwalan kuliah di universitas menggunakan variasi dari algoritma Ant. Dalam penelitiannya menggunakan Rank Based Ant System (RBAS) untuk merancang sebuah perangkat lunak penjadwalan untuk mata kuliah, dosen dan mahasiswa di universitas. Algoritma ini ditemukan oleh Bullnheimer pada tahun 1997. RBAS
(26)
mengkombinasikan algoritma Ant dengan pemberian rangking pada setiap solusi yang ada. Rangking tersebut didasarkan pada kualitas dari solusi tersebut. Setiap iterasi pada algoritma ini akan mengerjakan sesuai dengan urutan rangking. Solusi terbaik akan menghasilkan perubahan terbesar pada tingkat pheromone, ketika solusi berikutnya mengupdate pheromone dan menurunkan jumlahnya secara linier menurut rangking mereka. Dengan menggunakan algoritma ant dengan metode berbasis rangking, mampu menghasilkan masalah penjadwalan dengan baik [12].
Penelitian yang dilakukan oleh Antonio Fenandez dalam pembangunan aplikasi penyusunan jadwal kuliah menggunakan algoritma semut. Aplikasi penjadwalan mata kuliah ini berdasarkan pada proses acak algoritma semut dan local search terbukti dapat membantu menyelesaikan kasus penjadwalan mata kuliah dengan cepat dan efisien [4].
2.2 Ant Colony Optimization (ACO)
Algoritma ant colony ini terinspirasi oleh penelitian terhadap perilaku koloni semut. Semut adalah serangga yang bersifat sosial. Mereka hidup pada suatu koloni yang mempunyai perilaku survival (mempertahankan hidup) bersama koloninya. ACO termaksuk teknik pencarian multi agent untuk menyelesaikan permasalahan optimasi, khususnya kombinatorial, yang terinspirasi tingkat laku semut dalam suatu koloni. Pertama kali diperkenalkan oleh Marco Dorigo pada tahun 1991 sebagai thesis PhD-nya yang kemudian di publikasikan dengan nama Ant System (AS).
2.2.1 Konsep Dasar Ant Colony Optimization (ACO)
Perilaku semut yang menarik dalam dunia nyata adalah ketika mereka mencari makan dimana mereka dapat menemukan jalur terpendek antara sumber makanan dan sarang mereka. Ketika berjalan dari sumber makanan ke sarang dan sebaliknya, semut meletakkan suatu zat (yang disebut pheromone) di sepanjang jalur yang mereka lalui.
Pheromone berasal dari kata “fer” (membawa) dan “hormon”. Dengan demikian,
pheromone bisa diartikan “pembawa hormon”, yaitu suatu hormon yang diproduksi oleh kelenjar endokrin yang bisa memberikan isyarat kimiawi.
(27)
Ketika mencari makan, pada awalnya semut akan berkeliling di daerah sekitar sarangnya secara acak. Begitu mengetahui ada makanan, semut itu akan menganalisa kualitas dan kuantitas makanan tersebut dan membawa beberapa bagaian ke sarangnya. Dalam perjalanannya, mereka meninggalkan jejak berupa sejumlah zat kimia, yang disebut pheromone. Pheromone ini akan membimbing semut lain untuk menemukan sumber makanan. Jumlah pheromone yang ditinggalkan oleh semut bergantung pada jumlah makanan yang ditemukan. Semakin banyak makanan yang didapat, semakin banyak pula pheromone yang ditinggalkan. Sehingga semakin banyak semut yang melewati suatu jalur, semakin kuat pula jejak pheromone yang terkumpul di jalur tersebut [14].
Pheromone adalah zat kimia yang berasal dari kelenjar endokrin dan digunakan oleh makhluk hidup untuk mengenali sesama jenis, individu lain, kelompok, dan untuk membantu proses reproduksi. Berbeda dengan hormon,
pheromone menyebar ke luar tubuh dan hanya dapat mempengaruhi dan dikenali oleh individu lain yang sejenis (satu spesies).
Proses peninggalan pheromone ini dikenal sebagai stigmergy, sebuah proses memodifikasi lingkungan yang tidak hanya bertujuan untuk mengingat jalan pulang ke sarang, tetapi juga memungkinkan para semut berkomunikasi dengan koloninya. Seiring waktu, bagaimanapun juga jejak pheromone akan menguap dan akan mengurangi kekuatan daya tariknya. Lebih lama seekor semut pulang pergi melalui jalur tersebut, lebih lama jugalah pheromone menguap.
Pada gambar dibawah ini mengilustrasikan proses dari stigmergy. Semut menggunakan pheromone untuk menemukan jalur terpendek antara dua ujung yang dihubungkan dengan dua cabang yaitu bawah (yang lebih pendek) dan atas(yang lebih panjang).
(28)
Gambar 2.1 Perjalanan semut menemukan sumber makanan (Sumber:Menentukan Jalur Terpendek Menggunakan Algoritma Semut, Muttakhiroh)
1. Gambar 2.1.a diatas menunjukkan ada dua kelompok semut yang akan melakukan perjalanan. Satu kelompok diberi nama L yaitu kelompok yang berangkat dari arah kiri merupakan sarang semut dan kelompok yang lain diberi nama R berangkat dari arah kanan yang merupakan sumber makanan. Kedua kelompok semut dari titik berangkat sedang dalam posisi pengambilan keputusan jalan sebelah mana yang akan diambil. Kelompok L membagi dua kelompok lagi. Sebagian melalui jalan atas dan sebagian lagi melalui jalan bawah. Hal tersebut juga berlaku untuk kelompok semut R.
2. Gambar 2.1.b dan gambar 2.1.c menunjukkan bahwa kelompok semut berjalan pada kecepatan yang sama dengan meninggalkan pheremone atau jejak kaki di jalan yang telah dilalui. Pheromone yang ditinggalkan oleh kumpulan semut yang melalui jalan atas telah mengalami banyak penguapan karena semut yang melalui jalan atas berjumlah lebih sedikit dari pada jalan yang di bawah. Hal ini dikarenakan jarak yang ditempuh lebih panjang daripada jalan bawah. Sedangkan pheromone yang berada di jalan bawah, penguapannya cenderung lebih lama. Oleh karena itu, semut yang melalui jalan bawah lebih banyak daripada semut yang melalui jalan atas.
(29)
3. Gambar 2.1.d menunjukkan bahwa semut-semut yang lain pada akhirnya memutuskan untuk melewati jalan bawah karena pheromone yang ditinggalkan masih banyak. Sedangkan pheromone pada jalan atas sudah banyak yang menguap sehingga semut-semut tidak memilih jalan atas tersebut. Semakin banyak semut yang melalui jalan bawah makan semakin banyak semut yang mengikutinya. Demikian juga dengan jalan atas, semakin sedikit semut yang melalui jalan atas, maka pheromone yang ditinggalkan semakin berkurang bahkan hilang. Dari sinilah kemudian terpilih jalur terpendek antara sarang dan sumber makanan. Hal ini berarti bahwa semakin banyak semut yang mengikuti sebuah jalur maka semakin bertambah menariklah jalur tersebut untuk dilalui. Probabilitas dimana seekor semut memutuskan untuk mengikuti suatu jalur meningkat dengan banyaknya semut yang lebih dulu menggunakan jalur tesebut [9].
Fenomena di atas diadopsi oleh Marco Dorigo ke dalam sebuah teknik komputasi yang dinamakan Ant System (AS). Tetapi, terdapat tiga perbedaan antara AS dengan koloni semut yang ada di dunia nyata, yaitu:
1. Semut buatan pada AS memiliki memory, sedangkan semut yang sesungguhnya tidak punya memory;
2. Semut buatan tidak sepenuhnya buta seperti semut yang sesungguhnya; dan 3. Semut buatan hidup di dalam lingkungan dimana waktu bersifat diskrit (bukan
kontinu) [14].
2.2.2 Varian Algoritma ACO
Para ahli sudah mengusulkan beragam algoritma ACO berbeda. Tabel berikut ini menampilkan Sembilan vairan ACO secara kronologis dari tahun 1991 hingga 2001 [14].
Tabel 2.1 Sembilan varian ACO yang diusulkan oleh para ahli.
Algoritma Penemu Tahun
Ant System (AS) Dorigo et al. 1991
(30)
Tabel 2.1 Sembilan varian ACO yang diusulkan oleh para ahli. (lanjutan)
Ant-Q Gambardella & Dorigo 1995
Ant Colony System Dorigo & Gambardella 1996
MAX-MIN AS Stutzle & Hoos 1996
Rank-based AS Bullnheimer et al. 1997
ANTS Maniezzo 1999
BWAS Cordon et al. 2000
Hyper-cube AS Blum et al. 2001
Pada penelitian ini salah satu varian ACO yang digunakan untuk penyelesaian penjadwalan kegiatan belajar mengajar adalah Ant Colony System (ACS).
2.2.3 Ant Colony System (ACS)
Ant Colony System (ACS) juga merupakan perbaikan dari AS yang asli. ACS diperkenalkan oleh Gambardella dan Dorigo pada tahun 1996 [1]. Pada ACS, semut berfungsi sebagai agen yang ditugaskan untuk mencari solusi terhadap suatu masalah optimasi. Pada awalnya ACS dibangun untuk menyelesaikan masalah TSP, tetapi pada perkembangannya ACS juga diaplikasikan pada permasalahan optimasi kombinatorial seperti masalah vehicle routing problem, sequential ordering, dan penjadwalan.
Secara informal, ACS bekerja sebagai berikut : pertama kali, sejumlah m
semut ditempatkan pada sejumlah n titik berdasarkan beberapa aturan inisialisasi (misalnya, secara acak). Setiap semut membuat sebuah tur dengan menerapkan sebuah aturan transisi status secara berulang kali. Selagi membangun turnya, seekor semut juga memodifikasi jumlah pheromone (sejumlah informasi yang ditinggalkan oleh semut di tempat yang dilalui dan menandai jalur tersebut) pada ruas-ruas yang dikunjunginya dengan menerapkan aturan pembaruan pheromone lokal. Setelah semut-semut mengakhiri tur mereka, jumlah pheromone yang ada pada ruas-ruas dimodifikasi kembali (dengan menerapkan aturan pembaruan pheromone global). Dalam membuat tur, semut ‘dipandu’ oleh informasi heuristic (mereka lebih memilih ruas-ruas yang pendek) dan oleh informasi pheromone. Sebuah ruas dengan jumlah
(31)
pheromone yang tinggi merupakan pilihan yang sangat diinginkan. Kedua aturan pembaruan pheromone itu dirancang agar semut cenderung untuk memberi lebih banyak pheromone pada ruas-ruas yang harus mereka lewati.
Tujuan utama dari peng-update-an lokal adalah untuk diversifikasi pencarian yang dilakukan oleh semut-semut yang berurutan selama satu iterasi. Dengan menggunakan cara ini, hasil pencarian akan menjadi lebih bervariasi. Penurunan intensitas pheromone pada busur-busur yang dilewati selama satu iterasi membuat semut-semut yang berurutan memilih busur lain sehingga menghasilkan solusi-solusi yang beragam. Hal ini memperkecil kemungkinan beberapa semut menghasilkan solusi-solusi yang sama persis (identik) selama satu iterasi.
Terdapat tiga karakteristik utama dari ACS, yaitu : aturan transisi status, aturan pembaharuan pheromone lokal, dan aturan pembaharuan pheromone global.
1. Aturan transisi status
Aturan transisi status yang berlaku pada ACS adalah sebagai berikut: seekor semut yang ditempatkan pada titik t memilih untuk menuju ke titik v, kemudian diberikan bilangan pecahan acak q dimana 0≤q≤1,�0 adalah sebuah parameter yaitu Probabilitas semut melakukan eksplorasi pada setiap tahapan, dimana (0≤ q≤1) dan �� (t,v) adalah probabilatas dimana semut k memilih untuk bergerak dari titik t ke titik v.
Jika q≤�0 maka pemilihan titik yang dituju menerapkan aturan yang ditunjukkan oleh persamaan (1)
��������� (t, u) = [�(�,��)]. [�(�,��)]�,�= 1,2,3, … ,�
�= max{[�(�,��)]. [�(�,��)�]} … … … . (1) dengan v = titik yang akan dituju
sedangkan jika �> �0digunakan persamaan (2)
�= ��(�,�) = [�(�,�)].[�(�,�)�]
∑��=1[�(�,��)].[�(�,��)�]… … … (2) dengan �(�,��) = 1
����� (�,��)
dimana �(�,�) adalah nilai dari jejak pheromone pada titik (�,�),�(�,�) adalah fungsi
(32)
parameter yang mempertimbangkan kepentingan relative dari informasi heuristic, yaitu besarnya bobot yang diberikan terhadap parameter informasi heuristic¸sehingga solusi yang dihasilkan cenderung berdasarkan nilai fungsi matematis. Nilai untuk parameter � adalah ≥0.
Pada ACS pembaruan pheromone dibagai menjadi 2, yaitu : aturan pembaruan
pheromone lokal dan aturan pembaruan pheromone global.
2. Aturan pembaharuan pheromone lokal
Dalam melakukan perjalanan untuk mencari jalur terpendek, semut mengunjungi ruas-ruas dan mengubah tingkat pheromone pada ruas-ruas tersebut dengan menerapkan pheromone lokal yang ditunjukkan oleh persamaan (3)
�(�,�)⟵(1− �).�(�,�) +�.∆�(�,�) … … … . . (3)
∆�(�,�) = 1
���.�
dimana:
��� = panjang tur yang diperoleh
c = jumlah lokasi
� = parameter dengan nilai 0 sampai 1
∆� = perubahan pheromone
� adalah sebuah parameter (koefisien evaporasi), yaitu besarnya koefisien penguapan
pheromone. Adanya penguapan pheromone menyebabkan tidak semua semut mengikuti jalur yang sama dengan semut sebelumnya. Hal ini memungkinkan dihasilkan solusi alternatif yang lebih banyak. Peranan dari aturan pembaruan
pheromone lokal ini adalah untuk mengacak arah lintasan yang sedang dibangun, sehingga titik-titik yang telah dilewati sebelumnya oleh tur seekor semut mungkin akan dilewati kemudian oleh tur semut yang lain.
Dengan kata lain, pengaruh dari pembaruan lokal ini adalah untuk membuat tingkat ketertarikan ruas-ruas yang ada berubah secara dinamis : setiap kali seekor semut menggunakan sebuah ruas maka ruas ini dengan segera akan berkurang tingkat ketertarikannya (karena ruas tersebut kehilangan sejumlah pheromone-nya), secara
(33)
tidak langsung semut yang lain akan memilih ruas-ruas lain yang belum dikunjungi. Konsekuensinya, semut tidak akan memiliki kecenderungan untuk berkumpul pada jalur yang sama. Merupakan sifat yang diharapkan bahwa jika semut membuat tur-tur yang berbeda maka akan terdapat kemungkinan yang lebih tinggi dimana salah satu dari mereka akan menemukan solusi yang lebih baik daripada mereka semua berkumpul dalam tur yang sama. Dengan cara ini, semut akan membuat penggunaan informasi pheromone menjadi lebih baik tanpa pembaharuan lokal, semua semut akan mencari pada lingkungan yang sempit yang terbaik yang telah ditentukan sebelumnya.
3. Aturan pembaharuan pheromone global
Pada sistem ini, pembaruan pheromone secara global hanya dilakukan oleh semut yang membuat tur terpendek sejak permulaan percobaan. Pada akhir sebuah iterasi, setelah semua semut menyelesaikan tur mereka, sejumlah pheromone ditaruh pada ruas-ruas yang dilewati oleh seekor semut yang telah menemukan tur terbaik (ruas-ruas yang lain tidak diubah). Tingkat pheromone itu diperbarui dengan menerapkan aturan pembaruan pheromone global yang ditunjukkan oleh persamaan (4).
�(�,�)←(1− �).�(�,�) +�.∆�(�,�) … … … (4)
∆�(�,�) =����
−1
0
dimana:
�(�,�) = nilai pheromone akhir setelah mengalami pembaruan lokal
��� = panjang jalur terpendek pada akhir siklus
� = parameter dengan nilai antara 0 sampai 1
∆� = perubahan pheromone
∆�(�,�) bernilai 1
��� jika ruas (t,v) merupakan bagian rute terbaik namun jika
sebaliknya ∆�(�,�) = 0. � adalah tingkat kepentingan relatif dari pheromone atau besarnya bobot yang diberikan terhadap pheromone, sehingga solusi yang dihasilkan cenderung mengikuti sejarah masa lalu dari semut dari perjalanan sebelumnya, dimana nilai parameter �adalah ≥ 0, dan ��� adalah panjang dari tur terbaik secara global sejak permulaan percobaan. Pembaruan pheromone global dimaksudkan untuk
(34)
memberikan pheromone yang lebih banyak pada tur-tur yang lebih pendek. Persamaan (3) menjelaskan bahwa hanya ruas-ruas yang merupakan bagian dari tur terbaik secara global yang akan menerima penambahan pheromone [8] .
(35)
BAB III
ANALISIS DAN PERANCANGAN SISTEM
2.3 Analisis Penjadwalan Kegiatan Belajar Mengajar di Sekolah Dasar
Penyusunan jadwal kegiatan belajar mengajar di SD dilakukan sekali dalam setiap tahun. Bagian akademik menyusun jadwal pada tahun ajaran baru awal bulan Juli. Data yang dibutuhkan dalam proses penjadwalan adalah penentuan jumlah waktu mengajar untuk setiap guru dalam setiap minggu, mata pelajaran apa saja yang akan diampu oleh setiap guru, mendata ketersediaan waktu mengajar oleh setiap guru, ruangan yang akan digunakan untuk proses belajar mengajar dan setiap kelas akan ditentukan seorang guru kelas.
Masalah dalam penjadwalan mata pelajaran adalah bagaimana menempatkan guru dan mata pelajaran yang diampu pada suatu ruangan dan waktu sehingga tidak terjadi konflik. Penyusunan dimulai dengan memprioritaskan guru yang memiliki batasan ketersedian waktu mengajar. Selanjutnya menyusun jadwal sesuai dengan batasan yang telah ditentukan hingga setiap guru sudah disusun sesuai dengan mata pelajaran yang diampu, ruangan, dan waktu mengajarnya. Hasil akhir dari penyusunan penjadwalan kegiatan belajar mengajar ini adalah jadwal selama setahun yang disusun berdasarkan guru, ruangan dan mata pelajaran.
. Pengecekan jadwal apakah sudah optimal dilakukan selama seminggu proses belajar mengajar. Apabila terdapat bentrokan jadwal maka bagian akademik akan melakukan perbaikan penjadwalan hingga tidak ada bentrokan jadwal kegiatan belajar mengajar.
(36)
2.4 Faktor-faktor yang Mempengaruhi Penjadwalan Kegiatan Belajar Mengajar di Sekolah Dasar
Komponen utama pada penjadwalan kegiatan belajar mengajar di sekolah dasar adalah sebagai berikut:
3.2.1 Guru
Guru adalah tenaga pengajar dari mata pelajaran. Seorang guru dapat mengajar satu mata pelajaran atau lebih. Seorang guru tidak dapat mengajar lebih dari satu mata pelajaran pada waktu yang sama. Setiap guru memiliki jumlah waktu mengajar yang telah ditentukan dalam setiap minggu. Misalnya, seorang guru A memiliki jam pertemuan sebanyak 32 kali pertemuan dalam seminggu. Pada SD Swasta Sultan Agung dengan data tahun ajaran 2010/2011 jumlah guru yang mengajar sebanyak 41 guru.
Tabel 3.1. Daftar beberapa guru dan mata pelajaran yang diampu
No Nama Guru Mata Pelajaran yang diampu
Jumlah Waktu Mengajar dalam
seminggu (jam)
1 Lilis S. Arifin Matematika 6A, Matematika 5D, Matematika 4C, Matematika 4D.
32
2 Sherly Bahasa Mandarin 6C, Bahasa Mandarin 5C, Bahasa Mandarin 5D, Bahasa Mandarin 4A, Bahasa Mandarin 4B, Bahasa Mandarin 3C, Bahasa Mandarin 3D.
14
3 Robert Sinaga Penjas 6B, Penjas 6C, Penjas 5A, Penjas 5B, Penjas 5C, Penjas 5D, Penjas 4C, Penjas 2A, Penjas 2B, Penjas 2C, Penjas 1D, Penjas 2D.
(37)
Tabel 3.1. Daftar beberapa guru dan mata pelajaran yang diampu (lanjutan)
3.2.2 Ruangan
Ruangan adalah tempat berlangsungnya kegiatan belajar mengajar. Untuk Sekolah Dasar terdiri dari enam tingkatan kelas, yaitu kelas 1 sampai kelas 6. Di Sekolah Dasar Swasta Sultan Agung setiap tingkatan terdiri dari kelas paralel. Banyaknya ruangan tergantung pada jumlah kelas paralel. Untuk kelas 1 sampai kelas 5 masing-masing terdiri dari empat kelas paralel. Kelas 1 terdiri dari kelas 1A, 1B, 1C dan 1D. Kelas 2 terdiri dari kelas 2A, 2B, 2C dan 2D. Kelas 3 terdiri dari kelas 3A, 3B, 3C dan 3D. Kelas 4 terdiri dari kelas 4A, 4B, 4C dan 4C. Kelas 5 terdiri dari kelas 5A, 5B, 5C dan 5D. Sedangkan kelas 6 terdiri tiga kelas paralel, yaitu kelas 6A, 6B dan 6C
3.2.3 Mata Pelajaran
Mata pelajaran di sekolah dasar pada semester ganjil dan semester genap sama. Oleh karena itu, penjadwalan dilakukan hanya setahun sekali. Setiap mata pelajaran memiliki alokasi waktu pertemuan yang telah ditetapkan selama seminggu. Setiap mata pelajaran diajarkan oleh seorang guru yang sesuai dengan kompetensi guru tersebut. Seorang guru dapat mengampu lebih dari satu jenis mata pelajaran yang berbeda.
No Nama Guru Mata Pelajaran yang diampu Jumlah Waktu
Mengajar dalam seminggu (jam)
4 Amanda Reyna Bahasa Indonesia 6B. 8
5 Lissa Bahasa Inggris 3A, Bahasa Inggris 3D, Bahasa Inggris 2A, Bahasa Inggris 2B, Bahasa Inggris 1C, Bahasa Inggris 1D.
(38)
Tabel 3.2 Mata Pelajaran di SD Swasta Sultan Agung
3.2.4 Waktu
Waktu digunakan untuk mengalokasikan guru, ruangan, dan mata pelajaran ke dalam sebuah jadwal yang telah memenuhi batasan-batasan yang telah ditentukan sehingga dihasilkan sebuah jadwal yang bebas konflik. Satuan waktu yang digunakan di Sekolah Dasar Swasta Sultan Agung adalah 40 menit untuk 1 kali pertemuan. Dalam seminggu proses belajar mengajar dimulai dari hari Senin hingga Sabtu. Jumlah waktu pertemuan untuk kelas 1 dan 2 dalam setiap minggu ada 32 slot waktu pertemuan; kelas 3, 4 dan 5 ada 40 slot waktu pertemuan; kelas 6 ada 42 slot waktu pertemuan.
No. Nama Mata
Pelajaran
Jumlah Pertemuan per Minggu untuk Setiap Kelas
Jumlah Guru
1 2 3 4 5 6
1 Matematika 7 7 8 8 8 8 12
2 Bahasa Indonesia 7 7 8 8 8 8 15 3 Agama (Islam,
Kristen, Budha) 3 3 3 3 3 3 3
4 IPA 3 3 5 5 5 5 11
5 IPS 2 2 5 5 5 5 11
6 Pkn 2 2 2 2 2 2 14
7 Prakarya 1 1 1 1 1 1 5
8 Seni Lukis 1 1 1 1 1 1 7
9 Seni Suara - - 1 1 1 1 1
10 Penjas 2 2 2 2 2 2 6
11 Bahasa Inggris 2 2 2 2 2 2 3 12 Bahasa Mandarin 2 2 2 2 2 2 3
13 Komputer - - - 2 1
(39)
Tabel 3.3 Daftar pembagian waktu kegiatan belajar mengajar dalam 1 minggu untuk setiap kelas
Tabel3.4 Contoh jadwal kegiatan belajar mengajar
Hari Senin Selasa,
Rabu
Kamis Jumat Sabtu
1,2 3,4, 5
6 1,2 3,4, 5
6 1,2 3,4, 5
6 1,2 3,4, 5
6 1,2 3,4, 5
6
07.30 – 08.10 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
08.10 – 08.50 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
08.50 – 09.10 Istirahat I
09.10 – 09.50 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
09.50 – 10.30 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
10.30 – 11.10 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
11.10 – 11.30 Istirahat II
11.30 – 12.10 √ √ √ √ √ √ √ √ √ √
12.10 – 12.50 √ √ √ √ √ √ √ √
12.50 – 13.30 √ √
Waktu Senin Selasa Rabu Kamis Jumat Sabtu
07.30 – 08.10 IPA B.Ind Matematika PKN Agama Penjas
08.10 – 08.50 IPA B.Ind Matematika PKN Agama Penjas
08.50 – 09.10 Istirahat
09.10 – 09.50 Matematika IPS IPA B.Ind Agama B.Ind
09.50 – 10.30 Matematika IPS B.Inggris B.Ind Matematika B.Ind 10.30 – 11.10 B.Inggris B.Mandarin B.Mandarin Matematika B.Ind Seni Lukis
11.10 – 11.30 Istirahat
11.30 – 12.10 - - - Prakarya - Matematika
Waktu Kelas
(40)
2.5 Analisis Proses Penjadwalan
3.3.1 Batasan – batasan (constraints) dalam Penjadwalan
Permasalahan yang muncul dalam penjadwalan kegiatan belajar mengajar dalam studi kasus ini adalah konflik yang terjadi antara guru, ruangan yang tersedia, dan jumlah waktu yang dapat digunakan. Konflik yang terjadi pada guru antara lain terjadi ketika seorang guru mengajar yang berbeda dalam dua ruangan atau lebih yang berbeda dalam suatu waktu tertentu, jumlah waktu mengajar seorang guru yang tidak dapat dialokasikan dengan tepat sesuai dengan jumlah waktu mengajar yang ditetapkan, serta adanya guru yang tidak dapat mengajar pada waktu tertentu. Konflik pada tingkat mata pelajaran antara lain terjadi ketika suatu mata pelajaran memiliki jumlah pertemuan berturut sebanyak lebih dari waktu yang telah ditetapkan dalam sehari, serta jumlah mata pelajaran yang tidak teralokasikan dengan tepat dalam seminggu. Sedangkan pada kriteria waktu,yang harus diperhatikan adalah bagaimana menyusun jadwal sesuai dengan slot waktu yang tersedia. Pada konflik waktu yang terjadi ketika tidak adanya waktu yang sesuai untuk seorang guru dikarenakan waktu tersebut sudah digunakan oleh guru yang lain.
Oleh karena itu, dibutuhkan batasan-batasan (constraints) untuk mengatasi dan menghindari masalah penjadwalan kegiatan belajar mengajar tersebut. Sehingga dalam proses penjadwalan sejumlah mata pelajaran serta guru pengampu dapat dialokasikan kedalam slot waktu yang tersedia sesuai dengan constraints yang telah ditentukan. Pada penjadwalan kegiatan belajar ini ada dua batasan yang digunakan dalam proses penjadwalan, antara lain:
a. Batasan keras (hard constraints)
Hard constraints dalam penjadwalan adalah batasan yang harus dipenuhi dan tidak boleh dilanggar dalam penyusunan sebuah jadwal kegiatan belajar mengajar. Berikut adalah batasan-batasan keras yang digunakan dalam kasus penjadwalan ini antara lain:
1. Tidak adanya bentrok guru, yaitu seorang guru hanya dapat mengajar pada satu ruangan dan waktu tertentu.
(41)
2. Tidak adanya bentrok ruangan, yaitu sebuah ruangan hanya dapat digunakan untuk proses belajar mengajar untuk suatu mata pelajaran dan waktu tertentu. 3. Jumlah waktu mengajar untuk setiap guru yang telah ditentukan harus tepat
dialokasikan dalam setiap minggunya. Misalnya guru A mendapat jam mengajar 23 jam dalam seminggu. Maka 23 jam waktu mengajar tersebut harus dialokasikan dengan tepat dalam seminggu;
4. Jumlah mata pelajaran untuk setiap kelas telah ditentukan dan harus tepat dialokasikan dalam setiap minggunya. Misalnya mata pelajaran matematika untuk kelas 1A memiliki jumlah pertemuan 7 kali setiap minggu. Maka 7 kali pertemuan tersebut harus dialokasikan dengan tepat dalam seminggu pada kelas 1A.
5. Seorang guru mengajar sesuai dengan mata pelajaran yang telah ditentukan. 6. Kegiatan belajar mengajar berlangsung dari hari Senin s.d Sabtu. Dan masing
masing kelas terdiri dari jumlah pertemuan yang telah ditentutkan.
7. Periode waktu kegiatan belajar mengajar satu pertemuan adalah 40 menit.
b. Batasan lunak (soft constraint)
Berbeda dengan hard constraint, batasan dalam soft constraint adalah kendala yang tidak selalu dapat terpenuhi dalam proses penyusunan jadwal kegiatan belajar mengajar. Walaupun tidak harus terpenuhi tetapi jadwal kegiatan belajar mengajar yang dihasilkan harus semaksimal mungkin berusaha memenuhi ketentuan soft constraint ini. Berikut ini beberapa contoh soft constraint dalam kasus penjadwalan kegiatan belajar mengajar di sekolah:
1. Preferensi jadwal pengajar; misal pengajar A bisa mengajar hari apa saja asalkan pada pukul 09.00-13.00. Pengajar B bisa mengajar hanya pada hari Senin-Kamis pada pukul 07.30-10.00.
2. Seorang guru tidak boleh mendapatkan jadwal mengajar dengan mata pelajaran yang sama lebih dari tiga pertemuan dalam sehari pada kelas yang sama.
(42)
3.3.2 Perancangan Flowchart Sistem
Sistem yang dirancang adalah penjadwalan mata pelajaran dengan algoritma Ant Colony System (ACS) dapat dilihat pada Gambar 3.1.
Mulai
Data Akademik, Parameter Semut
Constraint Penjadwalan
Probabilitas
ACS
Optimasi
Daftar Jadwal Mata pelajaran
Selesai
Gambar 3.1 Flowchart sistem
Pada Gambar 3.1 di atas proses awal adalah pemasukan data akademik dan data parameter semut untuk diolah pada proses constraint penjadwalan. Hasil constraint
penjadwalan berupa estimasi jadwal mata pelajaran yang diolah selanjutnya untuk mendapatkan probabilitas jadwal yang memungkinkan. Probabilitas jadwal yang dihasilkan diolah dengan algoritma ACS untuk mendapatkan daftar jadwal mata pelajaran yang sesuai dengan constraint penjadwalan.
(43)
3.3.3 Penerapan Algoritma Ant Colony System dalam Penjadwalan
Algoritma Ant Colony System merupakan teknik probabilistik untuk menyelesaikan masalah komputasi dengan menemukan rute terpendek dari suatu graf. Dalam mencari rute terpendek dalam algoritma semut, ‘semut-semut tiruan’ akan bertindak seperti agen, dimana setiap semut memiliki rute masing-masing dari titik awal menuju titik tujuan dengan tidak mengunjungi suatu titik lebih dari satu kali untuk mendapatkan hasil terbaik.
3.3.3.1Karakteristik Algoritma Ant Colony System
Terdapat tiga karakteristik utama dari algoritma semut, yaitu aturan transisi status, aturan pembaruan feromon lokal, dan aturan pembaruan feromon global. Untuk mencapai penjadwalan yang optimal semut harus melakukan beberapa tahap diantaranya:
Tahap I: Inisialisasi Parameter.
Tahap awal dari proses penjadwalan ini adalah inisialisasi parameter. Parameter-parameter yang digunakan dalam proses ini antara lain:
a. Seed sequence adalah kumpulan dari mata pelajaran tawar yang ditempatkan pada sejumlah waktu dan ruang berdasarkan ketersediaan waktu mengajar guru berdasarkan pada constraint yang ada.
b. α, β merupakan parameter-parameter lain yang mengontrol bobot relatif antara jejak feromon dan nilai heuristik. Jika α=0, maka pencarian akan berdasarkan nilai heuristik semata. Jika sebaliknya (β=0), maka pencarian hanya dituntun oleh informasi jejak feromon.
c. ρ adalah sebuah koefisien dimana (1-ρ) menunjukkan tingkat evaporasi
feromon. ρ memiliki nilai yang sama untuk semua iterasi yaitu 0.01.
d. Zbest adalah besarnya jumlah data seed sequence dalam enam hari aktif belajar. Nilai Zbest akan diperbarui pada setiap iterasi.
e. Tmax dan Tmin adalah batas maksimum dan minimum dari nilai intensitas elemen feromon. Tmax dan Tmin diperoleh dari Zbest dengan formula sebagai berikut:
(44)
Tmax= 1/((1-ρ)Zbest)
Tmin = Tmax /5
(t) ij adalah intensitas jejak feromon mata pelajaran i diposisi k. Pada iterasi awal (t)
ij yaitu Tmax.
Tahap II: Iterasi
Suatu iterasi akan menghasilkan sebuah solusi yaitu jadwal dari urutan sejumlah mata pelajaran yang ditawarkan. Solusi dari setiap iterasi dioptimalkan lagi dalam iterasi selanjutnya berdasarkan jejak feromon yang nilainya berubah-ubah tergantung pada solusi yang dihasilkan pada iterasi sebelumnya. Iterasi pada penjadwalan ini menggunakan sejumlah semut dalam beberapa siklus untuk mencari nilai probabilitas setiap jadwal yang ditawarkan dalam 1 minggu. Dari hasil probabilitas, diperoleh nilai probabilitas yang tertinggi yang merupakan solusi jadwal. Setiap semut yang telah menyelesaikan 1 iterasi dilakukan update feromon untuk menempatkan semut yang selanjut pada siklus berikutnya. Update global dilakukan setelah semua semut melakukan iterasi untuk memperoleh nilai probabilitas.
a. Update Local Feromon
Setiap semut setelah selesai menghitung probabilitas setiap jadwal yang ditawarkan dilakukan update local feromon.
b. Aturan Update Global Feromon
Update global feromon hanya dilakukan oleh semut yang membuat jadwal yang memungkinkan sejak awal iterasi. Pada akhir sebuah siklus, setelah semua semut menyelesaikan perjalanan mereka, intensitas feromon diperbaharui pada sisi-sisi yang dilewati oleh seekor semut yang telah menemukan jadwal yang optimum. Tingkat feromon diperbarui dengan menerapkan aturan pembaruan feromon global yang ditunjukkan oleh persamaan (4).
(
1)
. ( , ) . ( , ) ),
(t v
α
τ
t vα
τ
t vτ
← − + ∆ ...persamaan (4) ∈ = ∆ − 0 ) , ( ) , ( 1 terbaik rute v t jika L v t gb
τ
(45)
dimana:
τ(t,v) : nilai feromon akhir setelah mengalami pembaruan lokal
Lgb :banyaknya matapelajaran pada akhir siklus. α : tetapan pengendali feromon.
∆τ :perubahan intensitas feromon.
3.3.3.2Parameter Algoritma Ant Colony System
Parameter algoritma Ant Colony System dalam mencapai solusi penjadwalan adalah dengan menginisialisasi harga parameter:
1. Intensitas feromon (τij).
2. Tetapan siklus semut (q0).
3. Tetapan pengendali intensitas visibilitas (β), nilai β ≥ 0. 4. Tetapan pengendali feromon (α), nilai α ≥ 0.
5. Jumlah semut (m).
6. Tetapan penguapan feromon (ρ), nilai ρ harus > 0 dan < 1. 7. Jumlah siklus maksimum (NCmax).
3.3.3.3Pembentukan Solusi
Proses pembentukan solusi dilakukan dengan menambahkan mata pelajaran satu persatu ke dalam solusi (jadwal). Untuk memilih mata pelajaran i yang belum terjadwal untuk dijadwalkan pada posisi k dalam jadwal adalah sebagai berikut:
1. Pembentukan solusi sementara dengan melakukan hard constraint untuk setiap slot jadwal terhadap guru dan pelajaran.
2. Tentukan nilai produk feromonA(ij) ���=����(�)�
|��|:���(�) =����(�)�
�
������.
3. Tentukan nilai T(ik) yaitu akumulasi dari produk feromon T(ik) = ∑ �(��).
4. Hitung Visiabiltas Maksimun dan minimum untuk setiap jadwal (Tmax,Tmin). 5. Hitung Probabilitas setiap jadwal mata pelajaran (Probabilitas(k)=
(46)
3.3.3.4Flowchart Penjadwalan Ant Colony System (ACS)
Berdasarkan penjelasan sebelumnya, maka dapatlah digambarkan flowchart
Penjadwalan ACS seperti Gambar 3.2 dibawah ini: Mulai
Input data kelas , jam , hari , mata pelajaran, ampu, ketersedian guru
Inisialisasi Paramater
Inisialisasi Jadwal
Siklus = Siklus -1
Semut = Semut -1
Hitung Constraint Jadwal (k)
Bangkitkan Bil.Random
Hitung Produk Feromon
Hitung u = Bilangan random x Jumlah Semut
Semut = 0
Siklus = 0
Jadwal mata pelajaran No
Yes
Yes
Selesai
No No
( )ij
A ( )ik ( )ij T =∑A
Hitung Probabilitas Jadwal (k) Pk(ik) = Jadwal (k)
Hitung Probabilitas jadwal (k) T(ik) Maks = Jadwal(k)
Yes
Jadwal (k) = Jadwal ik u <= Jumlah Mata Pelajaran
(47)
1. Menginisialisasi parameter algoritma semut: a. Intensitas Feromon: τij = 0,01
b. Tetapan siklus semut: q0 = 0,1
c. Pengendalian Feromon: α = 0,1 d. Pengendalian Visibilitas: β = 1 e. Banyak semut: m = 2
f. Penguapan Feromon: ρ = 0,5 g. Banyak Siklus: NCmax = 2
Dari nilai parameter diatas nilai α dan β harus lebih besar atau sama dengan 0 sementara nilai ρ harus diantara 0 dan 1.
2. Inisialisasi jadwal
Data jadwal yang akan diinisialisasi adalah kelas, hari dan jam yang berfungsi sebagai data awal untuk proses penjadwalan. Inisialisasi jadwal dapat dilihat pada Tabel 3.5.
Tabel 3.5 Inisialisasi jadwal No. Urut Jadwal Kelas Hari Jam
1 1 1 1
2 2 1 2
3 3 1 3
4 4 1 4
5 5 1 5
Keterangan: Semua data inisialisasi memiliki tipe integer antara lain: Nomor Urut Jadwal : IDJadwal
Hari : IDHari
Jam : IDJam
Kelas : IDKelas
3. Inisialisasi Constraint Jumlah Jam Mata pelajaran
Jumlah jam mata pelajaran maksimum dalam 1 hari dan yang harus terpenuhi dalam 1 minggu dimasukkan ke dalam Constraint jumlah jam mata pelajaran seperti pada Tabel 3.6.
(48)
Tabel 3.6. Constraint jumlah jam mata pelajaran Mata pelajaran Maksimun 1 hari 1 Minggu
Matematika 3 8
Bahasa Indonesia 3 8
IPA 3 3
IPS 3 3
Bahasa Inggris 2 2
4. Penjadwalan Dengan ACS
Untuk memasukkan setiap mata pelajaran ke dalam jadwal, dilakukan aturan seperti
constraint ketersediaan guru dan jumlah jam mata pelajaran (Tabel 3.5 dan 3.6) diatas. Pertama-tama dilakukan penghitungan jumlah jadwal setiap kelas dalam 1 minggu lalu hitung produk pheromone untuk semua jadwal diatas dengan persamaan berikut:
���=����(�)�|�
�|:���(�) =����(�)�
�
������.
2.6 Spesifikasi Keperluaan Sistem
Dalam skripsi ini, dibangun sebuah sistem penjadwalan kegiatan belajar mengajar yang mengimplementasikan algoritma ant colony system. Sistem ini dirancang menggunakan metode pendekatan atas-bawah (Top-Down Approach) sehingga perancangan dimulai dari bentuk yang paling umum, kemudian diturunkan secara bertahap menjadi bentuk yang lebih detail. Spesifikasi umum kebutuhan sistem menjelaskan dasar pembuatan rancangan sistem yang terdiri dari fungsi sistem, tujuan sistem, masukan dan keluaran sistem.
3.4.1 Fungsi Sistem
Sistem yang akan dibangun memiliki fungsi sebagai berikut:
1. Mengelola semua data yang berhubungan dengan penjadwalan kegiatan belajar mengajar di sekolah dasar (mata pelajaran, waktu kegiatan belajar mengajar, guru, ruangan, jumlah waktu per ruangan, mata pelajaran yang diampu oleh setiap guru, dan ketersedian waktu guru).
2. Mengisi slot jadwal secara otomatis.
(49)
3.4.2 Masukan Sistem
Input atau masukan dari aplikasi penjadwalan ini adalah:
1. Data guru, pelajaran, kelas, hari, jam, ampu, ketersediaan guru.
2. Parameter-parameter yang diperlukan dalam perhitungan algoritma ACS, yaitu: a. Intensitas feromon antar titik (τij).
b. Tetapan siklus semut (q0).
c. Tetapan pengendali intensitas visibilitas (β). d. Tetapan pengendali feromon (α).
e. Jumlah semut (m).
f. Tetapan penguapan feromon (ρ). g. Jumlah siklus maksimum (NCmax).
3.4.3 Keluaran Sistem
Keluaran (output) sistem adalah daftar penjadwalan yang dikelompokkan berdasarkan nama guru serta kelas.
2.7 Perancangan Sistem Penjadwalan Kegiatan Belajar Mengajar
Tujuan dari perancangan sistem adalah untuk menentukan hasil akhir dari aplikasi yang akan dibangun dengan melakukan beberapa proses untuk memperoleh hasil tersebut. Metode perancangan yang digunakan dalam pembuatan penjadwalan kegiatan belajar mengajar di sekolah dasar menggunakan algoritma ant colony system
dan menggunakan alat-alat pengembangan dalam bentuk DFD (Data Flow Diagram), diagram relasi antar tabel dan rancangan antarmuka (interface).
3.5.1 Perancangan DFD (Data Flow Diagram)
3.5.1.1 Diagram Konteks (DFD Level 0)
Diagram konteks adalah diagram yang terdiri dari suatu proses dan menggambarkan ruang lingkup suatu sistem. Dalam aplikasi ini pengguna sebagai admin akan
(50)
memasukkan data berupa data mata pelajaran, guru, kelas, hari, jam, ketersediaan guru, parameter semut, serta admin yang akan digunakan dalam proses penjadwalan dengan menggunakan algoritma ACS. Diagram konteks perancangan aplikasi penjadwalan kegiatan belajar mengajar dengan algoritma ACS dapat dilihat pada gambar 3.3 dibawah ini.
Admin
Penjadwalan Kegiatan Belajar Mengajar dengan Algoritma ACS
0 Data hari, jam, guru, kelas, jumlah les per kelas,
mata pelajaran, pengampu mata pelajaran, ketersedian guru dan data admin
Jadwal Kegiatan Belajar Mengajar
Gambar 3.3 Diagram konteks
Tabel 3.7 Spesifikasi proses diagram konteks
PROSES 0
Penjadwalan Kegiatan Belajar Mengajar dengan Algoritma Ant Colony System
Input Input Data Penjadwalan
Proses Dalam proses ini, admin akan melakukan penginputan data berupa data hari, data jam, data guru,data kelas, data jumlah per kelas, data mata pelajaran, data pengampu mata pelajaran, data ketersedian guru dan data admin yang akan diproses dengan menggunakan algoritma ant colony system. Selanjutnya sistem akan memberikan hasil output berupa jadwal kegiatan belajar mengajar.
Output Jadwal Kegiatan Belajar Mengajar
3.5.1.2 DFD (Data Flow Diagram) Level 1
Setelah dibuat diagram konteks, langkah selanjutnya adalah menurunkan diagram konteks menjadi bentuk yang lebih detail, yaitu DFD (Data Flow Diagram) level 1.DFD (Data Flow Diagram) level 1 mengilustrasikan bagaimana data diproses oleh sistem,dalam hal ini inputdan output dari sistem. Berdasarkan diagram konteks pada Gambar 3.3 diatas, DFD level 1 memiliki empat proses yaitu proses Verifikasi Otoritas, Login, Input Data serta Penjadwalan. DFD level 1 dapat dilihat seperti pada Gambar 3.4.
(51)
Admin 1.1 Login 1.2 Input Data 1.3 Proses Penjadwalan dengan ACS User User Id, Password
Status Data Guru Data Pelajaran Data Kelas Data Hari Data Jam Data Parameter
Data Les per Kelas
Data Ampu
Data Ketersediaan Input data guru
Input data pelajaran
Input data kelas
Input data hari
Input data jam
Input data les
Input data ampu
Output data guru
Output data pelajaran
Output data kelas
Output data hari
Output data jam
Output data parameter
Output data les per kelas
Output data les per ampu
Output data ketersediaan Input User Id, Password
Login unvalid
Login Valid
Jadwal Mata pelajaran
Input data parameter
Input data ketersediaan mengajar guru
Gambar 3.4DFD level 1
Pada proses Login, sistem membutuhkan data masukan berupa UserID dan Password, kemudian proses akan memberikan otoritas dengan cara membandingkan ke data
User. Proses-proses yang terjadi pada DFD Level 1 proses 1 diuraikan pada Tabel 3.8 di bawah ini.
Tabel 3.8 Spesifikasi proses DFD level 1 proses 1
PROSES P1.1
Proses Login
Input UserID
Password
Proses Dalam proses ini, admin login dengan mengisi user ID dan password
(52)
Masing-masing entitas data yang tercantum pada DFD level 1 proses 1 ditampilkan pada tabel 3.9 di bawah ini.
Tabel 3.9 Kamus data pada DFD level 1 proses 1
Nama Keterangan
UserID Nama Penguna
Password Kata sandi
Pada proses Input Data, dilakukan penginputan data awal yang akan diproses menjadi data jadwal pelajaran oleh user. Proses-proses yang terjadi pada DFD Level 1 proses 2 diuraikan pada Tabel 3.10 di bawah ini.
Tabel 3.10 Spesifikasi proses DFD level 1 proses 2 PROSES P1.2
Proses Input Data Input Data Guru,
Kelas,Pelajaran,Hari,Jam,Ampu,Parameter,Ketersediaan Proses Proses Penginputan data.
Output Data Guru,
Kelas,Pelajaran,Hari,Jam,Ampu,Parameter,Ketersediaan
Masing-masing entitas data yang tercantum pada DFD level 1 proses 2 ditampilkan pada Tabel 3.11 di bawah ini.
Tabel 3.11 Kamus data pada DFD level 1 proses 2
Nama Keterangan
Data Guru Terdiri dari IDGuru, Nama Guru, Jumlah pertemuan dalam seminggu.
Data Ruangan Terdiri dari IDRuangan, Nama Ruangan
Data Pelajaran Terdiri dari IDPelajaran, Nama Pelajaran, Ruangan, Alokasi waktu / minggu.
Data Hari Terdiri dari IDHari, Nama Hari dalam seminggu Data Jam Terdiri dari IDJam, Nama Jam dalam seminggu Data Ampu Terdiri dari mata pelajaran yang diampu setiap guru Data Parameter Parameter Semut yang akan digunakan dalam proses
penjadwalan
(53)
3.5.2 Basis Data
Pembuatan aplikasi ini membutuhkan database yang akan digunakan untuk menyimpan data-data. Data-data tersebut disimpan kedalam tabel-tabel tertentu. Berikut tabel-tabel yang digunakan dalam aplikasi penjadwalan kegiatan belajar mengajar antara lain :
3.5.2.1 Tabel Guru
Tabel ini digunakan untuk menyimpan data seluruh pengajar, terdiri dari : IDGuru, NmGuru, JumlahLes, Status, StatusSedia mengajar setiap guru dalam seminggu. Tabel guru dapat dilihat pada Tabel 3.12.
Tabel 3.12 Tabel guru Nama Field Data Type Length Keterangan IDGuru (PK) smallint 2 ID Guru
NmGuru nchar 50 Nama Guru
JmlLes smallint 2 Jumlah pertemuan dalam seminggu Status char 1 Status yang digunakan untuk ampu StatusSedia char 1 Status yang digunakan untuk
ketersediaan waktu mengajar
3.5.2.2 Tabel Kelas
Tabel ini digunakan untuk menyimpan seluruh data kelas , terdiri dari : IDKelas dan NmKelas. Tabel Kelas dapat dilihat pada Tabel 3.13.
Tabel 3.13 Tabel Kelas
Nama Field Data Type Length Keterangan IDKelas (PK) smallint 2 ID Kelas
(54)
3.5.2.3 Tabel Jam
Tabel ini digunakan untuk menyimpan data jam belajar mengajar, terdiri dari : IDJam dan NmJam. Tabel Jam dapat dilihat pada Tabel 3.14.
Tabel 3.14 Tabel Jam
Nama Field Data Type Length Keterangan
IDJam (PK) smallint 2 ID Jam
NmJam nchar 50 Nama Jam
3.5.2.4 Tabel Hari
Tabel ini digunakan untuk menyimpan data hari belajar mengajar, terdiri dari : IDHari dan NmHari. Tabel Hari dapat dilihat pada Tabel 3.15.
Tabel 3.15 Tabel Hari
Nama Field Data Type Length Keterangan IDHari (PK) smallint 2 ID Hari
NmHari nchar 50 Nama Hari
3.5.2.5 Tabel Pelajaran
Tabel ini digunakan untuk menyimpan seluruh data mata pelajaran yang diajarkan, terdiri dari : IDPel, NmPelajaran, Jumlah, dan Status. Tabel Pelajaran dapat dilihat pada Tabel 3.16.
Tabel 3.16 Tabel Pelajaran Nama Field Data Type Length Keterangan IDPel (PK) smallint 2 ID Pelajaran IDKelas (FK1) smallint 2 ID Kelas NmPelajaran nchar 35 Nama Pelajaran
Jumlah smallint 2 Jumlah pertemuan tiap minggu setiap mata pelajaran
Status char 1 Status yang digunakan pada saat penyimpanan data.
(55)
3.5.2.6 Tabel Ampu
Tabel ini digunakan untuk menyimpan seluruh data id ampu yang diambil oleh setiap guru, terdiri dari : IDampu dan IDGuru. Tabel Ampu dapat dilihat pada Tabel 3.17.
Tabel 3.17 Tabel Ampu
Nama Field Data Type Length Keterangan
IDAmpu (PK) smallint 2 ID Ampu
IDGuru (FK1) smallint 2 ID Guru
3.5.2.7 Tabel DAmpu
Tabel ini digunakan untuk menyimpan data detail ampu setiap mata pelajaran yang diampu oleh setiap guru, terdiri dari : IDDampu, IDAmpu, dan IDPel. Tabel DAmpu dapat dilihat pada Tabel 3.18.
Tabel 3.18 Tabel DAmpu Nama Field Data Type Length Keterangan IDDAmpu (PK) smallint 2 ID Detail Ampu IDAmpu (FK1) smallint 2 ID Ampu IDPel (FK2) smallint 2 ID Pelajaran
Status char 1 status data ID detail Ampu telah
digunakan.
3.5.2.8 Tabel User
Tabel ini digunakan untuk menyimpan data user dari sistem, terdiri dari : UserID, dan Passwd. Tabel User dapat dilihat pada Tabel 3.19.
Tabel 3.19 Tabel User
Nama Field Jenis Field Ukuran Field Keterangan
UserID (PK) char 20 User ID
(56)
3.5.2.9 Tabel Ketersedian Hari
Tabel ini digunakan untuk menyimpan data ketersedian hari dan jam mengajar oleh setiap guru, terdiri dari : IDSediahari, IDGuru, IDHari, dan IDJam. Tabel Ketersedian Hari dapat dilihat pada Tabel 3.20.
Tabel 3.20 Tabel Ketersediaan Hari Nama Field Data Type Length Keterangan IDSediaHari (PK) smallint 2 ID Sedia Guru IDGuru (FK1) smallint 2 ID Guru IDJam (FK2) smallint 2 ID Jam IDHari (FK3) smallint 2 ID Hari
Status char 1 Status yang digunakan saat
penyimpanan data ketersediaan hari.
3.5.2.10 Tabel Jumlah Pertemuan
Tabel ini digunakan untuk menyimpan data jumlah pertemuan setiap kelas dalam satu hari pertemuan, terdiri dari : IDLes, IDKelas, IDHari, JumlahLes. Tabel Jumlah Les dapat dilihat pada Tabel 3.21.
Tabel 3.21 Tabel Jumlah Pertemuan Nama Field Data Type Length Keterangan IDLes (PK) smallint 2 ID Pertemuan IDKelas (FK1) smallint 2 ID Kelas IDHari (FK2) smallint 2 ID Hari
JumlahLes smallint 2 Jumlah waktu pertemuan setiap kelas dalam seminggu
3.5.2.11 Tabel Jadwal Guru
Tabel ini digunakan untuk menyimpan daftar jadwal guru yang telah berhasil dijadwalkan, terdiri dari IDJadwalGuru, IDJadwal, IDKelas, IDHari, IDJam, IDGuru, IDPel, Ket. Tabel Jadwal Guru dapat dilihat Tabel 3.22.
(1)
rsHapus.Open "Delete from ketersediaanhari where IDGuru=" & IDGuru & " and IDSediaHari=" & IDSediaHari & "", CN, 1, 2
Set rsHapus = Nothing
Set rsHapus = New ADODB.Recordset
rsHapus.Open "Delete from TempKetersediaanHari where IDGuru=" & IDGuru & " and IDSediaHari=" & IDSediaHari & "", CN, 1, 2
Set rsHapus = Nothing 'End If
'Call Bersih SegarSediaTemp
MsgBox "data sudah dihapus" cmdCari.Enabled = False cmdHapus.Enabled = False cmdUbah.Enabled = True cmdUbah.SetFocus
End Sub
12. Frm User
Option ExplicitDim rsPasswd As Recordset 'Dim UserID As Text
Private Sub cmdBatal_Click() txtUserID.Text = ""
txtPasswd.Text = "" bolUbah = False bolTambah = False bolCari = False
cmdUbah.Enabled = False cmdHapus.Enabled = False cmdCari.Enabled = True cmdSimpan.Visible = False cmdSimpan.Enabled = False cmdTambah.Visible = True cmdTambah.Enabled = True cmdTambah.SetFocus
End Sub
Private Sub cmdcari_Click() bolCari = True
cmdTambah.Enabled = False cmdCari.Enabled = False txtUserID.Locked = False txtUserID.SetFocus
End Sub
Private Sub cmdHapus_Click() rsCari.Delete
(2)
Bersih
MsgBox "User sudah di hapus ..." cmdUbah.Visible = True
cmdUbah.Enabled = False cmdHapus.Enabled = False cmdCari.Enabled = True cmdSimpan.Visible = False cmdTambah.Visible = True cmdTambah.Enabled = True cmdTambah.SetFocus
End Sub
Private Sub cmdKeluar_Click() Unload Me
End Sub
Private Sub cmdSimpan_Click() 'If bolTambah = True Then ' Call Save
'End If
If txtUserID.Text <> "" And txtPasswd.Text <> "" Then Set rsCari = New ADODB.Recordset
rsCari.Open "Select * from [User] where UserID='" & txtUserID.Text & "'", CN, adOpenDynamic, adLockOptimistic If Not rsCari.EOF Then
MsgBox "User ID sudah ada" txtUserID.Text = ""
txtUserID.SetFocus Else
Set rsSave = New ADODB.Recordset
rsSave.Open "[User]", CN, adOpenDynamic, adLockOptimistic
rsSave.AddNew
rsSave!UserID = txtUserID.Text rsSave!Passwd = txtPasswd.Text rsSave.Update
txtUserID.Text = "" txtPasswd = "" bolTambah = False
MsgBox "Data sudah disimpan" 'Call Segar
cmdTambah.Visible = True cmdSimpan.Visible = False cmdTambah.Enabled = True cmdCari.Enabled = True cmdTambah.SetFocus Set rsSave = Nothing
(3)
End If Else
MsgBox "Data belum lengkap" txtUserID.Enabled = True txtUserID.SetFocus
End If End Sub
Private Sub cmdTambah_Click() bolTambah = True
cmdTambah.Visible = False cmdSimpan.Visible = True cmdCari.Enabled = False cmdCari.Enabled = False txtUserID.Locked = False txtUserID.SetFocus
End Sub
Private Sub cmdUbah_Click() If bolUbah = True Then
Set rsUbah = New ADODB.Recordset
rsUbah.Open "Update [User] Set Passwd ='" & txtPasswd.Text & "' where UserID ='" & txtUserID.Text & "'", CN, adOpenDynamic,
adLockOptimistic
MsgBox "Data sudah diubah" bolUbah = False
MaTi Bersih
cmdUbah.Enabled = False cmdHapus.Enabled = False cmdCari.Enabled = True cmdSimpan.Visible = False cmdTambah.Visible = True cmdTambah.Enabled = True cmdTambah.SetFocus
End If End Sub
Private Sub Form_Activate() txtUserID.Locked = True txtPasswd.Text = "" txtUserID.Text = "" bolUbah = False bolTambah = False bolCari = False
cmdUbah.Visible = True cmdUbah.Enabled = False cmdHapus.Enabled = False cmdCari.Enabled = True
(4)
cmdSimpan.Visible = False cmdTambah.Enabled = True cmdTambah.SetFocus
End Sub Sub MaTi()
txtUserID.Locked = True txtPasswd.Locked = True 'cmdUbah.Enabled = False 'cmdHapus.Enabled = False End Sub
Sub Bersih()
txtUserID.Text = "" txtPasswd.Text = "" End Sub
Private Sub Form_Load() Koneksi
End Sub
Private Sub txtPasswd_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then
If bolTambah = True Then cmdSimpan.Visible = True cmdTambah.Visible = False cmdSimpan.Enabled = True cmdTambah.Enabled = False cmdSimpan.SetFocus
ElseIf bolUbah = True Then cmdUbah.Enabled = True cmdUbah.SetFocus
End If End If End Sub Sub Save()
If txtUserID.Text <> "" And txtPasswd.Text <> "" Then Set rsPasswd = New ADODB.Recordset
rsPasswd.Open "Select * from [User] where UserID='" & txtUserID.Text & "' and Passwd='" & txtPasswd.Text & "'", CN, adOpenDynamic, adLockOptimistic
If bolTambah = True Then
If rsPasswd.EOF = True Then
Set rsSimpan = New ADODB.Recordset
rsSimpan.Open "select * from [User]", CN, adOpenDynamic, adLockOptimistic
rsSimpan.AddNew
rsSimpan.Fields("UserID") = txtUserID.Text rsSimpan.Fields("Passwd") = txtPasswd.Text rsSimpan.Update
(5)
MaTi Bersih
MsgBox "Data sudah tersimpan" bolTambah = False
cmdUbah.Visible = True cmdUbah.Enabled = False cmdHapus.Enabled = False cmdCari.Enabled = True cmdSimpan.Visible = False cmdTambah.Visible = True cmdTambah.Enabled = True cmdTambah.SetFocus
Else
MsgBox "User sudah ada ..." txtPasswd.Text = ""
txtUserID.Text = "" txtUserID.SetFocus End If
End If
MsgBox "Data belum lengkap" txtUserID.Enabled = True txtUserID.SetFocus
End If End Sub
Private Sub txtUserId_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then
If bolTambah = True Then
Set rsCari = New ADODB.Recordset
rsCari.Open "Select * from [User] where UserID='" & txtUserID.Text & "'", CN, adOpenDynamic, adLockOptimistic
If rsCari.EOF = True Then txtPasswd.Locked = False txtPasswd.SetFocus
Else
MsgBox "User sudah ada ..." txtUserID.Text = ""
txtPasswd.Text = "" txtUserID.SetFocus End If
ElseIf bolCari = True Then
Set rsCari = New ADODB.Recordset
rsCari.Open "Select * from [User] where UserID='" & txtUserID.Text & "'", CN, adOpenDynamic, adLockOptimistic
If rsCari.EOF = True Then
MsgBox "User belum ada ..." txtUserID.Text = ""
txtUserID.SetFocus Else
(6)
bolUbah = True
cmdUbah.Enabled = True cmdHapus.Enabled = True cmdUbah.SetFocus
End If End If
End If End Sub