Friday, November 29, 2013

Paggination (Codeigniter)

Paggination ? ya sekarang saya akan membahas paggination. secara konsep sebetulnya sama saja dengan PHP biasa, hanya di CI telah disediakan library dan intinya lebih memudahkan kita. langsung saja borr.

buat database terlebih dahulu

create database latihan;

use latihan;

lalu buat table galerinya,

CREATE TABLE IF NOT EXISTS `galeri` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `foto` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


sekarang waktunya konfigurasi database dan autoload.

buka file database.php pada folder application/config/database.php



    $db['default']['hostname'] = 'localhost';


      $db['default']['username'] = 'root';


        $db['default']['password'] = '';


          $db['default']['database'] = 'latihan';


            $db['default']['dbdriver'] = 'mysql';





            lalu buka file autoload.php pada folder application/config/autoload.php, cari baris kode berikut

            $autoload['libraries'] = array('');

            ubah menjadi

            $autoload['libraries'] = array('database');

            lalu cari kode

            $autoload['helper'] = array('');

            ubah menjadi

            $autoload['helper'] = array('url','file','html','form');


            setelah itu siapkan modelnya, berikut modelnya

            galeri_model.php


            1. <?php

            2. class galeri_model extends CI_Model{
            3. function view($table,$limit="", $start=""){
            4. if(!empty($limit) || !empty($start)){
            5. $q = "LIMIT $start,$limit";
            6. }
            7. $query=$this->db->query("select * from $table $q")->result();
            8. return $query;
            9. }

            10. function hitung($table) {
            11. return $this->db->count_all("$table");
            12. }
            13. }

            simpan pada folder application/models, lalu buat controllernya.

            galeri.php

            <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

            class Galeri extends CI_Controller {


            public function index()
            {
            $this->load->model('galeri_model');
                  $this->load->library('pagination');
                   
                       $config = array();
                            $config["base_url"] = base_url() . "galeri/index";
                            $config["total_rows"] = $this->galeri_model->hitung("galeri");
                            $config["per_page"] = 1;
                            $config["uri_segment"] = 3;
                            
                           

                            $this->pagination->initialize($config);
                            $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
                     
                            $data["links"] = $this->pagination->create_links();  
                            $data['view']=$this->galeri_model->view("galeri",$config["per_page"], $page);
               
                            $this->load->view('view', $data);
                        
                   
                     
            }

            }

            $config["per_page"] = 1; maksudnya, kita menampilkan berapa data pada setiap halaman. simpan file tersebut pada folder application/controllers. lalu buat viewnya

            view.php


            1. <div >
            2. <table >
            3.     <tr>
            4.         <td>Foto</td>
            5.     </tr>
            6.     
            7.     <?php
            8.         foreach($view as $data){
            9.          ?>
            10.              <tr>
            11.         <td><?php echo $data->foto?></td>
            12.     </tr>
            13.     
            14.         <?php
            15.         }
            16.     ?>
            17. </table>
            18. </div>

            19. </div>
            20. </div>
            21. </div>

            22. <?php if( ! empty($links)){ echo $links; } ?>
            simpan pada folder application/views. yap sudah segitu bahasan mengenai paggination, semoga bermanfaat, jika masih kurang mengerti sila



                            

            Upload Gambar (Codeigniter)

            Sekarang saya akan membahas mengenai upload file dicodeigniter. pada dasarnya sama saja alurnya dengan  upload pada PHP biasa. mungkin bahasa yang sedikit berbeda. yuk langsung ke masalahnya saja.

            buat database terlebih dahulu

            create database latihan;

            use latihan;

            lalu buat table galerinya,

            CREATE TABLE IF NOT EXISTS `galeri` (
              `id` int(3) NOT NULL AUTO_INCREMENT,
              `foto` varchar(100) NOT NULL,
              PRIMARY KEY (`id`)

            ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


            sekarang waktunya konfigurasi database dan autoload.

            buka file database.php pada folder application/config/database.php



              $db['default']['hostname'] = 'localhost';


                $db['default']['username'] = 'root';


                  $db['default']['password'] = '';


                    $db['default']['database'] = 'latihan';


                      $db['default']['dbdriver'] = 'mysql';


                      lalu buka file autoload.php pada folder application/config/autoload.php, cari baris kode berikut

                      $autoload['libraries'] = array('');

                      ubah menjadi

                      $autoload['libraries'] = array('database');

                      lalu cari kode

                      $autoload['helper'] = array('');
                      ubah menjadi

                      $autoload['helper'] = array('url','file','html','form');


                      setelah itu siapkan modelnya, berikut modelnya


                      1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

                      2. class Blog_model extends CI_Model {

                      3. function GetAll($query = ''){
                      4. return $this->db->query($query);
                      5. }
                      6. public function InsertData($table,$data){
                      7.  return $this->db->insert($table,$data); 
                      8.  }
                      9. }
                      simpan file tersebut pada folder application/models, lalu buat controllernya.

                      galeri.php

                      1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

                      2. class Galeri extends CI_Controller {

                      3. function index(){
                      4. if($this->input->post("simpan")){
                      5. $this->load->library('upload');
                      6. //Nama Foto dirubah
                      7. $filename = 'gambar-'.trim(str_replace(" ","_","Foto")).'-'.date('dmYHis');
                      8.             
                      9. if($this->upload_gambar($filename) == FALSE){
                      10. echo $data['err_gambar'] = $this->upl_error;
                      11. }else{
                      12.                 
                      13. $x = array(
                      14. 'foto'=>$this->upl_name,
                      15. $result = $this->blog_model->InsertData('galeri',$x);
                      16. }
                      17. }
                      18. $data = array(
                      19. 'galeri' =>$this->blog_model->GetAll("select * from galeri")->result_array()
                      20. );
                      21. $this->load->view('galeri',$data);
                      22. }
                      23. function upload_gambar($filename){
                      24.         $config['upload_path']    = "./gambar/";
                      25.         $config['allowed_types']  = 'jpg|jpeg|png|gif';
                      26.         $config['max_size']       = '2000';
                      27.         $config['max_width']      = '2000';
                      28.         $config['min_width']      = '2000';
                      29.         $config['file_name']      = $filename;

                      30.         $this->upload->initialize($config);
                      31.         if( ! $this->upload->do_upload('gambar')){
                      32.             $this->upl_error = $this->upload->display_errors('','');
                      33.             return FALSE;
                      34.         }else{
                      35.             $data['upload'] = $this->upload->data();
                      36.             $this->upl_name = $data['upload']['file_name'];
                      37.             return TRUE;
                      38.         }
                      39.     }
                      40. }

                      function upload_gambar merupakan fungsi yang digunakan untuk memindahkan gambar pada folder kita, pada fungsi tersebut terdapat kode    $config['upload_path']    = "./gambar/"; kode tersebut menandakan foto akan dipindahkan pada folder gambar, oleh karena itu buat folder gambar pada folder root sejajar dengan folder application.

                      setelah itu buat file viewnya

                      galeri.php

                      1. <?php echo form_open_multipart('galeri') ?>

                      2. <table>
                      3. <tr>
                      4.     <td>Pilih Gambar</td>
                      5.     <td><input type="file" name="gambar"/></td>
                      6. </tr>

                      7. <tr>
                      8.     <td></td>
                      9.     <td><input type="submit" name="simpan" value="Simpan"/></td>
                      10. </tr>


                      11.     
                      12. </table>

                      13. <hr/>

                      14. <?php echo form_close();?>

                      15. <?php foreach($galeri as $c){ ?>
                      16.     <table style="float:left" class="table">
                      17. <tr>
                      18.             <td colspan="2"><?php echo $c['judul']?></td> 
                      19.         </tr>
                      20. <tr>
                      21.             <td><img src="<?php echo base_url()?>gambar/<?php echo $c['foto']?>" width="200"/></td>
                      22.         
                      23.         </td> 
                      24.         </tr>
                      25.     </table>
                      26. <?php } ?>
                      ya sekian ulasan mengenai upload, semoga bermanfaat, jika ada yang kurang jelas silahkan komentar saja :D

                      Log In (Codeigniter)

                      Pada artikel terdahulu penulis telah mencoba membuat log in, hanya saja dengan PHP manual. pada kesempatan kali ini penulis akan mencoba membuat log in menggunakan Codeigniter. Request mas siswo, semoga membantu anda mas :) .

                      pertama buat database, berikut querynya

                      create database latihan;

                      use latihan;

                      lalu buat table users yang akan digunakan untuk log in. berikut query dari table users

                      CREATE TABLE IF NOT EXISTS `users` (
                        `email` varchar(80) NOT NULL,
                        `password` varchar(40) NOT NULL,
                        PRIMARY KEY (`email`)
                      ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

                      INSERT INTO `users` (`email`, `password`) VALUES
                      ('admin', '21232f297a57a5a743894a0e4a801fc3');

                      sekarang waktunya konfigurasi database,config dan autoload.

                      buka file database.php pada folder application/config/database.php


                      1. $db['default']['hostname'] = 'localhost';
                      2. $db['default']['username'] = 'root';
                      3. $db['default']['password'] = '';
                      4. $db['default']['database'] = 'latihan';
                      5. $db['default']['dbdriver'] = 'mysql';
                      lalu buka file config.php pada folder application/config/config.php, cari baris kode berikut

                      $config['encryption_key'] = '';

                      isikan kata apapun pada kutip tersebut, contoh 

                      $config['encryption_key'] = 'deden';

                      lalu buka file autoload.php pada folder application/config/autoload.php, cari baris kode berikut

                      $autoload['libraries'] = array('');

                      ubah menjadi

                      $autoload['libraries'] = array('session','database');

                      setelah itu siapkan modelnya, berikut modelnya

                      user_model.php

                      1. <?php
                      2. class User_Model extends CI_Model
                      3. {
                      4.     
                      5.     function __construct(){
                      6.         parent::__construct();
                      7.     }
                      8.     
                      9. function masuk($email,$password){
                      10.         $query=$this->db->query("select * from users where email='$email' and password='$password'");
                      11.         return ($query->num_rows()>0) ? $query->row() : FALSE;
                      12. }

                      13. }
                      simpan file tersebut pada folder application/models, lalu buat controllernya.

                      login.php


                      1. <?php if (! defined('BASEPATH')) exit('No direct script access allowed');

                      2. class Login extends CI_Controller {

                      3. function index(){
                      4.     $this->load->view('login');
                      5. }

                      6. function masuk(){
                      7.     
                      8.     $this->load->model('user_model');
                      9.      $password   =   md5($this->input->post('password'));
                      10.      $email   =   $this->input->post('email');
                      11.     $query = $this->user_model->masuk($email,$password);
                      12.  if($query==TRUE){
                      13.        $level = $this->user_model->detail($email);
                      14.        $data = array('username' => $email);
                      15.        $this->session->set_userdata($data);
                      16.        redirect('admin');      
                      17.    }else{
                      18.        $this->index();     
                      19.   

                      20. }


                      21. function logout(){
                      22. $this->session->sess_destroy(); 
                      23.     $this->index();     
                      24.   
                      25. }

                      26. }
                      function masuk digunakan untuk mengatur log in, atau verifikasi user dan password sedangkan fungsi logout digunakan untuk membuat fungsi keluar/ menghapus session.

                      simpan file tersebut pada folder application/controllers. lalu buat file untuk form log in. berikut kodenya

                      login.php
                        1. <h3><span></span> Login Admin<h3>

                        2. <?php echo form_open('login/masuk'); ?>

                        3. <div style="font-size: 15px;">
                        4. <div>
                        5.   <div>
                        6.     <label >Email</label>
                        7.     <input name="email" type="text" placeholder="Masukan Email"/> 
                        8.   </div>
                        9.   <di>
                        10.     <label >Password</label>
                        11.     <input name="password" type="password" placeholder="Masukan Password"/>
                        12.   </div>
                        13. </div>
                        14.   <div><button type="submit" >Login</button></div>
                        15. </div>
                        16. <?php echo form_close();?>
                                                        simpan file tersebut pada folder application/views, lalu buat satu halaman untuk halaman adminnya.

                                                        admin.php

                                                        1. Selamat Datang di halaman admin
                                                        2. <a href="<?php echo base_url()?>login/logout">Log Out</a>
                                                        simpan file tersebut pada folder application/views.

                                                        Halaman Login

                                                        Ketika log in berhasil

                                                        setelah logout halaman kembali ke halaman admin

                                                        yap sekian ulasan mengenai log in di codeigniter, semoga bermanfaat , jika ada masalah silahkan di komen saja .....