Pada kesempatan kali ini kita akan membahas bagaimana membuat CRUD (Create, Read, Update, dan Delete) menggunakan Framework CodeIgniter. Kita akan belajar bagaimana melihat list produk dan menambah / menghapus produk yang dimiliki oleh suatu toko.
Pertama-tama, kita membutuhkan database untuk menyimpan data-data kita. Saya sudah menyiapkan sebuah database yang bernama db_product, di dalamnya terdapat sebuah table msProduct yang terdiri dari field / attribute productId, productName, stock. File database bisa pembaca download melalui link ini : db_toko.sql
Struktur Folder yang akan kita buat :
crud_ci -> nama folder
- application
- – controllers
- – - products.php -> berada di dalam folder controllers
- – models
- – - products_model.php -> berada di dalam folder models
- – views
- – - products_view.php -> berada di dalam folder views untuk tampilan list produk
- – - add_product_view.php -> berada di dalam folder views untuk tampilan saat insert produk
- – - update_product_view.php -> berada di dalam folder views untuk tampilan saat update produk
- application
- – controllers
- – - products.php -> berada di dalam folder controllers
- – models
- – - products_model.php -> berada di dalam folder models
- – views
- – - products_view.php -> berada di dalam folder views untuk tampilan list produk
- – - add_product_view.php -> berada di dalam folder views untuk tampilan saat insert produk
- – - update_product_view.php -> berada di dalam folder views untuk tampilan saat update produk
Karena kita membutuhkan koneksi ke database maka ada beberapa konfigurasi yang perlu kita lakukan :
Setting autoload.php yang ada di folder config untuk menentukan hal-hal apa saja yang di load setiap membuka suatu page (ada helper, library, dll silahkan lihat di user_guide codeigniter :) )
$autoload['libraries'] = array('database'); //library yang telah disediakan codeigniter untuk mempermudah kita dalam hal-hal yang berhubungan dengan database $autoload['helper'] = array('url'); //helper untuk url, sehingga kita bisa menggunakan base_url(), base_url() ini nantinya akan menghasilkan root folder kalian, misal nya kalian menggunakan url "localhost/tokosaya", maka localhost/tokosaya adalah base_url() milik kalian
setelah selesai dengan config.php, maka kita akan berlanjut untuk setting file database.php yang ada di folder config
$db['default']['hostname'] = 'localhost'; //ini adalah nama host yang kita gunakan untuk menyimpan database kita, dibiarkan saja menggunakan localhost, soalnya kita menggunakan host sendiri yang ada di komputer milik $db['default']['username'] = 'root'; //ini adalah username yang digunakan untuk mengakses database, defaultnya adalah root $db['default']['password'] = ''; //password yang digunakan untuk mengakses database, nilai defaultnya kosong, jadi kalau tidak disetting, maka biarkan seperti itu saja $db['default']['database'] = 'db_toko'; //nama database yang kita gunakan untuk aplikasi web ini, kali ini saya beri nama db_toko
Setelah semua konfigurasi dasar sudah selesai, maka kita berlanjut ke tahap berikutnya, yaitu membuat controller yang digunakan untuk menghandle request halaman dari user. Kita buat file products.php kemudian disimpan di dalam folder controllers (application/controllers/products.php). File products.php ini akan memiliki struktur seperti ini :
products.php :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Products extends CI_Controller { function __construct(){ parent::__construct(); $this--->load->model("products_model"); //constructor yang dipanggil ketika memanggil products.php untuk melakukan pemanggilan pada model : products_model.php yang ada di folder models } public function index() { //Function yang digunakan untuk menampilkan view products_view.php $data['listProducts'] = $this->products_model->getAllProducts(); //berisi dari return value pada function getAllProducts() di file models/products_model.php $this->load->view('products_view', $data); //menampilkan view 'products_view' dan juga passing data dengan nama $data(Bentuknya array) yang berisi 'listProducts' } public function addProduct() { //Function yang dipanggil ketika ingin melakukan add produk kemudian menampilkan add_product_view } public function addProductDb() { //Function yang dipanggil ketika ingin memasukan produk ke dalam database } public function updateProduct() { //Function yang dipanggil ketika ingin melakukan update produk kemudian menampilkan update_product_view } public function updateProductDb() { //Function yang dipanggil ketika ingin melakukan update terhadap produk yang ada di dalam database } public function deleteProductDb() { //Function yang dipanggil ketika ingin melakukan delete produk dari database } } /* Location: ./application/controllers/products.php */
Setelah controller sudah kita buat, kita akan membuat models yang akan kita gunakan dalam web kita kali ini. Saya beri nama products_model.php dan disimpan di dalam folder models (application/models/products_model.php)
products_model.php :
<?php //File products_model.php class Products_model extends CI_Model { function __construct() { parent::__construct(); } function getAllProducts() { //select semua data yang ada pada table msProduct $this--->db->select("*"); $this->db->from("msProduct"); return $this->db->get(); } function getProduct($id) { //select produk berdasarkan id yang dimiliki } function addProduct($data) { //untuk insert data ke database } function updateProduct($id) { //update produk berdasarkan id } function deleteProduct($id) { //delete produk berdasarkan id } }
Selanjutnya kita akan membuat view untuk menampilkan produk yang kita miliki sesuai yang ada di dalam database. Apabila kita belum memiliki produk maka kita akan meminta user untuk menambah produk terlebih dahulu, hehehe :D
products_view.php :
<!-- File products_view.php --> <html> <head> <title>CRUD dengan CodeIgniter</title> </head> <body> <?php $jumlahProduk = $listProducts->num_rows(); //$listProduct berasal dari data yang dilempar dari controller, yaitu $data['listProducts']. num_rows() digunakan untuk menghitung jumlah baris yang dimiliki ketika kita melakukan select dari database if($jumlahProduk == 0){ ?> <!-- Kalau datanya masih kosong, kita harus melakukan add product --> <a href="<?= base_url() ?>index.php/products/addProduct">Tambah Produk</a> <?php } else { ?> <!-- Kalau ada datanya, maka kita akan tampilkan dalam table --> <h1>Products List</h1> <table border="1"> <thead> <tr> <th>No. </th> <th>Product ID</th> <th>Product Name</th> <th>Stock(s)</th> <th>Action</th> </tr> </thead> <tbody> <?php //Kita akan melakukan looping sesuai dengan data yang dimiliki $i = 0; //nantinya akan digunakan untuk pengisian Nomor foreach ($listProducts->result() as $row) { ?> <tr> <td><?= $i ?></td> <td><?= $row->productId ?></td> <!-- karena berbentuk objek, maka kita menggunakan panah (->) untuk menunjuk field yang ada di database --> <td><?= $row->productName ?></td> <td><?= $row->stock ?></td> <td> <!-- Akan melakukan update atau delete sesuai dengan id yang diberikan ke controller --> <a href="<?= base_url() ?>products/updateProduct/<?= $row->productId ?>">Update</a> | <a href="<?= base_url() ?>products/deleteProductDb/<?= $row->productId ?>">Delete</a> </td> </tr> <?php } ?> </tbody> </table> <?php } ?> </body> </html>
Setelah itu kita akan membuat halaman yang dapat digunakan untuk melakukan add produk, kita buat file baru dengan nama add_product_view.php dan disimpan di dalam folder views
add_product_view.php :
<!-- File add_product_view.php --> <html> <head> <title>CRUD dengan CodeIgniter</title> </head> <body> <h1>Add New Product</h1> <form method="post" action="<?= base_url() ?>index.php/products/addProductDb"> <!-- action merupakan halaman yang dituju ketika tombol submit dalam suatu form ditekan --> <input type="text" placeholder="Product Name" name="productName" /> <input type="text" placeholder="Stock" name="stock" /> <input type="submit" /> </form> </body> </html>
Untuk langkah selanjutnya, kita perlu mengubah file controller kita terlebih dahulu agar sesuai dengan yang kita inginkan, kita ubah function addProduct dan addProductDb
function addProduct :
function addProduct :
public function addProduct() { //Function yang dipanggil ketika ingin melakukan add produk kemudian menampilkan add_product_view $this->load->view('add_product_view'); }
function addProductDb :
public function addProductDb() { //Function yang dipanggil ketika ingin memasukan produk ke dalam database $data = array( 'productName' => $this->input->post('productName'), 'stock' => $this->input->post('stock') ); $this->products_model->addProduct($data); //passing variable $data ke products_model redirect('products'); //redirect page ke halaman utama controller products }
Nah kalau sudah, maka kita perlu mengubah fungsi yang dimiliki oleh model kita. Tepatnya fungsi addProduct, fungsi tersebut akan menerima value atau nilai yang dilempar dari fungsi addProductDb pada controller products.php
function addProduct :
function addProduct :
function addProduct($data) { //untuk insert data ke database $this->db->insert('msProduct', $data); }
Kita sudah menyelesaikan proses untuk menambah suatu produk ke dalam database, silahkan dicoba :) . Di bagian selanjutnya kita akan belajar bagaimana cara melakukan update dan delete data yang ada pada database ini :)
File Tutorial bisa di download di sini : File Tutorial
sumber: http://www.tutorial-webdesign.com/tutorial-crud-create-read-update-dan-delete-menggunakan-codeigniter-1/
0 comments:
Post a Comment