PENJADWALAN KULIAH DENGAN MENGGUNAKAN METODE TABU SEARCH.

(1)

TUGAS AKHIR

Diajukan Oleh : TITIS ADI PRATAMA

NPM : 0534010164

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR


(2)

yang selalu melimpahkan rahmat dan hidayah-Nya, sehingga dimudahkan dan dapat menyelesaikan laporan Tugas Akhir Pembuatan Aplikasi Penjadwalan Kuliah dengan Menggunakan Metode Tabu Search.

Penulis menyadari sepenuhnya bahwa laporan Tugas Akhir ini tidak akan terselesaikan dengan baik jika tanpa adanya bantuan, bimbingan petunjuk-petunjuk dan juga saran-saran dari berbagai pihak yang mana kesemuanya itu tidaklah dapat diukur dengan materi.

Pada kesempatan ini penulis menghantarkan ucapan terima kasih yang sebesar-besarnya kepada:

1. Allah SWT atas limpahan Karunia, Rahmat, dan Perlindungan - Nya 2. Kedua orang tua dan anggota keluarga yang telah memberikan dorongan

baik moril maupun materil sehingga laporan Tugas Akhir ini dapat selesai tepat pada waktunya.

3. Bapak Ir. Sutiyono. MT selaku dekan FTI, UPN “Veteran”Jawa Timur. 4. Bapak Basuki Rahmat. Ssi, MT selaku ketua jurusan Teknik Informatika,

FTI, UPN “Veteran” Jawa Timur.

5. Ibu Hj. Asti Dwi Irfianti, S.Kom, M.Kom selaku dosen pembimbing Tugas Akhir yang telah meluangkan waktu untuk memberikan bimbingan selama pelaksanaan dan penyusunan Tugas Akhir.


(3)

7. Teman – teman yang selalu memberikan motivasi dan semangat dalam pelaksanaan Tugas Akhir.

8. Dan semua pihak yang tidak dapat disebutkan satu persatu.

Penulis menyadari sepenuhnya masih terdapat banyak kekurangan dalam penyelesaian penulisan laporan Tugas Akhir ini. Namun penulis berusaha menyelesaikan laporan ini dengan sebaik mungkin.

Segala kritik saran yang bersifat membangun sangat diharapkan dari semuapihak, guna perbaikan dan pengembangan dimasa yang akan datang. Akhirnya besar harapan penulis agar laporan ini dapat diterima dan berguna bagi semua pihak. Amin…

Surabaya, Juni 2010


(4)

ABSTRAK... i

KATA PENGANTAR... ii

DAFTAR ISI... iii

DAFTAR GAMBAR... vi

DAFTAR TABEL... vii

BAB I PENDAHULUAN... 1

1.1. Latar Belakang... 1

1.2. Rumusan Masalah... 3

1.3. Batasan Masalah... 4

1.4. Tujuan... 4

1.5. Manfaat... 1.6. Metodologi Penelitian... 5 5 1.7. Sistematika Penulisan... 6

BAB II LANDASAN TEORI... 8

2.1. Penjadwalan……….. 8

2.2. Konsep Sistem Kredit Semester... 10

2.1.2. Nilai Satuan Kredit Semester Perkuliahan... 2.1.3. Nilai Satuan Kredit Semester Praktikum……….………… 11 11 2.3. Tabu Search………. 2.3.1. Tabu Search Kombinasi Untuk Masalah Pengalokasian…… 2.4. Konsep Dasar Sistem... 12 16 17 2.4.1. Perencanaan... 18

2.4.2. Desain………..

2.4.3. Implementasi………

18 18


(5)

2.5.4. Data Flow Diagram (DFD)... 2.6. SQL...………... 2.6.1. SQL Server 2005…... 2.7. Visual Basic.NET 2005………

21 22 24 25

BAB III ANALISIS DAN DESAIN SISTEM... 27 3.1. Analisis Sistem………27 3.2. Perancangan Sistem……… 28 3.2.1. Pengolahan Data Menggunakan Metode Tabu Search…….. 28 3.2.2. Flowchart……… 30 3.2.3. Ketetapan Baku Penjadwalan Kuliah……… 3.2.4. Fungsi Tujuan………

32 33 3.2.4. Klasifikasi Constraint………. 34 3.2.4.1. Hard Constraint……….. 34 3.2.4.2. Soft Constraint……… 3.2.5. Aturan-Aturan Terjadi Konflik (Nilai yang sama)………... 3.2.6. Workflow... 3.2.7. Diagram Berjenjang... 3.2.8. Context Diagram……… 3.2.9. DFD Level 0………. 3.2.10 DFD Level 1………. 3.3. Perancangan Database………..

3.3.1. Perancangan Data………. 3.3.2. Perancangan Table………

35 36 39 40 41 41 43 47 47 49 3.4. Perancangan Antar Muka System... 53


(6)

4.2.2. Form Submenu User... 64

4.2.2.1. Form Submenu User Change Password... 4.2.2.2. Form Submenu User Maintenance User... 65 66 4.2.3. Form Submenu Data... 4.2.3.1. Form Submenu Data Ruangan... 4.2.3.2 Form Submenu Data Matakuliah... 4.2.3.3 Form Submenu Data Dosen... 67 68 69 70 4.2.4. Form Submenu Seleksi... 72

4.2.4.1 Form Submenu Seleksi Matakuliah Diadakan…... 4.2.4.2 Form Submenu Seleksi Jadwal Awal... 73 74 BAB V UJI COBA DAN EVALUASI... 76

5.1. Data Ujicoba Pada System Aplikasi... 76

5.2. Ujicoba Pada System Aplikasi Penjadwalan Kuliah…………... 79

5.3. Analisa Hasil Ujicoba... 81

BAB VI PENUTUP... 84

6.1. Kesimpulan... 84

6.2. Saran... 85

DAFTAR PUSTAKA... 86 LAMPIRAN...


(7)

Gambar 2.1. Struktur memory Tabu Search... 13

Gambar 3.1. Flowchart Pengolahan Data Menggunakan Metode Tabu Search... Gambar 3.2. Workflow Penjadwalan Kuliah………... 31 39 Gambar 3.3. Diagram Berjenjang……….... 40

Gambar 3.4. Context Diagram………... 41

Gambar 3.5. DFD Level 0 Aplikasi Penjadwalan Kuliah……….... 44

Gambar 3.6. DFD Level 1 menyeleksi dan menentukan matakuliah... 45

Gambar 3.7. DFD Level 1 Menyusun Jadwal Awal……… 46

Gambar 3.8. DFD Level 1 Optimasi Jadwal Dengan Metode TabuSearch... 44

Gambar 3.9. CDM (conceptual Data Model)... 48

Gambar 3.10. PDM (Physical Data Model)………49

Gambar 3.11. Form Data Mata Kuliah……….. 54

Gambar 3.12. Form Data Dosen………. 54

Gambar 3.13. Form Data Ruangan………. 55

Gambar 3.14. Form Data Mata Kuliah Diadakan……….. 56

Gambar 3.15. Form Jadwal Awal...57

Gambar 3.16. Form Proses Tabu Search……… 58

Gambar 4.1. Tampilan Awal Aplikasi………. 60

Gambar 4.2. Login Aplikasi………... 61

Gambar 4.3. Tampilan Utama Aplikasi... 62

Gambar 4.4. Load Jadwal Awal... 63

Gambar 4.5. Hasil Optimasi... 64

Gambar 4.6. Tampilan Submenu User... 65

Gambar 4.7. Tampilan Submenu User Change Password... 66

Gambar 4.8. Tampilan Submenu User Maintenance User... 67

Gambar 4.9. Tampilan Submenu Data... 68

Gambar 4.10. Tampilan Submenu Data Ruangan... 69

Gambar 4.11. Tampilan Submenu Data Matakuliah……….. 70

Gambar 4.12. Tampilan Submenu Data Dosen……….. 71

Gambar 4.13. Tampilan Form Kompetensi Dosen... 72

Gambar 4.14. Tampilan Submenu Seleksi... 73

Gambar 4.15. Tampilan Submenu Seleksi Matakuliah Diadakan... 74

Gambar 4.16. Tampilan Submenu Seleksi Jadwal Awal... 75

Gambar 5.1. Proses Pembuatan Jadwal Awal... 80


(8)

Tabel 3.1. Tabel Kombinasi Jadwal……….. 36

Tabel 3.2. Tabel Kombinasi Jadwal Konflik………. 37

Tabel 3.3. Tabel Matakuliah... 50

Tabel 3.4. Tabel Dosen……….. 50

Tabel 3.5. Tabel Kompetensi Dosen... 50 Tabel 3.6. Tabel mk_periode... Tabel 3.7. Tabel Ruang………... Tabel 3.8. Tabel Jadwal………. Tabel 3.9. Tabel temp_jadwal……… Tabel 3.10.Tabel login……… Tabel 3.11.Tabel hak_akses……… Tabel 5.1. Tabel Matakuliah………. Tabel 5.2. Tabel Dosen……….. Tabel 5.3 Tabel Ruangan………. Tabel 5.4. Tabel Hasil Ujicoba………..

51 51 51 52 52 53 77 78 79 82


(9)

Dosen Pembimbing 2 : Intan Yuniar Purbasari, S.Kom

ABSTRAKSI

Penjadwalan kegiatan kuliah dalam suatu Perguruan tinggi/kampus adalah suatu hal yang rumit dan sering mengalami kesulitan, yang menyebabkan pengalokasian mata kuliah dengan dosen dan ruangan yang sering bentrok dengan jadwal mata kuliah, dosen dan ruang yang lain dalam satu periode jadwal kuliah. Oleh karena itu dibutuhkan suatu sistem dan metode optimasi yang dapat diterapkan untuk menyusun penjadwalan mata kuliah.

Aplikasi penjadwalan kuliah dalam tugas akhir ini dibuat untuk membantu pihak pembuat jadwal dalam melakukan penjadwalan kuliah pada periode yang diselenggarakan. Metode yang dipakai dalam sistem ini adalah Algoritma Tabu Search. Metode Tabu Search adalah metode yang membuat solusi baru dengan menggunakan solusi awal atau sebelumnya secara terus menerus hingga kriteria yang ditentukan. Metode ini berdasarkan pada kriteria jumlah iterasi yang ditentukan dan jumlah konflik yang ada.

Implementasi dari sistem ini membutuhkan solusi awal atau jadwal awal sebagai start untuk proses optimasi, jadwal awal akan diolah menggunakan metode Tabu Search dengan mengalokasikan waktu yang tersedia secara acak atau random kemudian disimpan pada Tabulist untuk dicek apakah ada jadwal yang sama atau tidak. Dari jadwal yang telah diolah akan dipilih nilai konflik yang mempunyai tingkat kesalahan terkecil.


(10)

1.1 Latar Belakang

Penjadwalan merupakan pengalokasian sumber daya dalam rentang waktu tertentu untuk menyeleseikan sekumpulan tugas. Penjadwalan sangat penting untuk merancang dan memanajemen suatu sistem yang terdiri dari sejumlah kegiatan dengan keterbatasan sumber daya.

Penjadwalan kegiatan kuliah dalam suatu Perguruan tinggi/kampus adalah suatu hal yang rumit dan sering mengalami kesulitan. Hal ini disebabkan beberapa faktor yang berkaitan yang harus dipertimbangkan antara lain jumlah mata kuliah yang diselenggarakan, jumlah ruangan, jumlah dosen dan jadwal dimana dosen yang bersangkutan tidak bisa mengajar yang seringkali menyebabkan munculnya masalah penjadwalan mata kuliah seperti adanya konflik yang disebabkan pengalokasian mata kuliah dengan dosen dan ruangan yang sering bentrok dengan jadwal mata kuliah, dosen dan ruang yang lain dalam satu periode jadwal kuliah. Distribusi jadwal perkuliahan juga diharapkan dapat merata tiap harinya untuk setiap kelas.

Permasalahan yang sering disebut dengan University Timetabling Problems (UTP) ini. selain dilihat dari sisi mahasiswa, juga harus dilihat dari sisi dosen, yaitu kemungkinan-kemungkinan dosen akan mengajar lebih dari satu mata kuliah yang ada, sebab ada kemungkinan jumlah mata kuliah dan jumlah


(11)

mengajar dua mata kuliah berbeda pada hari dan jam yang sama. Selain itu, harus dipertimbangkan juga ketersediaan kelas sehingga kegiatan belajar dapat dilaksanakan.

Di samping aspek-aspek di atas, dalam penyusunan jadwal kuliah ini pun terdapat sangat banyak kemungkinan yang selayaknya dicoba untuk menemukan penjadwalan yang terbaik. Karena itu dibutuhkan metode optimasi yang dapat diterapkan untuk mengerjakan penjadwalan mata kuliah Terdapat banyak metode yang dapat digunakan untuk menyelesaikan permasalahan penjadwalan, salah satu metode yang dapat digunakan untuk menyelesaikan masalah tersebut adalah ” Metode Algoritma Tabu Search ”.

Tabu Search merupakan sebuah metode optimasi yang berbasis pada local search. Ide tentang Tabu Search pertama kali diperkenalkan oleh Glover pada tahun 1970. Tabu Search berkaitan dengan pencarian solusi yang baru, proses pencarian bergerak dari satu solusi ke solusi berikutnya dengan cara memilih solusi terbaik dari neighbourhood solusi sekarang (current) yang tidak tergolong solusi terlarang (tabu).

Ide dasar dari tabu search sendiri adalah mencegah proses pencarian dari local search agar tidak melakukan pencarian ulang pada ruang solusi yang sudah pernah ditelusuri, dengan memanfaatkan suatu struktur memori yang mencatat sebagian jejak proses pencarian yang telah dilakukan. Struktur memori dalam tabu search dinamakan tabu list. Tabu search mengunakan tabu list untuk menolak solusi – solusi yang memenuhi atribut tertentu guna mencegah proses


(12)

pencarian mengalami perputaran (cycling) pada solusi yang sama, dan menuntun proses pencarian menelusuri daerah solusi yang belum dikunjungi

Dengan Algoritma Tabu Search tersebut maka dapat dibuat jadwal mata kuliah yang memenuhi kondisi yang diinginkan seperti tidak ada konflik mata kuliah yang diajar dosen secara bersamaan dan kapasitas ruang kuliah dapat disesuaikan. Diharapkan dengan digunakannya algoritma ini akan diperoleh optimasi penjadwalan kuliah sesuai dengan apa yang diaharapkan dan terjadi kombinasi terbaik antara matakuliah dengan dosen pengajar dan tidak ada permasalahan bentrokan jadwal pada sisi mahasiswa, serta ketersediaan ruang yang cukup dan sesuai.

1.2 Rumusan Masalah

Berdasarkan latar belakang permasalahan diatas maka dapat dirumuskan beberapa permasalahan yaitu:

1. Bagaimana memperoleh optimasi penjadwalan kuliah dengan mengunakan Metode Tabu Search.

2. Bagaimana membuat system penjadwalan kuliah yang dapat memecahkan masalah penjadwalan kuliah dengan kombinasi terbaik untuk pasangan mata kuliah dan dosen pengajar secara keseluruhan. 3. Bagaimana menjadwalkan kuliah agar tidak ada masalah bentrokan

jadwal pada sisi mahasiswa serta ketersediaan ruang yang cukup dan sesuai.


(13)

4. Bagaimana merancang sistem dengan antar muka keluaran dan antar muka masukan agar lebih mudah dimengerti oleh pengguna.

1.3 Batasan Masalah

Dalam perancangan dan pembuatan system penjadwalan ini mencakup banyak hal. Agar permasalahan tidak meluas maka perlu adanya batasan masalah yang akan dibahas antara lain :

1. Masalah yang akan dibahas hanya untuk penyusunan penjadwalan kuliah di jurusan Teknik Informatika, Fakultas Industri, UPN “VETERAN” JATIM.

2. Semua Dosen bersedia mengajar kapan saja dan di ruang mana pun. 3. System menggunakan Algoritma Tabu Search tanpa membandingkan

dengan algoritma lain.

4. System tidak menangani optimasi pemakaian waktu (efektifitas) dalam penjadwalan kuliah.

5. Sistem penjadwalan Kuliah ini berbasis desktop yang mengunakan Visual Basic .Net 2005 dan SQL Server 2005.

1.4 Tujuan

Tujuan dari pembuatan system penjadwalan kuliah ini adalah sebagai berikut:

1. Mendapatkan solusi permasalahan penjadwalan kuliah dengan mengunakan algoritma Tabu Search.


(14)

2. Mengembangkan perangkat lunak dengan menerapkan algoritma Tabu Search untuk membuat penjadwalan kuliah.

1.5 Manfaat

Memudahkan dan membantu pembuatan jadwal kuliah dengan melihat variabel – variabel pembatas yang ada.

1.6 Metodologi Penelitian

Dalam melakukan penelitian ini, metodologi yang digunakan untuk membantu menyelesaikan tugas akhir (TA) adalah sebagai berikut :

1. Studi Pustaka

Pemahaman studi pustaka tentang konsep dan teori dari Metode Algoritma Tabu Search dengan menggunakan Visual Basic.Net 2005 yang berintegrasi dengan database SQL Server 2005.

2. Analisa Sistem

Menganalisa semua informasi yang terkait dengan sistem yang dibangun, mengidentifikasi masalah dan merumuskan solusi konseptualnya.

3. Desain dan Perancangan Sistem

Analisa dan perancangan sistem fasilitas penjadwalan kuliah dengan menggunakan tools PowerDesigner untuk mempermudah dalam merancang dan mendisain sistem.


(15)

Perancangan dan pembuatan perangkat lunak pendukung untuk sistem penjadwalan kuliah ini dengan meggunakan tools Visual Basic.Net 2005 dengan SQL Server 2005 sebagai database-nya. 5. Uji Coba dan Evaluasi.

Melakukan uji coba sistem secara keseluruhan apakah terjadi kesalahan dan ketidak akuratan proses untuk secepatnya diperbaiki. 6. Penulisan Skripsi

Menulis segala hasil dari perancangan dan pembuatan sistem penjadwalan kuliah.

1.7 Sistematika Penulisan

Sistematika pembahasan yang akan diuraikan dalam buku laporan proyek akhir ini terbagi dalam bab-bab yang akan dibahas sebagai berikut :

BAB I PENDAHULUAN

Bab ini berisi tentang latar belakang, rumusan masalah, batasan masalah, tujuan, dan sistematika pembahasan dari proyek akhir ini.

BAB II LANDASAN TEORI

Bab ini membahas teori yang dipergunakan dalam membantu memecahkan masalah serta teori ilmu yang terkait.


(16)

BAB III ANALISA DAN PERANCANGAN SISTEM

Berisi tentang analisa dan perancangan sistem informasi yang antara lain berisi tentang konsep data modeling Entity Relatioship (ER) dari system yang akan dibuat.

BAB IV IMPLEMENTASI PROGRAM

Berisi tentang program yang sudah jadi termasuk fasilitas-fasilitas yang terdapat di dalam program ini.

BAB V PENGUJIAN DAN ANALISA

Membuat hasil pengujian dan analisa terhadap hasil-hasil yang didapat dan memberikan analisa hasil program.

BAB VI PENUTUP

Berisi kesimpulan dan saran serta rencana pengembangan proyek akhir, jika dimungkinkan untuk masa yang akan datang.

DAFTAR PUSTAKA

Pada bagian ini akan dipaparkan tentang sumber-sumber literatur yang digunakan dalam pembuatan laporan.


(17)

2.1 Penjadwalan

Jadwal adalah daftar output (table kegiatan) / rencana kegiatan yang harus dihasilkan dalam jangka waktu tertentu. Biasanya disusun menurut urutan prioritas dengan pembagian waktu pelaksanaan yang terperinci sedangkan Penjadwalan merupakan suatu proses pembuatan atau cara menjadwalkan suatu data menjadi jadwal.

Menurut Marton, 1993. Pendekatan terhadap metode penjadwalan secara garis besar dapat dibagi sebagai berikut:

1. Penjadwalan dilakukan secara manual

Keuntungan dari penjadwalan yang dilakukan dengan manual adalah sebagai berikut:

a. Cepat dan akurat dalam memadukan berbagai keahlian manusia dan prioritas.

b. Mudah mengadaptasi perubahan.

Kekurangan dari penjadwalan yang dilakukan secara manual adalah sebagai berikut:

a. Kurang mampu menguji sejumlah besar prioritas atau keakuratan mengetahui dampak dari aktifitas yang berbeda.

b. Kesulitan dalam menangani masalah yang komplek. c. Kesulitan dalam menghadapi perubahan yang cepat. d. Meningkatkan kekomplekan sistem (data overload).


(18)

2. Penjadwalan yang dilakukan dengan simulasi komputer

Kelebihan dari penjadwalan yang dilakukan dengan simulasi komputer adalah sebagai berikut:

a. Mudah dilakukan perubahan.

b. Menunjukan pendekatan yang lebih alami dalam menyajikan keahlian manusia.

c. Hampir nyata dengan sistem nyata.

Kekurangan dari penjadwalan yang dilakukan dengan simulasi komputer adalah sebagai berikut:

a. Hasil tidak selalu optimal.

b. Metode pendekatan tidak selalu tepat.

3. Penjadwalan yang dilakukan secara matematis antara lain sebagai berikut: a. Interger dan Dynamic Programming

Kelebihan dari metode interger dan dynamic programming adalah hasil lebih baik sedangkan kekurangannya adalah perhitungan membutuhkan waktu yang lama.

b. Neighbourhood Search

Kelebihan dari metode ini antara lain sebagai berikut: 1. Hasil yang didapat relatif cepat.

2. Keakuratan hasil tinggi. Sedangkan untuk kekurangannya adalah:

1. Keoptimalan hasil merupakan local optimal, bukan global optimal.


(19)

2.2 Konsep Sistem Kredit Semester

Penyelenggaraan pendidikan di Fakultas Teknologi Industri UPN “Veteran” Jatim, menggunakan Sistem Kredit Semester (SKS), Sistem Kredit Semester mengatur perencanaan, penyusunan dan pelaksanaan program pendidikan dengan menggunakan kredit perkuliahan dan praktikum sebagai tolok ukur beban pendidikan. Setiap mata kuliah dan praktikum diberi bobot dengan keperluan untuk memenuhi pencapaian tujuan pendiddikan. Dalam system kredit, beban studi yang harus diselesaikan oleh mahasiswa pada satu jenjang studi dinyatakan dalam jumlah satuan kredit.

Sistem Kredit Semester adalah suatu system penyelenggaraan pendidikan dengan menggunakan satuan kredit semester (SKS) untuk menyatakan beban studi mahasiswa, beban kerja dosen, pengalaman belajar dan beban penyelenggaraan program.

Semester adalah satuan waktu kegiatan yang terdiri atas 16 – 19 minggu kuliah atau kegiatan terjadwal lainnya, berikut kegiatan iringannya, termasuk 2 – 3 minggu kegiatan penilaian atau ujian.

Satuan Kredit Semester adalah takaran penghargaan terhadap pengalaman belajar yang diperoleh selama satu semester melalui kegiatan terjadwal perminggu sebanyak 1 jam perkuliahan atau 2 jam praktikum atau 4 jam kerja lapangan, yang masing – masing diiringi oleh sekitar 1 – 2 jam kegiatan terstruktur dan 1 – 2 jam kegiatan mandiri.


(20)

2.2.1 Nilai Satuan Kredit Semester Perkuliahan

Nilai Satuan Kredit Semester (1 SKS) untuk perkuliahan ditentukan berdasarkan atas beban kegiatan yang meliputi 3 (tiga) macam kegiatan perminggu selama satu semester sebagai berikut :

a. Untuk Mahasiswa

1. 60 menit acara tatap muka terjadwal dengan tenaga pengajar missal dalam bentuk kuliah.

2. 60 menit acara kegiatan akademik terstruktur, yaitu kegiatan studi yang tidak terjadwal tetapi direncanakan oleh tenaga pengajar seperti misalnya membuat pekerjaan rumah atau menyelesaikan soal – soal.

3. 60 menit acara kegiatan akademik mandiri, yaitu kegiatan yang harus dilakukan mahasiswa secara mandiri untuk mendalami, mempersiapkan atau tujuan lain suatu tugas akademik seperti missal membaca buku referensi.

b. Untuk Tenaga Pengajar (Dosen)

1. 60 menit acara tatap muka terjadwal dengan mahasiswa. 2. 60 menit acara perencanaan dan evaluasi kegiatan akademik

terstruktur.

3. 60 menit pengembangan materi kuliah.

2.2.2 Nilai Satuan Kredit Semester Praktikum


(21)

b. Nilai Satuan Kredit Semester untuk praktikum dilaboratorium adalah beban tugas di laboratorium sebanyak 2 – 3 jam per minggu selama satu semester.

2.3 Tabu Search

Tabu Search merupakan sebuah metode optimasi yang berbasis pada local search. Ide tentang Tabu Search pertama kali diperkenalkan oleh Glover pada tahun 1970. Kata tabu sendiri berasal dari Tongan, sebuah bahasa polinesia, dimana bahasa tersebut digunakan oleh suku aborigin di pulau Tongan untuk menandakan bahwa sesuatu itu tidak dapat disentuh (tabu) karena hal itu sakral atau terlarang.

Tabu Search sebagaimana di motivasi oleh observasi bahwa tingkah laku manusia cenderung untuk bergerak secara random yang dapat menyebabkan inkonsisten. “Tidak ada tujuan yang dapat dicapai dengan menerima solusi baru yang buruk kecuali penerimaan itu ditujukan untuk menghindari bagian yang telah diselidiki, Hal ini akan memastikan daerah baru dari ruang solusi permasalahan yang akan diselidiki sehingga optimal menghindari Local Optimum Solution ” (Glover, 1997).

Tabu Search berkaitan dengan pencarian solusi yang baru, proses pencarian bergerak dari satu solusi ke solusi berikutnya dengan cara memilih solusi terbaik dari neighbourhood solusi sekarang (current) yang tidak tergolong solusi terlarang (tabu). Ide dasar dari tabu search sendiri adalah mencegah proses pencarian dari local search agar tidak melakukan pencarian ulang pada ruang solusi yang sudah pernah ditelusuri, dengan memanfaatkan suatu struktur memori yang mencatat sebagian jejak proses pencarian yang telah dilakukan.


(22)

Struktur memori dalam tabu search dinamakan tabu list. Tabu list menyimpan atribut dari sebagian move (transisi solusi) yang telah diterapkan pada iterasi – iterasi sebelumnya. Tabu search mengunakan tabu list untuk menolak solusi – solusi yang memenuhi atribut tertentu guna mencegah proses pencarian mengalami perputaran (cycling) pada solusi yang sama, dan menuntun proses pencarian menelusuri daerah solusi yang belum dikunjungi. Tanpa mengunakan strategi ini, local search yang sudah menemukan solusi optimum local dapat terjebak pada daerah solusi optimum local tersebut pada iterasi – iterasi berikutnya. Jadi tabu list hanya menyimpan langkah transisi (move) yang merupakan lawan atau kebalikan dari langkah yang telah digunakan dalam iterasi sebelumnya untuk bergerak dari satu solusi ke solusi berikutnya. Dengan kata lain tabu list berisi langkah – langkah yang membalikkan solusi yang baru ke solusi yang lama.

Struktur tabu search mengunakan 4 dimensi, terdiri dari Regency, Frequency, Quality, Influence yang ditunjukan oleh gambar sebagai berikut:


(23)

Regency – Based dan Frequency – Based memori saling melengkapi satu sama lain. Dimensi Quality bergabung dengan kemampuan membedakan manfaat solusi yang diperoleh selama proses pencarian. Memori dapat mengidentifikasi elemen yang umum pada solusi yang baik atau pada path yang mengarah pada solusi yang baik. Sedangkan dimensi Influence mempertimbangkan akibat pilihan yang dibuat selama proses pencarian tidak hanya terhadap kualitas maupun struktur.

Komponen yang penting dari tabu search adalah strategi intersifikasi dan diversifikasi, strategi intersifikasi didasarkan pada modifikasi aturan pemilihan untuk mendorong kombinasi move–move dan ciri–cirri solusi terdahulu yang baik, menentukan kembali pada area yang menarik untuk diselidiki lebih dalam lagi. Sebaliknya strategi diversifikasi mendorong proses pencarian untuk menyelidiki area yang belum dikunjungi.

Tabu search dapat diaplikasikan secara langsung baik verbal atau pernyataan simbolik dari berbagai masalah keputusan tanpa harus mengubah dalam bentuk formulasi matematika untuk mengekspresikan secara jelas ruang lingkup dan batasan masalah yang dihadapi. Permasalah tersebut dapat dikarakteristik sebagai permasalahan optimasi (maksimum atau minimum) dari fungsi tujuan f(x) dengan konstrain x € x dimana f(x) merupakan formulasi linier ataupun non linier dan satuan x merupakan himpunan variabel keputusan x pada konstrain yang ada.

Algoritma tabu search memiliki kemampuan untuk keluar dari local optimal tetapi Tabu Search tidak dapat menentukan global optimal. Tabu Search harus memiliki batasan maksimum jumlah iterasi, parameter Maksimal iterasi dan ukuran Tabu List yang ditentukan sendiri oleh individu yang mengunakan metode ini. Jumlah iterasi yaitu banyaknya iterasi yang akan dilakukan untuk mengeksplorasi


(24)

berbagai Space Search Area. Semakin besar jumlah maksimum iterasi, semakin besar pula peluang untuk menentukan solusi optimal secara global, namun memerlukan waktu perhitungan yang lama. Sedangkan parameter Maksimal iterasi yang merupakan suatu batasan jumlah iterasi yang dilakukan pada suatu area tertentu mendorong suatu langkah diverifikasi demi menghindari keterjebakan dalam suatu local optimal.

Secara garis besar elemen – elemen utama pada tabu search adalah sebagai berikut:

1. Representasi solusi: setiap solusi pada suatu permasalahan optimasi harus dipresentasikan secara unik.

2. Fungsi cost: setiap fungsi cost (fungsi tujuan) akan memetakan fungsi ke nilai cost-nya.

3. Neighbourhood (tetangga): setiap fungsi cost akan memetakan setiap solusi S ke solusi – solusi yang lainnya.

4. Tabu list: suatu list yang berisi gerakan terakhir (T). 5. jumlah elemen yang harus ada pada suatu solusi.


(25)

Algoritma Tabu Search secara umum dapat dituliskan sebagai berikut:

Solusi akhir adalah Best, dengan Cost sebesar GlobalMin.

2.3.1 Tabu Search Kombinasi untuk Masalah Pengalokasian

Tabu Search merupakan sebuah pendekatan meta heuristik yang biasanya digunakan untuk menemukan solusi yang mendekati optimal dengan jalan melakukan kombinasi dengan satu pendekatan deterministik yang berganti dari local optimal ke global optimal untuk memecahkan masalah penjadwalan dengan skala besar dan mengatasi sub masalah yang diformulasikan sebagai masalah pengalokasian. Pendekatan global disini menggunakan prosedur yang memodifikasi jadwal


(26)

(Timetable) yang dilakukan secara berurutan sampai tidak ada lagi perbaikan dari fungsi tujuan.

Pendekatan global ini merupakan suatu prosedur heuristik dimana tiap iterasi, satu atau lebih courses dialokasikan kembali pada periode waktu yang berbeda. Demikian pula pada tiap iterasi dihasilkan kembali pada course section yang berbeda sehingga model ini dihasilkan sebuah kondisi Local Optimum (tetapi umumnya mendekati global).

Tapi untuk masalah optimasi kombinatorial skala besar algoritma tabu search yang paling efisien dibandingkan metode heuristik lainnya karena tabu search ini memiliki daerah pencarian yang luas dan mencegah adanya pengulangan move sebelumnya.

2.4 Konsep Dasar Sistem

Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran yang tertentu. Istilah lain dari suatu sistem adalah kumpulan dari elemen-elemen yang masing-masing elemen berinteraksi atau saling mempengaruhi untuk mewujudkan suatu kegiatan bersama.

Suatu sistem mempunyai tujuan atau sasaran. Tujuan biasanya dihubungkan dengan ruang lingkup yang lebih luas dan sasaran dalam ruang lingkup yang lebih sempit. Sasaran dari sistem sangat menentukan masukan dan keluaran yang akan dihasilkan. Sistem dikatakan berhasil jika dapat mencapai sasaran atau tujuan.


(27)

Siklus hidup sistem adalah sebuah aplikasi dalam pendekatan sistem untuk mengembangkan sistem informasi berbasis komputer. Siklus hidup sistem terbagi menjadi 5 tahap, yaitu :

2.4.1 Perencanaan

Meliputi perumusan masalah, pendefinisian masalah, penyatuan keobyektifan sistem, mengenali bagian-bagian sistem, melakukan studi kelayakan, menyiapkan sebuah proposal sistem, menyetujui atau menolak proyek serta menetapkan sebuah mekanisme kontrol.

2.4.2 Desain

Meliputi persiapan detail desain sistem, mengenali konfigurasi alternatif sistem, melakukan evaluasi konfigurasi alternatif sistem, menyeleksi konfigurasi terbaik, menyiapkan proposal penerapan serta menyetujui atau menolak penerapan sistem.

2.4.3 Implementasi

Meliputi perencanaan penerapan, perumusan penerapan, pengenalan hardware, pengenalan software, menyiapkan database, menyiapkan fasilitas fisik, melakukan pelatihan terhadap user, menyiapkan proposal penerapan sistem baru, menyetujui atau menolak proposal sistem baru, serta menerapkan penggunaan sistem baru.


(28)

2.4.4 Operasi

Meliputi penggunaan sistem, audit sistem, perawatan sistem, menyiapkan proposal perancangan ulang, serta menyetujui atau menolak proposal perancangan ulang.

2.5 Pemodelan Data

Model Data adalah kumpulan perangkat konseptual untuk menggambarkan data, hubungan data, semantik (makna) data dan batasan data.

2.5.1 Entity Relationship Diagram (ERD)

Sesuai dengan namanya, Entity Relationship Diagram (ERD) dibentuk dari 2 komponen utama, yakni:

a) Entitas (entity) b) Relasi (relation)

Yang dideskripsikan lebih detail dengan sejumlah atribute (properti).

2.5.2 Entitas dan Attribut

Entitas (entity), merupakan obyek yang mewakili sesuatu dalam dunia nyata, baik secara fisik (mobil, rumah, manusia, pegawai dsb) ataupun secara konsep (departmen, pekerjaan, mata kuliah dsb) dan dapat dibedakan antara satu dengan lainnya (unique).

Setiap entitas pasti memiliki atribut yang mendeskripsikan karakteristik (property) dari entitas tersebut. Penetapan atribut dari sebuah entitas berdasarkan


(29)

fakta yang ada atau berdasarkan kebutuhan. Atribut identik dengan kolom data atau field dalam sebuah tabel.

Key Atribute

Atribut Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan antara satu dengan lainnya (unik) dari seluruh data yang terdapat di dalam sebuah tabel.

Attribut key dibagi menjadi 3 : a. Super Key

Merupakan satu atau gabungan atribut yang dapat membedakan setiap baris data dalam sebuah tabel secara unik.

b. Candidate Key

Adalah super key yang jumlah atributnya minimal (paling sedikit). c. Primary Key

Adalah sebuah candidate key yang dipilih berdasarkan: 1. Key tersebut lebih sering untuk dijadikan acuan.

2. Key tersebut lebih ringkas.

3. Jaminan keunikan key tersebut lebih baik.

2.5.3 Relasi

Relasi menayatakan hubungan antar entitas termasuk terhadap entitas itu sendiri (rekursif).


(30)

Derajat Kardinalitas relasi (Cardinality Ratio)

Kardinalitas relasi menunjukkan jumlah maksimum data entitas yang dapat berelasi dengan entitas lain.

1. Satu ke satu (one to one)

Setiap data pada entitas A berhubungan dengan maksimal satu data pada entitas B, begitu pula sebaliknya.

2. Satu ke Banyak (one to many)

Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas B, tetapi data pada entitas B berhubungan maksimal hanya dengan sebuah data di A.

3. Banyak ke Satu (many to one)

Merupakan kebalikan dari relasi satu ke banyak. 4. Banyak ke Banyak (many ke many)

Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas B, demikian pula sebaliknya. Kardinalitas satu ke banyak maupun banyak ke satu bisa dianggap sama.

2.5.4 Data Flow Diagram (DFD)

Pada Data Flow Diagram (DFD) atau diagram aliran data ini disebutkan hal-hal seperti berikut:

a. Eksternal Entity

Merupakan kesatuan di luar lingkungan sistem yang dapat berupa orang, organisasi dan sebagainya yang akan memberikan input atau menerima


(31)

b. Arus Data

Menunjukkan arus dari data yang dapat berupa masukan untuk sistem atau hasil dari proses sistem. Arus data ini mengalir diantara proses Data Store dan External Entity

c. Proses

Merupakan kegiatan atau kerja yang dilakukan oleh orang, mesin atau komputer dari hasil suatu arus data yang masuk ke dalam proses untuk dihasilkan arus data yang akan keluar dari proses.

d. Penyimpanan Data

Merupakan simpanan dari data yang berupa file atau database dari komputer, arsip atau catatan manual. (Annynomous, 2005)

2.6 SQL

SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya. Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF Codd yang membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970. Artikel ini juga membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language).

Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum


(32)

mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R. Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92.

Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing server memiliki dialek masing-masing. Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD), namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI.

Data Definition Language

DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.

Data Manipulation Language

DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum dilakukan adalah:


(33)

b. INSERT untuk menambahkan data baru

c. UPDATE untuk mengubah data yang sudah ada d. DELETE untuk menghapus data

Fungsi Aggregat

Beberapa SMBD memiliki fungsi aggregat, yaitu fungsi-fungsi khusus yang melibatkan sekelompok data (aggregat). Secara umum fungsi aggregat adalah:

a. SUM untuk menghitung total nominal data

b. COUNT untuk menghitung jumlah kemunculan data c. AVG untuk menghitung rata-rata sekelompok data

d. MAX dan MIN untuk mendapatkan nilai maksimum/minimum dari sekelompok data.

Fungsi aggregat digunakan pada bagian SELECT. Syarat untuk fungsi aggregat diletakkan pada bagian HAVING, bukan WHERE.

Subquery

Ada kalanya query dapat menjadi kompleks, terutama jika melibatkan lebih dari satu tabel dan/atau fungsi aggregat. Beberapa SMBD mengizinkan penggunaan subquery.

2.6.1 SQL Server 2005

Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase.

Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan


(34)

digunakannya SQL Server pada basis data besar. Microsoft SQL Server dan Sybase/ASE dapat berkomunikasi lewat jaringan dengan menggunakan protokol TDS (Tabular Data Stream). Selain dari itu, Microsoft SQL Server juga mendukung ODBC (Open Database Connectivity), dan mempunyai driver JDBC untuk bahasa pemrograman Java.

Fitur yang lain dari SQL Server ini adalah kemampuannya untuk membuat basis data mirroring dan clustering. Pada versi sebelumnya, MS SQL Server 2000 terserang oleh cacing komputer SQL Slammer yang mengakibatkan kelambatan akses Internet pada tanggal 25 Januari 2003.

2.7 Visual Basic.Net 2005

Pada awalnya bahasa pemrograman Visual Basic merupakan bahasa yang Objek-based (komponen-komponen program dibuat dalam bentuk obyek). Namun setelah kehadiran bahasa pemrograman visual basic 6 sudah mulai dikenalkan metode-metode pemrograman berorientasi obyek atau sering disebut dengan OOP (Object Oriented Programming), tetapi masih belum sepenuhnya metode tersebut digunakan. Baru setelah Visual Basic.Net dirilis, bahasa pemrograman ini menjadi bahasa yang Object Oriented. Dengan demikian bahsa pemrograman Visual Basic.Net merupakan bahasa pemrograman yang benar-benar beorientasi obyek dengan mendukung empat pilar utama dari OOP, yaitu Abstraction, Inheritance, Polymorphism, dan Encapsulation.

Pemrograman berorientasi obyek (OOP) merupakan metode pemrograman dimana pengembang harus mendefinisikan tipe data dari struktur data dan juga tipe


(35)

dari operasi yang dapat di aplikasikan ke struktur data. Dengan demikian struktur data menjadi obyek yang memiliki data dan fungsi.


(36)

3.1 Analisis Sistem

Melakukan analisis terhadap data-data yang telah dikumpulkan serta melakukan desain system yang akan dibuat. Ada beberapa bagian penting dalam melakukan perancangan dan pembuatan suatu sistem, yaitu melakukan perancangan dan pembuatan Workflow (aliran kerja), Context Diagram, DFD (Data Flow Diagram), Flowchart dan Algoritma Tabu Search serta penyusunan struktur database sistem.

Alur sistem merupakan bagan yang menggambarkan alur atau tahapan-tahapan yang membentuk suatu aplikasi. Bagian ini juga menampilkan keterlibatan entitas yang berhubungan dengan aplikasi. Data Flow Diagram merupakan dokumentasi dari suatu sistem yang baik, karena dapat menggambarkan arus data di dalam sistem dengan terstruktur dan jelas. Flowchart dan algoritma Tabu Search merupakan gambaran alur dan tahapan bagaimana algoritma Tabu Search melakukan penyusunan jadwal kuliah.

Pada bagian selanjutnya, dilakukan pembuatan rancangan entitas-entitas yang saling berhubungan yang membentuk suatu database relasional. Struktur database yang terbentuk akan berfungsi sebagai tempat penyimpanan data-data yang digunakan dalam aplikasi.


(37)

3.2 Perancangan Sistem

Perancangan sistem berisikan penjelasan tentang deskripsi umum sistem, konsep perancangan metode tabu search dalam bentuk flowchart diagram, perancangan proses, perancangan data, perancangan table, dan perancangan antarmuka.

3.2.1Pengolahan data mengunakan metode Tabu Search

Untuk mengaplikasikan algoritma TS ke dalam masalah penjadwalan kuliah dapat didefinisikan sebagai berikut :

1. Tahap pembuatan solusi (jadwal) awal.

Melakukan pengalokasian antara matakuliah dengan dosen yang akan mengajar beserta ruangan yang akan digunakan dengan menghitung kapasitas ruang dan jumlah maksimal klas, kemudian mengalokasikan data tersebut ke hari dan waktu.

2. Tahap evaluasi konflik yang terjadi.

Mencari nilai konflik awal dan menentukan semua konflik yang terjadi dalam satu jadwal. Dengan cara mencari konflik tiap waktu(jam) dari hari senin sampai dengan jumat dan menjumlahkan semua konflik yang diperoleh. Nilai konflik yang dihasilkan dijadikan sebagai nilai terbaik sementara kemudian solusi awal yang dihasilkan dimasukkan pada tabu list.


(38)

3. Tahap pembuatan neighbour baru.

Mengalokasikan tiap data (mata kuliah, dosen dan ruangan) ke waktu yang tersedia secara random, jadwal awal yang telah ada dialokasikan kembali secara acak (random) kedalam hari dan waktu yang tersedia sehingga menghasilkan jadwal baru atau solusi baru. 4. Tahap pengelolaan tabu list.

Melakukan pengecekan terhadap tabu list, jadwal baru atau solusi baru yang telah dihasilkan dilakukan pencocokan dengan jadwal – jadwal yang sudah ada pada tabu list. Jika sudah ada maka dilakukan pengalokasian kembali secara acak, apabila belum ada maka dicari nilai konfliknya.

5. Tahap penentuan kriteria terminasi

Melakukan pengecekan apakah iterasi sudah mencapai batas maksimum atau nilai terbaik sudah menemukan nilai konflik minimum atau nilai konflik = 0. Apabila sudah memenuhi salah satu syarat tersebut maka iterasi dihentikan dan ditentukan solusi atau jadwal terbaik dengan nilai terbaik minimum apabila belum memenuhi maka proses dilanjutkan sampai memenuhi salah satu syarat tersebut

Berdasarkan definisi tersebut diatas dapat disusun algoritma langkah-langkah pengolahan data sebagai berikut:

1. memasukan data yang telah dikumpulkan (data dosen, data matakuliah, data ruangan) juga masukan parameter algoritma tabu search berupa


(39)

2. pembuatan solusi (jadwal) awal.

3. Jadikan jadwal (awal) sebagai solusi terbaik pada iterasi saat ini (iterasi = 0).

4. evaluasi konflik, Mencari nilai konflik awal jadikan sebagai nilai terbaik dan masukan ke tabu list.

5. Pembuatan Jadwal baru dengan mengalokasikan data(matkul, dosen, ruangan) ke waktu yang tersedia secara random.

6. Melakukan pengecekan terhadap tabu list, apakah sudah ada.

7. Jika sudah ada maka dilakukan pengalokasian kembali secara acak (random) jika belum ada maka dicari nilai konfliknya.

8. lakukan perbandingan nilai konflik baru dengan nilai konflik terbaik. 9. Jika nilai konflik baru < nilai konflik terbaik maka jadikan nilai

konflik baru sebagai nilai konflik terbaik jika tidak nilai konflik terbaik tetap.

10. cek nilai konflik terbaik = 0 atau iterasi = max.

11. Apabila sudah memenuhi salah satu syarat tersebut maka iterasi dihentikan apabila belum memenuhi maka proses dilanjutkan sampai memenuhi salah satu syarat tersebut.

3.2.2Flowchart

Dalam sub-bab ini akan dijelaskan alur kerja system penjadwalan kuliah dalam bentuk flowchart diagram. Untuk lebih jelasnya dapat dilihat pada penjelasan berikut ini.


(40)

start

Gambar 3.1 Flowchart pengolahan data mengunakan metode tabu search Input data

- Mata kuliah - dosen - ruangan

Pembuatan jadwal awal

Pembuatan Jadwal baru dengan mengalokasikan data(matkul, dosen, ruangan) ke waktu yang tersedia secara

random

Mencari nilai konflik awal, jadikan sebagai nilai terbaik dan masukan ke

tabu list

A B

Cek tabu list apakah ada

ya


(41)

A

Lanjutan Gambar 3.1 Flowchart pengolahan data mengunakan metode tabu search

3.2.3Ketetapan Baku Penjadwalan Kuliah

Waktu kuliah dilaksanakan pada hari Senin sampai dengan Jumat antara jam 7.00 sampai dengan 16.35 dan setiap jamnya dihitung 1 sks. Dengan rincian

Cari nilai konflik baru

Nilai konflik baru < nilai

terbaik

Nilai terbaik = nilai konflik baru ya

tidak

Masukkan ke tabu list

Nilai konflik terbaik = 0 atau

iterasi = max

End B

tidak


(42)

1. Jam 1 07.00 – 07.50 2. Jam 2 07.55 – 08.45 3. Jam 3 08.50 – 09.40 4. Jam 4 09.45 – 10.35 5. Jam 5 10.40 – 11.30 6. Jam 6 11.30 – 13.00 7. Jam 7 13.00 – 13.50 8. Jam 8 13.55 – 14.45 9. Jam 9 14.50 – 15.40 10. Jam 10 15.45 – 16.35

Jam 6 11.30 – 13.00 adalah waktu istirahat, dan tidak ada kuliah. Iterasi dilakukan sampai menemukan total nilai konflik = 0 atau iterasi telah sampai pada maksimal iterasi yang ditetapkan.

3.2.4Fungsi Tujuan

Meminimalkan Q (konflik) (1) Batasan :

Qx(t+1) ≤ Qxt…………..(Qxt) Axt (2)

Variabel Keputusan

Qx(t+1) ≤ 0…………..(Qxt) Axt (3)


(43)

semakin minimum konflik jadwal, maka semakin optimal jadwal kuliah yang dihasilkan.

Fungsi Tujuan :

Meminimumkan (makespan) =

Meminimumkan (Q jadwal(akhir) – 0 ) = Meminimumkan (Q jadwal(akhir) ) = Meminimumkan ( Q (akhir) )

Persamaan (2) merupakan batasan dari model penjadwalan kuliah yang menjelaskan bahwa konflik antara dua jadwal yang dihasilkan dari jadwal yang ada, konflik jadwal yang dihasilkan harus kurang dari konflik jadwal sebelumnya. Persamaan (3) ini sebagai hasil akhir dari dari permasalahan penjadwalan kuliah harus bernilai integer. Dalam permasalahan penjadwalan kuliah, hasil akhir yang diharapakan sebagai variabel keputusan adalah 0 dari setiap jadwal yang ada.

3.2.5Klasifikasi Constrain

Peraturan-peraturan yang digunakan dalam pembuatan jadwal kuliah dapat dirangkum dan dikelompokan menjadi 2 kelompok sesuai dengan tingkat kewajiban peraturan itu dipenuhi. Kedua kelompok ini diuraikan pada bagian Hard Constraint dan Soft Constraint.

3.2.5.1Hard Constraint

Hard Constraint didefinisikan sebagai constraint wajib yang harus dipenuhi dalam proses perhitungan algoritma. Sebuah solusi hanya dapat


(44)

dikatakan sah dan valid apabila dalam solusi tersebut sama sekali tidak ada hard constraint yang terlanggar. Berikut adalah daftar Hard constraint dalam masalah penjadwalan kuliah beserta penjelasannya :

1. Jadwal dosen dan mahasiswa tidak boleh bentrok. 2. Ruangan yang digunakan tidak boleh bentrok.

3. Seluruh kelas yang dibuka harus mendapatkan waktu dan ruangan perkuliahan.

3.2.5.2Soft Constraint

Berbeda dari hard constraint, kendala yang termasuk dalam kategori soft constraint adalah kendala yang tidak selalu dapat terpenuhi dalam proses pembentukan jadwal kuliah. Meskipun harus tidak terpenuhi, tetapi jadwal kuliah yang dihasilkan harus semaksimal mungkin berusaha memenuhi ketentuan soft constraint ini. Berikut adalah daftar soft constraint dalam masalah penjadwalan kuliah beserta penjelasannya :

1. Diusahakan seorang dosen tidak mendapatkan jadwal mengajar lebih dari 3 pertemuan dalam sehari.

2. Jadwal mengajar dosen dalam sehari diusahakan urut tanpa jeda. 3. Jadwal kuliah mahasiswa dalam sehari diusahakan urut tanpa jeda.

Untuk menghitung total konflik(constraint) diperoleh dari formula berikut:


(45)

Keterangan :

h = menyatakan hari

n = menyatakan maksimal hari t = menyatakan waktu(jam)

m = menyatakan maksimal waktu(jam) j = menyatakan posisi data

k = menyatakan maksimal posisi data d(x,y) = variabel menyatakan konflik

total konflik didapat dengan menghitung semua konflik yang terjadi didalam satu jadwal. Dengan cara mencari konflik tiap waktu(jam) dari hari senin sampai jum’at dan menjumlahkan semua konflik yang diperoleh.

3.2.6Aturan – aturan terjadi konflik (nilai yang sama)

Aturan terjadinya konflik merupakan aturan – aturan dari kondisi – kondisi yang dapat menimbulkan terjadinya suatu konflik antara dosen, matakuliah, ruangan dan kelas paralel dalam 1 hari dan jam yang sama yang diberlakukan dalam aplikasi ini. Untuk menentukan konflik dari jadwal dapat dibuat sebuah table kombinasi dari jadwal sebagai berikut:

Tabel 3.1 Tabel Kombinasi Jadwal

Mata Kuliah Dosen Ruang Paralel Semester Keterangan

Sama Sama Sama Sama Sama Konflik

Sama Sama Sama Sama Tidak Tidak pasti

Sama Sama Sama Tidak Sama Konflik

Sama Sama Sama Tidak Tidak Tidak pasti


(46)

Sama Sama Tidak Sama Tidak Tidak pasti

Sama Sama Tidak Tidak Sama Konflik

Sama Sama Tidak Tidak Tidak Tidak pasti

Sama Tidak Sama Sama Sama Konflik

Sama Tidak Sama Sama Tidak Tidak pasti

Sama Tidak Sama Tidak Sama Konflik

Sama Tidak Sama Tidak Tidak Tidak pasti

Sama Tidak Tidak Sama Sama Konflik

Sama Tidak Tidak Sama Tidak Tidak pasti

Sama Tidak Tidak Tidak Sama Tidak konflik

Sama Tidak Tidak Tidak Tidak Tidak pasti

Tidak Sama Sama Sama Sama Konflik

Tidak Sama Sama Sama Tidak Konflik

Tidak Sama Sama Tidak Sama Konflik

Tidak Sama Sama Tidak Tidak Konflik

Tidak Sama Tidak Sama Sama Konflik

Tidak Sama Tidak Sama Tidak Konflik

Tidak Sama Tidak Tidak Sama Konflik

Tidak Sama Tidak Tidak Tidak Konflik

Tidak Tidak Sama Sama Sama Konflik

Tidak Tidak Sama Sama Tidak Konflik

Tidak Tidak Sama Tidak Sama Konflik

Tidak Tidak Sama Tidak Tidak Konflik

Tidak Tidak Tidak Sama Sama Konflik

Tidak Tidak Tidak Sama Tidak Tidak konflik

Tidak Tidak Tidak Tidak Sama konflik

Tidak Tidak Tidak Tidak Tidak Tidak konflik

Dari tabel kombinasi diatas dapat dilihat adanya kombinasi yang menyebabkan konflik maupun tidak konflik.

Dari tabel diatas juga terdapat kombinasi yang tidak pasti atau belum tentu terjadi didalam penjadwalan, sehingga dengan melihat table diatas dapat disusun tabel kombinasi jadwal konflik sebagai berikut:

Tabel 3.2 Tabel Kombinasi Jadwal Konflik

Matakuliah Dosen Ruangan Paralel Semester

Sama Sama Sama Sama Sama


(47)

Sama Tidak Sama Tidak Sama

Sama Tidak Tidak Sama Sama

Tidak Sama Sama Sama Sama

Tidak Sama Sama Sama Tidak

Tidak Sama Sama Tidak Sama

Tidak Sama Sama Tidak Tidak

Tidak Sama Tidak Sama Sama

Tidak Sama Tidak Sama Tidak

Tidak Sama Tidak Tidak Sama

Tidak Sama Tidak Tidak Tidak

Tidak Tidak Sama Sama Sama

Tidak Tidak Sama Sama Tidak

Tidak Tidak Sama Tidak Sama

Tidak Tidak Sama Tidak Tidak

Tidak Tidak Tidak Sama Sama

Tidak Tidak Tidak Sidak Sama

Dari tabel aturan konflik diatas dapat dijelaskan bahwa untuk mengetahui terjadinya konflik yaitu dengan membandingkan 2 tabel yang berada dalam satu waktu (jam), sebagai contoh untuk aturan 1. jika matakuliah_1 sama dengan matakuliah_2 dan dosen_1 sama dengan dosen_2 dan ruangan_1 sama dengan ruangan_2 serta paralel_1 sama dengan paralel_2 maka terjadi konflik.

Konflik yang terjadi dicari dari tiap jam yang tersedia, Total nilai konflik dihitung dari penjumlahan seluruh konflik yang terjadi dalam satu jadwal. Misalkan pada hari senin jam 1 terjadi 1 konflik, hari senin jam 5 terjadi 2 konflik, hari selasa jam 1 terjadi 1 konflik, hari kamis jam 3 terjadi 1 konflik dan hari jum’at jam terjadi konflik sebanyak 1. Maka total nilai konflik diperoleh dengan menjumlahkan semua konflik-konflik yang terjadi dalam satu jadwal tersebut, yaitu 1+1+2+1+1+1 = 6 konflik.


(48)

3.2.7 Workflow

Gambar 3.2 Workflow penjadwalan kuliah

Pada gambar diatas menerangkan bagaimana alur kerja dalam penyusunan jadwal kuliah. Sekjur memasukan data dosen, matakuliah dan ruangan kedalam sistem. Kemudian sekjur menentukan periode semester yang diadakan serta matakuliah yang diadakan pada periode tersebut kedalam sistem. kemudian menyusun jadwal kuliah dan disimpan ke dalam database system sebagai jadwal awal. Sistem melakukan optimasi jadwal sehingga menghasilkan


(49)

diambil dari database sistem dan memberikan jadwal kuliah kepada mahasiswa dan dosen yang bersangkutan.

3.2.8Diagram Berjenjang

1 Memasukkan Data Dosen dan

Matakuliah 2 Memasukkan Data Ruangan dan Kapasitas Kelas 3 Menyeleksi dan Menentukan Matakuliah yang diadakan + 4 Menyusun Jadwal Awal + 5 Optimasi Jadwal Dengan Metode Tabu Search +

Gambar 3.3 Diagram berjenjang

Gambar diatas menerangkan bahwa aplikasi penjadwalan kuliah terdapat banyak proses antara lain: mengolah data dosen, mata kuliah, ruangan , periode, menentukan solusi awal jadwal kuliah, optimasi jadwal mengunakan metode tabu search. Dan ada sub proses dari proses menentukan solusi jadwal dan optimasi jadwal kuliah antara lain proses jadwal kuliah, optimasi jadwal kuliah, solusi jadwal kuliah, pilih solusi jadwal terbaik dan membuat laporan.

0

Penjadwalan Kuliah Dengan Menggunakan

Metode Tabu Search +


(50)

3.2.9 Context Diagram

Gambar 3.4 Context Diagram

pada gambar context diagram diatas ada 2 entitas yang berhubungan dengan aplikasi penjadwalan kuliah yaitu kajur/Sekjur dan dosen/mahasiswa. Entitas pertama, kajur/Sekjur berinteraksi dengan sistem untuk memasukkan data dosen, matakuliah, periode dan matakuliah yg diadakan, serta ruangan yang diperlukan untuk kegiatan belajar mengajar, kemudian oleh sistem data-data tersebut akan diolah mengunakan metode tabu search, selanjutnya sistem akan mengirimkan laporan jadwal kuliah ke kajur/Sekjur. Entitas kedua, dosen/mahasiswa akan memperoleh jadwal perkuliahan untuk mahasiswa dan memperoleh jadwal mengajar untuk dosen.

3.2.10 DFD level 0

DFD level 0 akan mengambarkan tiap-tiap proses yang terjadi di dalam aplikasi penjadwalan kuliah dengan menggunakan metode tabu search.


(51)

Gambar 3.5 DFD Level 0 aplkasi penjadwalan kuliah

Pada gambar diatas (Gambar 3.5) dapat dilihat bahwa dalam membangun aplikasi penjadwalan kuliah ini terdapat 6 proses utama.

Proses pertama, memasukkan data dosen dan matakuliah ke dalam aplikasi yang meliputi Nip, nama, dan menentukan kompetensi dosen tersebut berdasarkan matakuliah yang diadakan, kemudian data dosen tersebut akan disimpan dalam database dosen. Dan memasukkan data matakuliah ke aplikasi meliputi kode matakuliah, mata kuliah, semester serta jumlah SKS.

Proses kedua, memasukkan data ruangan yang akan digunakan untuk melaksanakan kegiatan belajar mengajar serta memasukkan kapasitas ruangan bedasarkan jumlah mahasiswa.


(52)

Proses ketiga, dari database matakuliah akan dipilih matakuliah yang akan diadakan berdasarkan periode sekarang genap/ganjil. Serta menentukan jumlah kelas dengan berdasarkan jumlah mahasiswa atau jumlah mahasiswa yang mengambil matakuliah tersebut.

Proses keempat, proses untuk menentukan sebuah solusi awal jadwal perkuliahan(jadwal sementara), yang penyusunannya diperoleh dari data – data yang tersimpan di dalam database antara lain dosen, periode matakuliah yang diselenggarakan dan ruangan

Proses kelima, proses untuk mengoptimasikan jadwal dengan mengunakan metode tabu search. Di dalam proses ini proses optimasi akan mengambil data – data yang ada dalam database solusi awal jadwal kuliah, yang kemudian akan menghasilkan jadwal yang telah teroptimasi. Hasil optimasi akan disimpan dalam database aplikasi. Dan kemudian dapat digunakan oleh kajur/sekjur untuk penyusunan laporan.

3.2.11 DFD level 1

1). Sub Proses Menyeleksi dan Menentukan Matakuliah yang Diadakan Pada gambar 3.6 menjelaskan bahwa DFD level 1 merupakan subsistem dari level 0. DFD ini merupakan subsistem dari proses menyeleksi dan menentukan matakuliah yang diadakan. Pada DFD level 1 ini terdapat 2 proses yaitu menyeleksi matakuliah yang diadakan pada semester genap atau ganjil dimana proses ini mengambil data-data dari database mata kuliah dan


(53)

Gambar 3.6 DFD Level 1 sub proses menyeleksi dan menentukan matakuliah yang diadakan

Setelah itu akan dilakukan proses untuk menentukan jumlah kelas dari penyelenggaraan matakuliah yang didapat dengan menentukan jumlah mahasiswa atau dengan menghitung jumlah mahasiswa yang mengambil matakuliah tersebut sehingga didapat jumlah kelas penyelenggaraan matakuliah yang diadakan.Hasil dari proses ini berupa data hasil seleksi yang disimpan dalam database periode matakuliah.


(54)

2). Sub Proses Menyusun Jadwal Awal

Gambar 3.7 DFD Level 1 sub proses menyusun jadwal awal

Pada gambar 3.7 diatas terdapat 2 proses dari subproses menyusun jadwal awal. Pada sub proses ini terdapat satu proses utama yaitu membuat jadwal awal dengan cara mengalokasikan matakuliah dengan dosen, ruang dan jadwal hari/jam. Sebelum proses yang utama terdapat proses untuk menentukan dosen yang berkompeten dari matakuliah tersebut baru kemudian dilakukan proses utama. Hasil dari proses ini kemudian disimpan pada database jadwal awal.


(55)

3). Sub Proses Optimasi Jadwal dengan Metode Tabu Search

Gambar 3.8 DFD Level 1 sub proses optimasi jadwal dengan metode Tabu Search

Pada gambar 3.8 diatas terdapat 3 proses dari subproses optimasi jadwal mengunakan metode tabu search. Proses pertama proses optimasi jadwal kuliah mengambil data dari database solusi awal jadwal ujian untuk diproses mengunakan metode tabu search. Hasil dari proses optimasi tersebut akan dipilh solusi yang terbaik, tidak ada nilai konflik atau nilai sama yang minimum terkecil sesuai dengan batasan maksimal iterasi. Jadwal yang telah teroptimasi diberikan kepada dosen/mahasiswa, sebagai jadwal yang digunakan untuk kegiatan perkuliahan. kemudian akan dilakukan proses pembuatan laporan untuk kajur/sekjur.


(56)

3.3 Perancangan Database

Pada perancangan kali ini akan dibahas mengenai perancangan data dan perancangan table yang akan digunakan pada system ini. Dalam perancangan data ini, menjelaskan tentang 2 model data yaitu: model data konseptual dan model data fisik. Untuk lebih jelasnya dapat dijelaskan di bawah ini.

3.3.1Perancangan Data

a). Model Data Konseptual (Conseptual Data Model)

Model data konseptual adalah rancangan dalam bentuk diagram sebelum pembuatan database secara detail. Model data konseptual ini dibuat tanpa harus mempertimbangkan data DBMS apa yang nanti dipakai, karena bentuk ini hanya sebuah konsep rancangan yang nantinya bisa digunakan oleh semua DBMS. Model data konseptual pada aplikasi system ini mempresentasikan rancangan basis data konseptual yang nantinya akan digunakan oleh system ini. Pada konsep rancangan ini dibuat dengan menggunakan Power Designer 15. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini :


(57)

Gambar 3.9 CDM (Conceptual Data Model)

Pada gambar CDM diatas terdapat 9 tabel untuk menyimpan database pada aplikasi penjadwalan kuliah dengan mengunakan metode tabu search. Penjelasan tentang fungsi dan field-field yang berada pada table tersebut diatas akan dibahas pada sub bab berikutnya.

b). Model Data Phisik (Physical Data Model)

Model data phisik dibuat dengan cara merubah model data konseptual yang telah dijelaskan diatas. Model data ini mempresentasikan rancangan fisik


(58)

basis data yang disimpan. Model data ini menghasilkan table-tabel yang nantinya akan dipakai dalam implementasi system yang dibuat. Untuk lebih jelasnya dapat dilihat pada gambar di bawah ini:

Gambar 3.10 PDM (Physical Data Model)

3.3.2Perancangan Tabel

Dari tabel yang telah dihasilkan dalam pembuatan CDM (Conceptual Data Model) dan PDM (Physical Data Model), adapun rincian tabel seperti


(59)

1. Tabel mata_kuliah

Tabel ini digunakan untuk menyimpan data matakuliah. Dalam tabel ini terdapat 1 primary key yaitu kd_mk.

Tabel 3.3 Tabel mata_kuliah

2. Tabel dosen

Tabel ini digunakan untuk menyimpan data dosen. Dalam tabel ini terdapat 1 primary key yaitu NIP dosen.

Tabel 3.4 Tabel dosen

3. Tabel kompetensi_dsn

Tabel kompetensi_dsn dihasilkan dari relasi antara tabel dosen dan tabel mata kuliah, tabel ini digunakan untuk menyimpan kompetensi dosen. Dalam tabel ini terdapat 2 primary key dan 2 foreign key.

Tabel 3.5 Tabel kompetensi_dsn

No Nama Fields Type Panjang Const Keterangan

1 KD_MK VARCHAR 15 PK Kode matakuliah

2 MATAKULIAH VARCHAR 50 Nama matakuliah

3 SKS INT sks matakuliah

4 SEMESTER INT Semester matakuliah

5 STATUS_MK VARCHAR 15 Status mk(ganjil/genap)

No Nama Fields Type Panjang Const Keterangan

1 NIP_DSN VARCHAR 15 PK NIP Dosen

2 NAMA_DSN VARCHAR 50 Nama Dosen

No Nama Fields Type Panjang Const Keterangan

1 NIP_DSN VARCHAR 15 PK,FK NIP Dosen


(60)

4. Tabel mk_periode

Tabel ini digunakan untuk menyimpan matakuliah-matakuliah yang akan diselenggarakan dalam satu jadwal.Dalam tabel ini terdapat 2 primary key dan 1 foreign key.

Tabel 3.6 Tabel mk_periode

5. Tabel ruang

Tabel ini digunakan untuk menyimpan data ruangan untuk perkuliahan. Dalam tabel ini terdapat 1 primary key yaitu kode ruangan.

Tabel 3.7 Tabel ruang

6. table jadwal

Tabel ini digunakan untuk menyimpan data solusi awal jadwal kuliah. Dalam tabel ini terdapat 5 primary key dan 4 foreign key.

Tabel 3.8 Tabel jadwal

No Nama Fields Type Panjang Const Keterangan

1 NIP_DSN VARCHAR 15 PK,FK NIP Dosen

2 KD_RUANG VARCHAR 15 PK,FK Kode(no) ruangan

3 KD_MK VARCHAR 15 PK,FK Kode matakuliah

4 KD_PERIODE VARCHAR 15 PK,FK Kode Periode

5 CLASS_PAR VARCHAR 3 PK Kode denda

No Nama Fields Type Panjang Const Keterangan

1 KD_MK VARCHAR 15 PK,FK Kode matakuliah

2 KD_PERIODE VARCHAR 15 PK Kode Periode

3 KPS_CLASS INT Kapasitas kelas

4 JUMLAH_MHS INT Jumlah mahasiswa

5 JUMLAH_CLASS INT Jumlah kelas

No Nama Fields Type Panjang Const Keterangan

1 KD_RUANG VARCHAR 15 PK,FK Kode(no) ruangan


(61)

7. table temp_jadwal

Tabel ini digunakan untuk menyimpan data solusi jadwal terbaik dari proses pengolahan data mengunakan metode tabu search dan juga sebagai tempan penyimpanan proses iterasi Tabu Search(tabu list). Dalam tabel ini terdapat 5 primary key dan 5 foreign key

Tabel 3.9 Tabel temp_jadwal

No Nama Fields Type Panjang Not

Null Keterangan

1 NIP_DSN VARCHAR 15 PK,FK NIP Dosen

2 KD_RUANG VARCHAR 15 PK,FK Kode(no) ruangan

3 KD_MK VARCHAR 15 PK,FK Kode matakuliah

4 KD_PERIODE VARCHAR 15 PK,FK Kode Periode

5 CLASS_PAR VARCHAR 3 PK,FK Kode denda

6 JDWL_HR VARCHAR 15 Temp Jadwal hari

7 JDWL_JAM VARCHAR 15 Temp Jadwal jam

8 MAX_ITR INT Proses iterasi ke

8. Tabel login

Tabel ini digunakan untuk menyimpan id yang digunakan untuk masuk kedalam aplikasi penjadwalan kuliah. Dalam tabel ini terdapat 1 primary key yaitu kode penguna (user).

Tabel 3.10 Tabel login

9. Tabel Hak_akses

Tabel ini digunakan untuk menyimpan data penguna (user) dan hak akses pada aplikasi penjadwalan ujian.

No Nama Fields Type Panjang Const Keterangan

1 ID_LOGIN VARCHAR 50 PK Id untuk login


(62)

Dalam tabel ini terdapat 1 primary key dan 1 foreign key. yaitu kode penguna (user).

Tabel 3.11 Tabel hak_akses

3.4 Perancangan antar muka sistem

Tahap ini dilakukan setelah diketahui informasi – informasi apa saja yang akan terlibat dalam sistem. Dalam melakukan perancangan antar muka ini diharapkan mampu memenuhi aspek-aspek sebagai berikut:

1. mudah dibaca dan dimengerti

2. ergonomis untuk tata letak visualisasinya

3. sederhana, tidak harus melalui prosedur yang rumit 4. dan lain sebagainya

data masukan yang dibuat merupakan visualisasi kondisi di waktu sekarang berupa matakuliah, dosen, ruangan yang ada sekarang untuk digunakan sebagai ruang perkuliahan. Sedangkan format keluaran merupakan hasil laporan yang merupakan output dari hasil pengolahan data oleh aplikasi.

Untuk memberikan gambaran awal tentang antar muka penjadwalan kuliah dengan mengunakan metode tabu search dari desain aplikasi, maka perlu dibuat suatu rancangan masukan dan keluar aplikasi sebagai berikut:

No Nama Fields Type Panjang Const Keterangan

1 ID_LOGIN VARCHAR 50 PK Id untuk login

2 NM_USER VARCHAR 50 Nama pengguna


(63)

a. Form Data Mata Kuliah

Gambar 3.11 Form Data Mata Kuliah

1. Input data matakuliah untuk menginputkan data-data matakuliah ke database.

2. Kontrol proses untuk mengolah data(tambah, ubah, hapus, dsb). 3. data matakuliah untuk menampilkan data-data matakuliah dari

database.

b. Form Data Dosen


(64)

1. Input data dosen untuk memasukkan data dan data kompetensi dosen kedalam database.

2. Kontrol proses untuk mengolah data(tambah, ubah, hapus, dsb). 3. Data dosen untuk menampilkan data-data dosen dari database. 4. Kompetensi untuk menampilkan kompetensi berdasarkan data

dosen.

c. Form Data Ruangan

Gambar 3.13 Form Data Ruangan

1. Input data matakuliah untuk menginputkan data-data matakuliah ke database.

2. Kontrol proses untuk mengolah data(tambah, ubah, hapus, dsb). 3. data matakuliah untuk menampilkan data-data ruangan dari


(65)

d. Form Data Mata Kuliah yg diadakan

Gambar 3.14 Form Data Matakuliah yang Diadakan

1. Input data matakuliah diadakan untuk memasukkan data matakuliah berdasarkan periode kedalam database.

2. Kontrol proses untuk mengolah data(tambah, ubah, hapus, dsb). 3. Data matakuliah untuk menampilkan data-data matakuliah dari

database untuk dipiih sebagai matakuliah diselenggarakan.

4. data matakuliah diadakan untuk menampilkan data matakuliah diadakan dari database.


(66)

e. Form Jadwal Awal

Gambar 3.15 Form Jadwal Awal

1. Input data matakuliah dan ruangan untuk menentukan data matakuliah berdasarkan periode yang diselenggarakan dan ruangan yang digunakan.

2. Input data dosen untuk menentukan data dosen yang mengajar matakuliah tersebut.

3. input jadwal untuk menentukan jadwal awal matakuliah. 4. Kontrol proses untuk mengolah data(tambah, ubah, hapus, dsb). 5. Data matakuliah untuk menampilkan data-data matakuliah dari

database untuk menentukan jadwal awal.


(67)

7. data jadwal awal untuk menampilkan data jadwal awal dari database.

f. Form Proses Tabu Search

Gambar 3.16 Form Proses Tabu Search

1. Jadwal kuliah untuk menampilkan jadwal terbaik yang dipilih 2. Input parameter Tabu Search merupakan input atau masukan yang

digunakan dalam proses optimasi seperti maksimal proses iterasi. 3. Output parameter Tabu Search merupakan output atau hasil dari

proses optimasi berupa konflik, iterasi terbaik, konflik total tiap iterasi, dll.

4. Kontrol proses untuk untuk memproses untuk melakukan proses pembuatan jadwal dengan mengunakan metode tabu search. Menampilkan hasil optimasi, untuk menyimpan hasil terbaik jadwal ke dalam database, dan mencetak hasil optimasi jadwal.


(68)

4.1

Kebutuhan Sistem

Aplikasi Penjadwalan kuliah ini memerlukan perangkat keras (Hardware) dan

perangkat lunak (Software) , agar dapat berjalan sesuai dengan yang diharapkan.

Dalam Perancangan dan pembuatan aplikasi ini dibutuhkan perangkat keras

(Hardware) dan perangkat lunak (Software) sebagai berikut:

1.

perangkat lunak (Software)

Perangkat lunak yang diperlukan dalam pembuatan dan perancangan

aplikasi ini adalah:

a.

Sistem Operasi minimal windows 9x

b.

Microsoft Visual Studio .Net 2005

c.

Microsoft SQL Server 2005

d.

Microsoft Office 2003

e.

Power Designer versi 6.0

2.

perangkat keras (Hardware)

Selain perangkat lunak yang telah disebutkan diatas dalam pembuatan

dan perancangan aplikasi penjadwalan kuliah ini juga dibutuhkan spesifikasi

perangkat keras sebagai berikut:


(69)

e.

VGA dengan memory minimal 8 MB atau lebih

f.

Printer

g.

Mouse dan keyboard

4.2

Implementasi Aplikasi

Pada Sub bab ini akan diberikan gambaran tampilan aplikasi, fungsi dan

cara penggunaan. Ketika program dijalankan akan muncul tampilan selamat datang

seperti gambar 4.1. Ini merupakan tampilan awal yang akan ditampilkan pertama kali

ketika user akan login ke dalam sistem.


(70)

sistem. Di dalam aplikasi ini berisi proses loading untuk login ke dalam sistem.

Setelah form ini selesai dijalankan maka akan muncul form login seperti

dibawah ini:

Gambar 4.2 Login Aplikasi

Form login pada gambar 4.2 ini digunakan untuk login dan masuk ke dalam

sistem. Yang dilakukan user adalah dengan cara memasukkan ID dan PASSWORD

apabila user memasukkan id dan password yang salah maka user tidak akan dapat

masuk ke sistem. Dengan menekan tombol login maka akan dilakukan pengecekan

kedalam database apabila cocok maka user dapat masuk kedalam aplikasi. Untuk

membatalkan login kedalam aplikasi user dapat menekan tombol cancel.


(71)

Gambar 4.3 Tampilan Utama Aplikasi

Tampilan setelah login user maka sub-sub menu bisa diakses dan digunakan.

Untuk menu user dengan hak akses admin terdapat 3 menu utama yang didalamnya

terdapat sub-sub menu. sub menu user terdapat sub menu change password dan

maintenance user Sedangkan untuk user dengan hak akses selain admin hanya

terdapat 2 menu utama yaitu menu user dan menu seleksi yang didalam menu user

hanya terdapat sub menu change password.

Form utama ini juga berfungsi untuk memproses jadwal awal. Untuk

memproses jadwal awal yang diinginkan user memasukan periode dan jadwal awal

yang diinginkan. Maka aplikasi akan menampilkan jadwal awal dari database dengan

tampilan seperti dibawah ini:


(72)

Gambar 4.4 Load jadwal Awal

Kemudian user memasukkan batas iterasi untuk melakukan proses optimasi

jadwal. Setelah User menekan tombol Proses maka jadwal akan diproses dengan

menggunakan metode Tabu search, Proses akan berhenti jika sudah menemukan

jadwal dengan total nilai konfilk = 0 atau iterasi sudah mencapai batas maksimal

iterasi yang telah ditentukan. Form juga dapat menampilkan hasil iterasi yang bisa

dilihat dengan memilih list iterasi yang ditampilkan. User juga dapat mencetak jadwal

dengan menekan tombol Print.


(73)

Gambar 4.5 Hasil Optimasi

Setelah User menekan tombol proses maka akan ditampilkan hasil optimasi

dengan metode tabusearch seperti gambar diatas. Selanjutnya user dapat menyimpan

atau langsung mencetak dengan menekan tombol print. Kemudian akan ditampilkan

jadwal yang telah dioptimasi ke Microsoft Office Excel 2003 sehingga user dapat

menyimpan atau mengubah ataupun langsung mencetak jadwal tersebut. Pada form

menu utama ini juga terdapat hasil iterasi yang dapat ditampilkan jika user memilih

proses iterasi keberapa dari list iterasi yang ditampilkan.

4.2.2

Form Sub Menu User

Setelah mengetahui form utama pada aplikasi ini, selanjutnya akan di

bahas sub menu pada masing-masing menu.


(74)

Gambar 4.6 Tampilan Sub Menu User

Seperti pada gambar di atas, ini adalah form sub menu file, Disini sub menu

file memiliki 2 sub menu:

1.

Change Pasaword (untuk mengganti password dari user yang sedang login).

2.

Maintenance User (untuk menambah dan menghapus user, sub menu ini

hanya ada pada user dengan hak akses admin).

4.2.2.1

Form Sub Menu User Change Password

Form Cange password digunakan untuk mengubah password login dari user

yang sedang aktif atau sedang login dalam aplikasi. Ketika form dibuka maka akan

ditampilkan user id dari pengguna tersebut.


(75)

Gambar 4.7 Tampilan Sub Menu User Change Password

Untuk mengubah password user harus mengisi password lama dan password

baru juga konfirmasi password seperti dalam gambar diatas. Password akan dirubah

setelah user menekan tombol ubah, tombol cancel untuk membatalkan.

4.2.2.2

Form Sub Menu User Maintenance User

Form Maintenance User digunakan untuk menyimpan, menambah, dan

mengubah data user. Form ini hanya ditampilkan pada user dengan hak akses admin,

user dengan hak akses admin dapat menambah data user pengguna, mengubah data

dan menghapus data. Form ini ditunjukkan pada Gambar 4.8.


(76)

Gambar 4.8 Tampilan Sub Menu User Maintenance User

Dari gambar diatas dapat dilihat pada form ini terdapat informasi tentang

nama-nama pengguna, password beserta hak aksesnya. Admin dapat mengubah data

user pengguna dengan melihat informasi dari form ini.

4.2.3

Form Sub Menu Data

Setelah mengetahui form sub menu file terdapat form sub menu data yang

digunakan untuk mengisi data-data master didalam aplikasi penjadwalan kuliah ini.


(77)

Gambar 4.9 Tampilan Sub Menu Data

Pada form sub menu data ini terdapat beberapa sub menu, dimana pada form

sub menu data aplikasi ini dibagi menjadi 3 yaitu :

1)

Data Ruangan (untuk menyimpan data master ruangan).

2)

Data MataKuliah (untuk menyimpan data master matakuliah).

3)

Data Dosen (untuk menyimpan data master dosen).

4.2.3.1

Form Sub Menu Data Ruangan

Form ini berfungsi untuk mengolah data ruangan, admin dapat menambah,

menghapus ataupun mengubah data ruangan.


(78)

Gambar 4.10 Tampilan Sub Menu Data Ruangan

Form diatas digunakan untuk memasukan data-data ruangan yang ada dan

dan dapat digunakan untuk menyelenggarakan perkuliahan seperti kode ruangan dan

kapasitas ruangan yang digunakan.

4.2.3.2

Form Sub Menu Data MataKuliah

Form ini berfungsi untuk mengolah data matakuliah yang ada pada jurusan

teknik informatika UPN ”Veteran” JATIM. Form ini ditunjukkan pada Gambar 4.11.


(1)

81

Gambar 5.2 Proses Optimasi Jadwal

Karena Pada Penjadwalan dengan menggunakan algoritma tabu search menggunakan system pengacakan (random) untuk mendapatkan nilai konflik, maka pada setiap proses ujicoba jumlah iterasi yang diperlukan untuk mendapatkan hasil terbaik (dalam hal ini nilai konflik = 0) selalu berubah-ubah. Untuk lebih detail jadwal dapat dilihat pada lampiran.

5.3 Analisa hasil ujicoba

langkah selanjutnya adalah melakukan analisa terhadap hasil penjadwalan kuliah dengan menggunakan algoritma tabu search.


(2)

dengan adanya penjadwalan kuliah dengan mengunakan algoritma tabu search ini dapat membantu dalam pembuatan jadwal kuliah dalam hal membuat jadwal kuliah dengan nilai sama (konflik) minimum atau tidak adanya nilai sama (konflik) antara matakuliah, dosen dan ruangan dalam satu waktu.

Namun dengan mengunakan algoritma tabu search kadangkala tidak ditemukan nilai konflik = 0 tetapi nilai konflik yang terkecil (minimum). Kejadian itu disebabkan algoritma tabu search bergerak menentukan solusi secara random dari data yang telah ada dimana penempatan data tidak dapat diprediksikan ataupun dikontrol. Total iterasi untuk mencapai total konflik minimum dengan jumlah data yang sama tidak tetap, serta waktu yang dibutuhkan untuk mendapatkan jadwal tidak dapat diperhitungkan.

Didalam penjadwalan dengan algoritma tabu search ini keefektifan pemakaian waktu kurang dapat dimaksimalkan karena pada jam dan hari tertentu terdapat jadwal kuliah yang padat sedangkan pada jam dan hari yang lain tidak ada jadwal kuliah sama sekali.

Tabel 5.4 Tabel Hasil Ujicoba

ujicoba ke total iterasi jumlah mata kuliah jumlah dosen jumlah ruang total nilai konflik Iterasi terbaik

1 50 7 7 7 0 2

2 50 15 15 15 0 6

3 50 25 25 15 0 9

4 50 32 25 15 2 9

5 100 50 25 15 11 15


(3)

83

Dari tabel 5.4 (hasil ujicoba proses) dapat dianalisa bahwa jumlah mata kuliah, ruangan dan dosen sangat berpengaruh dalam proses mendapatkan jadwal yang optimal. Dengan jumlah matakuliah sebanyak 50 dan 75 tidak ditemukan niliai konflik yang terbaik dikarenakan jumlah dosen dan ruangan yang tidak seimbang dan terdapat selisih yang sangat besar antara jumlah matakuliah, dosen dan ruangan.

Jadi jumlah matakuliah dengan dosen dan ruangan harus seimbang, dan pengalokasian matakuliah dengan ruangan tidak menumpuk dalam 1 tempat(ruang). Dengan demikian konflik yang terjadi dapat dihindari seminimal mungkin, juga iterasi dengan nilai konflik terbaik bukan lah iterasi yang terakhir melainkan iterasi yang paling awal ditemukan dengan nilai minimal.


(4)

84

PENUTUP

6.1 KESIMPULAN

Berdasarkan hasil studi pustaka, analisa, desain, pengembangan serta implementasi dan pengujian pembuatan aplikasi penjadwalan kuliah dengan menggunakan metode tabu search ada beberapa kesimpulan yang dapat diambil dari aplikasi penjadwalan kuliah mengunakan metode tabu search yaitu:

1. Dengan menggunakan tabu search dapat diperoleh optimasi jadwal yang terbaik dengan membuat solusi yang paling mendekati dengan iterasi yang telah ditentukan.

2. Untuk memperoleh solusi yang paling optimal menggunakan kombinasi matakuliah dan dosen maka dapat memanfaatkan waktu yang tersedia secara efisien sehingga dapat dihasilkan jadwal yang optimal.

3. Agar dapat membuat jadwal yang optimal atau meminimalkan bentrokan jadwal disisi mahasiswa maka dapat diperoleh dengan mengalokasikan antara matakuliah ruang dan waktu.

4. Untuk mempermudah pengguna dalam memanfaatkan aplikasi penjadwalan kuliah ini maka dibuat tampilan yang sederhana dan memenuhi aturan-aturan untuk mendapatkan parameter yang dibutuhkan dalam proses optimasi menggunakan metode tabu search.


(5)

85

SARAN

Saran-saran yang dapat disampaikan penulis untuk pengembangan aplikasi penjadwalan kuliah dengan menggunakan metode tabu search adalah sebagai berikut:

1. metode tabu search dapat di kombinasikan dengan metode-metode heuristik lainnya misalnya dengan menggunakan algoritma genetika sehingga dapat lebih efektif dalam pembuatan penjadwalan kuliah.

2. Algoritma tabu search tidak hanya dapat digunakan untuk penjadwalan kuliah saja namun dapat dikembangkan untuk menyelesaikan permasalahan-permasalahan dibidang lain misalnya pencarian rute terpendek (traveling salesman problem).


(6)

86

Dr. Ir. Soemargono, SU, 2005. “Buku Pendoman Kurikulum Dan Silabus Fakultas Teknologi Industri Tahun Akademik 2005/2006”. UPN Press, Surabaya. Glover and Laguna, 1997. Tabu Search.

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.7798&rep=rep1&t ype=pdf diakses 5 April 2010

Glover, 1990. Tabu Search Tutorial.

http://www.cse.unt.edu/~garlick/teaching/4310/assign/TS%20-%20Tutorial.pdf diakses 5 April 2010

Orsa Journal On Computing, 1990. Tabu Search Part II.

http://134.100.132.28/studentsatwork/literatur/sel_glover_b.pdf diakses 5 April 2010

UPN Elearning Website (http://elearning.upnjatim.ac.id) Vb Forum Website (http://forum.vb-bego.net)

Yuswanto, 2008. “Pemrograman Dasar Visual Basic .NET 2005”. Cerdas Pustaka Publisher, Jakarta.

Yuswanto & Subari, 2007. “Pemrograman Database Visual Basic .NET”. Prestasi Pustaka, Jakarta.