• Tidak ada hasil yang ditemukan

PERANCANGAN DRAF PENJADWALAN KULIAH OTOMATIS MENGGUNAKAN ALGORITMA GENETIKA PADA PRODI PTIK IAIN BUKITTINGGI SKRIPSI

N/A
N/A
Protected

Academic year: 2022

Membagikan "PERANCANGAN DRAF PENJADWALAN KULIAH OTOMATIS MENGGUNAKAN ALGORITMA GENETIKA PADA PRODI PTIK IAIN BUKITTINGGI SKRIPSI"

Copied!
124
0
0

Teks penuh

(1)

SKRIPSI

Diajukan untuk mengikuti Sidang Munaqasyah pada Program Studi Pendidikan Teknik Informatika dan Komputer Fakultas Tarbiyah dan Ilmu Keguruan

Zulmahendra 2516.022

Pembimbing

Sarwo Derta, S.Kom, S.S, M.Kom NIP. 197501042006041003

PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER FAKULTAS TARBIYAH DAN ILMU KEGURUAN

INSTITUT AGAMA ISLAM NEGERI (IAIN) BUKITTINGGI

2020

(2)

i DAFTAR ISI

DAFTAR ISI ...i

BAB I PENDAHULUAN A. Latar Belakang Penelitian ...1

B. Identifikasi Masalah...8

C. Batasan Masalah ...9

D. Rumusan Masalah ...9

E. Tujuan Penelitian ...10

F. Manfaat Penelitian ...10

G. Penjelasan Judul...11

H. Sistematika Penulisan ...12

BAB II LANDASAN TEORI A. Perancangan Draf...13

B. Penjadwalan Mata Kuliah ...13

1. Penjadwalan ...13

2. Penjadwalan Mata Kuliah ...14

C. Aturan Penjadwalan Kuliah pada Prodi PTIK ...16

D. Algoritma Genetika ...16

1. Algoritma ...16

2. Genetika ...19

3. Algoritma Genetika ...19

E. Alat Bantu Perancangan Sistem...23

1. Unified Modelling Language (UML) ...23

a. Use Case Diagram ...24

b. Activity Diagram ...26

c. Sequence Diagram...28

d. Class Diagram ...30

2. Teknologi Perancangan Sistem ...32

a. HTML (Hyper Text Markup Language)...32

(3)

ii

b. PHP (PHP Hypertext Preprocessor) ...33

c. MySQL ...34

d. Codeigniter ...35

F. Penelitian Relevan ...37

BAB III METODOLOGI PENELITIAN A. Waktu dan Tempat Penelitian ...38

B. Metode Penelitian ...38

C. Model Pengembangan Sistem...40

D. Tahapan Penelitian...43

E. Uji Produk ...46

1. Uji Validitas ...47

2. Uji Praktikalitas ...47

3. Uji Efektifitas ...48

BAB IV HASIL DAN PEMBAHASAN A. Hasil Penelitian ...50

1. Analyze (Analisis) ...50

2. Design (Perancangan) ...54

3. Develop (Pengembangan) ...55

a. Communication...55

b. Planning ...61

c. Modeling ...64

d. Construction ...96

e. Deployment ...110

4. Implement (Implementasi) ...110

5. Evaluate (Evaluasi)...112

B. Pembahasan ...112

1. Uji Validitas ...112

2. Uji Praktikalitas ...113

3. Uji Efektifitas ...114

(4)

iii BAB V KESIMPULAN DAN SARAN

A. Kesimpulan ...116

B. Saran ...117

DAFTAR PUSTAKA

(5)

1

Kemajuan dan perkembangan teknologi telah banyak mengubah tatanan kehidupan manusia. Beberapa abad yang lalu, hampir semua kegiatan manusia dilakukan secara konvensional dengan cara mengerjakan secara manual. Seiring berjalannya waktu, manusia mulai berpikir bahwa cara konvensional tidak lagi efektif digunakan bila dibandingkan dengan pekerjaan manusia yang semakin banyak setiap harinya. Dengan permasalahan itu, dibuatlah cara-cara otomatis yang mampu meringankan pekerjaan.

Penggunaan cara manual tidak lagi efektif digunakan, maka dari itu, orang mulai berpikir untuk membuat suatu sistem yang mampu digunakan secara otomatis, sehingga dapat mengubah dan memberikan kemajuan dalam menjadwalkan segala proses dalam tatanan kehidupan. Penjadwalan merupakan suatu aspek yang sangat penting dalam setiap kejadian yang terjadi. Dengan adanya penjadwalan, segala proses yang dilakukan menjadi teratur. Tanpa adanya jadwal, maka akan terjadinya kekeliruan dan ketidakefektifan dalam melaksanakan sesuatu akibat tidak adanya yang mengatur proses-proses yang terjadi. Karena dalam tatanannya, segala sesuatu dilakukan berdasarkan standar waktu yang ditentukan.

Seperti firman Alah SWT dalam surah An-Nisa’ ayat 103 yang berbunyi:

ا ٗبَٰتِك َنيِنِم ۡؤُمۡلٱ ىَلَع ۡتَناَك َة ٰوَلَّصلٱ َّنِإ اٗتوُق ۡوَّم

١٠٣

Sesungguhnya shalat itu adalah fardhu yang ditentukan waktunya atas orang-

orang yang beriman. (QS. An-Nisa’:103)

(6)

Ayat ini menjelaskan bahwa, Allah SWT menetapkan pelaksanaan shalat berdasarkan jadwal waktu yang telah ditentukan. Kewajiban shalat ini apabila dikerjakan di luar waktu menjadi tidak sah. Hal ini mengisyaratkan bahwa kegiatan yang dilakukan sesuai dengan waktu dan ketentuan yang telah ditetapkan.

Semuanya berjalan sesuai dengan hakikatnya tanpa adanya suatu ketidakteraturan.

Hal ini menjadi suatu pertanda bagi setiap manusia, bahwa hal tersebut bisa menjadi pelajaran dan ilmu pengetahuan. Manusia bisa menjadikannya sebagai pedoman dalam mengatur segala aktivitas agar setiap hal yang dilakukan dapat berjalan sesuai dengan yang diinginkan tanpa adanya ketidakteraturan, terkhusus dalam dunia pendidikan. Dalam dunia pendidikan sendiri, pengaturan waktu merupakan hal wajib dilakukan dalam menentukan aspek-aspek penjadwalan seperti jadwal kegiatan kependidikan, jadwal libur pendidikan, dan lain sebagainya. Proses penjadwalan dalam dunia pendidikan merupakan suatu hal yang mutlak untuk dilakukan. Tanpa dijadwalkan, pendidikan yang dilakukan tidak bisa berjalan dengan efektif.

Tata cara dalam melakukan proses penjadwalan lebih banyak menggunakan

cara manual. Cara penjadwalan secara manual ini masih menggunakan cara

konvensional yang dilakukan dengan menempatkan komponen yang ada sehingga

saling terhubung tanpa bantuan teknologi, hanya murni dengan pemikiran secara

langsung. Selain dengan cara manual, penjadwalan juga dilakukan dengan cara

otomatis, yaitu proses penjadwalan yang dibantu oleh teknologi sehingga lebih

memudahkan dan menghemat waktu. Terlebih lagi pada era modern ini, teknologi

sudah semakin berkembang, membuat hal yang dulunya terasa mustahil dan sulit

(7)

untuk dikerjakan, menjadi mungkin untuk dilaksanakan. Hal ini sejalan dengan permasalahan yang dibahas, berkaitan dengan cara menjadwalkan suatu proses pendidikan yang sebelumnya menggunakan peralatan yang serba manual menjadi penjadwalan yang serba otomatis. Dampak yang ditimbulkan dari penjadwalan otomatis ini tentu dapat membantu dalam menjadwalkan kegiatan pendidikan menjadi lebih efektif dan efisien.

Penjadwalan pembelajaran dalam dunia pendidikan tinggi di Indonesia diatur dalam Peraturan Pemerintah Republik Indonesia nomor 17 tahun 2010 tentang Pengelolaan dan Penyelenggaraan Pendidikan pada pasal 87 ayat 1 sampai 4 yang berbunyi:[1]

1. Pendidikan tinggi diselenggarakan dengan menerapkan sistem kredit semester yang bobot belajarnya dinyatakan dalam satuan kredit semester.

2. Tahun akademik dibagi dalam 2 (dua) semester yaitu semester gasal dan semester genap yang masing-masing terdiri atas 14 (empat belas) sampai dengan 16 (enam belas) minggu.

3. Di antara semester genap dan semester gasal, perguruan tinggi dapat menyelenggarakan semester antara untuk remediasi, pengayaan, atau percepatan.

4. Ketentuan lebih lanjut mengenai semester antara sebagaimana dimaksud pada

ayat (3) diatur dengan Peraturan Menteri.

(8)

Penjadwalan dapat diartikan sebagai proses pengambilan keputusan yang berkaitan dengan pengalokasian sumber daya terbatas untuk tugas-tugas dari waktu ke waktu yang memiliki tujuan untuk mengoptimasi dari satu atau lebih tujuan.[2]

Dalam dunia pendidikan, khususnnya dunia perkuliahan, terdapat suatu proses penjadwalan yang dikenal dengan penjadwalan kuliah. Penjadwalan kuliah merupakan penyusunan dan pengaturan jadwal mata kuliah pada slot waktu yang tersedia selama satu minggu disertai dengan pembagian ruang kelasnya.[3]

Sehingga dengan tersusunnya jadwal, maka proses dalam dunia perkuliahan akan menjadi lebih efektif dan efisien.

Proses menjadwalkan mata kuliah dengan menggunakan cara otomatis ini tak lepas dari peran teknologi komputer. Teknologi yang digunakan merupakan software atau aplikasi yang secara dasar dibangun dengan bahasa pemrograman.

Bahasa pemrograman atau sering diistilahkan juga dengan bahasa komputer atau bahasa pemrograman komputer, adalah kumpulan instruksi standar untuk memerintah komputer.[4] Di antara sekian banyak bahasa pemrograman yang ada saat ini, bahasa pemrograman PHP: Hypertext Preprocessor (PHP) adalah salah satu bahasa yang banyak digunakan dan juga dibantu dengan database MySQL.

Bahasa PHP memiliki karakteristik scripting server-side, artinya data-data

diproses pada server. Secara sederhana, server yang akan menerjemahkan kode-

kode program, baru kemudian hasilnya dikirimkan kepada client yang melakukan

permintaan. Sedangkan MySQL merupakan salah satu program yang dapat

digunakan sebagai database, dan merupakan salah satu aplikasi untuk database

server yang banyak digunakan.[5]

(9)

Selain itu, dalam pengembangan sebuah software atau aplikasi, terdapat suatu langkah-langkah yang dikenal dengan algoritma. Algoritma diistilahkan dengan cara penyelesaian suatu masalah berdasarkan urutan langkah-langkah terbatas yang disusun secara sistematis dan menggunakan bahasa yang logis dengan tujuan tertentu.[6] Algoritma yang biasa digunakan dalam menyelesaikan masalah optimasi suatu alternatif seperti permasalahan penjadwalan adalah algoritma genetika. Algoritma genetika dikenal sebagai suatu algoritma optimasi yang didasarkan pada genetika alami untuk menghasilkan suatu solusi optimal yang melakukan proses pencarian di antara sejumlah alternatif titik optimal.[7]

Kegiatan perkuliahan di kampus saat ini sudah memanfaatkan sistem yang

berjalan secara otomatis, baik itu sistem informasi instansi bahkan sampai ke sistem

parkir. Namun demikian, masih ada beberapa kegiatan yang dilakukan dengan cara

manual, salah satunya adalah penentuan jadwal perkuliahan. Proses penentuan

jadwal perkuliahan dalam sebuah instansi pendidikan tinggi sangat penting untuk

diperhatikan. Proses perkuliahan akan berjalan lancar apabila penyusunan jadwal

perkuliahannya sesuai dengan kebutuhan mahasiswa, dosen, serta kondisi di

perguruan tinggi tersebut. Sebuah penjadwalan dapat dikatakan baik apabila dapat

memberikan solusi terhadap faktor-faktor tersebut sehingga dapat memudahkan

dalam proses penjadwalan perkuliahan. Namun, dalam implementasinya,

penjadwalan secara manual sering kali tidak efektif dalam memberikan solusi atas

faktor-faktor tersebut, sehingga rentan terjadinya bentrokan jadwal.

(10)

Dalam rangka menyusun jadwal yang baik, maka harus menghubungkan antar komponen-komponen berupa dosen, mata kuliah, ruang dan waktu agar tidak terjadi kasus jadwal yang bentrok. Tidak hanya bentrokan jadwal saja yang menjadi pertimbangan. Namun juga beberapa hal lain, seperti tidak boleh terjadi pengulangan jadwal yang sama dalam satu hari, jumlah sks yang diambil oleh mahasiswa, dan beberapa mata kuliah yang mengharuskan untuk melakukan perkuliahan di laboratorium. Dengan banyaknya permasalahan ini, orang yang bertugas membuat jadwal tentunya besar kemungkinan akan mendapat kesulitan.

Jadwal yang dihasilkan dengan cara seperti ini memerlukan waktu yang cukup lama dan cenderung mengabaikan berbagai aspek tersebut. Sehingga jadwal kuliah dan yang sudah dibuat seringkali perlu dilakukan perbaikan lagi. Oleh karena itu perlu dikembangkan suatu sistem penjadwalan kuliah otomatis yang dapat mengakomodasi berbagai aspek yang menjadi pertimbangan di atas. Untuk mengatasi masalah ini diperlukan sebuah sistem.

Institut Agama Islam Negeri (IAIN) Bukittinggi merupakan salah satu instansi

pendidikan tinggi yang masih menggunakan cara manual dalam penjadwalan

perkuliahan, salah satunya adalah proses penjadwalan di program studi Pendidikan

Teknik Informatika dan Komputer (PTIK). Biasanya, ketua program studi akan

melakukan pencarian blok-blok atau kolom-kolom mana saja yang masih kosong

dengan memperhatikan berbagai komponen seperti dosen, kelas mahasiswa,

semester, ruangan dan mata kuliah, kemudian menempatkan komponen pada blok

atau kolom tersebut.

(11)

Menurut hasil wawancara penulis dengan ketua program studi PTIK, yaitu bapak Riri Okra, M.Kom selama tiga kali yang dilakukan di ruangan prodi PTIK, tepatnya pada hari Rabu tanggal 8 Januari 2019 sekitar pukul 13.20 WIB, kedua hari Jum’at tanggal 10 Januari 2019 sekitar pukul 10.20 WIB dan hari Senin tanggal 20 Januari sekitar pukul 9.45 WIB, didapatkan bahwa dengan cara manual ini, terdapat beberapa kendala yang ditemukan, baik oleh mahasiswa maupun dosen.

Pertama adalah waktu yang diperlukan dalam satu kali proses penjadwalan

tergolong cukup lama, bisa memakan waktu dua atau tiga hari. Proses ini

bergantung juga terhadap kegiatan sehari-hari orang yang menjadwalkan, apabila

terdapat kegiatan lain, tentu akan lebih memakan waktu yang lebih banyak. Kedua

adalah, cara penentuan hari mengajar dosen yang kurang sesuai dengan rutinitas

dosen tersebut, akibatnya terdapat beberapa dosen yang jadwalnya bentrok dengan

rutinitas sehari-harinya. Seperti yang terjadi pada dosen luar biasa, dimana biasanya

dosen luar biasa hanya bisa mengajar pada hari Jum’at atau Sabtu, tetapi ada

beberapa kasus yang jadwalnya diletakkan pada hari lain. Walaupun awalnya ketua

prodi sudah meminta jadwal kesediaan mengajar, namun terkadang terdapat

perubahan jadwal kegiatan sehari-hari, sehingga jadwal mengajarpun harus

disesuaikan dengan kegiatan sehari-harinya. Hal tersebut tentu membuat ketua

program studi harus melakukan penjadwalan ulang yang tentu akan membutuhkan

tambahan waktu lagi. Ketiga, rentan terjadinya bentrokan jadwal, dan bentrokan ini

akan sulit untuk dideteksi secara manual. Walaupun sistem kampus mempunyai

fasilitas untuk mengetahui jadwal yang bentrok, bentrokan jadwal tersebut baru

akan terdeteksi apabila jadwal sudah diinput ke sistem, sehingga penjadwalan ulang

(12)

baru bisa dilakukan setelah jadwal bentrok diketahui dari sistem. Jika terdapat jadwal bentrok, sistem kampus pun hanya mengabaikan bentrokan tersebut tanpa memberikan solusi. Hal ini tentu membuat jadwal perkuliahan harus dijadwalkan kembali secara manual.

Sistem yang dibangun ini nantinya diharapkan akan dapat membantu dalam menjadwalkan perkuliahan secara otomatis pada prodi PTIK IAIN Bukittinggi.

Karena dengan adanya sistem ini, maka dapat membuat proses penjadwalan menjadi lebih singkat dan lebih praktis serta mengurangi bahkan mengantisipasi adanya jadwal yang bentrok dalam proses penjadwalan. Selain itu, sistem ini nanti dapat menjadi alat bantu sistem informasi kampus (e-campus) dalam merencanakan proses penjadwalan. Setelah dijadwalkan oleh sistem ini baru kemudian jadwal yang sudah jadi diinputkan ke dalam sistem informasi e-campus.

Berdasarkan dari masalah tersebut, penulis tertarik untuk mencoba menawarkan solusi dalam bentuk sebuah penelitian dengan judul Perancangan Draf Penjadwalan Kuliah Otomatis menggunakan Algoritma Genetika pada Prodi PTIK IAIN Bukittinggi. Diharapkan nantinya, dengan adanya sistem ini, dapat memudahkan program studi PTIK dalam melakukan penjadwalan perkuliahan secara efektif dan efisien.

B. Identifikasi Masalah

Berdasarkan latar belakang masalah tersebut, dapat diidentifikasi beberapa

masalah, yaitu:

(13)

1. Waktu yang diperlukan dalam satu kali proses menjadwalkan perkuliahan tergolong cukup lama, bisa memakan waktu sekitar dua atau tiga hari.

2. Cara penentuan hari mengajar dosen yang tidak sesuai dengan rutinitas dosen tersebut, akibatnya terdapat beberapa dosen yang jadwalnya bentrok dengan rutinitas sehari-harinya.

3. Rentan terjadinya bentrokan jadwal, dan bentrokan ini akan sulit untuk dideteksi secara manual, karena banyaknya jadwal yang dibuat. Walaupun sistem kampus mempunyai fasilitas untuk mengetahui jadwal yang bentrok, bentrokan jadwal tersebut baru akan terdeteksi apabila jadwal sudah diinput ke sistem, sehingga penjadwalan ulang baru bisa dilakukan setelah jadwal bentrok diketahui dari sistem.

C. Batasan Masalah

Berdasarkan latar belakang masalah dan identifikasi masalah, maka penulis membatasi masalah dalam penelitian ini, yakni:

1. Sistem yang dirancang adalah sistem penetapan jadwal perkuliahan secara otomatis menggunakan Algoritma Genetika pada Program Studi Pendidikan Teknik Informatika dan Komputer (PTIK) Institut Agama Islam Negeri (IAIN) Bukittinggi.

2. Bahasa pemrograman yang digunakan adalah bahasa PHP digabungkan dengan database MySQL.

D. Rumusan Masalah

Berdasarkan batasan masalah di atas, maka dapat dirumuskan masalahnya

adalah bagaimana rancangan draf penjadwalan kuliah otomatis menggunakan

(14)

algoritma genetika pada prodi PTIK IAIN Bukittinggi yang valid, praktis dan efektif?

E. Tujuan Penelitian

Penelitian ini bertujuan untuk menghasilkan produk draf penjadwalan kuliah otomatis menggunakan algoritma genetika pada prodi PTIK IAIN Bukittinggi yang valid, praktis dan efektif.

F. Manfaat Penelitian 1. Manfaat Teoritis

a. Memberikan sumbangan pemikiran bagi pembaharuan proses penjadwalan kuliah pada prodi PTIK yang sesuai dengan perkembangan teknologi.

b. Sebagai referensi dalam penelitian-penelitian selanjutnya yang berhubungan dengan proses penjadwalan kuliah.

2. Manfaat Praktis a. Bagi Penulis

Sebagai tambahan wawasan dan pengalaman serta sebagai syarat untuk menyelesaikan studi strata satu pada prodi PTIK IAIN Bukittinggi.

b. Bagi Program Studi

Mempermudah ketua program studi dalam menentukan jadwal perkuliahan tanpa memerlukan banyak waktu.

c. Bagi Dosen

Mempermudah dalam mengkondisikan mata kuliah yang diajarkan

agar sesuai dengan bidang keahlian dan jadwal yang diinginkan.

(15)

d. Bagi Mahasiswa

Meminimalisir adanya bentrokan jadwal antar jadwal dan dosen yang dipilih mahasiswa sehingga mengurangi adanya reschedule dalam pengambilan perkuliahan.

G. Penjelasan Judul

Untuk menghindari kesalahpahaman dan kekeliruan dalam memahami judul ini, maka penulis akan memberikan penjelasan terhadap istilah-istilah yang terdapat pada judul, diantaranya:

Penjadwalan Kuliah : penyusunan dan pengaturan jadwal mata kuliah pada slot waktu yang tersedia selama satu minggu disertai dengan pembagian ruang kelasnya.[3]

Otomatis : Bekerja dengan sendirinya tanpa dikontrol.

Algoritma Genetika : Suatu teknik optimasi yang didasarkan pada genetika alami untuk menghasilkan suatu solusi optimal, algoritma genetika melakukan proses pencarian di antara sejumlah alternatif titik optimal berdasarkan fungsi-fungsi peluang.[7]

Secara umum, maksud dari judul penelitian ini adalah suatu sistem yang dapat

menentukan jadwal kuliah secara otomatis sesuai dengan blok-blok atau kriteria-

kriteria dalam penentuan jadwal kuliah.

(16)

H. Sistematika Penulisan

Bab I merupakan pendahuluan yang berisi latar belakang penelitian,

identifikasi masalah, batasan masalah, rumusan masalah, tujuan penelitian, manfaat

penelitian, penjelasan judul, serta sistematika penulisan proposal skripsi. Bab II

merupakan landasan teori yang berisi konsep penjadwalan mata kuliah, aturan

penjadwalan mata kuliah pada prodi PTIK, konsep algoritma genetika, penelitian

relevan, alat bantu perancangan sistem (Unified Modelling Language) atau UML,

serta teknologi yang digunakan. Bab III merupakan metodologi penelitian yang

berisi waktu dan tempat penelitian, metode penelitian, model pengembangan

sistem, tahapan penelitian, dan uji produk.

(17)

13

Menurut Supratman, perancangan berupa penggambaran, perencanaan dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam satu kesatuan yang utuh dan berfungsi, termasuk menyangkut mengkonfigurasikan dari komponen-komponen perangkat lunak dan perangkat keras dari suatu sistem.[8] Sedangkan draf menurut Kamus Besar Bahasa Indonesia (KBBI) merupakan rancangan atau konsep (surat dan sebagainya). Dapat disimpulkan, perancangan draf merupakan suatu penggambaran atau sketsa suatu konsep berdasarkan elemen-elemen yang ada menjadi satu kesatuan utuh.

B. Penjadwalan Mata Kuliah 1. Penjadwalan

Penjadwalan secara tradisional diartikan sebagai pengalokasian yang tepat untuk sejumlah aktivitas ke sumber daya atau sebaliknya dari waktu ke waktu dengan memperhatikan prioritas, durasi, kapasitas, dan kendala-kendala ketidakcocokan. Dalam pengertian yang lain, diartikan sebagai proses pengambilan keputusan yang berkaitan dengan pengalokasian sumber daya terbatas untuk tugas-tugas dari waktu ke waktu yang memiliki tujuan untuk mengoptimasi dari satu atau lebih tujuan.[2]

Menurut Narasimhan, dkk dalam jurnal Nadia Natasa Tresia, suatu

penjadwalan dapat dikategorikan baik jika jadwal yang dihasilkan sederhana,

(18)

mudah dimengerti dan dapat dilaksanakan oleh siapapun yang menggunakannya. Penjadwalan yang baik seharusnya memiliki aturan-aturan penjadwalan yang cukup kuat dan memiliki tujuan yang realistis. Sehingga dapat fleksibel untuk memecahkan masalah yang tidak diprediksi sebelumnya dan memperbolehkan adanya suatu perencanaan ulang.[9]

2. Penjadwalan Mata Kuliah

Penjadwalan mata kuliah merupakan penyusunan dan pengaturan jadwal mata kuliah pada slot waktu yang tersedia selama satu minggu disertai dengan pembagian ruang kelasnya. Penjadwalan tersebut harus memperhatikan beberapa hal seperti kapasitas ruang, dosen, mahasiswa, dan jumlah SKS setiap mata kuliah. Masalah penjadwalan meliputi optimasi beberapa kriteria termasuk batasan-batasan seperti kebijakan kurikulum, pemilihan ruang kelas yang sesuai, dan ketersediaan dosen pengajar.[3] Secara sederhana, penjadwalan kuliah adalah penjadwalan sejumlah tuple sehingga seorang guru, kelas atau ruang tidak muncul lebih dari sekali per periode.[2]

Dalam penjadwalan mata kuliah, terdapat dua jenis batasan, yaitu batasan

yang bersifat harus atau disebut batasan mutlak (hard constraint) dan batasan

yang bersifat preferensi atau disebut batasan lunak (soft constraint). Batasan

mutlak yakni batasan yang harus dipatuhi dalam penjadwalan. Solusi yang

diajukan tidak boleh melanggar hard constraints.[2] Batasan yang bersifat

mutlak yang wajib dipenuhi, yaitu:[3]

(19)

a. Seorang dosen tidak dapat mengajar lebih dari satu mata kuliah dalam waktu yang sama

b. Sekelompok mahasiswa (dengan tingkatan/semester yang sama) tidak dapat dijadwalkan mengikuti kuliah lebih dari satu dalam waktu yang sama

c. Hanya satu mata kuliah yang dapat diselenggarakan di suatu ruang kuliah pada slot waktu yang ada.

d. Jumlah alokasi slot waktu setiap mata kuliah harus sesuai dengan beban SKS mata kuliah tersebut.

e. Kapasistas ruang kuliah harus mampu menampung sejumlah mahasiswa yang akan mengambil suatu mata kuliah.

f. Beberapa mata kuliah harus dijadwalkan pada ruang kuliah tertentu seperti laboratorium komputer.

Sedangkan batasan lunak (soft constraint) merupakan batasan dalam penjadwalan yang apabila dilanggar masih dapat menghasilkan solusi yang layak, tetapi sedapat mungkin harus dipenuhi. Kenyataannya, masalah penjadwalan mata kuliah biasanya tidak mungkin untuk memenuhi semua soft constraints.[2] Batasan yang bersifat lunak yakni:[3]

a. Mata kuliah dengan beban 4 SKS dapat dilaksanakan dalam satu sesi atau dalam dua sesi masing-masing 2 SKS, tergantung preferensi dosen.

b. Dosen sebaiknya memiliki hari libur mengajar.

c. Waktu jeda antar mata kuliah dalam satu hari bagi mahasiswa seharusnya

diminimalkan.

(20)

d. Ruang kelas untuk mahasiswa semester yang sama sebaiknya menggunakan ruang yang sama.

C. Aturan Penjadwalan Kuliah pada Prodi PTIK

Dalam proses penjadwalan mata kuliah, tentunya terdapat aturan-aturan yang harus dipatuhi, tak terkecuali pada prodi PTIK. Aturan ini dibuat untuk memaksimalkan jadwal yang dihasilkan serta proses perkuliahan pada prodi PTIK, diantaranya:

1. Dosen yang mengampu mata kuliah adalah dosen dengan pendidikan minimal strata dua (magister) dan sesuai dengan bidang keahlian masing-masing.

2. Perkuliahan dilakukan di ruangan belajar biasa dan juga di laboratorium komputer.

3. Disusun beban mengajar dosen per semester.

4. Dosen harus punya satu hari untuk seminar proposal ataupun sidang munaqasyah.

5. Jumlah sks untuk dosen tetap minimal 12 sks dan boleh lebih dengan jumlah maksimal 16 sks.

6. Sedangkan untuk dosen luar biasa, menurut aturan baru jumlah sks 16 sampai 20 sks.

D. Algoritma Genetika 1. Algoritma

Dunia pemrograman komputer tidak akan pernah lepas dari algoritma.

Algoritma merupakan sebuah gagasan cemerlang dari seorang ilmuan muslim

yang bernama Jafar Muhammad Ibnu Musa Al Khuwarizmi atau yang lebih

(21)

dikenal dengan nama Al Khawarizmi, penulis buku Al Jabar Wal Muqabala.

Orang di belahan bumi barat membaca namanya menjadi Algorims yang lambat laun di menjadi Algorithm. Kemudian diserap ke dalam bahasa Indonesia menjadi Algoritma.

Menurut Suprapto dalam buku Bahasa Pemrograman menyebutkan bahwa algoritma adalah alur pemikiran untuk menyelesaikan suatu pekerjaan atau suatu masalah daripada pembuatan program komputer. Algoritma inilah yang kemudian dijadikan landasan (pedoman) untuk membuat program komputer.[10] Menurut Ali Ridho Barakbah, algoritma merupakan cara penyelesaian suatu masalah berdasarkan urutan langkah-langkah terbatas yang disusun secara sistematis dan menggunakan bahasa yang logis dengan tujuan tertentu.[6]

Dapat disimpulkan, algoritma adalah suatu langkah-langkah yang

dilakukan untuk menyelesaikan suatu masalah yang disusun secara sistematis

(berurutan) dan logis. Untuk lebih memahami arti dari algoritma ini, diberikan

contoh untuk menukar isi dari 2 buah gelas (gelas A dan B). Gelas A berisi

teh, dan gelas B berisi kopi. Hasil dari pertukaran tadi adalah, gelas A yang

semula berisi teh menjadi berisi kopi, dan gelas B yang berisi kopi menjadi

berisi teh.

(22)

Gambar 2.1. Penukaran isi gelas A dengan gelas B

Sumber: Ali Ridho Barakbah, dkk. Logika dan Algoritma. (Surabaya:

Politeknik Negeri Surabaya, 2013), hal. 2

Dalam menyelesaikan masalah ini, diperlukan gelas tambahan, yaitu gelas X sebagai tempat penampungan sementara isi gelas. Algoritmanya adalah:

a. Siapkan gelas cadangan X

b. Tuangkan air teh dari gelas A ke gelas X (gelas A menjadi kosong) c. Tuangkan air kopi dari gelas B ke gelas A (gelas B menjadi kosong) d. Tuangkan air teh yang terdapat di gelas cadangan (gelas X) ke gelas B

Gambar 2.2. Proses penukaran isi gelas

Sumber: Ali Ridho Barakbah, dkk. Logika dan Algoritma. (Surabaya:

Politeknik Negeri Surabaya, 2013), hal. 3

(23)

Dari proses tersebut dapat dilihat bahwa proses yang dilakukan tersusun secara sistematis (berurutan) dan logis sehingga isi dari gelas bertukar. Inilah yang dikenal dengan algoritma.

2. Genetika

Genetika berasal dari bahasa Yunani “genno” yang berarti “melahirkan”.

Genetika merupakan suatu cabang dalam ilmu biologi yang mempelajari berbagai aspek mengenai pewarisan sifat dan variasi sifat pada organisme maupun sub organismu seperti virus. Dalam pengertian lain, genetika adalah cabang ilmu yang mempelajari tentang gen. Nama “genetika” awal mulanya diperkenalkan oleh William Bateson pada surat yang dikirimkan kepada Adam Chadwick dan digunakan pada Konferensi Internasioanl tentang Genetika ke- 3 tahun 1906.

Bidang yang dikaji dalam genetika dimulai dari molekuler hingga populasi. Secara lebih rinci, genetika menjelaskan mengenai:[11]

a. Material pembawa informasi yang diwariskan (genetik) b. Bagaimana informasi diekspresikan

c. Bagaimana informasi diwariskan dari satu individu ke individu lain

3. Algoritma Genetika

Algoritma genetika adalah algoritma pencarian (searching) yang

didasarkan atas mekanisme seleksi alami dan evolusi biologis. Algoritma

genetika menggabungkan antara deretan struktur dengan pertukaran informasi

acak ke bentuk algoritma pencarian dengan beberapa perubahan bakat pada

(24)

manusia. Pada setiap generasi, himpunan baru dari deretan individu dibuat berdasarkan kecocokan pada generasi sebelumnya.[12] Dalam arti lain, algoritma genetika adalah salah satu cabang algoritma evolusi (evolutionary algorithms), yaitu suatu teknik optimasi yang didasarkan pada genetika alami untuk menghasilkan suatu solusi optimal, algoritma genetika melakukan proses pencarian di antara sejumlah alternatif titik optimal berdasarkan fungsi-fungsi peluang.[7]

Yandra, dkk menjabarkan secara rinci bahwa algoritma genetika

merupakan suatu teknik pencarian (searching technique) dan teknik optimasi

yang meniru proses evolusi dan perubahan struktur genetik pada makhluk

hidup. Dalam seleksi alam, individu akan bersaing untuk mempertahankan

hidup dan melakukan reproduksi. Individu yang lebih “fit” akan mempunyai

peluang untuk terus bertahan hidup dan menghasilkan keturunan. Sebaliknya,

individu yang kurang “fit” akan mati. Dalam proses seleksi alam, beberapa

individu baru yang lebih “fit” dari kedua “parent” akan dilahirkan melalui

proses crossover dan mutasi. Proses seleksi dan reproduksi ini berlangsung

berulang kali sampai individu yang paling “fit” dihasilkan. Individu yang

paling fit inilah sebagai solusi dari masalah.[13] Jadi, algoritma genetika

merupakan suatu cabang ilmu dari algoritma evolusi yang melakukan teknik

optimasi berdasarkan genetika atau pewarisan sifat untuk menghasilkan suatu

solusi terbaik melalui berbagai alternatif dengan memanfaatkan aturan peluang

dalam matematika.

(25)

Algoritma genetika secara umum dapat diilustrasikan dalam diagram alir berikut ini:

Gambar 2.3. Model algoritma genetika

Sumber: Ni Luh Gede, dkk. Penerapan Algoritma Genetika Untuk Penjadwalan Mata Pelajaran. (2013, vol. 1, no. 3), hal. 223

Secara umum, struktur algoritma genetika yang akan diimplementasikan adalah sebagai berikut[14]:

a. Bangkitkan populasi awal

Proses ini merupakan proses yang digunakan untuk membangkitkan

populasi awal secara random sehingga didapatkan solusi awal. Populasi ini

sendiri terdiri atas sejumlah kromosom yang mempresentasikan solusi

yang diinginkan.

(26)

b. Evaluasi fitness

Proses ini merupakan proses untuk mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria berhenti. Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran performansinya. Di dalam evolusi alam, individu yang bernilai fitness rendah akan mati. Pada masalah optimasi, jika solusi yang dicari adalah memaksimalkan sebuah fungsi h (dikenal sebagai masalah maksimasi), maka nilai fitness yang digunakan adalah nilai dari fungsi h tersebut, yakni fitness f = h.

c. Seleksi

Proses seleksi merupakan proses untuk menentukan individu-individu mana saja yang akan dipilih untuk dilakukan crossover. Ada beberapa jenis metode seleksi yang biasa digunakan diantaranya yaitu metode yang menirukan permainan roulette-wheel dimana masing-masing kromosom menempati potongan lingkaran pada roda roulette secara proporsional sesuai dengan nilai fitnessnya. Seleksi rangking proses dimulai dengan merangking atau mengurutkan kromosom di dalam populasi berdasarkan fitnessnya kemudian memberi nilai fitness baru berdasarkan urutannya.

d. Crossover

Proses crossover ini merupakan proses untuk menambah

keanekaragaman string dalam satu populasi. Operator pindah silang

mempunyai peran yang paling penting dalam algoritma genetik karena

didalamnya terdapat proses perkawinan (persilangan) gen antara dua

(27)

individu (parent) yang menghasilkan dua individu baru (offspring) pada generasi berikutnya.

e. Mutasi

Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen dalam suatu kromosom. Mutasi menciptakan individu baru dengan melakukan modifikasi satu atau lebih gen dalam individu yang sama.

Mutasi berfungsi untuk menggantikan gen yang hilang dari populasi selama proses seleksi serta menyediakan gen yang tidak ada dalam populasi awal.

f. Kriteria berhenti

Kriteria berhenti merupakan kriteria yang digunakan untuk menghentikan proses algoritma genetika yang merupakan tujuan yang ingin dicapai dari proses tersebut.

g. Hasil

Hasil merupakan solusi optimum yang didapat dengan menggunakan algoritma genetika.

E. Alat Bantu Perancangan Sistem

1. Unified Modelling Language (UML)

Unified Modelling Language yang disingkat UML atau dalam bahasa

Indonesia dikenal dengan bahasa pemodelan terpadu adalah bahasa spesifikasi

standar yang dipergunakan untuk mendokumentasikan, menspesifikasikan dan

membangun perangkat lunak. UML merupakan metodologi dalam

mengembangkan sistem berorientasi objek dan juga merupakan alat untuk

(28)

mendukung pengembangan sistem.[15] UML mendefinisikan diagram- diagram diantaranya:

a. Use Case Diagram

Use case diagram adalah pemodelan untuk kelakuan atau tingkah laku (behavior) dari sistem informasi yang akan dibuat. Use case digunakan untuk mengetahui fungsi apa saja yang terdapat di dalam sistem dan siapa saja yang berhak menggunakan fungsi tersebut.[16] Dalam konteks UML, tahap konseptualisasi dilakukan dengan pembuatan use case diagram yang sesungguhnya merupakan deskripsi peringkat tinggi bagaimana perangkat lunak (aplikasi) akan digunakan oleh penggunanya. Selanjutnya, use case diagram tidak hanya sanga penting dalam tahap analisis, tetapi juga penting dalam perancangan (design), mencari kelas-kelas yang terlibat dalam aplikasi, dan untuk melakukan pengujian (testing).[17] Simbol- simbol yang digunakan dalam use case diagram yaitu:

Tabel 2.1. Use Case Diagram

Gambar Keterangan

Use Case menggambarkan fungsionalitas yang

disediakan sistem sebagai unit-unit yang bertukar pesan

antar unit dengan aktir, yang dinyatakan dengan

menggunakan kata kerja

(29)

Actor atau aktor adalah Abstraction dari orang atau sistem yang lain yang mengaktifkan fungsi dari target sistem. Untuk mengidentifikasikan aktir, harus ditentukan pembagian tenaga kerja dan tugas-tugas yang berkaitan dengan peran pada konteks target sistem. Orang atau sistem bisa muncul dalam beberapa peran. Perlu dicatat bahwa aktor berinteraksi dengan Use Case, tetapi tidak memiliki kontrol terhadap use case

Asosiasi antara aktor dan use case, digambarkan dengan garis tanpa panah yang mengindikasikan siapa atau apa yang meminta interaksi secara langsung dan bukannya mengindikasikan data.

Asosiasi antara aktor dan use case yang menggunakan panah terbuka untuk mengindikasikan bila aktor berinteraksi secara pasif dengan sistem

Include, merupakan di dalam use case lain (required) atau pemanggilan use case oleh use case lain, contohnya adalah pemanggilan sebuah fungsi program

Extend, merupakan perluasan dari use case lain jika kondisi atau syarat terpenuhi

Sumber: Ade Hendini. Pemodelan UML Sistem Informasi Monitoring

Penjualan dan Stok Barang. (2016, vol. 4, no. 2), hal. 108-109

(30)

Gambar 2.4. Contoh use case diagram

Sumber: Kishorekumar, redrawn by Marcel Douwe Dekker. Use case model restaurant business. (redrawn 2009), common.wikimedia.org

b. Activity Diagram

Activity diagram digunakan untuk memodelkan aspek dinamis dari

sistem. Activity diagram secara esensial mirip dengan diagram alir

(flowchart) yang menampilkan aliran kendali dari suatu aktivitas ke

aktivitas lainnya. Diagram ini diperlukan untuk menggambarkan apa yang

terjadi ketika aksi atau aktivitas dari suatu state diselesaikan. Diagram ini

merupakan diagram yang dekat dengan tahap implementasi dimana

nantinya bisa langsung diimplementasikan menjadi langkah-langkah

pemrograman.[18]

(31)

Tabel 2.2. Activity Diagram

Gambar Keterangan

Start Point, merupakan tanda yang berada pada sudut kiri atas yang merupakan tanda dari awal aktivitas End Point, tanda yang diposisikan di paling akhir sebagai tanda akhir dari aktivitas

Activities atau activity, menggambarkan suatu proses atau kegiatan yang ada

Fork atau percabangan, digunakan untuk menunjukkan kegiatan yang dilakukan secara paralel atau untuk memisahkan satu kegiatan menjadi dua Join atau penggabungan, atau dikenal juga dengan rake, digunakan untuk menunjukkan adanya dekomposisi

Decision Points, menjelaskan mengenai pilihan untuk pengambilan keputusan, true atau false (benar atau salah)

Swimlane, yaitu pembagian activity diagram untuk melambangkan siapa dan sedang melakukan apa Sumber: Ade Hendini. Pemodelan UML Sistem Informasi Monitoring

Penjualan dan Stok Barang. (2016, vol. 4, no. 2), hal. 109-110

(32)

Gambar 2.5. Contoh activity diagram

Sumber: Ade Hendini. Pemodelan UML Sistem Informasi Monitoring Penjualan dan Stok Barang. (2016, vol. 4, no. 2), hal. 112

c. Sequence Diagram

Sequence diagram menggambarkan kelakuan objek pada use case

dengan mendeskripsikan waktu hidup objek dan pesan yang dikirimkan

dan diterima antar objek. Oleh sebab itu, dalam menggambar sequence

diagram, harus diketahui objek-objek yang terlibat dalam sebuah use case

beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi

objek itu. Banyaknya sequence diagram yang harus digambar adalah

minimal sebanyak pendefinisian use case yang memiliki proses sendiri,

sehingga semakin banyak use case yang didefinisikan maka sequence

diagram yang harus dibuat juga semakin banyak.[16]

(33)

Tabel 2.3. Sequence Diagram

Gambar Keterangan

Entity Class, merupakan bagian dari sistem yang di dalamnya berisi kumpulan kelas berupa entitas- entitas sebagai gambaran awal sistem dan menjadi landasan untuk menyusun basis data

Boundary Class, merupakan kumpulan kelas yang menjadi tampilan atau interaksi antara satu atau lebih aktor dengan sistem, seperti tampilan form login dan form cetak

Control Class, merupakan objek yang di dalamnya terdapat logika aplikasi yang tidak memiliki tanggung jawab kepada entitas, seperti kalkulasi dan aturan bisnis yang melibatkan berbagai objek

Message, merupakan simbol mengirim pesan antar class

Recursive atau dikenal juga dengan message to self, merupakan simbol yang menggambarkan pengiriman pesan yang dikirim untuk dirinya sendiri

Activation, simbol ini mewakili sebuah eksekusi

operasi dari objek, panjang kotak ini berbanding

lurus dengan durasi aktivasi sebuah operasi

(34)

Lifeline, merupkan garis titik-titik yang terhubung dengan objek, di sepanjang lifeline terdapat activation. Bisa diartikan juga sebagai penghubung antar activation

Sumber: Ade Hendini. Pemodelan UML Sistem Informasi Monitoring Penjualan dan Stok Barang. (2016, vol. 4, no. 2), hal. 110

Gambar 2.6. Contoh sequence diagram

Sumber: Ade Hendini. Pemodelan UML Sistem Informasi Monitoring Penjualan dan Stok Barang. (2016, vol. 4, no. 2), hal. 114

d. Class Diagram

Class diagram merupakan hubungan antar kelas dan penjelasan detail

tiap-tiap kelas di dalam model desain dari suatu sistem, serta

memperlihatkan aturan-aturan dan tanggung jawab entitas yang

menentukan perilaku sistem. Class diagram juga menunjukkan atribut-

atribut dan operasi-operasi dari sebuah kelas dan constraint yang

berhubungan dengan objek yang dikoneksikan.[15] Kelas yang ada pada

(35)

struktur sistem harus dapat melakukan fungsi-fungsi sesuai dengan kebutuhan sistem sehingga pembuat perangkat lunak dapat membuat kelas-kelas di dalam program sesuai dengan perancangan class diagram.[16] Class diagram meliputi Kelas (Class), Relasi Associations, Generalitation dan Aggregation, Attribut (Attributes), Operasi (Operation atau method) dan Visibility, tingkat akses objek eksternal kepada suatu operasi atau attribut. Hubungan antar kelas mempunyai keterangan yang disebut dengan Multiplicity atau Cardinality.

Tabel 2.4. Class Diagram

Multiplicity Penjelasan

1 Satu dan hanya satu

0..* Boleh tidak ada atau 1 atau lebih 1..* 1 atau lebih

0..1 Boleh tidak ada, maksimal 1

n..n

Batasan antara. Contoh 2..4 mempunyai arti minimal 2 maksimal 4

Sumber: Ade Hendini. Pemodelan UML Sistem Informasi Monitoring

Penjualan dan Stok Barang. (2016, vol. 4, no. 2), hal. 111

(36)

Gambar 2.7. Contoh class diagram

Sumber: Ade Hendini. Pemodelan UML Sistem Informasi Monitoring Penjualan dan Stok Barang. (2016, vol. 4, no. 2), hal. 115

2. Teknologi Perancangan Sistem

a. HTML (Hyper Text Markup Language)

HTML (Hyper Text Markup Language) merupakan salah satu format

yang digunakan dalam pembuatan dokumen dan aplikasi yang berjalan di

halaman web. Oleh karena itu agar dapat membuat program aplikasi di atas

halaman web, maka harus mengenal dan menguasai HTML.[19] Secara

lengkap, HTML adalah bahasa pendeskripsi halaman yang menciptakan

dokumen-dokumen hypertext atau hypermedia. HTML memasukkan

kode-kode pengendali dalam sebuah dokumen pada berbagai poin yang

dapat dispesifikasikan serta menciptakan hubungan dengan bagian lain

dari dokumen tersebut atau dengan dokumen lain yang berada di World

(37)

Wide Web (WWW). Sebuah halaman web mempunyai minimal empat buah tag, yaitu:[20]

1) <HTML> sebagai tanda awal dokumen HTML.

2) <HEAD> sebagai informasi page header. Di dalam tag ini biasanya diletakkan tag title, base, link, script, sytle dan meta.

3) <TITLE> sebagai judul halaman. Kalimat yang terletak di dalam tag ini akan muncul pada bagian paling atas web browser.

4) <BODY> sebagai isi pada halaman web, dapat berupa teks, grafik, dan lain-lain.

b. PHP (PHP Hypertext Preprocessor)

PHP merupakan bahasa pemrograman yang berjalan dalam sebuah webserver dan berfungsi sebagai pengolah data pada sebuah server. Script pemrograman PHP terletak dan dieksekusi di server. Salah satunya adalah untuk menerima, mengolah serta menampilkan data dari dan ke situs web.[5] PHP dirancang secara khusus untuk penggunaan pada web dan merupakan tool untuk pembuatan halaman web dinamis. PHP adalah bahasa scripting yang menghasilkan keluaran (output) HTML ataupun output lain sesuai keinginan pemrogram yang dijalankan pada server side.

Artinya, semua sintaks yang dibuat akan sepenuhnya dijalankan pada server sedangkan yang dikirimkan ke browser hanya hasil (output).

PHP mempunyai beberapa keunggulan, yaitu:[20]

1) Cepat, karena ditempelkan (embedded) di dalam kode HTML

sehingga waktu tanggap menjadi pendek.

(38)

2) Gratis. Pada kenyataannya PHP adalah bahasa pemrograman gratis dan bisa didapatkan tanpa harus membayar.

3) Mudah untuk digunakan. PHP berisi beberapa fitur khusus dan fungsi yang dibutuhkan untuk membuat halaman web dinamis. Bahasa PHP dirancang untuk dimasukkan dengan mudah di dalam file HTML.

4) Berjalan pada beberapa sistem operasi. PHP berjalan pada sistem operasi yang beragam, seperti Windows, Linux, Mac OS dan lainnya.

5) Dukungan teknis tersedia secara luas.

6) Aman. Pengguna tidak melihat kode PHP, karena kode yang ditampilkan pada web browser adalah kode HTML.

7) Dirancang untuk mendukung database.

8) Customizable. Lisensi open source sehingga mengizinkan pada pemrogram untuk memodifikasi aplikasi PHP, menambahkan atau memodifikasi fitur-fitur yang dibutuhkan.

c. MySQL

MySQL merupakan salah satu jenis software database (basis data) yang banyak digunakan untuk mengelola basis data. Database bisa diartikan sebagai bagian yang mengandung fakta, baik fakta awal pada saat sistem mulai beroperasi maupun fakta yang didapatkan pada saat pengambilan kesimpulan dari proses yang sedang diberjalan.[21]

merupakan salah satu program yang dapat digunakan sebagai database,

dan merupakan salah satu aplikasi untuk database server yang banyak

digunakan. MySQL memiliki beberapa kelebihan, diantaranya:[5]

(39)

1) MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah.

2) MySQL memiliki kecepatan yang bagus dalam menangani query sederhana.

3) MySQL memiliki operator dan fugsi secara penuh dan mendukung perintah “select” dan “where” dalam perintah query.

4) MySQL memiliki keamanan yang bagus karena beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.

5) MySQL mampu menangani basis data dalam skala besar.

6) MySQL dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unix Socket, atau Named Pipes.

7) MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa.

8) MySQL dapat berjalan stabil pada berbagai sistem operasi.

9) MySQL didistribusikan secara open source di bawah lisensi GPL sehingga dapat digunakan secara gratis.

d. Codeigniter

Codeigniter merupakan salah satu dari sekian banyak framework untuk pengembangan aplikasi menggunakan bahasa pemrograman PHP.

Framework dalam arti bahasa Indonesia merupakan kerangka kerja yang

digunakan untuk mempermudah pekerjaan. Codeigniter sendiri berarti

sebuah web application framework yang bersifat open source dan

(40)

digunakan untuk membangun web dinamis. Tujuan utama pengembangan codeigniter adalah untuk membantu pengembang dalam mengerjakan aplikasi jauh lebih cepat daripada menulis semua kode program dari awal.

Codeigniter menyediakan berbagai library yang dapat mempermudah pengembang dalam mengembangkan suatu aplikasi web dinamis.[22]

Codeigniter mempunyai fitur-fitur yang sangat bermanfaat, antara lain:

1) Menggunakan pattern MVC (Model, View, Controller). Dengan adanya pattern ini, kode yang dihasilkan akan memiliki standar yang jelas dan lebih terstruktur.

2) URL Friendly. URL yang dihasilkan sangat frendly. Seperti dalam PHP biasa, pada akhir URL akan ada ekstensi “.html” ataupun “.php”

sebagai penanda format dari file yang dieksekusi. Tetapi pada codeigniter, hal tersebut tidak ada.

3) Kemudahan dalam membuat library dan helper, memodifikasi serta mengintegrasikannya.

Selain itu, codeigniter juga memiliki keunggulan-keunggulan, diantaranya:

1) Kecepatan. Berdasarkan hasil benchmark, codeigniter merupakan salah satu framework PHP tercepat yang ada saat ini.

2) Mudah dimodifikasi dan beradaptasi.

3) Dokumentasi lengkap dan jelas.

4) Sangat mudah dipelajari.

(41)

F. Penelitian Relevan

Penelitian yang relevan dengan masalah yang penulis teliti adalah penelitian dengan judul Penerapan Algoritma Genetika untuk Penjadwalan Mata Pelajaran oleh Ni Luh Gede Pivin Suwirmayanti, I Made Sudarsana, dan Suta Darmayasa dari STMIK STIKOM Bali pada tahun 2016 dengan studi kasus di SMP yang meliputi pembagian mata pelajaran, kelas dan guru yang masih menggunakan cara manual.[14]

Selain itu, terdapat penelitian dengan judul Optimasi Penjadwalan Asisten

Praktikum pada Laboratorium Pembelajaran Menggunakan Algoritma Genetika

oleh Nadia Natasa Tresia Sitorus, Imam Cholissodin, dan Budi Darma Setiawan

dari Universitas Brawijaya tahun 2018 studi kasus di Fakultas Ilmu Komputer

Universitas Brawijaya dengan masalah meliputi penjadwalan mengajar asisten

praktikum disusun berdasarkan jadwal praktikum yang telah ditentukan oleh

akademik dengan mempertimbangkan jadwal kegiatan lain asisten secara

manual.[9]

(42)

38

Penelitian dilaksanakan di Program Studi Pendidikan Teknik Informatika dan Komputer IAIN Bukittinggi. Pemilihan tempat penelitian ini dikarenakan atas dasar pertimbangan bahwa kondisi yang memungkinkann untuk dibuat sebuah program penjadwalan kuliah otomatis dengan menggunakan algoritma genetika agar dalam proses penjadwalan perkuliahan tidak perlu dilakukan secara manual lagi. Serta agar proses penjadwalan tidak memakan waktu yang lama.

Penelitian akan dilaksanakan pada bulan Maret sampai April 2020. Dari penelitian ini, penulis akan mengumpulkan data-data yang dibutuhkan untuk kemudian diolah sebagai bahan dalam pembuatan program penjadwalan kuliah ini.

B. Metode Penelitian

Dalam pengembangan program ini, diperlukan data yang nantinya akan diolah

sebagai bahan dalam pembuatan program. Maka dari itu, diperlukan suatu metode

untuk memperoleh data tersebut. Dalam penelitian ini, metode yang digunakan

adalah metode Penelitian dan Pengembangan (Research and Development). Secara

sederhana, Research and Development atau lebih dikenal dengan R&D

didefinisikan sebagai metode penelitian yang secara sengaja, sistematis, bertujuan

atau diarahkan untuk mencaritemukan, merumuskan, memperbaiki,

mengembangkan, menghasilkan, menguji keefektifan produk, model, metode, jasa,

(43)

prosedur tertentu yang lebih unggul, baru, efektif, efisien, produktif dan bermakna.[23]

Model pengembangan yang digunakan dalam penelitian Research and Development dalam proses ini adalah model ADDIE (Analyze, Design, Development, Implementation, Evaluation). Model ADDIE merupakan salah satu model desain pembelajaran sistematik.[24]

Gambar 3.1. Model ADDIE

Sumber: Branch (2009) dalam Wulan Sari. Pengembangan Modul Elektronik Berbasis 3D Pageflip Professional. (Jurnal EduFisika, vol. 2, no. 1), hal 40

Langkah-langkah dalam pengembangan menggunakan model ADDIE ini diantaranya:

1. Analyze (Analisis)

Tahap ini merupakan langkah awal dalam pengembangan produk.

Kegiatan ini menganalisis kebutuhan dan persyaratan yang diperlukan.

(44)

Keluaran dari tahapan ini adalah hal-hal dasar yang akan ada dalam produk nantinya.

2. Design (Perancangan)

Kegiatan dalam tahapan ini adalah pengembangan ide awal dan konsep desain atau blueprint dari produk yang akan dibuat.

3. Develop (Pengembangan)

Tahapan ini adalah proses mewujudkan ide awal atau blueprint yang telah didesain menjadi sebuah produk secara nyata.

4. Implement (Implementasi)

Pada tahap ini, produk hasil pengembangan akan diatur sedemikian rupa dan diterapkan serta diuji sesuai dengan fungsi yang telah ditetapkan.

5. Evaluate (Evaluasi)

Tahapan evaluasi digunakan untuk melihat produk yang dihasilkan berjalan sesuai dengan tujuan awal atau tidak serta untuk mengumpulkan data yang digunakan untuk penyempurnaan produk.

C. Model Pengembangan Sistem

Model pengembangan sistem yang diterapkan dalam penelitian ini adalah

model System Development Life Cycle (SDLC) atau dalam bahasa Indonesia

dikenal dengan Siklus Hidup Pengembangan Sistem. Dalam model SDLC,

penyusunan sistem yang dilakukan benar-benar baru atau yang sering terjadi yaitu

menyempurnakan yang telah ada sebelumnya.[25] SDLC adalah proses

mengembangkan atau mengubah suatu sistem software dengan menggunakan

model-model dan metodologi yang digunakan untuk mengembangkan sistem-

(45)

sistem software sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik).[16] SDLC ini juga memiliki model-model yang digunakan dalam proses pengembangan sistem. Dalam penelitian ini, akan digunakan model waterfall.

Model SDLC waterfall (air terjun) sering juga disebut dengan model sekuensial linier atau alur hidup klasik. Model ini menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengkodean, pengujian dan tahap pendukung.[16] Menurut Pressman, dalam model waterfall tersirat pendekatan yang sistematis dan berurutan dalam pengembangan sistem. Pengembangan ini dimulai dari penentuan spesifikasi kebutuhan dan berlanjut melalui tahapan-tahapan perencanaan (planning), pemodelan (modeling), konstruksi (construction), serta penyerahan sistem ke para pelanggan atau pengguna (deployment), yang diakhiri dengan dukungan berkelanjutan pada sistem yang dihasilkan.[26]

Gambar 3.2. Model Waterfall

Sumber: Roger S. Pressman. Rekayasa Perangkat Lunak Pendekatan Praktisi

Buku 1. (Yogyakarta: Andi, 2015), hal. 46

(46)

Berikut tahapan-tahapan dalam model waterfall:[26]

a. Communication

Tahapan pertama ini merupakan tahapan yang penting, karena pada tahapan ini akan dikumpulkan informasi-informasi mengenai kebutuhan pengguna serta mendefinisikan spesifikasi sistem secara rinci.

b. Planning

Setelah proses communication dilakukan, tahapan selanjutnya adalah merencanakan pengerjaan sistem yang meliputi tugas-tugas teknis yang akan dilakukan, resiko yang mungkin terjadi, sumber daya dan data yang dibutuhkan, jadwal pengerjaan serta hasil yang akan dibuat.

c. Modeling

Pada tahap ini, rencana yang telah ditetapkan sebelumnya diterjemahkan ke sebuah perancangan sistem sebelum proses pembuatannya. Proses ini berfokus pada perancangan struktur data, arsitektur sistem yang akan dibuat, tampilan (interfaces), serta detail prosedur yang ada dalam sistem.

d. Construction

Dalam tahap construction, proses coding akan dilakukan. Tahap ini

merupakan tahapan nyata dalam mengerjakan suatu sistem. Artinya,

penggunaan komputer akan dimaksimalkan dalam tahap ini. Setelah proses

coding selesai, maka akan dilakukan uji coba untuk menemukan kesalahan

(bug) terhadap sistem tersebut untuk kemudian bisa diperbaiki.

(47)

e. Deployment

Deployment merupakan tahapan akhir (final) dalam proses pengembangan sistem. Pada tahap ini data dapat dipastikan bahwa secara sistematik sistem informasi dapat diperbaiki dan dikembangkan.[27] Setelah proses pembuatan dan analisis terhadap sistem selesai, maka selanjutnya akan disalurkan dan digunakan oleh pengguna. Sistem yang telah dibuat akan dilakukan pemeliharaan (maintenance) secara berkala sesuai dengan kebutuhan.

D. Tahapan Penelitian

Dalam melaksanakan penelitian, tahapan-tahapan yang dilakukan penulis sesuaikan dengan model penelitian tipe ADDIE serta model pengembangan sistem tipe waterfall seperti yang telah dijelaskan sebelumnya. Tahapan tersebut diantaranya:

1. Analyze (Analisis)

Pada tahap ini, penulis menganalisis latar belakang dan merumuskan masalah. Selain itu juga dilakukan pencarian dan pengumpulan serta mempelajari literatur mengenai teori dan konsep yang mendukung pembuatan produk. Literatur yang digunakan berupa buku-buku referensi, jurnal, serta literatur lain yang berhubungan dengan PHP, MySQL, Codeigniter serta konsep-konsep lain yang berhubungan. Selanjutnya proses pengumpulan data- data terkait sebagai bahan untuk diolah menjadi sebuah produk.

2. Design (Perancangan)

Kegiatan yang dilakukan dalam tahapan ini adalah membuat gambaran

kasar hal-hal yang akan ada dalam produk serta persiapan alat-alat yang akan

(48)

digunakan dalam pengembangan produk seperti instalasi program-program pendukung. Berikut merupakan gambaran kasar alur sistem yang akan dibuat:

Gambar 3.3. Alur proses penjadwalan Dari gambaran alur tersebut, dapat dilihat bahwa:

a. Hal awal yang dilakukan adalah menginput jadwal bersedia mengajar oleh dosen yang akan mengajar serta penginputan komponen-komponen penjadwalan oleh kaprodi ke sistem penjadwalan

b. Selanjutnya sistem akan melakukan penjadwalan dengan mengacu dari komponen-komponen yang ada.

c. Jika dalam proses penjadwalan kriteria optimasi belum tercapai, maka akan dilakukan proses seleksi, crossover serta mutasi komponen- komponen penjadwalan yang ada.

d. Proses penjadwalan akan dilanjutkan dengan mengacu pada komponen yang telah diseleksi hingga kriteria optimasi tercapai.

e. Apabila kriteria optimasi dicapai, maka solusi optimum akan didapatkan

dan proses penjadwalan selesai serta akan digenerate menjadi sebuah

jadwal utuh.

(49)

3. Develop (Pengembangan)

Dalam melakukan pengembangan produk, penulis mengikuti tahapan- tahapan dari model pengembangan waterfall. Tahapan-tahapan tersebut antara lain:

a. Communication

Sebelum pengerjaan produk, akan dilakukan komunikasi antara pembuat sistem dengan pengguna untuk menentukan spesifikasi dari sistem yang akan dibuat secara rinci serta mengumpulkan informasi mengenai kebutuhan dari pengguna sistem nantinya.

b. Planning

Spesifikasi serta informasi yang telah dikumpulkan pada tahap sebelumnya akan dipelajari untuk selanjutnya direncanakan pengerjaan sistem yang meliputi tugas-tugas teknis yang akan dilakukan, resiko yang mungkin terjadi, sumber daya dan data yang dibutuhkan, jadwal pengerjaan serta hasil yang akan dibuat.

c. Modeling

Pada tahapan ini, kerangka atau rencana yang telah dirancang sebelumnya akan dibuat sebuah perancangan sistem yang berfokus pada perancangan struktur data, arsitektur sistem yang akan dibuat, tampilan (interfaces), serta prosedur yang ada dalam sistem.

d. Construction

Setelah rancangan sistem dibuat, proses selanjutnya adalah

pembuatan sistem yang telah direncanakan sebelumnya. Pada tahap ini,

(50)

penggunaan komputer akan dimaksimalkan, yang artinya tahap ini merupakan tahapan nyata dan penting dalam mengembangkan sistem.

Kemudian, sistem akan diuji coba untuk menemukan kesalahan untuk kemudian bisa diperbaiki.

e. Deployment

Tahapan ini merupakan tahapan terakhir dari proses pengembangan sistem. Setelah sistem selesai dibangun, maka akan disalurkan kepada pengguna untuk digunakan. Kemudian sistem yang telah dibangun akan dilakukan pemeliharaan secara berkala sesuai dengan kebutuhan.

4. Implement (Implementasi)

Produk hasil pengembangan akan diatur sedemikian rupa dan diterapkan serta diuji sesuai dengan fungsi yang telah ditetapkan.

5. Evaluate (Evaluasi)

Evaluasi dilakukan untuk melihat perkembangan dari produk, serta melakukan perawatan dari produk yang dijalankan. Di samping itu, akan dilakukan pembaruan-pembaruan yang diperlukan untuk kesempurnaan produk.

E. Uji Produk

Uji produk merupakan langkah-langkah yang diterapkan untuk menguji suatu

produk yang dihasilkan dengan tujuan menilai apakah produk tersebut sesuai

dengan standar yang telah ditetapkan. Uji produk terdiri dari uji validitas, uji

praktikalitas, dan uji efektifitas.

(51)

1. Uji Validitas

Aspek yang pertama kali diuji untuk menentukan kualitas dari suatu produk adalah validitas. Uji validitas dilakukan untuk menentukan apakah suatu produk yang dihasilkan dapat berjalan sesuai dengan fungsi dan tujuan yang telah ditetapkan di awal. Dalam artian, uji validitas ini dimaksudkan untuk menilai apakah suatu alat ukur dapat mengukur yang seharusnya diukur.

Uji validitas mengacu pada rumus Statistik Aiken’s V, yaitu:[28]

∑ 𝑠

[𝑛(𝑐 − 1)]

Keterangan:

s: r - lo

lo: Angka penilaian validitas yang terendah c: Angka penilaian validitas yang tertinggi r: Angka yang diberikan oleh seorang penilai n: Jumlah penilai

Selain itu, terdapat kategori dalam penentuan validitas dari formula

tersebut. Nilai validitas “V” yang diperoleh dari formula berada pada rentang

angka 0,00 sampai 1,00. Kategori penentuan validitas dari formula Aiken

menyatakan bahwa suatu produk valid apabila berada pada rentang angka 0,60

sampai 1,00 dan akan tidak valid apabila berada di bawah angka 0,60.

(52)

2. Uji Praktikalitas

Uji praktikalitas akan dilakukan apabila produk dinyatakan valid pada uji validitas. Uji praktikalitas digunakan untuk melihat suatu produk praktis atau tidak saat digunakan. Produk akan dikategorikan praktis apabila mudah dalam penggunaannya dan tidak berbelit-belit.

Cara menguji praktikalitas adalah dengan mengisi lembar penilaian mengenai sistem yang dibuat. Dalam lembar penilaian terdapat butir-butir yang berkaitan dengan kinerja sistem. Lembar penilaian ini nantinya akan diisi oleh orang-orang yang mencoba sistem nantinya. Lembar penilaian yang telah diisi akan dicari nilai praktikalitas dengan rumus sebagai berikut:[29]

𝑝 = 𝑠𝑘𝑜𝑟 𝑖𝑡𝑒𝑚 𝑦𝑎𝑛𝑔 𝑑𝑖𝑝𝑒𝑟𝑜𝑙𝑒ℎ

𝑠𝑘𝑜𝑟 𝑚𝑎𝑘𝑠𝑖𝑚𝑢𝑚 × 100%

Pengkategorian nilai “p” dari formula di atas dijelaskan pada tabel 3.1.

Tabel 3.1. Kategori uji praktikalitas Tingkat Pencapaian (%) Kateori

81 - 100 Sangat Praktis

61 - 80 Praktis

41 – 60 Cukup Praktis

21 – 40 Kurang Praktis

< 21 Tidak Praktis

Sumber: Eva Roliza, dkk. Praktikalitas Lembar Kerja Siswa pada Pembelajaran Matematika. (Jurnal Gantang, 2018, vol. 3, no. 1), hal. 43

3. Uji Efektifitas

Uji efektifitas dimaksudkan untuk melihat seberapa efektif sistem dalam

menyelesaikan masalah yang ada. Suatu sistem dapat dikatakan efektif apabila

(53)

dapat memenuhi semua tujuan dan fungsi yang telah ditetapkan dengan baik dan benar. Rumus yang digunakan dalam penentuan efektifitas ini mengacu pada rumus Momen Kappa, yaitu:[30]

𝑘 = 𝑝 − 𝑝

𝑒

1 − 𝑝

𝑒

Keterangan:

𝑘 = Moment kappa yang menunjukkan validitas produk.

𝑝 = Proporsi yang terealisasi, dihitung dengan cara jumlah nilai yang diberi oleh validator dibagi jumlah nilai maksimal.

𝑝

𝑒

= Proporsi yang tidak terealisasi, dihitung dengan cara jumlah nilai maksimal dikurangi dengan jumlah nilai total yang diberi validator dibagi jumlah nilai maksimal.

Kategori dari uji efektifitas ini dijelaskan dalam tabel 3.2.

Tabel 3.2. Kategori uji efektifitas

Nilai Kriteria

0,81 – 1,00 Sangat Tinggi

0,61 – 0,80 Tinggi

0,41 – 0,60 Sedang

0,21 – 0,40 Rendah

0,01 – 0,20 Sangat Rendah

Sumber: N. Dewara and M. Azhar. Validitas dan Praktikalitas Modul Larutan Penyangga Berbasis Guided Discovery. (EduKimia Journal, 2019),

hal. 17

Gambar

Gambar 2.4. Contoh use case diagram
Gambar 2.5. Contoh activity diagram
Gambar 3.3. Alur proses penjadwalan  Dari gambaran alur tersebut, dapat dilihat bahwa:
Gambar 4.2. Use Case Diagram sistem penjadwalan  Berdasarkan gambar use case diagram di atas, dapat dilihat  terdapat dua aktor
+7

Referensi

Dokumen terkait

Untuk menjalankan program PHP ini, komputer harus telah memiliki sebuah sistem yang telah terinstalasi dan terkonfigurasi dengan baik Apache Web Server, PHP, dan database

Tulisan ini membahas tentang salah satu metode simulasi yang dapat digunakan untuk menyelesaikan permasalahan tersebut, yaitu dengan menggunakan pendekatan Algoritma Genetik

Algoritma genetika cukup baik untuk digunakan dalam penjadwalan mata kuliah di sebuah perguruan tinggi dan merupakan salah satu jalan untuk memecahkan masalah yang cukup besar

Aplikasi ini dapat dikembangkan untuk menyelesaikan masalah penjadwalan asisten dengan menggunakan metode crossover dan mutasi yang berbeda, data yang digunakan dapat

Dengan demikian perlu adanya aplikasi yang dapat menyelesaikan permasalahan pengisian lirs yang masih secara manual dan aplikasi untuk membentuk jadwal mata

M : MySQL merupakan aplikasi database server, bahasa terstruktur yang digunakan untuk membuat dan mengelola database beserta isinya pengguna dapat memanfaatkan

Untuk alasan ini, yang terbaik adalah memiliki web server dan database server pada mesin yang berbeda, serta mengoptimalkan keamanan database server MySQL dengan menggunakan

Sedangkan Bahasa pemrogaman yang digunakan adalah Hypertext Preprocessor PHP dengan MySQL sebagai manajemen database-nya Pada pembuatan sistem ini dilakukan dengan pengujian blackbox