Ilmu Coding Ilmucoding.com - Merupakan situs yang membantu Anda belajar coding lebih mudah, nyaman, interaktif dan profesional. Belajar sekarang di ilmu coding. GRATIS

Shopping Cart Codeigniter 4 Full Tutorial – Part 1

4 min read

Tutorial Shopping Cart Codeigniter 4 - part 1

Tutorial Membuat Fitur Shopping Cart di Codeigniter 4. Dewasa ini, fitur shooping cart sudah sering digunakan pada situs website atau aplikasi mobile semisal toko online dan e-commerce.

Library shopping cart bisa kita temukan pada Codeigniter versi 3. Namun, pada versi 4, Codeigniter tidak menyediakannya.

Kamu bisa membaca informasinya di https://codeigniter4.github.io/userguide/libraries/index.html.

Pada page tersebut, tidak ada fitur Cart seperti pada versi ke 3. Hal ini membuat saya penasaran dan mencoba membuat fitur Shopping Cart di Codeigniter 4.

Cara Membuat Fitur Shopping Cart di Codeigniter 4

Sekarang, kita akan masuk ke point utama di artikel kali ini tentang membuat fitur Shopping Cart dengan menggunakan Codeigniter 4. Silahkan ikuti langkah demi langkah ini:

Step 1: Membuat Database Shopping Cart

Silahkan buat database baru bernama ci4_cart di web server Anda. Anda bisa menggunakan XAMPP, WAMP atau Laragon sesuai dengan aplikasi yang digunakan.

Step 2: Install Codeigniter 4

Silahkan download file Codeigniter 4 di situs resmi Codeigniter.com atau Anda bisa membaca tutorial lengkap cara menginstall Codeigniter 4 di situs ilmu coding. Silahkan simpan file baru tersebut di web server yang Anda gunakan. Misalnya di htdocs jika Anda menggunakan XAMPP atau di www jika Anda menggunakan Laragon.

Step 3: Setup Environment dan Konfigurasi Database

Setiap kali Anda download atau install Codeigniter 4, Anda akan menemukan file bernama env. File ini memiliki fungsi yang sangat penting. Yaitu bisa mengatur environment secara langsung (development, testing dan production) serta mengatur setup database.

Oke, pertama silahkan ubah nama file env menjadi .env (ingat ya, tambahkan titik di depannya).

Kedua, kita membutuhkan environment development agar jika dalam tahap ngoding terjadi error, kita bisa memperbaikinya. Langsung saja cari kode berikut ini:

# CI_ENVIRONMENT = production

Ubah menjadi:

CI_ENVIRONMENT = development

Ketiga, kita perlu mengatur nama database, username dan passwordnya. Jadi, silahkan cari kode berikut ini:

# database.default.hostname = localhost
# database.default.database = ci4
# database.default.username = root
# database.default.password = root
# database.default.DBDriver = MySQLi

Ubah menjadi:

database.default.hostname = localhost
database.default.database = ci4_cart
database.default.username = root
database.default.password = 
database.default.DBDriver = MySQLi

Kalau diperhatikan, saya menghapus tanda tagar dan value dari password. Memang saya tidak menggunakan password di webserver local yang saya gunakan. Jadi saya kosongkan saja.

Step 4: Membuat Table Products

Saya akan membuat table products menggunakan fitur migrate yang disediakan oleh Codeigniter 4. Silahkan ketik perintah berikut ini di terminal:

php spark migrate:create products

Jika berhasil, maka akan terdapat file baru di root/app/Database/Migrations/xxxxxxx_products.php. Nah, kita perlu memodifikasinya menjadi seperti ini:

<?php namespace App\Database\Migrations;

use CodeIgniter\Database\Migration;

class Products extends Migration
{
	public function up()
	{
		$this->forge->addField([
			'id' => [
				'type'	=> 'INT',
				'constraint' => 11,
				'auto_increment' => true
			],
			'name' => [
				'type'	=> 'VARCHAR',
				'constraint' => 50
			],
			'price' => [
				'type'	=> 'INT',
				'constraint' => 11
			],
			'description' => [
				'type'	=> 'TEXT'
			],
			'photo' => [
				'type'	=> 'VARCHAR',
				'constraint' => 50
			]
		]);
		$this->forge->addKey('id');
		$this->forge->createTable('products');
	}

	public function down()
	{
		//
	}
}

Dengan memperhatikan code di atas, kita bisa memahami kalau field-field yang akan kita buat adalah id, name, price, description dan photo.

Kemudian agar code di atas bisa berjalan di database kita, silahkan ketik perintah berikut ini:

php spark migrate

Jika berhasil, maka table products akan terbentuk di database kita.

Step 5: Menyiapkan Assets Bootstrap, Font Awesome dan Images

Saya menggunakan bootstrap dan gambar yang bisa Anda download di link Google Drive yang akan saya berikan. Silahkan download di sini.

Jika sudah mendownloadnya, pindahkan file assets.zip tersebut ke ROOT/public. Kemudian extract here.

Perhatikan isi folder public melalui gambar di bawah ini:

Oke, sekarang sudah ada 3 file assets yang kita miliki, yaitu bootstrap, fontawesome dan images.

Step 6: Membuat Data Dummy di Table Products

Silahkan buat data dummy secara menual di dalam table products. Sebagai contoh, saya akan membuat data dummy di table products seperti gambar di bawah ini:

Step 7: Membuat Model Product

Silahkan buat file baru bernama Product_model.php dan simpan di direktori ROOT/app/Models.

Kemudian isi file tersebut dengan kode di bawah ini:

<?php

namespace App\Models;

use CodeIgniter\Model;

class Product_model extends Model{

    protected $table = "products";
    protected $primaryKey = "id";

    public function getProduct($id)
    {
        return $this->db->table($this->table)->where('id', $id)->get()->getRowArray();
    }

}

Silahkan pahami dulu kode di atas, jika belum, saran saya jangan lanjut ke step berikutnya.

Jelasin donk, Mas…

Oke, jadi intinya saya membuat function untuk mengambil data product berdasarkan id-nya. Tak lupa saya memberikan value products pada variabel $table dan value id di $primaryKey.

Step 8: Membuat Controller Product

Silahkan buat file baru bernama Product.php dan simpan di dalam file ROOT/app/Controllers.

Kemudian silahkan isi file Product.php dengan kode di bawah ini:

<?php namespace App\Controllers;

use App\Models\Product_model;

class Product extends BaseController
{

	public function __construct() {
	
		$this->product = new Product_model;
	
	}

	public function index()
	{
		// membuat variabel untuk menampung session cart
		$session = session('cart');
		// membuat variabel total yang isinya mengecek ada atau tidak
		// variabel session dan memasukannya ke dalam array values
		// jika session cart tidak ada, tampilkan array() / kosong
		$data['total'] = is_array($session)? array_values($session): array();
		// menampilkan semua data product yang ada di dalam database
		$data['items'] = $this->product->findAll();
		// menampilkan halaman view product dan membawa variabel data
		return view('product/index', $data);
	}

}

Penjelasannya sudah ada di setiap baris kode di atas ya.

Step 9: Membuat View Product

Silahkan buat folder baru bernama product di direktori ROOT/app/Views dan di dalam folder tersebut buat file bernama index.php.

Pada file index.php silahkan ketikan kode berikut ini:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Codeigniter 4 Shopping Cart by Ilmu Coding</title>
    <link rel="stylesheet" href="<?php echo base_url('bootstrap/css/bootstrap.min.css'); ?>">
    <link rel="stylesheet" href="<?php echo base_url('font-awesome/css/font-awesome.min.css'); ?>">
</head>
<body>
    <div class="container mt-5">
        <h3 class="text-center mb-5">Tutorial Codeigniter 4 Shopping Cart</h3>
        <div class="card">
            <div class="card-header">
                List Product
                <a class="btn btn-success btn-sm float-right" href="<?php echo base_url('cart'); ?>"><i class="fa fa-cart-plus"></i> <?php echo count($total); ?></a>
            </div>
                <div class="card-body">
                    <?php if(session()->getFlashdata('success') != null){ ?>
                    <div class="alert alert-success">
                        <?php echo session()->getFlashdata('success'); ?>
                    </div>
                    <?php } ?>
                    <?php if(session()->getFlashdata('error') != null){ ?>
                    <div class="alert alert-danger">
                        <?php echo session()->getFlashdata('error'); ?>
                    </div>
                    <?php } ?>
                    <div class="table-responsive">
                        <table class="table table-bordered">
                            <thead>
                                <tr>
                                    <th>No</th>
                                    <th>Name</th>
                                    <th>Price</th>
                                    <th>Desc</th>
                                    <th>Photo</th>
                                    <th>Action</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach($items as $key => $item) { ?>
                                <tr>
                                    <td><?php echo $key + 1; ?></td>
                                    <td><?php echo $item['name']; ?></td>
                                    <td>Rp. <?php echo number_format($item['price'], 0, 0, '.'); ?></td>
                                    <td><?php echo $item['description']; ?></td>
                                    <td><img src="<?php echo base_url('images/'.$item['photo']); ?>" width="100px"></td>
                                    <td>
                                        <a href="<?php echo base_url('cart/beli/'.$item['id']); ?>" class="btn btn-primary">Beli</a>
                                    </td>
                                </tr>
                                <?php } ?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

Step 10: Testing Halaman Product

Silahkan jalankan webserver Anda (terutama apache dan mysql) dan ketik perintah berikut ini melalui terminal untuk menjalankan file project Codeigniter 4:

php spark serve

Jika berhasil, silahkan buka browser dan silahkan ketik URL berikut:

localhost:8080/product

Jika tidak ada kendala, hasilnya adalah sebagai berikut:

Shopping Cart Codeigniter 4 - Halaman Testing Product

Penutup

Demikianlah tutorial membuat fitur shopping cart di Codeigniter 4 pada part pertama ini. Insya Allah saya akan melanjutkannya sampai ke part ke 2.

Kunjungi: Tutorial Shopping Cart di Codiegniter 4 – Part 2

Pada part terakhir tak lupa saya akan menyertakan source code yang bisa Anda download di Github. Jadi, pastikan Anda tidak melewatkan part ke 2 nanti ya.

Semoga bermanfaat…

Selamat belajar …

Ilmu Coding Ilmucoding.com - Merupakan situs yang membantu Anda belajar coding lebih mudah, nyaman, interaktif dan profesional. Belajar sekarang di ilmu coding. GRATIS

Leave a Reply

Your email address will not be published. Required fields are marked *

Jika terbantu dengan artikel ini, silahkan share, beri komentar dan "klik" 1 kali pada iklan ya.