Routing, Controller, dan Model di Laravel 13
Pada artikel ini kita akan mempelajari ketiganya secara bertahap beserta contoh implementasinya di Laravel 13.
Apa itu MVC?
MVC adalah pola arsitektur yang memisahkan aplikasi menjadi tiga bagian.
- Model → Mengelola data dan database.
- View → Menampilkan halaman kepada pengguna.
- Controller → Menghubungkan Model dan View.
Alur kerjanya sebagai berikut:
Browser
│
▼
Route
│
▼
Controller
│
▼
Model
│
Database
│
▼
Controller
│
▼
View
│
▼
Browser
Mengenal Routing Laravel
Routing adalah proses menentukan URL mana yang akan dijalankan oleh Laravel.
File routing web berada pada:
routes/web.php
Sedangkan API berada pada:
routes/api.php
Membuat Route Sederhana
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return "Selamat Datang di Laravel 13";
});
Ketika browser membuka:
http://localhost:8000
Maka akan tampil:
Selamat Datang di Laravel 13
Jenis HTTP Method
| Method | Fungsi |
|---|---|
| GET | Menampilkan data |
| POST | Menyimpan data |
| PUT | Mengubah seluruh data |
| PATCH | Mengubah sebagian data |
| DELETE | Menghapus data |
Route::post('/simpan', function () {
return "Data disimpan";
});
Route dengan Parameter
Route::get('/user/{id}', function ($id) {
return "ID User : ".$id;
});
URL
/user/10
Output
ID User : 10
Multiple Parameter
Route::get('/produk/{kategori}/{id}', function ($kategori,$id){
return $kategori." ".$id;
});
Parameter Optional
Route::get('/profile/{nama?}', function($nama="Guest"){
return $nama;
});
Jika URL:
/profile
Output:
Guest
Jika:
/profile/Budi
Output:
Budi
Named Route
Route::get('/dashboard', function(){
return "Dashboard";
})->name('dashboard');
Pemanggilan:
route('dashboard');
Route Group
Route::prefix('admin')->group(function(){
Route::get('/guru', function(){
return "Data Guru";
});
Route::get('/siswa', function(){
return "Data Siswa";
});
});
Route Resource
Route::resource('produk', ProdukController::class);
| URL | Method | Fungsi |
|---|---|---|
| /produk | GET | index |
| /produk/create | GET | create |
| /produk | POST | store |
| /produk/{id} | GET | show |
| /produk/{id}/edit | GET | edit |
| /produk/{id} | PUT | update |
| /produk/{id} | DELETE | destroy |
Mengenal Controller
Controller adalah tempat menyimpan logika aplikasi sehingga file routing tetap bersih dan mudah dipelihara.
Membuat Controller
php artisan make:controller ProdukController
File akan dibuat pada:
app/Http/Controllers/ProdukController.php
Struktur Controller
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ProdukController extends Controller
{
public function index()
{
return "Daftar Produk";
}
}
Memanggil Controller
use App\Http\Controllers\ProdukController;
Route::get('/produk',[ProdukController::class,'index']);
Mengirim Data ke View
public function index()
{
$judul = "Belajar Laravel";
return view('produk', compact('judul'));
}
View:
<h1>{{ $judul }}</h1>
Menggunakan Request
public function store(Request $request)
{
$nama = $request->nama;
return $nama;
}
Redirect
return redirect('/dashboard');
atau
return redirect()->route('dashboard');
Controller Resource
php artisan make:controller ProdukController --resource
Method yang otomatis dibuat:
- index()
- create()
- store()
- show()
- edit()
- update()
- destroy()
Mengenal Model
Model bertugas berkomunikasi dengan database menggunakan Eloquent ORM.
Membuat Model
php artisan make:model Produk
File:
app/Models/Produk.php
Membuat Model Sekaligus Migration
php artisan make:model Produk -m
atau
php artisan make:model Produk -mfsc
Struktur Model
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Produk extends Model
{
}
Menentukan Nama Tabel
protected $table = "barang";
Primary Key
protected $primaryKey = "id_produk";
Fillable
protected $fillable = [
'nama',
'harga',
'stok'
];
Operasi Dasar Eloquent
Mengambil Semua Data
$produk = Produk::all();
Mengambil Berdasarkan ID
$produk = Produk::find(5);
Menambahkan Data
Produk::create([
'nama'=>'Laptop',
'harga'=>8000000,
'stok'=>10
]);
Mengubah Data
$produk = Produk::find(1);
$produk->harga = 9000000;
$produk->save();
Menghapus Data
$produk = Produk::find(1);
$produk->delete();
Menggunakan Model di Controller
use App\Models\Produk;
public function index()
{
$produk = Produk::all();
return view('produk.index', compact('produk'));
}
Alur Kerja Routing, Controller, dan Model
- Pengguna membuka URL /produk.
- Route menerima request.
- Controller menjalankan logika aplikasi.
- Model mengambil data dari database.
- Controller menerima data.
- Data dikirim ke View.
- View ditampilkan ke browser.
Browser
│
▼
Route (/produk)
│
▼
ProdukController@index
│
▼
Produk::all()
│
▼
Database
│
▼
View
│
▼
Browser
Tips Belajar Laravel
- Gunakan Route hanya untuk mengarahkan URL.
- Simpan logika aplikasi di Controller.
- Gunakan Eloquent ORM untuk mengakses database.
- Manfaatkan Resource Controller untuk CRUD.
- Gunakan Named Route agar URL mudah dikelola.
Kesimpulan
Routing, Controller, dan Model merupakan fondasi utama dalam Laravel 13. Routing bertugas menerima request dari pengguna, Controller menjalankan logika aplikasi, sedangkan Model mengelola komunikasi dengan database menggunakan Eloquent ORM. Dengan memahami ketiga komponen ini, Anda dapat membangun aplikasi Laravel yang lebih rapi, mudah dipelihara, dan siap dikembangkan menjadi aplikasi berskala besar.
0Komentar