Mengenal Konsep MVC (Model-View-Controller) di Laravel

28 Februari 2025
  ·  

3 menit  ·  

MVC adalah singkatan dari Model — View — Controller, pola desain arsitektur yang membagi kode aplikasi menjadi tiga komponen utama: Model, View, dan Controller.

Tujuan utama dari desain arsitektur ini adalah memisahkan logika bisnis, tampilan, dan kontrol alur aplikasi. Dengan demikian, kode menjadi lebih terstruktur, mudah dikelola, dan scalable.

Pada artikel ini, kita akan membahas masing-masing komponen MVC serta implementasinya dalam Laravel.

Model

Model adalah representasi dari data yang disimpan di database—misalnya data artikel.

Laravel menyertakan Eloquent, yaitu ORM (Object Relational Mapper) yang memudahkan kita berinteraksi dengan database layaknya berinteraksi dengan objek.

Setiap tabel di database umumnya memiliki sebuah “Model” sebagai jembatan interaksi. Melalui Model, kita bisa melakukan operasi database seperti read, insert, update, dan delete data.

Contoh Model dalam Laravel
📄 app/Models/Article.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    // ...
}

View

View bertugas menampilkan data kepada user—misalnya halaman daftar artikel yang dibuat menggunakan HTML, CSS, dan JavaScript.

Laravel menyertakan templating engine berupa Blade yang memudahkan kita mengelola tampilan dengan sederhana namun powerful.

Contoh View dalam Laravel (disederhanakan)
📄 resources/views/greeting.blade.php

<html>
    <body>
        <h1>Hello, {{ $name }}</h1>
    </body>
</html>

View ini dipanggil melalui Route sebagai berikut:

📄 routes/web.php

Route::get('/', function () {
    return view('greeting', ['name' => 'James']);
});

Pada contoh di atas, kita mengirimkan data berupa variabel $name ke dalam View greeting.blade.php. Kemudian, View di-render dan menampilkan output berupa HTML bertuliskan “Hello, James”.

Kita juga bisa menggunakan View Routes seperti berikut:

Route::view('/', 'greeting', ['name' => 'James']);

Untuk informasi lebih lanjut, silakan merujuk pada dokumentasi Laravel: View Routes.

Controller

Controller berperan layaknya polisi lalu lintas yang mengatur alur aplikasi. Tugasnya antara lain:

  • Menerima request dari interface (misalnya HTTP request melalui browser).
  • Memvalidasi input dari user.
  • Mengambil data dari database melalui Model.
  • Menyusun data yang akan dikirim ke View.
  • Mengirimkan response kembali kepada user.

Dengan kata lain, Controller menjadi penghubung antara request dan response. Controller mengendalikan bagaimana suatu aplikasi merespon request yang diterima.

Contoh Controller dalam Laravel
📄 app/Http/Controllers/ArticleController.php

<?php

namespace App\Http\Controllers;

use App\Models\Article;
use Illuminate\Http\Request;
use Illuminate\View\View;

class ArticleController extends Controller
{
    // Menampilkan daftar artikel
    public function index(Request $request): View
    {
        return view('articles.index', [
            'articles' => Article::all(),
        ]);
    }
}

Pada contoh di atas:

  • Controller menerima request dari user.
  • Controller mengambil data dari database melalui Model Article.
  • Controller menyusun data yang akan dikirim ke View articles/index.blade.php.
  • Controller mengirimkan response (berupa view) kembali kepada user.

Bagaimana MVC Bekerja dalam Laravel?

Agar lebih jelas, mari kita lihat bagaimana MVC berinteraksi dalam Laravel.


Alur Kerja MVC dapat digambarkan seperti berikut:

  1. User mengakses URL atau melakukan HTTP request melalui browser. Contohnya, http://localhost/articles.
  2. Router mengarahkan request ke Controller. Contohnya, Route berikut mengakses method index pada ArticleController:
    Route::get('/articles', [ArticleController::class, 'index']);
    
    (Penjelasan mengenai Route akan dibahas nanti)
  3. Controller menerima dan memproses request, mengambil data dari database melalui Model.
  4. Controller menyusun data yang akan dikirim ke View, melakukan render dan menghasilkan output berupa HTML.
  5. User melihat response (berupa view) yang dihasilkan. Contohnya, halaman Daftar Artikel.


Konsep MVC adalah fondasi penting dalam pengembangan aplikasi modern, terutama dalam framework seperti Laravel. Dengan memahami pembagian tanggung jawab antara Model, View, dan Controller, kita bisa membangun aplikasi yang lebih bersih dan mudah dikembangkan.

Gimana? Sekarang sudah lebih paham dengan konsep MVC, kan? Seiring kita praktik secara langsung, konsep MVC ini akan semakin mudah melekat pada kita.

Selanjutnya, kita akan membuat Model, komponen pertama dari MVC.
Yuk, kita lanjut ke langkah berikutnya! 🚀

Mengenal Konsep MVC (Model-View-Controller) di Laravel
Top