Pelajari Dasar-Dasar MVC (Laravel)

Pelajari Dasar-Dasar MVC (Laravel)
27 Agustus 2024 20:20 Afan 245x
MVC php laravel tips

Dasar-Dasar MVC: Panduan Singkat untuk Pemula

MVC, atau Model-View-Controller, adalah arsitektur perangkat lunak yang digunakan untuk memisahkan logika aplikasi ke dalam tiga komponen utama: Model, View, dan Controller. Arsitektur ini banyak digunakan dalam pengembangan aplikasi web, termasuk di framework seperti Laravel. Berikut adalah penjelasan dasar tentang masing-masing komponen dalam MVC:


    • Model (M)

Model bertanggung jawab atas logika data dan interaksi dengan database. Model merepresentasikan data yang digunakan oleh aplikasi, dan semua operasi terkait data (seperti mengambil, menyimpan, memperbarui, dan menghapus data) dilakukan melalui model.

Contoh: Misalkan kita memiliki aplikasi yang mengelola data pengguna. Model User akan mengatur semua interaksi dengan tabel users di database.

php
// Contoh model di Laravel
class User extends Model {
    protected $table = 'users';
}

Fungsi Utama Model:

  • Menangani operasi database.
  • Menyimpan dan memvalidasi data.
  • Menyediakan logika bisnis utama.
    • View (V)

View bertanggung jawab atas tampilan atau user interface (UI) dari aplikasi. View adalah bagian dari aplikasi yang dilihat dan berinteraksi dengan pengguna. Dalam konteks web, view biasanya berupa file HTML/CSS yang ditingkatkan dengan kode seperti Blade (di Laravel) atau PHP.

Contoh: Jika kita ingin menampilkan daftar pengguna, view akan mengatur tampilan halaman tersebut.

blade
<!-- Contoh view di Laravel (Blade template) -->
<h1>Daftar Pengguna</h1>
<ul>
    @foreach ($users as $user)
        <li>{{ $user->name }}</li>
    @endforeach
</ul>

Fungsi Utama View:

  • Menampilkan data kepada pengguna.
  • Mengatur tampilan UI.
  • Mengambil input dari pengguna.
    • Controller (C)

Controller adalah penghubung antara Model dan View. Controller menerima input dari pengguna melalui View, memprosesnya (dengan menggunakan Model), dan menentukan View mana yang akan ditampilkan. Controller mengendalikan alur aplikasi dan logika yang mengatur interaksi antara model dan view.

Contoh: Misalkan kita ingin menampilkan daftar semua pengguna. Controller akan mengambil data dari Model User dan meneruskannya ke View untuk ditampilkan.

php
// Contoh controller di Laravel
class UserController extends Controller {
    public function index() {
        $users = User::all(); // Mengambil semua pengguna dari database
        return view('user.index', ['users' => $users]); // Mengirim data ke view
    }
}

Fungsi Utama Controller:

  • Mengatur alur kerja aplikasi.
  • Mengambil data dari model dan mengirimkannya ke view.
  • Menangani permintaan (request) dari pengguna.

  • Cara Kerja MVC
  1. Pengguna mengirim permintaan (Request): Pengguna berinteraksi dengan aplikasi (misalnya, mengklik tautan atau mengisi formulir). Permintaan ini dikirim ke Controller.

  2. Controller memproses permintaan: Controller menerima permintaan, memprosesnya, dan mungkin berinteraksi dengan Model untuk mendapatkan data.

  3. Model mengelola data: Model mengambil data dari database atau sumber lain dan mengirimkannya kembali ke Controller.

  4. Controller memilih View: Setelah mendapatkan data, Controller menentukan View mana yang akan digunakan dan mengirimkan data tersebut ke View.

  5. View menampilkan data: View menerima data dari Controller dan menampilkannya kepada pengguna sebagai halaman web atau UI lain.


  • Manfaat MVC
  • Pemeliharaan yang Mudah: Memisahkan logika aplikasi, tampilan, dan data memudahkan pemeliharaan dan pengembangan aplikasi.
  • Skalabilitas: MVC memungkinkan pengembangan bagian aplikasi secara terpisah, sehingga lebih mudah untuk menambah fitur baru atau memperbaiki bug.
  • Organisasi Kode yang Baik: Kode yang terstruktur dengan baik membuatnya lebih mudah dipahami dan dikelola oleh tim pengembang.

Dengan memahami dasar-dasar MVC, kamu akan lebih siap untuk bekerja dengan framework seperti Laravel, yang menggunakan arsitektur ini sebagai landasan untuk mengembangkan aplikasi web yang modular dan terstruktur.