Spesifikasi Proyek
Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
Disiapkan oleh Tjatur Kandaga G.
Fakultas IT – Universitas Kristen Maranatha
30 April 2014
Spesifikasi Proyek Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
hal ii
Daftar Isi Daftar Isi ....................................................................................................................................... ii 1. Pendahuluan ..........................................................................................................................1 1.1 1.2 1.3
Tujuan Proyek ........................................................................................................................... 1 Ruang Lingkup Proyek............................................................................................................. 1 Tinjauan Singkat Algoritma Genetik ...................................................................................... 2
2. Deskripsi Proyek ...................................................................................................................3 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10
Tentang Perangkat Lunak ....................................................................................................... 3 Fungsi-Fungsi Perangkat Lunak ............................................................................................ 4 Karakteristik dan Klasifikasi Pengguna ................................................................................. 5 Lingkungan Operasi ................................................................................................................. 5 Batasan Desain dan Implementasi ........................................................................................ 5 Asumsi dan Ketergantungan................................................................................................... 5 Antarmuka Pengguna .............................................................................................................. 6 Antarmuka Perangkat Keras ................................................................................................... 6 Antarmuka Perangkat Lunak .................................................................................................. 6 Antarmuka Komunikasi ............................................................................................................ 6
3. Tahapan Proyek .....................................................................................................................6 3.1 3.2
Detail Rencana Kerja ............................................................................................................... 6 Time Schedule .......................................................................................................................... 8
4. Hasil Proyek............................................................................................................................8 4.1 4.2
Indikator Penilaian .................................................................................................................... 8 Standar Penyelesaian Proyek ................................................................................................ 8
5. Kebutuhan Personil ..............................................................................................................9
Spesifikasi Proyek Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
hal 1
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.
Spesifikasi Proyek Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
hal 2
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.
Spesifikasi Proyek Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
hal 3
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 bruteforce, 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
Spesifikasi Proyek Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
hal 4
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.
Spesifikasi Proyek Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
hal 5
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.
Spesifikasi Proyek Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
hal 6
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 perbaikanperbaikan 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). e. Pembentukan model algoritma genetik untuk penjadwalan kuliah.
Spesifikasi Proyek Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
hal 7
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. c. Menguji kembali dan memperbaiki perangkat lunak sehingga bebas dari kesalahan.
Spesifikasi Proyek Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
hal 8
3.2 Time Schedule Rencana pelaksanaan setiap tahapan pekerjaan digambarkan pada Gantt chart berikut: No Pekerjaan 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
1
2
3
4
5
6
7
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.
Spesifikasi Proyek Pengembangan dan Optimasi Algoritma Genetik untuk Penjadwalan Kuliah di Fakultas IT
hal 9
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 Jumlah orang Keahlian (wajib) Keahlian (optional) Syarat lain
: Programmer desktop & web :3 : OOP Java, Swing : html5, css3, jQuery, junit, mySql, spring framework, vaadin framework : nilai PIB minimal B (jika sudah mengambil PIB) nilai Struktur Data dan Matematika Diskrit minimal B (jika belum mengambil PIB)