TUGAS AKHIR
Diajukan sebagai syarat untuk menyelesaikan studi
Program Diploma Tiga Politeknik Informatika Nasional
Oleh :
MUH. ISMAIL HERIANTO
NIM: 201521049
Diketahui
Ketua Program Studi
Manajemen Informatika Disetujui Pembimbing:
Disahkan di : Makassar
Pada Tanggal : 24 April 2018
i
PENGESAHAN LULUS SIDANG TUGAS AKHIR
Tim Penguji
Mengetahui
Samsuddin,S.Kom Nurhaedar,S.Kom.,M.M.
NIDN: 0910017003 NIDN: 0921088001
ii
PERNYATAAN KEASLIAN TUGAS AKHIR
1. Tugas Akhir ini adalah asli dan belum pernah diajukan untuk mendapatkan
2. Tugas akhir ini murni gagasan, rumusan dan observasi saya sendiri, tanpa
3. Dalam Tugas Akhir ini tidak terdapat karya atau pendapat yang telah ditulis
telah diperoleh karena karya tulis ini, serta sanksi lainnya sesuai dengan
iii
MOTTO
“Manusia yang berakal ialah manusia yang suka menerima dan meminta
nasihat.”(Umar Bin Khattab)
Kupersembahkan
Karya sederhana ini kepada kedua Orang tuaku yang tercinta, Saudara-
saudaraku, serta rekan-rekan mahasiswa seperjuangan. Atas segala dukungan,
pengorbanan dan doanya selama ini
iv
ABSTRAK
Muh. Ismail Herianto, 2018. “Sistem Informasi Penjadwalan
Matakuliah Pada Kampus Polinas Tamalanrea Menggunakan Algoritma
Genetika” di bimbing oleh Herman,S.Kom., M.Cs
Sistem informasi ini dikembangkan karena penjadwalan mata kuliah
dengan cara manual atau menggunakan spreadsheet belum optimal, sehingga
sering terjadi tabrakan dengan jadwal mata kuliah lain. Sistem ini bertujuan untuk
memudahkan penggunanya dalam melakukan penjadwalan mata kuliah pada
kampus POLINAS LP3I Tamalanrea Makassar. Pada perancangan ini penulis
menggunakan UML, PHP, CSS, Javascript, HTML serta basis data MySQL.
Dengan adanya Sistem Informasi Penjadwalan Menggunakan Algoritma Genetika
ini maka penjadwalan mata kuliah akan lebih mudah dan optimal.
v
ABSTRACT
vi
KATA PENGANTAR
Puji syukur penulis panjatkan ke hadirat ALLAH SWT Tuhan Yang Maha
Kuasa atas limpahan rahmat dan karunia-Nya sehingga dapat merampungkan
tugas akhir ini. Tugas akhir ini disusun untuk memenuhi sebagian persyaratan
akademik untuk memperoleh gelar Ahli Madya Manajemen Informatika.
Semoga tugas akhir ini bermanfaat bagi penulis, pembaca, dan bagi
penelitian selanjutnya.
Penulis
vii
UCAPAN TERIMA KASIH
Puji syukur penulis ucapkan pada Tuhan Yang Maha Esa atas limpahan
rahmat dan karunia-Nya. Sehingga penulis dapat menyelesaikan penelitian dan
penulisan tugas akhir ini dengan baik.
Kepada keluarga yang sangat saya cintai, terkhusus kepada kedua orang
tua yang telah mendoakan dan memberikan banyak motivasi serta semangat, baik
berbentuk materi atau maupun doa dalam menempuh studi di Politeknik
Informatika Nasional (Polinas).
Penulis berharap dan berdoa semoga Tuhan Yang Maha Esa senantiasa
membalas segala amal baik Bapak, Ibu, dan Saudara
Penulis
viii
DAFTAR ISI
PERSETUJUAN PEMBIMBING ........................................................................... i
PENGESAHAN LULUS SIDANG TUGAS AKHIR ................................................ ii
PENYATAAN KEASLIAN TUGAS AKHIR ............................................................ iii
LEMBAR MOTTO DAN PERSEMBAHAN............................................................iv
ABSTRAK ............................................................................................................ v
ABSTRACT .........................................................................................................vi
KATA PENGANTAR ........................................................................................... vii
UCAPAN TERIMAKASIH................................................................................... viii
DAFTAR ISI .........................................................................................................ix
DAFTAR TABEL ................................................................................................. xii
DAFTAR GAMBAR ............................................................................................ xiii
Bab I Pendahuluan
1.1 Latar Belakang ........................................................................................ 1
1.2 Pokok Masalah ....................................................................................... 2
1.3 Batasan Masalah .................................................................................... 2
1.4 Tujuan & Manfaat ................................................................................... 3
1.4.1 Tujuan ....................................................................................... 3
1.4.2 Manfaat ..................................................................................... 3
1.5 Metodologi ............................................................................................... 3
BAB II LANDASAN TEORI
2.1 Landasan Teori ....................................................................................... 5
2.1.1 Agoritma Genetika .................................................................. 5
2.1.2 Penjadwalan dengan Algoritma Genetika ........................... 6
2.2 Sistem....................................................................................................... 7
2.3 Informasi .................................................................................................. 7
2.4 Sistem Informasi ..................................................................................... 8
2.5 Pengertian Basis Data ........................................................................... 9
2.6 Pengertian PHP dan MySQL .............................................................. 10
2.7 Bootstrap ................................................................................................ 11
2.8 Codeigniter ............................................................................................ 11
2.9 XAMPP ................................................................................................... 13
2.10 UML (Unified Modeling Language) .................................................... 14
2.10.1 Pemodelan Sistem Dengan UML ....................................... 14
2.10.2 Use Case ................................................................................ 14
2.10.3 Activity Diagram..................................................................... 15
ix
2.10.4 Sequence Diagram ............................................................... 16
BAB III ANALISA DAN PERANCANGAN SISTEM
3.1 Analisis Sistem Yang Berjalan............................................................ 16
3.1.1 Masalah Yang dihadapi ........................................................ 17
3.1.2 Tinjauan Organisasi .............................................................. 17
3.1.3 Kesimpulan Hasil Analisis .................................................... 20
3.1.4 Uraian Prosedur .................................................................... 20
3.1.5 Dekomposisi Fungsi ............................................................. 21
3.1.6 Analisis Masukan .................................................................. 22
3.1.7 Analisis Keluaran................................................................... 22
3.1.8 Analisis Kebutuhan ............................................................... 22
3.2 Perancangan Sistem ............................................................................ 25
3.2.1 Use case ................................................................................. 26
3.2.2 Activity Diagram..................................................................... 27
3.2.3 Sequence Diagram ............................................................... 30
3.3 Rancangan Basis data......................................................................... 33
3.3.1 Tabel Login............................................................................. 33
3.3.2 Tabel Mata kuliah .................................................................. 34
3.3.3 Tabel Dosen ........................................................................... 35
3.3.4 Tabel Hari ............................................................................... 35
3.3.5 Tabel Jam ............................................................................... 36
3.3.6 Tabel Ruang........................................................................... 37
3.3.7 Tabel Pengampu ................................................................... 37
3.3.8 Tabel Jadwal .......................................................................... 38
3.3.9 Relasi Tabel ........................................................................... 39
3.4 Rancangan Keluaran ........................................................................... 39
3.5 Rancangan Masukan ........................................................................... 40
3.6 Rancangan Dialog Layar ..................................................................... 41
BAB IV IMPLEMENTASI DAN EVALUASI
4.1 Implementasi Sistem ............................................................................ 43
4.1.1 Perangkat Keras (Hardware)............................................... 43
4.1.2 Perangkat Lunak (Software) ................................................ 43
x
4.2 Implementasi User Interface ............................................................... 43
4.3 Implementasi dan Pengujian Data Mata Kuliah ............................... 46
4.4 Implementasi dan Pengujian Data Dosen ........................................ 48
4.5 Implementasi dan Pengujian Data Pengampu................................. 51
4.6 Implementasi dan Pengujian Data Jadwal ....................................... 53
BAB V PENUTUP
5.1 Kesimpulan ............................................................................................ 43
5.2 Saran ...................................................................................................... 43
DAFTAR PUSTAKA
LAMPIRAN
RIWAYAT HIDUP
xi
DAFTAR TABEL
xii
DAFTAR GAMBAR
xiii
BAB I
PENDAHULUAN
1.1 Latar Belakang
untuk dapat terlaksananya sebuah proses belajar mengajar yang baik bagi
yang baik adalah sebuah penjadwalan yang dapat dilakukan oleh seluruh
pihak yang terkait dalam kegiatan belajar mengajar, tidak hanya bagi dosen
tersebut.
berwirausaha.
dimana pemilihannya tergantung dari nilai fitness. Hal ini diharapkan agar
populasi baru yang terbentuk akan lebih baik dari populasi terdahulu.
suatu metode algoritma yaitu Agoritma Genetika, hal ini didasarkan pada
Penjadwalan.
2
5. Jam pelajaran dibagi menjadi lima sesi.
Tamalanrea Makassar.
Tamalanrea Makassar.
1.4.2 Manfaat
genetika.
1.5 Metodologi
Metode penelitian yang diperlukan sebagai bahan untuk menyusun
1. Studi Lapangan
berjalan.
3
2. Studi Literatur
4
BAB II
TINJAUAN PUSTAKA
2.1 Landasan Teori
2.1.1 Algoritma Genetika
Algoritma Genetika (AG) adalah algoritma pencarian
(Suyanto, 2007).
(2014):
yang didapatkan.
1. Pembangkitan individu
3. Seleksi
6
fitness terbesar ke terkecil, dan kemudian diambil
4. Crossover
5. Mutasi
susunannya random.
2.2 Sistem
2.3 Informasi
7
Menurut Jogiyanto HM., (1999), informasi adalah hasil dari
pengolahan data dalam suatu bentuk yang lebih berguna dan lebih
keputusan.
(Jogianto,2005).
dengan cara yang suatu organisasi dapat mencapai tujuan yang telah
ditetapkan.
8
Pengumpulan data
Pengelompokan data
Penghitungan data
Analisa topik masalah
Penyajian laporan
berupa tipe data, struktur data dan juga batasan-batasan pada data
penyimpanan data yang akan diolah lebih lanjut. Basis data menjadi
data, menghindari hubungan antar data yang tidak jelas dan juga
9
Basis data merupakan suatu gabungan dan juga perpaduan
data (SMBD) atau yang juga lebih sering dikenal dengan istilah DBMS
berhubungan.
informasi bagi para pemakai. Salah satu database untuk server yang
cukup populer dan handal dalam menangani data yang begitu besar
adalah MySQL.
10
source product, sehingga source code PHP dapat diubah dan
2.7 Bootstrap
Khadafi Zubaidi (2015), Bootstrap adalah sebuah alat bantu
namanya, website yang dibuat sengan alat bantu ini memiliki tampilan
2.8 Codeigniter
Menurut Hakim (2010:8), Codeigniter adalah sebuah
framework PHP yang dapat membantu mempercepat developer
dalam pengembangan aplikasi web berbasis PHP dibanding jika
menulis semua kode program dari awal.
11
didalam pengkodean aplikasi berbasis web sehingga diharapkan
mengesekusinya.
12
Gambar 2.1 menerangkan bahwa ketika datang
1. Model
Berisi kode program (berupa OOP class) yang
digunakan untuk memanipulasi database.
2. View
Berisi template HTML/XML atau PHP untuk
menampilkan data pada browser.
3. Controller
Berisi kode program (berupa OOP class) yang
digunakan untuk mengontrol aliran aplikasi (sebagai
pengontrol Model dan View).
2.9 XAMPP
Menurut Wicaksono (2008:7) menjelaskan bahwa “XAMPP
XAMPP juga dapat disebut sebuah Cpanel server virtual, yang dapat
13
membantu melakukan preview sehingga dapat dimodifikasi website
dalam sistem
bisnis/sistem
14
3. Hubungan, aktor mana saja yang terlibat dalam use case.
dilakukan sistem.
15
Gambar 2.3 Activity Diagram
Sumber:
https://www.ibm.com/support/knowledgecenter/SSB2MU_8
.2.1/com.ibm.rhp.uml.diagrams.doc/topics/rhp_t_dm_dividi
ng_activity_dgrms.html
16
Gambar 2.4 Sequence Diagram
Sumber: http://plantuml.com/sequence-diagram
17
BAB III
ANALISA DAN PERANCANGAN SISTEM
mencetak daftar Mata Kuliah dari file dokumen kurikulum mata kuliah.
dicetak.
3.1.1 Masalah Yang dihadapi
Setelah melewati tahapan proses analisa sistem yang
yang terjadi:
17
menjadi lembaga pendidikan profesi (1 - 2 tahun). Animo
18
Perkantoran, Program studi Manajemen Informatika
Pemerintahan.
Tinggi (BAN-PT).
1. Visi
2. Misi
a. Menyelenggarakan pendidikan dengan
profesional dan bertanggung jawab untuk
menyiapkan tenaga kerja yang terampil
dengan kompetensi yang tinggi.
19
b. Menjalin kemitraan dengan institusi terkait
untuk pengembangan sistem pendidikan
yang berkualitas dan tepat guna.
c. Melakukan penelitian dan pengabdian
kepada masyarakat untuk mendukung
program pemerintah dalam mencerdaskan
kehidupan bangsa dan mensejahterakan
masyarakat.
d. Menyelenggarakan pendidikan dengan
berbasis IT.
e. Melaksanakan evaluasi secara berkala
untuk meningkatkan kualitas, otonomi,
akuntabilitas, dan akreditasi politeknik.
20
tahun ajaran kemudian jadwal mata kuliah yang telah dibuat
mahasiswa/i.
1. Input
Proses penginputan data mata kuliah, dosen dan
tahun ajaran, apabila data sudah ada maka tahap ini tidak
berlaku.
21
2. Proses
Proses adalah tahap dimana setiap data matakuliah,
3. Output
Tahap ini adalah hasil dari proses dan menampilkan
22
1. Analisis Kebutuhan Fungsional
berikut :
(Hardware)
Hardisk 500 GB
Penggunaan (Hardware)
23
Processor Intel Inside 1.0 Ghz
Hardisk 200 GB
Pengembangan (Software)
XAMPP
Penggunaan (Software)
XAMPP
kebutuhan.
24
c. Pengguna : Pihak yang menggunakan sistem ini
data jam, data ruangan, data hari dan data pengampu. Setelah proses
25
langsung ditampilkan pada halaman sistem atau disimpan kedalam
ini akan dijelaskan peran-peran dari aktor Use case diagram pada
26
Aktor Use Case Deskripsi
Mengelola data Menambah dan
Matakuliah Merubah data mata
kuliah
Mengelola data Dosen Menambah dan
Merubah data dosen
Mengelola data Menambah dan
Ruangan Merubah data ruangan
Mengelola data Jam Menambah dan
Admin Merubah data jam
Mengelola data Hari Menambah dan
Merubah data hari
Mengelola data Menambah dan
Pengampu Merubah data
pengampu
Generate Jadwal Membuat Jadwal
Perkuliahan yang akan
digunakan
berakhir.
27
Gambar 3.4 Activity Diagram Login
itu admin akan memilih menu mana yang akan diinput. Setelah
28
Gambar 3.5 Activity Diagram Input Data
29
membuat jadwal secara otomatis sesuai metode yang dipakai
30
a. Sequence Diagram login
31
b. Sequence Diagram Input Data
masing menu.
32
3.3 Rancangan Basis data
Basis data yang dirancang memuat 8 tabel. Adapun tabel-
tabel tersebut adalah tabel login, matakuliah, dosen, hari, jam, ruang,
digunakan untuk menyimpan data dosen dan data mata kuliah yang
diampuh dan nama kelas dari mata kuliah tersebut. Tabel dosen, hari,
perkuliahan ini.
Media : hardisk
Struktur :
33
dienkripsi
dengan fungsi
MD5
5 - Info akses
last_login Datetime
terakhir admin
Media : hardisk
Struktur :
34
3.3.3 Tabel Dosen
Tabel dosen digunakan untuk menyimpan informasi
Media : hardisk
Struktur :
perkuliahan.
Media : hardisk
35
Primary Key :kd_hari
Struktur :
perkuliahan.
Media : hardisk
Struktur :
36
3.3.6 Tabel Ruang
Tabel ruang digunakan untuk menyimpan informasi data
perkuliahan.
Media : hardisk
Struktur :
Media : hardisk
Struktur :
37
No Field Tipe Lebar Keterangan
1 kode_p Int 11 Pemberian
kode otomatis
atau
Autoincrement
untuk nilai gen
2 kode_mk Int 11 Kode dari
tabel mata
kuliah
3 kd_dosen Int 11 Kode dari
tabel dosen
4 nm_kelas Varchar 50 Nama kelas
5 tahun_akademik varchar 50 Tahun
akademik
Media : hardisk
Struktur :
38
2 kode_p Int 11 Kode
pengampu dari
tabel
pengampu, di
dalamnya
sudah termasuk
mata kuliah,
dosen dan
kelas
3 id_jam Int 11 Kode jam dari
tabel jam
4 kd_hari Int 11 Kode hari dari
tabel hari
5 kd_ruang Int 11 Kode
39
hasilkan oleh sistem informasi otomatisasi penjadwalan mata kuliah adalah
40
2. Input Proses Penjadwalan
Berikut merupakan rancangan input dari proses penjadwalan.
41
Gambar 3.14 Rancangan tampilan menu utama
3. Tampilan Jadwal
42
BAB IV
IMPLEMENTASI DAN PENGUJIAN SISTEM
digunakan.
atau Software.
sistem ini adalah XAMPP 7.2 sebagai web server dan Mysql sebagai
44
Gambar 4.4 Tampilan Admin Berhasil Login
b. Pengujian
Pengujian yang akan digunakan untuk menguji sistem adalah
metode pengujian black box.
Tabel 4.1 Pengujian Login
Kasus dan Hasil Uji (Data Normal)
Data Username:ismail; password:admin
masukan
Yang Data login dimasukkan dan klik tombol login maka
Diharapkan dilaksanakan pengecekan data login. Apabila data
login benar maka admin mendapatkan haknya
sebagai pengolah data dengan penuh.
Pengamatan Dapat mengisi data login dan tombol login dapat
berfungsi
Kesimpulan Diterima
45
4.3 Implementasi dan Pengujian Data Mata Kuliah
46
Gambar 4.8 Tampilan Pesan Inputan Kosong Mata Kuliah
b. Pengujian
Pengujian yang akan digunakan untuk menguji sistem adalah
metode pengujian black box.
Tabel 4.3 Pengujian Input Mata Kuliah
Kasus dan Hasil Uji (Data Normal)
Data Kesimpul
Yang Diharapkan Pengamatan
Masukan an
Klik tombol Tampil Form Diterima
Tambah Muncul form tambah penambahan
Data data mata kuliah data mata
kuliah
Kode Kategori tercantum Dapat Diterima
mata, dalam select option mengisi kode
nama (Teori,Praktikum), matakuliah,
matakuliah sks dan semester nama
, kategori, tercantum dalam matakuliah,
sks dan inputan tipe number kategori, sks
semester dan kode dan semester
matakuliah dan
nama matakuliah
tercantum dalam
textbox
47
Klik Data tersimpan ke Data Diterima
Simpan database dan tersimpan ke
menampilkan menu database
mata kuliah serta
menampilkan alert
data berhasil diinput
Kasus dan Hasil Uji (Data Salah)
Data Kesimpul
Yang Diharapkan Pengamatan
Masukan an
Semua Sistem Data tidak Diterima
data tidak menampilkan pesan tersimpan
diisi kesalahan dan data dan sistem
tidak tersimpan menampilkan
pesan
kesalahan
sesuia
dengan yang
diharapkan
48
a. Implementasi Form Input Dosen
49
b. Pengujian
Tabel pengujian input dosen yaitu dapat dilihat pada tabel 4.4
di halaman 50.
50
Semua Sistem Data tidak Diterima
data tidak menampilkan tersimpan dan
diisi pesan kesalahan sistem
dan data tidak menampilkan
tersimpan pesan kesalahan
sesuai dengan
yang diharapkan
51
Gambar 4.15 Tampilan Form Edit Pengampu
52
tahun inputan untuk tahun
akademik kelas dalam akademik
bentuk text box
Klik Simpan Data tersimpan Data tersimpan Diterima
ke database dan Ke database
menampilkan
menu pengampu
serta pesan
bahwa data
berhasil diinput
Kasus dan Hasil Uji (Data Salah)
Data Kesimpul
Yang dihrapkan Pengamatan
Masukan an
Semua data Sistem Data tidak Diterima
tidak diisi menampilkan tersimpan dan
pesan kesalahan sistem
dan data tidak menampilkan
tersimpan pesan
kesalahan
sesuai dengan
yang
diharapkan
53
Gambar 4.17 Menu Jadwal Mata Kuliah
a. Implementasi Input Jadwal Mata Kuliah
54
Gambar 4.19 Pengujian Populasi 10
55
Tabel 4.6
Kasus dan Hasil Uji
Data Semester:ganjil/genap, Tahun Akademik:
masukan 2017/2018, Populasi 10 atau 100, Probabilitas
Crossover:0.70, Probabilitas Mutasi: 0.40,
Jumlah generasi: 10000.
Yang Data dimasukkan dan klik tombol Proses maka
Diharapkan dilaksanakan proses penjadwalan. Apabila
data jadwal sudah optimal maka jadwal
matakuliah akan tersimpan ke basisdata.
Pengamatan Dapat mengisi data jadwal dan tombol proses
dapat berfungsi
Kesimpulan Diterima
56
BAB V
PENUTUP
5.1 Kesimpulan
1. Algoritma genetika dapat diterapkan pada sistem penjadwalan
mata kuliah.
2. Berdasarkan hasil pengujian jumlah populasi dapat
memberikan efek dalam proses penjadwalan mata kuliah.
3. Hasil penjadwalan mata kuliah menggunakan algoritma
genetika dapat memberikan jadwal yang sesuai dengan jumlah
sks dan interval waktu.
5.2 Saran
Sistem ini masih perlu dikembangkan agar membuat jadwal
mata kuliah yang lebih kompleks dan optimal, masih perlu
perbaikan metode pada proses seleksi agar individu-individu
terbaik tetap terpilih pada generasi selanjutya dan masih perlu
ditambahkan sistem kemauan dosen yang dapat mengampu
suatu mata kuliah.
DAFTAR PUSTAKA
Arief, 2011. “Pengertian PHP”. http://www.bangpahmi.com/2015/03/pengertian-
bahasa-pemrograman-php.html. Diakses tanggal 1 Maret 2018
Gen, Mitsuo and Runwei, Cheng. Genetic Algorithms And Engineering Design.
John Wiley & Sons, Inc. New York: 1997.
Ramakrishnan dan Gehrke 2003. Pengertian Basis Data Menurut Para Ahli.
http://sistempakarindonesia.blogspot.co.id/2013/06/pengertian-basis-data-
menurut-para-ahli.html. Diakses tanggal 1 Maret 2018.
Negeri 1 Maccorawalie dan lulus pada tahun 2009. Kemudian penulis melanjutkan
pendidikan di SMP Negeri 1 Panca Rijang. Dan pada tahun 2012 penulis
melanjutkan pendidikan di SMA Negeri 1 Sidrap lulus pada tahun 2015. Pada
} redirect(base_url().'web/admi
n');
function login()
{ }
$this->load->view('v_login'); else
} {
$this->load- }
>view('layout/v_admin',$data) else
; {
} echo "acces denied ";
else echo "<a
{ href='login'>Klik</a>";
echo "acces denied "; $this->session-
echo "<a >unset_userdata('status');
href='login'>Klik</a>";
$this->session- 'sks' =>
>sess_destroy(); $sks,
'semester' =>
} $semester,
} 'jenis_mk' =>
$kategori
function add_data_makul() );
{
if($simpan = $this->m_global-
$this->form_validation- >tambah($data,'matakuliah'))
>set_rules('kode_mk','Kode {
Matakuliah','required|trim|call $this->session-
back_valid_kd|xss_clean|min >set_flashdata('msg',"Data
_length[5]|max_length[7]'); Berhasil Ditambahkan");
$this->form_validation- redirect('web/tb_matakuliah');
>set_rules('nama_makul','Na }
ma }
Matakuliah','is_unique[matak else
uliah.nama_makul]|required|t {
rim|xss_clean'); $this->tb_matakuliah();
$this->form_validation- }
>set_rules('kategori','Kategori
','required|trim'); }
$this->form_validation-
>set_rules('sks','SKS','require function valid_kd($kode_mk)
d|trim|numeric'); {
$this->form_validation- if ($this->m_global-
>set_rules('semester','Semes >valid_kd($kode_mk) ==
ter','required|trim|numeric'); TRUE)
if($this->form_validation- {
>run()) $this->form_validation-
{ >set_message('valid_kd',
$kode_mk = $this- "Kode Matakuliah dengan
>input->post('kode_mk'); Kode $kode_mk sudah
$nama_makul = $this->input- terdaftar");
>post('nama_makul'); return FALSE;
$sks }
= $this->input- else
>post('sks'); {
$semester = $this->input- return TRUE;
>post('semester'); }
$kategori = $this->input- }
>post('kategori');
function
$data = array( del_dt_makul($kode_mk)
'kode_mk' => {
$kode_mk, $where = array('kode_mk' =>
'nama_makul' => $kode_mk);
$nama_makul,
$this->m_global-
>hapus_data($where,'matak );
uliah');
$this->session- $where = array('kode_mk' =>
>set_flashdata('msg',"Data $kode_mk);
Berhasil Dihapus");
redirect('web/tb_matakuliah'); $this->m_global-
} >updating($where,$data,'mat
akuliah');
$this->session-
function update_makul() >set_flashdata('msg',"Data
{ Berhasil Diupdate");
$this->form_validation- redirect('web/tb_matakuliah');
>set_rules('nama_makul','Na }
ma else
Matakuliah','required|trim|xss {
_clean'); $this->tb_matakuliah();
$this->form_validation- }
>set_rules('jenis_mk','Katego }
ri','required|trim');
$this->form_validation- //batas configurasi table
>set_rules('sks','SKS','require matakuliah
d|trim|numeric');
$this->form_validation- //table dosen
>set_rules('semester','Semes function tb_dosen()
ter','required|trim|numeric'); {
if($this->form_validation- if($this->session-
>run()) >userdata('status') != '')
{ {
$kode_mk = $this-
>input->post('kode_mk'); $data['class'] = "active-
$nama_makul = $this->input- menu";
>post('nama_makul'); $data['user'] = $this-
$sks >session-
= $this->input- >userdata('username');
>post('sks'); $data['title'] = "Table
$semester = $this->input- Dosen";
>post('semester'); $data['table_title'] = "Dosen";
$kategori = $this->input- $data['last_login'] = $this->db-
>post('jenis_mk'); >query("SELECT
DATE_FORMAT(last_login,
$data = array( '%d-%M-%Y %H:%i:%s')
'nama_makul' => FROM login")->row();
$nama_makul, $data['isi'] = $this->m_global-
'sks' => >tampil_data('dosen')-
$sks, >result();
'semester' => $data['msg'] = $this-
$semester, >session->flashdata('msg');
'jenis_mk' => $data['msg'] = $this->session-
$kategori >flashdata('msg');
$data['msg'] = $this->session- 'nidn' =>
>flashdata('msg'); $nidn,
'nama_dosen' =>
$this->load- $nama_dosen,
>view('table/v_tbdosen',$data 'alamat' =>
); $alamat,
'notelpon' =>
} $notelpon
else );
{
echo "acces denied "; if($this->m_global-
echo "<a >tambah($data,'dosen'))
href='login'>Klik</a>"; {
$this->session- $this->session-
>unset_userdata('status'); >set_flashdata('msg',"Data
$this->session- Berhasil Ditambahkan");
>sess_destroy(); redirect('web/tb_dosen');
} }
} }
else
function add_data_dosen() {
{ $this->tb_dosen();
}
$this->form_validation-
>set_rules('nidn','NIDN','requi }
red|trim|callback_valid_nidn|x
ss_clean|is_numeric|min_len function valid_nidn($nidn)
gth[10]|max_length[10]'); {
$this->form_validation- if ($this->m_global-
>set_rules('nama_dosen','Na >valid_nidn($nidn) == TRUE)
ma Dosen','required|trim'); {
$this->form_validation- $this->form_validation-
>set_rules('alamat','Alamat'); >set_message('valid_nidn',
$this->form_validation- "NIDN ".$nidn." sudah
>set_rules('notelpon','Telp'); terdaftar");
return FALSE;
if($this->form_validation- }
>run()) else
{ {
$nidn = $this->input- return TRUE;
>post('nidn'); }
$nama_dosen = $this->input- }
>post('nama_dosen');
$alamat = $this->input- function del_dt_dosen($nidn)
>post('alamat'); {
$notelpon = $this->input- $where = array('nidn' =>
>post('notelpon'); $nidn);
$this->m_global-
$data = array( >hapus_data($where,'dosen')
;
$this->session- }
>set_flashdata('msg',"Data else
Berhasil Dihapus"); {
redirect('web/tb_dosen'); echo validation_errors();
} }
function update_dosen() }
{
$this->form_validation-
>set_rules('nama_dosen','Na //batas configurasi table
ma Dosen','required|trim'); dosen
$this->form_validation-
>set_rules('alamat','Alamat'); //table jam
$this->form_validation- function tb_jam()
>set_rules('notelpon','Telp'); {
if($this->session-
if($this->form_validation- >userdata('status') != '')
>run()) {
{
$nidn = $this- $data['class'] = "active-
>input->post('nidn'); menu";
$nama_dosen = $this->input- $data['user'] = $this-
>post('nama_dosen'); >session-
$alamat = $this- >userdata('username');
>input->post('alamat'); $data['title'] = "Table Jam";
$notelpon = $this->input- $data['table_title'] = "Jam";
>post('notelpon'); $data['isi'] = $this->m_global-
>tampil_data('jam')->result();
$data['last_login'] = $this->db-
$data = array( >query("SELECT
'nama_dosen' => DATE_FORMAT(last_login,
$nama_dosen, '%d-%M-%Y %H:%i:%s')
'alamat' FROM login")->row();
=> $alamat, $data['msg'] = $this-
'notelpon' => >session->flashdata('msg');
$notelpon, $data['msg'] = $this->session-
>flashdata('msg');
); $data['msg'] = $this->session-
>flashdata('msg');
$where = array('nidn' =>
$nidn); $this->load-
>view('table/v_tb_jam',$data)
$this->m_global- ;
>updating($where,$data,'dos
en'); }
$this->session- else
>set_flashdata('msg',"Data {
Berhasil Diupdate"); echo "acces denied ";
redirect('web/tb_dosen');
echo "<a $waktu = $this->input-
href='login'>Klik</a>"; >post('waktu');
$this->session-
>unset_userdata('status'); $data = array(
$this->session- 'waktu' => $waktu
>sess_destroy(); );
$where = array('id_jam' =>
} $id_jam);
}
$this->m_global-
function add_data_jam() >updating($where,$data,'jam'
{ );
$this->form_validation- $this->session-
>set_rules('waktu','Interval >set_flashdata('msg',"Data
Waktu','required|trim'); Berhasil Diupdate");
redirect('web/tb_jam');
if($this->form_validation-
>run()) }else
{ {
$this->tb_jam();
$waktu = $this->input- }
>post('waktu'); }
}
//batas configurasi table else
ruangan {
echo "acces denied ";
echo "<a 'tahun_akademik'=>
href='login'>Klik</a>"; $tahun_akademik
$this->session- );
>unset_userdata('status'); $this->m_global-
$this->session- >tambah($data,'pengampu');
>sess_destroy(); $this->session-
>set_flashdata('msg',"Data
} Berhasil Ditambahkan");
} redirect('web/tb_pengampu');
}
function else
add_data_pengampu() {
{ $this->tb_pengampu();
$this->form_validation- }
>set_rules('kode_mk','Matak }
uliah','required|trim');
$this->form_validation- function update_pengampu()
>set_rules('kd_dosen','Dosen {
','required|trim'); $this->form_validation-
$this->form_validation- >set_rules('kode_mk','Matak
>set_rules('nm_kelas','Kelas', uliah','required|trim');
'required|trim'); $this->form_validation-
$this->form_validation- >set_rules('kd_dosen','Dosen
>set_rules('tahun_akademik', ','required|trim');
'Tahun $this->form_validation-
Akademik','required|trim'); >set_rules('nm_kelas','Kelas',
'required|trim');
$this->form_validation-
>set_rules('tahun_akademik',
if($this->form_validation- 'Tahun
>run()) Akademik','required|trim');
{
$kode_mk = $this-
>input->post('kode_mk');
$kd_dosen = $this- if($this->form_validation-
>input->post('kd_dosen'); >run())
$nm_kelas = $this- {
>input->post('nm_kelas'); $kode
$tahun_akademik = $this- = $this->input-
>input- >post('kode');
>post('tahun_akademik'); $kode_mk
= $this->input-
$data = array( >post('kode_mk');
'kode_mk' => $kd_dosen
$kode_mk, = $this->input-
'kd_dosen' => >post('kd_dosen');
$kd_dosen, $nm_kelas
'nm_kelas' => = $this->input-
$nm_kelas, >post('nm_kelas');
$tahun_akademik = $this- if($this->session-
>input- >userdata('status') != '')
>post('tahun_akademik'); {
}
}
} public function ambil_data()
{
b. Controller (Proses.php)
<?php $s_data = $this->db-
defined('BASEPATH') OR >query("SELECT a.kode_p,"
exit('No direct script access ." b.sks,"
allowed'); ." a.kd_dosen,"
//include_once(dirname(__FI ." b.jenis_mk "
LE__)."/Web.php"); . "FROM pengampu a "
. "JOIN matakuliah b "
. "ON a.kode_mk = b.kode " $s_data = $this->db-
. "WHERE b.semester%2 = >query("SELECT kd_hari
$this->semester" FROM hari");
." AND a.tahun_akademik $i = 0;
= '$this->tahun_akademik'"); foreach ($s_data->result() as
$datax)
{
//$s_data = $this->db- $this->hari[$i] = intval($datax-
>query("SELECT kode_p >kd_hari);
FROM pengampu");
$i = 0; $i++;
foreach ($s_data->result() as }
$datax)
{
$this->pengampu[$i] = $s_data = $this->db-
intval($datax->kode_p); >query("SELECT kd_ruang
$this->dosen[$i] = FROM ruang");
intval($datax->kd_dosen); $i = 0;
$i++; foreach ($s_data->result() as
} $datax)
{
// $s_data = $this->db- $this->ruangan[$i] =
>query("SELECT kd_dosen intval($datax->kd_ruang);
FROM dosen");
// $i = 0; $i++;
// // foreach ($s_data->result() }
as $datax)
// // { }
// // $this->dosen[$i] =
intval($datax->kd_dosen); public function nilai_awal()
// // {
// // $i++; $j_pengampu = count($this-
// // } >pengampu);
// // echo $this->pengampu[$i] $j_ruangan = count($this-
= intval($datax->kode_p); >ruangan);
$j_jam = count($this->jam);
$s_data = $this->db- $j_hari = count($this->hari);
>query("SELECT id_jam
FROM jam ");
$i = 0; for ($i=0; $i < $this->populasi;
foreach ($s_data->result() as $i++)
$datax) {
{ for ($j=0; $j < $j_pengampu;
$this->jam[$i] = intval($datax- $j++)
>id_jam); {
$this->individu[$i][$j][0] = $j;
$i++; $this->individu [$i][$j][1] =
} mt_rand(0, $j_jam - 1);
$this->individu [$i][$j][2] =
mt_rand(0, $j_hari - 1);
$this->individu [$i][$j][3] = if($jam_a == $jam_b &&
mt_rand(0, $j_ruangan - 1); $hari_a == $hari_b &&
} $ruang_a == $ruang_b)
} {
$xentrok += 1;
}
// $data['nilai'] = $this-
>individu; }
// $this->load- }
>view('tes',$data);
} $fitness = floatval(1 / (1 +
$xentrok));
function Cek_fitness($indv)
{ return $fitness;
//$this->nilai_awal();
$xentrok = 0; }
public function
$j_pengampu = count($this- Hitung_fitness()
>pengampu); {
$cek = 0; for($j=0;$j<$a;$j++)
for ($j=0; $j < $jumlah_rank; {
$j++) for($k=0;$k < 4; $k++)
{ {
$cek += $rank[$i]; $individu_baru[$i][$j][$k] =
$this->individu[$this-
if(intval($cek) >= >induk[$i]][$j][$k];
intval($target)) $individu_baru[$i+1][$j][$k] =
{ $this->individu[$this-
$this->induk[$i] = $j; >induk[$i+1]][$j][$k];
break; }
} }
}
[3] => Array
c. Olah Data Inisialisasi
(
Array
[0] => 3
(
[1] => 0
[2] => 0 [1] => Array
[3] => 3 (
) [0] => Array
(
[4] => Array [0] => 0
( [1] => 1
[0] => 4 [2] => 0
[1] => 0 [3] => 7
[2] => 1 )
[3] => 4
) [1] => Array
(
[5] => Array [0] => 1
( [1] => 0
[0] => 5 [2] => 2
[1] => 3 [3] => 3
[2] => 4 )
[3] => 2
) [2] => Array
(
[6] => Array [0] => 2
( [1] => 3
[0] => 6 [2] => 0
[1] => 0 [3] => 3
[2] => 3 )
[3] => 6
) [3] => Array
(
) [0] => 3
[1] => 1
[2] => 0 [2] => Array
[3] => 3 (
) [0] => Array
(
[4] => Array [0] => 0
( [1] => 3
[0] => 4 [2] => 3
[1] => 2 [3] => 6
[2] => 1 )
[3] => 4
) [1] => Array
(
[5] => Array [0] => 1
( [1] => 1
[0] => 5 [2] => 3
[1] => 3 [3] => 3
[2] => 2 )
[3] => 3
) [2] => Array
(
[6] => Array [0] => 2
( [1] => 0
[0] => 6 [2] => 2
[1] => 0 [3] => 5
[2] => 3 )
[3] => 1
) [3] => Array
(
) [0] => 3
[1] => 2
[2] => 3 [3] => Array
[3] => 4 (
) [0] => Array
(
[4] => Array [0] => 0
( [1] => 1
[0] => 4 [2] => 3
[1] => 1 [3] => 6
[2] => 2 )
[3] => 3
) [1] => Array
(
[5] => Array [0] => 1
( [1] => 1
[0] => 5 [2] => 3
[1] => 3 [3] => 2
[2] => 1 )
[3] => 5
) [2] => Array
(
[6] => Array [0] => 2
( [1] => 2
[0] => 6 [2] => 4
[1] => 2 [3] => 3
[2] => 3 )
[3] => 6
) [3] => Array
(
) [0] => 3
[1] => 0
[2] => 2 [4] => Array
[3] => 4 (
) [0] => Array
(
[4] => Array [0] => 0
( [1] => 0
[0] => 4 [2] => 2
[1] => 3 [3] => 6
[2] => 3 )
[3] => 3
) [1] => Array
(
[5] => Array [0] => 1
( [1] => 0
[0] => 5 [2] => 3
[1] => 3 [3] => 4
[2] => 1 )
[3] => 5
) [2] => Array
(
[6] => Array [0] => 2
( [1] => 2
[0] => 6 [2] => 0
[1] => 3 [3] => 4
[2] => 4 )
[3] => 1
) [3] => Array
(
) [0] => 3
[1] => 2
[2] => 4 [5] => Array
[3] => 4 (
) [0] => Array
(
[4] => Array [0] => 0
( [1] => 3
[0] => 4 [2] => 1
[1] => 2 [3] => 6
[2] => 2 )
[3] => 2
) [1] => Array
(
[5] => Array [0] => 1
( [1] => 0
[0] => 5 [2] => 4
[1] => 0 [3] => 5
[2] => 0 )
[3] => 2
) [2] => Array
(
[6] => Array [0] => 2
( [1] => 0
[0] => 6 [2] => 3
[1] => 1 [3] => 3
[2] => 4 )
[3] => 6
) [3] => Array
(
) [0] => 3
[1] => 2
[2] => 0 [6] => Array
[3] => 4 (
) [0] => Array
(
[4] => Array [0] => 0
( [1] => 0
[0] => 4 [2] => 1
[1] => 2 [3] => 1
[2] => 1 )
[3] => 5
) [1] => Array
(
[5] => Array [0] => 1
( [1] => 0
[0] => 5 [2] => 2
[1] => 2 [3] => 4
[2] => 0 )
[3] => 4
) [2] => Array
(
[6] => Array [0] => 2
( [1] => 0
[0] => 6 [2] => 1
[1] => 2 [3] => 4
[2] => 4 )
[3] => 7
) [3] => Array
(
) [0] => 3
[1] => 0
[2] => 1 [7] => Array
[3] => 3 (
) [0] => Array
(
[4] => Array [0] => 0
( [1] => 3
[0] => 4 [2] => 0
[1] => 1 [3] => 7
[2] => 0 )
[3] => 3
) [1] => Array
(
[5] => Array [0] => 1
( [1] => 0
[0] => 5 [2] => 3
[1] => 3 [3] => 5
[2] => 2 )
[3] => 5
) [2] => Array
(
[6] => Array [0] => 2
( [1] => 0
[0] => 6 [2] => 0
[1] => 1 [3] => 4
[2] => 4 )
[3] => 7
) [3] => Array
(
) [0] => 3
[1] => 1
[2] => 4 [8] => Array
[3] => 4 (
) [0] => Array
(
[4] => Array [0] => 0
( [1] => 3
[0] => 4 [2] => 4
[1] => 2 [3] => 6
[2] => 4 )
[3] => 3
) [1] => Array
(
[5] => Array [0] => 1
( [1] => 1
[0] => 5 [2] => 4
[1] => 1 [3] => 4
[2] => 2 )
[3] => 3
) [2] => Array
(
[6] => Array [0] => 2
( [1] => 2
[0] => 6 [2] => 1
[1] => 3 [3] => 2
[2] => 3 )
[3] => 6
) [3] => Array
(
) [0] => 3
[1] => 1
[2] => 2 [9] => Array
[3] => 2 (
) [0] => Array
(
[4] => Array [0] => 0
( [1] => 2
[0] => 4 [2] => 0
[1] => 0 [3] => 7
[2] => 4 )
[3] => 2
) [1] => Array
(
[5] => Array [0] => 1
( [1] => 1
[0] => 5 [2] => 4
[1] => 2 [3] => 4
[2] => 0 )
[3] => 5
) [2] => Array
(
[6] => Array [0] => 2
( [1] => 0
[0] => 6 [2] => 0
[1] => 1 [3] => 4
[2] => 2 )
[3] => 1
) [3] => Array
(
) [0] => 3
[1] => 2
[2] => 4 )
[3] => 4 d. Olah Data Fitness
) [0] => 0.5
[1] =>
[4] => Array 0.33333333333333
) [3] => 5
[4] => 7
[6] => Array [5] => 3
( [6] => 5
[0] => 6 [8] => 3
)
f. Olah Data Mutasi [3] => Array
Array (
( [0] => 3
( [2] => 3
( )
[0] => 0
[1] => 0 [4] => Array
[2] => 0 (
) [1] => 2
[2] => 2
( )
[0] => 1
[1] => 0 [5] => Array
[2] => 4 (
) [1] => 3
[2] => 2
( )
[0] => 2
[1] => 3 [6] => Array
[2] => 4 (
) [1] => 2
[2] => 1
[3] => 1
) [3] => Array
(
) [0] => 3
[1] => 0
[1] => Array [2] => 0
( [3] => 2
[0] => Array )
(
[0] => 0 [4] => Array
[1] => 0 (
[2] => 2 [0] => 4
[3] => 6 [1] => 0
) [2] => 0
[3] => 2
[1] => Array )
(
[0] => 1 [5] => Array
[1] => 0 (
[2] => 0 [0] => 5
[3] => 5 [1] => 2
) [2] => 0
[3] => 3
[2] => Array )
(
[0] => 2 [6] => Array
[1] => 0 (
[2] => 2 [0] => 6
[3] => 3 [1] => 3
) [2] => 4
[3] => 1
) [3] => Array
(
) [0] => 3
[1] => 0
[2] => Array [2] => 1
( [3] => 3
[0] => Array )
(
[0] => 0 [4] => Array
[1] => 3 (
[2] => 4 [0] => 4
[3] => 6 [1] => 3
) [2] => 2
[3] => 5
[1] => Array )
(
[0] => 1 [5] => Array
[1] => 0 (
[2] => 4 [0] => 5
[3] => 2 [1] => 1
) [2] => 2
[3] => 2
[2] => Array )
(
[0] => 2 [6] => Array
[1] => 0 (
[2] => 0 [0] => 6
[3] => 2 [1] => 3
) [2] => 0
[3] => 6
) [3] => Array
(
) [0] => 3
[1] => 1
[3] => Array [2] => 0
( [3] => 3
[0] => Array )
(
[0] => 0 [4] => Array
[1] => 2 (
[2] => 0 [0] => 4
[3] => 7 [1] => 0
) [2] => 2
[3] => 4
[1] => Array )
(
[0] => 1 [5] => Array
[1] => 0 (
[2] => 3 [0] => 5
[3] => 3 [1] => 1
) [2] => 4
[3] => 3
[2] => Array )
(
[0] => 2 [6] => Array
[1] => 0 (
[2] => 0 [0] => 6
[3] => 3 [1] => 3
) [2] => 0
[3] => 1
) [3] => Array
(
) [0] => 3
[1] => 0
[4] => Array [2] => 0
( [3] => 4
[0] => Array )
(
[0] => 0 [4] => Array
[1] => 0 (
[2] => 0 [0] => 4
[3] => 7 [1] => 3
) [2] => 0
[3] => 4
[1] => Array )
(
[0] => 1 [5] => Array
[1] => 0 (
[2] => 2 [0] => 5
[3] => 4 [1] => 0
) [2] => 1
[3] => 2
[2] => Array )
(
[0] => 2 [6] => Array
[1] => 3 (
[2] => 2 [0] => 6
[3] => 2 [1] => 3
) [2] => 2
[3] => 6
) [3] => Array
(
) [0] => 3
[1] => 1
[5] => Array [2] => 1
( [3] => 5
[0] => Array )
(
[0] => 0 [4] => Array
[1] => 0 (
[2] => 4 [0] => 4
[3] => 6 [1] => 2
) [2] => 2
[3] => 5
[1] => Array )
(
[0] => 1 [5] => Array
[1] => 1 (
[2] => 4 [0] => 5
[3] => 2 [1] => 2
) [2] => 3
[3] => 4
[2] => Array )
(
[0] => 2 [6] => Array
[1] => 0 (
[2] => 1 [0] => 6
[3] => 3 [1] => 1
) [2] => 3
[3] => 1
) [3] => Array
(
) [0] => 3
[1] => 2
[6] => Array [2] => 1
( [3] => 5
[0] => Array )
(
[0] => 0 [4] => Array
[1] => 0 (
[2] => 0 [0] => 4
[3] => 1 [1] => 2
) [2] => 4
[3] => 5
[1] => Array )
(
[0] => 1 [5] => Array
[1] => 0 (
[2] => 4 [0] => 5
[3] => 4 [1] => 0
) [2] => 0
[3] => 2
[2] => Array )
(
[0] => 2 [6] => Array
[1] => 1 (
[2] => 4 [0] => 6
[3] => 2 [1] => 1
) [2] => 3
[3] => 7
) [3] => Array
(
) [0] => 3
[1] => 0
[7] => Array [2] => 4
( [3] => 5
[0] => Array )
(
[0] => 0 [4] => Array
[1] => 0 (
[2] => 4 [0] => 4
[3] => 6 [1] => 2
) [2] => 2
[3] => 5
[1] => Array )
(
[0] => 1 [5] => Array
[1] => 1 (
[2] => 3 [0] => 5
[3] => 5 [1] => 0
) [2] => 2
[3] => 4
[2] => Array )
(
[0] => 2 [6] => Array
[1] => 0 (
[2] => 2 [0] => 6
[3] => 5 [1] => 3
) [2] => 4
[3] => 1
) [3] => Array
(
) [0] => 3
[1] => 3
[8] => Array [2] => 2
( [3] => 5
[0] => Array )
(
[0] => 0 [4] => Array
[1] => 3 (
[2] => 0 [0] => 4
[3] => 7 [1] => 3
) [2] => 2
[3] => 3
[1] => Array )
(
[0] => 1 [5] => Array
[1] => 0 (
[2] => 4 [0] => 5
[3] => 2 [1] => 1
) [2] => 0
[3] => 2
[2] => Array )
(
[0] => 2 [6] => Array
[1] => 3 (
[2] => 4 [0] => 6
[3] => 2 [1] => 1
) [2] => 4
[3] => 7
) [3] => Array
(
) [0] => 3
[1] => 2
[9] => Array [2] => 4
( [3] => 5
[0] => Array )
(
[0] => 0 [4] => Array
[1] => 1 (
[2] => 3 [0] => 4
[3] => 1 [1] => 3
) [2] => 0
[3] => 3
[1] => Array )
(
[0] => 1 [5] => Array
[1] => 0 (
[2] => 0 [0] => 5
[3] => 5 [1] => 0
) [2] => 1
[3] => 5
[2] => Array )
(
[0] => 2 [6] => Array
[1] => 1 (
[2] => 3 [0] => 6
[3] => 3 [1] => 3
) [2] => 2
[3] => 6
)