Laravel, framework PHP yang elegan dan powerful, semakin populer di kalangan developer web. Tapi, bagi pemula, Laravel mungkin terlihat menakutkan. Jangan khawatir! Tutorial Laravel untuk Pemula Bahasa Indonesia ini hadir untuk membimbingmu langkah demi langkah, dari nol hingga mahir. Dijamin mudah dipahami! Kita akan kupas tuntas semuanya, dari persiapan hingga membuat aplikasi sederhana. Yuk, mulai!
1. Apa itu Laravel dan Mengapa Memilihnya? (Pengenalan Laravel)
Sebelum kita menyelam lebih dalam, mari kita pahami dulu apa itu Laravel dan mengapa framework ini begitu digandrungi. Sederhananya, Laravel adalah framework PHP yang menyediakan struktur dan komponen siap pakai untuk membangun aplikasi web. Bayangkan seperti LEGO; Laravel menyediakan balok-balok yang sudah terstandarisasi, sehingga kamu tinggal merakitnya menjadi bangunan yang kokoh dan indah.
Mengapa memilih Laravel?
- Elegan dan Mudah Dibaca: Kode Laravel dikenal bersih, terstruktur, dan mudah dibaca. Ini sangat penting untuk maintenance dan kolaborasi tim.
- Fitur Lengkap: Laravel sudah menyediakan berbagai fitur penting seperti ORM (Object-Relational Mapping), routing, templating, authentication, authorization, dan masih banyak lagi. Kamu tidak perlu repot membuat semuanya dari awal.
- Komunitas Aktif: Laravel memiliki komunitas yang sangat besar dan aktif. Jika kamu menemui masalah, pasti ada banyak orang yang siap membantu.
- Dokumentasi Lengkap: Dokumentasi Laravel sangat lengkap dan mudah dipahami. Ini memudahkan kamu untuk belajar dan menggunakan Laravel.
- Keamanan Tinggi: Laravel fokus pada keamanan. Framework ini melindungi aplikasi kamu dari berbagai ancaman seperti SQL injection, cross-site scripting (XSS), dan cross-site request forgery (CSRF).
- Artisan Console: Laravel menyediakan Artisan, command-line interface (CLI) yang powerful untuk membantu kamu melakukan berbagai tugas seperti membuat migration, controller, model, dan lain-lain.
- Template Engine Blade: Blade adalah template engine yang sederhana namun powerful. Dengan Blade, kamu bisa dengan mudah membuat tampilan yang dinamis dan interaktif.
Dengan semua kelebihan ini, Laravel menjadi pilihan yang sangat tepat untuk membangun berbagai jenis aplikasi web, mulai dari aplikasi sederhana hingga aplikasi kompleks.
2. Persiapan Awal: Instalasi dan Konfigurasi Laravel (Langkah Instalasi)
Sebelum memulai petualangan Tutorial Laravel untuk Pemula Bahasa Indonesia ini, kita perlu mempersiapkan lingkungan pengembangan terlebih dahulu. Pastikan kamu sudah menginstal beberapa perangkat lunak penting:
- PHP: Laravel membutuhkan PHP versi 7.3 atau lebih tinggi.
- Composer: Composer adalah dependency manager untuk PHP. Gunakan Composer untuk menginstal Laravel dan package lainnya. Kamu bisa mengunduhnya di https://getcomposer.org/.
- Web Server: Kamu bisa menggunakan Apache, Nginx, atau PHP built-in server.
- Database: Laravel mendukung berbagai jenis database seperti MySQL, PostgreSQL, SQLite, dan SQL Server.
Langkah-langkah Instalasi Laravel:
-
Instal Composer: Ikuti petunjuk instalasi di situs web Composer.
-
Buka Command Prompt atau Terminal: Navigasikan ke direktori tempat kamu ingin menyimpan proyek Laravel kamu.
-
Jalankan perintah berikut:
composer create-project --prefer-dist laravel/laravel nama-proyekGanti
nama-proyekdengan nama proyek yang kamu inginkan. -
Tunggu hingga proses instalasi selesai: Ini mungkin memakan waktu beberapa menit, tergantung pada kecepatan internet kamu.
-
Masuk ke direktori proyek:
cd nama-proyek -
Jalankan server pengembangan:
php artisan serveIni akan menjalankan server pengembangan di
http://localhost:8000. -
Buka browser dan kunjungi
http://localhost:8000: Jika kamu melihat halaman default Laravel, berarti instalasi berhasil!
Konfigurasi Database:
Setelah instalasi Laravel berhasil, langkah selanjutnya adalah mengkonfigurasi koneksi ke database.
-
Buka file
.envdi direktori proyek kamu. File ini berisi berbagai konfigurasi penting untuk aplikasi Laravel kamu. -
Cari bagian konfigurasi database:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=nama_database DB_USERNAME=nama_pengguna DB_PASSWORD=kata_sandi -
Ganti nilai-nilai tersebut dengan informasi database kamu:
DB_CONNECTION: Jenis database yang kamu gunakan (misalnya,mysql,pgsql,sqlite).DB_HOST: Alamat server database. Biasanya127.0.0.1ataulocalhost.DB_PORT: Port yang digunakan oleh server database. Biasanya3306untuk MySQL.DB_DATABASE: Nama database yang ingin kamu gunakan.DB_USERNAME: Nama pengguna untuk mengakses database.DB_PASSWORD: Kata sandi untuk mengakses database.
-
Simpan file
.env.
Pastikan kamu sudah membuat database dengan nama yang kamu tentukan di file .env sebelum melanjutkan.
3. Struktur Direktori Laravel: Memahami Anatomi Aplikasi Laravel (Struktur Folder)
Memahami struktur direktori Laravel sangat penting untuk navigasi dan pengembangan yang efisien. Berikut adalah penjelasan singkat tentang direktori-direktori utama:
app/: Direktori ini berisi kode inti aplikasi kamu, seperti models, controllers, providers, dan middleware.bootstrap/: Direktori ini berisi file yang digunakan untuk melakukan bootstrapping aplikasi.config/: Direktori ini berisi file konfigurasi untuk berbagai aspek aplikasi kamu, seperti database, mail, session, dan lain-lain.database/: Direktori ini berisi migration, seed, dan factory. Migration digunakan untuk membuat dan memodifikasi struktur database. Seed digunakan untuk mengisi database dengan data awal. Factory digunakan untuk membuat data dummy untuk pengujian.public/: Direktori ini berisi file statis seperti CSS, JavaScript, dan gambar. Direktori ini adalah document root dari aplikasi kamu.resources/: Direktori ini berisi view (template), language file, dan assets (seperti CSS dan JavaScript yang belum dikompilasi).routes/: Direktori ini berisi file yang mendefinisikan route aplikasi kamu.storage/: Direktori ini digunakan untuk menyimpan file yang dihasilkan oleh aplikasi kamu, seperti log file dan file yang diunggah oleh pengguna.tests/: Direktori ini berisi file pengujian untuk aplikasi kamu.vendor/: Direktori ini berisi semua package yang kamu instal menggunakan Composer. Direktori ini tidak perlu kamu ubah secara manual.
Dengan memahami struktur direktori ini, kamu akan lebih mudah menemukan file yang kamu butuhkan dan memahami bagaimana aplikasi Laravel kamu bekerja.
4. Routing di Laravel: Menentukan Alamat URL dan Aksi yang Terkait (Konsep Routing)
Routing adalah proses memetakan URL ke controller atau closure tertentu. Dalam Tutorial Laravel untuk Pemula Bahasa Indonesia ini, kita akan mempelajari dasar-dasar routing di Laravel.
-
Definisi Route: Route didefinisikan di dalam file
routes/web.php(untuk route berbasis web) atauroutes/api.php(untuk route API). -
Metode HTTP: Laravel mendukung berbagai metode HTTP seperti
GET,POST,PUT,PATCH, danDELETE. -
Contoh Route:
Route::get('/', function () { return view('welcome'); }); Route::get('/hello', function () { return 'Halo Dunia!'; }); Route::get('/user/{id}', function ($id) { return 'User ID: ' . $id; }); Route::get('/posts/{post}/comments/{comment}', function ($postId, $commentId) { return 'Post ID: ' . $postId . ', Comment ID: ' . $commentId; });Route::get('/', ...): Mendefinisikan route untuk URL/(halaman utama) menggunakan metodeGET.Route::get('/hello', ...): Mendefinisikan route untuk URL/hellomenggunakan metodeGET.Route::get('/user/{id}', ...): Mendefinisikan route dengan parameter{id}. Nilai parameter ini akan diteruskan ke closure.Route::get('/posts/{post}/comments/{comment}', ...): Mendefinisikan route dengan dua parameter{post}dan{comment}.
-
Route Name: Kamu bisa memberikan nama pada route untuk memudahkan penggunaan di dalam aplikasi kamu.
Route::get('/profile', function () { // ... })->name('profile');Untuk mengakses route bernama
profile, kamu bisa menggunakan fungsiroute('profile'). -
Route Group: Kamu bisa mengelompokkan route untuk menerapkan middleware atau namespace yang sama.
Route::middleware(['auth'])->group(function () { Route::get('/dashboard', function () { // ... }); Route::get('/settings', function () { // ... }); });Contoh di atas mengelompokkan route
/dashboarddan/settingsdi dalam middlewareauth. Ini berarti kedua route tersebut hanya bisa diakses oleh pengguna yang sudah login.
Routing adalah fondasi penting dalam aplikasi web. Dengan memahami routing, kamu bisa mengontrol bagaimana aplikasi kamu merespons permintaan dari pengguna.
5. Controller di Laravel: Mengelola Logika Aplikasi (Konsep Controller)
Controller adalah kelas yang bertanggung jawab untuk menangani logika aplikasi. Controller menerima permintaan dari route, memprosesnya, dan mengembalikan respons. Dalam Tutorial Laravel untuk Pemula Bahasa Indonesia ini, kita akan belajar cara membuat dan menggunakan controller di Laravel.
-
Membuat Controller: Kamu bisa membuat controller menggunakan Artisan CLI.
php artisan make:controller UserControllerIni akan membuat file
app/Http/Controllers/UserController.php. -
Isi Controller:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; class UserController extends Controller { public function index() { return 'Daftar Pengguna'; } public function show($id) { return 'Detail Pengguna: ' . $id; } public function create() { return view('users.create'); } public function store(Request $request) { // Proses penyimpanan data pengguna return 'Pengguna berhasil ditambahkan'; } public function edit($id) { return view('users.edit'); } public function update(Request $request, $id) { // Proses pembaruan data pengguna return 'Pengguna berhasil diperbarui'; } public function destroy($id) { // Proses penghapusan data pengguna return 'Pengguna berhasil dihapus'; } }index(): Menampilkan daftar pengguna.show($id): Menampilkan detail pengguna dengan ID tertentu.create(): Menampilkan form untuk membuat pengguna baru.store(Request $request): Menyimpan data pengguna baru.edit($id): Menampilkan form untuk mengedit data pengguna dengan ID tertentu.update(Request $request, $id): Memperbarui data pengguna dengan ID tertentu.destroy($id): Menghapus data pengguna dengan ID tertentu.
-
Menghubungkan Route ke Controller:
Route::get('/users', [UserController::class, 'index']); Route::get('/users/{id}', [UserController::class, 'show']); Route::get('/users/create', [UserController::class, 'create']); Route::post('/users', [UserController::class, 'store']); Route::get('/users/{id}/edit', [UserController::class, 'edit']); Route::put('/users/{id}', [UserController::class, 'update']); Route::delete('/users/{id}', [UserController::class, 'destroy']);Ini adalah contoh route yang menghubungkan URL ke metode-metode di dalam controller
UserController. -
Resource Controller: Laravel menyediakan resource controller untuk memudahkan pembuatan controller yang memiliki metode-metode standar untuk CRUD (Create, Read, Update, Delete).
php artisan make:controller UserController --resource
Controller adalah jantung dari logika aplikasi kamu. Dengan menggunakan controller, kamu bisa memisahkan logika aplikasi dari route dan view, sehingga kode kamu menjadi lebih terstruktur dan mudah maintenance.
6. View di Laravel: Membuat Tampilan yang Menarik (Konsep View)
View adalah template yang digunakan untuk menampilkan data kepada pengguna. Dalam Tutorial Laravel untuk Pemula Bahasa Indonesia ini, kita akan belajar cara membuat dan menggunakan view di Laravel. Laravel menggunakan template engine bernama Blade.
-
Membuat View: View disimpan di dalam direktori
resources/views. Kamu bisa membuat file view dengan ekstensi.blade.php.Contoh:
resources/views/welcome.blade.php<!DOCTYPE html> <html> <head> <title>Selamat Datang</title> </head> <body> <h1>Selamat Datang di Aplikasi Laravel!</h1> </body> </html> -
Menggunakan Blade: Blade menyediakan berbagai directive untuk memudahkan pembuatan template.
{{ ... }}: Menampilkan data.@if,@else,@elseif,@endif: Kondisi.@foreach,@endforeach: Looping.@extends,@section,@yield: Layout dan template inheritance.@include: Menyertakan view lain.
Contoh:
resources/views/users/index.blade.php<!DOCTYPE html> <html> <head> <title>Daftar Pengguna</title> </head> <body> <h1>Daftar Pengguna</h1> <ul> @foreach ($users as $user) <li>{{ $user->name }}</li> @endforeach </ul> </body> </html> -
Layout dan Template Inheritance: Blade memungkinkan kamu membuat layout utama dan kemudian memperluasnya di view lain.
Contoh:
resources/views/layouts/app.blade.php(Layout Utama)<!DOCTYPE html> <html> <head> <title>@yield('title')</title> </head> <body> <div class="container"> @yield('content') </div> </body> </html>Contoh:
resources/views/users/index.blade.php(View yang Memperluas Layout)@extends('layouts.app') @section('title', 'Daftar Pengguna') @section('content') <h1>Daftar Pengguna</h1> <ul> @foreach ($users as $user) <li>{{ $user->name }}</li> @endforeach </ul> @endsection -
Mengirim Data ke View: Kamu bisa mengirim data dari controller ke view menggunakan fungsi
view().public function index() { $users = User::all(); return view('users.index', ['users' => $users]); }
View adalah bagian penting dari aplikasi web kamu. Dengan menggunakan Blade, kamu bisa membuat tampilan yang dinamis, interaktif, dan mudah di-maintenance.
7. Database: Model, Migration, dan Seeder (Konsep Database)
Laravel menyediakan alat yang powerful untuk berinteraksi dengan database. Dalam Tutorial Laravel untuk Pemula Bahasa Indonesia ini, kita akan membahas model, migration, dan seeder.
-
Model: Model adalah kelas yang mewakili tabel di database. Model memungkinkan kamu berinteraksi dengan data di tabel tersebut dengan cara yang mudah dan intuitif. Laravel menggunakan ORM (Object-Relational Mapping) bernama Eloquent.
-
Membuat Model:
php artisan make:model UserIni akan membuat file
app/Models/User.php. -
Isi Model:
<?php namespace AppModels; use IlluminateDatabaseEloquentFactoriesHasFactory; use IlluminateDatabaseEloquentModel; class User extends Model { use HasFactory; protected $table = 'users'; // Nama tabel (optional) protected $primaryKey = 'id'; // Primary key (optional) protected $fillable = ['name', 'email', 'password']; // Kolom yang boleh diisi protected $hidden = ['password', 'remember_token']; // Kolom yang disembunyikan } -
Menggunakan Model:
// Mendapatkan semua data dari tabel users $users = User::all(); // Mendapatkan data user dengan ID 1 $user = User::find(1); // Membuat user baru $user = new User(); $user->name = 'John Doe'; $user->email = '[email protected]'; $user->password = bcrypt('password'); $user->save(); // Memperbarui data user $user = User::find(1); $user->name = 'Jane Doe'; $user->save(); // Menghapus data user $user = User::find(1); $user->delete();
-
-
Migration: Migration adalah file yang digunakan untuk membuat dan memodifikasi struktur database. Migration memudahkan kamu untuk mengelola perubahan skema database.
-
Membuat Migration:
php artisan make:migration create_users_tableIni akan membuat file migration baru di direktori
database/migrations. -
Isi Migration:
<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } } -
Menjalankan Migration:
php artisan migrate -
Rollback Migration:
php artisan migrate:rollback
-
-
Seeder: Seeder adalah kelas yang digunakan untuk mengisi database dengan data dummy. Seeder berguna untuk testing dan pengembangan.
-
Membuat Seeder:
php artisan make:seeder UserSeederIni akan membuat file seeder baru di direktori
database/seeders. -
Isi Seeder:
<?php namespace DatabaseSeeders; use IlluminateDatabaseSeeder; use AppModelsUser; use IlluminateSupportFacadesHash; class UserSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { User::create([ 'name' => 'John Doe', 'email' => '[email protected]', 'password' => Hash::make('password'), ]); } } -
Menjalankan Seeder:
php artisan db:seedAtau jalankan seeder tertentu:
php artisan db:seed --class=UserSeeder
-
Dengan model, migration, dan seeder, kamu bisa mengelola database aplikasi kamu dengan mudah dan efisien.
8. Form Handling dan Validasi Data (Validasi Form)
Form handling dan validasi data adalah bagian penting dari setiap aplikasi web. Dalam Tutorial Laravel untuk Pemula Bahasa Indonesia ini, kita akan belajar cara menangani form dan memvalidasi data di Laravel.
-
Membuat Form:
<form method="POST" action="/users"> @csrf <div> <label for="name">Nama:</label> <input type="text" id="name" name="name"> </div> <div> <label for="email">Email:</label> <input type="email" id="email" name="email"> </div> <div> <label for="password">Password:</label> <input type="password" id="password" name="password"> </div> <button type="submit">Simpan</button> </form>@csrf: Menambahkan token CSRF untuk melindungi aplikasi dari serangan CSRF.
-
Menerima Data Form di Controller:
public function store(Request $request) { $name = $request->input('name'); $email = $request->input('email'); $password = $request->input('password'); // Proses penyimpanan data } -
Validasi Data: Laravel menyediakan berbagai cara untuk memvalidasi data.
-
Menggunakan Method
validate():public function store(Request $request) { $validatedData = $request->validate([ 'name' => 'required|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|min:8', ]); // Proses penyimpanan data menggunakan $validatedData } -
Membuat Form Request:
php artisan make:request StoreUserRequestIni akan membuat file
app/Http/Requests/StoreUserRequest.php.<?php namespace AppHttpRequests; use IlluminateFoundationHttpFormRequest; class StoreUserRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; // Atur ke `true` jika tidak ada otorisasi khusus } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'name' => 'required|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|min:8', ]; } }Kemudian gunakan Form Request di controller:
public function store(StoreUserRequest $request) { $validatedData = $request->validated(); // Proses penyimpanan data menggunakan $validatedData }
-
-
Menampilkan Pesan Error:
@if ($errors->any()) <div> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif
Dengan form handling dan validasi data, kamu bisa memastikan bahwa data yang masuk ke aplikasi kamu valid dan aman.
9. Authentication: Sistem Login dan Registrasi (Fitur Authentication)
Laravel menyediakan sistem authentication yang mudah digunakan. Dalam Tutorial Laravel untuk Pemula Bahasa Indonesia ini, kita akan belajar cara membuat sistem login dan registrasi.
-
Menggunakan Artisan Command
make:auth:composer require laravel/ui php artisan ui vue --auth npm install && npm run devPerintah ini akan menghasilkan view untuk login, registrasi, reset password, dan verifikasi email. Ini juga akan membuat route dan controller yang diperlukan.
-
Laravel Breeze atau Jetstream:
Laravel Breeze dan Jetstream adalah starter kit authentication yang lebih modern. Laravel Breeze menggunakan Blade, sementara Jetstream menawarkan pilihan Inertia.js atau Livewire. -
Custom Authentication
Kamu juga bisa membuat sistem otentikasi sendiri, tapi ini membutuhkan pemahaman yang lebih mendalam tentang Laravel.
Setelah menjalankan perintah di atas, kamu perlu melakukan migration untuk membuat tabel yang diperlukan.
php artisan migrate
Kemudian, kamu bisa mengunjungi /login atau /register untuk menggunakan sistem authentication yang sudah dibuat.
10. Eloquent ORM: Interaksi Mudah dengan Database (Eloquent ORM)
Eloquent ORM adalah ORM (Object-Relational Mapping) yang disediakan oleh Laravel. Eloquent memudahkan kamu untuk berinteraksi dengan database menggunakan sintaks yang intuitif dan fluent.
-
Definisi Model: Seperti yang sudah dibahas sebelumnya, model mewakili tabel di database.
-
Query Builder: Eloquent menyediakan query builder untuk membuat query database.
-
Mendapatkan Data:
// Mendapatkan semua data $users = User::all(); // Mendapatkan data dengan ID tertentu $user = User::find(1); // Mendapatkan data dengan kondisi $users = User::where('status', 'active')->get(); // Mendapatkan data dengan order $users = User::orderBy('name', 'asc')->get(); // Mendapatkan data dengan pagination $users = User::paginate(10); -
Membuat Data:
$user = new User(); $user->name = 'John Doe'; $user->email = '[email protected]'; $user->password = bcrypt('password'); $user->save(); // Atau menggunakan Mass Assignment User::create([ 'name' => 'Jane Doe', 'email' => '[email protected]', 'password' => bcrypt('password'), ]); -
Memperbarui Data:
$user = User::find(1); $user->name = 'Jane Doe'; $user->save(); // Atau menggunakan Mass Update User::where('status', 'active')->update(['status' => 'inactive']); -
Menghapus Data:
$user = User::find(1); $user->delete(); // Atau menggunakan Delete Multiple User::where('status', 'inactive')->delete();
-
-
Relationship: Eloquent mendukung berbagai jenis relationship seperti one-to-one, one-to-many, many-to-many, dan polymorphic relationship.
-
One-to-One:
// User model public function profile() { return $this->hasOne(Profile::class); } // Profile model public function user() { return $this->belongsTo(User::class); } -
One-to-Many:
// User model public function posts() { return $this->hasMany(Post::class); } // Post model public function user() { return $this->belongsTo(User::class); } -
Many-to-Many:
// User model public function roles() { return $this->belongsToMany(Role::class); } // Role model public function users() { return $this->belongsToMany(User::class); }
-
Eloquent ORM adalah alat yang sangat powerful untuk berinteraksi dengan database. Dengan Eloquent, kamu bisa menulis query database dengan cara yang lebih mudah dibaca dan maintenance.
11. Middleware: Mengamankan dan Memfilter Request (Konsep Middleware)
Middleware adalah lapisan antara request dan response. Middleware memungkinkan kamu untuk memfilter dan memodifikasi request sebelum mencapai controller, dan memodifikasi response sebelum dikirim ke browser. Dalam Tutorial Laravel untuk Pemula Bahasa Indonesia ini, kita akan belajar cara membuat dan menggunakan middleware di Laravel.
-
Membuat Middleware:
php artisan make:middleware CheckAgeIni akan membuat file
app/Http/Middleware/CheckAge.php. -
Isi Middleware:
<?php namespace AppHttpMiddleware; use Closure; use IlluminateHttpRequest; class CheckAge { /** * Handle an incoming request. * * @param IlluminateHttpRequest $request * @param Closure(IlluminateHttpRequest): (IlluminateHttpResponse|IlluminateHttpRedirectResponse) $next * @return IlluminateHttpResponse|IlluminateHttpRedirectResponse */ public function handle(Request $request, Closure $next) { if ($request->age < 200) { return redirect('home'); } return $next($request); } } -
Mendaftarkan Middleware: Middleware perlu didaftarkan di file
app/Http/Kernel.php.- Global Middleware: Middleware yang diterapkan ke semua request.
- Route Middleware: Middleware yang diterapkan ke route tertentu.
// app/Http/Kernel.php protected $routeMiddleware = [ 'auth' => AppHttpMiddlewareAuthenticate::class, 'cache.headers' => IlluminateHttpMiddlewareSetCacheHeaders::class, 'guest' => AppHttpMiddlewareRedirectIfAuthenticated::class, 'signed' => IlluminateRoutingMiddlewareValidateSignature::class, 'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class, 'verified' => IlluminateAuthMiddlewareEnsureEmailIsVerified::class, 'checkage' => AppHttpMiddlewareCheckAge::class, // Daftarkan middleware kita ]; -
Menggunakan Middleware di Route:
Route::get('/admin', function () { // ... })->middleware('checkage');
Middleware adalah alat yang sangat berguna untuk mengamankan dan memfilter request. Dengan middleware, kamu bisa menerapkan logika yang sama ke banyak route tanpa perlu mengulang kode.
12. Testing di Laravel: Memastikan Kualitas Aplikasi (Konsep Testing)
Testing adalah bagian penting dari pengembangan perangkat lunak. Dengan testing, kamu bisa memastikan bahwa aplikasi kamu berfungsi dengan benar dan bebas dari bug. Dalam Tutorial Laravel untuk Pemula Bahasa Indonesia ini, kita akan belajar dasar-dasar testing di Laravel.
-
Jenis Testing:
- Unit Testing: Menguji unit kode terkecil, seperti fungsi atau metode.
- Feature Testing: Menguji fitur lengkap, seperti alur login atau registrasi.
-
Menggunakan PHPUnit: Laravel menggunakan PHPUnit sebagai testing framework.
-
Membuat Test:
php artisan make:test UserTestIni akan membuat file
tests/Feature/UserTest.phpatautests/Unit/UserTest.php. -
Isi Test:
<?php namespace TestsFeature; use IlluminateFoundationTestingRefreshDatabase; use IlluminateFoundationTestingWithFaker; use TestsTestCase; use AppModelsUser; class UserTest extends TestCase { use RefreshDatabase; /** * A basic feature test example. * * @return void */ public function test_user_can_be_created() { $user = User::factory()->create(); $this->assertDatabaseHas('users', [ 'email' => $user->email, ]); } } -
Menjalankan Test:
php artisan testAtau jalankan test tertentu:
php artisan test --filter UserTest
Testing membantu kamu menulis kode yang lebih baik dan lebih mudah maintenance. Dengan testing, kamu bisa menemukan bug lebih awal dan mencegah masalah yang lebih besar di kemudian hari.
Kesimpulan
Selamat! Kamu telah menyelesaikan Tutorial Laravel untuk Pemula Bahasa Indonesia ini. Kita telah membahas berbagai topik penting, mulai dari instalasi hingga testing. Dengan pengetahuan ini, kamu sudah siap untuk membangun aplikasi web yang keren dengan Laravel. Teruslah berlatih dan bereksperimen. Jangan takut untuk mencoba hal-hal baru. Selamat berkarya!
Sumber Referensi:
Semoga artikel ini bermanfaat dan membantu kamu dalam belajar Laravel! Jangan ragu untuk bertanya jika ada yang kurang jelas.



