Tutorial Codeigniter Part 21 – Membuat CRUD (Create,Read, Update, Delete) di Codeigniter

Selamat datang di warungbelajar, dalam tutorial ini kita akan melanjutkan pembahasan mengenai seri tutorial codeigniter, dalam tutorial ini kita akan membahas bagaimana cara membuat crud (Create, Read, Update, Delete) di codeigniter, harapannya anda dapat melakukan komunikasi antara project codeigniter anda dengan database, setidaknya di operasional standart seperti Create, Read, Update, dan Delete.

Crud yang kita buat disini dengan study kasusnya adalah data siswa, untuk datanya antara lain menyimpan data :

  • nama
  • jenis_kelamin
  • tempat_lahir
  • tanggal_lahir
  • no_telp
  • alamat

Beberapa hal yang akan kita gunakan dalam tutorial ini antara lain adalah :

  1. PHP 7.3.9
  2. MySQL
  3. Visual Studio Code ( Text Editor )
  4. Bootstrap 4

 

Mempersiapkan Database

Baik untuk langkah awal kita akan buat terlebih dahulu databasenya, anda bisa menggunakan phpmyadmin untuk memudahkan anda dalam membuat database dan tabelnya, silahkan buka localhost/phpmyadmin untuk membuka phpmyadmin

lalu dibagian database kita buat database baru, semisal dengan nama crud, lalu klik tombol create

 

Berikutnya buat tabel dengan nama tb_siswa dengan jumlah kolom adalah 7, lalu klik Go

 

Berikutnya buat beberapa kolom dengan struktur seperti berikut ini :

  • kd_siswa : (int) Primary Key, Auto Increment
  • nama : Varchar(255)
  • jenis_kelamin : Enum(‘pria’,’wanita’)
  • tempat_lahir : Varchar(255)
  • tanggal_lahir : date
  • no_telp : Varchar(100)
  • alamat : Varchar(100)

setelah itu silahkan klik save.

 

Nah dalam step ini kita sudah membuat database, beserta tabelnya, nah karena untuk bagian awal nanti kita akan belajar menampilkan data terlebih dahulu sehingga kita perlu menambahkan datanya terlebih dahulu, dalam contoh ini kita akan menambahkan 2 data.

Untuk menambahkan data silahkan klik menu Insert

lalu silahkan klik tombol Go, sehingga kita memilih 2 data siswa.

Untuk melihat data anda bisa klik menu browse

 

Selain cara diatas anda bisa membuat database, tabel serta mengisi data siswa menggunakan query SQL dibawah ini :

Baik asumsi saya anda sudah selesai mempersiapkan databasenya, berikutnya kita mempersiapkan project codeigniter, serta melakukan settingan beberapa bagian.

 

 

Mempersiapkan Project Codeigniter

Berikutnya silahkan teman – teman download dan install codeigniter 3, dalam contoh ini nama folder projectnya adalah crud, untuk tutorial langkah – langkah instalasi codeigniter anda bisa melihat tutorial kita sebelumnya Tutorial Cara Menginstall Codeigniter

Setting Konfigurasi Database

Berikutnya kita perlu setting database terlebih dahulu, silahkan buka file application/config/database.php, lalu berikutnya silahkan setting bagian database dengan settingan kurang lebih seperti berikut ini :

yang perlu disetting antara lain :

  • hostname : localhost
  • username : root (menyesuaikan username dari databasenya)
  • password : ” biarkan kosong menyesuaikan password databasenya
  • database : ‘crud’ (merupakan nama dari databasenya)
  • dbdriver : ‘mysqli’

 

Setting File Config

Berikutnya silahkan buka file application/config/config.php

Ubah bagian

menjadi

 

Ubah bagian

menjadi

hal ini kita seting karena kita akan menghilangkan index.php

 

Buat file .htaccess dibagian root folder dan isi codenya adalah seperti berikut ini :

untuk tutorial lebih lengkapnya bisa dilihat di tutorial kita sebelumnya : cara menghilangkan index.php di codeigniter

 

Load library dan Helper

Berikutnya kita akan load beberapa library , dan helper, silahkan buka file dengan nama application/config/autoload.php

ubah bagian

menjadi

 

ubah bagian

menjadi

kita load helper url, karena kita akan menggunakan perintah base_url nantinya

 

 

Mempersiapkan library CSS & JS untuk tampilan aplikasi

agar tampilan aplikasinya lebih menarik kita akan buat tampilannya dengan bootstrap, serta kita juga akan menggunakan datepicker untuk memilih tanggal lahir siswa.

Beberapa library CSS yang perlu anda download linknya ada dibawah ini :

  • https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css
  • https://unpkg.com/bootstrap-datepicker@1.9.0/dist/css/bootstrap-datepicker3.min.css

Beberapa library JS yang perlu anda download linknya ada dibawah ini :

  • https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js
  • https://code.jquery.com/jquery-3.5.0.min.js
  • https://unpkg.com/bootstrap-datepicker@1.9.0/dist/js/bootstrap-datepicker.min.js

Berikutnya buat folder dengan nama assets, didalam folder assets kita buat 2 folder yaitu

  1. css
  2. js

hasil download library css kita letakkan di folder assets/css

hasil download library js kita letakkan di folder assets/js

jadi kurang lebih seperti berikut ini :

 

 

Membuat Bagian Template Header & Footer

Berikutnya kita akan buat file untuk keperluan template, bagian template ini kita akan bagi menjadi 3 bagian :

  1. header
  2. content
  3. footer

 

Buat file header.php

kita buat file header.php didalam folder application/views/template/header.php

kita tuliskan kode untuk mengakses library css dan js yang sebelumnya telah kita download :

  • line 5 – 6 load library css
  • line 7 – 9 load library js

 

Buat File Footer.php

berikutnya kita buat file dengan nama footer.php didalam folder application/views/template/footer.php, untuk isi codenya adalah sebagai berikut :

baik kebutuhan untuk template sudah selesai kita akan mulai membuat CRUD, kita akan mulai dengan dengan membuat halaman untuk read data.

 

Membuat Fitur Read Data

Untuk langkah awal kita akan membuat fitur untuk menampilkan data siswa, kita perlu membuat controller terlebih dahulu, dalam contoh ini kita buat dengan nama Siswa.php

posisi file controller berada pada application/controller/Siswa.php

 

Berikutnya kita buat file model dengan nama Siswa_model.php, didalam folder application/models/Siswa_model.php

 

Berikutnya kita buat file view dengan nama index.php, posisi file view berada pada application/siswa/index.php, isinya adalah seperti berikut ini :

 

Nah berikutnya kita akan coba mengakses, dengan alamat : localhost/crud/siswa

Penjelasan :

Kita Mulai dari file Controller Siswa.php, dibagian function __construct kita load model dengan nama siswa_model.php agar data berkomunikasi dengan tabel siswa di database, selain itu kita load library form_validation untuk keperluan validasi form.

 

berikutnya pada method index kita menuliskan beberapa perintah antara lain :

digunakan untuk mengambil data siswa, kita mengakses method getAll di model siswa_model, data tersebut kita simpan di array $data dengan elemen siswa

 

ini merupakan method getAll di model siswa_model.php, dimana kita menuliskan perintah untuk mengambil data di table siswa, disitu kita menuliskan $this->table yang berisi nilai ‘tb_siswa‘ (perhatikan line 5 di siswa_model.php)

 

ini adalah perintah di controller siswa.php, untuk menampilkan view, kita mengakses 3 view sekaligus, kita menatanya sesuai template yaitu :

  • header (mengakses file view template/header.php)
  • content (mengakses file view  siswa/index.php) kita juga passing data berupa array $data yang berisi data siswa hasil query dari method getAll di model siswa_model.php
  • footer (mengakses file view template/footer.php)

 

Berikutnya kita beralih ke file view siswa/index.php

perhatikan beberapa kode dibawah ini :

Kita buat tombol untuk menambah data, dimana jika tombol ini di klik akan mengakses alamat http://localhost/crud/siswa/create, perhatikan kode line 5

kita lakukan extract variabel $siswa yang merupakan array yang dipassing dari controller, kita gunakan perintah foreach (Line 21)

kita menampilkan setiap data siswanya dengan perpaduan perintah html <tr></td> dan <td></td>

untuk menampilkan data kita bisa menuliskan perintah $row->nama_kolom, semisal menampilkan nilai dari kolom alamat maka menggunakan perintah $row->alamat

bagian tombol edit akan mengakses alamat : http://localhost/crud/siswa/edit/kd_siswa, karena kd_siswa ada dalam kolom kd_siswa sehingga kita menggunakan perintah $row->kd_siswa

bagian tombol hapus akan mengakses alamat : http://localhost/crud/siswa/delete/kd_siswa, karena kd_siswa ada dalam kolom kd_siswa sehingga kita menggunakan perintah $row->kd_siswa

 

 

Membuat Form untuk Menambahkan Data

Kembali ke controller Siswa.php, lalu tambahkan function create, sehingga kode di controller Siswa.php menjadi seperti berikut ini :

Keterangan :

Perintah dibagian method create akan menampilkan file view dengan nama create.php di dalam folder application/views/siswa/create.php (Line 24)

tidak hanya itu kita juga mengakses file view header.php (Line 23), dan view footer.php (Line 24) untuk keperluan template.

 

Berikutnya kita buat file view dengan nama create.php, posisi file view berada pada folder application/create.php, isi kodenya adalah sebagai berikut :

 

Untuk menampilkan form tambah data, anda bisa menggunakan alamat : http://localhost/crud/siswa/create

Keterangan :

Pada Line 6 kita menuliskan perintah untuk melakukan pengecekan apakan nantinya entrian form sudah valid sesuai form validation, jika tidak valid maka akan menampilkan pesan error berisi informasi entrian form yang tidak valid

 

Line 15 untuk bagian form kita menggunakan method post, dan entrian form akan di proses di method save pada controller Siswa

 

Line 18 kita buat inputan form dengan name=”nama”

 

Line 23 – 26 kita buat pilihan dengan menggunakan selectbox dengan name=”jenis_kelamin”

 

Line 31 kita buat inputan dengan name = “tempat_lahir”

 

Line 36 kita buat inputan dengan name=”tanggal_lahir”, disini kita juga tambahkan class datepicker, karena kita akan menggunakan datepicker untuk memilih tanggalnya.

 

Line 41 kita buat inputan dengan name =”no_telp”

 

Line 46 kita buat textarea dengan name=”alamat”

 

Line 49 kita buat tombol submit untuk submit form

 

 

Membuat Method untuk memproses menambahkan data

Untuk melakukan proses terhadap inputan form tambah data, kita perlu membuat method dengan nama save di controller Siswa.php, sehingga controller Siswa isinya menjadi seperti berikut :

Keterangan :

Pada line 28 kita buat function save untuk memproses hasil inputan dari form tambah data.

Kita buat validasi untuk inputan form, dimana inputan dengan name (nama,jenis_kelamin,tempat_lahir,tanggal_lahir, no_telp, alamat) bersifat required yang artinya harus diisi inputan formnya.

untuk tutorial lebih lanjut mengenai form validasi bisa lihat tutorial kita sebelumnya : Penanganan Form dan Form validasi di Codeigniter

Jika validasi form bernilai true atau bisa dikatakan inputan formnya valid seluruhnya sesuai form validasi, maka akan menjalankan code dibaris 38 – 45.

line 38 – 43 kita menangkap inputan form dan disimpan dalam array $data, kita menangkap inputan form dengan menggunakan method post sehingga perintahnya adalah $this->input->post(‘nama_inputan’)

 

Line 44 kita mengakses method save di model Siswa_model, dengan mengirimkan parameter variabel $data yang telah berisi inputan form.

 

Line 45 kita lakukan redirect ke dalam alamat : http://localhost/crud/siswa

 

line 49 – 51 akan dijalankan jika inputan form ada yang tidak valid sesuai form validasi, maka akan menampilkan view dengan nama create didalam folder application/views/siswa/create.php atau secara sederhana kembali menampilkan form inputan.

Menambahkan method save di model Siswa_model.php

silahkan buka file Siswa_model.php dan tambahkan method save, sehingga kode file Siswa_model.php menjadi berikut ini :

Keterangan :

pada line 12 kita membuat method save, dengan memiliki satu parameter yaitu variabel $data, parameter ini adalah variabel array yang berisi inputan form yang dikirimkan dari controller Siswa.php pada method save

disini kita akan insert data ke dalam tabel tb_siswa, perintahnya adalah :

jadi perintah insert disini memiliki 2 parameter yaitu :

  1. nama tabel yang akan kita insert data, maka dalam contoh ini kita tuliskan $this->table karena bagian class variabel $table sudah kita berikan nilai “tb_siswa”
  2. parameter yang kedua adalah data yang akan diinsert di tabel yang ditulis di parameter pertama, dalamm contoh ini adalah variabel $data yang berisi array hasil inputan form

 

 

Membuat Form Edit Data

Berikutnya kita akan melanjutkan ke proses edit data, bagian ini kita akan bagian menjadi 2 yaitu, pembuatan form editnya, dan proses updatenya.

kita akan mulai dibagian form editnya terlebih dahulu, perhatikan dibagian file view application/views/siswa/index.php

perhatikan pada line 33 kita membuat tombol edit :

Keterangan :

tombol edit ini jika di klik akan mengakses alamat : localhost/crud/siswa/edit/kd_siswa

sehingga bisa disimpulkan untuk menampilkan form edit kita perlu mengakses method edit didalam controller siswa, dan juga menyertakan nilai kolom kd_siswa dari siswa yang akan diedit.

 

Nah untuk langkah awal kita akan tambahkan method edit didalam controller siswa, silahkan buka file controller application/controller/Siswa.php, lalu tambahkan bagian method edit, sehingga hasilnya akan seperti berikut ini :

 

Berikutnya buka file model Siswa_model.php dalam folder application/models/Siswa_model.php, lalu tambahkan method getById, sehingga hasil dari Siswa_model.php adalah sebagai berikut :

Keterangan :

Kita menambahkan method edit di controller Siswa di line 55 – 61, pada method edit ini kita menambahkan 1 parameter yaitu $kd_siswa

Pada line 57 di controller siswa kita mengakses method getById didalam siswa_model, dengan menyertakan parameter yang dibutuhkan yaitu $kd_siswa, dimana nanti hasilnya akan kita simpan pada array $data dengan nama key/elemen yaitu siswa

 

Pada line 17 di model Siswa_model kita buat method dengan nama getById dan memiliki parameter $id, dalam method ini kita buat perintah query untuk mencari data siswa berdasarkan kd_siswa yang sama dengan nilai dari variabel $id.

 

kita kembali ke bagian controller siswa.php, pada method edit setelah kita mengambil data siswa berdasarkan kd_siswa, berikutnya kita akan load view header, edit, dan footer.

kita fokus load view edit.php pada line 59, kita juga passing data yang berupa variabel array $data yang berisi data siswa sesuai kd_siswa yang diinginkan.

 

berikutnya kita buat file view dengan nama edit.php, kita buat di folder application/views/siswa/edit.php, untuk isi kodenya seperti berikut :

Keterangan :

Line 5 – 14 kita tuliskan perintah untuk melakukan pengecekan terhadap error validasinya, nantinya jika ada error terhadap form validasi maka akan menampilkan error.

 

Line 15 kita buat form dengan perintah HTML, dengan method = “post” dan bagian action akan mengakses alamat localhost/crud/siswa/update untuk memproses form update.

jadi bisa kita simpulkan form update akan di proses dibagian method update di controller siswa.

 

Line 16 kita buat inputan dengan type hidden dengan name kd_siswa, dan value kita set $siswa->kd_siswa; yang artinya mengambil nilai pada kolom kd_siswa dari variabel $siswa, variabel $siswa adalah nilai yang dipassing dari controller kebagian view.

 

Line 24 – 27 kita buat selectbox dengan nama jenis_kelamin, dan untuk option yang terpilih kita sesuai dengan nilai jenis_kelamin dari data siswa

 

Line 32 kita buat input type text dengan name tempat_lahir, yang bagian value kita isi dengan nilai kolom tempat_lahir di data siswa

 

Line 37 kita buat input type text dengan name tanggal_lahir, yang bagian value kita isi dengan nilai kolom tanggal_lahir di data siswa

 

Line 42 kita buat input type text dengan name no_telp, yang bagian value kita isi dengan nilai kolom no_telp di data siswa

 

Line 47 kita buat textarea dengan name alamat, yang bagian value kita isi dengan nilai kolom alamat di data siswa

 

Line 50 kita buat tombol update, yang nantinya akan ada tulisan Update.

Kita contohkan kita coba edit salah satu data siswa, semisal kita edit data yang pertama, alamatnya seperti berikut ini : localhost/crud/siswa/edit/1

 

Membuat Method Update untuk proses update data siswa

Berikutnya kita buat method update didalam controller siswa.php, sehingga kodenya menjadi seperti berikut ini :

 

Berikutnya kita akan menambahkan method update didalam file model Siswa_model.php, method update ini memiliki 2 parameter, yaitu variabel $data dan variabel $id, sehingga file model Siswa_model.php berisi kode seperti ini :

Keterangan :

kita mulai dari file controller siswa.php, line 65 – 70 kita tuliskan perintah untuk melakukan validasi inputan form, jika inputan form valid sesuai validasi form maka akan menjalankan line 73 – 81, tetapi jika tidak valid akan menjalankan line 85 – 89

 

Line 73 kita simpan inputan form kd_siswa kedalam variabel $kd_siswa

 

Line 74 – 79 kita simpan inputan form (nama,jenis_kelamin,tempat_lahir,tanggal_lahir,no_telp,alamat ) inputan form ini akan disimpan kedalam variabel $data yang merupakan array.

 

Pada line 80 kita mengakses method update, didalam model siswa_model, kita juga menyertakan 2 parameter yaitu variabel $data, dan variabel $kd_siswa, dimana variabel $data berisi inputan dari form update, dan $kd_siswa adalah nilai kd_siswa yang akan diupdate.

 

Berikutnya kita buat beralih ke file siswa_model.php, pada line 22 kita method update, dengan 2 parameter juga yaitu variabel $data, dan variabel $id.

Pada method update dibagian siswa_model ini kita tuliskan query untuk update data, untuk query update data kita perlu menuliskan 3 bagian penting, yaitu :

  1. nama tabelnya dalam hal ini kita tuliskan $this->table, yang memiliki nilai ‘tb_siswa’
  2. nilai yang diupdate, dalam hal ini kita tuliskan variabel $data yang telah berisi hasil inputan form update dari bagian controller
  3. kd_siswa dari data siswa yang akan diupdate, dalam ini ini tuliskan variabel $id yang berisi kode siswa dari nilai siswa yang akan diupdate.
 

Jika proses update berhasil akan diarahkan kedalam controller siswa pada method index (Line 81)

 

Kita lanjut ke pembahasan dibagian controller siswa, jika inputan form tidak valid, maka akan menjalankan line 85 – 89, dimana bagian ini line 85 akan mendapatkan data kd_siswa, line 86 akan mendapatkan data siswa berdasarkan kd_siswa, lalu akan diarahkan untuk mengakses view bagian form edit, dengan passing variabel $data (Line 88)

 

Membuat Fitur  Delete data siswa

Berikutnya kita akan melanjutkan untuk membuat fitur delete data siswa, jika kita perhatikan kita telah membuat tombol delete dibagian file view index.

coba buka file view dengan nama index.php didalam folder application/views/siswa/index.php, perhatikan pada line 34.

Keterangan :

tombol delete itu jika di klik maka akan mengakses localhost/crud/siswa/delete/kd_siswa.

jadi bisa disimpulkan proses delete data akan dilakukan di method delete pada controller siswa, dengan mengirimkan 1 parameter kd_siswa

 

berikutnya kita buka file controller siswa, lalu kita buat method delete, yang memiliki parameter $kd_siswa, hasilnya controller siswa menjadi seperti ini :

 

Berikutnya kita buka file model Siswa_model.php, kita tambahkan method delete yang memiliki 1 parameter yaitu variabel $id

Keterangan :

Controller Siswa, Line 93 kita membuat method delete, dimana memiliki 1 parameter $kd_siswa, line 95 kita akan mengakses method delete yang ada dalam model siswa_model dan juta mengirimkan parameter variabel $kd_siswa

 

Model Siswa_model Line 27, kita membuat method delete dengan memiliki 1 parameter  yaitu variabel $id, pada method delete ini kita tuliskan perintah query untuk delete data, dimana kita perlu menuliskan 2 bagian ketika menuliskan query delete yaitu :

  1. nama tabel yang datanya akan dihapus, dalam contoh ini kita tuliskan $this->table yang bernilai ‘tb_siswa
  2. kondisi data mana yang akan dihapus, kita menuliskan array kd_siswa dengan value variabel $id, yang artinya menghapus data siswa berdasarkan kd_siswa yang nilainya sama dengan variabel $id
 

 

Hasil Kode Akhir

File Controller Siswa.php

 

File Model Siswa_model.php

 

File Header.php di folder application/views/template/header.php

 

 

 

File index.php di folder application/views/siswa/index.php

 

File Footer.php di folder application/views/template/footer.php

 

File index.php di folder application/views/siswa/index.php

 

File create.php di folder application/views/siswa/create.php

 

File edit.php di folder application/views/siswa/edit.php

 

Download Source Code

Jika teman – teman ingin download source code, bisa klik disini : https://github.com/warungbelajar/crud-ci3

 

Nah jadi itu teman – teman kurang lebih tutorial kita kali ini, kita sudah belajar untuk membuat CRUD di codeigniter, jika ada yang ingin didiskusikan silahkan di kolom komentar, sekian dulu sampai jumpa di tutorial berikutnya.

2 thoughts on “Tutorial Codeigniter Part 21 – Membuat CRUD (Create,Read, Update, Delete) di Codeigniter

  • May 12, 2020 at 11:28 pm
    Permalink

    Artikel ini sangat menarik dan membantu saya.
    Terima kasih.

    Reply
  • May 15, 2020 at 12:48 pm
    Permalink

    Artikel ini sangat menarik dan membantu.
    Terima kasih.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *