Pemanfaatan Konsep MVC pada Framework Laravel

Dalam dunia pengembangan aplikasi web, konsep MVC (Model-View-Controller) telah menjadi fondasi yang kuat untuk sebuah pembuatan aplikasi. Biasanya, aplikasi dikerjakan oleh dua sosok dibalik proses pembuatan yaitu Front-end dan Back-end. Programmer Back-end pada umumnya adalah orang yang melakukan pemrograman logika aplikasi agar berjalan dengan dinamis. Sedangkan programmer Front-end merupakan orang yang mengubah desain antarmuka ke dalam pemrograman.

MVCFrameworkLaravel_BuildWithAngga

Dengan adanya konsep MVC ini proses penyatuan antara Front-end dan Back-end dapat dipermudah dan juga efisien. Pada artikel ini kita akan membahas 3 bagian dari MVC yakni, Model, View, Controller. Mari kita pelajari bagaimana konsep MVC ini bekerja dalam Framework Laravel.

Model

Seperti yang dijelaskan pada gambar sebelumnya Model dapat direpresentasikan sebagai sebuah Data. Dalam MVC, Model merupakan bagian yang bertanggung jawab yang mengelola data aplikasi. Model juga berperan sebagai perantara antara Controller dan View serta aplikasi dan sumber data. Dalam Laravel sendiri menyediakan cara yang elegan untuk melakukan interaksi dengan database dengan kelas Eloquent. Sebagai contoh, jika kita memiliki tabel User dengan kolom, id, nama, email, dan password, kita dapat membuat model User yang mewarisi properti yang sesuai dengan kolom tabel User. Dalam model ini juga kita dapat melakukan operasi CRUD (create, read, update, delete) pada data User. Secara default, model disimpan di folder app/Models.

Ada beberapa keuntungan yang kita dapatkan dalam penggunaan Model dalam MVC :

  • Memisahkan logika pengelolaan data dari tampilan dengan ini kita dapat meningkatkan fleksibilitas dan modularitas dalam pengembangan aplikasi.
  • Memudahkan kita dalam melakukan testing untuk memastikan kualitas dan keakuratan data.
<?php
 
namespace App\\Models;
 
use Illuminate\\Database\\Eloquent\\Model;
 
class Flight extends Model
{
    // ...
}

View

View secara sederhana dapat diartikan sebagai tampilan dari aplikasi, atau secara singkat bentuk representasi desain antarmuka setelah tahap coding. Secara default, model disimpan di folder resources/views. Dalam Laravel kita dapat melakukan Layouting pada tampilan aplikasi menjadi 3 bagian yakni:

  • Layouts sebagai struktur tata letak tampilan. Layouts berisi elemen-elemen yang umum digunakan di semua halaman, seperti header, footer, sidebar, dan lain-lain. Layouts dapat dianggap sebagai kerangka dari tampilan aplikasi.
  • Content sebagai isi dari tampilan. Content berisi elemen-elemen yang spesifik untuk setiap halaman, seperti judul, konten, form, dan lain-lain. Content dapat dianggap sebagai daging dari tampilan aplikasi.
  • Components sebagai komponen pendukung tampilan. Components berisi elemen-elemen yang dapat digunakan berulang-ulang di berbagai halaman, seperti buttons, input field, dropdown button, dan text. Components dapat dianggap sebagai bumbu dari tampilan aplikasi.
<!-- resources/views/child.blade.php -->
 
@extends('layouts.app')
 
@section('title', 'Page Title')
 
@section('sidebar')
    @parent
 
    <p>This is appended to the master sidebar.</p>
@endsection
 
@section('content')
    <p>This is my body content.</p>
@endsection

Dengan ini kita mendapatkan beberapa keuntungan dan juga manfaat dalam proses pengembangan seperti:

  • Memudahkan Maintenance: kita dapat memperbaiki atau mengubah layouts dan components yang ada di satu halaman, dan perubahan itu juga akan berlaku di semua halaman yang menggunakan layouts dan components tersebut. Hal ini dapat memungkinkan kita mengurangi kesalahan atau ketidak konsistenan dalam tampilan aplikasi.
  • Meningkatkan Kualitas: kita dapat memastikan bahwa tampilan memiliki standar yang sesuai dengan keinginan kita. Hal ini dapat meningkatkan kepuasan dan pengalaman pengguna aplikasi kita.

Controller

Setelah kita sudah mendapatkan data dan juga tampilan yang kita butuhkan, dalam sebuah aplikasi memerlukan otak yang dapat mengelola logika dari aplikasi. Controller adalah salah satu bagian utama dalam konsep Model-View-Controller (MVC) yang digunakan oleh Laravel. Controller dapat mengatur bagaimana data diproses dan ditampilkan, serta menangani permintaan yang datang dari pengguna. Controller juga dapat menghubungkan desain antarmuka yang kita buat dalam view dengan data yang kita butuhkan dalam model. Dengan menggunakan controller, kita dapat mengelola logika aplikasi kita menjadi kelas-kelas yang terpisah dan rapi. Misalnya, kita dapat membuat kelas UserController yang menangani semua permintaan yang berkaitan dengan pengguna, seperti menampilkan, membuat, mengubah, dan menghapus pengguna. Secara default, controller disimpan di folder app/Http/Controllers.

<?php
 
namespace App\\Http\\Controllers;
 
use App\\Models\\User;
use Illuminate\\View\\View;
 
class UserController extends Controller
{
    /**
     * Show the profile for a given user.
     */
    public function show(string $id): View
    {
        return view('user.profile', [
            'user' => User::findOrFail($id)
        ]);
    }
}

Kesimpulan

Dalam artikel ini, kita telah mempelajari bagaimana MVC (Model-View-Controller) menjadi landasan kuat dalam pembuatan suatu aplikasi terutama dalam Framework Laravel kita dimudahkan dengan adanya CLI sebagai aplikasi pendukung untuk membuat pondasi aplikasi dengan konsep MVC ini. Penggunaan MVC dalam pengembangan aplikasi juga dapat meningkatkan Reusability dimana penggunaan kembali komponen yang kita perlukan agar tidak terjadi pengulangan dalam penulisan. Hal ini juga yang memungkinkan kita untuk menghemat waktu dan tenaga dalam tahap pengembangan aplikasi. Jangan lupa untuk terus eksplorasi fitur fitur laravel yang mendukung konsep MVC!

Kamu juga bisa mengikuti Kelas Online Full-Stack Web Developer: Bangun Website Freelancer | BuildWithAngga untuk implementasi MVC secara langsung kedalam sebuah project atau kamu bisa mengikuti Kelas Online PHP Laravel Web Development | BuildWithAngga untuk mempelajari dasar dari Laravel.