Sunday, October 20, 2019

Cara Mudah Membuat CRUD dengan Codeigniter dan MySQL

Cara Mudah Membuat CRUD dengan Codeigniter dan MySQL

A. PENGERTIAN

CRUD adalah singkatan dari Create Read Update Delete , yang sering digunakan pada aplikasi-aplikasi pengolahan data yang kebanyakan mengguanakan fungsi CRUD didalamnya . Fungsi ini digunakan untuk menambahkan data, menghapus data, serta mengupdate data.
B. PENJELASAN 
  • C (Create): yang berarti membuat sebuah data baru, contoh kita sedang melakukan registrasi disebuah web itu sudah merupakan Create dari CRUD karena kita membuat dan menyimpan data registrasi ke database.
  • R (Read): Membaca atau menampilkan suatu data yang tadinya berada didatabase MySQL misalnya, kemudian ditampilkan di WEB menggunakan bahasa pemrograman Php
  • U (Update): nah untuk yang satu ini prosesnya adalah mengedit sebuah data dari database yang kemudian di edit menggunakan bahasa pemrograman Php berupa WEB. Contoh edit profil facebook.

  • D (Delete): Pastinya Anda tahu fungsinya apa bukan? Fungsinya hampir sama dengan Update akan tetapi proses ini adalah untuk melakukan penghapusan data di database melalui bahasa Php. Contoh pada sebuah blog terkadang ada komentar, kemudian kita hapus komentar tersebut, nah itu sudah termasuk proses delete dalam CRUD.


Pada tahap ini kita akan menyiapkan hal-hal yang diperlukan.
  1. Download Framework Codeigniter, klik link berikut : download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  2. Buat sebuah folder dengan nama crud_ci, lalu simpan pada folder xampp/htdocs/.
  3. Copy and paste file codeigniter_v3.7z yang telah di download tadi ke folder xampp/htdocs/crud_ci.
  4. Ekstrak file codeigniter_v3.7z nya.

STEP 2 – BUAT DATABASE
Buat database dengan nama mynotescode, lalu buat sebuah tabel siswa dengan struktur tabel seperti berikut ini :
Struktur Tabel - Cara Membuat Laporan PDF dengan Codeigniter dan Html2Pdf
  1. CREATE TABLE IF NOT EXISTS `siswa` (
  2. `nis` varchar(11) NOT NULL,
  3. `nama` varchar(50) NOT NULL,
  4. `jenis_kelamin` varchar(10) NOT NULL,
  5. `telp` varchar(15) NOT NULL,
  6. `alamat` text NOT NULL,
  7. PRIMARY KEY (`nis`)
  8. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

STEP 3 – KONFIGURASI
Karena dibuat dengan Codeigniter, pertama kita harus melakukan konfigurasi terlebih dahulu pada framework codeigniternya.
  1. Buka folder xampp/htdocs/crud_ci/application/config/
  2. Buka file config.php
    Cari kode berikut $config['base_url'] = '';Ubah kode tersebut jadi seperti ini :
    1. $config['base_url'] = 'http://localhost/crud_ci';
    Kode diatas digunakan untuk menset baseurlnya.
    Kemudian cari kode berikut $config['index_page'] = 'index.php';, ubah kode tersebut jadi seperti ini :
    1. $config['index_page'] = '';
    Ini kita hilangkan index.php nya, nanti akan kita bahas pada step selanjutnya kenapa harus di hilangkan.
    Lalu simpan file tersebut.
  3. Buka file autoload.php
    Cari kode berikut ini :
    1. $autoload['libraries'] = array();
    2. $autoload['helper'] = array();
    Ubah jadi seperti ini :
    1. $autoload['libraries'] = array('database');
    2. $autoload['helper'] = array('form','url');
    Kode diatas digunakan untuk memuat (menload) class database, form, dan url.
    Lalu simpan file tersebut.
  4. Buka file routes.php
    Cari kode berikut ini :
    1. $route['default_controller'] = 'welcome';
    Ubah jadi seperti ini :
    1. $route['default_controller'] = 'siswa';
    Kode diatas digunakan untuk menset controller mana yang akan diload pertama kali. Secara default, Codeigniter telah menset default controller yaitu welcome. Disini kita set default controller menjadi main.
    Lalu simpan file tersebut.
  5. Buka file database.php
    Cari kode berikut ini :
    1. 'hostname' => 'localhost',
    2. 'username' => '',
    3. 'password' => '',
    4. 'database' => '',
    Ubah jadi seperti ini :
    1. 'hostname' => 'localhost', // Nama host
    2. 'username' => 'root', // Username
    3. 'password' => '', // Jika menggunakan password isi, jika tidak kosongkan saja
    4. 'database' => 'mynotescode', // Nama databasenya
    Kode diatas digunakan untuk koneksi ke database.
    Lalu simpan file tersebut.

STEP 4 – SETTING HTACCESS
Pada step ini, kita akan coba membuat URL dari website kita agar terlihat lebih frienly user (URL Friendly). Di Codeigniter, URL default ketika kita akan mengakses sebuah function di controller, pada URL tersebut akan disisipkan “index.php”. Sebagai contoh misalnya saya akan mengakses function save pada controller siswa, secara default URL untuk mengaksesnya seperti ini : localhost/crud_ci/index.php/siswa/save. Nah sekarang kita akan menghapus “index.php” pada URL nya. dengan cara menggunakan yang namanya htaccess. Buat sebuah file baru dengan nama .htaccess, lalu simpan pada folder xampp/htdocs/crud_ci/. Berikut kode nya :
  1. RewriteEngine On
  2. RewriteCond %{REQUEST_FILENAME} !-f
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteRule ^(.*)$ index.php/$1 [L]
Kode tersebut saya juga kurang begitu paham, tapi yang pasti berfungsi untuk menghilangkan “index.php” tadi. Kode tersebut juga saya dapatkan langsung dari dokumentasi codeigniternya. Anda bisa melihatnya disini : Removing the index.php file (Anda akan dibawa ke halaman iklan terlebih dahulu, Lihat di pojok kanan atas, tunggu 5 detik. lalu klik tombol SKIP AD).

STEP 5 – BUAT MODEL
Sekarang kita akan membuat modelnya. berisi sebuah fungsi untuk menampilkan semua data siswa pada tabel siswa. Buat sebuah file dengan nama SiswaModel.php, Lalu simpan pada folder xampp/htdocs/crud_ci/application/models/. Berikut kodenya :
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2. class SiswaModel extends CI_Model {
  3. // Fungsi untuk menampilkan semua data siswa
  4. public function view(){
  5. return $this->db->get('siswa')->result();
  6. }
  7. // Fungsi untuk menampilkan data siswa berdasarkan NIS nya
  8. public function view_by($nis){
  9. $this->db->where('nis', $nis);
  10. return $this->db->get('siswa')->row();
  11. }
  12. // Fungsi untuk validasi form tambah dan ubah
  13. public function validation($mode){
  14. $this->load->library('form_validation'); // Load library form_validation untuk proses validasinya
  15. // Tambahkan if apakah $mode save atau update
  16. // Karena ketika update, NIS tidak harus divalidasi
  17. // Jadi NIS di validasi hanya ketika menambah data siswa saja
  18. if($mode == "save")
  19. $this->form_validation->set_rules('input_nis', 'NIS', 'required|numeric|max_length[11]');
  20. $this->form_validation->set_rules('input_nama', 'Nama', 'required|max_length[50]');
  21. $this->form_validation->set_rules('input_jeniskelamin', 'Jenis Kelamin', 'required');
  22. $this->form_validation->set_rules('input_telp', 'telp', 'required|numeric|max_length[15]');
  23. $this->form_validation->set_rules('input_alamat', 'Alamat', 'required');
  24. if($this->form_validation->run()) // Jika validasi benar
  25. return TRUE; // Maka kembalikan hasilnya dengan TRUE
  26. else // Jika ada data yang tidak sesuai validasi
  27. return FALSE; // Maka kembalikan hasilnya dengan FALSE
  28. }
  29. // Fungsi untuk melakukan simpan data ke tabel siswa
  30. public function save(){
  31. $data = array(
  32. "nis" => $this->input->post('input_nis'),
  33. "nama" => $this->input->post('input_nama'),
  34. "jenis_kelamin" => $this->input->post('input_jeniskelamin'),
  35. "telp" => $this->input->post('input_telp'),
  36. "alamat" => $this->input->post('input_alamat')
  37. );
  38. $this->db->insert('siswa', $data); // Untuk mengeksekusi perintah insert data
  39. }
  40. // Fungsi untuk melakukan ubah data siswa berdasarkan NIS siswa
  41. public function edit($nis){
  42. $data = array(
  43. "nama" => $this->input->post('input_nama'),
  44. "jenis_kelamin" => $this->input->post('input_jeniskelamin'),
  45. "telp" => $this->input->post('input_telp'),
  46. "alamat" => $this->input->post('input_alamat')
  47. );
  48. $this->db->where('nis', $nis);
  49. $this->db->update('siswa', $data); // Untuk mengeksekusi perintah update data
  50. }
  51. // Fungsi untuk melakukan menghapus data siswa berdasarkan NIS siswa
  52. public function delete($nis){
  53. $this->db->where('nis', $nis);
  54. $this->db->delete('siswa'); // Untuk mengeksekusi perintah delete data
  55. }
  56. }
Pada kode diatas, kita membuat sebuah fungsi view(). dimana didalamnya terdapat kode return $this->db->get(‘siswa’)->result(). Kode tersebut berfungsi untuk menampilkan semua data pada tabel siswa. Struktur dasar penulisannya seperti ini : return $this->db->get(‘nama_tabel‘)->result(). Lalu pada kode diatas juga ada kode return, kode tersebut digunakan untuk mengeluarkan hasil dari sebuah fungsi. Pada kasus diatas, hasil yang dikeluarkan oleh return yaitu data-data siswa.
Lalu pada fungsi view_by($nis). Fungsi ini digunakan untuk menampilkan data siswa berdasarkan nis yang kita tentukan. Pada fungsi ini terdapat skrip $this->db->where(‘nis’, $nis); yang berfungsi untuk menambahkan “where clause” pada query yang kita deklarasikan. Kode ini sama saja dengan : WHERE nis=’$nis’.
Mungkin Anda bertanya-tanya, pada kedua fungsi tersebut, ada perbedaan yakni ->result() dan ->row(). Perbedaannya yakni kalau result() digunakan apabila data yang dihasilkan lebih dari 1 data, dalam kasus ini fungsi view() berguna untuk menampilkan semua data siswa. Sedangkan row() digunakan apabila data yang dihasilkan hanya 1 data, dalam kasus ini fungsi view_by($nis) memang hanya menghasilkan 1 data siswa dengan nis yang sudah ditentukan.
Kemudian masuk ke fungsi validation($mode). Fungsi ini mungkin sudah jelas yakni untuk memvalidasi data yang berasal dari input form. Inilah istimewanya kalau kita menggunakan sebuah framework, pasti sudah disediakan sebuah modul / librari untuk kemudahan kita para developer. Untuk validasi di Codeigniter, kita bisa menggunakan librari form_validation. Untuk menset validasi di setiap inputan form, gunakan kode ini : $this->form_validation->set_rules(‘nama_form_input’, ‘label_untuk_pesan_error’, ‘validasi_yang_kita_inginkan’). untuk validasi-validasi apa saja yang telah disediakan codeigniter, silahkan buka link berikut : Referensi Validasi. Lalu untuk penjelasan lebih detail mengenai validasi form di codeigniter, buka link berikut ini : Dokumentasi Validasi Form. (Ketika membuka kedua link tadi, Anda akan dibawa ke halaman iklan terlebih dahulu, Lihat di pojok kanan atas, tunggu 5 detik. lalu klik tombol SKIP AD).
$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’)
);
Kemudian kita masuk ke fungsi save(). Dalam fungsi tersebut terdapat kode seperti diatas. Kita buat sebuah array untuk menampung data apa saja yang akan kita simpa ke tabel di database. Lihat pada kode yang saya beri warna merah, kode tersebut harus sama dengan nama-nama field/kolom pada tabel siswa di databasenya. Lalu array $data tersebut akan kita simpan ke database dengan kode ini $this->db->insert(‘siswa’, $data). Struktur dari kode ini adalah $this->db->insert(nama_tabel, array_data);.
Untuk fungsi update($nis) pun hampir sama seperti fungsi save(). hanya disini kita tambahakan where nis $this->db->where(‘nis’, $nis).

STEP 6 – BUAT CONTROLLER
Pada tahap ini, kita akan membuat controllernya. Buat sebuah file dengan nama Siswa.php, lalu simpan pada folder xampp/htdocs/crud_ci/application/controllers/. Berikut ini kodenya :
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2. class Siswa extends CI_Controller {
  3. public function __construct(){
  4. parent::__construct();
  5. $this->load->model('SiswaModel'); // Load SiswaModel ke controller ini
  6. }
  7. public function index(){
  8. $data['siswa'] = $this->SiswaModel->view();
  9. $this->load->view('siswa/index', $data);
  10. }
  11. public function tambah(){
  12. if($this->input->post('submit')){ // Jika user mengklik tombol submit yang ada di form
  13. if($this->SiswaModel->validation("save")){ // Jika validasi sukses atau hasil validasi adalah TRUE
  14. $this->SiswaModel->save(); // Panggil fungsi save() yang ada di SiswaModel.php
  15. redirect('siswa');
  16. }
  17. }
  18. $this->load->view('siswa/form_tambah');
  19. }
  20. public function ubah($nis){
  21. if($this->input->post('submit')){ // Jika user mengklik tombol submit yang ada di form
  22. if($this->SiswaModel->validation("update")){ // Jika validasi sukses atau hasil validasi adalah TRUE
  23. $this->SiswaModel->edit($nis); // Panggil fungsi edit() yang ada di SiswaModel.php
  24. redirect('siswa');
  25. }
  26. }
  27. $data['siswa'] = $this->SiswaModel->view_by($nis);
  28. $this->load->view('siswa/form_ubah', $data);
  29. }
  30. public function hapus($nis){
  31. $this->SiswaModel->delete($nis); // Panggil fungsi delete() yang ada di SiswaModel.php
  32. redirect('siswa');
  33. }
  34. }
Pada controller ini, kita membuat 3 fungsi. fungsi pertama yaitu public function __construct(){, fungsi ini berfungsi untuk menjalankan suatu aksi ketika controller main diload. Didalm fungsi ini, terdapat kode $this->load->model(‘SiswaModel’);, kode tersebut berfungsi untuk memuat (meload) model siswa (yang pada step sebelumnya kita buat) agar kita bisa mengakses fungsi-fungsi yang ada didalam model tersebut.
Fungsi yang kedua yaitu public function index(). Dalam fungsi ini ada kode $data[‘siswa’] = $this->SiswaModel->view();, kode tersebut digunakan untuk mengambil hasil query sql dari fungsi view() yang ada pada model siswa (SiswaModel.php) lalu memasukannya ke dalam array data dengan index siswa ($data[‘siswa’]). Pada fungsi index() ini juga, terdapat kode $this->load->view(‘siswa/index’, $data);. Kode tersebut berfungsi untuk memuat (meload) file index.php (file ini akan kita buat pada step selanjutnya) dan mengirimkan array data ($data) tadi ke file tersebut.

STEP 7 – BUAT VIEWSelanjutnya kita akan membuat file view untuk menampilkan data siswanya. Buat sebuah folder dengan nama siswa pada folder xampp/htdocs/crud_ci/application/views/. Lalu buat sebuah file dengan nama index.php, lalu simpan pada folder siswa yang tadi kita buat (xampp/htdocs/crud_ci/application/views/siswa/). Berikut ini tampilan dan kodenya :
View - Cara Mudah Membuat CRUD dengan Codeigniter dan MySQL
  1. <html>
  2. <head>
  3. <title>CRUD Codeigniter</title>
  4. </head>
  5. <body>
  6. <h1>Data siswa</h1>
  7. <hr>
  8. <a href='<?php echo base_url("siswa/tambah"); ?>'>Tambah Data</a><br><br>
  9. <table border="1" cellpadding="7">
  10. <tr>
  11. <th>NPM</th>
  12. <th>Nama</th>
  13. <th>Jenis Kelamin</th>
  14. <th>Telepon</th>
  15. <th>Alamat</th>
  16. <th colspan="2">Aksi</th>
  17. </tr>
  18. <?php
  19. if( ! empty($siswa)){ // Jika data siswa tidak sama dengan kosong, artinya jika data siswa ada
  20. foreach($siswa as $data){
  21. echo "<tr>
  22. <td>".$data->nis."</td>
  23. <td>".$data->nama."</td>
  24. <td>".$data->jenis_kelamin."</td>
  25. <td>".$data->telp."</td>
  26. <td>".$data->alamat."</td>
  27. <td><a href='".base_url("siswa/ubah/".$data->nis)."'>Ubah</a></td>
  28. <td><a href='".base_url("siswa/hapus/".$data->nis)."'>Hapus</a></td>
  29. </tr>";
  30. }
  31. }else{ // Jika data siswa kosong
  32. echo "<tr><td align='center' colspan='7'>Data Tidak Ada</td></tr>";
  33. }
  34. ?>
  35. </table>
  36. </body>
  37. </html>
Pada kode diatas terdapat kode foreach($siswa as $data){, kode tersebut akan manampilkan satu per satu data siswa sampai data siswa yang terakhir.

STEP 8 – FORM TAMBAH
Selanjutnya kita akan coba membuat form untuk menambah datanya. Buat sebuah file dengan nama form_tambah.php, lalu simpan pada folder xampp/htdocs/crud_ci/application/views/siswa/. Berikut tampilan dan kodenya :
Form Tambah - Cara Mudah Membuat CRUD dengan Codeigniter dan MySQL
  1. <html>
  2. <head>
  3. <title>Form Tambah - CRUD Codeigniter</title>
  4. </head>
  5. <body>
  6. <h1>Form Tambah Data Mahasiswa</h1>
  7. <hr>
  8. <!-- Menampilkan Error jika validasi tidak valid -->
  9. <div style="color: red;"><?php echo validation_errors(); ?></div>
  10. <?php echo form_open("siswa/tambah"); ?>
  11. <table cellpadding="8">
  12. <tr>
  13. <td>NIS</td>
  14. <td><input type="text" name="input_nis" value="<?php echo set_value('input_nis'); ?>"></td>
  15. </tr>
  16. <tr>
  17. <td>Nama</td>
  18. <td><input type="text" name="input_nama" value="<?php echo set_value('input_nama'); ?>"></td>
  19. </tr>
  20. <tr>
  21. <td>Jenis Kelamin</td>
  22. <td>
  23. <input type="radio" name="input_jeniskelamin" value="Laki-laki" <?php echo set_radio('jeniskelamin', 'Laki-laki'); ?>> Laki-laki
  24. <input type="radio" name="input_jeniskelamin" value="Perempuan" <?php echo set_radio('jeniskelamin', 'Perempuan'); ?>> Perempuan
  25. </td>
  26. </tr>
  27. <tr>
  28. <td>Telepon</td>
  29. <td><input type="text" name="input_telp" value="<?php echo set_value('input_telp'); ?>"></td>
  30. </tr>
  31. <tr>
  32. <td>Alamat</td>
  33. <td><textarea name="input_alamat"><?php echo set_value('input_alamat'); ?></textarea></td>
  34. </tr>
  35. </table>
  36. <hr>
  37. <input type="submit" name="submit" value="Simpan">
  38. <a href="<?php echo base_url(); ?>"><input type="button" value="Batal"></a>
  39. <?php echo form_close(); ?>
  40. </body>
  41. </html>
form_open(“siswa/tambah”)
Kode ini sama saja dengan kita membuat tag form. Kode tersebut akan menghasil kan tag form seperti ini <form method="post" action="http://localhost/crud_ci/siswa/tambah">
set_value(‘input_nis’)
Ini berguna untuk men-set value dari textbox input_nis agar ketika terjadi error dan halaman kembali ke form, data yang di input sebelumnya tidak hilang. input_nis disitu adalah name dari textbox nya.
form_close()
Ini akan menghasil kan penutup tag form : </form>

STEP 9 – FORM UBAH
Selanjutnya kita akan coba membuat form untuk menambah datanya. Buat sebuah file dengan nama form_ubah.php, lalu simpan pada folder xampp/htdocs/crud_ci/application/views/siswa/. Berikut tampilan dan kodenya :
Form Ubah - Cara Mudah Membuat CRUD dengan Codeigniter dan MySQL
  1. <html>
  2. <head>
  3. <title>Form Ubah - CRUD Codeigniter</title>
  4. </head>
  5. <body>
  6. <h1>Form Ubah Data Mahasiswa</h1>
  7. <hr>
  8. <!-- Menampilkan Error jika validasi tidak valid -->
  9. <div style="color: red;"><?php echo validation_errors(); ?></div>
  10. <?php echo form_open("siswa/ubah/".$siswa->nis); ?>
  11. <table cellpadding="8">
  12. <tr>
  13. <td>NIS</td>
  14. <td><input type="text" name="input_nis" value="<?php echo set_value('input_nis', $siswa->nis); ?>" readonly></td>
  15. </tr>
  16. <tr>
  17. <td>Nama</td>
  18. <td><input type="text" name="input_nama" value="<?php echo set_value('input_nama', $siswa->nama); ?>"></td>
  19. </tr>
  20. <tr>
  21. <td>Jenis Kelamin</td>
  22. <td>
  23. <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
  24. <input type="radio" name="input_jeniskelamin" value="Perempuan" <?php echo set_radio('jeniskelamin', 'Perempuan', ($siswa->jenis_kelamin == "Perempuan")? true : false); ?>> Perempuan
  25. </td>
  26. </tr>
  27. <tr>
  28. <td>Telepon</td>
  29. <td><input type="text" name="input_telp" value="<?php echo set_value('input_telp', $siswa->telp); ?>"></td>
  30. </tr>
  31. <tr>
  32. <td>Alamat</td>
  33. <td><textarea name="input_alamat"><?php echo set_value('input_alamat', $siswa->alamat); ?></textarea></td>
  34. </tr>
  35. </table>
  36. <hr>
  37. <input type="submit" name="submit" value="Ubah">
  38. <a href="<?php echo base_url(); ?>"><input type="button" value="Batal"></a>
  39. <?php echo form_close(); ?>
  40. </body>
  41. </html>
Variabel $siswa ini adalah hasil dari query pada controller siswa di function ubah. Lalu kita set terhadap masing-masing inputan pada form agar bisa menampilkan data sebelumnya. disini kita memanfaat kan fungsi buatan codeigniter yaitu set_value(name_textbox, valuenya).

Mungkin sekian untuk catatan kali ini. Semoga bisa bermanfaat. Jika ada yang kurang dipahami, langsung tanyakan pada form komentar dibawah ini. Jangan lupa LIKE dan SHARE nya, Terimakasih banyak.
Happy Coding ^_^
Latihan soal .......

  1. Apa pengertian CRUD?
  2. Bagaimana cara seting  HTACCESS?
  3. Apa Penjelasan Create,Update,Delete?
  4. bnagaimana cara melakukan KONFIGURASI dalam CRUD?
  5. Ada berapa langkah membuat CRUD dengan Codeigniter dan MySQL?

 

No comments:

Post a Comment

Pengamanan Sistem Basis Data Pada RDBMS

Mengevaluasi Pengamanan Sistem Basis Data Pada RDBMS A. Password Akses Basis Data      Seperti yang telah Anda ketahui, memberikan akses dat...