Model Pada CodeIgniter


Salam semangat belajar CI untuk kita semua, semoga kita menjadi programmer pro 😄. Pada kesempatan ini saya akan membahas mengenai model. Mungkin kita bertanya apasih model yang dimaksud?. Model yang dimaksud pada framework CI adalah model database. Secara singkat model database adalah bentuk struktur data yang memperlihatkan hubungan atau relasi pada database serta batasan-batasannya.

Membuat sebuah aplikasi yang baik membutuhkan proses yang tidak sedikit. Dimulai dengan pemodelan dan analisa, kemudian desain barulah pengkodean. Tidak sampai disitu saja pembuatan aplikasi dilanjutkan dengan pengujian, implementasi dan perawatan selama aplikasi masih digunakan. Termasuk didalamnya dilakukan manajemen atau pengelolaan sumberdaya, biaya dan waktu pembuatan aplikasi.

Balik lagi ke model, model database biasanya digambarkan dengan ERD (Entity Relationship Diagram) pada tahap pemodelan. Nah, mungkin dari sinilah asal mula model pada CI ini. ERD diterjemahkan kedalam program yang dikemas dengan nama model pada CI. Sampai disini saya harap kita semua paham mengenai apa itu model pada CI.

Model ------->Controller------->View
Aliran data dimulai dari model kemudian diambil oleh controller dan dari controller dikirim dan ditampilkan ke view.
View------->Controller------->Model
Data diambil dari view (form atau link) diproses controller kemudian diteruskan ke model.

Langsung saja kita mulai tutorial nya.

#Lakukan Konfigurasi Seperti Tutorial Sebelumnya

#Buat Sebuah Database

-- phpMyAdmin SQL Dump
-- version 4.7.7
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Jul 08, 2020 at 05:05 PM
-- Server version: 10.1.30-MariaDB
-- PHP Version: 7.2.2

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `crud_db`
--

-- --------------------------------------------------------

--
-- Table structure for table `tbl_mahasiswa`
--

CREATE TABLE `tbl_mahasiswa` (
  `nim` varchar(11) NOT NULL,
  `nama` varchar(60) NOT NULL,
  `jenis_kelamin` varchar(15) NOT NULL,
  `agama` varchar(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `tbl_mahasiswa`
--

INSERT INTO `tbl_mahasiswa` (`nim`, `nama`, `jenis_kelamin`, `agama`) VALUES
('12345', 'Budi', 'Laki-Laki', 'Islam');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tbl_mahasiswa`
--
ALTER TABLE `tbl_mahasiswa`
  ADD PRIMARY KEY (`nim`);
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


#Buat Model

  • belajarcodeigniter
    • application
      • models
        • Mahasiswa_model.php


<?php
//nama file: Mahasiswa_model.php
if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Mahasiswa_model extends CI_Model
{
    public $table = 'tbl_mahasiswa';
    public $id = 'nim';
    public $order = 'DESC';

    //fungsi parent yang otomatis dijalankan
    function __construct()
    {
        parent::__construct();
    }

    // fungsi untuk memilih semuah data
    function get_all()
    {
        $this->db->order_by($this->id, $this->order);
        return $this->db->get($this->table)->result();
    }

    // fungsi untuk menampilkan data berdasarkan primary
    function get_by_id($id)
    {
        $this->db->where($this->id, $id);
        return $this->db->get($this->table)->row();
    }

    // insert data
    function insert($data)
    {
        $this->db->insert($this->table, $data);
    }

    // update data
    function update($id, $data)
    {
        $this->db->where($this->id, $id);
        $this->db->update($this->table, $data);
    }

    // delete data
    function delete($id)
    {
        $this->db->where($this->id, $id);
        $this->db->delete($this->table);
    }
}

Catatan:
Saya memberi catatan pada fungsi result() dan row().
result() hasil balik masih berupa objek.
row() hasil balik sudah berupa array.

Model di atas fungsi CRUD atau CREATE, READ, UPDATE, DELETE yang selalu kita gunakan nantinya. Mungkin kita berfikir dimana query nya. CI membantu kita untuk membuat query lebih singkat, tenang saja kita masih bisa melakukan query secara manual. 


// fungsi untuk memilih semuah data
    function get_all()
    {
        return $this->db->query("SELECT * FROM tbl_mahasiswa")->result();
    }

#Membuat Controller
Sebenarnya pada tutorial kali ini saya belum mau membahas controller. Tapi karna terpaksa maka kita buatlah controller agar nampak hasil dari tutorial kita.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Mahasiswa extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->model('Mahasiswa_model');
    }
public function index()
{
$mahasiswa = $this->Mahasiswa_model->get_all();

        $data = array(
            'data' => $mahasiswa
        );

        $this->load->view('mahasiswa', $data);
}
}


Lihat, di fungsi construct kita menjalankan Mahasiswa_model lalu pada fungsi index kita tinggal paggil fungsi "get_all" untuk menampilkan semua data. Coba lihat lagi model diatas yang tulisannya berwarna merah. Nilai balik $mahasiswa kemudian ditampung dalam array bernama $data kemudian data tersebut dikirimkan ke view mahasiswa kemudian ditampilkan. Mari kita lihat kode untuk view mahasiswa.php.


<!DOCTYPE html>
<html>
<head>
<title>Data Mahasiswa</title>
</head>
<body>
 <table align="center" border="1">
  <tr>
  <td>No.</td>
  <td>NIM</td>
  <td>Nama</td>
  <td>Jenis Kelamin</td>
  <td>Agama</td>
  <td>Aksi</td>
  </tr>
  <tr>
  <?php
                $no = 0;
                foreach ($data as $row)
                {
                ?>
                <td><?php echo ++$no ?></td>
                <td><?php echo $row->nim ?></td>
                <td><?php echo $row->nama ?></td>
                <td><?php echo $row->jenis_kelamin ?></td>
                <td><?php echo $row->agama ?></td>
                <td>EDIT | HAPUS</td>
                <?php

                }
        ?>
  </tr>
 </table>
</body>
</html>

Tulisan $data yang berwarna hijau merupakan index dari array $data yang dikirim dari controller, kebetulan namanya sama. Saya buat sama supaya jika copas nanti kita tidak banyak mengubah. Pada fungsi get_all mengunakan result() bukan row() maka dipecah lagi menjadi array, jika row() tidak perlu demikian.

Panggil dengan link "localhost/belajarcodeigniter/mahasiswa". Selamat kita telah berhasil mengakses database dengan model.
Catatan: Setelah berhasil anda dapat mengikuti tutorial selanjutnya.
Terima Kasih😀

Popular posts from this blog

Cara Menggunakan Template Admin LTE Sebagai Template Web Dinamis

Aplikasi CRUD menggunakan Template Admin LTE

Cara membuat Link ke Halaman lain dan Link ke bagian Halaman