Selamat Datang

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

Kembali lagi bersama saya untuk melanjutkan tutorial CRUD menggunakan CodeIgniter. Pertama-tama saya ingin mengucapkan permintaan maaf karena kelanjutan tutorial ini yang cukup lama, hal tersebut dikarenakan kesibukan penulis di dalam perkuliahan dan juga kerja. Sekali lagi saya mohon maaf dan juga saya ingin berterima kasih terhadap antusias pembaca dari tutorial yang saya tulis, saya sangat mengapresiasinya.

Artikel Lanjutan Dari : Tutorial CRUD di Codeigniter Part 1

crud codeigniter

Image by Marissa

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.

Kita perlu mengubah sedikit code pada file products_view.php yang ada di dalam folder file sehingga link untuk menambah produk tetap muncul meskipun sudah ada produk yang disimpan di dalam database.

<?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
		?>
			<a href="<?= base_url() ?>index.php/products/addProduct">Tambah Produk</a>
		<?php
            if($jumlahProduk > 0){ //Apabila data produk yang ada di dalam database lebih dari 0 maka baru ditampilkan
		?>
			<!-- 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>
File : views/products_view.php

Dengan validasi tersebut maka kita akan menampilkan list produk apabila sudah terdapat di dalam database, apabila di dalam database / table msproduct tersebut masih kosong tidak akan ditampilkan.

Selanjutnya adalah menambahkan view untuk melakukan update terhadap produk tersebut, pada tutorial sebelumnya kita sudah menambahkan link yang akan digunakan untuk melakukan update produk tersebut sehingga kita hanya perlu mengubah bagian controller untuk menerima parameter yang dilemparkan dari view produk untuk melakukan update

<a href="index.php/products/updateProduct/productId ?>">Update</a>
File : views/products_view.php

Sekarang kita akan mengubah bagian controller yaitu fungsi updateProduct untuk menerima parameter yang dikirimkan melalui view tersebut dan kemudian mengirimkannya ke model untuk mendapatkan informasi mengenai produk yang akan diupdate

public function updateProduct($productId) //Apabila kita menambahkan parameter seperti ini, maka kita menggunakan method GET untuk mengirimkan parameter dari view ke controller
	{
		//Function yang dipanggil ketika ingin melakukan update produk kemudian menampilkan update_product_view
        $data['product'] = $this->products_model->getProduct($productId); //Melakukan pemanggilan fungsi getProduct yang ada di dalam products_model untuk mendapatkan informasi / data mengenai produk berdasarkan productId yang dikirimkan
        
        $this->load->view('update_product_view', $data); //menampilkan view 'update_product_view' dan juga passing data dengan nama $data(Bentuknya array) yang berisi 'product'
	}
File : controller/products.php

Setelah bagian controller selesai diubah, maka kita akan melakukan pengeditan terhadap fungsi getProduct yang ada pada file products_model.php yang ada di folder models untuk menerima parameter yang telah dikirimkan dari controller untuk memperoleh data sesuai dengan productId yang diterima oleh model

function getProduct($id)
	{
		//select produk berdasarkan id yang dimiliki	
        $this->db->where('productId', $id); //Akan melakukan select terhadap row yang memiliki productId sesuai dengan productId yang telah dipilih
        $this->db->select("*");
        $this->db->from("msProduct");
        
        return $this->db->get();
	}
File : models/products_model.php

Setelah kita selesai melakukan perubahan terhadap controller dan juga modelnya maka kita akan membuat view yang digunakan untuk menampilkan halaman update dari produk yang telah kita pilih

<!-- File update_product_view.php -->
<html>
	<head>
		<title>CRUD dengan CodeIgniter</title>
	</head>
	<body>
		<h1>Update Product</h1>
        <?php
            //Kita akan melakukan looping terhadap variable $product yang telah dikirimkan melalui controller
            foreach($product->result() as $detail){
        ?>
		<form method="post" action="<?= base_url() ?>index.php/products/updateProductDb">
			<!-- action merupakan halaman yang dituju ketika tombol submit dalam suatu form ditekan -->
            <input type="hidden" value="<?php echo $detail->productId; ?>" name="productId" />
			<input type="text" placeholder="Product Name" name="productName" value="<?php echo $detail->productName; ?>" /> <!-- Value akan diisi berdasarkan data yang sudah ada di database, $detail->productName disini maksudnya adalah menunjuk productName yang merupakan attribute yang ada di table msProduct pada database -->
			<input type="text" placeholder="Stock" name="stock" value="<?php echo $detail->stock; ?>" /> <!-- Sama seperti di atas, hanya saja disini kita menampilkan stok -->
			<input type="submit" value="Update" />
		</form>
        <?php
            }    
        ?>
	</body>
</html>
File : views/update_product_view.php

Setelah kita menyelesaikan bagian view untuk melakukan update produk, yang selanjutnya kita harus lakukan adalah mengubah fungsi updateProductDb() yang ada di controller products

public function updateProductDb()
	{
		//Function yang dipanggil ketika ingin melakukan update terhadap produk yang ada di dalam database
        $data = array(
					'productName' => $this->input->post('productName'), //Didapatkan dari form yang disubmit pada file update_product_view.php
					'stock' => $this->input->post('stock') //Didapatkan dari form yang disubmit pada file update_product_view.php
				);
        $condition['productId'] = $this->input->post('productId'); //Digunakan untuk melakukan validasi terhadap produk mana yang akan diupdate nantinya
        
		$this->products_model->updateProduct($data, $condition); //passing variable $data ke products_model

		redirect('products'); //redirect page ke halaman utama controller products
	}
File : controller/products.php

Lanjut lagi ke bagian model untuk menghandle data yang akan di update ke database, saya melakukan perubahan terhadap parameter yang diterima oleh fungsi updateProduct menjadi $data dan $condition yang tadinya menggunakan $id karena kita membutuhkan 2 parameter yang digunakan untuk mengupdate data suatu produk

function updateProduct($data, $condition)
	{
		//update produk
        $this->db->where($condition); //Hanya akan melakukan update sesuai dengan condition yang sudah ditentukan
        $this->db->update('msProduct', $data); //Melakukan update terhadap table msProduct sesuai dengan data yang telah diterima dari controller
	}
File : models/products_model.php

Setelah fungsi pada model selesai maka kita telah memiliki fitur update pada website sederhana milik kita :) .

Mari kita lanjutkan dengan delete, sama seperti update sebelumnya, kita sudah memiliki link yang akan digunakan untuk melakukan delete suatu produk pada view yang kita miliki

<a href="<?= base_url() ?>index.php/products/deleteProductDb/<?= $row->productId ?>">Delete</a>
File : views/products_view.php

Kita perlu mengubah fungsi deleteProductDb yang ada pada controller products sehingga dapat mengirimkan productId mana yang akan di delete dari database nantinya

public function deleteProductDb($productId)
	{
		//Function yang dipanggil ketika ingin melakukan delete produk dari database
        $this->products_model->deleteProduct($productId); //Memanggil fungsi deleteProduct yang ada pada model products_model dan mengirimkan parameter yaitu productId yang akan di delete
        
        redirect('products'); //redirect page ke halaman utama controller products
	}
File : controller/products.php

Dan tahap terakhir adalah melakukan perubahan pada fungsi deleteProduct yang ada pada model products_model.php untuk menghandle productId yang diterima dari controller untuk melakukan delete pada database

function deleteProduct($id)
	{
		//delete produk berdasarkan id
        $this->db->where('productId', $id);
        $this->db->delete('msProduct');
	}
File : models/products_model.php

Sekarang kita sudah menyelesaikan tahap terakhir dari tutorial ini yakni melakukan update dan delete data menggunakan codeigniter. Semoga tutorial ini bisa bermanfaat bagi kita semua. Sekali lagi saya ucapkan terima kasih atas perhatiannya :)

Bila ada yang ingin bertanya boleh comment di bawah atau menghubungi saya lewat email…





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

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

  1. Adis says:

    bro saya minta bantuan nih. kok php tidak bisa menyimpan dengan sempurna data yang ada charset di dalamnya. saya mencoba menggunakan tinymce dan ckeditor untuk menulisnya. saya juga sudah mencoba pake html_entities, htmlspecialchar kok ga bisa juga. oh ya terutama yang ada ° (derajat) didalamnya.

  2. Rani says:

    Severity: Notice

    Message: Undefined index: config

    Filename: core/Loader.php

    Line Number: 1140

    ini kenapa ya?

  3. @Rani, apakah sudah mengikuti semua langkahnya dengan benar ? sepertinya ada salah pengetikan..

  4. RRachma says:

    A Database Error Occured

    Unable to select the specified database:

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

    Line Number: 124

    Ini kenapa ya ?? Minta bantuannya dong.

  5. RRachma says:

    udah di download filenya dan udah ngikutin sampe part.2 nya.
    tapi yang bikin aku bingung itu gimna ya cara menjalankan CI atau PHP yg udah aku download tadi?

    makasih :)

  6. bima says:

    Severity: Notice

    Message: Undefined variable: listProducts

    Filename: views/products_view.php

    Line Number: 8

    kenapa ya bro?

  7. Ky2s says:

    wah sangad membantu bdg, buat sya yg masih nubie ini.. thx bnyk pokoknya..

  8. Gan itu cara manggil di localhost bagaimana ya ?

  9. Freddy says:

    Gan itu sudah berhasil manggil dan input tapi kenapa waktu edit dan delete tidak mau ya ?

  10. Freddy says:

    gan itu yang edit dan delete kenapa tidak jalan ya ?

  11. adrian says:

    Ga bs ny ky gmna ya freddy ? ?

  12. Oqha Time says:

    wih mantep abis tutornya, kek di sengaja gitu kesalahan di tutornya, jadi mikir, jadi bikin ane tambah cepet belajarnya :D

  13. Saran : Sebaiknya ditampilkan juga demo nya, jadi bagi yang beginner bisa terbayang hasilnya.

  14. Freddy says:

    BIsa gan, ternyata butuh belajar dari buku juga, sekarang tinggal edit :D
    Big thanks ko

  15. Freddy says:

    hahahahaha ternyata di salah-salahin bagian yang terakhir, sudah hampir gak tegoran dengan mouse :v

  16. ugy says:

    tutorialnya membantu mas n_n …

    mau nanyamas, url -> index.php/products/addProduct, apakah index.php-nya bisa dihilangkan? jd urlnya menjadi, misalnya, http://localhost/ciapp/products utk halaman produk2.

    lalu bagaimana penulisan routing di file route.php untuk contoh kasus project di atas?

    sementara kan belum membahas routingnya, masih default dr ci-nya. makasih..

  17. boy says:

    gmna cara downloadnya mas?

  18. Rina says:

    DIketik gan,, gak ada error kok,
    aman-aman aja.

  19. Ade says:

    makasih tutorial nya sangat membantu buat baru belajar ci

    mau tanya … bisa gag ci di gabung sama bootstrap ?? bukannya ci dan bootstrap sama” framework .. bedanya di mna yagh ??

  20. ali says:

    kq $conditional gak terbaca ya mas.. pada update -___-
    semuanya uda bisa tinggal itu saja.

    tolong bantuannya..

  21. one says:

    Severity: Notice
    Message: Undefined property: Smk_pelanggan::$pelanggan_model
    Filename: controllers/smk_pelanggan.php
    Line Number: 115

    Fatal error: Call to a member function pelanggan_deleted() on a non-object in C:\xampp\htdocs\smk-bisa\application\controllers\smk_pelanggan.php on line 115

    ada yang tau ini kenapa ?

  22. Sungguh Artikel yang sangat bagus.. sangat membantu saya dalam belajar codeigniter..
    terima kasih banyak atas ilmunya.
    semoga situs ini semakin lama semakin berkembang..
    sekali lagi terima kasih.

  23. Fikri says:

    Bang tinggal delete nih yg eror

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

  25. Terimakasih atas tutorialnya :D

  26. yance says:

    gan knp pas update ga masuk ke db nya yaa??

  27. josai says:

    gan object not found di function update
    mohon bantuanya gan ?

  28. awir says:

    mas kenapa ya update dan deletenya gak bisa jalan ?

  29. Jaya Atmaja says:

    link update dan delete tidak mau jalan, page not found

  30. abdul says:

    Parse error: syntax error, unexpected ‘.’, expecting ‘{‘ in C:\xampp\htdocs\_belajar2\application\models\products_model.php on line 3

  31. Lina says:

    A Database Error Occurred

    Unable to select the specified database: db_toko

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

    Line Number: 140

    ini gimana yah, cara menyelesaikannya ? mkash

  32. Boby says:

    kenapa di model “function deleteProduct($id)” sedangkan di controller “public function deleteProductDb($productId)”

    $id itu variabel dimana? $productid itu dimana dapetnya?
    bukan public functionnya yg saya tanyakan hehe

    • deleteProduct yang ada di model dan deleteProductDb yang ada di controller hanya nama saja dan kedua fungsi tersebut tidak harus memiliki nama yang sama.
      – $id didapatkan dari <a href="index.php/products/deleteProductDb/productId ?>”>Delete
      – $productId didapatkan dari $this->products_model->deleteProduct($productId); //Memanggil fungsi deleteProduct yang ada pada model products_model dan mengirimkan parameter yaitu productId yang akan di delete

  33. Fuaf Muzaki says:

    cara menampilkan value database ke option atau radio button gimana ya?
    kalau input nya berupa text biasa saya gunakan value=””

  34. Januar says:

    di artikel ini ada beberapa masalah pada parameter-parameter disetiap fungsi

  35. Riki Unika Dongoran says:

    mau bertanya mas,
    saya ada data yang berisi file upload foto, bagaimana delete foto yang tadinya tersimpan di file akan ikut terhapus bersama delete value dari database nya ?
    mohon pencerahan

    • Untuk delete file fotonya tinggal gunakan fungsi unlink() di PHP, tinggal sertakan PATH beserta Name File nya disitu sesuai dengan data di database. Semoga membantu

  36. pras says:

    mau tanya mas, kalau insert ditambahi dengan gambar gimana ya ?

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