Selamat Datang

Tutorial CRUD (Create, Read, Update dan Delete) Dengan CodeIgniter – Part 1

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.

Crud Codeigniter

Image by Marissa

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

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 :

	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($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

LANJUT : TUTORIAL CRUD DENGAN CODEIGNITER #PART2





Penulis :

Hello, my name is Adrian Hartanto. I am website developer. Now I am studying at Bina Nusantara University in Computer Science Major.. "The Magic Would Work Right Now." View all posts by Adrian Hartanto

Comments

34 thoughts on “Tutorial CRUD (Create, Read, Update dan Delete) Dengan CodeIgniter – Part 1

  1. Rusny says:

    Gan sorry, ane boleh gk minta tutorial membuat web e-commers. buat bahan skripsi, mohon pencerahannya. thanks banget
    email ane : Rusny.anwar@gmail.com

  2. @Rusny

    Wah maap mas, belum bisa bkin tutorial seperti itu. Masih ad kerjaan yang lain. hehe :D

  3. ipeyato says:

    mantap mas, tutorialnya mudah dipahami khususnya untuk pemula, karena setiap code di iringi penjelasannya. ditunggu part 2 dan selanjutnya ya mas :)

  4. Johan says:

    Mau nanya bos.. Bedanya codeigniter 2.0 sama yang 2.1.4 itu apa ?

    Soalnya saya punya ebook CI 2.0,, tapi saya pakai yang 2.1.4..
    Apa ada pengaruhnya ya bos ?

  5. irwan says:

    gimana cara downloadnya

  6. unknown says:

    ini kok ada error isinya begini ya:

    Message: Undefined variable: listProducts

    mohon pencerahannya :D

    • flowthkr says:

      tolong dicek semua teks ‘listProduct’, setelah saya cek tadi ada listProduct yang ada tambahan (s), jadi ganti semua ‘listProducts’ pada setiap file yang telah dibuat menjadi ‘listProduct’ (tanpa ‘s’ dibelakang)

      CMIIW

  7. Ahsanun naseh says:

    part 2nya ditunngu gan..penting banget nie

  8. hendrikus says:

    makasih ya udh berbagi…

  9. yusharnadi says:

    That simple , easy to understand :)
    Keep share bro.

  10. dereel says:

    Kalo ini kenapa ya gan, kok sampek ke db_driver ya ..
    mohon pencerahannya dong :

    Unable to connect to your database server using the provided settings.

    Filename: C:\xampp\htdocs\crudci\system\database\DB_driver.php

  11. hitro says:

    Di view terdapat :
    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
    9

    10
    if($jumlahProduk == 0){
    11
    ?>
    12

    13
    <a href="index.php/products/addProduct”>Tambah Produk
    14
    <?php

    Mengingat fungsi View adalah untuk menampilkan data dan Controller sebagai pengendali, apakah tidak lebih baik script diatas ditempatkan di Controller ?
    Mohon pencerahannya gan…

  12. sandy says:

    kapan nih pasrt 2 nya keluar gan ?

  13. Choerul says:

    makasih banyak gan tutor nya…. sangat bermanfaat :)

  14. […] Tutorial CRUD (Create, Read, Update dan Delete) Dengan CodeIgniter […]

  15. tria says:

    part 2 nya kapan mas beresnya butuh bgt nih, soalnya tutor dari anda cukup mudah dimengerti

  16. […] Untuk selanjutnya, mari kita lanjut belajar menggunakan codeigniter yakni untuk melakukan update dan juga delete. Sebelum kita memulainya, silahkan download terlebih dahulu file tutorial dari part 1 melalui link ini : Link Download Tutorial Part 1 atau jika ingin kembali membaca tutorial tersebut bisa melalui ini Tutorial CodeIgniter Part 1. […]

  17. Mitchell says:

    mantep mas, mudah dimengerti :)

  18. supriyadi says:

    error mas gimana nichh:
    A PHP Error was encountered

    Severity: Notice

    Message: Undefined property: Products::$db

    Filename: core/Model.php

    Line Number: 51

    Fatal error: Call to a member function select() on a non-object in C:\xampp\htdocs\CodeIgniter\application\models\products_model.php on line 15

  19. Freddy says:

    Gan tambahakn fungsi validasinya donk, nyoba beljar dari sumber lain agak susah, ane new biedi code igniter lagu mau move on neh

  20. Trieo says:

    Terima Kasih Tutorial nya sangat membantu sekali buat saya yang lagi belajar CI

  21. Fariz says:

    wah bagus gan, lebih bagus kalo ada SS nya ^_^

  22. […] Juga: Tutorial CRUD (Create, Read, Update dan Delete) Dengan CodeIgniter – Part 1 & Part […]

  23. josai says:

    gan form insertnya kenapa kok gak bisa muncul ? mohon bantuaanya ?

  24. fakhri says:

    file .sql nya dimana mas?

  25. cahyo says:

    gan saya mau tanya, kalau mau ngebaca file excell dr codde igniter bisa ga ? gimana ya caranya ? mohon pencerahanya ? thanks

  26. Nanda Maya Utari says:

    Saya tertarik dengan tulisan Anda. Saya juga mempunyai informasi mengenai basis data Oracle dan pendaftaran kursus Oracle yang bisa Anda kunjungi di http://lpug.gunadarma.ac.id/sertifikasi/owdp/eng/welcome

  27. redvie says:

    Bro untuk link db_toko.sql nya dimana ya ? mohon respon nya.
    terima kasih.

  28. cara ngupdate gambar di artikel bagaimana caranya?

  29. joe says:

    gan, ane newbi banget ni dlm php

    udah ane ikuti step by stepnya, ane pake php v7.

    pas ane akses browsernya ane dpt error gini

    http://localhost/crud_ci/index.php/products

    Parse error: syntax error, unexpected ‘->’ (T_OBJECT_OPERATOR) in C:\xampp\htdocs\crud_ci\application\controllers\products.php on line 5

    ini isi line 5 products.php

    $this—>load=>model(“products_model”);

    mohon bantuannya ya master php dan CI :)

Leave a Comment

XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


Klik Tombol Like / Suka ya kawan..

Klik tombol "Like" atau "Suka" untuk mendapatkan update tutorial, tips & tricks serta info terbaru seputar dunia web design & development