Memahami Model-View-Controller (MVC)

model view controller

Arsitektur perangkat lunak menjadi sangat penting dalam dunia pengembangan web modern untuk menjamin keberlanjutan, keterbacaan, dan skalabilitas proyek. Paradigma Model-View-Controller (MVC) adalah yang paling umum karena membagi logika aplikasi menjadi tiga komponen utama yaitu Model, View, dan Controller.

MVC menjadi pondasi penting dalam pengembangan web. Termasuk dalam Laravel, yaitu salah satu framework PHP populer yang menyediakan struktur dan alat untuk mempercepat proses pengembangan dengan menjaga kode tetap terorganisir dan mudah dipelihara.

Dalam artikel ini, akan menjelaskan konsep dasar Model-View-Controller (MVC) dan bagaimana Laravel menggunakannya untuk membangun aplikasi web yang bagus dan efektif. Kami akan membahas setiap bagian MVC, memberikan penjelasan tentang fungsi masing-masing, dan menekankan bagaimana Laravel membuat implementasi MVC menjadi lebih mudah.

Apa itu Model-View-Controller (MVC)?

Konsep Model-View-Controller (MVC) membagi aplikasi web menjadi tiga komponen utama: Model, View, dan Controller. Laravel menggunakan pola ini untuk mempermudah pengembangan aplikasi web yang terstruktur dan mudah dipelihara. Mari kita bahas setiap bagian dengan lebih detail.

Model

Bertugas untuk menunjukkan struktur data aplikasi. Ini dapat berupa tabel database atau objek atau kelas PHP yang mengandung logika bisnis aplikasi. Dalam Laravel, model biasanya menampilkan tabel dalam basis data aplikasi.

Misalnya, Anda mungkin memiliki model `task` yang terhubung ke tabel `task` dalam basis data dalam aplikasi daftar `task`. Model `task` ini akan berisi metode untuk berinteraksi dengan data dalam tabel `task`, seperti membuat, membaca, memperbarui, dan menghapus `task`.

View

Bertugas menampilkan informasi kepada pengguna. Ini adalah komponen dari aplikasi yang menangani tampilan HTML yang diberikan kepada pengguna. Dalam Laravel, tampilan biasanya berupa file template Blade yang berisi markup HTML serta sintaks Blade yang memungkinkan Anda memasukkan logika PHP ke dalam tampilan.

Sebagai contoh, Anda dapat melihat aplikasi daftar tugas menampilkan daftar tugas yang harus diselesaikan, serta tombol untuk menambah atau menghapus tugas.

Controller

Berfungsi sebagai perantara antara model dan view. Ini menerima permintaan pengguna, menggunakan model untuk memproses data, dan kemudian meneruskan data ke view untuk ditampilkan. Dalam Laravel, controller biasanya berisi metode-metode yang sesuai dengan berbagai tindakan yang ingin dilakukan pengguna.

Misalnya, Anda dapat memiliki controller `TaskController` dalam aplikasi daftar tugas yang memiliki kemampuan untuk menampilkan daftar tugas, menambahkan tugas baru, menghapus tugas, dan fungsi lainnya.

Bagaimana Cara Kerja Model-View-Controller (MVC)?

Saat pengguna memulai aplikasi Laravel, permintaan dikirim ke router, yang kemudian mengirimkannya ke controller yang tepat. Selanjutnya, controller berinteraksi dengan model untuk mendapatkan atau mengubah data yang diperlukan. Setelah model berfungsi, controller mempersiapkan data untuk ditampilkan, biasanya dengan memanggil view yang sesuai. View kemudian mengambil data yang disiapkan oleh controller dan menghasilkan tampilan HTML, yang kemudian dikirim kembali ke pengguna.

Laravel memudahkan pengembangan, pemeliharaan, dan pengujian aplikasi web yang scalable dan terstruktur dengan membagi logika aplikasi Anda ke dalam tiga bagian ini.

Contoh Penggunaan Model-View-Controller (MVC)

Kami akan memberikan contoh sederhana yang dapat kami coba dalam aplikasi Laravel, misalnya kita ingin membuat aplikasi yang mudah untuk menyimpan dan menampilkan daftar kontak. Berikut adalah prosedurnya:

Membuat Model

Dengan menggunakan perintah artisan Laravel, buat model entitas “Contact“:

php artisan make:model Contact

Ini akan menghasilkan file model Contact.php yang akan ditempatkan di direktori app/Models.

Membuat Migration

Buat migrasi tabel kontak menggunakan perintah:

php artisan make:migration create_contacts_table --create=contacts

Untuk membuat skema tabel kontak, ubah file migrasi yang dibuat di database/migrations/xxxx_xx_xx_create_contacts_table.php.

Menentukan Struktur Controller

Buat controller untuk mengontrol logika aplikasi yang berkaitan dengan kontak:

php artisan make:controller ContactController

Mendefinisikan Route

Selanjutnya, tambahkan route ke aplikasi Anda di dalam file routes/web.php.

use App\Http\Controllers\ContactController;

Route::get('/contacts', [ContactController::class, 'index']);

Menulis Logika Controller

Edit kontroler yang baru dibuat (app/Http/Controllers/ContactController.php) untuk menangani permintaan dan meresponsnya:

<?php

namespace App\Http\Controllers;

use App\Models\Contact;

use Illuminate\Http\Request;

class ContactController extends Controller

{

    public function index()

    {

        $contacts = Contact::all();

        return view('contacts.index', compact('contacts'));

    }

}

Menyiapkan View

Untuk menampilkan daftar kontak, buatlah tampilan dengan membuat file index.blade.php di direktori resources/views/contacts.

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Contacts</title>

</head>

<body>

    <h1>Daftar Kontak</h1>

    <ul>

        @foreach($contacts as $contact)

            <li>{{ $contact->name }} - {{ $contact->email }}</li>

        @endforeach

    </ul>

</body>

</html>

Migrasi dan Penyediaan Database

Untuk membuat tabel kontak, lakukan migrasi:

php artisan migrate

Menjalankan Aplikasi

Setelah semua prosedur di atas selesai, Anda dapat menjalankan aplikasi Laravel dan mengakses halaman http://localhost:8000/contacts untuk melihat daftar kontak yang telah ditambahkan.

Anda telah menyelesaikan langkah-langkah tersebut dan telah menggunakan Model-View-Controller (MVC) dalam Laravel untuk membuat aplikasi sederhana. Model berinteraksi dengan data, controller mengatur logika aplikasi, dan view menampilkan data kepada pengguna.

Siap Mencoba Model-View-Controller (MVC)?

Sekarang Anda memahami Model-View-Controller (MVC) dalam Laravel. Dengan memahami fungsi masing-masing komponen, Anda dapat dengan mudah membangun aplikasi web yang kuat dan terstruktur.

Setelah memahami konsep dasar ini, pembaca diharapkan dapat mengoptimalkan penggunaan Laravel dalam proyek mereka dan membangun aplikasi yang stabil dan mudah dipelihara.

Semoga Anda berhasil!

Leave a Reply

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