Algoritma Ant Colony System Dalam Penjadwalan Kegiatan Belajar Mengajar Di Sekolah Dasar

(1)

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 Explicit

Dim 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