Laravel 10 adalah framework PHP yang powerful dan elegan, sering digunakan untuk membangun aplikasi web modern. Jika Anda ingin mempelajari Laravel 10, cara terbaiknya adalah dengan terjun langsung ke proyek nyata. Artikel ini akan memberikan contoh aplikasi sederhana dengan Laravel 10, membimbing Anda langkah demi langkah, sehingga Anda bisa belajar melalui pengalaman praktis. Kita akan membangun aplikasi dasar, sambil menekankan konsep-konsep penting dalam Laravel. Yuk, mulai!
1. Mengapa Memilih Laravel 10 untuk Pengembangan Aplikasi Anda?
Sebelum kita masuk ke contoh aplikasi sederhana dengan Laravel 10, mari kita bahas mengapa Laravel 10 menjadi pilihan yang populer di kalangan developer. Laravel menawarkan beberapa keunggulan signifikan, di antaranya:
- Sintaks yang Elegan dan Mudah Dibaca: Laravel menggunakan sintaks yang bersih dan ekspresif, membuat kode lebih mudah dipahami dan dikelola.
- Fitur Bawaan yang Kaya: Laravel hadir dengan banyak fitur bawaan, seperti sistem routing, ORM (Eloquent), templating engine (Blade), dan autentikasi, yang mempercepat proses pengembangan.
- Keamanan: Laravel memiliki fitur keamanan yang solid, termasuk perlindungan terhadap serangan CSRF, XSS, dan SQL Injection.
- Komunitas yang Besar dan Aktif: Laravel memiliki komunitas developer yang besar dan aktif, sehingga Anda dapat dengan mudah menemukan bantuan dan sumber daya saat dibutuhkan.
- Dokumentasi yang Lengkap: Laravel memiliki dokumentasi yang lengkap dan terstruktur, yang memudahkan Anda untuk mempelajari framework ini.
- Ekosistem yang Kaya: Laravel memiliki ekosistem yang kaya dengan berbagai package dan library yang dapat Anda gunakan untuk memperluas fungsionalitas aplikasi Anda.
Dengan keunggulan-keunggulan ini, Laravel 10 menjadi pilihan ideal untuk membangun berbagai jenis aplikasi web, dari aplikasi sederhana hingga aplikasi enterprise yang kompleks.
2. Persiapan Awal: Instalasi dan Konfigurasi Laravel 10
Sebelum membangun contoh aplikasi sederhana dengan Laravel 10, kita perlu melakukan instalasi dan konfigurasi awal. Pastikan Anda memiliki persyaratan berikut:
- PHP: Versi PHP 8.1 ke atas. Anda bisa mengecek versi PHP dengan menjalankan perintah
php -vdi terminal. - Composer: Manajer dependensi untuk PHP. Anda bisa mengunduh dan menginstal Composer dari https://getcomposer.org/.
- Node.js dan npm: Diperlukan untuk mengelola aset frontend (JavaScript, CSS). Unduh dan instal dari https://nodejs.org/.
- Database: MySQL, PostgreSQL, SQLite, atau database lain yang didukung Laravel. Pastikan database server Anda berjalan.
Langkah-langkah Instalasi:
-
Membuat Proyek Laravel Baru: Buka terminal dan jalankan perintah berikut untuk membuat proyek Laravel baru (ganti
nama-aplikasidengan nama yang Anda inginkan):composer create-project laravel/laravel nama-aplikasi -
Masuk ke Direktori Proyek: Setelah proses instalasi selesai, masuk ke direktori proyek:
cd nama-aplikasi -
Konfigurasi Database: Buka file
.envdan konfigurasi koneksi database Anda. Pastikan informasi sepertiDB_CONNECTION,DB_HOST,DB_PORT,DB_DATABASE,DB_USERNAME, danDB_PASSWORDsesuai dengan pengaturan database Anda. Contoh:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=nama_database_anda DB_USERNAME=nama_pengguna_database DB_PASSWORD=password_database -
Menjalankan Migrasi: Jalankan migrasi database untuk membuat tabel default:
php artisan migrate -
Menjalankan Server Development: Jalankan server development Laravel:
php artisan serveBuka browser Anda dan akses
http://localhost:8000untuk melihat halaman default Laravel.
Sekarang, Anda siap untuk membangun contoh aplikasi sederhana dengan Laravel 10.
3. Studi Kasus: Aplikasi Daftar Tugas Sederhana (To-Do List)
Sebagai contoh aplikasi sederhana dengan Laravel 10, kita akan membangun aplikasi daftar tugas (to-do list). Aplikasi ini akan memungkinkan pengguna untuk:
- Menambahkan tugas baru.
- Melihat daftar tugas yang belum selesai.
- Menandai tugas sebagai selesai.
- Menghapus tugas.
Ini adalah proyek yang ideal untuk mempelajari dasar-dasar Laravel, termasuk routing, controller, model, view, dan migrasi.
4. Membuat Model dan Migrasi untuk Tugas (Task)
Langkah pertama adalah membuat model Task dan migrasi database yang sesuai. Jalankan perintah berikut di terminal:
php artisan make:model Task -m
Perintah ini akan membuat dua file:
app/Models/Task.php: ModelTaskyang akan berinteraksi dengan tabeltasksdi database.database/migrations/xxxx_xx_xx_xxxxxx_create_tasks_table.php: File migrasi yang akan membuat tabeltasks.
Buka file migrasi dan tambahkan kolom title dan completed ke tabel tasks.
<?php
use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('tasks', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->boolean('completed')->default(false);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('tasks');
}
};
Jalankan migrasi untuk membuat tabel tasks di database:
php artisan migrate
Sekarang, buka file app/Models/Task.php dan tambahkan $fillable attribute untuk menentukan kolom mana yang boleh diisi melalui mass assignment:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
class Task extends Model
{
use HasFactory;
protected $fillable = ['title', 'completed'];
}
5. Membuat Controller untuk Mengelola Tugas (TaskController)
Selanjutnya, kita akan membuat controller untuk menangani logika bisnis terkait tugas. Jalankan perintah berikut di terminal:
php artisan make:controller TaskController
Perintah ini akan membuat file app/Http/Controllers/TaskController.php. Buka file tersebut dan tambahkan metode-metode berikut:
index(): Menampilkan daftar semua tugas.create(): Menampilkan form untuk membuat tugas baru.store(): Menyimpan tugas baru ke database.edit(): Menampilkan form untuk mengedit tugas yang ada.update(): Memperbarui tugas yang ada di database.destroy(): Menghapus tugas dari database.
Berikut adalah contoh implementasi TaskController:
<?php
namespace AppHttpControllers;
use AppModelsTask;
use IlluminateHttpRequest;
class TaskController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
$tasks = Task::all();
return view('tasks.index', compact('tasks'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('tasks.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$request->validate([
'title' => 'required|max:255',
]);
Task::create($request->all());
return redirect()->route('tasks.index')
->with('success','Task created successfully.');
}
/**
* Display the specified resource.
*/
public function show(Task $task)
{
// Kita tidak memerlukan metode show() untuk aplikasi sederhana ini
}
/**
* Show the form for editing the specified resource.
*/
public function edit(Task $task)
{
return view('tasks.edit', compact('task'));
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, Task $task)
{
$request->validate([
'title' => 'required|max:255',
]);
$task->update($request->all());
return redirect()->route('tasks.index')
->with('success','Task updated successfully.');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Task $task)
{
$task->delete();
return redirect()->route('tasks.index')
->with('success','Task deleted successfully.');
}
}
Perhatikan bahwa kita menggunakan Task::all() untuk mengambil semua tugas dari database, dan Task::create() untuk menyimpan tugas baru ke database. Kita juga menggunakan redirect()->route() untuk mengarahkan pengguna kembali ke halaman daftar tugas setelah membuat, memperbarui, atau menghapus tugas.
6. Membuat View untuk Menampilkan dan Mengelola Tugas
Sekarang kita perlu membuat view untuk menampilkan daftar tugas dan form untuk membuat dan mengedit tugas. Kita akan menggunakan Blade, templating engine bawaan Laravel. Buat direktori resources/views/tasks dan buat file-file berikut:
index.blade.php: Menampilkan daftar tugas.create.blade.php: Form untuk membuat tugas baru.edit.blade.php: Form untuk mengedit tugas yang ada.
Berikut adalah contoh implementasi index.blade.php:
<!DOCTYPE html>
<html>
<head>
<title>Aplikasi Daftar Tugas</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h1>Daftar Tugas</h1>
<a href="{{ route('tasks.create') }}" class="btn btn-success mb-3">Buat Tugas Baru</a>
@if ($message = Session::get('success'))
<div class="alert alert-success">
<p>{{ $message }}</p>
</div>
@endif
<table class="table table-bordered">
<tr>
<th>Judul</th>
<th>Status</th>
<th>Aksi</th>
</tr>
@foreach ($tasks as $task)
<tr>
<td>{{ $task->title }}</td>
<td>{{ $task->completed ? 'Selesai' : 'Belum Selesai' }}</td>
<td>
<a class="btn btn-primary" href="{{ route('tasks.edit',$task->id) }}">Edit</a>
<form action="{{ route('tasks.destroy',$task->id) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger">Hapus</button>
</form>
</td>
</tr>
@endforeach
</table>
</div>
</body>
</html>
Berikut adalah contoh implementasi create.blade.php:
<!DOCTYPE html>
<html>
<head>
<title>Buat Tugas Baru</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h1>Buat Tugas Baru</h1>
<form action="{{ route('tasks.store') }}" method="POST">
@csrf
<div class="mb-3">
<label for="title" class="form-label">Judul:</label>
<input type="text" class="form-control" id="title" name="title" required>
</div>
<button type="submit" class="btn btn-primary">Simpan</button>
<a href="{{ route('tasks.index') }}" class="btn btn-secondary">Batal</a>
</form>
</div>
</body>
</html>
Berikut adalah contoh implementasi edit.blade.php:
<!DOCTYPE html>
<html>
<head>
<title>Edit Tugas</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h1>Edit Tugas</h1>
<form action="{{ route('tasks.update', $task->id) }}" method="POST">
@csrf
@method('PUT')
<div class="mb-3">
<label for="title" class="form-label">Judul:</label>
<input type="text" class="form-control" id="title" name="title" value="{{ $task->title }}" required>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="completed" name="completed" {{ $task->completed ? 'checked' : '' }}>
<label class="form-check-label" for="completed">Selesai</label>
</div>
<button type="submit" class="btn btn-primary">Simpan</button>
<a href="{{ route('tasks.index') }}" class="btn btn-secondary">Batal</a>
</form>
</div>
</body>
</html>
7. Mendefinisikan Rute untuk Mengakses Controller
Terakhir, kita perlu mendefinisikan rute yang akan menghubungkan URL dengan metode-metode di TaskController. Buka file routes/web.php dan tambahkan rute resource untuk tasks:
<?php
use IlluminateSupportFacadesRoute;
use AppHttpControllersTaskController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
Route::get('/', function (Request $request) {
return redirect('/tasks');
});
Route::resource('tasks', TaskController::class);
Dengan Route::resource('tasks', TaskController::class), Laravel secara otomatis membuat rute untuk semua metode di TaskController (index, create, store, show, edit, update, destroy).
8. Menjalankan dan Menguji Aplikasi Daftar Tugas
Sekarang, Anda dapat menjalankan server development Laravel (jika belum) dengan perintah php artisan serve. Buka browser Anda dan akses http://localhost:8000/tasks untuk melihat aplikasi daftar tugas. Anda seharusnya dapat menambahkan, melihat, mengedit, dan menghapus tugas.
9. Pengembangan Lebih Lanjut: Fitur Tambahan untuk Aplikasi Laravel Anda
Contoh aplikasi sederhana dengan Laravel 10 ini bisa dikembangkan lebih lanjut dengan menambahkan fitur-fitur berikut:
- Validasi Data yang Lebih Ketat: Tambahkan validasi yang lebih ketat untuk memastikan data yang dimasukkan pengguna valid.
- Autentikasi Pengguna: Implementasikan sistem autentikasi pengguna sehingga setiap pengguna memiliki daftar tugas pribadi.
- Pencarian Tugas: Tambahkan fitur pencarian untuk memudahkan pengguna mencari tugas tertentu.
- Prioritas Tugas: Tambahkan kolom prioritas ke tabel
tasksuntuk memungkinkan pengguna mengurutkan tugas berdasarkan prioritas. - Integrasi dengan API Eksternal: Integrasikan dengan API eksternal untuk menambahkan fungsionalitas tambahan, seperti mengirim notifikasi email atau pesan SMS.
10. Keuntungan Belajar Laravel 10 dengan Proyek Nyata
Membangun contoh aplikasi sederhana dengan Laravel 10 seperti ini adalah cara yang sangat efektif untuk belajar. Dengan proyek nyata, Anda akan:
- Mendapatkan Pengalaman Praktis: Anda akan belajar dengan melakukan, bukan hanya membaca teori.
- Memahami Konsep Lebih Mendalam: Anda akan memahami konsep-konsep Laravel lebih mendalam karena Anda melihat bagaimana konsep-konsep tersebut bekerja dalam praktik.
- Memecahkan Masalah Nyata: Anda akan menghadapi masalah nyata yang perlu Anda pecahkan, yang akan membantu Anda mengembangkan keterampilan problem solving.
- Membangun Portofolio: Anda akan memiliki proyek yang dapat Anda tunjukkan sebagai bagian dari portofolio Anda.
11. Tips dan Trik Penting dalam Pengembangan Laravel 10
Berikut adalah beberapa tips dan trik penting yang akan membantu Anda dalam pengembangan Laravel 10:
- Gunakan Artisan Console: Artisan adalah command-line interface (CLI) yang sangat berguna untuk membuat file, menjalankan migrasi, dan melakukan tugas-tugas lainnya.
- Manfaatkan Eloquent ORM: Eloquent adalah ORM bawaan Laravel yang memudahkan Anda untuk berinteraksi dengan database.
- Gunakan Blade Templating Engine: Blade adalah templating engine yang kuat dan fleksibel yang memungkinkan Anda membuat view yang dinamis.
- Pelajari Dependency Injection: Dependency injection adalah teknik desain yang memungkinkan Anda membuat kode yang lebih modular dan mudah diuji.
- Gunakan Package dan Library: Laravel memiliki ekosistem yang kaya dengan berbagai package dan library yang dapat Anda gunakan untuk memperluas fungsionalitas aplikasi Anda.
- Uji Kode Anda: Pastikan Anda menguji kode Anda secara menyeluruh untuk memastikan bahwa kode tersebut berfungsi dengan benar dan tidak memiliki bug.
12. Sumber Daya Belajar Laravel 10 yang Direkomendasikan
Untuk memperdalam pengetahuan Anda tentang Laravel 10, berikut adalah beberapa sumber daya belajar yang direkomendasikan:
- Dokumentasi Resmi Laravel: https://laravel.com/docs/10.x
- Laravel Bootcamp: https://bootcamp.laravel.com/
- Laracasts: https://laracasts.com/
- YouTube Channels: Banyak channel YouTube yang menawarkan tutorial Laravel, seperti freeCodeCamp.org, Traversy Media, dan Codecourse.
- Online Courses: Udemy, Coursera, dan platform lainnya menawarkan kursus Laravel yang komprehensif.
Dengan mengikuti contoh aplikasi sederhana dengan Laravel 10 ini dan terus belajar, Anda akan menjadi developer Laravel yang kompeten dan dapat membangun aplikasi web yang hebat. Selamat mencoba dan semoga sukses!







