Langkah Mudah Membuat Buku Tamu dengan CodeIgniter

31 Jul 2019 12:15 7352 Hits 0 Comments Approved by Plimbi
Setidaknya ada lima langkah yang harus dilakukan.

Setelah mengetahui konsep dasar CodeIgniter mulai dari cara konfigurasi, crud serta yang masih hangat yaitu cara upload gambar dan lain sebagainya. Sekarang mari kita mulai sebuah contoh penggunaan  CodeIgniter yang lebih dalam atau  lebih spesifik lagi. Pada contoh pertama ini saya akan menunjukan bagaimana caranya menggunakan query-query dasar pada CodeIgniter. Kita akan membuat sebuah Buku Tamu. Selanjutnya ikutilah langkah-langkah berikut ini.

  • Membuat Tabel Guestbook di database

Pada contoh ini kita akan membuat sebuah aplikasi Buku Tamu. Untuk itu kita membutuhkan

sebuah tabel dengan skema sebagai berikut ini:

Saya di atas langsung menjelaskan isi dari tabel tersebut karena saya anggap kalian sudah bias dalam membuat taabel di dalam database dan saya juga ingin kalian fokus terhadap materi ini langsung tanpa menyita banyak waktu untuk mengulas kembali.

  • Mengkonfigurasi Guestbook

Langkah pertama buka file application/config/database.php. Setting sesuai dengan konfigurasi mysql Anda. Isikan username (root) jika menggunakan xampp , password dan nama database yang digunakan. Setelah itu buka juga file application/config/autoload.php

ubahlah variabel $autoload['libraries'] (kira-kira baris 41)

menjadi

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

Kemudian buka melalui browser kalian. Jika tidak terjadi kesalahan apapun berarti Anda sudah berhasil

menyeting database dengan benar

  • Membuat Model Guestbook

Untuk mendapatkan data dari database maka kita harus memiliki model yang dapat mengambil

data tersebut. Oleh karena itu Anda harus menambahkan model berikut di

Application/models/Guestbook_model.php. Adapun isi dari file tersebut adalah

<!--?php>

class Guestbook_model extends CI_Model {

     public $table_record_count;

                function __construct()

                {

                    parent::__construct();

                }

 function get_data($start=NULL,$count=NULL)

 {

                 $results=array();

                 $this->db->from('guestbook');

                 $this->table_record_count =$this->db->count_all_results();

                 if($start)

                 {

                 if($count)

                 $this->db->limit($start,$count);

                 else

                 $this->db->limit($start);

                 }

                 $query=$this->db->get('guestbook');

                 if($query->num_rows()>0)

                 return $query->result_array();

                 else

                 return FALSE;

 }

 function add($data)

                 {

                 $this->db->insert('guestbook',$data);

                 return $this->db->insert_id();

 }

 function update($keyvalue,$data)

 {

                 $this->db->where('id',$keyvalue);

                 $this->db->update('guestbook',$data);

                 return $this->db->affected_rows();

 }

 function delete($idField)

 {

                 $this->db->where('id',$idField);

                 $this->db->delete('guestbook');

                 return true;

 }

}

 

Model diatas terdiri atas lima fungsi yaitu konstruktor, get_data, add, update dan delete. Fungsi

get_data digunakan untuk mengambil seluruh isi data dari tabel guestbook. Fungsi tersebut terdiri atas dua

parameter yaitu start dan limit. Parameter tersebut dibutuhkan karena kita menggunakan library

pagination. (Library pagination digunakan untuk membuat fitur paging/halaman pada data). Library

pagination membutuhkan beberapa data diantaranya jumlah semua record. Pada variabel $this-

>table_record_count akan disimpan jumlah semua record di tabel.

  • Membuat Controller Dan View

Pada controller ini kita akan memanggil library, helper dan model yang akan digunakan. Adapun

library yang akan digunakan adalah form_validation dan table. Sedangkan helper yang harus

digunakan adalah url dan smileys. Adapun hasil yang nanti akan tampak kurang lebih nya  adalah sebagai

berikut:

                                       

Selanjutnya adalah pembuatan controller

application/controllers/Guestbook.php

<!--?php>

 class Guestbook extends CI_Controller { 

                function __construct()  {

                parent::__construct();

               $this->load->library('pagination');

               $this->load->library('form_validation');

              $this->load->helper('smiley');

              $this->load->helper('url');

             $this->load->library('table');

              $this->load->model('Guestbook_model');

 }

function index()

{

 if($this ->_validate_data())

 {

 $data['nama']=$this->input->post('nama',TRUE);

 $data['email']=$this->input->post('email',TRUE);

 $data['komentar']=$this->input->post('komentar',TRUE);

 $data['tanggal']= date('Y-m-d H:m:s');

 $data['status']=0;

 if($this->guestbook->add($data))

 $data['status']='Guestbook sukses ditambahkan';

 else

 $data['status']='Guestbook gagal ditambahkan';

 }

 $paging_uri=2;

 if($this->uri->segment($paging_uri))

 $start=$this->uri->segment($paging_uri);

 else

 $start=0;

 $limit_per_page=10;

 $data['tguestbook_list']=$this->Guestbook_model->get_data($limit_per_page,$start);

 $config['base_url']= site_url('guestbook');

 $config['total_rows']=$this->Guestbook_model->table_record_count;

 $config['per_page']=$limit_per_page;

 $config['uri_segment']=$paging_uri;

 $this->pagination->initialize($config);

 $data['page_links']=$this->pagination->create_links();

 $image_array= get_clickable_smileys(base_url().'smileys/');

 $col_array=$this->table->make_columns($image_array,20);

 $data['smiley_table']=$this->table->generate($col_array);

 $this->load->view('v_guestbook',$data);

}

function _validate_data()

{

 $this->form_validation->set_rules('nama','Nama',

 'required|min_length[5]|max_length[12]');

 $this->form_validation->set_rules('email','Email',

 'required|valid_email|htmlspecialchars');

 $this->form_validation->set_rules('komentar','Komentar',

 'required|htmlspecialchars');

 return($this->form_validation->run()==FALSE)?FALSE:TRUE;

}

}

Jika kita akan menampilkan data dalam pagination perlu diingat dua hal, pertama kita

membutuhkan inputan berupa berapa jumlah data yang akan ditampilkan dan data dimulai dari

halaman keberapa dan data yang dihasilkan dari model harus berisi jumlah total data yang kita

punya.

Untuk mendapatkan data yang akan diambil mulai dari data ke berapa, library pagination

meletakkannya informasi tersebut di uri tertentu. Pada kasus ini kita meletakkannya di uri ke 2.

Maka untuk mendapatkannya kita perlu memanggil fungsi $this->uri->segment(2);

Sedangkan untuk jumlah data sudah tersimpan di property model (table_record_count).

⢠Validate_data â Fungsi ini bertugas untuk memvalidasi data yang akan masuk ke buku tamu

$this->form_validation->set_rules('nama','Nama',

'required|min_length[5]|max_length[12]');

$this->form_validation->set_rules('email','Email',

'required|valid_email|htmlspecialchars');

$this->form_validation->set_rules('komentar','Komentar',

'required|htmlspecialchars');

return($this->form_validation->run()==FALSE)?FALSE:TRUE;

Selanjutnya adalah membuat view yang akan digunkan untuk menampilkan data buku tamu

tersebut.

application/views/v_guestbook.php

 

 

 

<title></title>

 

body {

 background-color: #fff;

 margin: 40px;

 font-family: Lucida Grande, Verdana, Sans-serif;

 font-size: 14px;

 color: #4F5155;

}

 

 

 

 

 

Guest Book

 

 


 

<!--?php echo validation_errors();?-->

<!--?php if(isset($status)):?-->

 

 

Data Sukses Disimpan

 

 

<!--?php unset($v);endif;?-->

<!--?>

if($tguestbook_list)

{

 foreach($tguestbook_listas $value)

 {

 echo"

  • ".$value['nama'].

     

     " ( ".$value['tanggal']." ): ".

     nl2br(parse_smileys($value['komentar'],base_url()."smileys/")).

     "


  • ";

     

     }

    }

    ?>

    <!--?php echo $page_links;?-->

    <!--?php echo js_insert_smiley('bukutamu','komentar');?-->

     

     

    Isi Buku Tamu

     

     

    <form method="post" name="bukutamu">

     

    Nama :

    <input name="nama" type="text" value="<?phpecho</p>

    set_value('nama');?>" />

    Email :

    <input name="email" type="text" value="<?phpecho</p>

    set_value('email');?>" />

    <textarea cols="40" name="komentar" rows="4"></p> <p><?php echo set_value('komentar');?></p> <p></textarea></p>

     

     

     

    <!--?php echo $smiley_table;?-->

     

     

    <input type="Submit" value="Submit Query" /></p>

     

     

    </form>

     

     

     

    Pada view tersebut akan di tampilkan data isi buku tamu dalam list beserta form yang akan

    digunakan untuk menginputkan data. Kita juga dapat menggunakan validation helper (fungsi

    validation_error) untuk menampilkan error yang terjadi.

Tags

About The Author

Rafi johari 36
Ordinary

Rafi johari

Programmer yang baik menggunakan otaknya, tapi kerangka kerja yang baik menghemat waktu untuk berpikir
Plimbi adalah tempat menulis untuk semua orang.
Yuk kirim juga tulisanmu sekarang
Submit Artikel