Tutorial Pembuatan Halaman Kategori Menggunakan CodeIgniter
Dalam artikel ini, kita akan membahas cara membuat halaman kategori menggunakan framework CodeIgniter 4. Proses ini mencakup pembuatan model, controller, dan view untuk mengelola data kategori. Kita juga akan menggunakan XAMPP sebagai server lokal untuk menguji aplikasi kita.
Langkah-langkah Pembuatannya
1. Persiapan Lingkungan
Sebelum memulai, pastikan Anda telah menginstal XAMPP dan mengonfigurasikan Apache serta MySQL. Setelah itu, buat database baru untuk aplikasi kita.
Buka phpMyAdmin melalui browser Anda dengan mengunjungi
http://localhost/phpmyadmin
.Buat database baru, misalnya
kategori_db
.Buat tabel
categories
menggunakan query SQL berikut:CREATE TABLE categories ( id INT AUTO_INCREMENT PRIMARY KEY, category_name VARCHAR(100) NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
2. Membuat Model
Model bertanggung jawab untuk berinteraksi dengan database. Mari kita buat model KategoriModel
.
Buka folder
app/Models/
.Buat file baru bernama
KategoriModel.php
dan masukkan kode berikut:<?php namespace App\Models; use CodeIgniter\Model; class KategoriModel extends Model { protected $table = 'categories'; protected $primaryKey = 'id'; protected $returnType = 'object'; protected $allowedFields = ['category_name', 'description']; protected $useTimestamps = true; protected $createdField = 'created_at'; protected $updatedField = 'updated_at'; }
3. Membuat Controller
Controller mengelola logika aplikasi. Kita akan membuat controller Kategori
untuk mengelola operasi CRUD.
Buka folder
app/Controllers/
.Buat file baru bernama
Kategori.php
dan masukkan kode berikut:<?php namespace App\Controllers; use App\Models\KategoriModel; class Kategori extends BaseController { protected $kategoriModel; public function __construct() { $this->kategoriModel = new KategoriModel(); } public function index() { $data['kategori'] = $this->kategoriModel->findAll(); return view('kategori/index', $data); } public function create() { return view('kategori/create'); } public function store() { $this->kategoriModel->save([ 'category_name' => $this->request->getVar('category_name'), 'description' => $this->request->getVar('description') ]); return redirect()->to('/kategori')->with('success', 'Kategori berhasil ditambahkan.'); } public function edit($id) { $data['kategori'] = $this->kategoriModel->find($id); return view('kategori/edit', $data); } public function update($id) { $this->kategoriModel->update($id, [ 'category_name' => $this->request->getVar('category_name'), 'description' => $this->request->getVar('description') ]); return redirect()->to('/kategori')->with('success', 'Kategori berhasil diperbarui.'); } public function delete($id) { $this->kategoriModel->delete($id); return redirect()->to('/kategori')->with('success', 'Kategori berhasil dihapus.'); } }
4. Membuat View
View bertanggung jawab untuk menampilkan data. Kita akan membuat tiga view: index
, create
, dan edit
.
a. View index.php
Buka folder
app/Views/kategori/
.Buat file baru bernama
index.php
dan masukkan kode berikut:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Daftar Kategori</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> </head> <body> <div class="container mt-5"> <h1>Daftar Kategori</h1> <a href="/kategori/create" class="btn btn-primary mb-3">Tambah Kategori</a> <?php if(session()->getFlashdata('success')): ?> <div class="alert alert-success"> <?= session()->getFlashdata('success') ?> </div> <?php endif; ?> <table class="table table-bordered"> <thead> <tr> <th>ID</th> <th>Nama Kategori</th> <th>Deskripsi</th> <th>Aksi</th> </tr> </thead> <tbody> <?php foreach ($kategori as $k): ?> <tr> <td><?= $k->id ?></td> <td><?= $k->category_name ?></td> <td><?= $k->description ?></td> <td> <a href="/kategori/edit/<?= $k->id ?>" class="btn btn-warning">Edit</a> <a href="/kategori/delete/<?= $k->id ?>" class="btn btn-danger" onclick="return confirm('Yakin ingin menghapus kategori ini?');">Hapus</a> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> </body> </html>
b. View create.php
Buat file baru bernama
create.php
dan masukkan kode berikut:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tambah Kategori</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> </head> <body> <div class="container mt-5"> <h1>Tambah Kategori</h1> <form action="/kategori/store" method="post"> <div class="form-group"> <label for="category_name">Nama Kategori:</label> <input type="text" class="form-control" id="category_name" name="category_name" required> </div> <div class="form-group"> <label for="description">Deskripsi:</label> <textarea class="form-control" id="description" name="description"></textarea> </div> <button type="submit" class="btn btn-primary">Simpan</button> <a href="/kategori" class="btn btn-secondary">Kembali</a> </form> </div> </body> </html>
c. View edit.php
Buat file baru bernama
edit.php
dan masukkan kode berikut:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Edit Kategori</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> </head> <body> <div class="container mt-5"> <h1>Edit Kategori</h1> <form action="/kategori/update/<?= $kategori->id ?>" method="post"> <div class="form-group"> <label for="category_name">Nama Kategori:</label> <input type="text" class="form-control" id="category_name" name="category_name" value="<?= $kategori->category_name ?>" required> </div> <div class="form-group"> <label for="description">Deskripsi:</label> <textarea class="form-control" id="description" name="description"><?= $kategori->description ?></textarea> </div> <button type="submit" class="btn btn-primary">Update</button> <a href="/kategori" class="btn btn-secondary">Kembali</a> </form> </div> </body> </html>
5. Menambahkan Routing
Terakhir, kita perlu menambahkan routing untuk mengarahkan permintaan ke controller Kategori
.
Buka file
app/Config/Routes.php
.Tambahkan kode berikut:
$routes->get('/kategori', 'Kategori::index'); $routes->get('/kategori/create', 'Kategori::create'); $routes->post('/kategori/store', 'Kategori::store
17 تعليقًا
1. Apa fungsi dari Controller?
2. Apa fungsi dari Model?
3. Apa Fungsi dari View?
Jawab di Kolom Komentar dan jangan lupa berikan nama.
2.Fungsi Model adalah untuk melakukan operasi CRUD (Create, Read, Update, Delete) terhadap data dan memastikan bahwa data yang ditampilkan di View selalu up-to-date.
3. View berfungsi mengambil data dari Model melalui Controller dan menyajikannya dalam format yang mudah dipahami oleh pengguna
Bagian View yang bertugas untuk menampilkan informasi dalam bentuk Graphical User Interface (GUI).
Bagian Controller yang bertugas untuk menghubungkan serta mengatur model dan view agar dapat saling terhubung.
Mengatur dan mengelola permintaan dan respon antara aplikasi web dan pengguna. Controller juga menjadi perantara antara front-end dengan data dari database atau static data.
2. Model
Merepresentasikan struktur data dan mengandung fungsi kode yang membantu proses database, seperti memasukkan, mengedit, dan menghapus data.
3. View
Mengatur tampilan atau output yang tampil di layar, termasuk data, gambar, video, dan diagram.
2.Model berfungsi untuk menyimpan dan mengelola data aplikasi. Model juga bertanggung jawab untuk melakukan operasi pada data, seperti menambahkan, menghapus, atau memperbarui data.
3.View berfungsi untuk menampilkan data kepada pengguna. View menerima data dari controller dan menampilkannya dalam format yang mudah dipahami oleh pengguna. View tidak boleh mengandung logika bisnis, hanya menampilkan data yang diberikan oleh controller.
2. Fungsi dari Model adalah untuk menyimpan data dan logika bisnis aplikasi. Model bertanggung jawab untuk menyimpan data aplikasi dan mengelola logika bisnis. Model tidak tahu bagaimana data ditampilkan kepada pengguna atau bagaimana pengguna berinteraksi dengan aplikasi. Model hanya tahu bagaimana data harus disimpan dan diproses.
3. Fungsi dari View adalah untuk menampilkan informasi kepada pengguna dan mengumpulkan input pengguna. View bertanggung jawab untuk menampilkan data dari Model kepada pengguna dalam format yang dapat dibaca dan dipahami. View juga mengumpulkan input pengguna dan mengirimkannya ke Cont…
2.Model: Mengelola data dan logika bisnis, berfungsi sebagai penghubung antara data, aturan bisnis, dan database.
3.View: Menyajikan data kepada pengguna melalui antarmuka, menerima input, dan mengirimkan masukan tersebut ke controller, tanpa menyimpan logika
2.Model berfungsi mengambil, menyimpan, memperbarui, dan menghapus data dalam aplikasi, biasanya dengan berinteraksi dengan basis data
3.View berfungsi menerima data dari Controller dan menyajikannya dalam format yang dapat dipahami pengguna, seperti tampilan halaman web, form, atau tabel.
—————————————————
1. Controller: Berfungsi sebagai penghubung antara Model dan View. Controller menerima input dari pengguna, memproses permintaan, dan mengarahkan Model untuk mengelola data yang diperlukan, serta menentukan View yang akan ditampilkan.
2. Model: Mengelola data dan logika bisnis aplikasi. Model berinteraksi langsung dengan basis data untuk mengambil, memodifikasi, dan menyimpan data yang diperlukan oleh Controller.
3. View: Menyajikan data kepada pengguna dalam format yang mudah dipahami. View bertanggung jawab untuk antarmuka pengguna, menampilkan informasi yang disediakan oleh Controller.
2.Model dimaksudkan untuk menangani semua logika dan representasi data, mengembalikan data yang sudah dimuat ke dalam tampilan.
3.View
Mengatur tampilan atau output yang tampil di layar, termasuk data, gambar, video, dan diagram.
-Menangani permintaan (request) dari user
-Mengatur alur aplikasi dan logika program
-Menghubungkan Model dan View
-Memproses data dari Model dan mengirimkannya ke View
-Mengontrol akses dan validasi input dari user
2.Fungsi Model:
-Mengelola dan memproses data
-Berinteraksi dengan database
-Menerapkan aturan bisnis (business logic)
-Menyimpan struktur data aplikasi
-Memvalidasi data sesuai aturan yang ditetapkan
3.Fungsi View:
-Menampilkan data kepada pengguna
-Mengatur tampilan antarmuka (interface)
-Menerima data dari Controller untuk ditampilkan
-Menangani presentasi visual aplikasi
-Tidak berisi logika pemrosesan data
Model bertugas mengelola data, baik itu menyimpan, memperbarui, maupun menghapus data.
View bertanggung jawab untuk menampilkan antarmuka pengguna dan menyajikan data dengan cara yang dapat dipahami oleh pengguna.
-Pengendali Alur Program
-Menerima request/input dari user
-Menentukan apa yang harus dilakukan dengan request tersebut
-Mengarahkan alur aplikasi
-Penghubung antara Model dan View
-Berkomunikasi dengan Model untuk mengakses/manipulasi data
-Meneruskan data dari Model ke View untuk ditampilkan
-Memastikan View mendapat data yang sesuai
-Pemroses Business Logic
-Menangani validasi input
-Melakukan perhitungan atau -pemrosesan data
-Mengatur session dan autentikasi
2.Fungsi Model :
mengatur interaksi antara aplikasi dengan database, serta mengelola informasi dan aturan yang diperlukan oleh aplikasi
3.Fungsi View :
mengubah tampilan dokumen, seperti web layout, print layout, fullscreen layout, draft, dan outline
Model : Mendefinisikan hubungan antara elemen data dan bagaimana elemen tersebut diatur, disimpan, dan diambil.
View : berfungi untuk mengatur tampilan atau output yang tampil di layar, tidak hanya berupa data, namun juga termasuk komponen lain, seperti gambar, video, diagram, dan sebagainya.
2.Model bertanggung jawab untuk menyimpan dan mengatur data yang digunakan oleh aplikasi.
Data ini bisa berupa informasi pengguna, produk, transaksi, atau apa pun yang menjadi kebutuhan dari aplikasi.
3.View berfungsi untuk menerima data dari Controller atau langsung dari Model, lalu menampilkannya dalam bentuk yang mudah dimengerti pengguna.
Misalnya, dalam aplikasi e-commerce, View akan menampilkan daftar produk, detail produk, atau informasi harga kepada pengguna.
Model : berfungsi untuk mengatur data, fungsi dan aturan dari aplikasi.
View : berfungsi untuk mengatur tampilan atau output yang tampil di layar, tidak hanya berupa data, namun juga termasuk komponen lain, seperti gambar, video, diagram, dan sebagainya.