Spesifikasi Proyek
Pengembangan dan Optimasi
Algoritma Genetik untuk
Penjadwalan Kuliah di
Fakultas IT
Disiapkan oleh Tjatur Kandaga G.
Fakultas IT – Universitas Kristen Maranatha
Daftar Isi
Daftar Isi ... ii
1.
Pendahuluan ...1
1.1 Tujuan Proyek ... 1
1.2 Ruang Lingkup Proyek... 1
1.3 Tinjauan Singkat Algoritma Genetik ... 2
2.
Deskripsi Proyek ...3
2.1 Tentang Perangkat Lunak ... 3
2.2 Fungsi-Fungsi Perangkat Lunak ... 4
2.3 Karakteristik dan Klasifikasi Pengguna ... 5
2.4 Lingkungan Operasi ... 5
2.5 Batasan Desain dan Implementasi ... 5
2.6 Asumsi dan Ketergantungan... 5
2.7 Antarmuka Pengguna ... 6
2.8 Antarmuka Perangkat Keras ... 6
2.9 Antarmuka Perangkat Lunak ... 6
2.10 Antarmuka Komunikasi ... 6
3.
Tahapan Proyek ...6
3.1 Detail Rencana Kerja ... 6
3.2 Time Schedule ... 8
4.
Hasil Proyek...8
4.1 Indikator Penilaian ... 8
4.2 Standar Penyelesaian Proyek ... 8
1. Pendahuluan
1.1 Tujuan Proyek
Universitas Kristen Maranatha merupakan salah satu Universitas swasta terkemuka di Indonesia pada umumnya dan Jawa Barat pada khususnya. Universitas Kristen Maranatha selalu berusaha memberikan pelayanan yang terbaik bagi seluruh stakeholder-nya yang diantaranya adalah mahasiswa dan dosen.
Saat ini, proses penjadwalan kuliah baik di Universitas Kristen Maranatha maupun di lembaga pendidikan lainnya seringkali merupakan hal yang cukup merepotkan dan menyita waktu para pejabat di jurusan/fakultas. Jadwal kuliah yang dipersiapkan untuk semester yang akan berjalan merupakan pemetaan dari banyak parameter yang saling berkaitan, diantaranya matakuliah, dosen, ruangan dan waktu. Hal ini menyebabkan proses penjadwalan menjadi cukup kompleks dan seringkali harus mengalami revisi berkali-kali. Revisi jadwal biasanya terjadi sehubungan dengan adanya jadwal yang bentrok baik dari sisi waktu, ruangan, atau dosen, juga terjadinya perubahan-perubahan pada parameter-parameter tersebut. Jika perubahan yang harus dilakukan cukup banyak, maka kompleksitasnya makin meningkat pula, dan kadangkala lebih mudah untuk menjadwalkan ulang dari awal daripada merevisi jadwal yang sudah dibuat.
Melalui penelitian ini, diharapkan dapat dihasilkan sebuah perangkat lunak yang akan menerima masukkan berupa data dari parameter-parameter yang terlibat dalam penjadwalan, kemudian menghasilkan output berupa jadwal perkuliahan secara otomatis. Perangkat lunak ini akan menggunakan algoritma genetik sebagai algoritma utama yang merupakan bagian dari kecerdasan buatan, dibantu dengan beberapa algoritma / metoda lain untuk melakukan optimalisasinya.
1.2 Ruang Lingkup Proyek
Perangkat lunak yang dikembangkan diharapkan akan dapat dipergunakan untuk membantu penjadwalan kuliah di Fakultas IT Maranatha. Pada versi awal akan dibuat perangkat lunak yang menerapkan algoritma genetik standar. Perangkat lunak dibuat berbasis console atau desktop, kemudian akan diuji dengan data riil dan dilakukan langkah-langkah optimasi. Jika hasil optimasi sudah berada pada level dapat digunakan, akan di-porting menjadi berbasis web menggunakan framework vaadin.
Pada tahap awal juga akan mempelajari beberapa library / project open source seperti Opt4j, jMetal dan TimeFinder untuk mengevaluasi kemungkinan penggunaan library tersebut. Jika library tersebut ada yang dapat digunakan, maka ada kemungkinan untuk dibuat dua perangkat lunak terpisah yaitu yang menggunakan library dan yang dibuat manual. Nantinya kedua perangkat lunak akan dievaluasi fleksibilitasnya dan kualitas solusinya.
1.3 Tinjauan Singkat Algoritma Genetik
Algoritma genetik merupakan algoritma untuk melakukan pencarian yang bekerja berdasarkan prinsip seleksi alam dan genetika untuk mendapatkan atau menghasilkan individu - individu yang memiliki kualitas tinggi dalam suatu populasi. Algoritma genetik dibuat dengan tujuan untuk memodelkan seleksi alami Darwin. Prinsipnya dasarnya adalah dengan membentuk suatu skema kelahiran, perkawinan, dan kematian dari suatu bentuk kehidupan.
Pada algoritma genetik, proses ’belajar’ dipandang atau diwujudkan sebagai kompetisi didalam sebuah populasi yang berisi calon-calon solusi dari permasalahan, dimana calon-calon solusi tersebut berevolusi.
Suatu individu yang dimaksud dalam algoritma genetik adalah satu set informasi genetik, yang disebut sebagai gen. Kumpulan gen yang membentuk suatu individu yang disebut kromosom. Setiap individu mempunyai kromosomnya sendiri yang bersifat unik.
Algoritma genetik dapat digunakan untuk menyelesaikan masalah optimasi yang kompleks. Dalam proses perhitungan fungsi objektifnya, dibutuhkan pemodelan data untuk mendefinisikan permasalahan. Pemodelan data ini menggunakan komponen yang disebut kendala untuk mendefinisikan masalah. Ada beberapa jenis kendala yang dapat dipertimbangkan untuk pemodelan Algoritma genetik pada masalah perkuliahan, yaitu:
1. Hard Constraint, adalah kendala yang tidak boleh dilanggar. Contohnya adalah event – event kuliah yang diajarkan oleh seorang dosen yang sama tidak boleh dijadwalkan pada waktu yang bersamaan, walaupun pada dua ruangan yang berbeda.
2. Soft Constraint, yaitu kendala yang tidak begitu penting, tetapi alangkah baiknya jika dipenuhi. Contohnya adalah pengaturan jadwal kuliah sebaiknya memanfaatkan ruangan secara optimal agar tidak banyak waktu kosong untuk jadwal kuliah yang menggunakan ruang kelas tersebut. 3. Edge Constraint, yaitu kendala yang menyatakan event - event tidak dapat ditempatkan pada
ruang dan slot waktu yang sama atau beririsan. Contohnya adalah dua kelas yang berbeda tidak dapat menempati ruang yang sama pada waktu yang bersamaan.
4. Ordering Constraint, yaitu kendala yang mengatur agar event – event disusun secara berurutan atau event yang satu mendahului yang lain. Contoh dari konstrain ini adalah mata kuliah yang memiliki praktikum diatur agar kuliah regulernya terlebih dahulu dijadwalkan daripada praktikumnya.
5. Event Spread Constraint, kendala ini mengatur agar event – event dijadwalkan secara menyebar. Salah satu contoh dari konstrain ini adalah penjadwalan mahasiswa yang diatur agar kelasnya tidak lebih dari dua atau tiga dalam setiap harinya, melainkan menyebar dalam seluruh hari kuliah dalam satu minggu.
6. Preset Specification and Exclusion, kendala ini mengatur agar event – event tertentu ditempatkan pada waktu tertentu, atau pada slot waktu tertentu tidak dijadwalkan mata kuliah tertentu pula.
7. Capacity Constraint, yaitu kendala yang berhubungan dengan kapasitas ruangan serta jumlah peserta kelas.
Mekanisme atau cara kerja Algoritma Genetik secara umum mengikuti tahapan sebagai berikut:
1. Buat populasi acak sebanyak n kromosom.
2. Evaluasi fitness dari tiap kromosom yang terdapat dalam populasi
3. Buat populasi baru dengan mengulang langkah berikut sampai ukuran populasi terpenuhi: a. Pilih dua kromosom dari populasi berdasarkan nilai fitness (semakin baik fitnessnya
semakin besar kesempatan untuk terpilih).
b. Berdasarkan peluang pindah silang (crossover probability), lakukan pindah silang terhadap induk untuk membentuk keturunan baru. Jika tidak ada pindah silang yang dilakukan, keturunan baru adalah salinan dari induknya.
c. Berdasarkan peluang mutasi (mutation rate), lakukan mutasi terhadap keturunan baru. d. Tempatkan keturunan pada populasi yang baru.
4. Gunakan populasi baru untuk menggantikan populasi lama.
5. Jika konsidi akhir terpenuhi, langkah Algoritma Genetik berhenti dan hasil akhirnya adalah solusi terbaik pada populasi saat ini. Jika kondisi akhir belum terpenuhi, maka ulangi mulai dari langkah nomor dua.
Untuk menghasilkan populasi kromosom yang baru, algoritma genetik menggunakan tiga operator dasar yaitu reproduksi, pindah silang, dan mutasi. Pada tahap reproduksi terjadi proses penyalinan ulang individu berdasarkan fungsi objektifnya yang disebut fungsi fitness. Nilai fitness dapat bernilai maksimum atau minimum tergantung pada permasalahan yang dihadapi. Operator pindah silang dan mutasi terjadi pada proses rekombinasi bagian - bagian kromosom untuk membuat populasi baru.
2. Deskripsi Proyek
2.1 Tentang Perangkat Lunak
Penelitian mengenai penjadwalan kuliah dengan menggunakan algoritma genetik ini menjadi penting, karena saat ini pada banyak institusi pendidikan biasanya proses penjadwalan dilakukan secara manual, hanya mengandalkan aplikasi spreadsheet yang tidak dapat mengakomodasi kebutuhan pengguna dalam melakukan pembuatan jadwal sehingga sangat menguras sumber daya baik waktu, tenaga dan pikiran. Kualitas jadwal yang dihasilkan juga biasanya tidak berhasil mengoptimalkan pengalokasian sumber daya. Proses pembuatan jadwal kuliah menjadi hal yang cukup rumit disebabkan karena banyaknya parameter yang terlibat, terlebih lagi jika ada sumber daya tertentu yang kemungkinan pengalokasiannya sangat terbatas.
Banyak metode yang dapat digunakan untuk membuat jadwal secara otomatis, diantaranya yang pengembangan perangkat lunaknya paling mudah adalah dengan metode brute-force, tetapi ketika dijalankan prosesnya membutuhkan sumber daya komputasi yang sangat besar dan hasilnya jauh dari optimal. Metode-metoda alternatif yang cukup baik adalah yang menggunakan kecerdasan buatan, karena adanya teknik heuristic yang memungkinkan pendekatan terhadap kemungkinan solusi. Algoritma genetik cocok dengan model persoalan
seperti penjadwalan, karena kandidat solusi dalam algoritma genetik dapat berevolusi, yang pada akhirnya diharapkan hasil proses evolusi tersebut akan memberikan kandidat dengan pendekatan yang semakin baik terhadap solusi yang dibutuhkan. Meskipun cukup baik, tetapi hasil algoritma genetik biasanya masih menyisakan beberapa persoalan (dalam kasus ini berupa beberapa bentrokan jadwal), sehingga dibutuhkan metoda lain untuk mengoptimalkannya.
Diharapkan perangkat lunak hasil dari penelitian ini dapat menghasilkan jadwal kuliah yang optimal, sehingga akan membantu banyak institusi pendidikan dalam melakukan penjadwalan proses belajar mengajarnya, dengan menghasilkan jadwal yang optimal yang diperoleh dengan penggunaan sumber daya yang lebih sedikit dibandingkan dengan cara manual atau dibandingkan dengan pengunaan metode lain. Pada akhirnya hal ini diharapkan dapat menjadi seperti bola salju, dimana sumber daya di jurusan/fakultas terbebas dari kerumitan urusan penjadwalan, sehingga dapat berkonsentrasi pada hal lain yang lebih penting, yang pada akhirnya dapat meningkatkan mutu perguruan tinggi guna meningkatkan daya saing bangsa.
Model yang dihasilkan beserta perangkat lunaknya diharapkan dapat diadaptasikan untuk penjadwalan di bidang lain seperti penjadwalan proses produksi di industri, penjadwalan pada bidang transportasi, penjadwalan pembagian tugas kerja, dan penjadwalan pengerjaan proyek.
2.2 Fungsi-Fungsi Perangkat Lunak
Fungsi-fungsi perangkat lunak akan dipenuhi melalui rancangan perkiraan fitur-fitur sebagai berikut:
 Fitur input data
Berfungsi untuk menginput semua data dasar kedalam perangkat lunak, seperti data dosen, data mata kuliah, data ruangan, data slot waktu, data kelas, data mahasiswa, dll.
 Fitur import data
Berfungsi untuk melakukan import (dari file excel / csv – comma separated values) semua data pada fitur input data.
 Fitur eksport data
Berfungsi untuk melakukan eksport semua data kedalam file dengan format excel / pdf / jpg.  Fitur setting
Semua setting yang mungkin dilakukan pada perangkat lunak akan ditampung pada fitur / halaman ini.
 Fitur analisa bentrokan
Berfungsi menganalisa bentrokan yang masih terjadi, dan menyarankan perubahan data supaya bentrokan dapat diatasi.
 Fitur edit manual
Mengijinkan user untuk mengedit secara manual pada jadwal yang dihasilkan secara otomatis.  Fitur mengelola user
Berfungsi untuk mengelola user dan hak akses user dari aplikasi yang meliputi: administrator, jurusan, dosen, KBK, staff TU, dan mahasiswa.
 Fitur backup & restore data
Berfungsi mem-backup dan me-restore semua data, baik data dasar, maupun informasi hasil pengolahan aplikasi.
2.3 Karakteristik dan Klasifikasi Pengguna
Pengguna pada aplikasi ini adalah administrator, jurusan, dosen, KBK, staff TU, dan mahasiswa. Semua kelompok pengguna memiliki hak aksesnya masing-masing yang dapat dikelola oleh administrator.
2.4 Lingkungan Operasi
Lingkungan dimana perangkat lunak akan dijalankan pada sisi pengguna menggunakan perangkat yang memiliki internet browser.
Pada sisi penyedia:
 server yang dihosting di itmaranatha.org  web server Apache Tomcat
 basis data relasional (mySql / postgreSql) atau basis data berorientasi objek (db4o / ?).
2.5 Batasan Desain dan Implementasi
Rencananya teknologi dan perangkat lunak yang akan digunakan dalam desain dan implementasi penjadwalan kuliah ini adalah:
 Bahasa pemrograman: Java, Swing, html5, css3 & jQuery  Web server Apache Tomcat
 Spring framework  Vaadin framework
 Google Web Toolkit (GWT – digunakan oleh Vaadin)  Basis data MySql / postgreSql / db4o
 Object relational mapping: Hibernate / JPA / MyBatis  IDE: Eclipse / IntelliJ Idea
 Test Driven Development dengan Junit / Selenium  Library Opt4j
 Library jMetal  Library TimeFinder
2.6 Asumsi dan Ketergantungan
Pengembangan perangkat lunak ini akan melibatkan banyak framework dan library, sehingga dibutuhkan kemauan dan kemampuan untuk mempelajari hal-hal baru pada tim developernya. Konsep dasar algoritma genetik akan diberikan oleh dosen pembimbing.
Kecocokan / interoperabilitas antar framework diasumsikan akan dapat ditangani oleh tim developer sehingga aplikasi yang dihasilkan akan dapat berjalan dengan baik. Jika terdapat framework atau library yang tidak cocok, maka akan digantikan dengan framework / library lain yang sesuai.
2.7 Antarmuka Pengguna
Pada tahap awal antarmuka akan dibatasi hanya aplikasi desktop atau console sederhana. Antarmuka pengguna versi final berupa halaman web yang akan di-generate oleh framework Vaadin, dengan memanfaatkan teknologi Google web toolkit, html5, css3 dan jQuery. Antramuka akan memiliki fungsi-fungsi standar seperti: sitemap, login, logout, about, help dan lain-lain. Semua informasi yang ditampilkan harus dapat diupdate oleh administrator tanpa mengubah kode program.
2.8 Antarmuka Perangkat Keras
Tidak ada antarmuka dengan perangkat keras khusus.
2.9 Antarmuka Perangkat Lunak
Tidak ada antarmuka dengan perangkat lunak lain, selain kemampuan import / export data ke format excel, pdf atau jpeg.
2.10 Antarmuka Komunikasi
Kebutuhan perangkat lunak yang berhubungan dengan fungsi komunikasi yang dibutuhkan oleh perangkat lunak yaitu web server dengan Apache Tomcat.
3. Tahapan Proyek
3.1 Detail Rencana Kerja
Penelitian akan dibagi ke dalam dua bagian besar, tahap pertama mempunyai sasaran untuk membuat perangkat lunak berbasis desktop atau console sebagai baseline yang akan dievaluasi, dan hasil evaluasinya akan digunakan sebagai rekomendasi untuk perbaikan-perbaikan pada tahap berikutnya. Tahap kedua mempunyai sasaran untuk melakukan optimalisasi hasil, dan memindahkan aplikasi menjadi berbasis web sehingga diperoleh cakupan pengoperasian yang lebih luas.
Adapun rencana aktivitas di dalam setiap tahapan tersebut adalah: 1. Analisa dan perancangan model penjadwalan kuliah
a. Studi literatur yang berkaitan dengan penjadwalan kuliah, algoritma genetik, pemodelan sistem, dan mempelajari library Opt4j, jMetal, TimeFinder.
b. Survei dan wawancara dengan: ketua program studi, ketua jurusan, dan kepala biro yang bertanggung jawab dalam pengaturan fasilitas ruang kuliah dan laboratorium.
c. Analisa dan penentuan parameter-parameter yang mempengaruhi penjadwalan kuliah. d. Analisa dan penentuan berbagai kendala (constraints).
2. Pembuatan dan pengujian perangkat lunak
a. Pembuatan model perangkat lunak penjadwalan kuliah dengan pendekatan berorientasi objek. Pengembangan mengikuti pola Test Driven Development.
b. Pembuatan perangkat lunak penjadwalan kuliah versi awal yang berbasis desktop / console. Perangkat lunak sengaja dibuat dalam versi desktop yang lebih sederhana terlebih dahulu, supaya para peneliti dapat berkonsentrasi pada pemodelan dan penerapan algoritma genetik.
c. Pengujian perangkat lunak dengan data lapangan oleh calon pengguna. d. Pengumpulan rekomendasi untuk perbaikan-perbaikan pada tahap berikutnya. 3. Upaya untuk mengoptimalkan jadwal kuliah yang dihasilkan.
a. Studi literatur lebih lanjut yang berkaitan dengan modifikasi dan optimalisasi algoritma genetik, dan pencarian metode lain yang dapat dikombinasikan dengan algoritma genetik. b. Menerapkan modifikasi, optimalisasi dan kombinasi algoritma genetik kedalam perangkat
lunak.
c. Melakukan evaluasi terhadap perangkat lunak yang dihasilkan, dan memperbaiki kekurangannya.
4. Memastikan bahwa perangkat lunak cukup fleksibel sehingga dapat dipergunakan di tempat lain.
a. Menguji perangkat lunak dengan data sesungguhnya pada jurusan / fakultas lain di Universitas Kristen Maranatha.
b. Melakukan penyesuaian dan perbaikan-perbaikan yang diperlukan.
5. Mengubah (porting) perangkat lunak menjadi berbasis web. Perangkat lunak diubah menjadi berbasis web supaya cakupan penggunaannya menjadi lebih luas, dan penggunaannya dapat dilakukan secara simultan oleh beberapa pemakai.
a. Mengubah bagian inti perangkat lunak sehingga dapat dijalankan pada web server.
b. Mengubah antarmuka perangkat lunak sehingga dapat diakses melalui web browser dengan memanfaatkan framework vaadin.
3.2 Time Schedule
Rencana pelaksanaan setiap tahapan pekerjaan digambarkan pada Gantt chart berikut:
No Pekerjaan 1 2 3 4 5 6 7 1 Analisa dan perancangan model
penjadwalan kuliah
2 Pembuatan dan pengujian perangkat lunak
3 Mengoptimalkan jadwal kuliah 4 Memastikan bahwa perangkat lunak
cukup fleksibel
5 Mengubah (porting) perangkat lunak menjadi berbasis web
6 Penulisan laporan 7 Pengujian keseluruhan
4. Hasil Proyek
4.1 Indikator Penilaian
Karakteristik kualitas dari perangkat lunak yang penting untuk diperhatikan adalah:
 Pengembangan mengikuti pola Test Driven Development, sehingga pada akhir project setiap kelas / method / fungsi sudah memiliki unit testnya masing-masing yang digabungkan menjadi test suite.
 Teknik pemrograman harus mengikuti best practice dalam pemrograman berorientasi objek, dan sedapat mungkin menerapkan teknik-teknik dalam pola desain perangkat lunak (design patterns). Hal ini berguna untuk menjamin pemeliharaan yang mudah, memaksimalkan reuse, dan memungkinkan pengembangan lebih lanjut.
 Antarmuka pengguna harus didesain sedemikian rupa supaya mudah digunakan oleh pengguna yang tanpa latar belakang IT.
4.2 Standar Penyelesaian Proyek
Mengacu pada tahapan penelitian, maka hal-hal yang merupakan hasil (deliverables) dari proyek adalah:
1. Model algoritma genetik untuk penjadwalan kuliah.
2. Model perangkat lunak penjadwalan kuliah dengan pendekatan berorientasi objek. 3. Perangkat lunak penjadwalan kuliah versi awal yang berbasis desktop.
4. Rekomendasi perbaikan-perbaikan pada model dan perangkat lunak untuk pengembangan tahap berikutnya.
5. Diperoleh perangkat lunak penjadwalan kuliah yang sudah optimal.
6. Perangkat lunak sudah bersifat fleksibel sehingga dapat dipergunakan di tempat lain. 7. Perangkat lunak penjadwalan kuliah sudah berbasis web.
5. Kebutuhan Personil
Setiap calon personil tim harus sudah memiliki keahlian wajib, dan selama project berlangsung bersedia belajar keahlian optional (jika belum dikuasai).
Spesifikasi kebutuhan yang berhubungan dengan personil tim dan keahlian yang dibutuhkan dalam pengembangan perangkat lunak:
Posisi : Programmer desktop & web Jumlah orang : 3
Keahlian (wajib) : OOP Java, Swing
Keahlian (optional) : html5, css3, jQuery, junit, mySql, spring framework, vaadin framework Syarat lain : nilai PIB minimal B (jika sudah mengambil PIB)
nilai Struktur Data dan Matematika Diskrit minimal B (jika belum mengambil PIB)