Panduan Codeigniter
Panduan Codeigniter
PEMULA
Jika Anda ingin menginstall codeigniter di server lokal atau localhost, ada beberapa
software yang bisa Anda gunakan. Diantaranya yang paling populer yaitu
WAMPSERVER, MAMP, atau XAMPP. Anda boleh pilih salah satunya.
1. Pastikan Web Server telah terinstall dan berjalan (running) di komputer Anda.
Misalnya, disini saya ganti menjadi “myproject”. Sehingga terlihat seperti gambar
berikut:
http://localhost/myproject/
1
6. Selesai
Dalam memulai codeigniter, ada beberapa konfigurasi dasar yang perlu Anda ketahui,
yaitu autoload.php, config.php, dan database.php.
Semua konfigurasi pada codeigniter, terletak pada satu tempat yaitu di dalam folder
application/config.
Bagaimana dan apa saja yang perlu di konfigurasi pada file autoload.php, config.php,
dan database.php?
2
Berikut penjelasannya.
1. Autoload.php
Autoload.php, file ini digunakan untuk mengatur fungsi-fungsi yang akan dimuat
otomatis di awal ketika program dijalankan. Untuk melakukan konfigurasi pada file
autoload.php, silahkan buka folder:
application/config/autoload.php
Ada beberapa hal yang bisa diload secara otamatis diantaranya: packages, libraries,
drivers, helper files, custom config files, language files, dan models. Untuk
konfigurasi dasar yang perlu Anda ketahui adalah libraries dan helper files. Hal ini
bertujuan agar beberapa library dan helper tertentu berjalan secara otomatis. Untuk
melakukan konfigurasi pada libraries, buka file autoload.php dengan text editor,
kemudian temukan kode berikut:
1 $autoload['libraries'] = array();
1 $autoload['libraries'] = array('database');
Pada kode diatas, artinya kita meload library “database” secara otomatis. Dengan
demikian Anda dapat menggunakan fungsi-fungsi database pada codeigniter. Seperti
fungsi: Query Builder Class.
Selanjutnya, untuk melakukan konfigurasi pada helper files, buka file autoload.php
dengan text editor, kemudian temukan kode berikut:
1 $autoload['helper'] = array();
3
1 $autoload['helper'] = array('url');
Pada kode diatas, artinya kita meload helper “url” secara otomatis. Dengan demikian
Anda dapat menggunakan fungsi-fungsi url pada codeigniter. Seperti fungsi:
base_url(), site_url(), URI Segment, dan sebagainya.
2. Config.php
Pada file ini terdapat beberapa konfigurasi yang secara standar sudah terkonfigurasi.
Namun terdapat beberapa konfigurasi yang perlu diperhatikan yaitu:
1 $config['base_url']
2 $config['index_page']
3 $config['encryption_key']
1 $config['base_url'] = '';
1 $config['base_url'] = 'http://localhost/myproject/';
3. Database.php
Dilihat dari nama filenya maka Anda sudah dapat menangkap apa fungsi dari file ini.
File database.php digunakan untuk melakukan konfigurasi yang berkaitan dengan
konfigurasi database dari website yang akan dibuat.
4
Adapun konfigurasi yang perlu diperhatikan yaitu: hostname, username, password,
dan database. Untuk melakukan konfigurasi pada database.php. Buka file
database.php dengan text editor.
1 $active_group = 'default';
2 $query_builder = TRUE;
3
4 $db['default'] = array(
5 'dsn' => '',
6 'hostname' => 'localhost',
7 'username' => '',
8 'password' => '',
9 'database' => '',
10 'dbdriver' => 'mysqli',
11 'dbprefix' => '',
12 'pconnect' => FALSE,
13 'db_debug' => (ENVIRONMENT !== 'production'),
14 'cache_on' => FALSE,
15 'cachedir' => '',
16 'char_set' => 'utf8',
17 'dbcollat' => 'utf8_general_ci',
18 'swap_pre' => '',
19 'encrypt' => FALSE,
20 'compress' => FALSE,
21 'stricton' => FALSE,
22 'failover' => array(),
23 'save_queries' => TRUE
24 );
1 $active_group = 'default';
2 $query_builder = TRUE;
5
3
4 $db['default'] = array(
5 'dsn' => '',
6 'hostname' => 'localhost', // Hostname
7 'username' => 'root', // Username
8 'password' => '', // password
9 'database' => 'database_name', //database name
10 'dbdriver' => 'mysqli',
11 'dbprefix' => '',
12 'pconnect' => FALSE,
13 'db_debug' => (ENVIRONMENT !== 'production'),
14 'cache_on' => FALSE,
15 'cachedir' => '',
16 'char_set' => 'utf8',
17 'dbcollat' => 'utf8_general_ci',
18 'swap_pre' => '',
19 'encrypt' => FALSE,
20 'compress' => FALSE,
21 'stricton' => FALSE,
22 'failover' => array(),
23 'save_queries' => TRUE
24 );
Jika serius dengan codeigniter, Anda harus mengerti bagaimana sebuah controller
bekerja. Untuk lebih jelasnya, saya akan sharing kasus sederhana agar Anda dapat
memahami bagaimana controller bekerja. Disini saya mengangkat kasus yaitu
bagaimana menampilkan text “Hello World” pada browser menggunakan controller.
6
Kemudian ketikan kode berikut:
1 <?php
2 class Hello extends CI_Controller{
3
4 function index(){
5 echo "Hello World";
6 }
7
8 }
NB: Setiap penulisan nama file dan nama class selalu di dahului dengan huruf
Capital.
Setelah itu save dan buka browser Anda, lalu kunjungi url berikut:
http://localhost/myproject/index.php/hello
Maka akan akan terlihat text “Hello World” pada browser Anda seperti berikut:
Jika Anda perhatikan dengan seksama, pada dasarnya url pada codeigniter terlihat
seperti gambar berikut:
Dimana, terdapat protocol, primary domain, index.php, class name, dan function
name. Mungkin terdengar rumit, tapi sebenarnya tidak. Untuk lebih jelasnya silahkan
tambahkan satu function lagi pada Controller Hello.php. disini saya beri nama “show”.
Sehingga controller Hello.php menjadi seperti berikut:
1 <?php
2 class Hello extends CI_Controller{
3
7
4 function index(){
5 echo "Hello World";
6 }
7
8 function show(){
9 echo "I Make The World Better Place.";
10 }
11
12 }
http://localhost/myproject/index.php/hello/show
Adakah cara untuk menghilangkan index.php dari URL? Tentu saja, Anda dapat
menggunakan file .htaccess untuk menghilangkannya.
8
Buat sebuah file dengan nama .htaccess pada web root Anda dan ketikan kode
berikut:
1 RewriteEngine On
2 RewriteCond %{REQUEST_FILENAME} !-f
3 RewriteCond %{REQUEST_FILENAME} !-d
4 RewriteRule ^(.*)$ index.php?/$1 [L]
1 $config['index_page'] = 'index.php';
9
1 $config['index_page'] = '';
http://localhost/myproject/hello/show
Pada gambar diatas, dapat dilihat bahwa URL menjadi lebih rapi dan SEO friendly
dengan menghilangkan index.php pada URL.
Pada kasus sebelumnya, Anda telah mengetahui bagaimana menampilkan text “Hello
World” langsung dari controller. Namun, hal tersebut sebaiknya dilakukan di view.
Sekarang saya akan menunjukkan bagaimana menampilkan view melalui controller.
1 <?php
2 class Blog extends CI_Controller
3 {
4 function __construct()
5 {
6 parent::__construct();
7 }
8
9 function index(){
10 $this->load->view('blog_view');
11 }
12
13 }
10
Kedua, buat sebuah file di application/views dengan nama blog_view.php.
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="utf-8">
5 <title>My Blog</title>
6 </head>
7 <body>
8 <h1>Welcome To My Blog.</h1>
9 </body>
10 </html>
Kemudian, buka browser Anda dan akses controller blog. Maka akan terlihat hasilnya
seperti berikut:
Anda juga dapat mengirimkan parameter ke view melalui controller. Sebagai contoh,
silahkan ubah controller Blog.php menjadi seperti berikut:
1 <?php
2 class Blog extends CI_Controller
3 {
4 function __construct()
5 {
6 parent::__construct();
7 }
8
9 function index(){
10 $data['title'] = "This Is Title";
11 $data['content'] = "This Is The Contents";
12 $this->load->view('blog_view',$data);
13 }
14
15 }
11
Kemudian ubah view blog_view.php menjadi seperti berikut:
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="utf-8">
5 <title><?php echo $title;?></title>
6 </head>
7 <body>
8 <h1><?php echo $content;?></h1>
9 </body>
10 </html>
Kemudian, buka browser Anda dan akses kembali controller blog. Maka akan terlihat
hasilnya seperti berikut:
Pada kasus sebelumnya, Anda telah memahami bagaimana memanggil view melalui
controller. Sekarang, ada hal yang sangat penting untuk Anda ketahui, yaitu
mengkombinasikan codeigniter dengan bootstrap.
Bootstrap adalah toolkit open source untuk dikembangkan dengan HTML, CSS, dan
JS. Dengan kata lain, Bootstrap merupakan framework untuk mempercantik user
interface (UI). Bootstrap bersifat responsive. Dengan kata lain, merender dengan baik
di berbagai macam perangkat (platform) seperti tablet maupun mobile phone.
12
Kedua, buat sebuah folder baru pada project (webroot) Anda. Disini saya beri nama
folder “assets”. Kemudian extract file bootsrap yang telah di download tadi kedalam
folder assets.
Seperti berikut:
13
Selain bootstrap, kita juga membutuhkan jquery agar javascript pada bootstrap
bejalan dengan optimal. Untuk mendownload Jquery, silahkan download di situs
resminya jquery.com.
14
Kemudian, letakkan file jquery pada folder assets/js/ seperti gambar berikut:
Agar Anda dapat memahami seperti apa bootstrap, silahkan edit file view
blog_view.php menjadi seperti berikut:
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="utf-8">
5 <title><?php echo $title;?></title>
6 <!-- load bootstrap css file -->
7 <link href="<?php echo base_url('assets/css/bootstrap.min.css');?>"
15
8 rel="stylesheet">
9 </head>
10 <body>
11
12 <div class="container">
13 <div class="jumbotron jumbotron-fluid">
14 <div class="container">
15 <h1 class="display-4"><?php echo $content;?></h1>
16 <p class="lead">This is my first blog.</p>
17 </div>
18 </div>
19 </div>
20
21 <!-- load jquery js file -->
22 <script src="<?php echo base_url('assets/js/jquery.min.js');?>"></script>
23 <!-- load bootstrap js file -->
24 <script src="<?php echo base_url('assets/js/bootstrap.min.js');?>"></script>
25 </body>
</html>
Jika Anda panggil lagi controller blog pada browser, maka akan terlihat hasilnya
seperti berikut:
Pada gambar diatas, Anda dapat melihat bahwa kita tidak perlu membuat kode css
untuk memberikan style pada suatu halaman website. Demikian pula, jika Anda
membutuhkan table yang cantik. Anda juga tidak perlu mengetikan kode css untuk
memberikan style pada table tersebut. Melainkan, anda dapat langsung memiliki table
yang cantik secara instan.
Contoh, silahkan edit lagi file view blog_view.php menjadi seperti berikut:
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="utf-8">
5 <title><?php echo $title;?></title>
6 <!-- load bootstrap css file -->
7 <link href="<?php echo base_url('assets/css/bootstrap.min.css');?>"
8 rel="stylesheet">
9 </head>
10 <body>
16
11
12 <div class="container">
13 <h1><?php echo $content;?></h1>
14 <table class="table table-striped">
15 <thead>
16 <tr>
17 <th scope="col">#</th>
18 <th scope="col">First</th>
19 <th scope="col">Last</th>
20 <th scope="col">Handle</th>
21 </tr>
22 </thead>
23 <tbody>
24 <tr>
25 <th scope="row">1</th>
26 <td>Mark</td>
27 <td>Otto</td>
28 <td>@mdo</td>
29 </tr>
30 <tr>
31 <th scope="row">2</th>
32 <td>Jacob</td>
33 <td>Thornton</td>
34 <td>@fat</td>
35 </tr>
36 <tr>
37 <th scope="row">3</th>
38 <td>Larry</td>
39 <td>the Bird</td>
40 <td>@twitter</td>
41 </tr>
42 </tbody>
43 </table>
44
45 </div>
46
47 <!-- load jquery js file -->
48 <script src="<?php echo base_url('assets/js/jquery.min.js');?>"></script>
49 <!-- load bootstrap js file -->
50 <script src="<?php echo base_url('assets/js/bootstrap.min.js');?>"></script>
51 </body>
</html>
Jika Anda jalankan kembali controller Blog pada browser, maka Anda akan dapatkan
hasilnya seperti berikut:
17
Keren bukan? Semoga dapat dipahami dengan baik.
Pada segment kali ini, Anda akan belajar semua hal yang Anda butuhkan untuk tahu
bagaimana berinteraksi dengan database menggunakan codeigniter. Mulai dari Create,
Read, Update, dan Delete.
1. Persiapan database.
Pertama-tama buat sebuah database. Disini saya membuat sebuah database dengan
nama “pos_db”. Jika Anda membuat database dengan nama yang sama, itu lebih baik.
Untuk membuat database, anda dapat mengeksekusi query berikut:
Anda dapat mengeksekusi query berikut untuk menghasilkan table dengan struktur
seperti diatas.
18
Kemudian masukan beberapa data kedalam table “product” dengan mengeksekusi
query berikut:
Buka file database.php dengan text editor dan temukan kode berikut:
1 $active_group = 'default';
2 $query_builder = TRUE;
3
4 $db['default'] = array(
5 'dsn' => '',
6 'hostname' => 'localhost',
7 'username' => '',
8 'password' => '',
9 'database' => '',
10 'dbdriver' => 'mysqli',
11 'dbprefix' => '',
12 'pconnect' => FALSE,
13 'db_debug' => (ENVIRONMENT !== 'production'),
14 'cache_on' => FALSE,
15 'cachedir' => '',
16 'char_set' => 'utf8',
17 'dbcollat' => 'utf8_general_ci',
18 'swap_pre' => '',
19
19 'encrypt' => FALSE,
20 'compress' => FALSE,
21 'stricton' => FALSE,
22 'failover' => array(),
23 'save_queries' => TRUE
24 );
1 $active_group = 'default';
2 $query_builder = TRUE;
3
4 $db['default'] = array(
5 'dsn' => '',
6 'hostname' => 'localhost',
7 'username' => 'root',
8 'password' => '',
9 'database' => 'pos_db',
10 'dbdriver' => 'mysqli',
11 'dbprefix' => '',
12 'pconnect' => FALSE,
13 'db_debug' => (ENVIRONMENT !== 'production'),
14 'cache_on' => FALSE,
15 'cachedir' => '',
16 'char_set' => 'utf8',
17 'dbcollat' => 'utf8_general_ci',
18 'swap_pre' => '',
19 'encrypt' => FALSE,
20 'compress' => FALSE,
21 'stricton' => FALSE,
22 'failover' => array(),
23 'save_queries' => TRUE
24 );
Silahkan jalankan lagi project Anda pada browser, jika tidak ada error berarti koneksi
ke database berhasil.
Pada segment kali ini, saya akan menunjukkan kepada Anda bagaimana menampilkan
data dari database ke view.
20
Buka file “Product_model.php” dengan text editor. Kemudian ketikan kode berikut:
1 <?php
2 class Product_model extends CI_Model{
3
4 function get_product(){
5 $result = $this->db->get('product');
6 return $result;
7 }
8
9 }
21
Buka file controller “Product.php” dengan text editor. Kemudian ketikan kode
berikut:
1 <?php
2 class Product extends CI_Controller{
3 function __construct(){
4 parent::__construct();
5 $this->load->model('product_model');
6 }
7 function index(){
8 $data['product'] = $this->product_model->get_product();
9 $this->load->view('product_view',$data);
10 }
11 }
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
22
4 <meta charset="utf-8">
5 <title>Product List</title>
6 <!-- load bootstrap css file -->
7 <link href="<?php echo base_url('assets/css/bootstrap.min.css');?>"
8 rel="stylesheet">
9 </head>
10 <body>
11
12 <div class="container">
13 <h1><center>Product List</center></h1>
14 <table class="table table-striped">
15 <thead>
16 <tr>
17 <th scope="col">#</th>
18 <th scope="col">Product Name</th>
19 <th scope="col">Price</th>
20 </tr>
21 </thead>
22 <?php
23 $count = 0;
24 foreach ($product->result() as $row) :
25 $count++;
26 ?>
27 <tr>
28 <th scope="row"><?php echo $count;?></th>
29 <td><?php echo $row->product_name;?></td>
30 <td><?php echo number_format($row->product_price);?></td>
31 </tr>
32 <?php endforeach;?>
33 </tbody>
34 </table>
35
36 </div>
37
38 <!-- load jquery js file -->
39 <script src="<?php echo base_url('assets/js/jquery.min.js');?>"></script>
40 <!-- load bootstrap js file -->
41 <script src="<?php echo base_url('assets/js/bootstrap.min.js');?>"></script>
42 </body>
</html>
http://localhost/myproject/product
23
3. Insert data ke database (Create).
Pada segment kali ini, saya akan menunjukkan kepada Anda bagaimana insert data ke
database. Mari kita mulai.
1 <?php
2 class Product_model extends CI_Model{
3
4 function get_product(){
5 $result = $this->db->get('product');
6 return $result;
7 }
8 function save($product_name,$product_price){
9 $data = array(
10 'product_name' => $product_name,
11 'product_price' => $product_price
12 );
13 $this->db->insert('product',$data);
14 }
15 }
1 <?php
2 class Product extends CI_Controller{
3 function __construct(){
4 parent::__construct();
5 $this->load->model('product_model');
6 }
7 function index(){
8 $data['product'] = $this->product_model->get_product();
9 $this->load->view('product_view',$data);
10 }
11 function add_new(){
24
12 $this->load->view('add_product_view');
13 }
14 function save(){
15 $product_name = $this->input->post('product_name');
16 $product_price = $this->input->post('product_price');
17 $this->product_model->save($product_name,$product_price);
18 redirect('product');
19 }
20 }
3. Buat sebuah file view lagi dengan nama “add_product_view.php”. dengan kode
seperti berikut:
<!DOCTYPE html>
<html lang="en">
1
<head>
2
<meta charset="utf-8">
3
<title>Add New Product</title>
4
<!-- load bootstrap css file -->
5
<link href="<?php echo base_url('assets/css/bootstrap.min.css');?>"
6
rel="stylesheet">
7
</head>
8
<body>
9
10
<div class="container">
11
<h1><center>Add New Product</center></h1>
12
<div class="col-md-6 offset-md-3">
13
<form action="<?php echo site_url('product/save');?>" method="post">
14
<div class="form-group">
15
<label>Product Name</label>
16
<input type="text" class="form-control" name="product_name"
17
placeholder="Product Name">
18
</div>
19
<div class="form-group">
20
<label>Price</label>
21
<input type="text" class="form-control" name="product_price"
22
placeholder="Price">
23
</div>
24
<button type="submit" class="btn btn-primary">Submit</button>
25
</form>
26
</div>
27
</div>
28
29
<!-- load jquery js file -->
30
<script src="<?php echo base_url('assets/js/jquery.min.js');?>"></script>
31
<!-- load bootstrap js file -->
32
<script src="<?php echo base_url('assets/js/bootstrap.min.js');?>"></script>
33
</body>
</html>
25
Kemudian, kembali ke browser dan ketikan url berikut pada browser Anda:
http://localhost/myproject/product/add_new
Masukkan product name dan price pada textbox, kemudian klik tombol submit.
Pada segment kali ini, saya akan menunjukkan kepada Anda bagaimana menghapus
(delete) data ke database.
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="utf-8">
5 <title>Product List</title>
6 <!-- load bootstrap css file -->
7 <link href="<?php echo base_url('assets/css/bootstrap.min.css');?>"
8 rel="stylesheet">
9 </head>
10 <body>
26
11
12 <div class="container">
13 <h1><center>Product List</center></h1>
14 <table class="table table-striped">
15 <thead>
16 <tr>
17 <th scope="col">#</th>
18 <th scope="col">Product Name</th>
19 <th scope="col">Price</th>
20 <th width="200">Action</th>
21 </tr>
22 </thead>
23 <?php
24 $count = 0;
25 foreach ($product->result() as $row) :
26 $count++;
27 ?>
28 <tr>
29 <th scope="row"><?php echo $count;?></th>
30 <td><?php echo $row->product_name;?></td>
31 <td><?php echo number_format($row->product_price);?></td>
32 <td>
33 <a href="<?php echo site_url('product/delete/'.$row->product_id);?>"
34 class="btn btn-sm btn-danger">Delete</a>
35 <td>
36 </tr>
37 <?php endforeach;?>
38 </tbody>
39 </table>
40
41 </div>
42
43 <!-- load jquery js file -->
44 <script src="<?php echo base_url('assets/js/jquery.min.js');?>"></script>
45 <!-- load bootstrap js file -->
46 <script src="<?php echo base_url('assets/js/bootstrap.min.js');?>"></script>
</body>
</html>
Pada file “product_view.php” diatas kita menambahkan satu kolom lagi pada table
product list. Yaitu kolom action.
Pada kolom action terdapat tombol delete. Sehingga jika Anda jalankan Controller
product, dengan mengunjungi url berikut:
http://localhost/myproject/product/
27
2. Tambahkan sebuah function delete pada controller Product.php.
1 function delete(){
2 $product_id = $this->uri->segment(3);
3 $this->product_model->delete($product_id);
4 redirect('product');
5 }
1 <?php
2 class Product extends CI_Controller{
3 function __construct(){
4 parent::__construct();
5 $this->load->model('product_model');
6 }
7 function index(){
8 $data['product'] = $this->product_model->get_product();
9 $this->load->view('product_view',$data);
10 }
11 function add_new(){
12 $this->load->view('add_product_view');
13 }
14 function save(){
15 $product_name = $this->input->post('product_name');
16 $product_price = $this->input->post('product_price');
17 $this->product_model->save($product_name,$product_price);
18 redirect('product');
19 }
20 function delete(){
21 $product_id = $this->uri->segment(3);
22 $this->product_model->delete($product_id);
23 redirect('product');
24 }
28
25 }
1 function delete($product_id){
2 $this->db->where('product_id', $product_id);
3 $this->db->delete('product');
4 }
1 <?php
2 class Product_model extends CI_Model{
3
4 function get_product(){
5 $result = $this->db->get('product');
6 return $result;
7 }
8 function save($product_name,$product_price){
9 $data = array(
10 'product_name' => $product_name,
11 'product_price' => $product_price
12 );
13 $this->db->insert('product',$data);
14 }
15 function delete($product_id){
16 $this->db->where('product_id', $product_id);
17 $this->db->delete('product');
18 }
19 }
http://localhost/myproject/product
29
Silahkan klik satu dari tombol delete pada kolom action untuk menghapus record.
Selesai.
Anda telah mengetahui bagaimana menampilkan data (READ) dari database ke view,
Meng-insert data ke database (CREATE), dan menghapus data ke database
(DELETE). Sekarang waktunya untuk mengetahui bagaimana mengubah data ke
database (UPDATE).
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="utf-8">
5 <title>Product List</title>
6 <!-- load bootstrap css file -->
7 <link href="<?php echo base_url('assets/css/bootstrap.min.css');?>"
8 rel="stylesheet">
9 </head>
10 <body>
11
12 <div class="container">
13 <h1><center>Product List</center></h1>
14 <table class="table table-striped">
15 <thead>
16 <tr>
17 <th scope="col">#</th>
18 <th scope="col">Product Name</th>
19 <th scope="col">Price</th>
20 <th width="200">Action</th>
21 </tr>
22 </thead>
30
23 <?php
24 $count = 0;
25 foreach ($product->result() as $row) :
26 $count++;
27 ?>
28 <tr>
29 <th scope="row"><?php echo $count;?></th>
30 <td><?php echo $row->product_name;?></td>
31 <td><?php echo number_format($row->product_price);?></td>
32 <td>
33 <a href="<?php echo site_url('product/get_edit/'.$row->product_id);?>"
34 class="btn btn-sm btn-info">Update</a>
35 <a href="<?php echo site_url('product/delete/'.$row->product_id);?>"
36 class="btn btn-sm btn-danger">Delete</a>
37 <td>
38 </tr>
39 <?php endforeach;?>
40 </tbody>
41 </table>
42
43 </div>
44
45 <!-- load jquery js file -->
46 <script src="<?php echo base_url('assets/js/jquery.min.js');?>"></script>
47 <!-- load bootstrap js file -->
<script src="<?php echo base_url('assets/js/bootstrap.min.js');?>"></script>
</body>
</html>
Pada file “product_view.php” diatas kita menambahkan satu tombol lagi pada kolom
action. Yaitu tombol edit. Sehingga jika Anda jalankan Controller product, dengan
mengunjungi url berikut:
http://localhost/myproject/product/
31
2. Tambahkan sebuah function get_edit pada controller Product.php.
1 function get_edit(){
2 $product_id = $this->uri->segment(3);
3 $result = $this->product_model->get_product_id($product_id);
4 if($result->num_rows() > 0){
5 $i = $result->row_array();
6 $data = array(
7 'product_id' => $i['product_id'],
8 'product_name' => $i['product_name'],
9 'product_price' => $i['product_price']
10 );
11 $this->load->view('edit_product_view',$data);
12 }else{
13 echo "Data Was Not Found";
14 }
15 }
1 function get_product_id($product_id){
2 $query = $this->db->get_where('product', array('product_id' => $product_id));
3 return $query;
4 }
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="utf-8">
5 <title>Edit Product</title>
6 <!-- load bootstrap css file -->
7 <link href="<?php echo base_url('assets/css/bootstrap.min.css');?>"
8 rel="stylesheet">
9 </head>
10 <body>
11
12 <div class="container">
13 <h1><center>Edit Product</center></h1>
14 <div class="col-md-6 offset-md-3">
15 <form action="<?php echo site_url('product/update');?>" method="post">
16 <div class="form-group">
17 <label>Product Name</label>
18 <input type="text" class="form-control" name="product_name"
32
19 value="<?php echo $product_name;?>" placeholder="Product Name">
20 </div>
21 <div class="form-group">
22 <label>Price</label>
23 <input type="text" class="form-control" name="product_price"
24 value="<?php echo $product_price;?>" placeholder="Price">
25 </div>
26 <input type="hidden" name="product_id" value="<?php echo
27 $product_id?>">
28 <button type="submit" class="btn btn-primary">Update</button>
29 </form>
30 </div>
31 </div>
32
33 <!-- load jquery js file -->
34 <script src="<?php echo base_url('assets/js/jquery.min.js');?>"></script>
<!-- load bootstrap js file -->
<script src="<?php echo base_url('assets/js/bootstrap.min.js');?>"></script>
</body>
</html>
function update(){
1
$product_id = $this->input->post('product_id');
2
$product_name = $this->input->post('product_name');
3
$product_price = $this->input->post('product_price');
4
$this->product_model->update($product_id,$product_name,$product_price)
5
;
6
redirect('product');
7
}
1 <?php
2 class Product extends CI_Controller{
3 function __construct(){
4 parent::__construct();
5 $this->load->model('product_model');
6 }
7 function index(){
8 $data['product'] = $this->product_model->get_product();
9 $this->load->view('product_view',$data);
10 }
11 function add_new(){
12 $this->load->view('add_product_view');
13 }
14 function save(){
33
15 $product_name = $this->input->post('product_name');
16 $product_price = $this->input->post('product_price');
17 $this->product_model->save($product_name,$product_price);
18 redirect('product');
19 }
20 function delete(){
21 $product_id = $this->uri->segment(3);
22 $this->product_model->delete($product_id);
23 redirect('product');
24 }
25 function get_edit(){
26 $product_id = $this->uri->segment(3);
27 $result = $this->product_model->get_product_id($product_id);
28 if($result->num_rows() > 0){
29 $i = $result->row_array();
30 $data = array(
31 'product_id' => $i['product_id'],
32 'product_name' => $i['product_name'],
33 'product_price' => $i['product_price']
34 );
35 $this->load->view('edit_product_view',$data);
36 }else{
37 echo "Data Was Not Found";
38 }
39 }
40 function update(){
41 $product_id = $this->input->post('product_id');
42 $product_name = $this->input->post('product_name');
43 $product_price = $this->input->post('product_price');
44 $this->product_model->update($product_id,$product_name,$product_price);
45 redirect('product');
46 }
47 }
1 function update($product_id,$product_name,$product_price){
2 $data = array(
3 'product_name' => $product_name,
4 'product_price' => $product_price
5 );
6 $this->db->where('product_id', $product_id);
7 $this->db->update('product', $data);
8 }
34
Sehingga terlihat kode lengkap dari model Product_model.php seperti berikut:
<?php
1
class Product_model extends CI_Model{
2
3
function get_product(){
4
$result = $this->db->get('product');
5
return $result;
6
}
7
function save($product_name,$product_price){
8
$data = array(
9
'product_name' => $product_name,
10
'product_price' => $product_price
11
);
12
$this->db->insert('product',$data);
13
}
14
function delete($product_id){
15
$this->db->where('product_id', $product_id);
16
$this->db->delete('product');
17
}
18
function get_product_id($product_id){
19
$query = $this->db->get_where('product', array('product_id' =>
20
$product_id));
21
return $query;
22
}
23
function update($product_id,$product_name,$product_price){
24
$data = array(
25
'product_name' => $product_name,
26
'product_price' => $product_price
27
);
28
$this->db->where('product_id', $product_id);
29
$this->db->update('product', $data);
30
}
31
}
http://localhost/myproject/product
35
Silahkan klik satu dari tombol edit pada kolom action untuk mengupdate record.
Selesai.
36