Anda di halaman 1dari 6

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. LhoLhoAlasannya???? 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. Ckck..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().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

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)

43
44
45
46

{
$pw=explode("+", $value);
$pw_detail[]=array(
'nim' => $nim ,

47

'kode_mk' => $pw[0],

48

'kode_dosen' => $pw[1],

49
50
51
52

'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;


53 padding:5px; width:99%; text-align:center;'>Data Kartu Rencana Studi
Tersimpan</div>";
54
}
55
}
56
}

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.
1
2
3

class Krs_Model extends CI_Model

4
5
6

public function baca_siswa()


{

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

$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;

23
24
25
26
27

}
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=".
29
$smt."");
30
return $q;
31
}
32
28

33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

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.
1
2
3

<?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'].'">'.
5
$d['kode_dosen'].'</td><td>'.$d['semester'].'</td>
<td id="'.$d['id_jadwal'].'">'.$d['jum_sks'].'</td><td id="jdw_'.
6
$d['id_jadwal'].'">'.$d['jadwal'].'</td><td>
4

<input type="checkbox" name="chk_'.


$d['id_jadwal'].'"onchange="javascript:pilih(this);"/>
8
</td></tr>';
9
}
10
?>
7

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.

Anda mungkin juga menyukai