Tutorial Cara Membuat Model dan Interaksi Database melalui model di Codeigniter 4 - Part 6

 

Tutorial Cara Membuat Model dan Interaksi Database melalui model


Welcome back lagi teman-teman Always together Gudang Ilmu IT, Oke kita akan menaljutkan tutorial kita yang selanjutnya, yaiut berkaitan dengan model

Model adalah bagian yang cukup penting di Codeigniter, dimana dengan model kita akan dapat bekomunikasi dengan database.

Pada codeigniter 4 model berperang cukup penting ya teman-teman, model pada codeigniter 4 sedikit berbeda dengan Codeigniter 3, karena di codeigniter 4 Model memiliki peran untuk dapat langsung berkomunikasi dengan database, tanpa kita membuat method didalam model itu sendiri seperti yang kita lakukan di Codeigniter 3, konsep seperti ini ada juga di laravel dimana Model bisa dikatakan seperti representasi dari tabe; yang ada databasenya.

Jadi dengan memfaatkan peran model, anda bisa menampilkan seluruh data, mencari data tertentu, insert data, update ata, hapus data di database, dengan perintah yang cukup sederhana.

Baik ada beberapa hal yang akan kita pelajari :

  1. Cara membuat model
  2. Cara mengakses model
  3. konfigurasi model agar mengakses database
  4. Bekerja dengan data melalui model - FindAll
  5. Bekerja dengan data melalui model - Find
  6. Bekerja dengan data melalui model - FindColomn
  7. Bekerja dengan data melalui model - First
  8. Bekerja dengan data melalui model - withDeleted
  9. Bekerja dengan data melalui model - onlyDeleted
  10. Bekerja dengan data melalui model - Insert
  11. Bekerja dengan data melalui model - Update
  12. Bekerja dengan data melalui model - Save
  13. Bekerja dengan data melalui model - Delete
  14. Bekerja dengan data melalui model - PurgeDeleted

Pembahasannya Cukup panjang , Boleh disiapkan terlebih dahulu cemilan ya teman-teman jang lupa Kopi + Rokok nya hehe.

 

Persiapkan Project Codeigniter 

 Sebelum kita lanjutkan pembahasa terkait model ini, pastikan teman-teman sudah install project Codeigniter di komputer, dalam contoh ini saya akan melanjutkan project kita yang sebelumnya dengan nama ciinstall.


 

Cara Membuat Model

Secara Default model di Codeigniter 4 disimpan didalam folder app/Models, baik silahkan buat sebuah file model dengan nama KomputerModel.php dan simpan di dalam folder app/Models

Untuk isi dalam file KomputerModel :

 

<?php
 
namespace App\Models;
 
use CodeIgniter\Model;
 
class KomputerModel extends Model
{
}

Keterangan :

* Line 3 teman-teman wajib menuliskan namsespace App\Models 

* Line 7 kita buat class KomputerModel dengan extends class Model, untuk nama class ini sendiri harus sama dengan file Model, dalam contoh ini modelnya adalah KomputerModel.php

 

Cara Mengakses Model

Setelah dibagian sebelumnya kita telah membuat sebuah model degan nama KomputerModel yang kita simpan di dalam folder app/Models

Berikutnya kita akan belajar bagaimana cara mengakses Model tersebut, kita akan modifikasi terlebih method didalam KomputerModel, kita tambahkan method getData, berikutnya kita akan belajar bagaimana cara mengakses methodnya di dalam model, melalui Controller.

Kita modifikasi sehingga model menjadi seperti berikut :

<?php
 
namespace App\Models;
 
use CodeIgniter\Model;
 
class KomputerModel extends Model

{
    public function getData()
    {
        return 'Ini adalah Method getData didalam KomputertModel';
    }
}

Keterangan :

* Kita membuat method baru dengan nama getData, bagian ini kita buat sederhana saja, hanya return text dengan tulisan 'Ini  adalah Method getData didalam KomputerModel'.

Berikutnya kita buat sebuah controller dengan nama Komputer kita simpan didalam folder app/Controllers

Untuk isi code controller Komputer adalah :

<?php

namespace App\Controllers;

use App\Models\KomputerModel;

class Komputer extends BaseController
{
    public function index()
    {
        $product = new ProductModel();
        echo $product->getData();
    }
}

Keterangan :

* Kita Load model dengan nama KomputerModel, dengan perintah :

use App\Models\KomputerModel;

* Kita membuat class dengan nama Komputer sesuai dengan nama controllernya yaitu Komputer

Pada method index, kita membuatobject baru dengan nama $product dengan menggunakan class KomputerModel

* Kita mengakses method getData pada model KomputerModel, kita gunakan object $product, kita gunakan object $product, kita gunakan perintah echo untuk menampilkan text hasil return dari method getData

echo $product->getData();

Sekarang kita coba mengaksesnya, jangan lupa untuk menjalankan local develpment server, dengan perintah :

php spanrk serve 

lalu jalankan URL : http://localhost:8080/komputer 

Maka hasilnya adalah sebagai berikut :

Tutorial cara membuat Model

Akan menampilkan tulisan "Ini adalah Method getData didalam KomputerModel" yang merupakan return dari method getData didalam KomputerModel.

 

Persiapan Database & Koenksikan Dodeigniter dengan Database  

 Sebagai bahan belajar terkait cara model dapat berinteraksi dengan databse, kita akan buat sebuah database dengan nama db_komputer, dan didalamnya kita buat tabel dengan nama tb_komputer, untuk stuktur tabelnya seperti berikut :

  • kd_komputer ( int ) ( primary key ) ( auto incroment )
  • name ( Varchar 255 )
  • price ( float )
  • created_at ( datetime )
  • updated_at ( datetime )
  • deleted_at ( datetime )  

Untuk mempermudah teman-teman saya sediakan script SQL untuk membuat database serta tabelnya :

 

/*
SQLyog Enterprise v12.5.1 (64 bit)
MySQL - 10.1.38-MariaDB : Database - db_komputer
*********************************************************************
*/

/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`db_komputer` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `db_komputer`;

/*Table structure for table `tb_komputer` */

DROP TABLE IF EXISTS `tb_komputer`;

CREATE TABLE `tb_komputer` (
  `kd_komputer` int(11) NOT NULL AUTO_INCREMENT,
  `nama` varchar(50) DEFAULT NULL,
  `price` float DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `update_at` datetime DEFAULT NULL,
  `deleted_at` datetime DEFAULT NULL,
  PRIMARY KEY (`kd_komputer`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*Data for the table `tb_komputer` */

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

Baik saya asumsikan teman-teman semua sudah memiliki database yang didalamnya sudah ada tablenya.

Koneksikan Codeiginiter 4 Dengan Database :

Selanjutnya kita akan kenosksikan project codeigniter 4 dengan databse yang baru kita buat, langkah-langkahnya sebagai berikut :

  1. Pada folder project codeigniter terdapat file dengan nama env, silahkan rename terlebih dahulu menjadi .env
  2. Buka file .env pada bagian database di sekitar line 52-56 setting bagian database, sebelum itu hilanglan tanda #
  3. Lalu lakukan settingan koneksi ke batabase jadi kurang lebih seperti berikut ini :

 

Tutorail model Codeigniter 4
 

Keterangan :

  • Bagian hostname adalah server dari databasenya, dalam hal ini adalah localhost
  • Bagian database diisi dengan nama database, dalam hal ini adalah db_komputer
  • Bagian username diisi dengan user dari database, dalam hal ini adalah root
  • Bagian password diisi dengan password dari username tersebut, dalam hal ini saya kosongkan karena default password bagian mysql pada xampp itu kosong untuk user root
  • DB Driver kita isikan MySqli karena kita pakai MySQL. Maria DB sebagai databasenya.

 

Konfigurasi Model Agar Dapat Mengakses Database

Selanjutnya dibagian sebelumnya kita telah belajar, bagaimana membuat model, serta mengakses model dan method didalamnyamelalui controller, berikutnya kita akan belajar untuk mensetting bagian model, agar dapat mengakses database.

Berikutnya kita akan mengkonfigurasikan apa saja yang bisa kita setting di bagian model :

$DBGroup = digunakan untuk menentukan group  database mana yang akan digunakan, nama group database mana yang akan digunakan, nama group database ini bisa teman-teman lihat di konfigurasi database, bisa anda lihat di file .env, jika temna-teman tidak setting bagian DBGroup makan akan menggunakan default database yang setting di bagian konfigurasi database.

$table = bagian ini disi dengan nama table di database, dimana model ini dapat berkomunikasi dengan nama tabel yang ditulis dibagian ini.

$primaryKey = digunakan untuk menentukan primary key dari tabel yang dapat diakses oleh model ini, kolom dibagian primaryKey akan digunakan untuk dasar pencarian menggunakan method find, method find akan kita bahas lebih kanjut ditutorial berikutnya.

$returnType = digunkana untuk mengatur format returm data hasil dari query, anda bisa menuliskan value array ataupun object.

$useSoftDeletes = jika bernilai true, maka ketika ada data yang dihapus, akan menyimpan waktu kapan data dihapus dalam format datetime dalam kolom dengan nama deleted_at didalam tabel, secara sederhana seakan-akan ketika data dihapus, data tidak benar-benar hilang, data berada di semacam recycle bin, dimana nantinya data bisa kita restore, ataupun kita hapus secara permanen.

jika bernilai true, ketika kita menggunakan method find ataupun findAll hanya menampilkan data yang tidak dialam keadaan terhapus, kecuali anda juga menmbahkan perintah withDeleted() maka akan menampilkan keseluruhan data termasuk yang dalam keadaan telah dihapus.

$allowedFields = digunakan untuk menentukan kolom saja yang dapat kita insert dan update data, makan waktu akan dicatat dalam kolom created_at dan update_at

$useTimestamps = jika berniali true, maka setiap ada perubahan didatabse seperti insert dan update data, maka waktu akan dicatat dalam kolom created_at dan update_at

$createdField = digunakan untuk mengatur kolom mana yang akan digunkan untuk menyimpan waktu dalam format datetime saat data ditambahkan ( teman-teman bisa mengosongi bagian ini kecuali bagian $usesTiemstamps dalam keadaan enable

$updateField = digunakan untuk mengatur kolom mana yang akan digunakan untuk menyimpan waktu dalam format datetime saat data diupdate ( teman-teman bisa mengosongi bagian ini kecuali bagian $useTiemstamps dalam keadaan enable )

$deletedField =digunakan untuk mengatur kolom mana yang akan digunakan untuk menyimpan waktu dalam format datetime saat data didelete

$dateFormat = nilai dibagian ini akan menentukan format tanggal dan waktu yang disimpan, saat anda mengaktifkan bagian $useTiemstamps dan $useSoftDeletes, secara default menggunakan format DATETIME, tetapi teman-teman bisa menggunakan format lainnya seperti datetime, date, int ( a php timestamp )

$validationRules = bagian ini bisa teman-teman gunakan untuk membuat sebuah aturan tehadap format data yang akan di insert ataupun diupdate ke databse, untuk bagian ini akan kita singgung sedikit saja, karena ada pembahasan lebih lanjutnya di part pembahasan mengenai validasi

$validationMessages = bagian ini digunakan untuk mengatur pesan yang ditampilkan saat data tidak sesuai dengan validationRules

$skipValidation = bagian ini dapat berisi true atau false, secara default berniali false yang artinya data yang masuk harus melewati tahap validasi, tetapi jika teman-teman memberikan nilai true, maka data yang masuk tidak perlu melalui bagian validasi.

Baik berikutnya silahkan buka file model dengan nama KomputerModel.php, lalu modifikasi dengan kode ini :


<?php

namespace App\Models;

use CodeIgniter\Model;

class KomputerModel extends Model
{
    protected $table      = 'tb_komputer';
    protected $primaryKey = 'kd_komputer';

    protected $returnType     = 'object';
    protected $useSoftDeletes = true;

    protected $allowedFields = ['name''price'];

    protected $useTimestamps = true;
    protected $createdField  = 'created_at';
    protected $updatedField  = 'updated_at';
    protected $deletedField  = 'deleted_at';

    protected $validationRules    = [
        'name'     => 'required|min_length[3]',
        'price'        => 'required|numeric',
    ];

    protected $validationMessages = [
        'name'        => [
            'required' => 'Bagian Name Harus diisi',
            'min_length' => 'Minimal 3 Karakter'
        ],
        'price'        => [
            'required' => 'Bagian Price Harus diisi',
            'numeric' => 'Hanya bisa diisi dengan angka'
        ]
    ];
    protected $skipValidation  = false;

    public function getData()
    {
        return 'Ini adalah Method getData didalam ProductModel';
    }
}


Keterangan :

protected $table      = 'tb_komputer';

Kita set agar model ini dapat berkomunikasi dengan tabel "tb_komputer"

protected $primaryKey = 'kd_komputer'

Kata primary dari tabel tb_komputre adalah kolom "kd_komputer"

protected $returnType     = 'object';

Kita set untuk format return hasil query adalah object

protected $useSoftDeletes = true;

Kita set usesSoftDeletes bernilai true, agar data yang dihapus tidak benar-benar dihapus

protected $allowedFields = ['name''price'];

Kita set untuk kolom yang dapat di insert atau diupdate adalah kolom name, dan price

protected $useTimestamps = true;

Kita set bagian useTimestamps kita set true agar mencatat bagian created_at dan updated_at

protected $createdField  = 'created_at';

Untuk setting waktu insert data disimpan di kolom created_at

protected $updatedField  = 'updated_at';

Untuk setting waktu update data disimpan di kolom  update_at

protected $deletedField  = 'deleted_at';

Untuk setting waktu delete data disimpan di kolom deleted_at

untuk 3 settingan diatas, jika tidak di set maka akan memberikan nilai default :

  • Kolom yang menyimpan waktu insert data adalah created_at
  • Kolom yang menyimpan waktu update data adalah update_at
  • Kolom yang menyimpan waktu delete data adalah deleted_at  
 protected $validationRules    = [
        'name'     => 'required|min_length[3]',
        'price'        => 'required|numeric',
    ];

Kita setting validasi insert atau update, kita buat sederhana saja :

  • Kolom nama harus diisi ( required ) dan minimail 3 karakter
  • Kolom price harus diisi ( required ) dan menggunakan angka 
protected $validationMessages = [
        'name'        => [
            'required' => 'Bagian Name Harus diisi',
            'min_length' => 'Minimal 3 Karakter'
        ],
        'price'        => [
            'required' => 'Bagian Price Harus diisi',
            'numeric' => 'Hanya bisa diisi dengan angka'
        ]
    ];

Kita set bagian pesan yang ditampilakn untuk kebutuhan validasi, kita menuliskan pesan masing-masing validasi pada kolom

protected $skipValidation  = false;

Kita set skipValidation kita berikan nilai false, agar validasi tetap dilalukan.

Perintah Inser Data 

Berikutnya kita akan mulai belajar untuk melakukan komunikasi data dengan databse dengan menggunakan model, kita mulai belajar dengan menggunakan method insert(), method ini digunakan untuk insert kedatabase.

Untuk dapat melakukan insert data, teman-teman bisa menggunakan associative array, dimana key yang digunakan disamakan dengan nama kolom ditabel.

Silahkan buka file controller Komputer.php, lalu kita tambahkan method baru semisal dengan nama insertdata, method insertdata seperti ini :

<?php

namespace App\Controllers;

use App\Models\KomputerModel;

class Komputer extends BaseController
{
    public function index()
    {
        $product = new KomputerModel();
        echo $product->getData();
    }

    public function insertdata()
    {
        $product = new KomputerModel();
        $insert = $product->insert([
            'name' => 'ASUS VivoBook 14 K413FA',
            'price' => ' 8275000'
        ]);
        if ($insert) {
            echo "Data Berhasil diinsert";
        } else {
            echo "<pre>";
            echo print_r($product->errors());
            echo "</pre>";
        }
    }
}

Keterangan :

Kita buat method baru semisal dengan nama insertdata 

$product = new KomputerModel();

Kita buat object dengan nama $product menggunakan class KomputerModel 

$insert = $product->insert([
            'name' => 'ASUS VivoBook 14 K413FA',
            'price' => ' 8275000'
        ]);

Kita mengakses method insert dengan menggunakan object $product, kita menggunakan array associative, dimana key sesuai dengan nama kolom yang ada di tael tb_komputer, dan hasil query kita simpan di variable $insert

if ($insert) {
            echo "Data Berhasil diinsert";
        } else {
            echo "<pre>";
            echo print_r($product->errors());
            echo "</pre>";
        }

Kita cek value variable $insert dengan menggunakan perintah IF, jika query berhasil maka akan menampilkan tulisan "Data berhasil diinsert", Jika query gagal akan menjalankan Line 11 - 13 untuk menampilkan untuk meanmpilkan error message dari validasi, jika memang yang gagal adalah bagian validasi.

Sebenarnya perintahnya tidak sepanjang ini, tapi disini saya akan contohkan jika kita ingin melakukan pengeceken terhadap validasinya, dan jika validasi gagal akan menampilkan pesan error.

Baik kita coba mengakses method insertdata di controller Komputer, dengan menggunakan URL :

http://localhost:8080/komputer/insertdata

Lalu coba cek data di dalam tb_komputer, bisa gunakan sql editor, dalam contoh ini saya gunakan sqlyog :

Tutorial Model di codeigniter 4


Maka ada satu data dengan nama Asus VivoBook 14 K413FA, dan untuk bagian price 8275000

 

Perintah Update Data 

Berikutnya kita akan membahas method update, method ini digunakan untuk update data, method ini memiliki 2 parameter :

1. Nilai dari colom primary key data yang ingin diuodate

2. Perubahan data yang ingin dilakukan, dalam bentuk associative array

Berikutnya kita akan coba mengupdate data yang barusan kita insert, kita akan menambahkan method baru  di controller Komputer, semisal nama methodnya updatedata, isi dari method updatedata adalah seperti berikut ini :

 public function updatedata()
    {
        $product = new KomputerModel();
        $id = 1;
        $update = $product->update($id, [
            'nama' => 'ASUS VivoBook Max X441MA',
            'price' => '3350000'
        ]);
        if ($update) {
            echo "Data Berhasil diupdate";
        } else {
            echo "<pre>";
            echo print_r($product->errors());
            echo "</pre>";
        }
    }

Keterangan :

Kita membuat method dengan nama updatedata

Kita membuat object baru dengan nama $product dengan class KomputerModel

Kita buat variable $id dengan value 1, ii adalah nilai dari kolom kd_komputer ( yang merupakan primary key ) yang akan dijadikan parameter pertama method update, karena data yang akan kita update adalah data yang memilki kd_komputer = 1

$update = $product->update($id, [
            'nama' => 'ASUS VivoBook Max X441MA',
            'price' => '3350000'
        ]);

Kita gunakan method update pada object $product, dan mengirimkan 2 paameter yaotu :

* variabel $id

* array associative dari data yang akan di update

Hasilnya akan kita simpan didalm variabel $udate.

if ($update) {
            echo "Data Berhasil diupdate";
        } else {
            echo "<pre>";
            echo print_r($product->errors());
            echo "</pre>";
        }

Kita akan memeriksa hasil query yang disimpan di variabel $update, jika proses berhasil maka akan tampil tulisan "Data Berhasil diupdate"

Jika proses gagal, maka akan menampilkan pesan error dari hasil validasi jika yang gagal memang dibagian validasi.

berikutnya kita coba mengakses method update di controller Komputer dengan menggunakan URL ini : 

http://localhost:8080/komputer/updatedata

Jika proses berhasil akan tertulis :

Data Berhasil diupdate  

Berikutnya kita akan cek data di tabel tb-komputer, saya gunakan sql yog

Tutorial Model Di codeigniter 4

 
Maka datanya sudah berubah menjadi " ASUS VivoBook Max X441MA " dan untuk bagian price menjadi " 3350000 ".

 

Perintah Save 

Method save ini memiliki sungsi yang cukup unik, bisa digunakan untuk fitur insert data ataupun  update data, tergantung isi array associative yang kita buat, jika kita menyertakan kolom yang menjadi primary key maka akan dianggap mengupdate data, tetapi jika tidak menyertakan maka akan dianggap sebagai proses insert data.

Method Save Untuk Update Data

Baik kita akan mulai pembahasannya bagaimana kalau method save digunakan untuk update data, teman-teman perlu primary key dibagian array associative, dalam contoh ini kita akan menambahkan method dengan nama saveupdate dibagian controller Komputer, method saveupdate adalah sebagai berikut :

 public function saveupdate()
    {
        $product = new KomputerModel();
        $data = [
            'kd_product' => 1,
            'name' => 'Acer RogGaming',
            'price' => '17000000'
        ];
        $product->save($data);
    }

 

Keterangan :

* Kita buat object dengan nama $product dengan class KomputerModel

* Kita buat array associative dengan key kd_komputer ( primary key ), name, dan price

* Kita gunakan method save dibagian object $object, dengan mengisikan parameternya adalah array associative

Kita coba mengakses method saveupdate yang barusan kita buat dengan URL : localhost:8080/komputer/saveupdate

Laku periksa didatabase harusnya data dengan kd_komputer = 1 akan berubah, nama menjadi " Acer RogGaming" dan untuk bagian price "17000000"

Tutorial Codeigniter 4

 

Method Save Untuk Insert Data 

Berikutnya kita akan coba untuk menggunakan method save untuk kebutuhan insert data, seperti yang dijelaskan di awal, perbedaannya jika untuk kebutuhan insert data teman-teman tidak perlu menuliskan kolom primary key dibagian array associative.

dalam contoh ini kita akan membuat method baru di controller Komputer, semisal kita beri nama saveinsert, untuk isi methodnya adalah sebagai berikut :

public function saveinsert()
    {
        $product = new KomputerModel();
        $data = [
            'nama' => 'DELL 10 Gaming',
            'price' => '1000000'
        ];
        $product->save($data);
    } 

Keterangan : 

Kita buat object baru dengan nama $product dengan menggunakan class KomputerModel

Kita buat data array associative dengan key nama, dan price sesuai nama kolom di tabel tb_komputer

Kita gunakan method save dengan object $product, dan menyertakan variable $data yang berisi array untuk digunakan dibagian sebagai parameter method save

Kita akan coba mengakses method saveinsert dengan menggunakan URL :

http://localhost:8080/komputer/saveinsert

Maka hasilnya akan ada data baru di tabel tb_komputer, sehingga kurang lebih seperti berikut ini :

Tutorial Codeigniter 4

Method Save Untuk Update Tanpa Array

Berikutnya kita akan bahas untuk cara update data menggunakan method save, tapi yang berbeda disini kita tidak perlu menggunakan array, baik sebagai contoh kita akan membuat method baru dengan nama saveupdate2 di controller Komputer, scriptnya sebagai berikut :

 

public function saveupdate2()
    {
        $product = new KomputerModel();
        $dataKomputer = $product->find(1);
        $dataKomputer->price = '2050000';
        $product->save($dataKomputer);
    }

Keterangan :

Kita buat object baru dengan nama $product dengan menggunakan class KomputerModel

Kita mendapatkan data product dengan kd_komputer = 1, dengan menggunakan perintah method find, pembahasan find akan ada dibab selanjutnya, hasil pencairan disimpan pada variable $dataKomputer

Kia isi nilai kolom price dengan value '1000000', menggunakan variable $dataKomputer

Kitamenggunakan method save dengan menggunakan oblect $product, dan untuk parameter method save adalah array $dataKomputer

Berikutnya kita coba akses saveupdate2 dengan URL berikut :

http://localhost:8080/komputer/saveupdate2

Maka Hasilnya dengan kd_komputer 1 akan berubah, nilai price akan menjadi 2050000

Tutorial Codeigniter 4

 

Perintah DELETE

Berikutnya kita akan belajar mengenai method Delete, method ini digunakan untuk menghapus data di database, dalam contoh ini kita akan membuat method baru di controller Komputer, semisal method kita beri nama deletedata, isi method deletedata adalah sebagai berikut :

 public function deletedata()
    {
        $product = new KomputerModel();
        $product->delete(1);
    }

Keterangan :

Kita buat object dengan nama menggunakan object product dengan class KomputerModel

Kita gunakan method deletedata denga menggunakan object $product,  dengan parameter 1, yang artinya menghapus data di tabel tb_komputer yang kd_komputer = 1, hal ini di katrenakan kita set variable $primaryKey di Model adalah kd_komputer

Coba kita akses method deletedata di controller Komputer, denga URL beriktu ini : 

http://localhost:8080/komputer/deletedata 

Makan hasilnya akan seperti ini : 

Tutorial Codeigniter 4
Keterangan :

Perhatiakn pada data dengan kd_komputer 1, data tidak dihapus, tetapi bagian delete_at akan berisi waktu data itu di hapus, hal ini dikarenakan kita menset $useSoftDeletes = true; dibagian model KomputerModel

Beberapa perintah lain yang bisa teman-teman gunakan untuk menghapus data antara lain :

Menghapus Data Dengan Beberapa ID 

Teman-teman bisa menghapus beberapa data sekaligus, dengan menuliskan ID data sesuai primary key, kedalam bentuk array, contohnya adalah sebagai berikut : 

$product = new KomputerModel();
$product->delete(1,2,3);

Menghapus Data Dengan Perintah Where 

Teman-teman bisa menghapus data dengan menggunakan kombinasi pencarian data menggunakan method where, contoh perintahnya adalah sebagai berikut :

$product = new KomputerModel();
$product->where('Acer RogGaming''2050000')->delete();

Menghapus Permanent Seluruh Data Dari Fitur Softdeletes

Teman-teman bisa menghapus data dengan menggunakan kombinasi pencarian data menggunakan method where, contoh perintahnya adalah sebagai berikut :

$product = new KomputerModel();
$product->purgeDeleted();

dengan perintah diatas, maka data didalam tabel tb_komputer yang memiliki nilai di kolom deleted_at atau bisa dikatakan nilai pada value kolom deleted_at  IS NOT NULL maka data itu akan dihapus.

Menghapus Data Secara Permanen

Seperti yang telah kita bahas diawal, codeigniter 4 memiliki fitur softdelete dibagian model, jika anda ingin menghapus data secara permanent bisa menambahkan value true, diparameter kedua pada method delete, jadi contoh perintahnya adalah seperti berikut ini :

$product = new KomputerModel();
$product->delete(1true);

 Keterangan :

Perintah diatas digunakan untuk menghapus data secara permanen untuk data ditabel tb_komputer yang nilai kd_komputer = 1, kita hanya perlu menambahkan parameter kedua dengan nilai true. 

 

 

Menampilkan Data

Berikutnya kita akan membahas bagaimana cara menampilkan data dengan menggunakan model, ada beberapa fiutr yang disediakan oleh codeigniter 4, baik kita mulai 1 persatu :

Menggunakan Method Find

Method find ini digunakan untuk menampilkan data berdasarkan nilai yang ada dibagian kolom yang menjadi primary key.

Semisal kita ingin mencari data di tabel tb_komputer yang nilai kd_komputer adalah 2, contohnya kita akan menambahkan method baru dengan nama getdata di controller Komputer, jadi controller Komputer kirang lebih seperti berikut ini :

public function getdata()
    {
        $product = new KomputerModel();
        $dataProduct = $product->find(2);
        echo "<pre>";
        echo print_r($dataProduct);
        echo "</pre>";
    }

Keterangan :

Kita buat object dengan nama $product dengan class KomputerModel

Kita menggunakan method find() dengan nilai parameter adalah 3 yang artinya kita mencari data di tb_komputer dengan nilai di colom kd_komputer sebagai primary key

kita tambilkan datanya menggunakan print_r agar dapat melihat isi return hasil query

kita dapat mengaksesnya dengan menggunakan perintah :

http://localhost:8080/komputer/getdata 

Tutorial Codeigniter 4

 

Menggunakan Method Find Column

Perintah ini digunakan untuk menampilkan data yang ada di dalam kolom yang kita inginkan, semisal dalam contoh kita ingin menampilkan isi dari colom nama di dalam tabel tb_komputer, kita akan modifikasi method getdata yang ada di dalam controller Komputer, Menjadi seperti berikut :


public function getdata()
    {
        $product = new KomputerModel();
        $dataProduct = $product->findColumn('name');
        echo "<pre>";
        echo print_r($dataProduct);
        echo "</pre>";
    }

Keterangan :

Kita buat object dengan nama $product dengan class KomputerModel

Kita menggunakan method findColumn() dengan nilai parameter adalah  nama yang artinya kita ingin menampilkan kolom dengan nama name di tabel tb_komputer

Kita tampilkan datanya, kita gunakan print_r agar anda dapat melihat isi return hasil query

Kita coba akses denga URL berikut :

http://localhost:8080/komputer/getdata

Maka hasilnya adalah sebagai berikut :

Tutorial Codeigniter 4
Keterangan :

yang tampil hanya satu data, padahal data ada 3, karena yang satunya dalam keadaan terhapus, jadi yang tampil hanya DELL 10 Gaming yang merupakan nilai dari kolom nama


Menggunakan Method FindAll

Method ini digunakan untuk menampilkan seluruh data yang ada pada sebuah tabel kecuali data yang terhapus dengan fitur softdelete, anda bisa menggunakan perintah seperti berikut :

public function getdata()
    {
        $product = new KomputerModel();
        $dataProduct = $product->findAll();
        echo "<pre>";
        echo print_r($dataProduct);
        echo "</pre>";
    }

Keterangan :

Kita menggunakan perintah findAll yang akan menampilkan seluruh data yang ada di tabel tb_komputer kecuali data yang dihapus.

Oke temna-teman kit alanjutkan di pembahasan selajutnya lagi sekian artikel codeigniternya semoga bermamfaat. jangan sahre ya.

salam teknologi iPteK Yes GapteK No !!!!

 

 

 

Subscribe to receive free email updates:

0 Response to "Tutorial Cara Membuat Model dan Interaksi Database melalui model di Codeigniter 4 - Part 6"

Posting Komentar