Apa Itu MVC? Cara Developer Sebenar Guna MVC Untuk Elak Code Jadi Sampah
Published:
Updated:
MVC bukan untuk nampak “professional”.
MVC wujud sebab projek sebenar cepat jadi huru-hara kalau semua benda campur.
Kalau anda pernah coding:
-
file PHP 3,000 baris
-
logic bercampur dengan HTML
-
takut nak sentuh code lama sebab “nanti rosak”
👉 anda sebenarnya perlukan MVC, bukan framework baru.
MVC Dalam Ayat Paling Jujur
MVC = cara asingkan kerja supaya otak manusia tak terbakar.
-
Model → urus data
-
View → paparkan data
-
Controller → buat keputusan & kawal aliran
Itu sahaja. Tak lebih.
Masalah Tanpa MVC (Real Case)
Bayangkan satu file:
<?php
$conn = mysqli_connect(...);
$data = mysqli_query(...);
if($_POST['submit']) {
// process logic
}
?>
<html>
<table>...</table>
</html>
Nampak ok masa code kecil.
Bila bisnes mula ada:
-
banyak user
-
banyak role
-
banyak flow
File ni akan jadi:
-
susah debug
-
susah tambah feature
-
susah delegate kerja
MVC wujud untuk hentikan benda ni dari awal.
Model: Bukan “Database”, Tapi Logik Data
Ramai salah faham:
“Model = database”
❌ salah separuh.
Model = cara data diurus & difahami oleh sistem.
Contoh:
-
validasi data
-
kiraan
-
relationship
-
rule bisnes
User::create($data);
Order::calculateTotal();
Model jawab soalan:
“Data ni sah ke?”
“Macam mana data ni patut diproses?”
View: Paparan, Bukan Berfikir
View tak patut buat keputusan.
Tugas dia:
-
paparkan data
-
susun layout
-
jaga UI
<h1>{{ $user->name }}</h1>
Kalau anda buat ni dalam view:
if($user->role == 'admin') { ... }
👉 anda dah bocorkan logic ke View (ada bau code busuk).
Controller: Otak Tengah
Controller ialah:
-
terima request
-
panggil Model
-
hantar data ke View
public function store(Request $request) {
$user = User::create($request->all());
return view('user.success', compact('user'));
}
Controller tak simpan data, tak paparkan HTML.
Dia cuma jalankan koordinasi.
MVC Bukan Tentang Framework
Laravel, CodeIgniter, Rails semua pakai MVC.
Tapi MVC lebih penting dari framework.
Anda boleh:
-
guna MVC tanpa framework
-
tapi framework tanpa faham MVC = copy paste tanpa faham
MVC ialah cara berfikir, bukan folder structure.
Bila MVC Betul-Betul Berbaloi?
MVC sangat berbaloi bila:
-
projek hidup lama
-
feature akan bertambah
-
team lebih dari seorang
-
bisnes mungkin pivot
Kalau landing page statik?
❌ overkill.
Kalau sistem dalaman, order, agent, staff?
✅ wajib.
Kesilapan Biasa Bila Belajar MVC
-
Hafal definisi, tapi tak faham flow
-
Letak semua logic dalam Controller
-
Jadikan Model cuma wrapper database
-
Letak condition dalam View
MVC rosak bukan sebab konsep.
Rosak sebab cara guna.
Ringkas Tapi Penting
MVC bukan untuk cantik.
MVC untuk:
-
kurangkan stress masa debug
-
mudahkan scale
-
selamatkan projek jangka panjang
Kalau code anda makin besar,
dan anda mula takut nak ubah apa-apa…
👉 itu tanda anda perlukan MVC dengan betul, bukan sekadar tahu maksudnya.