Skip to main content

Tugas 5 Mengenal Model dan CRUD

CRUD adalah singkatan dari Cread Read Update Delete. Berikut penjelasannya:

  • Create yang berarti membuat sebuah data baru
  • Read yang berarti membaca atau menampilkan suatu data yang tadinya berada di database
  • Update yang berarti mengedit sebuah data dari database
  • Delete yang berarti menghapus data dari database

Langkah-langkah pembuatan :
1. Buat tabel sebagai database di localhost/phpmyadmin

2. Edit menyesuaikan dengan database di database.php



4. lalu lakukan konfigurasi pada config/autoload.php 
 $autoload['libraries'] = array('database', 'session');  

5. membuat model untuk table, pertama buat file baru pada application/model/ dengan nama Product_model.php
 <?php defined('BASEPATH') OR exit('No direct script access allowed');  
 class Product_model extends CI_Model  
 {  
   private $_table = "products";  
   public $product_id;  
   public $name;  
   public $price;  
   public $image = "default.jpg";  
   public $description;  
   public function rules()  
   {  
     return [  
       ['field' => 'name',  
       'label' => 'Name',  
       'rules' => 'required'],  
       ['field' => 'price',  
       'label' => 'Price',  
       'rules' => 'numeric'],  
       ['field' => 'description',  
       'label' => 'Description',  
       'rules' => 'required']  
     ];  
   }  
   public function getAll()  
   {  
     return $this->db->get($this->_table)->result();  
   }  
   public function getById($id)  
   {  
     return $this->db->get_where($this->_table, ["product_id" => $id])->row();  
   }  
   public function save()  
   {  
     $post = $this->input->post();  
     $this->product_id = uniqid();  
     $this->name = $post["name"];  
     $this->price = $post["price"];  
     $this->description = $post["description"];  
     return $this->db->insert($this->_table, $this);  
   }  
   public function update()  
   {  
     $post = $this->input->post();  
     $this->product_id = $post["id"];  
     $this->name = $post["name"];  
     $this->price = $post["price"];  
     $this->description = $post["description"];  
     return $this->db->update($this->_table, $this, array('product_id' => $post['id']));  
   }  
   public function delete($id)  
   {  
     return $this->db->delete($this->_table, array("product_id" => $id));  
   }  
 }  

6. Membuat controller untuk produk dengan membuat file pada application/controllers/admin/ dengan nama Products.php
 <?php  
 defined('BASEPATH') OR exit('No direct script access allowed');  
 class Products extends CI_Controller  
 {  
   public function __construct()  
   {  
     parent::__construct();  
     $this->load->model("product_model");  
     $this->load->library('form_validation');  
   }  
   public function index()  
   {  
     $data["products"] = $this->product_model->getAll();  
     $this->load->view("admin/product/list", $data);  
   }  
   public function add()  
   {  
     $product = $this->product_model;  
     $validation = $this->form_validation;  
     $validation->set_rules($product->rules());  
     if ($validation->run()) {  
       $product->save();  
       $this->session->set_flashdata('success', 'Berhasil disimpan');  
     }  
     $this->load->view("admin/product/new_form");  
   }  
   public function edit($id = null)  
   {  
     if (!isset($id)) redirect('admin/products');  
     $product = $this->product_model;  
     $validation = $this->form_validation;  
     $validation->set_rules($product->rules());  
     if ($validation->run()) {  
       $product->update();  
       $this->session->set_flashdata('success', 'Berhasil disimpan');  
     }  
     $data["product"] = $product->getById($id);  
     if (!$data["product"]) show_404();  
     $this->load->view("admin/product/edit_form", $data);  
   }  
   public function delete($id=null)  
   {  
     if (!isset($id)) show_404();  
     if ($this->product_model->delete($id)) {  
       redirect(site_url('admin/products'));  
     }  
   }  
 }  
7. Selanjutnya membuat tiga macam view, yaitu list.phpnew_form.php, dan edit_form.php . view tersebut dibuat dalam direktori views/admin dengan nama product.

list.php
 <!DOCTYPE html>  
 <html lang="en">  
 <head>  
      <?php $this->load->view("admin/_partials/head.php") ?>  
 </head>  
 <body id="page-top">  
      <?php $this->load->view("admin/_partials/navbar.php") ?>  
      <div id="wrapper">  
           <?php $this->load->view("admin/_partials/sidebar.php") ?>  
           <div id="content-wrapper">  
                <div class="container-fluid">  
                     <?php $this->load->view("admin/_partials/breadcrumb.php") ?>  
                     <!-- DataTables -->  
                     <div class="card mb-3">  
                          <div class="card-header">  
                               <a href="<?php echo site_url('admin/products/add') ?>"><i class="fas fa-plus"></i> Add New</a>  
                          </div>  
                          <div class="card-body">  
                               <div class="table-responsive">  
                                    <table class="table table-hover" id="dataTable" width="100%" cellspacing="0">  
                                         <thead>  
                                              <tr>  
                                                   <th>Name</th>  
                                                   <th>Price</th>  
                                                   <th>Photo</th>  
                                                   <th>Description</th>  
                                                   <th>Action</th>  
                                              </tr>  
                                         </thead>  
                                         <tbody>  
                                              <?php foreach ($products as $product): ?>  
                                              <tr>  
                                                   <td width="150">  
                                                        <?php echo $product->name ?>  
                                                   </td>  
                                                   <td>  
                                                        <?php echo $product->price ?>  
                                                   </td>  
                                                   <td>  
                                                        <img src="<?php echo base_url('upload/product/'.$product->image) ?>" width="64" />  
                                                   </td>  
                                                   <td class="small">  
                                                        <?php echo substr($product->description, 0, 120) ?>...</td>  
                                                   <td width="250">  
                                                        <a href="<?php echo site_url('admin/products/edit/'.$product->product_id) ?>"  
                                                         class="btn btn-small"><i class="fas fa-edit"></i> Edit</a>  
                                                        <a onclick="deleteConfirm('<?php echo site_url('admin/products/delete/'.$product->product_id) ?>')"  
                                                         href="#!" class="btn btn-small text-danger"><i class="fas fa-trash"></i> Hapus</a>  
                                                   </td>  
                                              </tr>  
                                              <?php endforeach; ?>  
                                         </tbody>  
                                    </table>  
                               </div>  
                          </div>  
                     </div>  
                </div>  
                <!-- /.container-fluid -->  
                <!-- Sticky Footer -->  
                <?php $this->load->view("admin/_partials/footer.php") ?>  
           </div>  
           <!-- /.content-wrapper -->  
      </div>  
      <!-- /#wrapper -->  
      <?php $this->load->view("admin/_partials/scrolltop.php") ?>  
      <?php $this->load->view("admin/_partials/modal.php") ?>  
      <?php $this->load->view("admin/_partials/js.php") ?>  
 </body>  
 </html>  

new_form.php
 <!DOCTYPE html>  
 <html lang="en">  
 <head>  
      <?php $this->load->view("admin/_partials/head.php") ?>  
 </head>  
 <body id="page-top">  
      <?php $this->load->view("admin/_partials/navbar.php") ?>  
      <div id="wrapper">  
           <?php $this->load->view("admin/_partials/sidebar.php") ?>  
           <div id="content-wrapper">  
                <div class="container-fluid">  
                     <?php $this->load->view("admin/_partials/breadcrumb.php") ?>  
                     <?php if ($this->session->flashdata('success')): ?>  
                     <div class="alert alert-success" role="alert">  
                          <?php echo $this->session->flashdata('success'); ?>  
                     </div>  
                     <?php endif; ?>  
                     <div class="card mb-3">  
                          <div class="card-header">  
                               <a href="<?php echo site_url('admin/products/') ?>"><i class="fas fa-arrow-left"></i> Back</a>  
                          </div>  
                          <div class="card-body">  
                               <form action="<?php echo site_url('admin/products/add') ?>" method="post" enctype="multipart/form-data" >  
                                    <div class="form-group">  
                                         <label for="name">Name*</label>  
                                         <input class="form-control <?php echo form_error('name') ? 'is-invalid':'' ?>"  
                                          type="text" name="name" placeholder="Product name" />  
                                         <div class="invalid-feedback">  
                                              <?php echo form_error('name') ?>  
                                         </div>  
                                    </div>  
                                    <div class="form-group">  
                                         <label for="price">Price*</label>  
                                         <input class="form-control <?php echo form_error('price') ? 'is-invalid':'' ?>"  
                                          type="number" name="price" min="0" placeholder="Product price" />  
                                         <div class="invalid-feedback">  
                                              <?php echo form_error('price') ?>  
                                         </div>  
                                    </div>  
                                    <div class="form-group">  
                                         <label for="name">Photo</label>  
                                         <input class="form-control-file <?php echo form_error('price') ? 'is-invalid':'' ?>"  
                                          type="file" name="image" />  
                                         <div class="invalid-feedback">  
                                              <?php echo form_error('image') ?>  
                                         </div>  
                                    </div>  
                                    <div class="form-group">  
                                         <label for="name">Description*</label>  
                                         <textarea class="form-control <?php echo form_error('description') ? 'is-invalid':'' ?>"  
                                          name="description" placeholder="Product description..."></textarea>  
                                         <div class="invalid-feedback">  
                                              <?php echo form_error('description') ?>  
                                         </div>  
                                    </div>  
                                    <input class="btn btn-success" type="submit" name="btn" value="Save" />  
                               </form>  
                          </div>  
                          <div class="card-footer small text-muted">  
                               * required fields  
                          </div>  
                     </div>  
                     <!-- /.container-fluid -->  
                     <!-- Sticky Footer -->  
                     <?php $this->load->view("admin/_partials/footer.php") ?>  
                </div>  
                <!-- /.content-wrapper -->  
           </div>  
           <!-- /#wrapper -->  
           <?php $this->load->view("admin/_partials/scrolltop.php") ?>  
           <?php $this->load->view("admin/_partials/js.php") ?>  
 </body>  
 </html>  

edit_form.php
 <!DOCTYPE html>  
 <html lang="en">  
 <head>  
      <?php $this->load->view("admin/_partials/head.php") ?>  
 </head>  
 <body id="page-top">  
      <?php $this->load->view("admin/_partials/navbar.php") ?>  
      <div id="wrapper">  
           <?php $this->load->view("admin/_partials/sidebar.php") ?>  
           <div id="content-wrapper">  
                <div class="container-fluid">  
                     <?php $this->load->view("admin/_partials/breadcrumb.php") ?>  
                     <?php if ($this->session->flashdata('success')): ?>  
                     <div class="alert alert-success" role="alert">  
                          <?php echo $this->session->flashdata('success'); ?>  
                     </div>  
                     <?php endif; ?>  
                     <!-- Card -->  
                     <div class="card mb-3">  
                          <div class="card-header">  
                               <a href="<?php echo site_url('admin/products/') ?>"><i class="fas fa-arrow-left"></i>  
                                    Back</a>  
                          </div>  
                          <div class="card-body">  
                               <form action="" method="post" enctype="multipart/form-data">  
                               <!-- Note: atribut action dikosongkan, artinya action-nya akan diproses   
                                    oleh controller tempat vuew ini digunakan. Yakni index.php/admin/products/edit/ID --->  
                                    <input type="hidden" name="id" value="<?php echo $product->product_id?>" />  
                                    <div class="form-group">  
                                         <label for="name">Name*</label>  
                                         <input class="form-control <?php echo form_error('name') ? 'is-invalid':'' ?>"  
                                          type="text" name="name" placeholder="Product name" value="<?php echo $product->name ?>" />  
                                         <div class="invalid-feedback">  
                                              <?php echo form_error('name') ?>  
                                         </div>  
                                    </div>  
                                    <div class="form-group">  
                                         <label for="price">Price</label>  
                                         <input class="form-control <?php echo form_error('price') ? 'is-invalid':'' ?>"  
                                          type="number" name="price" min="0" placeholder="Product price" value="<?php echo $product->price ?>" />  
                                         <div class="invalid-feedback">  
                                              <?php echo form_error('price') ?>  
                                         </div>  
                                    </div>  
                                    <div class="form-group">  
                                         <label for="name">Photo</label>  
                                         <input class="form-control-file <?php echo form_error('image') ? 'is-invalid':'' ?>"  
                                          type="file" name="image" />  
                                         <input type="hidden" name="old_image" value="<?php echo $product->image ?>" />  
                                         <div class="invalid-feedback">  
                                              <?php echo form_error('image') ?>  
                                         </div>  
                                    </div>  
                                    <div class="form-group">  
                                         <label for="name">Description*</label>  
                                         <textarea class="form-control <?php echo form_error('description') ? 'is-invalid':'' ?>"  
                                          name="description" placeholder="Product description..."><?php echo $product->description ?></textarea>  
                                         <div class="invalid-feedback">  
                                              <?php echo form_error('description') ?>  
                                         </div>  
                                    </div>  
                                    <input class="btn btn-success" type="submit" name="btn" value="Save" />  
                               </form>  
                          </div>  
                          <div class="card-footer small text-muted">  
                               * required fields  
                          </div>  
                     </div>  
                     <!-- /.container-fluid -->  
                     <!-- Sticky Footer -->  
                     <?php $this->load->view("admin/_partials/footer.php") ?>  
                </div>  
                <!-- /.content-wrapper -->  
           </div>  
           <!-- /#wrapper -->  
           <?php $this->load->view("admin/_partials/scrolltop.php") ?>  
           <?php $this->load->view("admin/_partials/js.php") ?>  
 </body>  
 </html>  

8. Membuat fitur hapus data pada file list php
 <script>  
 function deleteConfirm(url){  
      $('#btn-delete').attr('href', url);  
      $('#deleteModal').modal();  
 }  
 </script>  

Hasil:


Comments

Popular posts from this blog

Tugas 2 PBKK

Membuat homepage, contact page, dan about page dengan framework Codeigniter Codeigniter adalah salah satu framework yang digunakan untuk membuat sebuah web app. Framework ini menggunakan metode MVC (Model, View, dan Controller). Untuk menggunakan framework ini, diperlukan xampp(windows) atau aplikasi sejenis, untuk menjalankan apache engine. Berikut adalah webpage yang saya buat : Home Page   Contact Page   About Page  

Pembuatan Aplikasi Web Sistem Pepustakaan

Secara umum, siklus hidup proyek merupakan suatu metode yang digunakan untuk menggambarkan bagaimana  sebuah proyek direncanakan, dikontrol, dan diawasi sejak proyek disepakati untuk dikerjakan hingga tujuan akhir proyek tercapai.  Terdapat empat tahap kegiatan utama yang dilakukan dalam siklus hidup proyek yaitu : 1. Initiation a. Masalah Proyek pembuatan aplikasi web sistem perpustakaan ini bermula dari masalah yang dimiliki web pustaka milik Kemhan dimana aplikasi yang digunakan  masih berbentuk kasar dan user interface yang masih belum maksimal dan membingungkan.. b. Produk Aplikasi Web Sistem Pepustakaan Berbasis Laravel c. Ruang Lingkup Sistem ini bisa digunakan oleh : User dan Admin Guest ( hanya terbatas browsing konten/isi) . d. Deliverables 1) Sistem dapat menampilkan jumlah keseluruhan buku yang ada serta jumlah stok buku yang ada. 2) Sistem dapat menampilkan data buku yang ada. 3) Sistem dapat memproses peminjaman, pengem...