Pengertian, Penjelasan Lengkap Tentang MVC di Laravel

paket web master komplit

MVC (Model–View–Controller) adalah pola arsitektur (design pattern) yang memisahkan aplikasi menjadi tiga bagian utama agar kode lebih rapi, terstruktur, dan mudah dikembangkan.

Di Laravel, konsep MVC adalah pondasi utama dalam membangun aplikasi web.


Tujuan Penggunaan MVC

MVC digunakan untuk:

  • ✅ Memisahkan logika program dan tampilan
  • ✅ Kode lebih mudah dipahami & dirawat
  • ✅ Memudahkan kerja tim (backend & frontend)
  • ✅ Mempercepat pengembangan aplikasi
  • ✅ Mengurangi error dan duplikasi kode

Struktur MVC di Laravel

Secara umum, Laravel membagi MVC seperti ini:

app/
 └── Models/        → Model
app/
 └── Http/
     └── Controllers/ → Controller
resources/
 └── views/         → View

Model (M) – Pengelolaan Data

Pengertian Model

Model bertugas untuk:

  • Mengelola data
  • Berkomunikasi dengan database
  • Menyimpan logika bisnis (business logic)

Di Laravel, Model biasanya menggunakan Eloquent ORM.

Lokasi Model

app/Models

Contoh Model

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Mahasiswa extends Model
{
    protected $table = 'mahasiswa';
    protected $fillable = ['nama', 'nim', 'jurusan'];
}

Tugas Model:

  • Insert data
  • Update data
  • Delete data
  • Ambil data dari database

View (V) – Tampilan User

Pengertian View

View bertugas menampilkan data ke pengguna (user interface).

Laravel menggunakan Blade Template Engine.

Lokasi View

resources/views

Contoh View (mahasiswa.blade.php)

<!DOCTYPE html>
<html>
<head>
    <title>Data Mahasiswa</title>
</head>
<body>
    <h1>Daftar Mahasiswa</h1>

    <ul>
        @foreach($mahasiswa as $mhs)
            <li>{{ $mhs->nama }} - {{ $mhs->nim }}</li>
        @endforeach
    </ul>
</body>
</html>

View tidak boleh mengolah data berat, hanya menampilkan.


Controller (C) – Penghubung Model & View

Pengertian Controller

Controller adalah:

  • Pengatur alur aplikasi
  • Penghubung antara Model dan View
  • Tempat logika aplikasi (request → proses → response)

Lokasi Controller

app/Http/Controllers

Contoh Controller

<?php

namespace App\Http\Controllers;

use App\Models\Mahasiswa;

class MahasiswaController extends Controller
{
    public function index()
    {
        $mahasiswa = Mahasiswa::all();
        return view('mahasiswa', compact('mahasiswa'));
    }
}

Controller:

  • Mengambil data dari Model
  • Mengirim data ke View

Alur Kerja MVC di Laravel

Flow MVC

  1. User mengakses URL
  2. Route memanggil Controller
  3. Controller memanggil Model
  4. Model mengambil data dari database
  5. Controller mengirim data ke View
  6. View menampilkan data ke user

Diagram Sederhana

User
 ↓
Route
 ↓
Controller
 ↓
Model → Database
 ↓
Controller
 ↓
View
 ↓
User

Contoh Lengkap Alur MVC

Route (web.php)

Route::get('/mahasiswa', [MahasiswaController::class, 'index']);

Controller

public function index()
{
    $mahasiswa = Mahasiswa::all();
    return view('mahasiswa', compact('mahasiswa'));
}

Model

$mahasiswa = Mahasiswa::all();

View

@foreach($mahasiswa as $mhs)
    {{ $mhs->nama }}
@endforeach

Keuntungan MVC di Laravel

AspekPenjelasan
StrukturKode lebih rapi
MaintenanceMudah diperbaiki
ScalabilityMudah dikembangkan
ReusabilityKode bisa dipakai ulang
KolaborasiTim lebih efisien

Kesimpulan

MVC di Laravel memisahkan data (Model), tampilan (View), dan proses (Controller) agar aplikasi lebih rapi, terstruktur, dan mudah dikembangkan.

Leave a Reply

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