PEMULA : Memahami Sistem Kerja Model di Laravel 11

Baringin
By -
0

 



Pendahuluan

    Salah satu konponen terpenting yang harus dipahami di dalam konsep MVC ( Model View dan Controller) adalah konsep Model. Komponen model berhubungan dengan seluruh data logis (data-related logic) yang digunakan pengguna di dalam membangun pemrograman. Komponen model dapat mewakili data apa saja yang sedang ditransfer antara komponen view dan controller, atau data logis lainnya. 

    Data logis adalah data yang relevan dengan konteks tertentu. Misalnya ketika ingin membuat database anggota, maka data yang dikumpulkan berupa no anggota, nama anggota, alamat, no telephone, email dan lainnya.

    Selain itu, model juga dapat mengambil data dari database, memodifikasi (Edit) data tersebut, dan menambahkan data ke dalam database. 

    Pada tutorial ini kita tidak akan membahas bagaimana hubungan model dengan database, tetapi kita lebih berfokus bagaimana data yang ada didalam model kita kirim ke dengan melewati komponen controller hingga sampai ke view agar dapat disajikan ke user. 

    Sebelumnya silahkan anda install terlebih dahulu laravel di PC anda. Langkah insttallnya dapat anda baca di artikel berikut : Cara Install LaravelCara Install Laravel. Jika sudah mari kita lanjutkan ke tahapan berikutnya.


Membuat dan Mengakses User Intervace di View

        Buka VsCode anda, masuk ke toolbar dan cari menu Terminal=>New Terminal. Dihalaman terminal anda dapat ketikkan perintah berikut untuk membuat file untuk user interfacenya:

 php artisan make:view anggota

    Tekan Enter

    Sekarang buka struktru projek anda. Cari folder Resource=>View dan buka file anggota.blade.php. Ketikkan source berikut:

 

<!DOCTYPE html>
<html lang="en">

<head>
    <title>Belajar Model</title>
</head>

<body>
    <h5>Data Anggota</h5>
        ...
</body>

</html>

 

    Sampai disini kita sudah membuat halaman user interface, namun halaman ini belum dapat di akses. Kita perlu menentukan jalur atau route dan sistim kontrol terlebih dahulu. Sekarang kita akan membuat jalur untuk membuka view anggota tadi.

    Jadi silahkan anda buka struktur projek anda. Cari folder Routers dan buka file web.php. Rubahlah Route seperti berikut:

 

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AnggotaController; //Perintah ini untuk menghubungkan ke controller Anggota
Route::get('/', [AnggotaController::class, 'index']); 

 

    

    Perhatikan kita menambahkan perintah  use App\Http\Controllers\AnggotaController; yang merupakan perintah untuk menghubungkan ke Controller AnggotaController. Namun disini kita belum memiliki controller tersebut. Jadi kita akan membuat file AnggotaController.php nantinya. Sedangkan perintah Route::get('/', [AnggotaController::class, 'index']); merupakan  jalur yang akan digunakan untuk membuka view anggota. Disini kita memberikan class dengan nama index. Anda dapat mengganti nama class tersebut. Nama class ini akan di jadikan function di dalam file AnggotaController.php nantinya.

    Sekarang kita akan membuat file controller dengan nama AnggotaController.php Silahkan kembali ke halaman terminal anda di VsCode dan ketikkan perintah berikut:

    php artisan make:controller AnggotaController

    

    Tekan Enter

    Perintah diatas memberikan perintah agar laravel membuat sebuah file di folder controller dengan nama AnggotaController.php.    File tersebut dapat anda temukan di dalam folder controller. Buka struktur projek anda App=>http=>Controller dan buka file AnggotaController.php yang telah dibuat. Sekarang mari kita sempurnakan kode dari file AnggotaController.php tadi. Silahkan anda ketikkan perintah berikut:

 

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AnggotaController extends Controller
{
    public function index()
    {
        $data = [
            'title' => 'Data Anggota',
            'data' => ''
        ];
        return view('anggota',$data);
    }
}

 

    Kode program di atas terlihat bahwa kita menambahkan sebuah function yang kita beri nama index. Nama function ini tergantung kepada nama class yang anda berikan di route. Jadi silahkan sesuaikan namanya dengan yang telah anda buat.

    Sedangkan di dalam function terdapat sebuah data array yang kita simpan di dalam variabel $data. Data yang kita isi terdiri dari field title dan  field data. Untuk data kita kosongkan terlebih dahulu karena data tersebut akan kita ambil dari model. Sedangkan untuk title memiliki nilai'data anggota'. Mari kita tangkap nilai dari title tersebut dan kita kirim ke view anggota.blade.php.

    Silahkan buka file anggota.blade.php di folder view dan rubahlah seperti berikut:

 

....
<body>
    <h5>{{ $title }}</h5>
    <table>
        ...
    </table>
</body>
....

 

    Script $title yang kita tulis diantara tanda 2 kurung kurawal <h5>{{ $title }}</h5> merupakan nama variabel yang kita kirim dari controller. Hanya saja pada awalnya kita berikan tanda $ untuk menandakan field yang kita kirim kita rubah kedalam bentuk variabel. 

    Sekarang masuk ke terminal di VsCode dan ketikkan perintah berikut:

    php artisan serve

 Tekan Enter

    Buka browser dan ketikkan perintah berikut:

    http://127.0.0.1:8000/

    Apakah sudah di tampilkan data dari variabel title di browser anda. Jika sudah mari kita lanjutkan.



Membuat Modeling

    Sekarang kita masuk ke pembahasan utamanya yaitu modelling. Kita akan membuat sebuah model dan kita beri nama model tersebut dengan nama AnggotaModel. Anda masuk kembali ke terminal dan ketikkan perintah berikut untuk membuat model:

    php artisan make:model AnggotaModel

Tekan Enter

    Sekarang Buka struktur projek anda App=>htpp=>Models dan buka file AnggotaModel.php. 

 

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class AnggotaModel extends Model
{
    use HasFactory;
    public static function dataAnggota()
    {
        $arr = [
            [
                'no_anggota' => 1209,
                'nama' => 'Rahman',
                'alamat' => 'Bukittinggi',
                'telp' => '081209009899'
            ],
            [
                'no_anggota' => 1219,
                'nama' => 'Rahmalia',
                'alamat' => 'Padang Panjang',
                'telp' => '081209009887'
            ]
        ];
        return $arr;
    }
}

 

    Di dalam Model AnggotaModel kita membuat sebuah function dengan nama dataAnggota. Function ini nantinya yang kana kita panggil di controller. Sedangkan di dalam function dastaAnggota kita menyimpan 2 buah data anggota di dalam variable $arr. 

    Sekarang buka file AnggotaController. Langkah pertama kita hubungkan terlebih dahulu antara controller dengan model. Tambahkan perintah berikut:

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; //Script untuk memanggil file model

class AnggotaModel extends Model

 

    Selanjutnya kita panggil function di dalam model AnggotaModel. Tambahkan perintah berikut ke dalam variabel $data:

....
public function index()
    {
        $data = [
            'title' => 'Data Anggota',
            'data' => AnggotaModel::dataAnggota()
        ];
        return view('anggota', $data);
    }
.....

    Perhatikan perintah data' => AnggotaModel::dataAnggota(). Perintah tersebut terdiri dari namaModel::namaFunction(). Nama function kita dapatkan di dalam function model yang kita buat tadi.

    Selanjutnya kita tampilkan data tersebut ke view. Tapi sebelumnya mari kita desain terlebih dahulu view anggota.blade.php. Silahkan buka file tersebut dan sempurnakan script seperti berikut ini:

 

<body>
    <h5>{{ $title }}</h5>
    @foreach($data as $d)
    <br>No Anggota :{{ $d['no_anggota'] }}
    <br>Nama Anggota:{{ $d['nama'] }}
    <br>Alamat :{{ $d['alamat'] }}
    <br>No.TElephone:{{ $d['telp'] }}
    <hr>
    @endforeach
</body>

 

    Sekarang silahkan akses kembali di browser anda. Jika semua pengerjaannya benar maka tampilan akan seperti berikut ini:



        Sampai disini di harapkan anda sudah dapat memahami konsep Model di laravel. Anda dapat mengembangkannya sesuai dengan keingin. Terimakasih.












Post a Comment

0Comments

Post a Comment (0)