Rumahweb Journal
banner - belajar laravel bagian 3

Belajar Laravel Bagian 3 : Model – View – Controller

Pada series belajar laravel sebelumnya, kita telah belajar tentang route dan view di Laravel. Pada lanjutan series belajar Laravel bagian 3, kita akan belajar lebih dalam mengenai konsep MVC (Model-View-Controller) di Laravel.

Apa itu konsep MVC?

Sebagaimana kebanyakan bahasa pemrograman lainnya, Laravel juga menggunakan konsep MVC untuk membangun program dan aplikasi. Konsep MVC digunakan untuk memisahkan logika program aplikasi menjadi tiga komponen utama, yakni:

Model

Model adalah bagian yang bertugas untuk mengelola data dari database. Pada bagian ini, berisi logika pengolahan data seperti mengambil, menyimpan, merubah, menghapus data.

Laravel menggunakan Eloquent ORM (Object-Relational Mapping) untuk memudahkan dalam berinteraksi dengan database. Model di Laravel terletak pada path directory“app/Models”. Saat Anda membuat Model baru, maka pembuatan file modelnya berada di folder tersebut.

View

View bertugas sebagai tampilan website atau aplikasi. Data yang ditampilkan oleh view bisa berupa HTML, JSON, XML.

Letak path directory view ada di “resources/views”. Di Laravel pembuatan view menggunakan blade templating engine. File view ditulis dengan format namafile.blade.php.

Controller

Controller bertugas sebagai penghubung antara Model dan View. Controller mendapatkan input dari pengguna melalui HTTP Request, selanjutnya memproses input yang diterima tersebut dengan berinteraksi dengan Model. Terakhir mengembalikan hasilnya pada View untuk ditampilkan ke pengguna. 

Controller berada di path directory “app/Http/Controllers”. Controller yang akan berperan pada logika aplikasi dengan berinteraksi dengan Model dan View.

Arsitektur MVC memisahkan antara logika, tampilan, serta kontroler sehingga membuat mudah dalam pemeliharaan dan pengembangan aplikasi secara menyeluruh.

Promo Hosting Murah Rumahweb

Contoh Sederhana MVC di Laravel

Selanjutnya, kita akan mempraktikan cara membuat code sederhana menggunakan konsep MVC di Laravel.

Step 1. Membuat Database di phpMyAdmin

Silakan Anda membuat database di locahost melalui PHPMyAdmin. Sebagai contoh, kami membuat database dengan nama dbrw-laraveltutorial.

membuat database laravel

Step 2. Isi Sample Data

Setelah itu, silakan inputkan script berikut dikolom SQL, untuk membuat table dan mengisi sample datanya.

import sql database laravel

Isi data berikut.

-- Membuat database
CREATE DATABASE IF NOT EXISTS sekolah;

-- Menggunakan database yang telah dibuat
USE sekolah;

-- Membuat tabel siswa
CREATE TABLE IF NOT EXISTS siswa (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100) NOT NULL,
    alamat VARCHAR(255),
    tanggal_lahir DATE
);

-- Menambahkan beberapa contoh data siswa
INSERT INTO siswa (nama, alamat, tanggal_lahir) VALUES
('Andi Pratama', 'Jl. Jogja No. 10, Jakarta', '2005-01-15'),
('Benny Santoso', 'Jl. Kuningan No. 5, Batang', '2004-11-20'),
('Cici Dewi', 'Jl. Sukajadi No. 12, Solo', '2005-05-30'),
('Dedi Permadi', 'Jl. Cempaka No. 8, Jakarta', '2004-07-25'),
('Eni Putri', 'Jl. Melati No. 7, Yogyakarta', '2005-09-10');

Step 3. Sesuaikan Config Database

Lakukan pengaturan config database di file .env.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dbrw-laraveltutorial
DB_USERNAME=root
DB_PASSWORD=

Keterangan:

  • DB_Database adalah nama database yang telah Anda buat.
  • DB_Username adalah nama user databasenya. Secara default berisi root. 
  • DB_Password  adalah password databasenya. Biasanya dilocalhost kosong

Step 4. Model

Membuat model “Siswa” yang mana model ini akan berinterakhir dengan tabel “siswa” yang ada di database. Perintah artisannya sebagai berikut.

php artisan make:model Siswa

Edit Model Siswa.php yang letak model siswa berada di direktori  “app/Models/Siswa.php”.

<?php

namespace App\Models;

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

class Siswa extends Model
{
    use HasFactory;
	
	// Nama tabel di database
    protected $table = 'siswa';

    // Kolom-kolom yang dapat diisi secara massal
    protected $fillable = ['nama', 'alamat'];

}

Step 5. Controller

Selanjutnya membuat SiswaController untuk mengambil data yang ada di Model, kemudian mengirimkannya ke View. Membuat Controller menggunakan perintah artisan berikut.

php artisan make:controller SiswaController

Letak filenya ada di app/Http/Controllers/SiswaController.php. Isi file SiswaController.php menggunakan code berikut. 

<?php

namespace App\Http\Controllers;

use App\Models\Siswa;
use Illuminate\Http\Request;

class SiswaController extends Controller
{
    public function index()
    {
        // Mengambil semua data siswa
        $siswa = Siswa::all();
        
        // Mengirim data ke view
        return view('siswa.index', ['siswa' => $siswa]);
    }
}

Step 6. View

Membuat view untuk menampilkan data Siswa, letak filenya ada di resources/views/siswa/index.blade.php. Pastikan setelah folder Views Anda membuat folder siswa. Nantinya letak file index.blade.php berada didalam folder siswa.


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Data Siswa</title>
</head>
<body>
    <h1>Data Siswa</h1>
    <table border="1">
        <thead>
            <tr>
                <th>ID</th>
                <th>Nama</th>
                <th>Alamat</th>
            </tr>
        </thead>
        <tbody>
            @foreach($siswa as $s)
                <tr>
                    <td>{{ $s->id }}</td>
                    <td>{{ $s->nama }}</td>
                    <td>{{ $s->alamat }}</td>
                </tr>
            @endforeach
        </tbody>
    </table>
</body>
</html>

Step 7. Routing

Sesuaikan Route yang berada di routes/web.php untuk mengakses controller SiswaController

use App\Http\Controllers\SiswaController;

// Route untuk menampilkan data siswa
Route::get('/siswa', [SiswaController::class, 'index']);

Step 8. Jalankan Aplikasi Laravel

Untuk menjalankan aplikasi Laravel di localhost menggunakan perintah artisan.

php artisan serve

Akses aplikasi di browser dengan URL: http://localhost:8000/siswa

contoh mvc laravel - belajar laravel bagian 3

Kesimpulan

MVC adalah singkatan dari Model, View, dan Controller, yaitu arsitektur yang digunakan untuk memisahkan logika aplikasi menjadi 3 bagian. Model bertanggung jawab atas pengelolaan data dan aturan, View mengatur tampilan antarmuka pengguna, sedangkan Controller berfungsi menghubungkan keduanya serta menangani aliran data dan logika aplikasi.

Demikian series belajar Laravel bagian 3 yang menjelaskan tentang arsitektur MVC di Laravel. Simak series lanjutan kami di artikel berikutnya.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 5 / 5. Vote count: 4

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Cloud Hosting Terbaik Rumahweb

Anggit TS

Selamat membaca, Semoga tulisan saya bermanfaat.
Bila ada salah kata, mohon maaf.

"tak ada gading yang tak retak, maafkan kesalahan keluarga Gajah". :D