Selamat datang, para calon programmer handal! Apakah kamu tertarik menjadi seorang developer Laravel? Jika iya, kamu berada di tempat yang tepat! Tutorial Laravel dasar bahasa Indonesia ini dirancang khusus untuk pemula yang ingin mempelajari framework PHP yang populer ini. Laravel dikenal dengan sintaksnya yang elegan, fitur-fitur yang lengkap, dan kemudahan dalam pengembangan aplikasi web modern. Di panduan ini, kita akan membahas langkah-langkah awal yang perlu kamu kuasai untuk memulai perjalananmu menjadi seorang developer Laravel yang kompeten. Jadi, siapkan kopi, buka code editor favoritmu, dan mari kita mulai!
Daftar Isi
- Apa Itu Laravel dan Mengapa Kamu Harus Belajar?
- Persiapan Lingkungan Pengembangan Laravel: Instalasi XAMPP atau Laragon
- Instalasi Laravel: Menggunakan Composer untuk Membuat Proyek Baru
- Struktur Direktori Laravel: Mengenal Organisasi Proyek Laravel
- Konsep Routing di Laravel: Mengatur Alur Aplikasi Web
- Blade Templating Engine: Membuat Tampilan Dinamis dengan Mudah
- Database dan Migrasi: Mengelola Basis Data dengan Laravel
- Model dan Eloquent ORM: Berinteraksi dengan Database Secara Efisien
- Controller: Menangani Logika Aplikasi
- Belajar Autentikasi Sederhana di Laravel: Membuat Sistem Login dan Register
- Mengenal Artisan Console: Memanfaatkan Perintah CLI Laravel
- Langkah Selanjutnya: Sumber Belajar Laravel Tingkat Lanjut
1. Apa Itu Laravel dan Mengapa Kamu Harus Belajar?
Laravel adalah sebuah framework PHP open-source yang dirancang untuk memudahkan dan mempercepat pengembangan aplikasi web. Bayangkan Laravel sebagai fondasi rumah yang kokoh. Dengan fondasi yang baik, pembangunan rumah menjadi lebih terstruktur, efisien, dan menyenangkan. Begitu pula dengan Laravel, ia menyediakan berbagai fitur dan tools yang mempermudah developer dalam membangun aplikasi web yang kompleks.
Mengapa Harus Belajar Laravel?
Ada banyak alasan mengapa kamu harus mempertimbangkan untuk belajar Laravel:
- Sintaks yang Elegan dan Mudah Dibaca: Laravel dikenal dengan sintaksnya yang jelas dan mudah dibaca, sehingga kode yang kamu tulis menjadi lebih terstruktur dan mudah dipelihara. Ini penting, terutama saat bekerja dalam tim.
- Fitur Lengkap dan Terintegrasi: Laravel menyediakan berbagai fitur bawaan seperti routing, templating engine, database migration, authentication, dan masih banyak lagi. Semua fitur ini terintegrasi dengan baik, sehingga kamu tidak perlu repot mengintegrasikan library pihak ketiga.
- Komunitas yang Aktif dan Solid: Laravel memiliki komunitas developer yang sangat aktif dan solid. Kamu dapat dengan mudah menemukan bantuan, tutorial, dan library yang kamu butuhkan. Ini sangat membantu, terutama saat menghadapi masalah atau kesulitan.
- Dokumentasi yang Lengkap: Laravel memiliki dokumentasi yang sangat lengkap dan terstruktur dengan baik. Dokumentasi ini menjadi panduan utama bagi developer Laravel.
- Peluang Karir yang Luas: Laravel adalah salah satu framework PHP yang paling populer dan banyak digunakan oleh perusahaan-perusahaan besar. Dengan menguasai Laravel, kamu akan memiliki peluang karir yang luas sebagai developer web.
- Mempercepat Proses Pengembangan: Dengan fitur-fitur yang lengkap dan terintegrasi, Laravel dapat mempercepat proses pengembangan aplikasi web secara signifikan. Kamu dapat fokus pada logika bisnis aplikasi daripada berkutat dengan masalah teknis yang rumit.
- Keamanan yang Baik: Laravel memiliki fitur keamanan bawaan yang kuat, seperti proteksi terhadap Cross-Site Scripting (XSS) dan SQL Injection. Ini sangat penting untuk melindungi aplikasi web dari serangan hacker.
2. Persiapan Lingkungan Pengembangan Laravel: Instalasi XAMPP atau Laragon
Sebelum memulai belajar tutorial Laravel dasar bahasa Indonesia ini, kamu perlu menyiapkan lingkungan pengembangan terlebih dahulu. Lingkungan pengembangan adalah tempat di mana kamu akan menulis, menguji, dan menjalankan kode Laravel. Ada beberapa cara untuk menyiapkan lingkungan pengembangan, tetapi cara yang paling umum dan mudah adalah dengan menggunakan XAMPP atau Laragon.
XAMPP:
XAMPP adalah paket software yang berisi Apache web server, MySQL database, dan PHP. XAMPP sangat populer karena mudah diinstal dan digunakan.
- Cara Instalasi XAMPP:
- Unduh XAMPP dari situs web resmi Apache Friends: https://www.apachefriends.org/
- Pilih versi XAMPP yang sesuai dengan sistem operasi kamu (Windows, macOS, atau Linux).
- Ikuti instruksi instalasi yang diberikan. Pastikan kamu memilih untuk menginstal Apache, MySQL, dan PHP.
- Setelah instalasi selesai, jalankan XAMPP Control Panel.
- Klik tombol “Start” pada modul Apache dan MySQL.
- Verifikasi Instalasi XAMPP:
- Buka web browser kamu.
- Ketik “localhost” atau “127.0.0.1” pada address bar.
- Jika kamu melihat halaman default XAMPP, berarti instalasi XAMPP berhasil.
Laragon:
Laragon adalah lingkungan pengembangan PHP yang ringan, cepat, dan mudah digunakan. Laragon dirancang khusus untuk pengembangan web modern.
- Cara Instalasi Laragon:
- Unduh Laragon dari situs web resminya: https://laragon.org/
- Ikuti instruksi instalasi yang diberikan.
- Setelah instalasi selesai, jalankan Laragon.
- Laragon akan otomatis menjalankan Apache dan MySQL.
- Verifikasi Instalasi Laragon:
- Buka web browser kamu.
- Ketik “localhost” atau “127.0.0.1” pada address bar.
- Jika kamu melihat halaman default Laragon, berarti instalasi Laragon berhasil.
Pilih yang Mana?
Baik XAMPP maupun Laragon sama-sama bagus untuk pengembangan Laravel. XAMPP lebih populer dan memiliki komunitas yang lebih besar, sedangkan Laragon lebih ringan dan cepat. Pilihlah yang paling sesuai dengan preferensi dan kebutuhan kamu. Untuk pemula, Laragon mungkin lebih mudah karena konfigurasi yang lebih sederhana.
3. Instalasi Laravel: Menggunakan Composer untuk Membuat Proyek Baru
Setelah menyiapkan lingkungan pengembangan, langkah selanjutnya dalam tutorial Laravel dasar bahasa Indonesia ini adalah menginstal Laravel. Laravel diinstal menggunakan Composer, sebuah dependency manager untuk PHP.
Apa Itu Composer?
Composer adalah tool yang digunakan untuk mengelola dependencies (ketergantungan) dalam proyek PHP. Dependencies adalah library atau package yang dibutuhkan oleh proyek kamu. Composer memungkinkan kamu untuk mengunduh, menginstal, dan meng- update dependencies dengan mudah.
Cara Instalasi Composer:
- Unduh Composer dari situs web resminya: https://getcomposer.org/download/
- Ikuti instruksi instalasi yang diberikan.
- Setelah instalasi selesai, buka command prompt atau terminal.
- Ketik perintah
composer
dan tekan Enter. Jika Composer terinstal dengan benar, kamu akan melihat daftar perintah Composer.
Membuat Proyek Laravel Baru:
Setelah Composer terinstal, kamu dapat membuat proyek Laravel baru dengan menggunakan perintah composer create-project
.
-
Buka command prompt atau terminal.
-
Arahkan ke direktori di mana kamu ingin membuat proyek Laravel. Misalnya, jika kamu menggunakan XAMPP, kamu bisa masuk ke direktori
htdocs
. Jika menggunakan Laragon, masuk ke direktoriwww
. -
Ketik perintah berikut dan tekan Enter:
composer create-project --prefer-dist laravel/laravel nama-proyek
Ganti
nama-proyek
dengan nama proyek yang kamu inginkan. Misalnya,blog
. -
Composer akan mengunduh dan menginstal Laravel beserta semua dependencies-nya. Proses ini mungkin memakan waktu beberapa menit, tergantung pada kecepatan internet kamu.
-
Setelah proses instalasi selesai, masuk ke direktori proyek yang baru dibuat:
cd nama-proyek
Menjalankan Proyek Laravel:
Untuk menjalankan proyek Laravel, kamu dapat menggunakan perintah php artisan serve
.
-
Buka command prompt atau terminal (pastikan kamu berada di direktori proyek Laravel).
-
Ketik perintah berikut dan tekan Enter:
php artisan serve
-
Laravel akan menjalankan development server pada alamat
http://127.0.0.1:8000
. -
Buka web browser kamu dan ketik alamat tersebut pada address bar.
-
Jika kamu melihat halaman default Laravel, berarti instalasi Laravel berhasil dan proyek Laravel kamu sudah berjalan!
4. Struktur Direktori Laravel: Mengenal Organisasi Proyek Laravel
Memahami struktur direktori Laravel adalah kunci untuk navigasi proyek dan pengembangan yang efisien. Dalam tutorial Laravel dasar bahasa Indonesia ini, kita akan menjelajahi direktori utama dan fungsinya.
Berikut adalah struktur direktori Laravel secara umum:
nama-proyek/
├── app/
│ ├── Console/
│ ├── Exceptions/
│ ├── Http/
│ ├── Models/
│ ├── Providers/
├── bootstrap/
├── config/
├── database/
│ ├── factories/
│ ├── migrations/
│ ├── seeders/
├── public/
├── resources/
│ ├── css/
│ ├── js/
│ ├── lang/
│ ├── views/
├── routes/
├── storage/
├── tests/
├── vendor/
├── .env
├── artisan
├── composer.json
├── composer.lock
├── package.json
├── phpunit.xml
├── webpack.mix.js
Mari kita bahas beberapa direktori penting:
app/
: Direktori ini berisi kode aplikasi inti kamu, seperti controllers, models, middleware, dan providers.Http/Controllers/
: Berisi controllers yang menangani request HTTP dan mengembalikan response.Models/
: Berisi models yang merepresentasikan tabel dalam basis data dan menyediakan cara untuk berinteraksi dengan data.
bootstrap/
: Direktori ini berisi files yang digunakan untuk bootstrapping Laravel.config/
: Direktori ini berisi files konfigurasi untuk berbagai aspek aplikasi kamu, seperti basis data, email, dan session.database/
: Direktori ini berisi files yang berhubungan dengan basis data, seperti migrations, factories, dan seeders.migrations/
: Berisi migrations yang digunakan untuk membuat dan memodifikasi struktur basis data.
public/
: Direktori ini berisi files statis seperti gambar, CSS, dan JavaScript. Ini adalah direktori root yang diakses oleh web server.resources/
: Direktori ini berisi assets yang belum dikompilasi, seperti views, CSS, JavaScript, dan localization files.views/
: Berisi templates Blade yang digunakan untuk membuat tampilan aplikasi.
routes/
: Direktori ini berisi files yang mendefinisikan routes aplikasi kamu.web.php
: Mendefinisikan routes untuk aplikasi web.
storage/
: Direktori ini digunakan untuk menyimpan files yang dihasilkan oleh aplikasi, seperti log files, session files, dan cache files.vendor/
: Direktori ini berisi semua dependencies yang diinstal menggunakan Composer.
Memahami struktur direktori ini akan sangat membantu kamu dalam menemukan files yang kamu butuhkan dan mengatur kode aplikasi kamu dengan baik.
5. Konsep Routing di Laravel: Mengatur Alur Aplikasi Web
Routing adalah mekanisme yang menghubungkan URL dengan controller atau closure yang sesuai. Dalam tutorial Laravel dasar bahasa Indonesia ini, kita akan mempelajari dasar-dasar routing di Laravel.
Apa Itu Route?
Route adalah aturan yang menentukan bagaimana aplikasi merespon request HTTP. Setiap route mendefinisikan URL, method HTTP (GET, POST, PUT, DELETE), dan handler (biasanya controller atau closure).
Mendefinisikan Route:
Routes didefinisikan dalam files di direktori routes/
. File web.php
digunakan untuk mendefinisikan routes untuk aplikasi web.
Contoh:
<?php
use IlluminateSupportFacadesRoute;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::get('/hello', function () {
return 'Halo Dunia!';
});
Route::get('/user/{id}', function ($id) {
return 'User ID: ' . $id;
});
Penjelasan:
Route::get('/', ...)
: Mendefinisikan route untuk request GET ke URL/
. Handler-nya adalah closure yang mengembalikan viewwelcome
.Route::get('/hello', ...)
: Mendefinisikan route untuk request GET ke URL/hello
. Handler-nya adalah closure yang mengembalikan string “Halo Dunia!”.Route::get('/user/{id}', ...)
: Mendefinisikan route untuk request GET ke URL/user/{id}
.{id}
adalah parameter yang dapat diakses dalam closure.
Jenis-Jenis Route Method:
Laravel mendukung berbagai route method:
GET
: Digunakan untuk mengambil data.POST
: Digunakan untuk mengirim data untuk diproses.PUT
: Digunakan untuk memperbarui data.DELETE
: Digunakan untuk menghapus data.PATCH
: Digunakan untuk memperbarui sebagian data.OPTIONS
: Digunakan untuk mendapatkan informasi tentang options yang tersedia untuk endpoint.
Menghubungkan Route ke Controller:
Selain menggunakan closure, kamu juga dapat menghubungkan route ke controller. Ini adalah praktik yang lebih umum dalam aplikasi yang lebih besar.
Contoh:
<?php
use IlluminateSupportFacadesRoute;
use AppHttpControllersUserController;
Route::get('/users', [UserController::class, 'index']);
Route::get('/users/{id}', [UserController::class, 'show']);
Penjelasan:
Route::get('/users', ...)
: Mendefinisikan route untuk request GET ke URL/users
. Handler-nya adalah methodindex
pada controllerUserController
.Route::get('/users/{id}', ...)
: Mendefinisikan route untuk request GET ke URL/users/{id}
. Handler-nya adalah methodshow
pada controllerUserController
.
Route Name:
Memberi nama pada route memudahkan dalam membuat URL dan redirect tanpa harus mengubah URL secara langsung.
Contoh:
Route::get('/profile', function () {
// ...
})->name('profile');
// Membuat URL ke route 'profile'
$url = route('profile');
// Redirect ke route 'profile'
return redirect()->route('profile');
6. Blade Templating Engine: Membuat Tampilan Dinamis dengan Mudah
Blade adalah templating engine bawaan Laravel yang memungkinkan kamu untuk membuat tampilan dinamis dengan mudah. Dalam tutorial Laravel dasar bahasa Indonesia ini, kita akan mempelajari dasar-dasar Blade.
Apa Itu Template Blade?
Template Blade adalah file HTML yang berisi kode PHP untuk menampilkan data dinamis. Template Blade menggunakan sintaks khusus yang dimulai dengan @
(at).
Membuat Template Blade:
Template Blade disimpan dalam direktori resources/views/
dengan ekstensi .blade.php
.
Contoh: resources/views/hello.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Halo</title>
</head>
<body>
<h1>Halo, {{ $name }}!</h1>
<p>Selamat datang di aplikasi kami.</p>
</body>
</html>
Penjelasan:
{{ $name }}
: Mencetak nilai variabel$name
.
Menggunakan Template Blade dalam Controller:
Untuk menggunakan template Blade dalam controller, kamu dapat menggunakan method view()
.
Contoh:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class HelloController extends Controller
{
public function index()
{
$name = 'John Doe';
return view('hello', ['name' => $name]);
}
}
Penjelasan:
return view('hello', ['name' => $name]);
: Mengembalikan viewhello.blade.php
dan mengirimkan variabel$name
ke view.
Direktif Blade:
Blade menyediakan berbagai direktif yang memudahkan dalam membuat tampilan dinamis. Beberapa direktif yang umum digunakan:
@if
,@elseif
,@else
,@endif
: Kondisional.@foreach
,@forelse
,@endforeach
: Perulangan.@include
: Menyertakan template lain.@extends
,@section
,@yield
: Mewarisi dan memodifikasi template.
Contoh Penggunaan Direktif Blade:
<!DOCTYPE html>
<html>
<head>
<title>Daftar Pengguna</title>
</head>
<body>
<h1>Daftar Pengguna</h1>
@if (count($users) > 0)
<ul>
@foreach ($users as $user)
<li>{{ $user->name }}</li>
@endforeach
</ul>
@else
<p>Tidak ada pengguna.</p>
@endif
</body>
</html>
Template Inheritance:
Blade memungkinkan kamu untuk membuat template layout dan mewarisinya di template lain. Ini memudahkan dalam membuat tampilan yang konsisten di seluruh aplikasi.
Membuat Layout:
Contoh: resources/views/layouts/app.blade.php
<!DOCTYPE html>
<html>
<head>
<title>@yield('title')</title>
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
</head>
<body>
<div class="container">
@yield('content')
</div>
<script src="{{ asset('js/app.js') }}"></script>
</body>
</html>
Mewarisi Layout:
Contoh: resources/views/home.blade.php
@extends('layouts.app')
@section('title', 'Halaman Utama')
@section('content')
<h1>Selamat Datang di Halaman Utama!</h1>
<p>Ini adalah konten halaman utama.</p>
@endsection
7. Database dan Migrasi: Mengelola Basis Data dengan Laravel
Laravel memudahkan pengelolaan basis data dengan fitur migrations dan Eloquent ORM. Dalam tutorial Laravel dasar bahasa Indonesia ini, kita akan mempelajari dasar-dasar database migration dan konfigurasi basis data.
Konfigurasi Basis Data:
Konfigurasi basis data disimpan dalam file config/database.php
. Kamu perlu mengkonfigurasi koneksi basis data yang sesuai dengan lingkungan pengembangan kamu.
Contoh konfigurasi untuk MySQL:
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'nama_database'),
'username' => env('DB_USERNAME', 'nama_pengguna'),
'password' => env('DB_PASSWORD', 'kata_sandi'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
Pastikan kamu mengubah nilai-nilai DB_HOST
, DB_PORT
, DB_DATABASE
, DB_USERNAME
, dan DB_PASSWORD
sesuai dengan konfigurasi basis data kamu. Nilai-nilai ini biasanya disimpan dalam file .env
.
Apa Itu Migration?
Migration adalah file PHP yang digunakan untuk membuat dan memodifikasi struktur basis data. Migrations memungkinkan kamu untuk mengelola perubahan struktur basis data dengan terstruktur dan terotomatisasi.
Membuat Migration:
Untuk membuat migration, kamu dapat menggunakan perintah php artisan make:migration
.
Contoh:
php artisan make:migration create_users_table
Perintah ini akan membuat file migration baru di direktori database/migrations/
.
Struktur Migration:
File migration berisi dua method: up()
dan down()
.
up()
: Digunakan untuk membuat atau memodifikasi struktur basis data.down()
: Digunakan untuk membatalkan perubahan yang dilakukan oleh methodup()
.
Contoh:
<?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:
Untuk menjalankan migrations, kamu dapat menggunakan perintah php artisan migrate
.
php artisan migrate
Perintah ini akan menjalankan semua migrations yang belum dijalankan.
Membatalkan Migration:
Untuk membatalkan migration terakhir, kamu dapat menggunakan perintah php artisan migrate:rollback
.
php artisan migrate:rollback
Migrate:fresh:
Untuk menghapus semua table dan menjalankan semua migration dari awal, kamu dapat menggunakan perintah php artisan migrate:fresh
.
php artisan migrate:fresh
Ini berguna ketika kamu ingin membersihkan database dan membangunnya kembali dari awal.
8. Model dan Eloquent ORM: Berinteraksi dengan Database Secara Efisien
Eloquent ORM (Object Relational Mapper) adalah layer abstraksi basis data yang disediakan oleh Laravel. Eloquent memudahkan kamu untuk berinteraksi dengan basis data secara efisien menggunakan sintaks PHP yang intuitif. Bagian dari tutorial Laravel dasar bahasa Indonesia ini akan membahas konsep model dan Eloquent.
Apa Itu Model?
Model adalah kelas PHP yang merepresentasikan tabel dalam basis data. Model menyediakan method untuk berinteraksi dengan data dalam tabel tersebut.
Membuat Model:
Untuk membuat model, kamu dapat menggunakan perintah php artisan make:model
.
Contoh:
php artisan make:model User
Perintah ini akan membuat file model baru di direktori app/Models/
.
Struktur Model:
File model biasanya berisi definisi properties dan method yang berhubungan dengan tabel basis data.
Contoh:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
class User extends Authenticatable
{
use HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'email',
'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
Menggunakan Eloquent untuk Berinteraksi dengan Basis Data:
Eloquent menyediakan berbagai method untuk melakukan operasi CRUD (Create, Read, Update, Delete) pada basis data.
-
Menambah Data (Create):
$user = new User(); $user->name = 'John Doe'; $user->email = '[email protected]'; $user->password = bcrypt('password'); $user->save();
Atau:
$user = User::create([ 'name' => 'John Doe', 'email' => '[email protected]', 'password' => bcrypt('password'), ]);
-
Membaca Data (Read):
// Mengambil semua data $users = User::all(); // Mengambil data berdasarkan ID $user = User::find(1); // Mengambil data dengan kondisi $users = User::where('name', 'John Doe')->get(); // Mengambil data pertama dengan kondisi $user = User::where('email', '[email protected]')->first();
-
Mengupdate Data (Update):
$user = User::find(1); $user->name = 'Jane Doe'; $user->save();
Atau:
User::where('id', 1)->update(['name' => 'Jane Doe']);
-
Menghapus Data (Delete):
$user = User::find(1); $user->delete();
Atau:
User::destroy(1);
Relasi Antar Tabel:
Eloquent memungkinkan kamu untuk mendefinisikan relasi antar tabel dengan mudah. Beberapa jenis relasi yang umum:
- One to One: Satu tabel berelasi dengan satu tabel lainnya.
- One to Many: Satu tabel berelasi dengan banyak tabel lainnya.
- Many to Many: Banyak tabel berelasi dengan banyak tabel lainnya.
9. Controller: Menangani Logika Aplikasi
Controller adalah kelas PHP yang bertugas menangani logika aplikasi dan mengembalikan response. Dalam tutorial Laravel dasar bahasa Indonesia ini, kita akan mempelajari dasar-dasar controller.
Apa Itu Controller?
Controller menerima request HTTP, memproses data, berinteraksi dengan model, dan mengembalikan response (biasanya view atau JSON).
Membuat Controller:
Untuk membuat controller, kamu dapat menggunakan perintah php artisan make:controller
.
Contoh:
php artisan make:controller UserController
Perintah ini akan membuat file controller baru di direktori app/Http/Controllers/
.
Struktur Controller:
File controller berisi method yang menangani request HTTP.
Contoh:
<?php
namespace AppHttpControllers;
use AppModelsUser;
use IlluminateHttpRequest;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
public function index()
{
$users = User::all();
return view('users.index', ['users' => $users]);
}
/**
* Show the form for creating a new resource.
*
* @return IlluminateHttpResponse
*/
public function create()
{
return view('users.create');
}
/**
* Store a newly created resource in storage.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpResponse
*/
public function store(Request $request)
{
$user = new User();
$user->name = $request->name;
$user->email = $request->email;
$user->password = bcrypt($request->password);
$user->save();
return redirect('/users');
}
/**
* Display the specified resource.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function show($id)
{
$user = User::find($id);
return view('users.show', ['user' => $user]);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function edit($id)
{
$user = User::find($id);
return view('users.edit', ['user' => $user]);
}
/**
* Update the specified resource in storage.
*
* @param IlluminateHttpRequest $request
* @param int $id
* @return IlluminateHttpResponse
*/
public function update(Request $request, $id)
{
$user = User::find($id);
$user->name = $request->name;
$user->email = $request->email;
$user->save();
return redirect('/users');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function destroy($id)
{
User::destroy($id);
return redirect('/users');
}
}
Menghubungkan Route ke Controller:
Seperti yang telah kita pelajari sebelumnya, kamu dapat menghubungkan route ke controller menggunakan array [Controller::class, 'method']
.
Contoh:
<?php
use IlluminateSupportFacadesRoute;
use AppHttpControllersUserController;
Route::get('/users', [UserController::class, 'index']);
Route::get('/users/create', [UserController::class, 'create']);
Route::post('/users', [UserController::class, 'store']);
Route::get('/users/{id}', [UserController::class, 'show']);
Route::get('/users/{id}/edit', [UserController::class, 'edit']);
Route::put('/users/{id}', [UserController::class, 'update']);
Route::delete('/users/{id}', [UserController::class, 'destroy']);
Resource Controller:
Laravel menyediakan resource controller yang memudahkan dalam membuat controller untuk operasi CRUD.
Untuk membuat resource controller, kamu dapat menggunakan opsi --resource
pada perintah php artisan make:controller
.
php artisan make:controller UserController --resource
Kemudian, kamu dapat menggunakan method Route::resource()
untuk mendefinisikan routes untuk resource controller.
Route::resource('users', UserController::class);
10. Belajar Autentikasi Sederhana di Laravel: Membuat Sistem Login dan Register
Laravel memudahkan implementasi sistem autentikasi dengan fitur bawaan. Dalam tutorial Laravel dasar bahasa Indonesia ini, kita akan mempelajari cara membuat sistem login dan register sederhana.
Membuat Scaffolding Autentikasi:
Laravel menyediakan perintah php artisan ui:auth
untuk membuat scaffolding autentikasi. Namun, perintah ini sudah deprecated di Laravel 9 ke atas. Sebagai gantinya, kita akan menggunakan Laravel Breeze atau Laravel Jetstream.
Menggunakan Laravel Breeze:
Laravel Breeze adalah implementasi autentikasi minimalis yang menggunakan Blade, Tailwind CSS, dan Inertia.js (opsional).
-
Instal Laravel Breeze:
composer require laravel/breeze --dev
-
Jalankan perintah
artisan
Breeze:php artisan breeze:install
-
Pilih stack yang kamu inginkan (Blade with Tailwind CSS, React, atau Vue).
-
Jalankan perintah
npm install
dannpm run dev
untuk mengkompilasi assets.npm install npm run dev
-
Migrasi basis data:
php artisan migrate
Menggunakan Laravel Jetstream:
Laravel Jetstream adalah scaffolding autentikasi yang lebih lengkap yang menyediakan fitur tambahan seperti manajemen tim, autentikasi dua faktor, dan session management.
-
Instal Laravel Jetstream:
composer require laravel/jetstream
-
Jalankan perintah
artisan
Jetstream:php artisan jetstream:install livewire
Atau, untuk Inertia.js:
php artisan jetstream:install inertia
-
Pilih stack yang kamu inginkan (Livewire atau Inertia.js).
-
Jalankan perintah
npm install
dannpm run dev
untuk mengkompilasi assets.npm install npm run dev
-
Migrasi basis data:
php artisan migrate
Setelah menjalankan salah satu perintah di atas, Laravel akan membuat routes, controllers, dan views yang diperlukan untuk sistem autentikasi. Kamu dapat mengakses halaman login dan register melalui URL /login
dan /register
.
Kustomisasi Autentikasi:
Kamu dapat mengkustomisasi sistem autentikasi dengan mengubah views, controllers, dan models yang dihasilkan oleh Laravel Breeze atau Laravel Jetstream.
11. Mengenal Artisan Console: Memanfaatkan Perintah CLI Laravel
Artisan adalah command-line interface (CLI) yang disediakan oleh Laravel. Artisan menyediakan berbagai perintah yang memudahkan kamu dalam mengembangkan aplikasi Laravel. Dalam tutorial Laravel dasar bahasa Indonesia ini, kita akan mempelajari beberapa perintah Artisan yang umum digunakan.
Cara Menggunakan Artisan:
Untuk menjalankan perintah Artisan, buka command prompt atau terminal dan