Breaking News
Loading...
Wednesday, 28 February 2018

Info Post
CRUD adalah singkatan dari Create Read Update Delete, Yang merupakan operasi umum dalam pembuatan sistem web, dekstop dan lainnya. Sebuah bisnis proses dari sebuah sistem pasti di dalamnya memiliki fitur create untuk menambah data, update untuk manipulasi data, read untuk menampilkan data dan delete untuk menghapus data.
Tulisan kali ini akan mengupas tuntas tentang cara membuat CRUD mengunakan framework PHP CodeIgniter. Bagi yang pertama kali mempelajari CodeIgniter, sebaiknya membaca postingan sebelumnya tentang Tutorial install dan membuat projek CodeIgniter untuk pemula. Disitu juga ada link download projek-nya jadi teman-teman bisa langsung praktek serta cepet mengikuti tutorial CRUD ini, karena dalam tulisan ini pembahasannya meneruskan dari tulisan sebelumnya. Jika butuh source code CRUD dalam tulisan ini bisa download pada link DOWNLOAD SOURCE CODE CRUD CODEIGNITER.
Mari kita langsung saja pada pembahasan,
1. Menambahkan library penting
Karena nantinya kita menggunakan koneksi dengan database MySql, jadi perlu ditambahkan library pada file autoload.php.


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



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


 

2. Membuat Database dan table
Jika teman-teman menggunakan Mysql sebagai RDBMS-nya, bisa langsung copy pastekan query berikut untuk membuat database-nya.


CREATE TABLE tb_siswa(

 id_siswa int(2) AUTO_INCREMENT PRIMARY KEY,

    nama_siswa varchar(222) NOT null,

    alamat_siswa varchar(222) NOT null,

    nohp_siswa varchar(12) not null

)

 

Jika selesai hasilnya akan seperti gambar di bawah struktur tabel databasenya.
Hasil Create tabel CRUD Siswa
Gambar 1. Hasil Create tabel CRUD Siswa

3. Membuat Controller
Kalau teman-teman berbekal source code projek sebelumnya, bisa langsung edit script Welcome.php di controller menjadi seperti berikut.


<?php

defined('BASEPATH') OR exit('No direct script access allowed');



class Welcome extends CI_Controller {



 function __construct(){

  parent::__construct();

    $this->CI = & get_instance();

  // load helper url dan model

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

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

 }



 public function index()

 {

  // panggil fungsi model

  $result ['data'] = $this->welcome_model->get_data();

  // menampilkan view welcome_message.php dengan parameter $result data siswa

  $this->load->view('welcome_message', $result);

 }



 public function tambah(){

  // menampilkan view tambah_siswa.php

  $this->load->view('tambah_siswa');

 }



 public function save(){

  // menangkap data POST dari form tambah_siswa.php

  $datapos = $this->input->post();

  // memanggil model untuk simpan data dengan parameter data post

  $data = $this->welcome_model->save_data($datapos);



  redirect( base_url() . 'index.php/welcome');

 }



 function ubah(){

  // mengambil value segment 3 dari url, id_siswa

  $id = $this->uri->segment(3);

  $data = $this->welcome_model->get_dataByid($id);

  $result['data'] = $data;

  $this->load->view('ubah_siswa', $result);

 }



 public function update(){

  $datapos = $this->input->post();

  $data = $this->welcome_model->update_data($datapos);



  // memanggil controller index untuk kembali mengampilkan data table

  redirect( base_url() . 'index.php/welcome');

 }



 function hapus(){

  $id = $this->uri->segment(3);



  $query = $this->welcome_model->hapus_data($id);

  

  // memanggil controller index untuk kembali mengampilkan data table

  redirect( base_url() . 'index.php/welcome');

 }



}

 



4. Membuat model
Sama dengan proses sebelumnya, teman-teman bisa langsung edit file welcome_model pada folder Models menjadi seperti berikut.


<?php

class Welcome_model extends CI_Model {



    function __construct()

    {

          parent::__construct();

    }



    function get_data(){

        // Data yang akan dikirim ke View oleh Controller

        $sql = "select * from tb_siswa";

        $data = $this->db->query($sql)->result();

        // $data = "Belajar CodeIgniter Oleh www.ngompile.com";

        // print_r ($data);

        return $data;

    }



    function get_dataByid($id){

        // Data yang akan dikirim ke View oleh Controller

        $sql = "select * from tb_siswa where id_siswa='".$id."'";

        $data = $this->db->query($sql)->result();

        // $data = "Belajar CodeIgniter Oleh www.ngompile.com";

        // print_r ($data);

        return $data;

    }



    function save_data($data){

        // query insert

        $sql = "INSERT INTO `tb_siswa`(`id_siswa`, `nama_siswa`, `alamat_siswa`, `nohp_siswa`) VALUES ('', '".$data['nama']."', '".$data['alamat']."', '".$data['nohp']."')";

        // eksekusi query

        $query = $this->db->query($sql);



        if ($query) {

          $msg = "";

        }else {

          $msg = "Gagal Simpan";

        }

        // mengembalikan status query ke controller

        return $msg;



    }



    function update_data($data){

        // query

        $sql = "UPDATE `tb_siswa` SET `nama_siswa`='".$data['nama']."', `alamat_siswa`='".$data['alamat']."',`nohp_siswa`='".$data['nohp']."' WHERE `id_siswa`='".$data['id']."'";



        // eksekusi query

        $query = $this->db->query($sql);



        if ($query) {

          $msg = "";

        }else {

          $msg = "Gagal Simpan";

        }



        // mengembalikan status query ke controller

        return $msg;



    }



    function hapus_data($id){

        $sql = "delete from tb_siswa where id_siswa='".$id."'";



        $query = $this->db->query($sql);



        if ($query) {

          $msg = "";

        }else {

          $msg = "Gagal Hapus";

        }



        return $msg;

    }



}

?>

 

5. Menambahkan script file welcome_message.php
Untuk menampilkan data hasil ke bentuk tabel, maka perlu diubah file view dari projek sebelumnya, yaitu welcome_message.php. Script lengkapnya adalah seperti berikut,


<!DOCTYPE html>

<html>

<head>

  <meta name="viewport" content="width=device-width, initial-scale=1">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>

<body>



<div class="container">

   <h3>Tutorial CRUD CodeIgniter</h3>

  <a href="<?php echo base_url().'index.php/welcome/tambah';?>" class="btn btn-primary">Tambah</a>

  <div class="table-responsive">

  <table class="table">

    <thead>

      <tr>

        <th>#</th>

        <th>Nama Siswa</th>

        <th>Alamat</th>

        <th>Nomor Hp</th>

    <th>



    </th>

      </tr>

    </thead>

    <tbody>



    <?php

    $i = 1;

    foreach ($data as $key => $value) {

     ?>

     <tr>

      <td><?php echo $i;?></td>

          <td><?php echo $value->nama_siswa;?></td>

          <td><?php echo $value->alamat_siswa;?></td>

          <td><?php echo $value->nohp_siswa;?></td>

      <td>

        <!-- <button type="button" class="btn btn-primary" value="Ubah"></button> -->

        <a href="<?php echo base_url().'index.php/welcome/ubah/'.$value->id_siswa;?>" class="btn btn-info">Ubah</a>

        <a href="<?php echo base_url().'index.php/welcome/hapus/'.$value->id_siswa;?>" class="btn btn-danger">Hapus</a>

      </td>

     </tr>

     <?php

     $i++;

    }

    ?>

    </tbody>

  </table>

  </div>

</div>



</body>

</html>

 

6. Menambahkan view tambah Siswa
Untuk menambahkan data siswa, diperlukan form tambah, script-nya seperti berikut, lengsung buat file baru dan beri nama tambah_siswa.php pada folder views.


<!DOCTYPE html>

<html>

<head>

  <meta name="viewport" content="width=device-width, initial-scale=1">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>

<body>



<div class="container">

   <h3>Tutorial CRUD CodeIgniter</h3>

  <div class="table-responsive">

  <table class="table">

    <thead>

      <tr>

        <th></th>

        <th></th>

      </tr>

    </thead>

    <tbody>

      <form action="<?php echo base_url().'index.php/welcome/save';?>" method="post">

      <tr>

        <td width="100">Nama Siswa</td>

        <td width="300">

          <input type="text" class="form-control" name="nama" placeholder="Nama Siswa">

        </td>

      </tr>



      <tr>

        <td width="100">Alamat Siswa</td>

        <td width="300">

          <input type="text" class="form-control" name="alamat" placeholder="Alamat Siswa">

        </td>

      </tr>



      <tr>

        <td width="100">No HP Siswa</td>

        <td width="300">

          <input type="text" class="form-control" name="nohp" placeholder="No HP Siswa">

        </td>

      </tr>



      <tr>

        <td colspan="2">

          <a href="<?php echo base_url().'index.php/welcome/';?>" class="btn btn-info">Batal</a>

          <button type="submit" class="btn btn-primary">Simpan</button>

        </td>

      </tr>



    </form>

    </tbody>

  </table>

  </div>

</div>



</body>

</html>



 

7. Menambahkan view edit siswa

Sama seperti langkah 6 di atas, langsung saja buat file dengan nama ubah_siswa.php di folder views dan pastekan script berikut untuk membuat form ubah siswa.


<!DOCTYPE html>

<html>

<head>

  <meta name="viewport" content="width=device-width, initial-scale=1">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>

<body>



<div class="container">

   <h3>Tutorial CRUD CodeIgniter</h3>

  <div class="table-responsive">

  <table class="table">

    <thead>

      <tr>

        <th></th>

        <th></th>

      </tr>

    </thead>

    <tbody>

      <form action="<?php echo base_url().'index.php/welcome/update';?>" method="post">

        <?php

        foreach ($data as $key => $value) { ?>

          <tr>

            <td width="100">Nama Siswa</td>

            <td width="300">

              <input type="hidden" class="form-control" value="<?php echo $value->id_siswa;?>" name="id" placeholder="Nama Siswa">

              <input type="text" class="form-control" value="<?php echo $value->nama_siswa;?>" name="nama" placeholder="Nama Siswa">

            </td>

          </tr>



          <tr>

            <td width="100">Alamat Siswa</td>

            <td width="300">

              <input type="text" class="form-control" value="<?php echo $value->alamat_siswa;?>" name="alamat" placeholder="Alamat Siswa">

            </td>

          </tr>



          <tr>

            <td width="100">No HP Siswa</td>

            <td width="300">

              <input type="text" class="form-control" value="<?php echo $value->nohp_siswa;?>" name="nohp" placeholder="No HP Siswa">

            </td>

          </tr>

        <?php

        }

        ?>

          <tr>

            <td colspan="2">

              <a href="<?php echo base_url().'index.php/welcome/';?>" class="btn btn-info">Batal</a>

              <button type="submit" class="btn btn-primary">Simpan</button>

            </td>

          </tr>

    </form>

    </tbody>

  </table>

  </div>

</div>



</body>

</html>



 

8. Selesai
Sekarang teman-teman bisa langsung run projeknya di browser. hasilnya akan seperti gambar berikut jika teman-teman berhasil.

Hasil Tabel CRUD data siswa
Gambar 2. Hasil Tabel CRUD data siswa

Hasil Form Tambah CRUD data siswa
Gambar 3. Hasil Form Tambah CRUD data siswa

Gambar 4. Hasil Form Ubah CRUD data siswa

Demikian tulisan tentang CRUD Codeigniter pada kesempatan kali ini. Jika ada pertanyaan tinggalkan komentar di kolom komentar. 
Next
This is the most recent post.
Older Post

0 comments:

Post a Comment