Membuat Crud Dengan Codeigniter

Membuat Crud Dengan Codeigniter

Membuat Crud Dengan Codeigniter
Membuat Crud Dengan Codeigniter


Membuat Crud Dengan Codeigniter dengan Framework Codeigniter dan Database MySQL. Berikut ini yang saya rangkum beberapa tutorial CRUD Codeigniter sederhana yang mudah untuk dipelajari, dalam membuat aplikasi berbasis web tentu saja hal yang paling mendasar adalah proses CRUD yakni sebuah singkatan dari Create, Read, Update, Delete. Jadi CRUD ini berisi mengenai bagaimana cara membuat sebuah fitur untuk menampilkan data, menyimpan data, mengubah data maupun menghapus data dari / ke database. Dan Framework codeigniter yang akan kita gunakan adalah codeigniter versi 3, ingat ya yang versi 3 , soalnya mimin belom nyoba nih yang versi 4 terbarunya.


Tutorial Versi Video :

Atau juga bisa apabila ini kurang jelas artikelnya , sobat ruangcoder bisa melihat tutorial versi videonya di channel youtube saya, silahkan dilihat ada beberapa part jadi di tonton dan jangan lupa di subscribe yah  :




Membuat Crud Dengan Codeigniter

Langkah Pertama: Instalasi  :

Pada tahap ini , temen - temen membutuhkan bahan - bahan yang diperlukan untuk membuat CRUD dengan Framework Codeigniter diantarnya :

  1. Nah sobat tinggal Download Framework Codeigniter, klik link berikut : download.
  2. Kemudian sobat buat sebuah folder dengan nama crud_ci (bebas sih mau nama foldernya apa), lalu sobat simpan pada folder xampp/htdocs/.
  3. Langkah selanjutnya sobat copy and paste file codeigniter yang telah sobat download tadi ke folder xampp/htdocs/crud_ci.
  4. Dan tinggal di ekstrak file codeigniter nya.
  5. Kemudian tinggal drag and drop ke Text editor kalian , mau make Atom, Sublime Text 3, Notepad++ terserah , seenaknya kalian saja

Langkah Kedua: Membuat Database :

Langkah 1 : Pembuatan Database Baru

Langkah 2 : Memberi nama Table dengan nama "Siswa" dan Columnya '5" setelah itu klik Go 

Langkah 3 : Isi Sesuai gambar , dan pastikan Index "Primary" dan AI "Di Ceklis" Kemudian SAVE


Setelah sobat selasai membuat database nya, sekarang sobat masuk tahap konfigurasi codeigniter 3 nya :

Langkah Ketiga: Konfigurasi :

Karena disini kita menggunakan codeigniter , maka memerlukan sebuah konfigurasi pada framework codeigniter nya :
  1. Sekarang sobat buka folder xampp/htdocs/crud_ci/application/config/
  2. Sobat buka file config.php
    Kemudian cari kode berikut $config['base_url'] = ''; dan sobat ubah kode tersebut jadi seperti ini :
     $config['base_url'] = 'http://localhost/crud_ci';
    Nah sobat kode diatas digunakan untuk menset sebuah baseurlnya. Kemudian sobat cari lagi kode berikut $config['index_page'] = 'index.php'; nah sobat ubah kode tersebut jadi seperti ini :
  3.  $config['index_page'] = '';
    Nah sobat ini kita hilangkan index.php nya, nanti dimana kita akan bahas pada step selanjutnya kenapa harus di hilangkan.

    Lalu sobat simpan file tersebut (save maksudnya)

  4. Kemudian sobat buka file autoload.php
  5. Silahkan Cari Kode Berikut :
     $autoload['libraries'] = array();
     $autoload['helper'] = array();
    Dan ubah jadi seperti ini :
     $autoload['libraries'] = array('database');
     $autoload['helper'] = array('form','url');
    Jadi sobat kode diatas digunakan untuk memuat (meload) class dari database, form maupun url. Lalu sobat simpan file tersebut.

  6. Dan buka file routes.php
  7. Silahkan Cari Kode Berikut :
     $route['default_controller'] = 'welcome';
    Dan ubah jadi seperti ini :
     $route['default_controller'] = 'siswa';
    Dan kode diatas digunakan untuk menset controller sobat yang mana akan diload pertama kali. Secara default, Codeigniter telah menset controllernya yaitu welcome. Disini sobat set default controller menjadi main.
    Lalu simpan fle nya deh.

  8. Lanjut buka file database.php
  9. Silahkan Cari Kode Berikut :
     'hostname' => 'localhost',
     'username' => '',
     'password' => '',
     'database' => '',
    Dan ubah jadi seperti ini :
     'hostname' => 'localhost', // Nama host sobat
     'username' => 'root', // Username
     'password' => '', // Jika sobat menggunakan password silahkan isi, jika tidak kosongkan saja
     'database' => 'crud_ci', // Nama databasenya ( yang telah kita buat sebelumnya )
    Kode diatas berfungsi untuk koneksi ke database sobat.
    Lalu sobat simpan file tersebut.

Langkah Ke Empat: Setting Htaccess:

Dan pada step ini, kita akan coba membuat sebuah URL dari website kita buat agar terlihat lebih frienly user  (URL Friendly). Pada Codeigniter, URL default ketika sobat akan mengakses sebuah function pada controllernya, di URL tersebut nantinya akan disisipkan index.php Sebagai contohnya misal admin akan mengakses sebuah function dari save pada controller siswa yang kita buat, dan secara default URL untuk mengaksesnya akan seperti ini : localhost/crud_ci/index.php/siswa/save Nah jadi sekarang kita akan menghapus si index.php pada URL nya. yaitu dengan cara menggunakan yang namanya .htaccess Dan buat sebuah file yang baru dengan nama .htaccess lalu sobat simpan pada folder xampp/htdocs/crud_ci/ yang telah sobat buat. Berikut kode nya

 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php/$1 [L]
Dan dimana code tersebut admin juga kurang begitu paham, tapi yang pasti berfungsi untuk menghilangkan index.php tadi. Kode tersebut juga admin dapatkan langsung dari dokumentasi website codeigniternya.

Langkah Ke Lima: Membuat Model:

Sekarang kita akan membuat sebuah modelnya. yang berisi sebuah fungsi untuk menampilkan semua data dari table siswa. Dan sobat buat sebuah file dengan nama SiswaModel.php Lalu sobat simpan pada folder xampp/htdocs/crud_ci/application/models/ Dan berikut kodenya

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

class SiswaModel extends CI_Model {
  // Fungsi untuk menampilkan semua data siswa
  public function view(){
    return $this->db->get('siswa')->result();
  }
  
  // Fungsi untuk menampilkan data siswa berdasarkan NIS nya
  public function view_by($nis){
    $this->db->where('nis', $nis);
    return $this->db->get('siswa')->row();
  }
  
  // Fungsi untuk validasi form tambah dan ubah
  public function validation($mode){
    $this->load->library('form_validation'); // Load library form_validation untuk proses validasinya
    
    // Tambahkan if apakah $mode save atau update
    // Karena ketika update, NIS tidak harus divalidasi
    // Jadi NIS di validasi hanya ketika menambah data siswa saja
    if($mode == "save")
      $this->form_validation->set_rules('input_nis', 'NIS', 'required|numeric|max_length[11]');
    
    $this->form_validation->set_rules('input_nama', 'Nama', 'required|max_length[50]');
    $this->form_validation->set_rules('input_jeniskelamin', 'Jenis Kelamin', 'required');
    $this->form_validation->set_rules('input_telp', 'telp', 'required|numeric|max_length[15]');
    $this->form_validation->set_rules('input_alamat', 'Alamat', 'required');
      
    if($this->form_validation->run()) // Jika validasi benar
      return TRUE; // Maka kembalikan hasilnya dengan TRUE
    else // Jika ada data yang tidak sesuai validasi
      return FALSE; // Maka kembalikan hasilnya dengan FALSE
  }
  
  // Fungsi untuk melakukan simpan data ke tabel siswa
  public function save(){
    $data = array(
      "nis" => $this->input->post('input_nis'),
      "nama" => $this->input->post('input_nama'),
      "jenis_kelamin" => $this->input->post('input_jeniskelamin'),
      "telp" => $this->input->post('input_telp'),
      "alamat" => $this->input->post('input_alamat')
    );
    
    $this->db->insert('siswa', $data); // Untuk mengeksekusi perintah insert data
  }
  
  // Fungsi untuk melakukan ubah data siswa berdasarkan NIS siswa
  public function edit($nis){
    $data = array(
      "nama" => $this->input->post('input_nama'),
      "jenis_kelamin" => $this->input->post('input_jeniskelamin'),
      "telp" => $this->input->post('input_telp'),
      "alamat" => $this->input->post('input_alamat')
    );
    
    $this->db->where('nis', $nis);
    $this->db->update('siswa', $data); // Untuk mengeksekusi perintah update data
  }
  
  // Fungsi untuk melakukan menghapus data siswa berdasarkan NIS siswa
  public function delete($nis){
    $this->db->where('nis', $nis);
    $this->db->delete('siswa'); // Untuk mengeksekusi perintah delete data
  }
}

Pada kode diatas, sobat akan membuat sebuah fungsi view() dimana yang didalamnya terdapat sebuah kode return $this->db->get('siswa')->result() Kode tersebut yang nantinya berfungsi untuk menampilkan semua data pada tabel siswa di database. Dan pada struktur dasar penulisannya seperti ini : return $this->db->get('nama_tabel')->result() Nah sobat pada kode diatas juga ada kode return yang dimana kode tersebut digunakan untuk mengeluarkan sebuah hasil dari sebuah fungsi. Yang dimana pada kasus diatas, hasil yang dikeluarkan oleh return yaitu data-data dari table siswa. Lalu pada bagian fungsi view_by($nis) Fungsi ini digunakan untuk menampilkan sebuah data siswa berdasarkan nis yang sobat tentukan. Pada fungsi ini terdapat skrip $this->db->where('nis', $nis); yang dimana kode tersebut berfungsi untuk menambahkan where clause pada query yang sobat deklarasikan. Kode ini sama saja dengan : WHERE nis='$nis' Mungkin Sobat juga bertanya-tanya, pada kedua fungsi tersebut, adanya perbedaan yakni terhadap kode ->result() dan ->row() Yang dimana perbedaannya yakni kalau result() digunakan apabila sebuah data yang dihasilkan lebih dari 1 data, dalam kasus ini fungsi view() sangat berguna untuk menampilkan semua data dari table siswa. Dan sedangkan row() digunakan apabila sebuah data yang dihasilkan hanya 1 data, dalam kasus ini fungsi view_by($nis) memang hanya menghasilkan untuk 1 data siswa dengan nis yang sudah ditentukan.


Kemudian sobat akan masuk ke fungsi validation($mode) Dimana fungsi ini mungkin sudah jelas yakni untuk memvalidasi sebuah data yang berasal dari input form. Dan inilah yang istimewanya apabila sobat menggunakan sebuah framework, pasti sudah disediakan sebuah modul ataupun librari untuk kemudahan sobat dalam membuat sistem informasi.  Untuk validasi di Codeigniter, jadi sobat bisa menggunakan librari form_validation. Untuk menset sebuah validasi di setiap inputan form sobat, gunakan kode ini : $this->form_validation->set_rules('nama_form_input', 'label_untuk_pesan_error', 'validasi_yang_sobat_inginkan') untuk validasi-validasi apa saja yang telah disediakan codeigniter, silahkan sobat buka link berikut : Referensi Validasi. Lalu untuk penjelasan lebih detail mengenai validasi form pada codeigniter, buka link berikut ini :Dokumentasi Validasi Form.
$data = array(
"nis" => $this-> input-> post('input_nis')
"nama" => $this-> input-> post('input_nama')
"jenis_kelamin" => $this-> input-> post('input_jenis_kelamin')
"jenis_kelamin" => $this-> input-> post('input_telp')
"jenis_kelamin" => $this-> input-> post('input_alamat')
);
Kemudian sobat masuk ke fungsi save() Dalam fungsi tersebut akan terdapat sebuah kode seperti diatas. Sobat buat sebuah array untuk menampung sebuah data apa saja yang akan sobat simpan ke dalam tabel di database. Lihat pada kode "nis" dll, kode tersebut harus sama dengan nama-nama field/kolom pada tabel siswa yang di databasenya. Lalu array $data tersebut akan sobat simpan ke database dengan kode ini $this->db->insert('siswa', $data) Struktur dari kode ini adalah $this->db->insert(nama_tabel, array_data); Nah untuk sebuah fungsi update($nis) pun hampir sama seperti pada fungsi save() yang hanya saja disini sobat telah tambahkan where nis $this->db->where('nis', $nis)

Langkah Ke Enam: Membuat Controller:

Pada tahap yang ke enam, sobat akan mulai membuat controller. Buat sebuah file dengan nama Siswa.php lalu sobat simpan pada folder xampp/htdocs/crud_ci/application/controllers/ Berikut ini kode nya :



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

class Siswa extends CI_Controller {
  
  public function __construct(){
    parent::__construct();
    
    $this->load->model('SiswaModel'); // Load SiswaModel ke controller ini
  }
  
  public function index(){
    $data['siswa'] = $this->SiswaModel->view();
    $this->load->view('siswa/index', $data);
  }
  
  public function tambah(){
    if($this->input->post('submit')){ // Jika user mengklik tombol submit yang ada di form
      if($this->SiswaModel->validation("save")){ // Jika validasi sukses atau hasil validasi adalah TRUE
        $this->SiswaModel->save(); // Panggil fungsi save() yang ada di SiswaModel.php
        redirect('siswa');
      }
    }
    
    $this->load->view('siswa/form_tambah');
  }
  
  public function ubah($nis){
    if($this->input->post('submit')){ // Jika user mengklik tombol submit yang ada di form
      if($this->SiswaModel->validation("update")){ // Jika validasi sukses atau hasil validasi adalah TRUE
        $this->SiswaModel->edit($nis); // Panggil fungsi edit() yang ada di SiswaModel.php
        redirect('siswa');
      }
    }
    
    $data['siswa'] = $this->SiswaModel->view_by($nis);
    $this->load->view('siswa/form_ubah', $data);
  }
  
  public function hapus($nis){
    $this->SiswaModel->delete($nis); // Panggil fungsi delete() yang ada di SiswaModel.php
    redirect('siswa');
  }
}

Pada controller ini, sobat akan membuat 3 fungsi. fungsi pertama yang akan dibuat yaitu public function __construct(){ yang dimana fungsi ini berfungsi untuk menjalankan sebuah aksi ketika controller main diload. Didalam fungsi ini juga terdapat sebuah $this->load->model('SiswaModel');, dan kode tersebut berfungsi untuk memuat (meload) model siswa (yang pada step sebelumnya sobat telah buat) agar sobat bisa mengakses fungsi-fungsi yang ada didalam model tersebut nantinya. Dan ada fungsi yang kedua yang akan sobat buat yaitu public function index(). Di dalam fungsi ini ada suatu kode $data['siswa'] = $this->SiswaModel->view();, kode tersebut yang nantinya akan digunakan untuk mengambil sebuah hasil query sql dari fungsi view() yang ada pada model siswa tersebut SiswaModel.php kemudian memasukannya ke dalam sebuah array data dengan indexnya siswa $data['siswa'] Dan pada fungsi index() ini juga, terdapat sebuah kode $this->load->view('siswa/index', $data);. Yang dimana kode ode tersebut berfungsi untuk memuat (meload) file sobat index.php (file ini akan sobat buat pada step selanjutnya) dan mengirimkan untuk array data $data tadi ke dalam file tersebut.

Langkah Ke Tujuh: Membuat View:

Selanjutnya sobat akan membuat sebuah file view untuk menampilkan data siswanya dari table siswa ( isi manual di localhost kalo belum ada datanya ). Buat sebuah folder dengan nama siswa pada folder xampp/htdocs/crud_ci/application/views/ Lalu sobat buat sebuah file lagi dengan nama index.php lalu sobat simpan pada folder siswa yang tadi sobat buat xampp/htdocs/crud_ci/application/views/siswa/ Dan berikut ini tampilan dan kodenya :




<html>
  <head>
    <title>CRUD Codeigniter</title>
  </head>
  <body>
    <h1>Data siswa</h1>
    <hr>

    <a href='<?php echo base_url("siswa/tambah"); ?>'>Tambah Data</a><br><br>

    <table border="1" cellpadding="7">
      <tr>
        <th>NIS</th>
        <th>Nama</th>
        <th>Jenis Kelamin</th>
        <th>Telepon</th>
        <th>Alamat</th>
        <th colspan="2">Aksi</th>
      </tr>

      <?php
      if( ! empty($siswa)){ // Jika sebuah data siswa tidak sama dengan kosong, artinya jika data siswa ada
        foreach($siswa as $data){
          echo "<tr>
          <td>".$data->nis."</td>
          <td>".$data->nama."</td>
          <td>".$data->jenis_kelamin."</td>
          <td>".$data->telp."</td>
          <td>".$data->alamat."</td>
          <td><a href='".base_url("siswa/ubah/".$data->nis)."'>Ubah</a></td>
          <td><a href='".base_url("siswa/hapus/".$data->nis)."'>Hapus</a></td>
          </tr>";
        }
      }else{ // Jika data siswa kosong
        echo "<tr><td align='center' colspan='7'>Data Tidak Ada</td></tr>";
      }
      ?>
    </table>
  </body>
</html>

Pada kode diatas terdapat sebuah kode foreach($siswa as $data){ yang dimana kode tersebut berfungsi untuk manampilkan satu per satu data siswa dari table siswa sampai data siswa yang terakhir.

Langkah Ke Delapan: Membuat Form Tambah: 

Selanjutnya sobat akan coba membuat sebuah form untuk menambah datanya. Dan sobat buat sebuah file dengan nama form_tambah.php, lalu sobat simpan pada folder xampp/htdocs/crud_ci/application/views/siswa/. Berikut codingannya :




<html>
  <head>
    <title>Form Tambah - CRUD Codeigniter</title>
  </head>
  <body>
    <h1>Form Tambah Data Siswa</h1>
    <hr>

    <!-- Menampilkan Error jika validasi tidak valid -->
    <div style="color: red;"><?php echo validation_errors(); ?></div>

    <?php echo form_open("siswa/tambah"); ?>
      <table cellpadding="8">
        <tr>
          <td>NIS</td>
          <td><input type="text" name="input_nis" value="<?php echo set_value('input_nis'); ?>"></td>
        </tr>
        <tr>
          <td>Nama</td>
          <td><input type="text" name="input_nama" value="<?php echo set_value('input_nama'); ?>"></td>
        </tr>
        <tr>
          <td>Jenis Kelamin</td>
          <td>
          <input type="radio" name="input_jeniskelamin" value="Laki-laki" <?php echo set_radio('jeniskelamin', 'Laki-laki'); ?>> Laki-laki
          <input type="radio" name="input_jeniskelamin" value="Perempuan" <?php echo set_radio('jeniskelamin', 'Perempuan'); ?>> Perempuan
          </td>
        </tr>
        <tr>
          <td>Telepon</td>
          <td><input type="text" name="input_telp" value="<?php echo set_value('input_telp'); ?>"></td>
        </tr>
        <tr>
          <td>Alamat</td>
          <td><textarea name="input_alamat"><?php echo set_value('input_alamat'); ?></textarea></td>
        </tr>
      </table>
        
      <hr>
      <input type="submit" name="submit" value="Simpan">
      <a href="<?php echo base_url(); ?>"><input type="button" value="Batal"></a>
    <?php echo form_close(); ?>
  </body>
</html>

form_open('siswa/tambah') Nah sobat bisa perhatikan kode ini sama saja dengan sobat membuat sebuah tag form. Yang dimana nantinya kode tersebut akan menghasil kan tag form seperti ini
set_value('input_nis') Dan kode ini berguna untuk men-set sebuah value dari textbox input_nis agar ketika sobat terjadi error dan halaman kembali ke form, data yang akan di input sebelumnya tidak hilang. input_nis disitu adalah name dari textbox nya sedniri. form_close() Dan pada kode terakhir ini akan menghasil kan penutup tag dari form

Langkah Ke Sembilan: Membuat Form Ubah Data: 

Selanjutnya sobat akan coba membuat sebuah form untuk mengubah datanya. Buat sebuah file dengan nama form_ubah.php, lalu sobat simpan pada folder xampp/htdocs/crud_ci/application/views/siswa/. Berikut tampilan dan codingannya:



<html>
  <head>
    <title>Form Ubah - CRUD Codeigniter</title>
  </head>
  <body>
    <h1>Form Ubah Data Siswa</h1>
    <hr>

    <!-- Menampilkan Error jika validasi tidak valid -->
    <div style="color: red;"><?php echo validation_errors(); ?></div>

    <?php echo form_open("siswa/ubah/".$siswa->nis); ?>
      <table cellpadding="8">
        <tr>
          <td>NIS</td>
          <td><input type="text" name="input_nis" value="<?php echo set_value('input_nis', $siswa->nis); ?>" readonly></td>
        </tr>
        <tr>
          <td>Nama</td>
          <td><input type="text" name="input_nama" value="<?php echo set_value('input_nama', $siswa->nama); ?>"></td>
        </tr>
        <tr>
          <td>Jenis Kelamin</td>
          <td>
          <input type="radio" name="input_jeniskelamin" value="Laki-laki" <?php echo set_radio('jeniskelamin', 'Laki-laki', ($siswa->jenis_kelamin == "Laki-laki")? true : false); ?>> Laki-laki
          <input type="radio" name="input_jeniskelamin" value="Perempuan" <?php echo set_radio('jeniskelamin', 'Perempuan', ($siswa->jenis_kelamin == "Perempuan")? true : false); ?>> Perempuan
          </td>
        </tr>
        <tr>
          <td>Telepon</td>
          <td><input type="text" name="input_telp" value="<?php echo set_value('input_telp', $siswa->telp); ?>"></td>
        </tr>
        <tr>
          <td>Alamat</td>
          <td><textarea name="input_alamat"><?php echo set_value('input_alamat', $siswa->alamat); ?></textarea></td>
        </tr>
      </table>
        
      <hr>
      <input type="submit" name="submit" value="Ubah">
      <a href="<?php echo base_url(); ?>"><input type="button" value="Batal"></a>
    <?php echo form_close(); ?>
  </body>
</html>

Dan untuk variabel $siswa ini adalah hasil dari sebuah query pada controller siswa di function ubah. Lalu sobat men set terhadap masing-masing inputan pada form sobat agar bisa menampilkan data sebelumnya. disini sobat memanfaat kan fungsi buatan dari codeigniter yaitu set_value(name_textbox, valuenya)

Penutup

Nah mungkin segini dulu tutorialnya , apabila kurang mengerti mohon maaf, apabila ada error silahkan ditanyakan, dan jangan lupa subscribe channel saya , like , share tutorial ini ke teman - teman kalian dan Terimakasih , sampai juga di tutorial selanjutnya.

Anda mungkin menyukai postingan ini