Codeigniter Cara Menciptakan Pagination

Codeigniter Cara Menciptakan Pagination
Codeigniter Cara Menciptakan Pagination
Didalam tampilan tabel kadang data mempunyai banyak contohnya sekitar 100 data maka bila ditampilkan maka akan menciptakan tabel panjang kebawah, alangkah bagusnya dibentuk bila dibagi halamannya, jadi data yang 100 bila dibagi 10 maka tabel menciptakan page atau halaman hingga sepuluh, sekalian setting ada prev atau mundur dan next atau maju sanggup di lihat menyerupai gambar dibawah ini.
Lalu bagaimana cara menciptakan page atau halaman di codeigniter tersebut?. Pada postingan sebelumnya sudah diberikan teladan kesudahannya yang sanggup dilihat pada postingan cara menciptakan arahan dengan mengambil max_id secara otomatis ditambah 1, namun semoga lebih terang berikut caranya:
  • Download codeigniter disini saya memakai versi 2.2.0 dan extract di localhost dengan nama pagination
  • Hilangkan index.php dengan cara disini
  • Buat database dengan nama db_pagination dan buat nama tabel menyerupai dibawah ini
CREATE TABLE IF NOT EXISTS `mahasiswa` (   `id` int(11) NOT NULL,   `kode_mahasiswa` varchar(15) NOT NULL,   `nama_mahasiswa` varchar(250) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
  • Lalu Isi tabel dengan data sebagai berikut
INSERT INTO `mahasiswa` (`id`, `kode_mahasiswa`, `nama_mahasiswa`) VALUES (1, 'MHS-2014-0001', 'jepretcode'), (2, 'MHS-2014-0002', 'jepretcode 2'), (3, 'MHS-2014-0003', 'jepretcode 3'), (4, 'MHS-2014-0004', 'jepretcode 4'), (5, 'MHS-2014-0005', 'jepretcode 5'), (6, 'MHS-2014-0006', 'jepretcode 6'), (7, 'MHS-2014-0007', 'jepretcode 7'), (8, 'MHS-2014-0008', 'jepretcode 8'), (9, 'MHS-2014-0009', 'jepretcode 9'), (10, 'MHS-2014-0010', 'jepretcode 10'), (11, 'MHS-2014-0011', 'jepretcode 11'), (12, 'MHS-2014-0012', 'jepretcode 12'), (13, 'MHS-2014-0013', 'jepretcode 13'), (14, 'MHS-2014-0014', 'jepretcode 14'), (15, 'MHS-2014-0015', 'jepretcode 15'); 
  • Rubah default controller "welcome" menjadi "c_pagination" yang ada dalam file routes.php dan folder application\config\
$route['default_controller'] = "welcome";  Menjadi  $route['default_controller'] = "c_pagination"; 
  • Berikutnya ialah menciptakan controller untuk pagination untuk sebagai teladan buatlah dengan nama c_pagination.php dan kodenya sebagai berikut kemudian letakkan didalam folder appication\controller\:
<?php  class C_pagination extends CI_Controller{    public function __construct(){   parent::__construct();      $this->load->model('m_pagination');  }    public function index(){   redirect('c_pagination/lihat_pagination');  }     //MODUL MAHASISWA     public function lihat_pagination(){   if($this->uri->segment(3)==""){    $offset=0;   }else{    $offset=$this->uri->segment(3);   }   $limit = 7;    $data['mahasiswa'] = $this->m_pagination->getAllMahasiswa($offset, $limit);   $data['count'] = $this->m_pagination->getAllMahasiswa_count();    $config = array();   $config['base_url'] = base_url(). 'c_pagination/lihat_pagination/';   $config['per_page'] = $limit;   $config['uri_segment'] = 3;   $config['num_links'] = 5;     $config['first_tag_open'] = '<li>';   $config['first_link'] = 'First';   $config['first_tag_close'] = '</li>';   $config['prev_link'] = 'Prev';   $config['prev_tag_open'] = '<li>';   $config['prev_tag_close'] = '</li>';   $config['cur_tag_open'] = '<li class="active"><a href>';   $config['cur_tag_close'] = '</a></li>';   $config['next_link'] = 'Next';   $config['next_tag_open'] = '<li>';   $config['next_tag_close'] = '</li>';   $config['num_tag_open'] = '<li>';   $config['num_tag_close'] = '</li>';   $config['last_tag_open'] = '<li>';   $config['last_link'] = 'Last';   $config['last_tag_close'] = '</li>';   $config['total_rows'] = $data['count'];   $this->pagination->initialize($config);   $this->session->set_userdata('row', $this->uri->segment(3));   $data['error'] = "";       $this->load->model('m_pagination');     $this->load->view('pagination', $data);  }    } 
  • Kemudian buatlah model untuk pagination dengan nama m_pagination.php dengan arahan menyerupai dibawah ini dan letakkan di dalam folder application\model\
<?php   class M_pagination extends CI_Model{    public function __construct(){   parent::__construct();  }    public function getAllMahasiswa($offset, $limit){   $query = $this->db->query("SELECT * FROM mahasiswa ORDER BY kode_mahasiswa DESC LIMIT $offset, $limit");   return $query;  }    public function getAllMahasiswa_count(){   $query = $this->db->query("    SELECT * FROM mahasiswa   ");   return $query->num_rows();  } } 
  • Buatlah tampilannya dengan nama pagination.php dan letakkan di dalam folder application\views\ dengan arahan dibawah ini
<!DOCTYPE html> <html lang="en"> <head>     <style>     body {   padding-top: 10px;   padding-left: 10px;   padding-right: 20px;   margin: 0;   font-family: "Helvetica";   font-size: 14px;   line-height: 18px;   color: #000000;   background-color: #ffffff;  }    .container,  .navbar-fixed-top .container,  .navbar-fixed-bottom .container {  width: 80%;  }   .table {   width: 80%;   margin-bottom: 18px;  }   .table th,  .table td {   padding: 8px;   line-height: 18px;   text-align: left;   vertical-align: top;   border-top: 1px solid #dddddd;  }   .table th {   font-weight: bold;  }   .table thead th {   vertical-align: bottom;  }    .table-bordered {   border: 1px solid #dddddd;   border-collapse: separate;   *border-collapse: collapsed;   border-top: 0;   border-left: 0;   -webkit-border-radius: 4px;   -moz-border-radius: 4px;         border-radius: 4px;  }   .table-bordered th,  .table-bordered td {  border-left: 1px solid #dddddd;  }   .table-striped tbody tr:nth-child(odd) td,  .table-striped tbody tr:nth-child(odd) th {  background-color: #f9f9f9;  }   .table tbody tr:hover td,  .table tbody tr:hover th {  background-color: #f5f5f5;  }    #Halaman   .pagination {   height: 36px;   margin: 18px 0;   }     .pagination ul {   display: inline-block;   }    .pagination li {   display: inline;   }    .pagination a {   padding: 10px 14px;   }    .pagination a:hover,   .pagination .active a {   background-color: #f0f0f0;   }        </style> </head> <body> <center>  <div class="container">    <h1>Lihat Mahasiswa</h1>      <table class="table table-striped table-bordered">    <thead>     <th>No</th>     <th>Kode Mahasiswa</th>     <th>Nama Mahasiswa</th>    </thead>    <tr>     <?php $no=1;       foreach($mahasiswa->result() as $row){      ?>     <td><?php echo $this->session->userdata('row')+$no; ?></td>     <td><?php echo ucwords($row->kode_mahasiswa); ?></td>     <td><?php echo ucwords($row->nama_mahasiswa); ?></td>    </tr>     <?php       $no++;      }      ?>   </table>   </div>   <div class="pagination">    <ul>     <?php echo $this->pagination->create_links(); ?>    </ul>   </div>   <hr />   <div>    <div class="span2">    <footer>    <p>&copy; jepretcode 2014.</p>    </footer>    </div>   </div>  </center>   </body> </html> 
  • Baiklah coba dijalankan dilocalhost untuk dicoba. apakah yang terjadi?. bila dicoba maka akan tampil kesalahan Fatal error: Call to undefined function redirect, bagaimana cara mengatasinya?. silahkan lihat cara mengatasi kesalahan Fatal error: Call to undefined function redirect()
  • Setelah melaksanakan perbaikan sesuai perintah diatas maka coba lagi diulang refresh localhost lihat apa yang terjadi?. masih mendapat Fatal Error: dengan Message: Undefined property: C_Pagination::$db sehingga tidak sanggup dijalankan, bila ketemu kesalahan menyerupai ini maka untuk lihat cara mengatasi kesalahan Fatal Error: Undefined property: C_pagination::$db
  • Setelah melaksanakan perbaikan lakukan refresh localhost lagi. kemudian kesalahan apa lagi yang dijumpai?. Yaitu kesalahan A Database Error Occurred "No database selected'. Berikut cara mengatasi kesalahan No database selected
  • Lakulan lagi refresh localhost Anda sesudah mengatasi problem diatas. kemudian lihat kesalahan apa lagi yang akan dijumpai?. yaitu. Fatal error: Call to a member function set_userdata() on a non object dengan pesan Message: Undefined property:C_pagination::$session. lakukan cara mengatasi kesalahan Undefined property: C_pagination::$session
  • Lakukan refresh ulang lagi dan tentunya menemukan kesalahan An Error Was Encountered In order to use the Session class you are required to set an encryption key. lihat cara mengatasinya disini
  • Lakukan lagi refresh ulang dan lihat hasilnya.
Itulah salah satu cara menciptakan pagination di codeigniter. lihat video tutorial cara menciptakan pagination dengan codeigniter.


Sumber http://jepretcode.blogspot.com/