Tutorial CodeIgniter : Membuat Aplikasi Input Kartu Rencana Studi (KRS) Sederhana

Liburan semester ganjil akhirnya tiba juga, walaupun bisa dibilang telat karena kampus-kampus yang lainnya sudah akan memulai semester genap. Yaw begitulah kampus saya, kebijakan yang dikeluarkan kadang aneh, kadang menguntungkan dan kadang merugikan (yang ini mah sering banget). Ngomong-ngomong soal kampus saya yang makin hari makin gak jelas aja, ditambah akan dimulainya perwalian semester genap bulan depan, ada berita bagus nih karena pak puket bagian “keduitan” lagi bingung bernegosiasi dengan orang-orang yang semester kemarin mengawal aplikasi SIAKAD. Orang-orang itu tidak lain dan tidak bukan, yaw saya sendiri bersama 5 rekan yang lainnya. Permasalahannya lumayan ruwet, intinya sih saya dan rekan-rekan yang lainnya sudah tidak mau lagi melanjutkan aplikasi SIAKAD. “Lho…Lho…Alasannya…????” Alasannya sangat-sangat sederhana, cuma pak puket aja yang bikin ribet. Saya dan rekan-rekan yang lainnya cuma minta dibayari seminar penelitian nasional saja, gak lebih dan gak kurang kok. Biayanya juga sangat-sangat murah (masih di kisaran angka belasan juta) jika dibandingkan dengan aplikasi SIAKAD yang kalo dijadikan proyek bisa sampai harga ratusan juta (-_-!). Pak puket malah gak mau untuk membiayai saya dan yang lainnya seminar penelitian nasional dan setelah saya selesai ikut seminar nasional barulah pak puket menawarkan kepada saya segepok duit. Ck…ck..ck..yaw telatlah pak. Ibarat, orangnya udah mati baru dikasi duit, pas mau operasi minta duit malah gak dikasi. Yaw sudahlah, gak ada gunanya juga kalo dibahas panjang-panjang, capek cong….

Lama rasanya saya tidak posting tentang tutorial CodeIgniter, karena saya sekarang lagi senang-senangnya belajar pemrograman di Android. Jadinya kemungkinan saya akan lebih sering posting tentang pengalaman saya belajar pemrograman di Android. Kembali ke topik SIAKAD, salah satu aplikasi SIAKAD yang terpenting dan kebetulan saya yang mengerjakannya, ialah aplikasi perwalian atau bahasa kerennya aplikasi KRS. Nah, pada postingan kali ini saya akan membahas cara pembuatan aplikasi input kartu rencana studi (KRS) sederhana dengan CodeIgniter.

1. Studi kasusnya saya ambil yang sederhana saja, yaitu KRS-nya dengan sistem paket. Kalau di kampus saya menggunakan sistem SKS, yang artinya mata kuliah yang disajikan mengacu ke mata kuliah yang telah diambil sebagai prasyaratnya. Tujuannya yaw agar query databasenya gak ruwet-ruwet banget :D.

2. Kita siapkan dulu class Controller beserta fungsi-fungsinya, terdapat 3 fungsi yaitu index(), isi_krs(), dan simpan_krs().

class Krs extends CI_Controller
{
	public function index()
	{
		$dt['siswa'] = $this->krs_model->baca_siswa();
		$this->load->view('krs/daftar_siswa',$dt);
	}

	public function isi_krs()
	{
		$kode='';
		if ($this->uri->segment(3) === FALSE)
		{
    			$kode='';
				$dt['jadwal'] = "";
				echo "akses error";
		}
		else
		{
    			$kode = substr($this->uri->segment(3),2,2);
				$dt['nim'] = $this->uri->segment(3);
				$detail = $this->krs_model->baca_detail_siswa($dt['nim']);
				foreach($detail->result() as $d)
				{
					$dt["nama_mhs"] = $d->nama_mhs;
				}
				$dt['jadwal'] = $this->krs_model->baca_jadwal($kode,"ganjil");
		}
		$this->load->view('krs/isi_krs',$dt);
	}

	public function simpan_krs()
	{
		$nim = $this->input->post('nim');
		$detail = $this->input->post('detailfrs');
		if($detail!="")
		{
			$pw_header=array(
				'nim' => $nim ,
				'status' => "0");
			$temp=explode("|", $detail);
			foreach($temp as $value)
			{
				$pw=explode("+", $value);
				$pw_detail[]=array(
				'nim' => $nim ,
				'kode_mk' => $pw[0],
				'kode_dosen' => $pw[1],
				'jadwal' => $pw[2]);
			}
			$this->krs_model->hapus_data_pw_lama($nim);
			$this->krs_model->simpan_krs($pw_header,$pw_detail);
			echo "<div style='background-color:red; color:white; padding:5px; width:99%; text-align:center;'>Data Kartu Rencana Studi Tersimpan</div>";
		}
	}
}

3. Setelah itu, kita lanjutkan dengan membuat class Model. Class Model cukup sederhana, karena seperti yang sudah tuliskan di atas bahwa sistemnya menggunakan paketan. Query-nya jadi lebih sederhana, tinggal di seleksi berdasarkan semester saja.

class Krs_Model extends CI_Model
{

	public function baca_siswa()
	{
		$q = $this->db->query("select * from pw_mst_mahasiswa");
		return $q;
	}

	public function baca_detail_siswa($nim)
	{
		$q = $this->db->query("select * from pw_mst_mahasiswa where nim='".$nim."'");
		return $q;
	}

	public function baca_jadwal($nim,$status)
	{
		$thn_skr = substr(date('Y'),2,2);
		$smt = "";
		if($status=="ganjil")
		{
			$smt = (($thn_skr-$nim)*2)-1;
		}
		else
		{
			$smt = ($thn_skr-$nim)*2;
		}
		$q = $this->db->query("select * from ja_tr_jadwal as a left join (ja_mst_mk,ja_mst_dosen ) on a.kode_mk=ja_mst_mk.kode_mk and
		a.kode_dosen=ja_mst_dosen.kode_dosen where ja_mst_mk.semester=".$smt."");
		return $q;
	}

	public function hapus_data_pw_lama($nim)
	{
		$this->db->trans_start();
		$hapus_head ="(nim='".$nim."')";
		$hapus_detail ="(nim='".$nim."')";
		$this->db->delete('pw_tr_perwalian_header',$hapus_head);
		$this->db->delete('pw_tr_perwalian_detail',$hapus_detail);
		$this->db->trans_complete();
		if ($this->db->trans_status() === FALSE)
		{
    		echo "Error";
		}
	}

	public function simpan_krs($data_head,$data_detail)
	{
		$this->db->trans_start();
		$this->db->insert('pw_tr_perwalian_header',$data_head);
		foreach($data_detail as $value) {
			$this->db->insert('pw_tr_perwalian_detail',$value);
		}
		$this->db->trans_complete();
		if ($this->db->trans_status() === FALSE)
		{
    		echo "Error";
		}
	}
}

4. Dan bagian yang terakhir dan lumayan menantang, ialah pada bagian pembuatan View. Disini kita akan memainkan sedikit fungsi javascript untuk menyimpan variabel-variabel yang akan disimpan sebagai inputan kartu rencana studi ke dalam database. Saya tampilkan kode untuk menampilkan jadwalnya saja dulu yaw, javascriptnya lumayan panjang dan nanti bisa dilihat di source code lengkapnya.

		<?php
			foreach($jadwal->result_array() as $d)
			{
				echo '<tr><td id="mk_'.$d['id_jadwal'].'">'.$d['kode_mk'].'</td><td>'.$d['nama_mk'].'</td><td>'.$d['nama_dosen'].'
				</td><td id="dosen_'.$d['id_jadwal'].'">'.$d['kode_dosen'].'</td><td>'.$d['semester'].'</td>
				<td id="'.$d['id_jadwal'].'">'.$d['jum_sks'].'</td><td id="jdw_'.$d['id_jadwal'].'">'.$d['jadwal'].'</td><td>
				<input type="checkbox" name="chk_'.$d['id_jadwal'].'" onchange="javascript:pilih(this);"/>
				</td></tr>';
			}
		?>

5. Hasil akhirnya seperti gambar di bawah ini. Hampir sama dengan kartu hasil studi yang biasa kita terima di akhir semesteran, bedanya yaw gak ada nilainya :).

Aplikasi input KRS ini sebenarnya belum jadi, masih ada yang perlu dikembangkan yaitu jika mahasiswa sudah pernah menyimpan kartu rencana studinya dan ketika membukanya kembali hanya untuk sekedar melihat atau mengubah jadwal yang dipilih, seharusnya mata kuliah yang dipilih sudah tercentang. Nah, itu tantangan untuk rekan-rekan yang mungkin kebetulan ingin mencobanya dengan gaya pemrogramannya sendiri-sendiri :D. OK deh, sekian dulu postingan saya kali ini. Semoga bisa bermanfaat untuk rekan-rekan yang mampir ke blog saya ini.

Happy Blogging and Keep Coding

Cheerrrsss….!!!!

[to_like]Download Aplikasi[/to_like]

19 comments

  1. tom tom Reply

    bro mending di buat yang bagus & jual sendiri kan lumayan tuh….
    kemaren kampus2 di kota palembang banyak yg beli kisaran di atas 150 jt……kan kalo di jual sendiri lumayan bisa di barterin sama INOVA / AVANZA…ckckck

  2. Adbul Reply

    mas, ada aplikasi lengkapnya ga (login, dll)?
    butuh juga untuk pengembangan aplikasi di kampus, masih manual soalnya..

  3. larecilik Reply

    bro..
    kyknya programnya ad dikit bug..

    salam kenal
    @larecilik banywuangi… 😀

  4. ryan.suryandi Reply

    bisa bapak kirimkan website kampus lengkap dengan databasenya dan panduannya nnti saya beli pak ???

  5. iwon Reply

    Unable to connect to your database server using the provided settings.

    Filename: C:\xampp\htdocs\siakad-master\system\database\DB_driver.php

    Line Number: 124

    error gan

  6. Abizach Reply

    Gan, sy download gede lumbung – simpel_krs.zip kok tidak bisa aja … 4share message : Sorry, the file link that you requested is not valid. Sign error. Mohon ada alternatif link laennya ato kirim via email abizach@yahoo.com. Terimakasih