Artikel ini menjelaskan dasar Laravel: struktur folder dan arsitektur MVC, routing dasar (GET, POST, parameter), serta cara membuat Controller dan View sederhana dengan contoh kode yang bisa langsung dicoba di proyek Laravel kamu.
Struktur Folder dan Arsitektur MVC
Laravel punya struktur yang konsisten:
- app/ (kode utama)
- routes/ (definisi rute)
- resources/views/ (Blade view)
- public/ (entry point)
- config/
- database/
- storage/
- vendor/
Struktur ini membantu memisahkan tanggung jawab sehingga aplikasi lebih mudah dipelihara.
Penjelasan singkat MVC
Model : Mewakili data dan logika bisnis (folder app/Models/).
View: tampilan HTML/Blade di resources/views/.
Controller: penghubung antara route, model, dan view (folder app/Http/Controllers/).
Alur: request → route → controller → model (opsional) → view → response.
Routing Dasar
File utama: routes/web.php. Contoh rute GET, POST, dan parameter:
// routes/web.php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Route::get('/halo', function () {
return 'Halo dari Laravel!';
});
Route::post('/submit', [App\Http\Controllers\FormController::class, 'submit']);
Route::get('/user/{id}', function ($id) {
return 'User ID: '.$id;
});
GET untuk mengambil data/tampilan.
POST untuk mengirim data (form).
Parameter ditangkap dengan {nama} dan tersedia di closure atau controller.
Controller dan View Sederhana
Buat controller lewat Artisan atau manual. Contoh controller sederhana:
// app/Http/Controllers/HaloController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HaloController extends Controller
{
public function index()
{
$message = 'Halo dari HaloController';
return view('halo.index', compact('message'));
}
public function store(Request $request)
{
$data = $request->all();
// Simpan atau proses data
return redirect('/')->with('status', 'Data diterima');
}
}
Daftarkan route ke controller:
// routes/web.php
Route::get('/halo', [App\Http\Controllers\HaloController::class, 'index']);
Route::post('/halo', [App\Http\Controllers\HaloController::class, 'store']);
Contoh view Blade sederhana:
Buat controller lewat Artisan atau manual. Contoh controller sederhana:// app/Http/Controllers/HaloController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HaloController extends Controller
{
public function index()
{
$message = 'Halo dari HaloController';
return view('halo.index', compact('message'));
}
public function store(Request $request)
{
$data = $request->all();
// Simpan atau proses data
return redirect('/')->with('status', 'Data diterima');
}
}
Catatan penting: selalu gunakan @csrf pada form POST untuk keamanan.
Tips Praktis
Jalankan server lokal: php artisan serve
Letakkan logika database di Model atau Service, bukan di Controller. Gunakan php artisan make:controller NamaController --resource untuk scaffold resource controller.