Menampilkan Data multi Table di Codeigniter 4 dengan Join - Sinauo.Com

Menampilkan Data multi Table di Codeigniter 4 dengan Join



Pada pembuatan sebuah aplikasi pastinya kita tidak lepas yang namanya database dan tabel. Tapi terkadang kita di tuntut untuk menampilkan sebuah data dari tabel satu bergabung dengan tabel dua atau lainnya bisa juga disebut dengan relasi antar tabel.

Pada kesempatan kali ini admin akan membahas sebuah tutorial bagaimana cara menampilkan beberapa data ditabel yang berbeda dengan join di codeigniter 4. Jika kita membuat join data, maka dalam structure tabel satu dengan tabel yang lain mempunyai data primary key yang terhubung dengan foreign key yang nantinya akan membentuk sebuah relasi tabel.

Membuat Database

Untuk membuat database di mysql maka ketikan perintah berikut ini :

create database multi_table;

Jika kalian belum mengerti tentang pembuatan database mysql silahkan baca : Belajar Membuat Database Mysql

Setelah database dibuat saatnya kita membuat beberapa tabel beserta isi datanya seperti berikut ini:


Tabel Jurusan



Tabel Kelas


Tabel Siswa


Instalasi Codeighniter 4

Hal pertama yang dilakukan untuk memulai aplikasi yaitu installasi aplikasinya terlebih dahulu, Jika belum paham tentang cara instalasi Codeigniter 4 bisa baca artikel Cara Installasi Codeigniter 4

Membuat Koneksi Database

Membuat Konfigurasi database di codeigniter 4 ada dua cara yaitu cara pertama dengan menggunakan file env (rename menjadi .env) yang ada di folder root project atau dengan file Database.php yang ada di folder app/config dan kali ini admin menggunakan file env untuk koneksi database nya .

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

Temukan kode seperti diatas kemudian edit hilangkan tanda pagarnya lalu sesuaikan dengan host,username,password dan nama database kalian kemudian save as dengan nama .env jangan lupa juga ubah juga CI_ENVIRONMENT = development 

Membuat Model

Buatlah file baru dengan nama Models_siswa.php simpan di folder app/Models kemudian ketikan kode berikut ini :

<?php namespace App\Models;
use CodeIgniter\Model;
 
class Models_siswa extends Model
{
     
    public function getSiswa()
    {
         return $this->db->table('siswa')
         ->join('kelas','kelas.IDKelas=siswa.IDKelas')
         ->join('jurusan', 'jurusan.IDJurusan=siswa.IDJurusan')
         ->get()->getResultArray();  
    }
 }

Dari kode diatas kita membuat join tiga tabel dengan konsep relasi. yang nantinya akan dipanggil oleh file controller untuk diteruskan ke file view.
Jika belum paham tentang join bisa baca artikel Mengenal Fungsi Join di Tabel MySQL

Membuat Controller

Kita buat file baru dengan nama Siswa.php kemudian simpan di folder app/Controllers lalu masukan kode berikut ini :

<?php namespace App\Controllers;
 
use CodeIgniter\Controller;
use App\Models\Models_siswa;
 
class Siswa extends BaseController
{
    public function index()
    {
        $model = new Models_siswa();
        $data['siswa'] = $model->getSiswa();
        echo view('view_siswa',$data);
    }
}

Dari kode diatas terdapat beberapa kode yang berfungsi untuk memanggil function use (App\Models\Models_siswa; | $model = new Models_siswa(); | $data['siswa'] = $model->getSiswa();) yang ada di model kemudian akan diteruskan ke file views (echo view('view_siswa',$data);).

Membuat View

Buat file baru dengan nama view_siswa.php simpan di folder app/Views kemudian masukan beberapa kode dibawah ini :

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Menampilkan Data Multi Join Tabel</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet"> 
</head>
<body style="width: 70%; margin: 0 auto; padding-top: 30px;">
<div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Menampilkan Data Multi Tabel </h2>
            </div>
        </div>
    </div>
    <hr>
    <div class="row">
        <div class="col-lg-12 margin-tb">
<table class="table table-bordered">
        <tr>
            <th>No</th>
            <th>Nama Siswa</th>
            <th>Kelas</th>
            <th>Jurusan</th>
        </tr>
        <?php foreach($siswa as $row):?>
        <tr>
        <td><?=$row['IDSiswa'];?></td>
            <td><?=$row['NamaSiswa'];?></td>
            <td><?=$row['NamaKelas'];?></td>
            <td><?=$row['NamaJurusan'];?></td>
        </tr>
        <?php endforeach;?>
    </table>
</div>
</div>
</body>
</html>

Kemudian kita jalankan projectnya dengan cara mengetikan perintah php spark serve di terminal kemudian ketikan alamat http://localhost:8080/siswa di web browser kalian maka tampilannya akan seperti berikut ini :

Kesimpulan

Dari pembahasan diatas kita sudah bisa menampilkan beberapa tabel yang terelasi dengan menggunakan framework codeigniter 4, Tutorial diatas hanya menggunakan relasi tiga tabel jika kita ingin membuat relasi lebih dari tiga maupun kurang dari tiga tabel kita bisa menyesuaikannya, 

Sedikit tutorial cara menampilkan data multi tabel dengan codeighniter 4 semoga bermanfaat.

2 comments

  1. muncul ini Call to a member function table() on null

    ReplyDelete
    Replies
    1. bisa di lihat lagi untuk fungsi kelas tablenya om di cek lagi skripnya . Apakah pemanggilan file modelnya sudah berhasil belum . .

      Delete