• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS DAN PERANCANGAN. tanggal 21 Oktober MCC kemudian berkembang menjadi Computer

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISIS DAN PERANCANGAN. tanggal 21 Oktober MCC kemudian berkembang menjadi Computer"

Copied!
75
0
0

Teks penuh

(1)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Latar Belakang Organisasi 3.1.1 Universitas Bina Nusantara

Mulanya, Universitas Bina Nusantara merupakan suatu lembaga pelatihan komputer dengan nama Modern Computer Course (MCC), yang didirikan pada tanggal 21 Oktober 1974. MCC kemudian berkembang menjadi Computer System Academy (ATK) pada tanggal 1 Juli 1981. ATK membuka jurusan Manajemen Informasi dan Teknologi Informasi. Tiga tahun kemudian, tepatnya pada tanggal 13 Juli 1984, ATK mendapatkan status “Terdaftar” dan namanya berubah menjadi AMIK Jakarta. Pada 1 Juli 1985, AMIK membuka jurusan Komputerisasi Akuntansi dan mulai menggunakan nama Bina Nusantara pada 21 September 1985. Dalam usianya yang relatif muda, AMIK dinobatkan sebagai ”Akademi Komputer Terbaik” pada tanggal 17 Maret 1986.

Pada tanggal 9 November 1987, AMIK Bina Nusantara bergabung dengan STMIK Bina Nusantara menjadi sebuah institusi tunggal yang menawarkan program S-1 dan D-3. STMIK Bina Nusantara menerima status ”Terakreditasi” untuk semua programnya pada tanggal 18 Maret 1992. STMIK Bina Nusantara membuka program S-2 di bidang Manajemen Sistem Informasi pada tanggal 10 Mei 1993.

Universitas Bina Nusantara didirikan pada tanggal 8 Agustus 1996 dan kemudian dilegalkan oleh Pemerintah. STMIK Bina Nusantara bergabung menjadi Universitas Bina Nusantara pada tanggal 20 Desember 1998.

(2)

Universitas Bina Nusantara telah memiliki 5 fakultas, yaitu : Ilmu Komputer, Ekonomi, Teknik, Sastra, dan Matematika dan Statistik. Misinya untuk menghasilkan lulusan yang berkualifikasi dan cakap membawa Universitas Bina Nusantara mendapatkan sertifikat ISO 9001 pada tahun 1997.

Universitas Bina Nusantara (UBiNus) menyadari pentingnya visi dan misi dalam menentukan strategi ke depan. Visi dan misi UBiNus didukung oleh kebijakan peningkatan kualitas secara kontinu.

Berikut ini adalah visi, misi, dan kebijakan mutu UBiNus : 1. Visi

Unggul sebagai lembaga pendidikan berbasis teknologi informasi yang diterima sebagai panutan, siap berkompetisi dan beradaptasi terhadap perubahan global.

2. Misi

a. Mengimplementasikan program pendidikan yang mendukung pengembangan dan aplikasi teknologi informasi, penguasaan bahasa asing, komunikasi, kepemimpinan, inovasi, dan kemampuan berbisnis, serta pengembangan karakter yang baik.

b. Menyediakan infrastruktur dan lingkungan yang kondusif bagi implementasi pembelajaran yang efektif dan efisien guna menghasilkan lulusan yang cakap, kreatif, dan inovatif.

c. Memelihara hubungan dan relevansi antara kegiatan akademis dan permintaan pengembangan sosial, ekonomi, dan industri.

(3)

d. Bekerja sama dengan institusi lain, baik lokal maupun internasional, untuk memastikan bahwa pengetahuan dan kemampuan adalah yang terkini dan sesuai dengan kebutuhan.

e. Membangun komunitas yang memberi perhatian pada kualitas, budaya, nilai, dan etika kerja dalam organisasi.

3. Kebijakan Mutu

Sebagai perguruan tinggi bermutu, universitas Bina Nusantara bertekad untuk menghasilkan lulusan yang berkualifikasi tinggi, berkarakter baik dan siap terap.

3.1.2 UPT. Perangkat Lunak

UPT. Perangkat Lunak merupakan unit kerja pada Universitas Bina Nusantara yang bertanggung jawab dalam pelaksanaan kegiatan praktikum. UPT. Perangkat Lunak mengalami perkembangan dalam hal sarana maupun jenis mata kuliah praktikum, seiring dengan berkembangnya UBiNus, guna medukung kegiatan operasional Universitas.

Asisten, yang dahulu hanya menggunakan papan tulis sebagai sarana mengajar, sekarang dapat menggunakan infokus, meskipun infokus belum terdapat di semua ruangan laboratorium. Selain itu, komputer-komputer yang dahulu belum menggunakan prosesor pentium, kini telah menggunakan pentium IV. Jumlah ruangan laboratorium juga mengalami peningkatan, dikarenakan jumlah mahasiswa Universitas Bina Nusantara yang terus meningkat. Saat ini, UPT. Perangkat Lunak mempunyai 11 ruangan di kampus Anggrek serta 16 ruangan di kampus Syahdan.

(4)

Perkembangan yang terjadi di UPT. Perangkat Lunak tidak hanya pada sarana penunjang operasional saja, tetapi juga pada jumlah asisten dan staf . Selain itu, jenis mata kuliah praktikum yang dahulu hanya bervariasi pada pemograman DOS, kini telah mencakup pemrograman visual. Hal ini juga berarti software yang digunakan terus berkembang, sesuai dengan kebutuhan praktikum dan mengikuti perkembangan teknologi modern.

3.2 Struktur Organisasi UPTPL

Berikut ini adalah struktur organisasi UPTPL Universitas Bina Nusantara :

Gambar 3.1 Struktur Organisasi UPTPL

Adapun wewenang dan tanggung jawab personil UPTPL adalah sebagai berikut :

1. Kepala UPTPL

Kepala UPT. Perangkat Lunak mempunyai wewenang dan tanggung jawab sebagai berikut :

a. Membuat aturan yang berhubungan dengan asisten, meliputi persyaratan menjadi asisten, tata cara pemilihan dan penilaian asisten,

(5)

jenjang karier di lingkungan asisten beserta prosedur kerja asisten, pendidikan asisten dan tata tertib asisten.

b. Menyiapkan peralatan yang diperlukan untuk menunjang praktikum beserta semua bahan yang berkaitan dengan materi praktikum.

c. Mengatur pemakaian fasilitas laboratorium bagi mahasiswa di luar jadwal praktikum.

d. Melaksanakan kegiatan penelitian sesuai dengan program Universitas. e. Bertanggung jawab atas pemeliharaan dan keamanan seluruh fasilitas

laboratorium.

f. Membuat laporan per semester tentang pelaksanaan kegiatan praktikum.

g. Mengirim nilai evaluasi praktikum mahasiswa tepat waktu.

h. Membantu penyusunan laporan bulanan tentang kegiatan UPT yang akan diserahkan kepada Wakil Rektor II

i. Membantu melaksanakan tugas lain yang terkait dengan kebutuhan program Universitas.

j. Menyusun anggaran kegiatan dalam UPT yang dipimpinnya. 2. Kepala Wilayah

Kepala Wilayah, baik di anggrek maupun di syahdan, memiliki wewenang dan tanggung jawab sebagai berikut :

a. Bertanggung jawab atas pelaksanaan kegiatan praktikum di wilayahnya. b. Mengawasi pelaksanaan tata tertib asisten yang berlaku di wilayahnya.

(6)

c. Membantu Kepala UPT. Perangkat Lunak merencanakan pengembangan UPT. Perangkat Lunak sesuai dengan tujuan Universitas Bina Nusantara.

d. Bertanggung jawab dalam merencanakan dan mengkoordinasi rencana kerja guna mencapai sasaran yang ditetapkan.

e. Bertanggung jawab dan mengkoordinasi pelaksanaan evaluasi jasa asisten di wilayahnya.

f. Bertanggung jawab atas peminjaman fasilitas UPT. Perangkat Lunak oleh pihak-pihak eksternal.

g. Membuat laporan periodik kepada Kepala UPT. Perangkat Lunak. h. Membuat laporan evaluasi kepada Kepala UPT. Perangkat Lunak setiap

akhir semester.

i. Bertanggung jawab untuk menyelesaikan tugas yang dibebankan oleh atasan untuk kepentingan UPT. Perangkat Lunak khususnya dan Universitas Bina Nusantara umumnya.

3. Kepala Sarana Penunjang Operasi (SPO)

Kepala SPO memiliki wewenang dan tanggung jawab sebagai berikut : a. Bertanggung jawab atas pelaksanaan kegiatan setiap bagian penunjang

operasional praktikum.

b. Membuat laporan secara periodik kepada Kepala UPT. Perangkat Lunak.

(7)

d. Bertanggung jawab untuk menyelesaikan tugas yang dibebankan oleh atasan untuk kepentingan UPT. Perangkat Lunak khususnya dan Universitas Bina Nusantara umumnya.

4. Staf Research Development and Training (RDT)

Staf RDT memiliki wewenang dan tanggung jawab sebagai berikut :

a. Bertanggung jawab terhadap penelitian yang dilakukan untuk meningkatkan efisiensi UPT. Perangkat Lunak.

b. Bertanggung jawab terhadap penelitian dan pengembangan kegiatan praktikum, asisten, UPT. Perangkat Lunak dan Universitas Bina Nusantara.

c. Mengkoordinasi pembuatan materi tes penerimaan asisten baru.

d. Membantu penerapan teknologi informasi dalam perencanaan dan pengembangan UPT. Perangkat Lunak.

e. Menggali minat mahasiswa Universitas Bina Nusantara dalam bidang pemrograman.

f. Menginformasikan pengembangan yang dilakukan oleh UPT. Perangkat Lunak dan perkembangan teknologi informasi kepada asisten dan mahasiswa dalam bentuk seminar, workshop, dan sebagainya. g. Bertanggung jawab atas pelaksanaan kegiatan penelitian.

h. Menangani dan mengatur pelaksanan kegiatan pelatihan.

i. Membuat laporan periodik kepada Kepala RDT UPT. Perangkat Lunak. j. Bertanggung jawab untuk menyelesaikan tugas yang dibebankan oleh

atasan untuk kepentingan UPT. Perangkat Lunak khususnya dan Universitas Bina Nusantara umumnya.

(8)

5. Staf Penunjang Sarana Praktikum (PSP)

Staf PSP memiliki wewenang dan tanggung jawab sebagai berikut :

a. Bertanggung jawab atas jaringan komputer yang ada di UPT. Perangkat Lunak.

b. Bertanggung jawab atas ketersediaan, pengembangan, pemeliharaan dan perbaikan perangkat keras, piranti lunak dan fasilitas pendukung UPT. Perangkat Lunak dalam menunjang pelaksanaan kegiatan praktikum.

c. Melakukan pencatatan suhu harian ruang server. d. Melakukan audit berkala terhadap keamanan jaringan.

e. Membuat laporan periodik kepada Kepala Sekretariat Penunjang Operasi.

f. Menyediakan hak akses bagi asisten dan praktikan dalam jaringan UPT. Perangkat Lunak dalam menunjang pelaksanaan kegiatan praktikum. g. Menyediakan hak akses bagi bagian lain UPT. Perangkat Lunak dalam

menunjang pelaksanaan kegiatan operasional.

h. Melakukan penginstalan server sesuai dengan kebutuhan.

i. Melakukan analisis kelayakan hardware dan melakukan pertimbangan atas keperluan upgrade, baik hardware maupun teknologi pendukungnya.

j. Menyusun anggaran untuk pembelian atau permintaan alat-alat, hardware dan prasarana lainnya yang dibutuhkan oleh UPT. Perangkat Lunak dalam menunjang kegiatan praktikum dan operasional.

(9)

k. Bertanggung jawab untuk menyelesaikan tugas yang dibebankan oleh atasan untuk kepentingan UPT. Perangkat Lunak khususnya dan Universitas Bina Nusantara umumnya.

6. Staf Data

Staf Data memiliki wewenang dan tanggung jawab sebagai berikut :

a. Bertanggung jawab atas penyediaan data yang berhubungan dengan kegiatan praktikum UPT. Perangkat Lunak bagi bagian lain yang berkepentingan.

b. Bertanggung jawab atas pengalokasian ruang dan mahasiswa dalam menunjang kegiatan praktikum.

c. Bertanggung jawab atas pengalokasian ruang, pengawas dan mahasiswa dalam menunjang kegiatan ujian.

d. Bertanggung jawab atas pengalokasian ruang dan asisten dalam menunjang kegiatan lainnya seperti pekan pra kuliah.

e. Bertanggung jawab atas penyediaan daftar kehadiran mahasiswa dalam kegiatan praktikum dan ujian.

f. Bertanggung jawab atas pengolahan data kehadiran mahasiswa dalam kegiatan praktikum dan ujian.

g. Membuat rekap mahasiswa yang tidak berhak mengikuti ujian.

h. Bertanggung jawab atas program pengentrian nilai ujian mahasiswa bagi korektor.

i. Bertanggung jawab atas pengolahan nilai ujian mahasiswa.

j. Bertanggung jawab atas pendistribusian daftar dan data nilai ujian mahasiswa ke Sub Biro Layanan dan Sub Biro Data.

(10)

k. Bertanggung jawab atas perubahan nilai ujian sesuai dengan hasil protes mahasiswa yang diterima.

l. Membuat rekap nilai praktikum.

m. Membuat rekap pengawas ujian dan P2K.

n. Membuat laporan periodik kepada Kepala Sekretariat Penunjang Operasi.

o. Meminta data praktikum pada bagian terkait yaitu UPT. Pusat Komputer dan Biro Registrasi.

p. Melakukan perubahan data praktikum sesuai dengan kebenaran data. q. Sebagai administrator server data praktikum dalam menunjang

kegiatan operasional.

r. Melakukan prediksi transaksi praktikum untuk semester yang akan datang.

s. Bertanggung jawab untuk menyelesaikan tugas yang dibebankan oleh atasan untuk kepentingan UPT. Perangkat Lunak khususnya dan Universitas Bina Nusantara umumnya.

7. Kepala Asisten (Leader)

Kepala Asisten memiliki wewenang dan tanggung jawab sebagai berikut : a. Bertanggungjawab atas pelaksanaan kegiatan praktikum harian. b. Bertanggungjawab atas pelaksanaan tata tertib asisten.

c. Mengkoordinasi dan mengawasi pendataan kehadiran asisten.

d. Mengkoordinasi pengadaan materi praktikum dan materi ujian praktikum sesuai Satuan Acara Perkuliahan (SAP) praktium.

(11)

f. Bertanggungjawab atas perencanaan dan pelaksanaan proses penerimaan asisten baru dan tes peningkatan asisten

g. Bertanggung jawab atas kegiatan kuliah asisten (KRS, KMK, LHSS, dan lain-lain).

h. Bertanggungjawab atas pembinaan asisten.

i. Membuat laporan periodik kepada Kepala Wilayah.

j. Bertanggungjawab untuk menyelesaikan tugas yang dibebankan oleh atasan untuk kepentingan UPT. Perangkat Lunak khususnya dan Universitas Bina Nusantara umumnya.

8. Asisten Inti

Asisten Inti memiliki wewenang dan tanggung jawab sebagai berikut : a. Memeriksa kesesuaian materi antara soal dengan SAP dalam proses

pembuatan soal praktikum dan proyek.

b. Memeriksa kesesuaian materi antar variasi soal dalam proses pembuatan soal praktikum, proyek dan ujian.

c. Membuka konseling dengan asisten yang berhubungan dengan proses pembuatan soal praktikum, proyek dan ujian.

d. Membuka konseling dengan asisten yang berhubungan dengan proses penilaian proyek dan ujian.

e. Meminta asisten yang ditugaskan dalam pembuatan soal untuk memperbaiki dan menyelesaikan soal praktikum, proyek dan ujian. f. Memeriksa penggunaan bahasa yang benar dalam proses pembuatan

(12)

g. Memeriksa data-data yang dipergunakan dalam soal praktikum, proyek dan ujian.

h. Menentukan bobot dan kriteria soal ujian bersama koordinator mata kuliah beserta pembuat soal.

i. Memeriksa kesesuaian penilaian dengan bobot dan kriteria nilai dalam pemberian nilai ujian.

j. Memeriksa kesesuaian penilaian dengan kelas yang lain dalam pemberian nilai ujian.

k. Melakukan asistensi praktikum maksimal 1/3 dari jatah jaga asisten. 9. Asisten

Asisten memiliki wewenang dan tanggung jawab sebagai berikut :

a. Bertanggung jawab atas pelaksanaan kegiatan praktikum sesuai dengan jadwal yang telah ditentukan.

b. Bertanggung jawab atas pendataan kehadiran praktikum di ruang praktikum.

c. Bertanggung jawab untuk melaksanakan tata tertib di Laboratorium Perangkat Lunak.

d. Bertanggung Jawab terhadap pemeliharaan ruang praktikum termasuk kunci ruang beserta isinya.

e. Membuat soal praktikum dan atau ujian praktikum beserta dengan data dan jawaban.

f. Bertanggung jawab untuk menyelesaikan tugas yang dibebankan oleh atasan untuk kepentingan UPT. Perangkat Lunak khususnya Universitas Bina Nusantara umumnya.

(13)

3.3 Analisis Hasil Wawancara

Selama ini, penyusunan jadwal mengajar asisten dilakukan secara manual. Kepala Asisten menggunakan data yang diperoleh dari Staf Data sebagai bahan pertimbangan dalam menyusun jadwal. Kepala Asisten harus mempertimbangkan prioritas/minat ajar yang diisi oleh asisten, syarat nilai yang harus dipenuhi asisten untuk dapat mengajar suatu mata kuliah, asisten yang telah lulus training mata kuliah tertentu, shift kerja asisten, dan jadwal kuliah asisten.

Proses penyusunan jadwal secara manual tentunya membutuhkan waktu dan tenaga yang tidak sedikit. Untuk membuat jadwal, kepala asisten menghabiskan waktu satu minggu, dimana setiap harinya berkisar 5-6 jam.

Kepala Asisten mengharapkan adanya suatu aplikasi yang mampu mengotomatisasi penyusunan jadwal mengajar asisten sehingga jadwal yang memiliki nilai guna dapat dihasilkan dalam waktu yang relatif singkat.

3.4 Permasalahan yang Dihadapi

Berdasarkan hasil wawancara, ada beberapa hal yang menjadi masalah dalam proses penyusunan jadwal asistensi seperti diuraikan pada penjelasan di bawah ini.

Waktu penyusunan jadwal yang diberikan kepada Kepala Asisten sangat terbatas karena data yang dibutuhkan untuk menyusun jadwal diterima dari Staf Data sebulan sebelum kegiatan praktikum dimulai, sedangkan jadwal asistensi harus diselesaikan paling lambat seminggu sebelum kegiatan praktikum dimulai.

(14)

Selain itu, semenjak data diberikan oleh Staf Data kepada Kepala Asisten, data seringkali mengalami perubahan, misalnya akibat perubahan jumlah transaksi praktikum. Apabila Kepala Asisten telah selesai membuat jadwal dan ternyata data mengalami perubahan, maka Kepala Asisten harus menyusun kembali jadwal tersebut agar dapat digunakan.

Dalam penyusunan jadwal asistensi, Kepala Asisten harus mempertimbangkan beberapa hal, diantaranya : pemerataan bobot mengajar asisten, variasi mata kuliah yang diajar, kualifikasi asisten, dan jadwal kuliah asisten. Untuk sekian banyak transaksi praktikum, Kepala Asisten harus mengalokasikan asisten yang tepat pada hari, shift, dan ruang tertentu.

Berdasarkan hasil wawancara, ternyata masalah-masalah tersebut belum dapat diatasi. Penyusunan jadwal asistensi akan semakin terasa melelahkan seiring dengan meningkatnya jumlah transaksi praktikum akibat meningkatnya jumlah mahasiswa/i Universitas Bina Nusantara.

3.5 Usulan Pemecahan Masalah

Untuk mengatasi permasalahan tersebut, dirancang suatu aplikasi yang mampu mengotomatisasi penjadwalan asisten dengan pendekatan algoritma genetik. Pemilihan algoritma genetik didasarkan pada beberapa pertimbangan berikut :

a. Algoritma genetik bersifat paralel. Kebanyakan algoritma lain bersifat serial dan hanya dapat menelusuri ruang solusi dari suatu masalah dalam satu arah pada suatu waktu, dan jika solusi yang ditemukan ternyata tidak optimal, maka semua pekerjaan yang telah diselesaikan sebelumnya akan ditinggalkan

(15)

dan pencarian akan dimulai lagi. Karena GA memiliki banyak offspring, GA dapat menelusuri ruang solusi dalam berbagai arah sekaligus. Jika satu jalur ternyata tidak memberi hasil, GA dapat meneruskan pencarian untuk menemukan solusi optimal.

b. Karena GA dapat mengevaluasi beberapa jadwal secara bersamaan, GA sesuai untuk menyelesaikan permasalahan dimana ruang solusi potensial sangat besar. Masalah-masalah dalam kategori ini dikenal dengan istilah nonlinear. Pada masalah linear, fitness dari setiap komponen berdiri sendiri, sehingga peningkatan pada satu bagian akan menghasilkan peningkatan sistem secara keseluruhan. Namun, kebanyakan masalah dalam dunia nyata bersifat nonlinear, dimana perubahan satu komponen akan berdampak pada sistem keseluruhan, dan perubahan-perubahan yang secara individu bersifat mengganggu akan meningkatkan fitness ketika dikombinasikan. Untungnya, sifat paralelisme GA memungkinkannya untuk mengatasi jumlah kemungkinan yang sangat besar, dan mampu menemukan solusi yang optimal dalam periode waktu yang relatif singkat.

c. Algoritma genetik bekerja dengan baik dalam masalah yang fitness-nya kompleks. Meskipun GA tidak selalu memberikan solusi yang sempurna dari suatu permasalahan, GA selalu memberikan solusi yang sangat baik. GA mampu menemukan solusi yang baik dalam waktu dan computational effort yang dapat diterima.

d. Algoritma genetik mampu memanipulasi beberapa parameter secara bersamaan. Kebanyakan permasalahan dalam dunia nyata memungkinkan peningkatan terhadap satu masalah hanya dapat dilakukan dengan

(16)

mengorbankan masalah yang lain. GA memungkinkan satu kandidat solusi mengoptimalkan satu parameter dan kandidat solusi yang lain mengoptimalkan parameter yang lain.

e. Salah satu hal yang menjadi keunggulan algoritma genetik adalah GA tidak mengetahui apapun tentang permasalahan yang hendak diselesaikannya. Daripada menggunakan informasi yang diketahui sebelumnya untuk memandu setiap langkah dan membuat perubahan dengan mata tertuju pada peningkatan, GA membuat perubahan secara acak terhadap kandidat solusi dan menggunakan fitness function untuk menentukan apakah perubahan tersebut menghasilkan peningkatan.

Dengan otomatisasi penjadwalan asisten ini, diharapkan dapat memberi kemudahan bagi Kepala Asisten UPT. Perangkat Lunak dalam menyusun jadwal asistensi. Dengan demikian, jadwal asistensi dapat dibuat dalam waktu yang relatif singkat dan dengan kemungkinan human error yang lebih rendah.

3.6 Elemen-elemen yang Digunakan dalam Penjadwalan Asistensi

Beberapa elemen yang digunakan dalam pembuatan jadwal asistensi adalah sebagai berikut :

1. Pengajar praktikum

Pengajar praktikum terdiri dari Asisten dan Asisten Inti. 2. Mata kuliah

Berdasarkan waktu pelaksanaan transaksi praktikum, mata kuliah praktikum dibagi menjadi lima kelompok, yaitu :

(17)

a. minggu ganjil b. minggu genap c. before mid d. after mid e. full semester 3. Bobot

Setiap mata kuliah praktikum diberi bobot yang nantinya akan mempengaruhi jumlah transaksi praktikum yang diajar oleh Asisten dan Asisten Inti. Pemberian bobot mata kuliah praktikum didasarkan pada waktu pelaksanaan transaksi praktikum, yaitu :

a. minggu ganjil = 0.75 b. minggu genap = 0.75 c. before mid = 0.75 d. after mid = 0.75 e. full semester = 1

Bobot mengajar Asisten dan Asisten Inti ditentukan melalui kalkulasi sebagai berikut :

+

= _ /( ( _ /4))

_Asisten Bobot Keseluruhan Asisten Asisten Inti

Bobot

Bobot_Asisten_Inti = Bobot_Asisten / 4 4. Constraint

Dalam pembuatan jadwal asistensi, terdapat sejumlah constraint yang harus dipenuhi. Constraint dibedakan menjadi hard constraint dan soft constraint.

(18)

Penjelasan lebih lanjut mengenai constraint dalam penjadwalan asistensi akan dibahasi pada subbab 3.10.3.

5. Ruang

Ruang yang digunakan untuk transaksi praktikum adalah ruang 602 – 610 pada kampus Anggrek Universitas Bina Nusantara.

6. Shift

Transaksi praktikum dilaksanakan pada hari Senin – Sabtu, dimana setiap harinya, waktu pembelajaran dibagi menjadi 7 shift, yaitu :

Shift 1 : 07.20 – 09.00 Shift 2 : 09.20 – 11.00 Shift 3 : 11.20 – 13.00 Shift 4 : 13.20 – 15.00 Shift 5 : 15.20 – 17.00 Shift 6 : 17.20 – 19.00 Shift 7 : 19.20 – 21.00

Asisten dan Asisten Inti mengajar transaksi praktikum pada shift kerjanya. Hari Senin – Kamis, Asisten shift pagi mengajar pada shift 1 – 4 dan Asisten shift malam mengajar pada shift 3 - 6. Hari Jumat, Asisten shift pagi mengajar pada shift 1 – 4 dan Asisten shift malam mengajar pada shift 4 – 7. Hari Sabtu, Asisten shift pagi mengajar pada shift 1 – 3 dan Asisten shift malam mengajar pada shift 3 – 5.

(19)

3.7 Perancangan Perangkat Lunak 3.7.1 Class Diagram

Class diagram dari aplikasi yang dibuat ditunjukkan pada Gambar 3.2.

+bekerja() -NIP -Nama -Jabatan -Gaji Karyawan +membuatJadwal() -Inisial -Angkatan -Wilayah Leader +mengajar() -Inisial -Angkatan -Wilayah Asisten +disesuaikanDenganJdwlKul() -KdHari -Shift -Ruang -Inisial -KdMtk JadwalMengajar 1 1..* 1..2 1..* +getPrioritas() -Initial -KdMtk -JenisVariasi Prioritas 1 0..* +isSameVariation() -Kdmtk -NmMtk -JenisVariasi VariasiMataKuliah 1 1..* +isAstQualified() -Inisial -JenisVariasi LulusTraining +isAstQualified() -Inisial -JenisVariasi -Grade SyaratNilai 1..* 0..1 1..* 0..1 +diView() -KdHari -Shift -Ruang -Inisial -KdMtk -Kelas JadwalKuliah 1 0..1 +dilaksanakan() -KdHari -Shift -Ruang -KdMtk -Kelas -JumlahMhs -Wilayah TransaksiPraktikum 1 1

Gambar 3.2 Class Diagram

3.7.2 Use Case

(20)

Sistem Penjadwalan

Generate Jadwal Basic leader Generate Jadwal Advance View Prioritas Asisten View Kualifikasi Asisten

View Jadwal Kuliah dan Jadwal Mengajar Per

Asisten

View Jadwal Mengajar Seluruh Asisten Generate Population

Gambar 3.3 Use Case

3.7.3 Sequence Diagram

3.7.3.1 Sequence Diagram Generate Population

Skenario untuk Generate Population ditunjukkan pada Tabel 3.1. Tabel 3.1 Skenario Generate Population

Use Case Name Generate Population Actor Leader

Description Use case ini menggambarkan proses yang terjadi ketika leader generate jadwal-jadwal pada populasi awal. Untuk men-generate populasi, leader meng-input jumlah jadwal, kemudian menekan button Generate. Sistem akan men-generate

(21)

jadwal-jadwal pada populasi awal dan menulis setiap jadwal-jadwal ke file. Preconditions ▪ Leader sudah membuka form utama dari aplikasi.

▪ Leader sudah klik menu GeneratePopulation. Postconditions ▪ Leader dapat melihat perkiraan waktu proses.

Normal Flow Actor Action System Response

Step 1 : Leader meng-input jumlah jadwal pada populasi awal.

Step 2 : Sistem akan men-generate jadwal-jadwal pada populasi awal sebanyak input-an user dinput-an menulisnya ke file serta menunjukkan perkiraan waktu proses. Kemudian, sistem menampilkan pesan kepada Leader bahwa proses telah selesai.

Lihat Gambar Rancangan Form GeneratePopulation (Gambar 3.18)

Adapun sequence diagram untuk GeneratePopulation ditunjukkan pada Gambar 3.4. frmGenerate GA File click_button_Generate() generatePopulation() createJadwal() saveData() confirm() Object1 : leader

(22)

3.7.3.2 Sequence Diagram Generate Jadwal Basic

Skenario untuk Generate Jadwal Basic ditunjukkan pada Tabel 3.2. Tabel 3.2 Skenario Generate Jadwal Basic

Use Case Name Generate Jadwal Basic Actor Leader

Description Use case ini menggambarkan proses yang terjadi ketika leader men-generate jadwal asistensi. Untuk men-generate jadwal, leader tidak perlu memahami parameter-parameter algoritma genetik. Leader cukup menekan button Generate, maka sistem akan menampilkan nilai fitness dari setiap alternatif jadwal dan akan menyimpan data jadwal solusi pada database.

Preconditions ▪ Leader sudah membuka form utama dari aplikasi. ▪ Leader sudah klik menu GenerateBasicTimetable.

Postconditions ▪ Leader dapat melihat nilai fitness dari setiap alternatif jadwal selama proses otomatisasi penyusunan jadwal.

▪ Leader dapat melihat perkiraan waktu proses.

Normal Flow Actor Action System Response

Step 1 : Leader klik button Generate.

Step 2 : Sistem akan menampilkan nilai fitness dari jadwal terbaik pada setiap iterasi dan menunjukkan perkiraan waktu proses. Setelah proses selesai, sistem akan menyimpan data jadwal solusi pada database.

Lihat Gambar Rancangan Form GenerateBasicTimetable (Gambar 3.16)

Adapun Sequence Diagram untuk Generate Jadwal Basic ditunjukkan pada Gambar 3.5.

(23)

Object1 : leader frmBasic GA Database click_button_Generate() generatePopulation() createBuffer() calculateFitness sortPopulation() mate() swap() saveData() showJadwal()

Gambar 3.5 Sequence Diagram Generate Jadwal Basic

3.7.3.3 Sequence Diagram Generate Jadwal Advance

Skenario untuk Generate Jadwal Advance ditunjukkan pada Tabel 3.3. Tabel 3.3 Skenario Generate Jadwal Advance

Use Case Name Generate Jadwal Advance Actor Leader

Description Use case ini menggambarkan proses yang terjadi ketika leader men-generate jadwal asistensi. Untuk men-generate jadwal, leader perlu memahami parameter-parameter algoritma genetik. Leader menginput population size, crossover method, selection rate, dan mutation rate. Kemudian klik button Generate. Sistem akan menampilkan nilai fitness dari setiap alternatif jadwal.

Preconditions ▪ Leader sudah membuka form utama dari aplikasi. ▪ Leader sudah klik menu GenerateAdvancedTimetable.

(24)

Postconditions ▪ Leader dapat melihat nilai fitness dari setiap alternatif jadwal selama proses otomatisasi penyusunan jadwal.

▪ Leader dapat melihat perkiraan waktu proses.

Normal Flow Actor Action System Response

Step 1 : Leader menginput population size, crossover method, selection rate, dan mutation rate.

Step 3 : Jika tidak ada pesan kesalahan inputan, leader dapat menekan button Generate.

Step 2 : Sistem akan melakukan validasi pada input leader. Jika input tidak valid, maka sistem akan memberikan pesan kepada leader untuk menginput kembali.

Step 4 : Sistem akan men-generate jadwal berdasarkan parameter-parameter algoritma genetik yang diinput leader dan menampilkan nilai fitness dari setiap alternatif jadwal. Alternate Flow Alt-Step 1 : Jika leader belum memahami parameter-parameter

algoritma genetik, leader dapat klik menu Help pada form utama sebelum memasukkan inputan.

Alt-Step 3 : Jika terdapat pesan kesalahan inputan, maka leader dapat memperbaiki input yang masih tidak valid.

Lihat Gambar Rancangan Form GenerateAdvancedTimetable (Gambar 3.17)

Adapun Sequence Diagram untuk Generate Jadwal Advance ditunjukkan pada Gambar 3.6.

(25)

Gambar 3.6 Sequence Diagram Generate Jadwal Advance

3.7.3.4 Sequence Diagram View Prioritas Asisten

Skenario untuk View Prioritas Asisten ditunjukkan pada Tabel 3.4. Tabel 3.4 Skenario View Prioritas Asisten

Use Case Name View Prioritas Asisten Actor Leader

Description Use case ini menggambarkan proses yang terjadi ketika leader hendak melihat prioritas/minat ajar asisten. Leader memilih inisial dari asisten yang hendak dilihat prioritas ajarnya. Sistem akan menampilkan prioritas ajar asisten tersebut.

(26)

Preconditions ▪ Leader sudah membuka form utama dari aplikasi. ▪ Leader sudah klik menu ViewTeachingPriorities. Postconditions ▪ Leader dapat melihat prioritas/minat ajar tiap asisten.

Normal Flow Actor Action System Response

Step 1 : Leader memilih inisial dari asisten yang hendak dilihat prioritas ajarnya.

Step 3 : Leader dapat melihat prioritas ajar asisten tersebut.

Step 2 : Sistem akan mengambil data prioritas ajar asisten tersebut dari database dan menampilkannya pada datagridview.

Alternate Flow Alt-Step 3 : Leader dapat memilih inisial dari asisten lain untuk melihat prioritas/minat ajarnya.

Lihat Gambar Rancangan Form ViewTeachingPriorities (Gambar 3.14)

Adapun Sequence Diagram untuk View Prioritas Asisten ditunjukkan pada Gambar 3.7.

Object1 : leader frmPriorities Prioritas

choose_Inisial()

getPrioritas(inisial)

showPrioritas()

selectPrioritas()

Gambar 3.7 Sequence Diagram View Prioritas Asisten

3.7.3.5 Sequence Diagram View Kualifikasi Asisten

(27)

Tabel 3.5 Skenario View Kualifikasi Asisten Use Case Name View Kualifikasi Asisten Actor Leader

Description Use case ini menggambarkan proses yang terjadi ketika leader hendak melihat kualifikasi asisten, yaitu mata kuliah apa saja yang dapat diajar oleh tiap asisten. Leader memilih inisial dari asisten yang hendak dilihat kualifikasinya. Sistem akan menampilkan kualifikasi asisten tersebut.

Preconditions ▪ Leader sudah membuka form utama dari aplikasi. ▪ Leader sudah klik menu ViewAstQualification.

Postconditions ▪ Leader dapat melihat mata kuliah yang dapat diajar oleh tiap asisten.

Normal Flow Actor Action System Response

Step 1 : Leader memilih inisial dari asisten yang hendak dilihat kualifikasinya.

Step 3 : Leader dapat melihat mata kuliah yang dapat diajar oleh asisten tersebut.

Step 2 : Sistem akan mengambil data kualifikasi asisten tersebut dari database dan menampilkannya pada datagridview.

Alternate Flow Alt-Step 3 : Leader dapat memilih inisial dari asisten lain untuk melihat kualifikasinya.

Lihat Gambar Rancangan Form ViewAstQualification (Gambar 3.13)

Adapun Sequence Diagram untuk View Kualifikasi Asisten ditunjukkan pada Gambar 3.8.

(28)

Gambar 3.8 Sequence Diagram View Kualifikasi Asisten

3.7.3.6 Sequence Diagram View Jadwal Kuliah dan Jadwal Mengajar Per Asisten Skenario untuk View Jadwal Kuliah dan Jadwal Mengajar Per Asisten ditunjukkan pada Tabel 3.6.

Tabel 3.6 Skenario View Jadwal Kuliah dan Jadwal Mengajar Per Asisten Use Case Name View Jadwal Kuliah dan Jadwal Mengajar Per Asisten Actor Leader

Description Use case ini menggambarkan proses yang terjadi ketika leader hendak melihat jadwal mengajar dan jadwal kuliah asisten. Leader memilih inisial dari asisten yang hendak dilihat jadwal mengajar dan kuliahnya, kemudian klik button Generate jika button tersebut diaktifkan. Sistem akan menampilkan jadwal mengajar dan kuliah asisten tersebut.

Preconditions ▪ Leader sudah membuka form utama dari aplikasi. ▪ Leader sudah klik menu

ViewTeachingAndStudyingTimetablePerAst.

(29)

Normal Flow Actor Action System Response Step 1 : Leader memilih inisial

dari asisten yang hendak dilihat jadwal mengajar dan kuliahnya.

Step 2 : Leader dapat klik button Generate jika button tersebut diaktifkan.

Step 4 : Leader dapat melihat jadwal mengajar dan jadwal kuliah asisten tersebut.

Step 3 : Sistem akan menampilkan jadwal mengajar dan jadwal kuliah dari asisten tersebut pada datagridview.

Alternate Flow Alt-Step 1 : Jika button Generate tidak aktif, maka leader dapat

memilih menu GenerateBasicTimetable / GenerateAdvancedTimetable pada form utama untuk

men-generate jadwal mengajar asisten.

Alt-Step 4 : Leader dapat memilih inisial dari asisten lain untuk melihat prioritas/minat ajarnya.

Lihat Gambar Rancangan Form ViewTeachingAndStudyingTimetablePerAst (Gambar 3.12)

Adapun Sequence Diagram untuk View Jadwal Kuliah dan Jadwal Mengajar Per Asisten ditunjukkan pada Gambar 3.9.

(30)

Object1 : leader frmJadwalPerAst GA JadwalKuliah choose_Inisial() getJadwalMengajar(inisial) returnJadwal() status generateJadwal() getJadwalKuliah(Inisial) selectJadwalKuliah() returnJadwalKuliah() showJadwalPerAst() click_button_Generate()

Gambar 3.9 Sequence Diagram View Jadwal Kuliah dan Jadwal Mengajar Per Asisten

3.7.3.7 Sequence Diagram View Jadwal Mengajar Seluruh Asisten

Skenario untuk View Jadwal Mengajar Seluruh Asisten ditunjukkan pada Tabel 3.7.

Tabel 3.7 Skenario View Jadwal Mengajar Seluruh Asisten Use Case Name View Jadwal Mengajar Seluruh Asisten Actor Leader

Description Use case ini menggambarkan proses yang terjadi ketika leader hendak melihat jadwal mengajar seluruh asisten. Leader klik button Generate, jika button tersebut diaktifkan. Sistem akan menampilkan jadwal mengajar seluruh asisten.

Preconditions ▪ Leader sudah membuka form utama dari aplikasi.

▪ Leader sudah klik menu ViewTeachingTimetableAllAst. Postconditions ▪ Leader dapat melihat jadwal mengajar seluruh asisten.

(31)

Step 1 : Leader klik button Generate jika button tersebut diaktifkan.

Step 3 : Leader dapat melihat jadwal mengajar seluruh asisten.

Step 4 : Leader dapat klik button Print untuk mencetak jadwal tersebut.

Step 2 : Sistem akan menampilkan jadwal mengajar seluruh asisten pada datagridview.

Step 5 : Sistem men-generate laporan jadwal mengajar asisten.

Alternate Flow Alt-Step 1 : Jika button ShowTeachingTimetable tidak aktif, maka leader dapat memilih menu GenerateBasicTimetable / GenerateAdvancedTimetable pada form utama untuk men-generate jadwal mengajar asisten.

Lihat Gambar Rancangan Form ViewTeachingTimetableAllAst (Gambar 3.15)

Adapun Sequence Digram untuk View Jadwal Mengajar Seluruh Asisten ditunjukkan pada Gambar 3.10.

Object1 : leader frmJadwal GA

getJadwalMengajar() generateJadwal() click_button_Generate() showJadwal() status click_button_Print() Laporan generateReport() showReport()

(32)

3.8 Perancangan Layar

3.8.1 Rancangan Layar Form Utama

Rancangan layar form utama ditunjukkan pada Gambar 3.11.

Gambar 3.11 Rancangan Layar Form Utama

3.8.2 Rancangan Layar Form View Jadwal Mengajar dan Kuliah Per Asisten Rancangan layar form view jadwal mengajar dan kuliah per asisten ditunjukkan pada Gambar 3.12.

(33)

Gambar 3.12 Rancangan Layar Form View Jadwal Mengajar dan Kuliah Per Asisten

3.8.3 Rancangan Layar Form View Kualifikasi Asisten

Rancangan layar form view kualifikasi asisten ditunjukkan pada Gambar 3.13.

(34)

3.8.4 Rancangan Layar Form View Prioritas Mengajar Asisten

Rancangan layar form view prioritas mengajar asisten ditunjukkan pada Gambar 3.14.

Gambar 3.14 Rancangan Layar Form View Prioritas Mengajar Asisten

3.8.5 Rancangan Layar Form View Jadwal Mengajar Asisten

Rancangan layar form view jadwal mengajar asisten ditunjukkan pada Gambar 3.15.

(35)

3.8.6 Rancangan Layar Form Basic

Rancangan layar form basic ditunjukkan pada Gambar 3.16.

Gambar 3.16 Rancangan Layar Form Basic

3.8.7 Rancangan Layar Form Advance

Rancangan layar form advance ditunjukkan pada Gambar 3.17.

(36)

3.8.8 Rancangan Layar Form Generate Population

Rancangan layar form generate population ditunjukkan pada Gambar 3.18.

Gambar 3.18 Rancangan Layar Form Generate Population

3.9 Perancangan Database

Aplikasi yang dibuat menggunakan database untuk menyimpan data yang diperlukan. Entity Relationship Diagram (ERD) dari database yang digunakan ditunjukkan pada Gambar 3.19.

(37)

tr_alokasi_asisten PK,FK1 Kdhari PK,FK2 Kdshift PK,FK3 Kdstatus PK Ruang PK,FK4 Inisial tr_alokasi_ruang PK,FK1 Kdhari PK,FK2 Kdshift PK,FK3 Kdstatus PK Ruang Kdmtk Kelas JmlMhs ms_hari PK Kdhari Nmhari ms_shift PK Kdshift RangeWaktu ms_status PK Kdstatus JnsStatus tr_ast_lulus_training PK,FK1 Kdmtk PK,FK2 Inisial ms_asisten PK Inisial PK Angkatan Nama FK2 Kdwil FK3 Kdjbt FK1 KdshiftAst ms_wilayah PK Kdwil Wilayah ms_jabatan PK Kdjbt Jabatan ms_shift_asisten PK KdshiftAst ShiftAst ms_matakuliah_lab PK Kdmtk Nmmtk FK1 Kdwil FK3 KdstatusPrk FK2 Kdstatus Proyek JnsVariasi ms_status_prk PK KdstatusPrk StatusPrk tr_kuliah_asisten PK,FK4 Inisial PK,FK3 KdmtkKul PK StatusPrk FK1 Kdhari FK2 Kdshift Ruang Kelas ms_matakuliah_kul PK KdmtkKul NmmtkKul tr_kualifikasi PK,FK2 Inisial PK,FK1 Kdmtk ms_prioritas PK,FK2 Inisial PK,FK1 Kdmtk Prioritas tr_jadwal PK,FK1 Kdhari PK,FK4 Angkatan PK,FK2 Kdshift PK,FK3 Kdstatus PK Ruang PK,FK4 Inisial Kelas FK5 Kdmtk 1 1 1..* 1 1 1 1 1 1 1 1..* 1 1 1..* 1 1 1..* 1..* 1 1..* 1 1..* 1 1..* 1 1..* 1..* 1..* 1..* 1 1..* 1..* 1 1..* 1 1 1..* 1 1..* 1..* 1..* 1..* 1 1..* 1..* 1 1..* 1 1.2 1 1.2 1 1..* 1 1..* 1 1..* 1..*

(38)

Adapun detail dari database yang digunakan adalah sebagai berikut ini. Tabel 3.8 Master Hari

Tabel ini digunakan untuk menyimpan data hari. Nama Tabel : ms_hari

Primary Key : Kdhari

Field Tipe Data Ukuran Field Keterangan

Kdhari char 1 Kode hari

Nmhari varchar 10 Nama hari

Tabel 3.9 Master Shift Asisten

Tabel ini digunakan untuk menyimpan data shift kerja asisten. Nama Tabel : ms_shift_asisten

Primary Key : KdshiftAst

Field Tipe Data Ukuran Field Keterangan

KdshiftAst char 1 Kode shift mengajar asisten P : Shift pagi

M : Shift malam

ShiftAst varchar 10 Keterangan kode shift asisten

Tabel 3.10 Master Status Praktikum

Tabel ini digunakan untuk menyimpan data status praktikum dan menunjukkan apakah suatu transaksi praktikum merupakan praktikum lab software atau bukan.

Nama Tabel : ms_status_prk Primary Key : KdstatusPrk

Field Tipe Data Ukuran Field Keterangan

KdstatusPrk char 1 Kode status praktikum

P : Praktikum lab software J : Praktikum lab managemen U : Praktikum DKV

R : Praktikum arsitektur

StatusPrk varchar 50 Keterangan kode status praktikum

Tabel 3.11 Master Matakuliah Kuliah

Tabel ini digunakan untuk menyimpan data matakuliah yang didapatkan di perkuliahan. Nama Tabel : ms_matakuliah_kul

(39)

Primary Key : KdmtkKul

Field Tipe Data Ukuran Field Keterangan

KdmtkKul char 5 Kode mata kuliah

NmmtkKul varchar 100 Nama mata kuliah

Tabel 3.12 Master Jabatan

Tabel ini digunakan untuk menyimpan data jabatan pada UPT. Perangkat Lunak. Nama Tabel : ms_jabatan

Primary Key : Kdjbt

Field Tipe Data Ukuran Field Keterangan

Kdjbt char 1 Kode jabatan

Jabatan varchar 50 Jabatan pada UPT.Perangkat Lunak

Tabel 3.13 Master Wilayah

Tabel ini digunakan untuk menyimpan data wilayah praktikum. Nama Tabel : ms_wilayah

Primary Key : Kdwil

Field Tipe Data Ukuran Field Keterangan

Kdwil char 1 Kode wilayah

A : Anggrek S : Syahdan

Wilayah varchar 20 Nama wilayah

Tabel 3.14 Master Status

Tabel ini digunakan untuk menyimpan data status praktikum. Nama Tabel : ms_status

Primary Key : Kdstatus

Field Tipe Data Ukuran Field Keterangan

Kdstatus char 1 Kode status

1 : Minggu ganjil 2 : Minggu genap 3 : Sebelum mid 4 : Setelah mid 5 : Full semester

(40)

Tabel 3.15 Master Shift

Tabel ini digunakan untuk menyimpan data shift perkuliahan. Nama Tabel : ms_shift

Primary Key : Kdshift

Field Tipe Data Ukuran Field Keterangan

Kdshift char 1 Kode shift

Range Waktu varchar 20 Range waktu pada shift

Tabel 3.16 Master Matakuliah Laboratorium

Tabel ini digunakan untuk menyimpan data matakuliah laboratorium. Nama Tabel : ms_matakuliah_lab

Primary Key : Kdmtk

Field Tipe Data Ukuran Field Keterangan

Kdmtk char 5 Kode mata kuliah

Nmmtk varchar 100 Nama mata kuliah

Kdwil char 1 Kode wilayah

KdstatusPrk char 1 Kode status praktikum

Kdstatus char 1 Kode status

Proyek char 1 Menyatakan suatu mata kuliah praktikum berproyek atau tidak. P : Berproyek

T : Tidak berproyek JnsVariasi char 1 Jenis variasi mata kuliah

Tabel 3.17 Master Asisten

Tabel ini digunakan untuk menyimpan data asisten. Nama Tabel : ms_asisten

Primary Key : Inisial, Angkatan

Field Tipe Data Ukuran Field Keterangan

Inisial char 2 Inisial asisten

Angkatan char 4 Angkatan asisten

Nama varchar 100 Nama asisten

Kdwil char 1 Kode wilayah

Kdjbt char 1 Kode jabatan

(41)

Tabel 3.18 Master Prioritas

Tabel ini digunakan untuk menyimpan data prioritas atau minat ajar asisten. Nama Tabel : ms_prioritas

Primary Key : Inisial, Angkatan, Kdmtk

Field Tipe Data Ukuran Field Keterangan

Inisial char 2 Inisial asisten

Angkatan char 4 Angkatan asisten

Kdmtk char 5 Kode mata kuliah

Prioritas int 4 Prioritas atau minat mengajar

Tabel 3.19 Transaksi Alokasi Ruang

Tabel ini digunakan untuk menyimpan data transaksi alokasi ruang praktikum. Nama Tabel : tr_alokasi_ruang

Primary Key : Kdhari, Kdshift, Kdstatus, Ruang

Field Tipe Data Ukuran Field Keterangan

Kdhari char 1 Kode hari

Kdshift char 1 Kode shift

Kdstatus char 1 Kode status

Ruang varchar 5 Ruang praktikum

Kdmtk char 5 Kode mata kuliah

Kelas char 5 Kelas yang mengikuti praktikum

JmlMhs int 4 Jumlah mahasiswa

Tabel 3.20 Transaksi Asisten Lulus Training

Tabel ini digunakan untuk menyimpan data asisten yang telah lulus training mata kuliah tertentu yang diadakan oleh UPT. Perangkat Lunak.

Nama Tabel : tr_ast_lulus_training Primary Key : Kdmtk, Inisial

Field Tipe Data Ukuran Field Keterangan

Kdmtk char 5 Kode mata kuliah

Inisial char 2 Inisial asisten

Tabel 3.21 Transaksi Kualifikasi

Tabel ini digunakan untuk menyimpan data mata kuliah yang dapat diajar oleh asisten. Nama Tabel : tr_kualifikasi

(42)

Primary Key : Inisial, Kdmtk

Field Tipe Data Ukuran Field Keterangan

Inisial char 2 Inisial asisten

Kdmtk char 5 Kode mata kuliah

Tabel 3.22 Transaksi Alokasi Asisten

Tabel ini digunakan untuk menyimpan data transaksi alokasi asisten. Nama Tabel : tr_alokasi_asisten

Primary Key : Kdhari, Kdshift, Kdstatus, Ruang, Inisial

Field Tipe Data Ukuran Field Keterangan

Kdhari char 1 Kode hari

Kdshift char 1 Kode shift

Kdstatus char 1 Kode status

Ruang varchar 5 Ruang praktikum

Inisial char 2 Inisial asisten

Tabel 3.23 Transaksi Kuliah Asisten

Tabel ini digunakan untuk menyimpan data kuliah asisten. Nama Tabel : tr_kuliah_asisten

Primary Key : Inisial, KdmtkKul, StatusPrk

Field Tipe Data Ukuran Field Keterangan

Inisial char 2 Inisial asisten

KdmtkKul char 5 Kode mata kuliah

StatusPrk varchar 20 Status praktikum

Prk : Mata kuliah yang ada praktikum

TidakPrk : Mata kuliah yang tidak ada praktikum

Kdhari char 1 Kode hari

Kdshift char 1 Kode shift

Ruang varchar 5 Ruang kuliah

Kelas char 5 Kelas yang mengikuti kuliah

Tabel 3.24 Transaksi Jadwal Mengajar

Tabel ini digunakan untuk menyimpan jadwal mengajar asisten. Nama Tabel : tr_jadwal

(43)

Field Tipe Data Ukuran Field Keterangan

Kdhari char 1 Kode hari

Kdshift char 1 Kode shift

Kdstatus char 1 Kode status

Ruang varchar 5 Ruang praktikum

Kelas char 5 Kelas yang mengikuti praktikum

Kdmtk char 5 Kode mata kuliah

Inisial char 2 Inisial asisten

3.10 Penerapan Algoritma Genetik Pada Otomatisasi Penjadwalan Asisten 3.10.1 Algoritma Genetik yang Digunakan

Algoritma genetik yang digunakan pada pembuatan jadwal mengajar asisten adalah sebagai berikut :

Inisialisasi ukuran populasi, crossover method, selection

rate, mutation rate

Inisialisasi populasi

Create objek jadwal pada buffer

While counter < GA_MAXITER

Hitung nilai fitness semua jadwal pada populasi

Sort jadwal ascending berdasarkan nilai fitness

If nilai fitness jadwal terbaik = 0 then keluar dari

perulangan

Mate (seleksi, crossover, mutasi)

Isi populasi dengan populasi baru pada buffer

End while

3.10.2 Representasi Struktur Data

Untuk menyelesaikan masalah penjadwalan dengan menggunakan algoritma genetik, hal pertama yang dilakukan adalah merepresentasikan solusi sebagai kromosom. Pada aplikasi ini, data direpresentasikan dengan teknik value encoding. Sebuah kromosom merepresentasikan satu jadwal asistensi. Satu kromosom terdiri dari gen-gen, dimana setiap gen merepresentasikan hari, shift,

(44)

ruang, kode mata kuliah, kelas, jumlah mahasiswa, inisial asisten, jumlah asisten, bobot mata kuliah, dan status mata kuliah.

Contoh representasi gen adalah : Hari : 1

Shift : 2

Cell : 603, T0251, 07PET, 2 Ast 0 : RM, Ast 1 : RA, status = 1

3.10.3 Urutan Proses dan Algoritma Penjadwalan Asisten

Sebuah jadwal asistensi dapat dihasilkan setelah melalui tahapan proses sebagai berikut :

1. Inisialisasi Nilai Parameter

Pada tahapan ini, sistem akan menerima parameter-parameter berupa ukuran populasi, crossover method, selection rate, dan mutation rate yang diinput user. Nilai parameter tersebut akan menentukan kinerja pencarian jadwal terbaik.

2. Inisialisasi Populasi

Inisialisasi populasi diawali dengan pembentukan jadwal yang transaksi praktikumnya diperoleh dari database. Pada jadwal yang dibentuk, belum terdapat asisten yang dialokasikan untuk mengajar transaksi praktikum. Jadwal yang dimaksud ditunjukkan pada Gambar 3.20.

(45)
(46)
(47)

Gambar 3.20 Jadwal Alokasi Ruang

Setelah jadwal di atas terbentuk, langkah selanjutnya adalah me-random asisten-asisten untuk dialokasikan pada setiap transaksi praktikum di jadwal yang telah dibentuk. Ukuran populasi bergantung pada input-an user. Saat me-random staf pengajar pada jadwal, perlu diperhatikan shift kerja asisten (shift pagi/malam) dan diusahakan bobot tiap staf pengajar merata.

Jadwal yang sudah memiliki asisten hasil random pada transaksi praktikumnya ditunjukkan pada Gambar 3.21.

(48)
(49)
(50)
(51)
(52)
(53)

Gambar 3.21 Gambar Jadwal Hasil Random

Pseudocode yang digunakan untuk membentuk populasi awal adalah sebagai berikut :

create arraylist ast dan isi dengan data asisten idxAst = 0

while ctrAst < jumlah data pada ast

if jabatan asisten ast ctrAst = asisten then jumAst + 1

else jumAI + 1 end while

while ctrFile < MAX_JADWAL

(54)

bobotPerAst = jdwl.Bobot / (jumAst + (jumAI / 4)) bobotTempAstInti = bobotPerAst / 4

while counter < jumlah data pada ast

if jabatan ast counter = asisten then bobot asisten ast count = bobotPerAst

else bobot asisten ast count = bobotTempAstInti end while

while jumlah asisten < kapasitas pada jadwal random hari

random shift berdasarkan shift kerja asisten random cell

if jumlah asisten < kapasitas pada jadwal hari,shift,cell dan inisial asisten ast idxAst tidak mengajar pada jadwal hari,shift then

cek apakah dalam 1 transaksi ada asisten yang sama inisialnya

if tidak ada inisial asisten yang sama pada 1 cell then

add inisial asisten ast idxAst ke Ast jadwal,hari,shift,cell

bobotTempAst = bobotTempAst + Bobot cell

BobotPerSemester asisten ast idxAst + bobotTempAst

end if

if bobotTempAst >= Bobot ast idxAst – 0.75 then bobotTempAst = 0 idxAst = idxAst + 1 end if end if end while end while 3. Evaluasi Fitness

Setelah populasi terbentuk, setiap kromosom pada populasi tersebut akan diberikan nilai fitness berdasarkan kesesuaiannya dengan constraint-constraint dalam penjadwalan asistensi.

Constraint dalam penjadwalan dapat dibedakan menjadi hard constraint dan soft constraint. Apabila hard constraint dilanggar, maka akan

(55)

berakibat fatal karena jadwal yang dihasilkan tidak dapat digunakan. Pelanggaran terhadap soft constraint masih dapat ditolerir sehingga jadwal yang dihasilkan masih dapat digunakan. Pelanggaran hard constraint diberi nilai 10000, sedangkan pelanggaran soft constraint hanya diberi nilai 2. Hal ini dimaksudkan agar meskipun semua soft constraint dilanggar, nilai fitness-nya tidak akan sama dengan nilai fitness apabila 1 hard constraint dilanggar.

Daftar hard constraint dan soft constraint yang digunakan dalam penjadwalan asistensi ditunjukkan pada Tabel 3.25.

Tabel 3.25 Hard Constraint dan Soft Constraint

Hard Constraints Soft Constraints

Seorang asisten hanya dapat mengajar satu materi praktikum pada satu tempat dan pada satu waktu.

Asisten mengajar maksimum 3 shift dalam 1 hari.

Asisten hanya dapat mengajar suatu mata kuliah jika ia telah lulus training untuk mata kuliah tersebut atau jika ia memenuhi kualifikasi/syarat mengajar berupa grade minimum untuk mata kuliah tersebut.

Asisten diusahakan tidak mengajar 3 shift berturut-turut.

Jadwal mengajar asisten tidak bentrok dengan jadwal kuliahnya.

Dalam satu transaksi praktikum, asisten yang mengajar bukan asisten junior semuanya, tetapi juga didampingi oleh asisten senior.

Variasi mengajar asisten diperkecil (asisten mengajar mata kuliah-mata kuliah dalam variasi yang sama).

Asisten tidak mengajar pada shift tepat setelah shift ia kuliah.

Bobot mengajar seluruh asisten merata. Rentang bobot yang masih ditoleransi adalah 0.5.

Asisten tidak ada kuliah praktikum pada shift tepat setelah ia mengajar.

Asisten mengajar sesuai

dengan prioritas/minat ajar yang sebelumnya diisi oleh Asisten tersebut.

(56)

Pseudocode untuk mengevaluasi constraint 1 (seorang asisten hanya dapat mengajar satu materi praktikum pada satu tempat dan pada satu waktu) adalah sebagai berikut :

while hari < jumlah hari pada jadwal

while shift < jumlah shift pada jadwal hari create arraylist astCell

while cell < jumlah transaksi praktikum pada jadwal hari,shift

while ctrAst < jumlah asisten mengajar pada jadwal hari,shift,cell

flag = true

while ctr < jumlah data pada astCell

if inisial asisten pada astCell ctr = inisial asisten pada jadwal hari,shift,cell,ctrAst then

nilai asisten astCell ctr + 1 flag = false

break end if end while

if flag = true then add objek asisten ke astCell

end while end while

while ctr < jumlah data pada astCell

jika nilai asisten astCell ctr >= 2 then fitness = fitness + 10000

end while end while end while

Pseudocode untuk mengevaluasi constraint 2 (asisten hanya dapat mengajar suatu mata kuliah jika ia telah lulus training untuk mata kuliah tersebut atau jika ia memenuhi kualifikasi/syarat mengajar berupa grade minimum untuk mata kuliah tersebut) adalah sebagai berikut :

create arraylist ast

create arraylist astBanding

(57)

while hari < jumlah hari pada jadwal

while shift < jumlah shift pada jadwal hari

while cell < jumlah transaksi praktikum pada jadwal hari,shift

while ctrAst < jumlah asisten mengajar pada jadwal hari,shift,cell

flag = true

while ctr < jumlah data pada ast

if inisial asisten ast ctr = inisial asisten pada jadwal hari,shift,cell,ctrAst then

if MtkTraining dan MtkQualified asisten ast ctr tidak mengandung Kdmtk pada jadwal hari,shift,cell then

fitness = fitness + 10000 end if flag = false break end if end while

if flag = true then

create asisten tempAst

inisial tempAst = inisial asisten pada jadwal hari,shift,cell,ctrAst

kdHari tempAst = kdHari pada jadwal hari

kdShift tempAst = Id pada jadwal hari,shift

while counter < jumlah data pada astBanding

if inisial tempAst = inisial asisten astBanding counter then

MtkTraining tempAst = MtkTraining asisten astBanding counter

MtkQualified tempAst = MtkQualified asisten astBanding counter

end if end while

add tempAst ke ast end if

end while end while end while end while

(58)

Pseudocode untuk mengevaluasi constraint 3 (jadwal mengajar asisten tidak bentrok dengan jadwal kuliahnya) adalah sebagai berikut :

create arraylist ast create arraylist kuliah

isi kuliah dengan data kuliah asisten

while hari < jumlah hari pada jadwal

while shift < jumlah shift pada jadwal hari

while cell < jumlah transaksi praktikum pada jadwal hari,shift

while ctrAst < jumlah asisten mengajar pada jadwal hari,shift,cell

flag = true

while ctr < jumlah data pada ast

if inisial asisten ast ctr = inisial asisten pada jadwal hari,shift,cell,ctrAst then

KdHari asisten ast ctr + KdHari pada jadwal hari

KdShift asisten ast ctr + Id pada jadwal hari,shift

end if end while

if flag = true then

create asisten tempAst

inisial tempAst = inisial asisten pada jadwal hari,shift,cell,ctrAst

add tempAst ke ast end if

end while end while end while end while

while counter < jumlah data pada ast

while ctrShift < panjang string KdHari pada asisten ast ctr

kodehari = KdHari(ctrShift) asisten ast ctr kodeshift = KdShift(ctrShift) asisten ast ctr

while ctrKul < jumlah data pada kuliah

if inisial asisten ast ctr = inisial KuliahAst kuliah ctrkul dan kodehari = KdHari KuliahAst kuliah ctrkul dan kodeshift = KdShift KuliahAst kuliah ctrkul then

fitness = fitness + 10000

(59)

end while end while end while

Pseudocode untuk mengevaluasi constraint 4 (variasi mengajar asisten diperkecil) adalah sebagai berikut :

create arraylist ast

create arraylist astBanding dan isi dengan data semua asisten

create arraylist matkul dan isi dengan data mata kuliah

while hari < jumlah hari pada jadwal

while shift < jumlah shift pada jadwal hari

while cell < jumlah transaksi praktikum pada jadwal hari,shift

while ctrAst < jumlah asisten mengajar pada jadwal hari,shift,cell

flag = true

while ctr < jumlah data pada ast

if inisial asisten ast ctr = inisial asisten pada jadwal hari,shift,cell,ctrAst then

tempJenisVariasi = ””

while ctrVariasi < jumlah data pada matkul

if KdMtk pada jadwal hari,shift,cell = kdmtk matkul ctrVariasi then

tempJenisVariasi = JenisVariasi matkul ctrVariasi

break end if end while

if JenisVariasi asisten ast ctr tidak mengandung tempJenisVariasi then

gabung JenisVariasi asisten ast ctr dengan tempJenisVariasi

BanyakVariasi asisten ast ctr + 1 end if

flag = false break

end if end while

(60)

if flag = true then

create arraylist tempAst tempJenisVariasi = ””

while ctrVariasi < jumlah data pada matkul if KdMtk pada jadwal hari,shift,cell = kdmtk matkul ctrVariasi then

tempJenisVariasi = JenisVariasi matkul ctrVariasi break end if end while JenisVariasi tempAsisten = tempJenisVariasi

inisial tempAsisten = inisial asisten pada jadwal hari,shift,cell,ctrAst

add tempAst ke ast end if

end while end while end while end while

while counter < jumlah data pada ast

if BanyakVariasi asisten ast counter > MAX_VARIASI then

fitness = fitness + ((BanyakVariasi asisten ast

counter – MAX_VARIASI) * 10000) end if

end while

Pseudocode untuk mengevaluasi constraint 5 (bobot mengajar seluruh asisten merata) adalah sebagai berikut :

asisten ast() = data semua asisten

asisten astBobot() = data semua asisten dengan bobot per semesternya

retval = 0

while ctr < jumlah asisten pada ast

if jabatan ast ctr = asisten dan selisih BobotPerSemester astBobot ctr dengan bobotPerAst lebih/kurang dari 0.5 then

(61)

else if jabatan ast ctr = asisten inti dan selisih BobotPerSemester astBobot ctr dengan bobotTempAstInti lebih/kurang dari 0.5 then

retval = retval + 10000 end if

end while

if jumlah asisten yang dialokasikan < jumlah asisten yang seharusnya mengajar pada jadwal hari,shift,cell then

return retval else

return 0 end if

Pseudocode untuk mengevaluasi constraint 6 (asisten mengajar maksimum 3 shift dalam 1 hari) adalah sebagai berikut :

while hari < jumlah hari pada jadwal create arraylist ast

while shift < jumlah shift pada jadwal hari

while cell < jumlah transaksi praktikum pada jadwal hari,shift

while ctrAst < jumlah asisten mengajar pada jadwal hari,shift,cell

while ctr < jumlah data pada ast

if inisial asisten pada ast ctr = inisial asisten pada jadwal hari,shift,cell,ctrAst then

nilai asisten ast ctr + 1 flag = false

break end if end while

if flag = true then add objek asisten ke ast end while

end while end while

while ctr < jumlah data pada ast

if nilai asisten ast ctr >= 3 then fitness =

fitness + 2

end while end while

(62)

Pseudocode untuk mengevaluasi constraint 7 (asisten diusahakan tidak mengajar 3 shift berturut-turut) adalah sebagai berikut :

while hari < jumlah hari pada jadwal create arraylist ast

while shift < jumlah shift pada jadwal hari

while cell < jumlah transaksi praktikum pada jadwal hari,shift

while ctrAst < jumlah asisten mengajar pada jadwal hari,shift,cell

while ctr < jumlah data pada ast

if inisial asisten pada ast ctr = inisial asisten pada jadwal hari,shift,cell,ctrAst then

shift mengajar asisten ast ctr + 1 + shift

flag = false break

end if end while

if flag = true then add objek asisten ke ast end while

end while end while

while ctr < jumlah data pada ast

if shift mengajar asisten ast ctr mengandung shift yang berurutan then

fitness = fitness + 2

end if end while end while

Pseudocode untuk mengevaluasi constraint 8 (dalam satu transaksi praktikum, asisten yang mengajar bukan asisten junior semuanya, tetapi juga didampingi oleh asisten senior) adalah sebagai berikut :

while hari < jumlah hari pada jadwal

while shift < jumlah shift pada jadwal hari

while cell < jumlah transaksi praktikum pada jadwal hari,shift

(63)

while ctrAst < jumlah asisten mengajar pada jadwal hari,shift,cell

if angkatan asisten pada jadwal hari,shift,cell,ctrAst junior then isJunior + 1

end while

if isJunior = jumlah asisten mengajar pada jadwal hari,shift,cell then fitness = fitness + 2

end while end while end while

Pseudocode untuk mengevaluasi constraint 9 (asisten tidak mengajar pada shift tepat setelah shift ia kuliah) adalah sebagai berikut :

create arraylist ast create arraylist kuliah

isi kuliah dengan data kuliah asisten

while hari < jumlah hari pada jadwal

while shift < jumlah shift pada jadwal hari

while cell < jumlah transaksi praktikum pada jadwal hari,shift

while ctrAst < jumlah asisten mengajar pada jadwal hari,shift,cell

flag = true

while ctr < jumlah data pada ast

if inisial asisten ast ctr = inisial asisten pada jadwal hari,shift,cell,ctrAst then

KdHari asisten ast ctr + KdHari pada jadwal hari

KdShift asisten ast ctr + Id pada jadwal hari,shift

end if end while

if flag = true then

create asisten tempAst

inisial tempAst = inisial asisten pada jadwal hari,shift,cell,ctrAst

add tempAst ke ast end if

end while end while

(64)

end while end while

while counter < jumlah data pada ast

while ctrShift < panjang string KdHari pada asisten ast ctr

kodehari = KdHari(ctrShift) asisten ast ctr kodeshift = KdShift(ctrShift) asisten ast ctr

while ctrKul < jumlah data pada kuliah

if inisial asisten ast ctr = inisial KuliahAst kuliah ctrkul dan kodehari = KdHari KuliahAst kuliah ctrkul dan kodeshift - 1 = KdShift KuliahAst kuliah ctrkul dan isMtkPrk KuliahAst kuliah ctrkul = false then

fitness = fitness + 2

end if end while end while end while

Pseudocode untuk mengevaluasi constraint 10 (asisten tidak ada kuliah praktikum pada shift tepat setelah ia mengajar) adalah sebagai berikut : create arraylist ast

create arraylist kuliah

isi kuliah dengan data kuliah asisten

while hari < jumlah hari pada jadwal

while shift < jumlah shift pada jadwal hari

while cell < jumlah transaksi praktikum pada jadwal hari,shift

while ctrAst < jumlah asisten mengajar pada jadwal hari,shift,cell

flag = true

while ctr < jumlah data pada ast

if inisial asisten ast ctr = inisial asisten pada jadwal hari,shift,cell,ctrAst then

KdHari asisten ast ctr + KdHari pada jadwal hari

KdShift asisten ast ctr + Id pada jadwal hari,shift

end if end while

(65)

create asisten tempAst

inisial tempAst = inisial asisten pada jadwal hari,shift,cell,ctrAst

add tempAst ke ast end if

end while end while end while end while

while counter < jumlah data pada ast

while ctrShift < panjang string KdHari pada asisten ast ctr

kodehari = KdHari(ctrShift) asisten ast ctr kodeshift = KdShift(ctrShift) asisten ast ctr

while ctrKul < jumlah data pada kuliah

if inisial asisten ast ctr = inisial KuliahAst kuliah ctrkul dan kodehari = KdHari KuliahAst kuliah ctrkul dan kodeshift + 1 = KdShift KuliahAst kuliah ctrkul dan isMtkPrk KuliahAst kuliah ctrkul = true then

fitness = fitness + 2

end if end while end while end while

Pseudocode untuk mengevaluasi constraint 11 (asisten mengajar sesuai dengan prioritas/minat ajar yang sebelumnya diisi oleh asisten tersebut) adalah sebagai berikut :

create arraylist ast

while hari < jumlah hari pada jadwal

while shift < jumlah shift pada jadwal hari

while cell < jumlah transaksi praktikum pada jadwal hari,shift

while ctrAst < jumlah asisten mengajar pada jadwal hari,shift,cell

if prioritas ast ctr < 15 and (not contains

mtkqualified or not contains mtklulustraining) then

fitness = fitness + 2 end if

(66)

end while end while end while

4. Mate

Setelah populasi awal terbentuk, selanjutnya akan dikerjakan proses mate yang mencakup seleksi, crossover, dan mutasi. Proses-proses tersebut akan dikerjakan terus-menerus hingga diperoleh jadwal solusi yang terbaik.

Adapun kondisi-kondisi yang dapat menyebabkan iterasi terhenti adalah : solusi dengan nilai fitness terbaik (paling minimum) telah diperoleh, iterasi selanjutnya sudah tidak memungkinkan diperolehnya solusi dengan nilai fitness yang lebih baik, atau jumlah iterasi telah mencapai nilai batas yang ditentukan.

Berikut ini adalah penjelasan dan pseudocode dari proses-proses yang dikerjakan dalam proses mate.

a. Seleksi

Pada proses seleksi, sebagian kromosom yang terbaik dari populasi akan dipilih untuk membentuk generasi selanjutnya. Jumlah kromosom yang dipilih bergantung pada nilai parameter selection rate yang di-input user.

Pseudocode untuk proses seleksi (elitism) adalah sebagai berikut : esize = popSize * selection rate

while ctr < esize

isi buffer ctr dengan population ctr end while

(67)

b. Crossover

Crossover adalah proses pertukaran satu atau lebih gen antara suatu kromosom dengan kromosom lain sehingga dihasilkan dua kromosom baru. Metode crossover yang digunakan bergantung pada input user, dapat berupa one-point crossover maupun two-point crossover.

Setelah sebagian kromosom terbaik dari populasi sekarang disalin langsung ke generasi selanjutnya melalui proses elitism, akan dilakukan crossover untuk menghasilkan individu baru sebanyak ukuran populasi dikurangi jumlah individu hasil elitism. Hal ini dilakukan dengan memilih dua individu dari populasi sekarang secara acak dengan interval pemilihan sebesar selection rate.

Berikut ini adalah pseudocode untuk one-point crossover : random jadwal untuk dijadikan parent1

random jadwal lain untuk dijadikan parent2

idxHari = hasil random hari titik potong crossover idxShift = hasil random shift titik potong crossover flagParent = true

while ctrHari < jumlah hari pada jadwal

while shift < jumlah shift pada jadwal hari

while cell < jumlah transaksi praktikum pada jadwal hari,shift

if ctrHari = idxHari dan ctrShift = idxShift then flagParent = false

if flagParent = true then

copy inisial asisten dari parent1 pada posisi

sebelum titik potong crossover ke jadwal else

copy inisial asisten dari parent2 pada posisi

setelah titik potong crossover ke jadwal end if

end while end while end while

Gambar

Gambar 3.1 Struktur Organisasi UPTPL
Gambar 3.2 Class Diagram
Gambar 3.3 Use Case
Gambar 3.4 Sequence Diagram Generate Population
+7

Referensi

Dokumen terkait