Panduan Lengkap Menggunakan Laravel untuk Pemula
Laravel adalah framework PHP yang populer untuk membangun aplikasi web yang kuat dan fleksibel. Framework ini menyediakan banyak fitur dan alat bawaan yang dapat membantu developer membuat aplikasi web dengan cepat dan mudah. Dalam panduan ini, kita akan membahas dasar-dasar Laravel dan bagaimana menggunakannya untuk membangun aplikasi web sederhana.
Instalasi Laravel
Untuk memulai dengan Laravel, Anda perlu menginstalnya terlebih dahulu. Ada beberapa cara untuk menginstal Laravel, tetapi cara yang paling umum adalah menggunakan Composer. Composer adalah alat manajemen paket untuk PHP yang memungkinkan Anda untuk menginstal dan memperbarui paket-paket PHP dengan mudah.
Untuk menginstal Laravel menggunakan Composer, buka terminal dan jalankan perintah berikut:
composer create-project laravel/laravel nama_aplikasi
Perintah ini akan membuat direktori baru bernama nama_aplikasi
dan menginstal Laravel ke dalamnya.
Struktur Direktori Laravel
Setelah Laravel terinstal, Anda akan melihat struktur direktori berikut:
nama_aplikasi/
├── app/
│ ├── Console/
│ ├── Events/
│ ├── Http/
│ ├── Jobs/
│ ├── Listeners/
│ ├── Mail/
│ ├── Models/
│ ├── Notifications/
│ ├── Policies/
│ ├── Providers/
│ ├── Requests/
│ ├── Resources/
│ ├── Rules/
│ ├── Services/
│ ├── Transformers/
│ └── View/
├── bootstrap/
│ ├── cache/
│ ├── compiled.php
│ ├── config.php
│ ├── env.example
│ ├── routes/
│ ├── services.php
│ ├── starage/
│ └── vendor/
├── config/
│ ├── app.php
│ ├── auth.php
│ ├── broadcat.php
│ ├── cache.php
│ ├── cookies.php
│ ├── database.php
│ ├── filesystems.php
│ ├── hashing.php
│ ├── logging.php
│ ├── mail.php
│ ├── queue.php
│ ├── services.php
│ ├── session.php
│ ├── view.php
├── database/
│ ├── factories/
│ ├── migrations/
│ ├── seeders/
│ ├── sqlite/
│ └── test/
├── public/
│ ├── favicon.ico
│ ├── index.php
│ ├── mix-manifest.json
│ ├── robots.txt
│ ├── storage/
│ └── vendor/
├── resources/
│ ├── assets/
│ ├── langs/
│ ├── views/
│ └── js/
├── routes/
│ ├── api.php
│ ├── console.php
│ ├── web.php
├── storage/
│ ├── app/
│ ├── framework/
│ ├── logs/
│ └── sessions/
├── tests/
│ ├── Feature/
│ ├── Unit/
├── vendor/
├── .env
├── composer.json
├── composer.lock
├── package.json
├── yarn.lock
Struktur direktori ini mengikuti pola Model-View-Controller (MVC), yang merupakan pola desain yang umum digunakan untuk membangun aplikasi web. Direktori app
berisi kode sumber aplikasi, direktori config
berisi file konfigurasi, direktori database
berisi file database, direktori public
berisi file yang dapat diakses oleh publik, dan direktori resources
berisi file sumber seperti pandangan, CSS, dan JavaScript.
Membuat Aplikasi Web Sederhana
Untuk membuat aplikasi web sederhana menggunakan Laravel, kita akan membuat aplikasi CRUD (Create, Read, Update, Delete). Aplikasi ini akan memungkinkan kita untuk mengelola data siswa di sekolah.
1. Membuat Model
Model adalah representasi dari data dalam aplikasi. Dalam Laravel, model didefinisikan dalam direktori app/Models
. Untuk membuat model siswa, kita bisa membuat file app/Models/Siswa.php
dan menambahkan kode berikut:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Siswa extends Model
{
protected $fillable = ['nama', 'alamat', 'telepon'];
}
Model ini memiliki tiga field: nama
, alamat
, dan telepon
. Field fillable
menentukan field mana yang dapat diisi massal.
2. Membuat Controller
Controller adalah kelas yang menangani permintaan HTTP ke aplikasi. Dalam Laravel, controller didefinisikan dalam direktori app/Http/Controllers
. Untuk membuat controller siswa, kita bisa membuat file app/Http/Controllers/SiswaController.php
dan menambahkan kode berikut:
namespace App\Http\Controllers;
use App\Models\Siswa;
use Illuminate\Http\Request;
class SiswaController extends Controller
{
public function index()
{
$siswas = Siswa::all();
return view('siswas.index', compact('siswas'));
}
public function create()
{
return view('siswas.create');
}
public function store(Request $request)
{
$siswa = new Siswa;
$siswa->nama = $request->nama;
$siswa->alamat = $request->alamat;
$siswa->telepon = $request->telepon;
$siswa->save();
return redirect('/siswas');
}
public function show($id)
{
$siswa = Siswa::findOrFail($id);
return view('siswas.show', compact('siswa'));
}
public function edit($id)
{
$siswa = Siswa::findOrFail($id);
return view('siswas.edit', compact('siswa'));
}
public function update(Request $request, $id)
{
$siswa = Siswa::findOrFail($id);
$siswa->nama = $request->nama;
$siswa->alamat = $request->alamat;
$siswa->telepon = $request->telepon;
$siswa->save();
return redirect('/siswas');
}
public function destroy($id)
{
$siswa = Siswa::findOrFail($id);
$siswa->delete();
return redirect('/siswas');
}
}
Controller ini memiliki tujuh metode: index
, create
, store
, show
, edit
, update
, dan delete
. Metode index
menampilkan semua data siswa, metode create
menampilkan formulir untuk membuat siswa baru, metode store
menyimpan data siswa baru, metode show
menampilkan detail siswa tertentu, metode edit
menampilkan formulir untuk mengedit siswa tertentu, metode update
menyimpan data siswa yang telah diedit, dan metode delete
menghapus siswa tertentu.
3. Membuat View
View adalah file yang berisi tampilan aplikasi. Dalam Laravel, view didefinisikan dalam direktori resources/views
. Untuk membuat view siswa, kita bisa membuat file resources/views/siswas/index.blade.php
dan menambahkan kode berikut:
@extends('layouts.app')
@section('content')
<h1>Siswa</h1>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Nama</th>
<th>Alamat</th>
<th>Telepon</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
@foreach ($siswas as $siswa)
<tr>
<td>{{ $siswa->nama }}</td>
<td>{{ $siswa->alamat }}</td>
<td>{{ $siswa->telepon }}</td>
<td>
<a href="{{%20route('siswas.show',%20['siswa'%20=>%20$siswa->id])%20}}" class="btn btn-info">Lihat</a>
<a href="{{%20route('siswas.edit',%20['siswa'%20=>%20$siswa->id])%20}}" class="btn btn-warning">Edit</a>
<form action="{{ route('siswas.destroy', ['siswa' => $siswa->id]) }}" method="POST" class="d-inline">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger">Hapus</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
<a href="{{%20route('siswas.create')%20}}" class="btn btn-primary">Tambah Siswa</a>
@endsection
View ini berisi tabel yang menampilkan data siswa. Kita menggunakan blade template engine untuk membuat view ini.
4. Menambahkan Route
Route adalah aturan yang menentukan bagaimana permintaan HTTP akan dipetakan ke controller. Dalam Laravel, route didefinisikan dalam file routes/web.php
. Untuk menambahkan route siswa, kita bisa menambahkan kode berikut ke file routes/web.php
:
Route::resource('siswas', 'SiswaController');
Kode ini akan menambahkan route untuk semua metode controller siswa.
5. Menjalankan Aplikasi