Laravel merupakan salah satu framework PHP yang banyak digunakan untuk membangun aplikasi web modern. Dengan berbagai fitur bawaan dan struktur kode yang terorganisasi, Laravel dapat membantu developer mengembangkan aplikasi tanpa harus membuat semua fungsi dari awal.
Bagi mahasiswa maupun web developer pemula, mempelajari Laravel bisa menjadi langkah yang baik untuk memahami pengembangan aplikasi web menggunakan PHP.
Pada tutorial kali ini, kita akan belajar Laravel 13 mulai dari proses instalasi, konfigurasi database MySQL, hingga membuat aplikasi CRUD (Create, Read, Update, Delete) sederhana.
Sebagai contoh, kita akan membuat Aplikasi Data Mahasiswa yang memiliki fitur untuk menampilkan, menambahkan, mengedit, dan menghapus data mahasiswa.
1. Persiapan Sebelum Menginstal Laravel 13
Sebelum mulai membuat aplikasi, ada beberapa perangkat lunak yang perlu disiapkan. Pastikan komputer sudah memiliki:
- PHP 8.3 atau lebih baru sebagai bahasa pemrograman utama.
- Composer untuk mengelola dependency atau library PHP.
- MySQL sebagai database aplikasi.
- Visual Studio Code atau editor kode lainnya.
- Terminal atau Command Prompt untuk menjalankan perintah Laravel.
Jika menggunakan Windows, kamu bisa memanfaatkan XAMPP untuk menyediakan PHP dan MySQL dalam satu paket. Namun, pastikan versi PHP yang digunakan memenuhi persyaratan Laravel 13.
Untuk memeriksa versi PHP, buka terminal kemudian jalankan:
php -v
Selanjutnya, periksa Composer:
composer -V
Jika keduanya sudah terpasang, kita bisa melanjutkan ke tahap instalasi Laravel.
2. Cara Menginstal Laravel 13
Laravel dapat diinstal menggunakan Composer. Buka terminal atau Command Prompt, kemudian jalankan perintah berikut:
composer create-project laravel/laravel crud-mahasiswa "^13.0"
Perintah tersebut akan membuat proyek Laravel 13 dengan nama folder crud-mahasiswa.
Setelah proses instalasi selesai, masuk ke folder proyek:
cd crud-mahasiswa
Kemudian jalankan server pengembangan Laravel:
php artisan serve
Jika berhasil, terminal akan menampilkan alamat lokal seperti:
http://127.0.0.1:8000
Buka alamat tersebut melalui browser. Jika halaman awal Laravel muncul, berarti instalasi berhasil dilakukan.
3. Membuat Database MySQL
Selanjutnya, kita akan membuat database untuk menyimpan data mahasiswa. Buka phpMyAdmin melalui browser, kemudian buat database baru dengan nama:
db_mahasiswa
Setelah database berhasil dibuat, buka file .env yang berada di folder utama proyek Laravel. Cari bagian konfigurasi database, kemudian sesuaikan seperti berikut:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_mahasiswa
DB_USERNAME=root
DB_PASSWORD=
Sesuaikan username dan password dengan konfigurasi MySQL yang digunakan pada komputer masing-masing. Dengan konfigurasi tersebut, Laravel akan menggunakan MySQL sebagai tempat penyimpanan data aplikasi.
4. Membuat Model, Migration, dan Controller
Dalam Laravel, terdapat beberapa komponen penting yang akan digunakan untuk mengelola data, yaitu:
- Model: Menghubungkan aplikasi dengan tabel database.
- Migration: Mengatur struktur tabel database.
- Controller: Mengatur proses dan logika aplikasi.
Kita dapat membuat ketiganya sekaligus menggunakan perintah Artisan berikut:
php artisan make:model Mahasiswa -mcr
Perintah tersebut akan menghasilkan beberapa file, yaitu:
app/Models/Mahasiswa.phpdatabase/migrations/..._create_mahasiswas_table.phpapp/Http/Controllers/MahasiswaController.php
Membuat struktur tabel mahasiswa
Buka file migration yang baru dibuat di dalam folder database/migrations. Kemudian sesuaikan isinya menjadi:
public function up(): void
{
Schema::create('mahasiswas', function (Blueprint $table) {
$table->id();
$table->string('nim')->unique();
$table->string('nama');
$table->string('prodi');
$table->string('email')->nullable();
$table->timestamps();
});
}
Pada contoh tersebut, tabel mahasiswas memiliki beberapa kolom:
id: ID unik setiap mahasiswa.nim: Nomor Induk Mahasiswa.nama: Nama mahasiswa.prodi: Program studi.email: Alamat email mahasiswa.created_atdanupdated_at: Waktu pembuatan dan perubahan data.
Setelah selesai, jalankan migration:
php artisan migrate
Jika tidak ada kesalahan, tabel mahasiswas akan otomatis dibuat di database MySQL.
5. Mengatur Model Mahasiswa
Selanjutnya, buka file:
app/Models/Mahasiswa.php
Tambahkan konfigurasi $fillable seperti berikut:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Mahasiswa extends Model
{
protected $fillable = [
'nim',
'nama',
'prodi',
'email'
];
}
Properti $fillable digunakan untuk menentukan kolom yang boleh diisi melalui proses mass assignment. Dengan begitu, Laravel dapat mengetahui data apa saja yang diperbolehkan ketika proses penyimpanan atau pembaruan dilakukan menggunakan Eloquent.
6. Membuat Controller untuk CRUD
Controller bertugas mengatur proses pengelolaan data mahasiswa, mulai dari menampilkan data hingga menghapusnya.
Buka file:
app/Http/Controllers/MahasiswaController.php
Kemudian tambahkan kode berikut:
<?php
namespace AppHttpControllers;
use AppModelsMahasiswa;
use IlluminateHttpRequest;
class MahasiswaController extends Controller
{
// Menampilkan seluruh data mahasiswa
public function index()
{
$mahasiswas = Mahasiswa::latest()->get();
return view('mahasiswa.index', compact('mahasiswas'));
}
// Menampilkan form tambah data
public function create()
{
return view('mahasiswa.create');
}
// Menyimpan data mahasiswa
public function store(Request $request)
{
$request->validate([
'nim' => 'required|unique:mahasiswas,nim',
'nama' => 'required',
'prodi' => 'required',
'email' => 'nullable|email'
]);
Mahasiswa::create($request->only(
'nim', 'nama', 'prodi', 'email'
));
return redirect()->route('mahasiswa.index')
->with('success', 'Data mahasiswa berhasil ditambahkan.');
}
// Menampilkan form edit
public function edit(Mahasiswa $mahasiswa)
{
return view('mahasiswa.edit', compact('mahasiswa'));
}
// Memperbarui data mahasiswa
public function update(Request $request, Mahasiswa $mahasiswa)
{
$request->validate([
'nim' => 'required|unique:mahasiswas,nim,' . $mahasiswa->id,
'nama' => 'required',
'prodi' => 'required',
'email' => 'nullable|email'
]);
$mahasiswa->update($request->only(
'nim', 'nama', 'prodi', 'email'
));
return redirect()->route('mahasiswa.index')
->with('success', 'Data mahasiswa berhasil diperbarui.');
}
// Menghapus data mahasiswa
public function destroy(Mahasiswa $mahasiswa)
{
$mahasiswa->delete();
return redirect()->route('mahasiswa.index')
->with('success', 'Data mahasiswa berhasil dihapus.');
}
}
Pada controller tersebut terdapat lima proses utama yang mengatur pengelolaan data mahasiswa. Laravel juga menyediakan validasi untuk memastikan data yang dimasukkan sesuai dengan aturan yang ditentukan.
7. Mengatur Routing Laravel
Routing digunakan untuk menentukan alamat URL yang dapat diakses pengguna dan menghubungkannya dengan controller.
Buka file:
routes/web.php
Kemudian tambahkan kode berikut:
<?php
use IlluminateSupportFacadesRoute;
use AppHttpControllersMahasiswaController;
Route::get('/', function () {
return redirect()->route('mahasiswa.index');
});
Route::resource('mahasiswa', MahasiswaController::class);
Perintah Route::resource() akan membuat beberapa route secara otomatis untuk kebutuhan CRUD, seperti menampilkan data, menambahkan data, mengedit, memperbarui, dan menghapus data.
Dengan demikian, kita tidak perlu menuliskan setiap route secara manual.
8. Membuat Tampilan Aplikasi dengan Blade
Laravel menggunakan Blade sebagai template engine untuk membuat tampilan aplikasi.
Pertama, buat folder baru bernama mahasiswa di dalam: resources/views/
Kita akan membuat tiga file utama:
index.blade.phpcreate.blade.phpedit.blade.php
A. Halaman daftar mahasiswa
Buat file resources/views/mahasiswa/index.blade.php.
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Data Mahasiswa</title>
</head>
<body>
<h2>Data Mahasiswa</h2>
@if(session('success'))
<p>{{ session('success') }}</p>
@endif
<a href="{{ route('mahasiswa.create') }}">
Tambah Mahasiswa
</a>
<br><br>
<table border="1" cellpadding="8">
<tr>
<th>No</th>
<th>NIM</th>
<th>Nama</th>
<th>Program Studi</th>
<th>Email</th>
<th>Aksi</th>
</tr>
@forelse($mahasiswas as $mahasiswa)
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $mahasiswa->nim }}</td>
<td>{{ $mahasiswa->nama }}</td>
<td>{{ $mahasiswa->prodi }}</td>
<td>{{ $mahasiswa->email }}</td>
<td>
<a href="{{ route('mahasiswa.edit', $mahasiswa->id) }}">
Edit
</a>
<form action="{{ route('mahasiswa.destroy', $mahasiswa->id) }}"
method="POST" style="display:inline;">
@csrf
@method('DELETE')
<button type="submit"
onclick="return confirm('Hapus data ini?')">
Hapus
</button>
</form>
</td>
</tr>
@empty
<tr>
<td colspan="6">Belum ada data mahasiswa.</td>
</tr>
@endforelse
</table>
</body>
</html>
Halaman ini menampilkan seluruh data mahasiswa yang tersimpan di database. Pengguna juga dapat memilih tombol Edit atau Hapus pada setiap baris data.
B. Halaman tambah mahasiswa
Buat file resources/views/mahasiswa/create.blade.php.
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Tambah Mahasiswa</title>
</head>
<body>
<h2>Tambah Data Mahasiswa</h2>
@if($errors->any())
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
<form action="{{ route('mahasiswa.store') }}" method="POST">
@csrf
<p>NIM</p>
<input type="text" name="nim" value="{{ old('nim') }}">
<p>Nama</p>
<input type="text" name="nama" value="{{ old('nama') }}">
<p>Program Studi</p>
<input type="text" name="prodi" value="{{ old('prodi') }}">
<p>Email</p>
<input type="email" name="email" value="{{ old('email') }}">
<br><br>
<button type="submit">Simpan</button>
<a href="{{ route('mahasiswa.index') }}">Kembali</a>
</form>
</body>
</html>
Form ini digunakan untuk memasukkan data mahasiswa baru. Data yang dikirim akan diproses oleh method store() pada controller.
C. Halaman edit mahasiswa
Buat file resources/views/mahasiswa/edit.blade.php.
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Edit Mahasiswa</title>
</head>
<body>
<h2>Edit Data Mahasiswa</h2>
@if($errors->any())
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
<form action="{{ route('mahasiswa.update', $mahasiswa->id) }}"
method="POST">
@csrf
@method('PUT')
<p>NIM</p>
<input type="text" name="nim"
value="{{ old('nim', $mahasiswa->nim) }}">
<p>Nama</p>
<input type="text" name="nama"
value="{{ old('nama', $mahasiswa->nama) }}">
<p>Program Studi</p>
<input type="text" name="prodi"
value="{{ old('prodi', $mahasiswa->prodi) }}">
<p>Email</p>
<input type="email" name="email"
value="{{ old('email', $mahasiswa->email) }}">
<br><br>
<button type="submit">Perbarui</button>
<a href="{{ route('mahasiswa.index') }}">Kembali</a>
</form>
</body>
</html>
Halaman edit akan menampilkan data mahasiswa sebelumnya sehingga pengguna dapat mengubah informasi yang diperlukan.
9. Menjalankan dan Menguji Aplikasi CRUD
Setelah seluruh file selesai dibuat, pastikan server Laravel masih berjalan. Jika belum, jalankan kembali:
php artisan serve
Kemudian buka browser dan akses:
http://127.0.0.1:8000/mahasiswa
Jika seluruh konfigurasi sudah benar, halaman daftar mahasiswa akan ditampilkan.
Selanjutnya, lakukan pengujian terhadap empat fitur utama:
- Create: Tambahkan data mahasiswa baru melalui tombol Tambah Mahasiswa.
- Read: Pastikan data yang sudah disimpan muncul pada halaman daftar mahasiswa.
- Update: Pilih tombol Edit dan ubah informasi mahasiswa.
- Delete: Pilih tombol Hapus untuk menghapus data mahasiswa.
Jika seluruh proses berhasil, berarti aplikasi CRUD sederhana menggunakan Laravel 13 sudah berhasil dibuat.
10. Kesimpulan
Laravel 13 menyediakan berbagai fitur yang membantu developer membangun aplikasi web dengan lebih terstruktur. Melalui tutorial ini, kita sudah mempelajari proses instalasi Laravel, konfigurasi database MySQL, pembuatan model, migration, controller, routing, hingga tampilan menggunakan Blade.
Contoh aplikasi data mahasiswa yang dibuat juga memperlihatkan bagaimana Laravel dapat digunakan untuk mengelola data melalui operasi CRUD.
Tentu saja, aplikasi ini masih merupakan contoh dasar. Dalam pengembangan selanjutnya, kita dapat menambahkan fitur pencarian, pagination, autentikasi pengguna, pengaturan hak akses, serta tampilan menggunakan Bootstrap atau framework CSS lainnya.
Bagi mahasiswa yang sedang mempelajari pemrograman web atau mengembangkan tugas akhir, memahami dasar Laravel dapat menjadi bekal yang bermanfaat untuk membangun sistem informasi yang lebih kompleks.
Referensi dokumentasi resmi:
- Laravel 13 Documentation: https://laravel.com/docs/13.x
- Laravel Installation: https://laravel.com/docs/13.x/installation
- Laravel Eloquent ORM: https://laravel.com/docs/13.x/eloquent
- Laravel Routing: https://laravel.com/docs/13.x/routing
- Laravel Blade Templates: https://laravel.com/docs/13.x/blade