1. Karena masih berhubungan dengan aplikasi KRS yang saya posting kemarin, maka saya gunakan file-file framework yang kemarin. Controller, Model dan View-nya saya bedakan agar bisa dengan mudah ditambahkan oleh rekan-rekan yang mungkin sudah men-download file lengkap aplikasi KRS yang kemarin.
2. Kita buat terlebih dahulu class logic alias Controller-nya. Saya buat yang sederhana saja dengan 2 buah function, index() dan lihat_transkrip().
1 class Transkrip extends CI_Controller
2{
3 public function index()
4 {
5 $page=$this->uri->segment(3);
6 $limit=12;
7 if(!$page):
8 $offset = 0;
9 else:
10 $offset = $page;
11 endif;
12
13 $tot_hal = $this->transkrip_model->baca("pw_mst_mahasiswa");
14 $config['base_url'] = base_url() . 'transkrip/index/';
15 $config['total_rows'] = $tot_hal->num_rows();
16 $config['per_page'] = $limit;
17 $config['uri_segment'] = 3;
18 $config['first_link'] = 'First';
19 $config['last_link'] = 'Last';
20 $config['next_link'] = 'Next';
21 $config['prev_link'] = 'Previous';
22 $this->pagination->initialize($config);
23 $dt["paginator"] =$this->pagination->create_links();
24
25 $dt['siswa'] = $this->transkrip_model->baca_siswa($offset,$limit);
26 $this->load->view('transkrip/daftar_siswa',$dt);
27 }
28
29 public function lihat_transkrip()
30 {
31 if ($this->uri->segment(3) === FALSE)
32 {
33 echo "<meta http-equiv='refresh' content='0; url=".base_url()."/transkrip'>";
34 }
35 else
36 {
37 $dt['nim'] = $this->uri->segment(3);
38 $seleksi = array('nim' => $dt['nim']);
39 $detail = $this->transkrip_model->baca_detail("pw_mst_mahasiswa",$seleksi);
40 foreach($detail->result() as $d)
41 {
42 $dt["nama_mhs"] = $d->nama_mhs;
43 }
44
$dt['transkrip'] = $this->transkrip_model->transkrip_nilai($dt['nim']);
45 }
46 $this->load->view('transkrip/lihat_transkrip',$dt);
47 }
48}
3. Selanjutnya kita lanjutkan ke class business process alias Model-nya. Saya tambahkan 2 tabel, yaitu tabel nilai dan tabel bobot nilai agar perhitungan IPK menjadi lebih statis. Sebenarnya bisa saja kalau hanya menggunakan tabel nilai, tapi query database-nya menjadi lebih ruwet karena kita harus menggunakan fungsi CASE.
.
- 1
- class Transkrip_Model extends CI_Model
- 2
- {
- 3
- 4
- public function baca($tabel)
- 5
- {
- 6
- $q = $this->db->get($tabel);
- 7
- return $q;
- 8
- }
- 9
- 10
- public function baca_siswa($offset,$limit)
- 11
- {
- 12
- $q = $this->db->get("pw_mst_mahasiswa",$limit,$offset);
- 13
- return $q;
- 14
- }
- 15
- 16
- public function baca_detail($tabel,$seleksi)
- 17
- {
- 18
- $q = $this->db->get_where($tabel,$seleksi);
- 19
- return $q;
- 20
- }
- 21
- 22
- public function transkrip_nilai($nim){
- 23
- $q = $this->db->query("
- 24
- SELECT t_n.nim, m.nama_mhs, t_n.kode_mk, t_n.nama_mk, t_n.semester_ditempuh, t_n.jum_sks, t_n.grade, b.bobot, (
- 25
- t_n.jum_sks * b.bobot) AS NxB FROM
- 26
- (SELECT n.nim, n.kode_mk, mk.nama_mk, mk.jum_sks, n.semester_ditempuh, n.grade
- 27
- FROM eva_tr_nilai as n LEFT JOIN ja_mst_mk as mk ON n.kode_mk = mk.kode_mk
- 28
- WHERE n.nim = '$nim') as t_n
- 29
- LEFT JOIN eva_mst_bobot as b ON b.nilai = t_n.grade
- 30
- LEFT JOIN pw_mst_mahasiswa as m ON t_n.nim = m.nim
- 31
- ORDER BY t_n.semester_ditempuh
- 32
- ");
- 33
- return $q;
- 34
- }
- 35}
- 1
- <table border="1" width="100%" style="border-collapse: collapse;" cellpadding="4">
- 2
- <tr bgcolor="#FFFFFF">
- 3
- <td align="center">No</td>
- 4
- <td align="center">Kode MK</td>
- 5
- <td align="center">Nama MK</td>
- 6
- <td align="center">Semester</td>
- 7
- <td align="center">SKS</td>
- 8
- <td align="center">Nilai</td>
- 9
- <td align="center">Bobot</td>
- 10
- <td align="center">SKS x Bobot</td>
- 11
- </tr>
- 12
- <?php
- 13
- $totalNB=0;
- 14
- $totalSKS=0;
- 15
- $no=1;
- 16
- 17
- foreach($transkrip->result_array() as $value)
- 18
- {
- 19
- echo '<tr>
- 20
- <td>'. $no.'</td>
- 21
- <td>'. $value['kode_mk'].'</td>
- 22
- <td> '. $value['nama_mk'].'</td>
- 23
- <td align="center">'.$value['semester_ditempuh'].'</td>
- 24
- <td align="center">'. $value['jum_sks'].' </td>
- 25
- <td align="center">'. $value['grade'].'</td>
- 26
- <td align="center">'. $value['bobot'].'</td>
- 27
- <td align="center">'. $value['NxB'].'</td>
- 28
- </tr>';
- 29
- 30
- $no++;
- 31
- if($value['grade'] != 'T') {
- 32
- $totalNB +=$value['NxB'];
- 33
- $totalSKS+=$value['jum_sks'];
- 34
- }
- 35
- }
- 36
- $ip = 0;
- 37
- if($totalNB !=0)
- 38
- $ip = round($totalNB/$totalSKS, 2);
- 39
- echo '
- 40
- <tr>
- 41
- <td colspan="4"><strong>Jumlah SKS yang telah diselesaikan : '.$totalSKS.' SKS</strong></td>
- 42
- <td colspan="4"><strong>IP Kumulatif : '.$ip.'</strong></td>
- 43
- </tr>';
- 44
- ?>
- 45
- </table>



0 komentar:
Posting Komentar