perpustakaan.uns.ac.id
digilib.uns.ac.id
PENGEMBANGAN APLIKASI UNTUK PENJADWALAN MATA KULIAH (STUDI KASUS : S1 TEKNIK INFORMATIKA FMIPA UNS)
TUGAS AKHIR
Diajukan untuk memenuhi salah satu syarat mencapai gelar Ahli Madya Program DIII Teknik Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sebelas Maret
Disusun oleh : YUNIKO DWI ANGGORO M3209091
PROGRAM DIPLOMA III TEKNIK INFORMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SEBELAS MARET 2012 commit to user i
perpustakaan.uns.ac.id
digilib.uns.ac.id
HALAMAN PERSETUJUAN
PENGEMBANGAN APLIKASI UNTUK PENJADWALAN MATA KULIAH (STUDI KASUS : S1 TEKNIK INFORMATIKA FMIPA UNS)
Disusun Oleh
YUNIKO DWI ANGGORO NIM. M3209091
Tugas Akhir ini telah disetujui untuk diuji oleh dewan penguji Tugas Akhir Program Diploma III Teknik Informatika pada hari Selasa tanggal 10 Juli 2012
Pembimbing
Ristu Saptono, S.Si, M.T NIP. 19790210 200212 1 001
commit to user ii
perpustakaan.uns.ac.id
digilib.uns.ac.id
HALAMAN PENGESAHAN PENGEMBANGAN APLIKASI UNTUK PENJADWALAN MATA KULIAH (STUDI KASUS : S1 TEKNIK INFORMATIKA FMIPA UNS) Disusun oleh : YUNIKO DWI ANGGORO NIM. M3209091 Di bimbing oleh Pembimbing Utama
Ristu Saptono, S.Si, M.T NIP. 19790210 200212 1 001
Tugas Akhir ini telah diterima dan disahkan Oleh dewan penguji Tugas Akhir Program Diploma III Teknik Informatika pada hari Selasa tanggal 10 Juli 2012 Dewan Penguji 1
Penguji 1 Ristu Saptono, S.Si, M.T NIP. 19790210 200212 1 001
2
Penguji 2 Agus Purbayu, S.Si NIDN. 0629088001
3
Penguji 3 Muh. A. Safi’ie, S.Si NIDN. 0603118103
(
)
(
)
(
)
Disahkan oleh Dekan Fakultas MIPA UNS
Ketua Program Studi DIII Ilmu Komputer UNS
Prof. Ir. Ari Handono Ramelan, M.Sc (Hons), Ph.D NIP. 19610223 198601 1 001 commit to user iii
Drs. YS. Palgunadi, M.Sc NIP. 19560407 198303 1 004
perpustakaan.uns.ac.id
digilib.uns.ac.id
ABSTRACT
Yuniko
Dwi
APPLICATION
Anggoro, FOR
M3209091,
SCHEDULING
2012,
DEVELOPMENT
COURSE
(CASE
OF
STUDY:
DEPARTMENT OF INFORMATICS ENGINEERING FMIPA UNS), Program Diploma III Informatics Engineering, Faculty of Mathematics and Natural Sciences, Sebelas March University Surakarta. Scheduling classes each semester is a complicated job because it must combine courses that are offered, the ability of lecturer, space, and is equipped with a number of rules that must be implemented. During this time at Department of Informatics Engineering Sebelas March University Surakarta scheduling is done manually with the condition have a lot of students, lecture space is limited, time is limited, and few number of lecturers, so it needs a lecture scheduling applications automatically. In this final task, the researcher tried to resolve the problem of scheduling lectures as a method using genetic algorithm optimization. There are many algorithms used for the preparation of a course scheduling algorithms one of which is rekursif algorithm. Using the data looping and random selection of data that already exists in the database. Keywords: scheduling courses, rekursif algorithm
commit to user iv
perpustakaan.uns.ac.id
digilib.uns.ac.id
ABSTRAK
Yuniko Dwi Anggoro, M3209091, 2012, PENGEMBANGAN APLIKASI UNTUK PENJADWALAN MATA KULIAH (STUDI KASUS : S1 TEKNIK INFORMATIKA FMIPA UNS), Program Diploma III Teknik Informatika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Sebelas Maret Surakarta. Penyusunan jadwal perkuliahan setiap semester adalah suatu pekerjaan yang rumit karena harus mengkombinasikan antara mata kuliah yang ditawarkan, waktu kesediaan dosen, ruangan, dan dilengkapi dengan sejumlah aturan yang harus dilaksanakan. Selama ini di Jurusan Teknik Informatika Universitas Sebelas Maret Surakarta penjadwalan perkuliahan dilakukan secara manual dengan kondisi memiliki banyak mahasiswa, ruang perkuliahan terbatas, waktu yang dibatasi, dan jumlah dosen yang masih sedikit, sehingga perlu adanya aplikasi penjadwalan perkuliahan secara otomatis. Pada tugas akhir ini, peneliti mencoba menyelesaikan masalah penjadwalan perkuliahan menggunakan Algoritma Genetika sebagai metode optimasinya. Ada banyak sekali Algoritma yang di gunakan untuk melakukan penyusunan penjadwalan mata kuliah salah satunya yaitu algoritma bersarang. Menggunakan perulangan data dan juga pemilihan secara acak dari data yang telah ada di database. Kata Kunci: penjadwalan kuliah, algoritma bersarang
commit to user v
perpustakaan.uns.ac.id
digilib.uns.ac.id
MOTTO
“Sesungguhnya Allah tidak mengubah keadaan sesuatu kaum hingga mereka mengubah keadaan yang ada pada mereka sendiri” (Ar-Rad :11)
commit to user vi
perpustakaan.uns.ac.id
digilib.uns.ac.id
PERSEMBAHAN
Wahai Dzat Yang Maha Memberi Manfaat, ini sedikit manfaat yang bisa saya berikan ...
Untuk Ayahku dan Ibuku sebagai orang tua terbaik dan nomor 1 di dunia untuk kakakku yang tak pernah lelah memberi semangat
commit to user vii
perpustakaan.uns.ac.id
digilib.uns.ac.id
KATA PENGANTAR
Dengan mengucapkan puji syukur kepada Allah SWT yang telah melimpahkan rahmat dan hidayah-Nya sehingga kesehatan, kelapangan, dan kesempatan diberikan kepada penulis untuk menyelesaikan laporan Tugas Akhir ini. Laporan ini disusun sebagai salah satu syarat kelulusan program pendidikan Diploma III Ilmu Komputer di Universitas Sebelas Maret. Dalam penulisan laporan ini, penulis banyak mendapatkan bantuan dari berbagai pihak. Oleh karena itu, penulis mengucapkan terima kasih atas tersusunnya laporan ini. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang mendalam kepada : 1. Bapak Y. S. Palgunadi, M.Sc. selaku Ketua Jurusan Program DIII Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sebelas Maret Surakarta. 2. Bapak Ristu Saptono selaku dosen pembimbing yang telah meluangkan waktunya untuk membimbing, memberi pengarahan, dan memberi dukungan moral yang sangat berharga kepada penulis dalam menyelesaikan laporan ini. 3. Segenap dosen DIII Teknik Informatika atas ilmu yang telah diberikan kepada penulis. 4. Teman-teman DIII Teknik Informatika 2009 atas bantuan yang telah diberikan kepada penulis. 5. Para pembaca yang budiman Akhir kata penulis berharap dengan laporan ini dapat memberikan manfaat bagi pembaca, khususnya bagi mahasiswa program studi Diploma III Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sebelas Maret. Terimakasih. Surakarta,
Juni 2012
Penulis
commit to user viii
perpustakaan.uns.ac.id
digilib.uns.ac.id
DAFTAR ISI
HALAMAN JUDUL................................................................................................ i HALAMAN PERSETUJUAN ......................................................................... ii HALAMAN PENGESAHAN .......................................................................... iii ABSTRACT ........................................................................................................... iv ABSTRAK ...............................................................................................................v MOTTO ................................................................................................................. vi PERSEMBAHAN ................................................................................................. vii KATA PENGANTAR ......................................................................................... viii DAFTAR ISI .......................................................................................................... ix DAFTAR TABEL ................................................................................................. xii DAFTAR GAMBAR ........................................................................................... xiii BAB I PENDAHULUAN ........................................................................................1 1.1.
Latar Belakang ......................................................................................... 1
1.2.
Perumusan Masalah .................................................................................. 2
1.3.
Batasan Masalah ....................................................................................... 2
1.4.
Tujuan ....................................................................................................... 2
1.5.
Manfaat ..................................................................................................... 3
1.6.
Metodologi Penelitian .............................................................................. 3
1.7.
Sistematika Penulisan ............................................................................... 4
BAB II LANDASAN TEORI ..................................................................................6 2.1
Penjadwalan .............................................................................................. 6
2.2
Object Oriented Programing dengan PHP ............................................... 6
2.2.1
Objek ................................................................................................. 7
2.2.2
Class .................................................................................................. 7
2.3
Rekayasa Perangkat Lunak....................................................................... 7
2.4
Framework ............................................................................................... 8
2.5
Database Management System (DBMS) .................................................. 9 commit to user Unified Modelling Language .................................................................. 11
2.6
ix
perpustakaan.uns.ac.id
digilib.uns.ac.id
2.6.1
Use Case Diagram........................................................................... 12
2.6.2
Activity Diagram.............................................................................. 13
2.6.3
Class Diagram ................................................................................. 13
2.6.4
Sequence Diagram ........................................................................... 13
2.7
Flowchart ............................................................................................... 16
2.7.1
Simbol-simbol Flowchart ................................................................ 16
BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN.............................17 3.1
Lingkungan Implementasi ...................................................................... 17
3.2
Deskripsi Sistem ..................................................................................... 17
3.3
Analisis Kebutuhan ................................................................................ 18
3.3.1
Kebutuhan Fungsional .................................................................... 18
3.3.2
Kebutuhan Non Fungsional............................................................. 19
3.4
Perancangan Sistem ................................................................................ 19
3.4.1
Pemodelan Use Case ....................................................................... 19
3.4.2
Activity Diagram ............................................................................. 22
3.4.3
Class Diagram Tahap Analisis ....................................................... 26
3.4.4
Sequence Diagram .......................................................................... 29
3.4.5
Class Diagram ................................................................................ 34
3.4.6
Flowchart Proses Penjadwalan ....................................................... 36
3.5
Desain Interface ..................................................................................... 37
BAB IV IMPLEMENTASI ...................................................................................39 4.1
Implementasi Sistem .............................................................................. 39
4.1.1
Tampilan Halaman Login ............................................................... 39
4.1.2
Halaman Input Mata Kuliah ............................................................ 39
4.1.3
Halaman Input Ruang Kuliah.......................................................... 40
4.1.4
Halaman Input Hari dan Waktu Kuliah .......................................... 40
4.1.5
Halaman Input Dosen ...................................................................... 41
4.1.6
Halaman Penugasan Dosen ............................................................. 41
4.1.7
Halaman Input Waktu Berhalangan Mengajar ................................ 42
4.1.8
Halaman Generate Jadwal ............................................................... 42 commit to user Halaman View Jadwal ..................................................................... 43
4.1.9
x
perpustakaan.uns.ac.id
digilib.uns.ac.id
BAB V KESIMPULAN DAN SARAN .................................................................44 5.1
Kesimpulan ............................................................................................. 44
5.2
Saran ....................................................................................................... 44
DAFTAR PUSTAKA ............................................................................................45 LAMPIRAN ...........................................................................................................46
commit to user xi
perpustakaan.uns.ac.id
digilib.uns.ac.id
DAFTAR TABEL
Tabel 2.1 Simbol Use Case (Rosa, 2010) ..............................................................12 Tabel 2.2 Simbol Activity Diagram (Rosa,2010) ...................................................13 Tabel 2.3 Simbol Class Diagram (Rosa, 2010) .....................................................14 Tabel 2.4 Simbol Sequence Diagram (Pender, 2002) ............................................15 Tabel 2.5 Simbol Flowchart (Kristanto, 2003) ......................................................16 Tabel 3.1 Kebutuhan fungsional sistem .................................................................18 Tabel 3.2 Kebutuhan non fungsional sistem ..........................................................19 Tabel 3.3 Deskripsi Aktor ......................................................................................19 Tabel 3.4 Hak dan Kewajiban Aktor......................................................................20 Tabel 3.5 Deskripsi Use Case ................................................................................20
commit to user xii
perpustakaan.uns.ac.id
digilib.uns.ac.id
DAFTAR GAMBAR
Gambar 3.1 Use Case Diagram Aplikasi Penjadwalan Mata Kuliah ....................21 Gambar 3.2 Activity Diagram Authentication User ...............................................22 Gambar 3.3 Activity Diagram Input Mata Kuliah ..................................................22 Gambar 3.4 Activity Diagram Input Ruang Kuliah ...............................................23 Gambar 3.5 Activity Diagram Input Hari dan Slot Waktu .....................................23 Gambar 3.6 Activity Diagram Input Dosen ...........................................................24 Gambar 3.7 Activity Diagram Penugasan Dosen Terhadap Mata Kuliah ..............24 Gambar 3.8 Activity Diagram Input Waktu Dosen ................................................25 Gambar 3.9 Activity Diagram Alur Algoritma ......................................................25 Gambar 3.10 Activity Diagram Lihat Jadwal .........................................................25 Gambar 3.11 Class Diagram Login .......................................................................26 Gambar 3.12 Class Diagram Kelola Mata Kuliah .................................................26 Gambar 3.13 Class Diagram Kelola Ruangan .......................................................26 Gambar 3.14 Class Diagram Kelola Waktu Kuliah ..............................................27 Gambar 3.15 Class Diagram Kelola Dosen ...........................................................27 Gambar 3.16 Class Diagram Kelola Penugasan Dosen.........................................28 Gambar 3.17 Class Diagram Kelola Waktu Dosen ...............................................28 Gambar 3.18 Class Diagram Kelola Jadwal ..........................................................29 Gambar 3.19 Sequence Diagram Kelola Jadwal....................................................29 Gambar 3.20 Sequence Diagram Kelola Mata Kuliah...........................................30 Gambar 3.21 Sequence Diagram Kelola Ruangan ................................................31 Gambar 3.22 Sequence Diagram Kelola Waktu Kuliah ........................................32 Gambar 3.23 Sequence Diagram Kelola Dosen ....................................................33 Gambar 3.24 Class Diagram Login .......................................................................34 Gambar 3.25 Class Diagram Kelola Mata Kuliah .................................................34 Gambar 3.26 Class Diagram Kelola Ruangan .......................................................35 Gambar 3.27 Class Diagram Kelola Waktu Kuliah ..............................................35 Gambar 3.28 Class Diagram Kelola Dosen ...........................................................36 commit to user Gambar 3.29 Flowchart Proses Penjadwalan ........................................................36 xiii
perpustakaan.uns.ac.id
digilib.uns.ac.id
Gambar 3.30 Halaman Login .................................................................................37 Gambar 3.31 Halaman Utama ................................................................................37 Gambar 4.1 Halaman Login ...................................................................................39 Gambar 4.2 Halaman Tambah Mata Kuliah ..........................................................39 Gambar 4.3 Halaman Tambah Ruang Kuliah ........................................................40 Gambar 4.4 Halaman Tambah Hari dan Waktu Kuliah .........................................40 Gambar 4.5 Halaman Tambah Dosen ....................................................................41 Gambar 4.6 Halaman Penugasan Dosen ................................................................41 Gambar 4.7 Halaman Input Waktu Berhalangan Mengajar ...................................42 Gambar 4.8 Halaman Generate Jadwal ..................................................................42 Gambar 4.9 Halaman View Jadwal ........................................................................43
commit to user xiv
perpustakaan.uns.ac.id
digilib.uns.ac.id
BAB I PENDAHULUAN
1.1. Latar Belakang Penjadwalan mata kuliah merupakan suatu kegiatan perodik yang dilakukan oleh setiap institusi pendidikan dan universitas. Penjadwalan mata kuliah bertujuan untuk mengatur perkuliahan agar tidak terjadi bentrokan antara jadwal mata kuliah yang satu dengan yang lain. Ditambah lagi terjadinya pergantian jadwal yang mengakibatkan bertambahnya bentrokan yang terjadi pada mahasiswa. Oleh karena itu di setiap institusi pendidikan dan universitas di butuhkan penjadwalan mata kuliah yang baik. Untuk membuat jadwal mata kuliah yang baik kita harus memperhatikan berbagai aspek yang mempengaruhi penjadwalan mata kuliah ini. Dari aspek mahasiswa, kita perlu perhatikan ada atau tidaknya bentrokan pada mata kuliah yang diambil oleh mahasiswa, selain dilihat dari aspek mahasiswa, kita juga harus melihat dari aspek dosen, yaitu kemungkinan dosen akan mengampu lebih dari satu mata kuliah yang ada, sebab ada kemungkinan jumlah mata kuliah dan jumlah dosen tidak sebanding, sehingga harus dipikirkan juga solusi agar dosen tidak mengampu dua mata kuliah berbeda pada hari dan jam yang sama. Selain itu, harus dipertimbangkan juga ketersediaan kelas sehingga kegiatan belajar dapat dilaksanakan. Di samping aspek-aspek di atas, dalam penyusunan jadwal mata kuliah ini pun terdapat sangat banyak kemungkinan yang selayaknya dicoba untuk menemukan penjadwalan yang terbaik. Karena itu dibutuhkan aplikasi penjadwalan yang baik untuk penjadwalan mata kuliah ini. Dari latar belakang yang telah disebutkan di atas, maka dalam tugas akhir ini akan membuat aplikasi untuk penjadwalan mata kuliah. Diharapkan dengan adanya aplikasi untuk penjadwalan mata kuliah ini dapat menghasilkan kombinasi yang baik untuk pasangan mata kuliah dan dosen pengajar secara keseluruhan, tidak ada permasalahan bentrokan jadwal pada sisi mahasiswa, serta ketersediaan commit to user ruang yang cukup dan sesuai secara fasilitas untuk seluruh mata kuliah yang ada. 1
perpustakaan.uns.ac.id
digilib.uns.ac.id 2
1.2. Perumusan Masalah Berdasarkan latar belakang masalah tersebut maka dapat diuraikan perumusan masalah yaitu bagaimana membuat aplikasi layanan informasi jadwal mata kuliah serta cara penyusunan kombinasi jadwal mata kuliah yang efektif.
1.3. Batasan Masalah Batasan masalah dalam tugas akhir ini adalah: a.
Sistem ini hanya dapat melakukan penjadwalan mata kuliah untuk satu jurusan.
b.
Semua dosen dianggap dosen S1 Teknik Informatika.
c.
Jadwal tidak bisa berubah apabila sistem telah menghasilkan jadwal.
d.
Sistem ini berbasis web yang dimasukkan dalam sebuah web server dan dapat diakses dengan browser internet.
1.4. Tujuan Tujuan dari penulisan tugas akhir ini adalah: a.
Menemukan solusi untuk mengatasi masalah terstruktur yang timbul dari mata kuliah, dosen, mahasiswa, dan ruangan kuliah agar dapat dialokasikan pada slot waktu dalam membangun jadwal mata kuliah.
b.
Membangun sistem pendukung keputusan penjadwalan mata kuliah dengan model pemrograman PHP.
c.
Membuat sebuah aplikasi untuk penjadwalan mata kuliah yang dapat membantu mempermudah dan mempercepat proses penyusunan kombinasi jadwal mata kuliah yang efektif dengan hasil optimal untuk mahasiswa dan dosen.
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 3
1.5. Manfaat Kegunaan dari program ini adalah untuk mempercepat proses penyusunan kombinasi jadwal mata kuliah yang efektif dengan hasil optimal untuk mahasiswa dan dosen agar tidak terjadi bentrokan antara jadwal mata kuliah yang satu dengan yang lain pada sebuah institusi pendidikan atau universitas.
1.6. Metodologi Penelitian Tugas akhir ini akan dikerjakan dengan metodologi sebagai berikut: 1. Pengumpulan Data Pengumpulkan
data-data
yang
dibutuhkan
untuk
menganalisa
permasalahan serta sebagai bahan untuk pembangunan Aplikasi Penjadwalan Mata Kuliah FMIPA UNS. 2. Analisis Kebutuhan dan Perancangan Sistem Melakukan
analisa
terhadap
data-data
yang
diperoleh
untuk
nantinya sebagai acuan dalam merancang sistem aplikasi. Dalam metode kali ini, dilakukan pula perancangan desain sistem yang akan dibuat nantinya. 3. Implementasi Sistem Aplikasi Dari rancangan yang telah dibuat, selanjutnya mengimplementasikan melalui pembuatan sistem, yaitu dengan menuliskan kode program sesuai tahapan-tahapan yang ada pada perancangan. 4. Pengujian dan Evaluasi Sistem Aplikasi Pengujian terhadap sistem yang telah dibuat untuk mengevaluasi hasilnya dari sistem tersebut, serta melakukan error handling apabila terdapat error pada sistem untuk dibenahi. 5. Penyusunan Laporan Dari hasil pengumpulan data, analisa kebutuhan dan perancangan sistem serta pengujian sistem aplikasi pada akhirnya dipakai sebagai bahan penyusunan laporan.
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 4
1.7. Sistematika Penulisan Dalam penulisan tugas akhir ini, sistematika penulisan dibagi menjadi lima bab yaitu : Bab I Pendahuluan, berisikan penjelasan mengenai latar belakang, perumusan masalah, batasan masalah, tujuan, manfaat, metodologi penelitian, serta sistematika penelitian yang digunakan untuk menyusun laporan. Bab II Landasan Teori, berisikan dasar teori yang digunakan dalam analisis, perancangan dan implementasi tugas akhir. Bab III Analisis Kebutuhan dan Perancangan, berisikan analisis terhadap masalah serta perancangan sistem pendukung keputusan yang akan dibangun sebagai dasar dalam tahap implementasi sistem. Bab IV Implementasi, berisikan implementasi dari sistem berdasarkan perancangan yang telah dilakukan serta melakukan pengujian sistem. Bab V Penutup, berisi kesimpulan dan saran yang didapatkan selama penulisan tugas akhir.
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id
BAB II LANDASAN TEORI
2.1
Penjadwalan Penjadwalan (Teddy, 2009) merupakan proses untuk menyusun suatu
jadwal atau urutan proses yang diperlukan dalam sebuah persoalan. Dalam penjadwalan kuliah, akan dibahas tentang pembagian jadwal untuk tiap mahasiswa pada kuliah tertentu sekaligus dosen pengajarnya, dalam penjadwalan pelajaran sekolah akan dibahas tentang pembagian jadwal pelajaran untuk tiaptiap kelas yang ada beserta guru pengajar pelajaran tersebut, dalam penjadwalan ujian akan dibahas pengaturan dosen yang menjaga ujian dan mahasiswa atau murid yang menempati ruang ujian yang ada. Proses tersebut tentu saja dibuat berdasarkan permasalahan yang ada. Beberapa proses umum ynag perlu dilakukan untuk menyelesaikan suatu proses penjadwalan menurut Research Group – Computer Science (BGU) adalah: 1. Mendefinisikan atau membuat model dari permasalahan. Model yang dibuat mencakup proses apa saja yang akan dikerjakan dalam persoalan penjadwalan yang ada. Atau lebih jelasnya jadwal apa saja yang akan dibuat. 2. Mendesign metode penyelesaian untuk permasalahan penjadwalan tersebut. Dari model yang telah ada, ditentukan metode yang akan digunakan untuk menyelesaikan permasalahan penjadwalan tersebut. Mencari bermacam-macam contoh permasalahan penjadwalan yang telah dibuat. Dalam proses ini dilakukan pencarian penyelesaian penjadwalan yang pernah digunakan agar dapat dipakai sebagai referensi dalam proses yang sedang dilakukan.
2.2
Object Oriented Programing dengan PHP Object Oriented Programming (OOP) (Rosa, 2010) merupakan paradigma
pemrograman yang berorientasikan kepada obyek. Semua data dan fungsi pada to user atau obyek-obyek. Bandingkan paradigma ini dibungkus dalamcommit kelas-kelas 6
perpustakaan.uns.ac.id
digilib.uns.ac.id 7
dengan logika pemrograman terstruktur, setiap obyek dapat menerima pesan, memproses data, dan mengirim pesan ke obyek lainnya. OOP diciptakan untuk mengatasi keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah semua pemecahan masalah dibagi ke dalam obyek. Dalam konsep OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai obyek. 2.2.1 Objek Sederhananya, sebuah obyek adalah kumpulan dari variabel dan fungsi yang dibungkus menjadi satu entitas. Entitas tersebut dapat berupa variabel biasa. Sebuah obyek diciptakan melalui sebuah kelas atau dengan istilah instance of class. Obyek memiliki 2 elemen utama: 1. Attributes atau Properties: Yaitu nilai-nilai yang tersimpan dalam objek tersebut dan secara langsung maupun tidak langsung menentukan karakteristik dari obyek tersebut. 2. Method: Yaitu suatu aksi yang akan dijalankan atau dikerjakan oleh obyek tersebut. 2.2.2 Class Class dapat didefinisikan sebagai struktur data atau cetak biru dari suatu obyek. Lebih jelasnya adalah sebuah bentuk dasar atau blueprint yang mendefinisikan variabel, method umum pada semua obyek. Obyek sendiri adalah kumpulan variabel dan fungsi yang dihasilkan dari template khusus atau disebut class. Obyek adalah elemen pada saat run-time yang akan diciptakan, dimanipulasi, dan dibuang/di-destroy ketika eksekusi. Adapun class merupakan definisi statik dari himpunan obyek yang mungkin diciptakan sebagai instantiasi dari class.
2.3
Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak (Sommerville, 2003) adalah disiplin ilmu yang
membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi system sampai pemeliharaan system setelah digunakan. Secara umum, commit to user yang sistematis dan terorganisir perekayasa perangkat lunak memakai pendekatan
perpustakaan.uns.ac.id
digilib.uns.ac.id 8
terhadap pekerjaan mereka karena cara ini seringkali paling efektif untuk menghasilkan perangkat lunak berkualitas tinggi. Namun demikian, rekayasa ini sebenarnya mencakup masalah pemilihan metode yang paling sesuai untuk satu set keadaan dan pendekatan yang lebih kreatif, informal terhadap pengembangan yang mungkin efektif pada beberapa keadaan. Model proses perangkat lunak merupakan deskripsi yang disederhanakan dari proses perangkat lunak yang dipresentasikan dengan sudut pandang tertentu. Model, sesuai sifatnya, merupakan penyederhanaan, sehingga model proses perangkat lunak merupakan abstraksi dari proses sebenarnya yang dideskripsikan. Model proses bias mencakup kegiatan yang merupakan bagian dari proses perangkat lunak, produk perangkat lunak, dan peran orang yang terlibat pada rekayasa perangkat lunak. Beberapa contoh jenis model proses perangkat lunak yang dapat dihasilkan di antaranya : 1. Model aliran kerja (work flow). Model ini menunjukkan urutan kegiatan pada proses bersama dengan input, output, dan ketergantungan. Kegiatan pada model ini mempresentasikan pekerjaan manusia. 2. Model aliran data (data flow) atau kegiatan. Model ini merepresentasikan proses sebagai satu set kegiatan yang masing-masing melakukan transformasi data. Model ini menunjukkan bagaimana input ke proses, misalnya spesifikasi, ditransformasi menjadi output, misalnya desain. Kegiatan di sini mungkin berada pada tingkat yang lebih rendah dari pada kegiatan pada model aliran kerja. Model ini merepresentasikan transformasi yang dilakukan oleh orang atau komputer. Model peran/aksi. Model ini merepresentasikan peran orang yang terlibat pada proses perangkat lunak dan kegiatan yang menjadi tanggung jawab mereka.
2.4
Framework Framework (Wardana, 2010) adalah kumpulan perintah atau fungsi dasar
yangmembentuk aturan-aturan tertentu dan saling berinteraksi satu sama lain sehingga dalam pembuatan aplikasi harus mengikuti aturan yang sudah ditentukan commit to userkoleksi atau kumpulan potongantersebut. Framework dapat diartikan sebagai
perpustakaan.uns.ac.id
digilib.uns.ac.id 9
potongan program yang disusun atau diorganisasikan sedemikian rupa, sehingga dapat digunakan untuk membantu membuat aplikasi utuh tanpa harus membangundari awal. Oleh sebab itu, dengan menggunakan framework dapat memberikan keuntungan berupa efisiensi waktu dan kemudahan dalam pembuatan program. Kelebihan dari menggunakan framework adalah. 1. Waktu pembuatan aplikasi jauh lebih singkat. 2. Kode aplikasi menjadi lebih mudah dibaca, karena sedikit dan sifatnya pokok. Detailnya adalah kode dari framework itu sendiri yang sudah terjamin. 3. Aplikasi menjadi lebih mudah untuk diperbaiki, karena tidak perlu fokus kesemua komponen kode, terutama kode sistem framework tersebut. 4. Tidak perlu membuat kode penunjang aplikasi seperti koneksi database, form, GUI, keamanan dan lain sebagainya karena sudah disediakan oleh framework. 5. Pemrograman menjadi lebih terfokus pada alur aplikasi seperti apa yang akan ditampilkan dan layanan apa saja yang akan diberikan oleh aplikasi. 6. Jika proyek dikerjakan secara team work, maka akan lebih terarah karena sistem framework mengharuskan adanya keteraturan peletakan kode. Sehingga tim hanya akan berfokus pada bidang kerjanya masing-masing. Yii (Huraira, 2012) merupakan salah satu framework (kerangka kerja) PHP berbasis-komponen, berkinerja tinggi untuk pengembangan aplikasi Web berskala-besar. Yii menyediakan reusability maksimum dalam pemrograman Web dan mampu meningkatkan kecepatan pengembangan secara signifikan. Nama Yii (dieja sebagai /i:/) singkatan dari "Yes It Is!".
2.5
Database Management System (DBMS) Kumpulan file yang saling berkaitan bersama dengan program untuk
pengelolaannya disebut sebagai DBMS. Database adalah kumpulan datanya, sedang program pengelolaannya berdiri sendiri dalam satu paket program komersial untuk membaca data, mengisi data, menghapus data, melaporkan data commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 10
dalam database (Kristanto, 2003). DBMS dikelompokkan menjadi dua bagian, yaitu. 1. RDBMS (Relational Database Management System), adalah perangkat lunak yang didesain untuk mengatur/memanajemen sebuah basisdata sebagai sekumpulan data yang disimpan secara terstruktur, dan melakukan operasi-operasi atas data atas permintaan penggunanya. Karasteristik dari RDBMS adalah : a. Menyediakan operator relasional untuk memanipulasi data dalam bentuk tabular. b. Menyajikan data pada pengguna dalam bentuk relasional. Contoh dari RDBMS adalah MySQL, MsQL, Microsoft SQL Server, Interbase. 2. ORDBMS
(Object
Relational
Database
Management
System),
merupakan database sistem yang akan menggabungkan antara fitur pada model objek dan fitur yang ada pada model relasional, yaitu menerapkan konsep pada pemrograman berdasar objek sebagai perluasan dari model relasional, sehingga pada ORDBMS ini mempunyai integrity constraint yang tetap terjaga dan mendukung untuk data yang kompleks. Selain itu, penerapan model objek yang reusable dapat mempermudah pembuatan aplikasi basis data (Shalahuddin, 2005). Contoh dari ORDBMS adalah PostgreSQL, Oracle. PostgreSQL atau sering disebut Postgres merupakan salah satu dari sejumlah database besar yang menawarkan skalabilitas, keluwesan, dan kinerja yang tinggi. Penggunaannya begitu meluas di berbagai platform dan didukung oleh banyak bahasa pemrograman. Bagi masyarakat TI (teknologi informasi) di Indonesia, Postgres sudah digunakan untuk berbagai aplikasi seperti web, billing system, dan sistem informasi besar lainnya. Karakteristik PostgreSQL antara lain : 1. PostgreSQL adalah sebuah object-relational database management system (ORDBMS) 2. Bersifat open source 3. Mendukung standar SQL92 dan SQL99 commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 11
4. Mendukung bahasa pemrograman C, C++, Java, Tcl, Perl, Python, PHP, dst.
2.6
Unified Modelling Language Unified Modelling Language (Pender, 2002) adalah standar untuk
menciptakan model yang mewakili perangkat lunak berorientasi objek dan sistem bisnis. UML memiliki standarisasi notasi tetapi tidak mendikte bagaimana menerapkan notasi. UML mencakup spesifikasi untuk sembilan diagram berbeda yang digunakan untuk berbagai dokumen perspektif dari solusi perangkat lunak dari awal proyek sampai instalasi dan pemeliharaan mikrofinansial. Salah satu cara untuk mengatur diagram UML adalah dengan menggunakan view. View adalah kumpulan diagram yang menggambarkan aspek yang sama dari proyek. View mempunyai 3 pelengkap, yaitu Static View, Dynamic View, dan Functional View. 1. Static View termasuk diagram yang memberikan gambaran dari unsurunsur dari sistem tetapi tidak memberitahu bagaimana elemen akan berperilaku. Hal ini sangat mirip Blueprint. Blueprint itu komprehensif, tetapi mereka hanya menunjukkan apa yang tetap diam, maka disebut Static View. Static View dibentuk oleh dua diagram, yaitu Class Diagram dan Object Diagram. 2. Dynamic View meliputi diagram yang mengungkapkan bagaimana benda berinteraksi dengan satu sama lain dalam respon terhadap lingkungan. Ini termasuk Sequence Diagram dan Collaboration Diagram, yang kolektif disebut sebagai diagram interaksi. Mereka secara khusus dirancang untuk menjelaskan bagaimana benda berbicara satu sama lain. Ini juga mencakup Statechart Diagram, yang menunjukkan bagaimana dan mengapa perubahan objek dari waktu ke waktu dalam menanggapi lingkungan. 3. Functional View terbentuk oleh Use Case Diagram dan Activity Diagram.
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 12
2.6.1 Use Case Diagram Menggambarkan fitur di mana pengguna mengharapkan sistem untuk menyediakan. Lima elemen pemodelan yang membentuk Use Case Diagram: system, actor, Use Case, association, dan dependency.
Simbol Aktor
Tabel 2.1 Simbol Use Case (Rosa, 2010) Deskripsi Aktor merupakan orang atau aplikasi lain yang berinteraksi dengan aplikasi yang akan dibuat di luar aplikasi yang akan dibuat itu sendiri.
Use case
Use
case
merupakan
fungsi/proses
yang
disediakan aplikasi sebagai unit-unit yang saling bertukar pesan/berinteraksi antar unit atau aktor. Asosiasi
Asosiasi merupakan komunikasi antara actor dan use case yang berpartisipasi pada use case atau use case memiliki interaksi dengan aktor.
Ekstensi
Ekstensi
merupakan
hubungan
use
case
<<extends>>
tambahan kesebuah use case dimana use case yang ditambahkan dapat berdiri sendiri walau tanpa use case itu.
Generalisasi
Generalisasi merupakan hubungan generalisasi dan spesialisasi (umum khusus) antara dua buah use case dimana fungsi yang satu adalah fungsi yang lebih umum dari fungsi yang lainnya.
Include
Include merupakan hubungan use case tambahan
<
>
kesebuah use case dimana use case yang ditambahkan memerlukan use case ini untuk menjalankan fungsinya atau sebagai syarat dijalankan use case ini.
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 13
2.6.2 Activity Diagram Diagram ini menggambarkan proses yang termasuk tugas berurutan, logika kondisional, dan konkurensi. Diagram ini adalah seperti flowchart, tetapi telah ditingkatkan untuk digunakan dengan pemodelan objek. Tabel 2.2 Simbol Activity Diagram (Rosa,2010) Simbol Keterangan Titik Awal Titik Akhir Activity Pilihan untuk pengambilan keputusan Fork; Untuk menunjukkan kegiatan yang dilakukan secara paralel Rake; menunjukkan adanya dekomposisi Tanda Waktu Tanda Penerimaan Aliran Akhir (Flow Final) 2.6.3 Class Diagram Class Diagram terdiri dari tiga kompartemen (ruang persegi panjang) yang mengandung informasi yang berbeda diperlukan untuk menjelaskan sifat-sifat satu jenis objek. Untuk penjelasan simbol Class Diagram berada pada tabel 2.3. 2.6.4 Sequence Diagram Semua Sequence diagram lebih dimodelkan pada tingkat objek daripada tingkat kelas untuk memungkinkan skenario yang menggunakan lebih dari satu instance dari kelas yang sama dan bekerja pada tingkat fakta, data uji, dan contoh. Sequence Diagram menggunakan tiga elemen notasi mendasar: object, message/stimuli, and object lifeline (Wahono, 2003).Untuk penjelasan simbol commit to user Sequence Diagram berada pada tabel 2.4.
perpustakaan.uns.ac.id
digilib.uns.ac.id 14
Simbol
Tabel 2.3 Simbol Class Diagram (Rosa, 2010) Deskripsi
Kelas
Kelas pada struktur system
Paket /package
Paket/package
merupakan
sebuah
bungkusan dari satu atau lebih kelas (kumpulan kelas). Asosiasi
Asosiasi merupakan hubungan antar kelas dengan makna umum, asosiasi biasanya
juga
disertai
dengan
multiplisity. Generalisasi
Generalisasi
merupakan
hubungan
generalisasi
dan
spesialisasi
(umumkhusus)
antara
dua
kelas
dimana fungsi yang satu adalah fungsi yang lebih umum dari fungsi yang lainnya. Kebergantungan/dependency
Depedency
merupakan
hubungan
antarkelas yang saling bergantung, membutuhkan satu sama lain. Agregasi
Agregasi merupakan hubungan antar kelas dimana satu kelas merupakan semua bagian dari kelas kelas yang lain.
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 15
Simbol
Tabel 2.4 Simbol Sequence Diagram (Pender, 2002) Deskripsi
Objek dan kelas
Menggambarkan seseorang atau sesuatu (seperti perangkat, sistem lain) yang berinteraksi dengan sistem.
Lifeline
Lifeline merupakan siklus hidup sebuah pesan/ message berdasarkan waktu.
Pesan/message
Pesan/message
merupakan
komunikasi
antara objek yang satu dengan objek yang lainnya dimana objek yang satu meminta objek yang lain untuk melakukan sesuatu. Pesan
ini
diimplementasikan
menjadi
metode. Return message
Return message merupakan balasan/hasil yang berisi nilai dari sebuah objek yang diminta kepada objek yang meminta (mengirim pesan).
Self message
Self message merupakan pesan dari sebuah objek kepada objek itu sendiri untuk melakukan suatu aksi.
Return self message
Return self message sebagaimana return message merupakan balasan/hasil dari self message yang berisi suatu nilai kepada objek itu sendiri.
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 16
2.7
Flowchart Flowchart (Kristanto,2003) merupakan bagan yang menunjukkan alur kerja
atau apa yang sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem. Dengan kata lain, flowchart ini merupakan deskripsi secara grafik dari urutan prosedurprosedur yang terkombinasi yang membentuk suatu sistem. 2.7.1 Simbol-simbol Flowchart Simbol-simbol flowchart yang biasanya dipakai adalah simbol-simbol flowchart standar yang dikeluarkan oleh ANSI dan ISO.
Simbol
Tabel 2.5 Simbol Flowchart (Kristanto, 2003) Nama Fungsi Terminator Permulaan/akhir program Garis Alir (Flow Line)
Arah aliran program
Preparation
Proses inisialisasi/pemberian harga awal
Proses
Proses perhitungan/proses pengolahan data
Input/Output Data
Proses input/output data, parameter, informasi
Predefined Process (Sub Program) Decision
Permulaan sub program/proses menjalankan sub program
On Page Connector
Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya Penghubung bagian-bagian flowchart yang berada pada satu halaman
Off Page Connector
Penghubung bagian-bagian flowchart yang berada pada halaman berbeda
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id
BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN
3.1
Lingkungan Implementasi Dalam pengembangan Sistem Penjadwalan Mata Kuliah lingkungan
implementasi yang digunakan selama melakukan pengembangan antara lain ada perangkat keras dan perangkat lunak, adapun rinciannya antara lain adalah sebagai berikut : 1.
Perangkat Keras Processore
: AMD Dual-Core C-50 (1.0 GHz)
Memory(RAM) : 2,00 GB 2.
3.2
Perangkat Lunak Operating System
: Windows 7 Ultimate
Script Language
: PHP OOP
Pemodelan
: StarUML
Framework
: YII Framework
Web server
: XAMPP
Editor
: Notepad++
Database server
: PostgreSQL
Deskripsi Sistem Aplikasi merupakan suatu sistem berita elektronik yang dirancang untuk
memudahkan proses pemberitahuan secara elektronik, baik pada proses output input, maupun update. Mahasiswa dapat mengetahui jadwal kuliah dengan masuk ke dalam sistem dan melihat jadwal kuliah, yang menggantikan kertas-kertas jadwal. Proses input jadwal hanya bisa dilakukan oleh pihak yang memiliki otoritas, yaitu pihak pendidikan sebagai admin dan sekretariat jurusan serta dosen untuk melengkapi data yang di inputkan. Setelah itu admin melakukan generate agar tercipta jadwal yang sesuai.
commit to user 17
perpustakaan.uns.ac.id
digilib.uns.ac.id 18
3.3
Analisis Kebutuhan
3.3.1
Kebutuhan Fungsional Tabel 3.1 Kebutuhan fungsional sistem Nama Kebutuhan
Kode FRSS-01
Sistem harus menyediakan fungsi login
Level Admin
sebagai otoritas hak akses pengguna sistem FRSS-02
Sistem harus harus dapat digunakan untuk
Admin
melihat data mata kuliah yang tayang FRSS-03
Sistem harus dapat digunakan untuk melihat
Admin
data ruangan kelas FRSS-04
Sistem harus dapat digunakan untuk melihat
Admin, User
jadwal FRSS-05
Sistem harus dapat digunakan untuk melihat
Admin
data dosen FRSS-06
Sistem
harus
dapat
digunakan
untuk
Admin
untuk
Admin
untuk
Admin
Sistem harus dapat digunakan untuk melihat
Admin
mengupdate data mata kuliah tayang FRSS-07
Sistem
harus
dapat
digunakan
menambah data ruangan kelas FRSS-08
Sistem
harus
dapat
digunakan
mengupdate data ruangan kelas FRSS-09
data hari dan waktu kuliah FRSS-10
Sistem
harus
dapt
digunakan
untuk
Admin
mengupdate data hari dan waktu kuliah FRSS-11
Sistem
harus
dapat
digunakan
untuk
Admin
dapat
digunakan
untuk
Admin
menyusun jadwal FRSS-12
Sistem
harus
commit to user mengupdate data dosen
perpustakaan.uns.ac.id
digilib.uns.ac.id 19
FRSS-13
Sistem harus dapat digunakan untuk melihat
Admin
data penugasan dosen terhadap mata kuliah tayang FRSS-14
Sistem
harus
dapat
digunakan
untuk
Admin
mengupdate data penugasan dosen terhadap mata kuliah tayang FRSS-15
Sistem harus dapat digunakan untuk melihat
Admin
data waktu dosen berhalangan FRSS-16
Sistem harus menyediakan data jadwal untuk sistem lain
3.3.2
Kebutuhan Non Fungsional
NFRSS-01
Tabel 3.2 Kebutuhan non fungsional sistem Sistem harus dapat mengurangi penjadwalan secara manual
NFRSS-02
Sistem harus dapat digunakan di berbagai jurusan
NFRSS-03
Sistem hanya dapat melakukan penyusunan jadwal satu kali setiap semester
3.4
Perancangan Sistem
3.4.1 Pemodelan Use Case 1.
Deskripsi Aktor Nama
Admin User Sistem Penilaian
Tabel 3.3 Deskripsi Aktor Deskripsi Adalah orang yang bertanggung jawab mengelola dan melakukan generate jadwal setiap awal semester. Adalah orang yang melihat jadwal. Adalah sistem external yang bertugas memberikan data dosen.
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 20
2.
Hak dan Kewajiban Aktor Nama
Tabel 3.4 Hak dan Kewajiban Aktor Deskripsi
Bag. Pendidikan / Admin
-
Mengelola keseluruhan sistem. Mendaftarkan dosen yang akan di jadwalkan.
-
Melengkapi data dosen yang telah di inputkan,
-
Mengisi ketersediaan waktu dosen.
-
Mendaftarkan mata kuliah yang aktif.
-
Mendaftarkan ruang dan kelas.
-
Melakukan generate jadwal.
User
-
Melihat jadwal yang telah di generate.
Sistem Penilaian
-
Memberikan data dosen.
3. Deskripsi Use Case Nama Login
Tabel 3.5 Deskripsi Use Case Deskripsi Fungsi yang digunakan sebagai autentikasi untuk memberikan hak akses sesuai yang dimiliki masing-masing user agar dapat menggunakan fungsi-fungsi lain di dalam sistem.
Kelola Mata Kuliah
Fungsi yang digunakan untuk mengelola Mata Kuliah, baik penambahan ataupun menonaktifkan.
Kelola Ruangan
Fungsi yang digunakan untuk mengelola Ruangan,
baik
penambahan,
mengedit
ataupun menghapus. Kelola Waktu Kuliah
Fungsi yang digunakan untuk mengelola waktu to kuliah commit user meliputi hari dan jam.
perpustakaan.uns.ac.id
digilib.uns.ac.id 21
Kelola Dosen
Fungsi yang digunakan untuk mengelola Data dosen yang didapat dari sistem penilaian.
Kelola Penugasan Dosen
Fungsi yang digunakan untuk mengelola data dosen dan mata kuliah yang akan diampu.
Kelola Waktu Dosen
Fungsi yang digunakan untuk mengelola waktu dosen yang berhalangan pada hari tertentu.
Kelola Jadwal
Fungsi yang digunakan untuk mengelola Jadwal berdasarkan waktu perkuliahan, mata kuliah tayang, ruang kuliah, dosen dan juga waktu dosen yang berhalangan
<>
Memasukkan Data Dosen
Menerima Data Dosen
<> <>
Memasukkan ketersediaan waktu dosen
Memasukkan Data Tugas
<>
<>
<>
Sistem Penilaian
Memasukkan Hari & Jam Kuliah <>
<>
Menerima Data Mahasiswa
<>
<>
<>
User
Login
<> <>
Validasi Mahasiswa
<> Melihat Jadwal
<> <>
Memasukkan Data Ruang
<> Melihat Daftar Mata Kuliah <> Bag. Pendidikan/Admin
<> Melihat Daftar Mahasiswa <> Melihat Daftar Dosen
<>
<> Generate Jadwal <>
<> Memasukkan Data Mata Kuliah
Melihat Daftar Ruang
4.
Diagram Use Case
Gambar 3.1 Use Case Diagram Aplikasi Penjadwalan Mata Kuliah commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 22
3.4.2 Activity Diagram a. Activity Diagram Authentication User
Form Login
Masukkan Username cocok dbPass Masukkan Password
Tidak
Valid ?
Ya
Gambar 3.2 Activity Diagram Authentication User b. Activity Diagram Input Mata Kuliah
Masukkan Kode Mata Kuliah
Cek Kode Mata Kuliah Belum Sudah Masukkan Nama Mata Kuliah
Masukkan Jumlah SKS
Masukkan Semester
Simpan
Gambar 3.3 Activity Diagram Input Mata Kuliah commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 23
c. Activity Diagram Input Ruang Kuliah
Masukkan Nama Ruang
Masukkan Kapasitas Ruangan
Simpan
Gambar 3.4 Activity Diagram Input Ruang Kuliah d. Activity Diagram Input Hari dan Slot Waktu
Masukkan Hari
Tidak
Cek Hari Ya
Masukkan Slot Waktu
Tidak
Cek Slot Waktu Ya Simpan
Gambar 3.5 Activity Diagram Input Hari dan Slot Waktu
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 24
e. Activity Diagram Input Dosen
Masukkan Kode Dosen
Masukkan Nama Dosen
Sudah
Periksa kode dosen apakah sudah ada ?
Belum Simpan
Gambar 3.6 Activity Diagram Input Dosen f. Activity Diagram Penugasan Dosen Terhadap Mata Kuliah
Pilih Mata Kuliah
Pilih Dosen yang di tugasi mengajar
Masukkan Kelas
Masukkan Jumlah Mahasiswa
Simpan
Gambar 3.7 Activity Diagram Penugasan Dosen Terhadap Mata Kuliah
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 25
g. Activity Diagram Input Waktu Dosen
Pilih nama dosen
Masukkan hari dan waktu berhalangan mengajar
simpan
Gambar 3.8 Activity Diagram Input Waktu Dosen h. Activity Diagram Alur Algoritma
Data Penjadwalan
Mengambil data Penugasan
Mengambil data Mata kuliah
Mengambil data dosen
Belum
Mengambil data Ruang
Mengambil data waktu
Statement Ya Jadwal Mata Kuliah
Simpan
Gambar 3.9 Activity Diagram Alur Algoritma i. Activity Diagram Lihat Jadwal Pilih Jadwal
Tampilkan Jadwal
Gambar 3.10 Activity commitDiagram to user Lihat Jadwal
perpustakaan.uns.ac.id
digilib.uns.ac.id 26
3.4.3 Class Diagram Tahap Analisis Class Diagram tahap analisis merupakan diagram yang menjelaskan hubungan antar class secara sederhana. a. Login
User
Login view
Login
Admin
Session Control
Gambar 3.11 Class Diagram Login b. Kelola Mata Kuliah
Input MK
Bag. Pendidikan/Admin
Edit MK
MK
ControlMK
Lihat MK
Gambar 3.12 Class Diagram Kelola Mata Kuliah c. Kelola Ruangan
Input Ruangan
Bag. Pendidikan/Admin
Edit Ruangan
ControlRuangan
Lihat Ruangan
Gambar 3.13 Class Diagram commit to userKelola Ruangan
Ruangan
perpustakaan.uns.ac.id
digilib.uns.ac.id 27
d. Kelola Waktu Kuliah
Admin
Input Hari
ControlHariWaktu
Edit Hari
Hari
Waktu Lihat hari
Input Waktu
Edit waktu
Lihat Waktu
Bag. Pendidikan/Admin
Gambar 3.14 Class Diagram Kelola Waktu Kuliah
e. Kelola Dosen
Lihat Dosen Bag. Pendidikan/Admin
ControlDosen
Edit Dosen
Input Dosen
Gambar 3.15 Class Diagram Kelola Dosen
commit to user
Dosen
perpustakaan.uns.ac.id
digilib.uns.ac.id 28
f. Kelola Penugasan Dosen
Lihat Dosen
Dosen
Edit Dosen MK Bag. Pendidikan/Admin
ControlTugas Lihat MK Penugasan
Edit MK
Gambar 3.16 Class Diagram Kelola Penugasan Dosen
g. Kelola Waktu Dosen
Lihat Dosen
Dosen
Hari
Edit Dosen ControlWaktuDosen Bag. Pendidikan/Admin
Waktu Input Hari Waktu WaktuDosen Edit Hari Waktu
Lihat Hari Waktu
Gambar 3.17 Class Diagram Kelola Waktu Dosen
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 29
h. Kelola Jadwal
Lihat Dosen Hari Waktu Lihat MK
Dosen
Bag. Pendidikan/Admin
MK ControlJadwal Lihat MK Ruangan Penugasan Lihat Hari Waktu WaktuDosen
Jadwal
Lihat Ruangan
Gambar 3.18 Class Diagram Kelola Jadwal 3.4.4 Sequence Diagram a.
Login <> : Login view
<> : Login
<<entity>> : User
<> : Session Control
: User 1 : setUsername() 2 : setPassword()
3 : getUsername() 4 : getPassword() 5 : cekFormat()
6 : displayPesan()
7 : getUsername() 8 : getPassword() 9 : getLevel() 10 : getUsername() 11 : cekDatabase()
12 : displayPesan()
13 : koneksi()
Gambar 3.19 Sequence Diagram Kelola Jadwal
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 30
b.
Kelola Mata Kuliah <> : Session Control
<> : Lihat MK
<> : ControlMK
<<entity>> : MK
1 : initKoneksi() : Bag. Pendidikan/Admin
2 : getKodeMK()
3 : setNamaMK() 4 : setSKSMK() 5 : setSemesterMK()
<> : Input MK 6 : setKodeMK() 7 : setNamaMK() 8 : setSKSMK() 9 : setSemesterMK() 10 : getKodeMK() <> : Edit MK
11 : getNamaMK() 12 : getSKSMK() 13 : getSemesterMK() 14 : cekKodeMK() 15 : pesan()
18 : setKodeMK() 20 : setNamaMK()
16 : setKodeMK() 17 : setNamaMK() 19 : setSKSMK() 21 : SetSemesterMK()
22 : setSKSMK() 24 : setSemesterMK() 23 : getKodeMK() 25 : getNamaMK() 26 : getSKSMK() 27 : getSemesterMK()
28 : setKodeMK() 29 : setNamaMK() 30 : setSKSMK() 31 : setSemesterMK()
32 : pesansukses()
Gambar 3.20 Sequence Diagram Kelola Mata Kuliah
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 31
c.
Kelola Ruangan <> : Session Control
<> : Lihat Ruangan
<> : ControlRuangan
<<entity>> : Ruangan
1 : initKoneksi()
: Bag. Pendidikan/Admin
2 : getIdRuang()
3 : setNamaRuang()
<> : Input Ruangan 4 : setNamaRuang()
5 : getNamaRuang()6 : cekKodeRuang() 7 : PesanSukses() 8 : autoKodeRuang() 9 : getNamaRuang()
<> : Edit Ruangan
11 : setNamaRuang()
10 : getNamaRuang()
12 : cekKodeRuang() 13 : getNamaRuang()
14 : pesanSukses()
Gambar 3.21 Sequence Diagram Kelola Ruangan
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 32
d.
Kelola Waktu Kuliah <> : Session Control
<> : Lihat Hari Waktu
<> : ControlHariWaktu
<<entity>> : Hari
1 : initKoneksi() : Bag. Pendidikan/Admin
2 : getKodeHari() 3 : getKodeWaktu() 4 : setNamaHari() 5 : setWaktuMulai() 6 : setWaktuSelesai()
<> : Input Hari Waktu 7 : setNamaHari() 8 : setWaktuMulai() 9 : setWaktuSelesai() 10 : getNamaHari() 11 : getWaktuMulai() <> : Edit Hari Waktu
12 : getWaktuSelesai()13 : getNamaHari()
14 : getWaktuMulai() 16 : getWaktuSelesai()
15 : setNamaHari() 17 : setWaktuMulai() 19 : setWaktuSelesai()
18 : cekKode() 20 : PesanSukses()
21 : getNamaHari() 22 : getWaktuMulai() 23 : getWaktuSelesai()
24 : getNamaHari()
25 : getWaktuMulai() 26 : getWaktuSelesai() 27 : cekKode() 28 : pesanSukses()
Gambar 3.22 Sequence Diagram Kelola Waktu Kuliah
commit to user
<<entity>> : Waktu
perpustakaan.uns.ac.id
digilib.uns.ac.id 33
e.
Kelola Dosen <> : Session Control
<> : Lihat Hari Waktu
<> : ControlHariWaktu
<<entity>> : Hari
1 : initKoneksi() : Bag. Pendidikan/Admin
2 : getKodeHari() 3 : getKodeWaktu() 4 : setNamaHari() 5 : setWaktuMulai() 6 : setWaktuSelesai()
<> : Input Hari Waktu 7 : setNamaHari() 8 : setWaktuMulai() 9 : setWaktuSelesai() 10 : getNamaHari() 11 : getWaktuMulai() <> : Edit Hari Waktu
12 : getWaktuSelesai()13 : getNamaHari()
14 : getWaktuMulai() 16 : getWaktuSelesai()
15 : setNamaHari() 17 : setWaktuMulai() 19 : setWaktuSelesai()
18 : cekKode() 20 : PesanSukses()
21 : getNamaHari() 22 : getWaktuMulai() 23 : getWaktuSelesai()
24 : getNamaHari()
25 : getWaktuMulai() 26 : getWaktuSelesai() 27 : cekKode() 28 : pesanSukses()
Gambar 3.23 Sequence Diagram Kelola Dosen
commit to user
<<entity>> : Waktu
perpustakaan.uns.ac.id
digilib.uns.ac.id 34
3.4.5 Class Diagram a. Login <> Login view
<<entity>> User
+setUsername() +setPassword() +getUsername() +getPassword() +displayMessage()
User
+getUsername() +getPassword() +getLevel()
<> Session Control +koneksi()
Gambar 3.24 Class Diagram Login
b. Kelola Mata Kuliah <> Lihat MK +getKodeMK() +getNamaMK() +getSKSMK() +getSemesterMK() <> Input MK
Bag. Pendidikan/Admin
+setKodeMK() +getKodeMK() +setDataMK() +getDataMK() +displayMessage()
<<entity>> MK <> ControlMK +cekKode() +initKoneksi()
+kodeMK +namaMK +SKSMK +semesterMK +setKodeMK() +setDataMK() +setUpdateDataMK()
<> Edit MK +setKodeMK() +getKodeMK() +setUpdateDataMK() +getUpdateDataMK() +displayMessage()
Gambar 3.25 Class Diagram Kelola Mata Kuliah
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 35
a. Kelola Ruangan <> Lihat Ruangan +getIdRuangan() +getNamaRuangan() <> Input Ruangan
Bag. Pendidikan/Admin
+setIdRuangan() +setNamaRuangan() +getIdRuangan() +getNamaRuangan() +DisplayMessage()
<> ControlRuangan +cekIdRuangan() +initKoneksi()
<<entity>> Ruangan +IdRuangan +NamaRuangan +setIdRuangan() +setNamaRuangan() +setUpdateNamaRuangan()
<> Edit Ruangan +setIdRuangan() +setUpdateNamaRuangan() +getIdRuangan() +getUpdateNamaRuangan() +DisplayMessage()
Gambar 3.26 Class Diagram Kelola Ruangan
b. Kelola Waktu Kuliah <> Lihat Hari Waktu +getIdHari() +getNamaHari() +getIdWaktu() +getWaktuMulai() +getWaktuSelesai() <> Input Hari Waktu Bag. Pendidikan/Admin
+setHariWaktu() +getHariWaktu() +displayMessage()
<<entity>> Hari +IdHari +NamaHari +setIdHari() +setNamaHari()
<> ControlHariWaktu +cekIdHari() +cekIdWaktu() +initKoneksi()
<> Edit Hari Waktu +setUpdateHariWaktu() +getUpdateHariwaktu()
<<entity>> Waktu +IdWaktu +WaktuMulai +WaktuSelesai +setIdWaktu() +setWaktuMulai() +setWaktuSelesai()
Gambar 3.27 Class Diagram Kelola Waktu Kuliah
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 36
c. Kelola Dosen <> Lihat Dosen <> ControlDosen
+getDataDosen() Bag. Pendidikan/Admin
+cekId() +initKoneksi()
<> Edit Dosen
<<entity>> Dosen +IdDosen +NamaDosen +NIPDosen +TelpDosen +setIdDosen() +setUpdateDataDosen()
+setIdDosen() +setUpdateDataDosen() +getIdDosen() +getUpdateDataDosen() +DisplayMessage()
Gambar 3.28 Class Diagram Kelola Dosen 3.4.6
Flowchart Proses Penjadwalan Mulai
Jumlah Tugas = n
i=1
i <= Jumlah Tugas
Pilih Random (cell) Cetak (kelas [ i ]) a = random (cell)
status (a) = sudah
i = i++
Cell [ i ] = a
Selesai
Gambar 3.29 Flowchart Proses Penjadwalan Cell merupakan suatu blok atau bagian yang meliputi waktu, hari dan commit to user ruangan. Pilih Random (cell) merupakan pemilihan secara acak dari cell tersebut.
perpustakaan.uns.ac.id
digilib.uns.ac.id 37
3.5
Desain Interface Interface yang disediakan meliputi dua halaman diantaranya adalah halaman
login dan halaman utama. 1.
Halaman Login Header Username : Password : Login Footer Gambar 3.30 Halaman Login Untuk admin, jurusan, dosen, maupun mahasiswa semuanya
menggunakan halaman login yang sama, yang akan membedakan untuk menuju halaman utama admin, jurusan, dosen, maupun mahasiswa adalah proses redirecting untuk memposisikan pada tugasnya masing-masing.
2.
Halaman Utama Header Menu Navigasi
Konten
Footer Gambar 3.31 Halaman Utama
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id 38
Halaman utama untuk admin, jurusan, dosen, maupun mahasiswa semuanya adalah sama, yang akan membedakan fungsionalitasnya adalah komponen-komponen halaman yang berbeda. Jadi untuk admin sistematau bagian pendidikan akan disediakan halaman untuk mengelola sistem, sedangkan jurusan akan disediakan halaman untuk menambah nama dosen dan penugasan dosen, dan untuk halaman dosen akan disediakan halaman untuk memasukkan ketersediaan waktu dosen.
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id
BAB IV IMPLEMENTASI 4.1
Implementasi Sistem Sesuai dengan perancangan sistem yang telah dikemukakan sebelumnya,
pada aplikasi penjadwalan mata kuliah terdapat 4 macam User yaitu Bag.Pendidikan/admin, Jurusan, Dosen dan Mahasiswa. Berikut ini merupakan implementasi halaman yang dapat diakses oleh masing-masing User. 4.1.1 Tampilan Halaman Login
Gambar 4.1 Halaman Login Halaman ini adalah halaman login user yang sudah terdaftar dan admin akan login pada halaman ini, karena data bersifat pribadi maka selain user yang sudah terdaftar dan admin, tidak akan bisa mengakses halaman ini. 4.1.2 Halaman Input Mata Kuliah
Gambar 4.2 Halaman Tambah Mata Kuliah Halaman ini merupakan halaman yang dapat diakses oleh admin. Untuk memasukan mata kuliah perlu memasukkan kode mata kuliah, dan di cek terlebih dahulu. Admin dapat menginputkan Matato Kuliah, commit user maupun mengedit Mata Kuliah.
39
40 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.1.3 Halaman Input Ruang Kuliah
Gambar 4.3 Halaman Tambah Ruang Kuliah Halaman ini merupakan halaman untuk menambah maupun mengedit ruang kuliah serta kapasitas ruang kuliah.
4.1.4 Halaman Input Hari dan Waktu Kuliah
Gambar 4.4 Halaman Tambah Hari dan Waktu Kuliah Halaman ini merupakan halaman untuk menginput hari dan waktu perkuliahan. Pada halaman ini juga dapat mengedit dan menghapus hari dan waktu kuliah.
commit to user
41 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.1.5 Halaman Input Dosen
Gambar 4.5 Halaman Tambah Dosen Halaman ini hanya dapat di akses oleh admin, yang merupakan halaman untuk menginput dosen. Dengan memasukkan kode dan nama dosen yang kemudian nanti akan dilengkapi sendiri oleh dosen.
4.1.6 Halaman Penugasan Dosen
Gambar 4.6 Halaman Penugasan Dosen Halaman ini merupakan halaman untuk memberi tugas dosen untuk mengampu salah satu mata kuliah. Halaman ini hanya dapat di akses oleh admin.
commit to user
42 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.1.7 Halaman Input Waktu Berhalangan Mengajar
Gambar 4.7 Halaman Input Waktu Berhalangan Mengajar Halaman ini merupakan halaman untuk memasukkan hari dan juga waktu berhalangan mengajar agar pada saat menyusun jadwal tidak dimasukkan kedalam perhitungan.
4.1.8 Halaman Generate Jadwal
Gambar 4.8 Halaman Generate Jadwal Halaman ini merupakan halaman untuk melakukan reset jadwal dan generate jadwal apabila semua syarat telah terpenuhi.
commit to user
43 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.1.9 Halaman View Jadwal
Gambar 4.9 Halaman View Jadwal Halaman ini merupakan halaman untuk melihat jadwal yang telah di generate. Halaman ini dapat di akses oleh semua user. Halaman ini merupakan hasil dari proses yang telah digambarkan pada flowchart pada bab sebelumnya.
commit to user
perpustakaan.uns.ac.id
digilib.uns.ac.id
BAB V KESIMPULAN DAN SARAN
5.1
Kesimpulan Aplikasi penjadwalan ini merupakan masalah yang sangat kompleks. Dalam
pengembangan
kali
ini
menggunakan
moel
pemrograman
PHP
dan
memnggunakan database PostgreSQL. Algoritma yang dibangun dalam pengembangan ini dapat digunakan sebagai solusi untuk menyelesaikan masalah penjadwalan mata kuliah. Dengan batasan-batasan yang telah diberikan pada penjadwalan mata kuliah, aplikasi ini mampu menghasilkan jadwal perkuliahan. Berdasarkan beberapa kali uji coba yang dilakukan dengan beberapa mata kuliah dan beberapa dosen, sehingga aplikasi ini sudah dapat digunakan untuk membuat jadwal perkuliahan.
5.2
Saran Aplikasi penjadwalan mata kuliah ini perlu dikembangkan lagi karena masi
ada aturan-aturan penting yang belum ditangani. Jika dikembangkan penulis menyarankan untuk menambahkan algoritma-algoritma yang penyusunanya lebih akurat dan juga menggunakan optimasi penjadwalan agar tidak ada bentrok dengan jadwal lain karena masalah penjadwalan mata kuliah adalah masalah yang kompleks.
commit to user
44