Anda di halaman 1dari 3

MEMBUAT PAGING DI CODEIGNITER

Dec 23, 2009   

Membuat Paging di CodeIgniter

Mengapa kita perlu menggunakan paging pada sebuah applikasi web? Anda mungkin akan bertanya-
tanya tentang hal itu. Paging adalah salah satu cara untuk melakukan optimasi query. Dalam sebuah
kasus saya pernah mengerjakan project yang datanya dalam satu tabel itu sampai ratusan ribu record.
Seandainya data tersebut di tampilkan pada sebuah halaman web saja, maka akan menghabiskan
tempat. Dan akan terasa tidak enak untuk dilihat. Oleh karena itu digunakan paging untuk
mengantisipasi hal itu.

CodeIgniter mempunyai class pagination untuk mengatasi hal tersebut dan penggunaannya pun juga
sangat mudah. Untuk lebih jelasnya mari kita praktekkan saja.

Disini nanti kita akan buat sebuah controller dengan nama admin.php dan disimpan pada
folder application/controllers. Masukkan code berikut ini kedalam file tersebut.
view plaincopy to clipboardprint?

1. <?php  
2. class admin extends Controller {  
3.   
4.     function admin()  
5.     {  
6.         parent::Controller();  
7.         $this->load->model('admin_model');                  
8.     }  
9.       
10.     function artikel() {                              
11.         $data=$this->admin_model->artikel();  
12.         $this->load->view('mypaging',$data);                
13.     }  
14. }  
15. ?>  

Kemudian buatlah file admin_model.php dan simpan ke dalam folderapplication/models kemudian


masukkan code berikut ini :
view plaincopy to clipboardprint?

1. <?php  
2. class admin_model extends Model{   
3.        
4.     function admin_model(){   
5.         parent::Model();  
6.     }  
7.       
8.     function artikel(){  
9.         $string_query       = "select * from artikel order by artikelid";  
10.         $query          = $this->db->query($string_query);              
11.         $config['base_url']     = base_url().'index.php/admin/artikel/';  
12.         $config['total_rows']   = $query->num_rows();  
13.         $config['per_page']     = '30';  
14.         $num            = $config['per_page'];  
15.         $offset         = $this->uri->segment(3);  
16.         $offset         = ( ! is_numeric($offset) || $offset < 1) ? 0 : $offset;  
17.           
18.         if(emptyempty($offset))  
19.         {  
20.             $offset=0;  
21.         }  
22.           
23.         $this->pagination->initialize($config);         
24.           
25.         $data['query']      = $this->db->query($string_query." limit $offset,
$num");    
26.         $data['base']       = $this->config->item('base_url');  
27.       
28.         return $data;  
29.     }  
30. }  
31. ?>  

Kemudian buatlah file mypaging.php dan simpan kedalam folderapplication/views. Masukkan code


berikut ini ke dalam file tersebut.
view plaincopy to clipboardprint?

1. <html>    
2. <head>    
3. <title>My Paging</title>    
4. </head>    
5. <body>  
6. <table>  
7. <thead>  
8.     <tr>        
9.         <th>Artikel ID</th>                               
10.         <th>Judul</th>  
11.         <th>Date</th>  
12.         <th>Post by</th>                                  
13.         <th>View</th>  
14.     </tr>  
15. </thead>  
16. <tbody>  
17.     <?     
18.     foreach($query->result() as $row)  
19.     {                     
20.         echo   
21.         "<tr>           
22.             <td>$row->artikelid</td>  
23.             <td>$row->title</td>  
24.             <td>$row->artikeldate</td>                     
25.             <td>$row->postby</td>                                          
26.             <td>$row->view</td>  
27.         </tr>";         
28.     }  
29.     ?>         
30. </tbody>  
31. </table>  
32. <p align="center"><?=$this->pagination->create_links();?></p>  
33. </body>  
34. </html>  

Tiga file sudah kita buat, selanjutnya akan saya jelaskan code-code pada masing-masing file
tersebut. Di dalam controller admin.php tedapat constructor yang memanggil file admin_model.php.
Dibawahnya lagi terdapat code berikut:
view plaincopy to clipboardprint?

1. function artikel() {                              
2.     $data=$this->admin_model->artikel();  
3.     $this->load->view('mypaging',$data);                
4. }  

Fungsi artikel ini akan memanggil fungsi artikel() yang ada pada admin_model dan menyimpan return
valuenya ke dalam variable $data. Setelah itu fungsi ini akan memanggil file mypaging.php yang ada di
folder views dengan memberikan parameter $data.
Di dalam admin_model.php sendiri terdapat fungsi artikel. Di dalam fungsi ini kita akan melakukan
query untuk mengambil data di table artikel. Berikut ini scriptnya:
view plaincopy to clipboardprint?

1. $string_query   = "select * from artikel order by artikelid";  
2. $query      = $this->db->query($string_query);  

Kita juga akan melakukan konfigurasi untuk paging yang kita buat.

    $config['base_url'] = base_url().'index.php/admin/artikel/';

Script di atas digunakan untuk mengatur arah link dari paging yang kita buat.

    $config['total_rows'] = $query->num_rows();

Script di atas digunakan untuk mengetahui total record dari query yang kita jalankan.

    $config['per_page'] = '30';

Script di atas digunakan untuk mengatur jumlah baris yang akan di tampilkan dalam satu halaman.

Sekarang kita akan melihat script dalam file mypaging.php di folder view. Di situ terdapat script untuk
menampilkan paging.

    <?=$this->pagination->create_links();?>

Script ini akan membuat paging secara otomatis. Mudah bukan ?

Selamat mencoba !!

 
posted by : ade 

Anda mungkin juga menyukai