Selamat datang, para calon developer Laravel! Apakah kamu seorang pemula yang ingin mempelajari framework PHP yang populer ini? Kalau iya, kamu berada di tempat yang tepat! Tutorial Laravel untuk pemula ini akan memandu kamu langkah demi langkah, dari persiapan lingkungan pengembangan hingga membuat aplikasi web sederhana menggunakan bahasa Indonesia. Jangan khawatir, kita akan membahas semuanya dengan bahasa yang mudah dipahami, tanpa jargon teknis yang membingungkan. Siap untuk memulai perjalananmu menjadi Laravel developer? Yuk, kita mulai!
1. Apa itu Laravel dan Mengapa Harus Mempelajarinya? (Pengenalan Laravel Framework)
Sebelum kita terjun lebih dalam, mari kita bahas dulu apa itu Laravel dan mengapa banyak developer memilihnya. Laravel adalah sebuah framework PHP yang open-source dan dirancang untuk memudahkan pengembangan aplikasi web dengan mengikuti arsitektur Model-View-Controller (MVC).
Mengapa Memilih Laravel?
- Sintaks yang Elegan dan Mudah Dibaca: Laravel dikenal dengan sintaksnya yang bersih dan mudah dipahami, membuat kode kamu lebih terstruktur dan mudah di-maintain.
- Fitur Lengkap dan Siap Pakai: Laravel menyediakan berbagai fitur bawaan seperti sistem routing, ORM (Eloquent), templating engine (Blade), autentikasi, dan banyak lagi. Ini berarti kamu tidak perlu membuat semuanya dari awal.
- Keamanan Terjamin: Laravel sangat memperhatikan aspek keamanan. Framework ini menyediakan fitur-fitur untuk mencegah serangan web umum seperti SQL injection, XSS, dan CSRF.
- Komunitas yang Besar dan Aktif: Laravel memiliki komunitas developer yang besar dan aktif. Jika kamu mengalami kesulitan, kamu bisa dengan mudah menemukan bantuan di forum, grup diskusi, atau situs web dokumentasi resmi.
- Banyak Sumber Belajar: Selain dokumentasi resmi, banyak sekali tutorial, video, dan artikel yang membahas tentang Laravel. Ini memudahkan kamu untuk belajar dan berkembang.
- Permintaan Tinggi di Pasar Kerja: Laravel adalah salah satu framework PHP yang paling banyak dicari oleh perusahaan. Mempelajari Laravel dapat meningkatkan prospek karirmu sebagai web developer.
Singkatnya, Laravel adalah pilihan yang tepat bagi kamu yang ingin mengembangkan aplikasi web dengan cepat, aman, dan efisien.
2. Persiapan Lingkungan Pengembangan: Instalasi dan Konfigurasi (Setting Up Your Laravel Environment)
Sebelum mulai coding, kita perlu menyiapkan lingkungan pengembangan (development environment) terlebih dahulu. Ini meliputi instalasi PHP, Composer (package manager untuk PHP), dan sebuah web server (seperti Apache atau Nginx) serta database (seperti MySQL atau PostgreSQL).
Langkah-langkah Instalasi:
- PHP: Pastikan PHP sudah terinstal di komputer kamu. Versi PHP yang direkomendasikan untuk Laravel adalah versi 7.4 atau lebih tinggi. Kamu bisa mengunduh PHP dari https://www.php.net/downloads. Pastikan kamu menambahkan direktori PHP ke PATH sistem kamu agar kamu bisa mengakses perintah
php
dari terminal. - Composer: Composer adalah alat yang digunakan untuk mengelola dependencies (library pihak ketiga) dalam proyek PHP. Unduh dan instal Composer dari https://getcomposer.org/download/.
- Web Server (Apache atau Nginx): Pilih web server yang kamu kuasai. Apache adalah pilihan yang populer dan mudah dikonfigurasi. Nginx menawarkan performa yang lebih baik untuk aplikasi dengan traffic tinggi. Instruksi instalasi untuk Apache bisa ditemukan di https://httpd.apache.org/docs/2.4/install.html, dan untuk Nginx di https://nginx.org/en/docs/install.html.
- Database (MySQL atau PostgreSQL): Laravel mendukung berbagai jenis database. MySQL dan PostgreSQL adalah dua pilihan yang populer. Unduh dan instal salah satu dari https://www.mysql.com/downloads/ atau https://www.postgresql.org/download/.
- Editor Kode: Pilih editor kode yang nyaman untukmu. Beberapa pilihan populer adalah Visual Studio Code (VS Code), Sublime Text, dan PHPStorm. VS Code adalah pilihan yang sangat baik karena gratis dan memiliki banyak extension yang bermanfaat untuk pengembangan Laravel.
Menggunakan XAMPP atau Laragon:
Jika kamu ingin cara yang lebih mudah, kamu bisa menggunakan XAMPP atau Laragon. Kedua aplikasi ini menyediakan semua yang kamu butuhkan (PHP, Apache, MySQL) dalam satu paket. Laragon khususnya dioptimalkan untuk pengembangan Laravel di Windows. Kamu bisa mengunduh Laragon di https://laragon.org/.
Verifikasi Instalasi:
Setelah semua terinstal, buka terminal (Command Prompt atau Terminal) dan jalankan perintah berikut:
php -v
composer -v
Jika perintah tersebut menampilkan versi PHP dan Composer, berarti instalasi berhasil.
3. Membuat Proyek Laravel Baru: composer create-project
(Creating a New Laravel Project)
Sekarang, saatnya membuat proyek Laravel baru. Buka terminal dan arahkan ke direktori di mana kamu ingin menyimpan proyek kamu. Kemudian, jalankan perintah berikut:
composer create-project laravel/laravel nama-proyek
Ganti nama-proyek
dengan nama yang kamu inginkan untuk proyek kamu. Composer akan mengunduh semua dependencies yang dibutuhkan dan membuat struktur direktori proyek.
Setelah proses selesai, masuk ke direktori proyek:
cd nama-proyek
4. Menjalankan Aplikasi Laravel untuk Pertama Kali: php artisan serve
(Running Your Laravel Application)
Untuk menjalankan aplikasi Laravel, gunakan perintah artisan serve
:
php artisan serve
Perintah ini akan menjalankan server pengembangan (development server) pada port 8000 (secara default). Buka browser kamu dan kunjungi http://localhost:8000
. Jika kamu melihat halaman selamat datang Laravel, berarti aplikasi kamu sudah berjalan dengan sukses!
5. Routing di Laravel: Definisi Rute dan Controller (Understanding Laravel Routing)
Routing adalah mekanisme untuk memetakan URL (Uniform Resource Locator) ke kode yang akan dieksekusi. Di Laravel, rute didefinisikan dalam file routes/web.php
.
Contoh Routing Sederhana:
Buka file routes/web.php
dan tambahkan kode berikut:
<?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('/halo', function () {
return 'Halo, dunia!';
});
Route::get('/nama/{nama}', function ($nama) {
return 'Halo, ' . $nama . '!';
});
- Route
/halo
: Menampilkan string “Halo, dunia!”. - Route
/nama/{nama}
: Menerima parameternama
dari URL dan menampilkannya.
Controller:
Controller adalah kelas yang berisi logika aplikasi. Mari kita buat sebuah controller baru. Buka terminal dan jalankan perintah berikut:
php artisan make:controller HomeController
Perintah ini akan membuat file HomeController.php
di direktori app/Http/Controllers
.
Buka HomeController.php
dan tambahkan kode berikut:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class HomeController extends Controller
{
public function index()
{
return view('home');
}
public function sapa($nama)
{
return 'Halo, ' . $nama . '! Dari controller!';
}
}
Kemudian, ubah routing /nama/{nama}
di routes/web.php
menjadi:
Route::get('/sapa/{nama}', [AppHttpControllersHomeController::class, 'sapa']);
Sekarang, jika kamu mengunjungi /sapa/namamu
, kamu akan melihat pesan yang ditampilkan oleh controller.
6. Blade Templating Engine: Membuat Tampilan (Designing Views with Blade Templates)
Blade adalah templating engine bawaan Laravel yang memungkinkan kamu untuk membuat tampilan (views) dengan mudah dan efisien. Blade menggunakan sintaks yang ringkas dan ekspresif.
Membuat View:
Buat sebuah file bernama home.blade.php
di direktori resources/views
. Tambahkan kode berikut:
<!DOCTYPE html>
<html>
<head>
<title>Halaman Home</title>
</head>
<body>
<h1>Selamat Datang di Halaman Home!</h1>
<p>Ini adalah contoh tampilan Blade.</p>
</body>
</html>
Kemudian, ubah routing /
di routes/web.php
menjadi:
Route::get('/', [AppHttpControllersHomeController::class, 'index']);
Sekarang, jika kamu mengunjungi /
, kamu akan melihat tampilan home.blade.php
.
Fitur-Fitur Blade:
- Template Inheritance: Kamu bisa membuat layout utama dan memperluasnya ke tampilan lain.
- Control Structures: Blade menyediakan direktif untuk menggunakan struktur kontrol PHP seperti
@if
,@foreach
, dan@while
. - Data Display: Kamu bisa menampilkan data dengan mudah menggunakan sintaks
{{ $variable }}
. - Form Helpers: Blade menyediakan helper untuk membuat form HTML dengan mudah.
Contoh Template Inheritance:
-
Buat layout utama (
layouts/app.blade.php
):<!DOCTYPE html> <html> <head> <title>@yield('title')</title> </head> <body> <div class="container"> @yield('content') </div> </body> </html>
-
Buat tampilan yang memperluas layout (
home.blade.php
):@extends('layouts.app') @section('title', 'Halaman Home') @section('content') <h1>Selamat Datang di Halaman Home!</h1> <p>Ini adalah contoh tampilan Blade yang menggunakan template inheritance.</p> @endsection
7. Eloquent ORM: Interaksi dengan Database (Database Interactions with Eloquent)
Eloquent adalah Object-Relational Mapper (ORM) bawaan Laravel yang memudahkan kamu untuk berinteraksi dengan database. Eloquent memungkinkan kamu untuk melakukan operasi CRUD (Create, Read, Update, Delete) dengan menggunakan objek PHP, bukan query SQL langsung.
Konfigurasi Database:
Buka file .env
dan konfigurasi koneksi database kamu. Sesuaikan nilai-nilai berikut:
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 nama_database
, nama_pengguna
, dan kata_sandi
dengan informasi database kamu.
Membuat Model:
Model merepresentasikan tabel di database. Untuk membuat model, gunakan perintah berikut:
php artisan make:model Artikel -m
Perintah ini akan membuat file Artikel.php
di direktori app/Models
dan file migrasi di direktori database/migrations
. Opsi -m
menandakan bahwa kita juga ingin membuat migrasi.
Migrasi:
Migrasi digunakan untuk membuat dan memodifikasi struktur database. Buka file migrasi yang baru dibuat dan tambahkan kode berikut:
<?php
use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;
class CreateArtikelsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('artikels', function (Blueprint $table) {
$table->id();
$table->string('judul');
$table->text('isi');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('artikels');
}
}
Kode ini akan membuat tabel artikels
dengan kolom id
, judul
, isi
, created_at
, dan updated_at
.
Jalankan migrasi:
php artisan migrate
Menggunakan Model Eloquent:
Buka Artikel.php
dan tambahkan kode berikut (jika belum ada):
<?php
namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
class Artikel extends Model
{
use HasFactory;
protected $table = 'artikels'; // Opsional, jika nama tabel tidak sesuai konvensi
protected $fillable = ['judul', 'isi']; // Kolom yang boleh diisi
}
Contoh Penggunaan Eloquent:
-
Membuat data baru:
$artikel = new AppModelsArtikel(); $artikel->judul = 'Judul Artikel Baru'; $artikel->isi = 'Isi artikel baru...'; $artikel->save();
Atau:
AppModelsArtikel::create(['judul' => 'Judul Artikel Baru', 'isi' => 'Isi artikel baru...']);
-
Mengambil semua data:
$artikels = AppModelsArtikel::all();
-
Mengambil data berdasarkan ID:
$artikel = AppModelsArtikel::find(1);
-
Mengubah data:
$artikel = AppModelsArtikel::find(1); $artikel->judul = 'Judul Artikel yang Diubah'; $artikel->save();
-
Menghapus data:
$artikel = AppModelsArtikel::find(1); $artikel->delete();
8. Form dan Validasi: Input Data dari Pengguna (Handling User Input with Forms and Validation)
Membuat form dan memvalidasi input dari pengguna adalah bagian penting dari pengembangan aplikasi web. Laravel menyediakan fitur yang memudahkan kamu untuk melakukan ini.
Membuat Form:
Buat sebuah view bernama create.blade.php
di direktori resources/views/artikels
. Tambahkan kode berikut:
@extends('layouts.app')
@section('title', 'Buat Artikel Baru')
@section('content')
<h1>Buat Artikel Baru</h1>
<form action="/artikels" method="POST">
@csrf
<div class="form-group">
<label for="judul">Judul:</label>
<input type="text" class="form-control" id="judul" name="judul">
</div>
<div class="form-group">
<label for="isi">Isi:</label>
<textarea class="form-control" id="isi" name="isi"></textarea>
</div>
<button type="submit" class="btn btn-primary">Simpan</button>
</form>
@endsection
Routing:
Tambahkan rute untuk menampilkan form dan memproses data form di routes/web.php
:
Route::get('/artikels/create', [AppHttpControllersArtikelController::class, 'create']);
Route::post('/artikels', [AppHttpControllersArtikelController::class, 'store']);
Controller (ArtikelController):
Buat controller ArtikelController
dengan perintah:
php artisan make:controller ArtikelController
Buka ArtikelController.php
dan tambahkan kode berikut:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class ArtikelController extends Controller
{
public function create()
{
return view('artikels.create');
}
public function store(Request $request)
{
// Validasi data
$request->validate([
'judul' => 'required|max:255',
'isi' => 'required',
]);
// Simpan data ke database
AppModelsArtikel::create($request->all());
// Redirect ke halaman lain
return redirect('/artikels');
}
}
Validasi:
Laravel menyediakan fitur validasi yang mudah digunakan. Dalam contoh di atas, kita menggunakan $request->validate()
untuk memvalidasi input dari pengguna. Kita menentukan bahwa kolom judul
harus diisi (required) dan maksimal 255 karakter, dan kolom isi
juga harus diisi. Jika validasi gagal, Laravel akan secara otomatis mengarahkan pengguna kembali ke form dengan pesan error.
9. Authentication (Autentikasi): Keamanan Aplikasi Anda (Securing Your Application)
Autentikasi adalah proses memverifikasi identitas pengguna. Laravel menyediakan fitur autentikasi yang siap pakai, yang memudahkan kamu untuk mengamankan aplikasi kamu.
Menggunakan Laravel UI:
Laravel UI menyediakan antarmuka untuk menghasilkan boilerplate kode autentikasi. Instal Laravel UI:
composer require laravel/ui
Kemudian jalankan perintah berikut:
php artisan ui vue --auth
atau
php artisan ui react --auth
atau
php artisan ui bootstrap --auth
Pilih salah satu sesuai dengan preferensi frontend yang kamu inginkan (Vue, React, atau Bootstrap).
Setelah itu, jalankan:
npm install
npm run dev
Migrasi Database:
Jalankan migrasi untuk membuat tabel users
:
php artisan migrate
Mencoba Autentikasi:
Sekarang, kamu bisa mengakses rute /register
dan /login
untuk mendaftarkan pengguna baru dan login ke aplikasi kamu. Laravel secara otomatis akan membuat tabel users
dan mengelola proses autentikasi.
10. Middleware (Middleware): Menambah Lapisan Keamanan dan Fungsionalitas (Adding Security and Functionality with Middleware)
Middleware adalah lapisan antara request dan response. Middleware dapat digunakan untuk melakukan berbagai tugas seperti autentikasi, otorisasi, logging, dan lainnya.
Contoh Middleware:
Laravel sudah menyediakan beberapa middleware bawaan seperti Authenticate
(untuk autentikasi) dan VerifyCsrfToken
(untuk mencegah serangan CSRF).
Membuat Middleware Sendiri:
Untuk membuat middleware sendiri, gunakan perintah:
php artisan make:middleware CheckAge
Perintah ini akan membuat file CheckAge.php
di direktori app/Http/Middleware
.
Buka CheckAge.php
dan tambahkan kode berikut:
<?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 < 18) {
return redirect('home');
}
return $next($request);
}
}
Middleware ini akan memeriksa apakah parameter age
dalam request kurang dari 18. Jika iya, pengguna akan dialihkan ke halaman home
.
Mendaftarkan Middleware:
Daerahkan middleware di app/Http/Kernel.php
dalam array $routeMiddleware
:
protected $routeMiddleware = [
// ...
'checkage' => AppHttpMiddlewareCheckAge::class,
];
Menggunakan Middleware di Rute:
Route::get('/dewasa', function () {
return 'Selamat datang, Anda sudah dewasa!';
})->middleware('checkage');
Sekarang, jika kamu mengakses /dewasa?age=17
, kamu akan dialihkan ke halaman home
. Jika kamu mengakses /dewasa?age=20
, kamu akan melihat pesan “Selamat datang, Anda sudah dewasa!”.
11. Testing (Pengujian): Menjamin Kualitas Aplikasi (Ensuring Application Quality with Testing)
Testing adalah bagian penting dari pengembangan aplikasi. Laravel menyediakan fitur yang memudahkan kamu untuk menulis dan menjalankan test.
Jenis Test:
- Unit Test: Menguji unit kode terkecil, seperti fungsi atau method.
- Feature Test: Menguji fitur aplikasi secara keseluruhan, seperti alur pengguna.
Membuat Test:
Untuk membuat test, gunakan perintah:
php artisan make:test ArtikelTest
Perintah ini akan membuat file ArtikelTest.php
di direktori tests/Feature
.
Contoh Test:
Buka ArtikelTest.php
dan tambahkan kode berikut:
<?php
namespace TestsFeature;
use IlluminateFoundationTestingRefreshDatabase;
use IlluminateFoundationTestingWithFaker;
use TestsTestCase;
class ArtikelTest extends TestCase
{
use RefreshDatabase;
/** @test */
public function user_can_create_an_artikel()
{
$this->withoutExceptionHandling();
$data = [
'judul' => 'Judul Artikel Baru',
'isi' => 'Isi artikel baru...',
];
$response = $this->post('/artikels', $data);
$response->assertRedirect('/artikels');
$this->assertDatabaseHas('artikels', $data);
}
}
Test ini akan membuat data artikel baru melalui form, memastikan redirect ke halaman /artikels
, dan memastikan data tersimpan di database.
Menjalankan Test:
Untuk menjalankan test, gunakan perintah:
php artisan test
12. Deployment (Penyebaran): Mempublikasikan Aplikasi Laravel Anda (Publishing Your Laravel Application)
Setelah aplikasi kamu selesai dikembangkan, saatnya untuk menyebarkannya ke server agar bisa diakses oleh pengguna.
Langkah-langkah Deployment:
- Konfigurasi Server: Pilih server hosting yang mendukung PHP dan database (seperti MySQL atau PostgreSQL).
- Upload Kode: Upload kode aplikasi Laravel kamu ke server.
- Konfigurasi Database: Buat database di server dan konfigurasi koneksi database di file
.env
. - Install Dependencies: Jalankan perintah
composer install
untuk menginstal semua dependencies. - Generate Application Key: Jalankan perintah
php artisan key:generate
untuk menghasilkan application key. - Konfigurasi Web Server: Konfigurasi web server (seperti Apache atau Nginx) untuk mengarahkan traffic ke direktori
public
di proyek Laravel kamu. - Optimasi: Jalankan perintah
php artisan optimize
untuk mengoptimalkan aplikasi.
Menggunakan Laravel Vapor:
Laravel Vapor adalah platform deployment serverless yang dirancang khusus untuk aplikasi Laravel. Vapor memudahkan kamu untuk menyebarkan dan mengelola aplikasi Laravel kamu di AWS.
Kesimpulan
Selamat! Kamu telah menyelesaikan tutorial Laravel untuk pemula ini. Sekarang kamu memiliki dasar yang kuat untuk memulai pengembangan aplikasi web dengan Laravel. Jangan berhenti belajar dan terus eksplorasi fitur-fitur Laravel yang lain. Ingatlah untuk selalu merujuk ke dokumentasi resmi Laravel (https://laravel.com/docs) dan komunitas Laravel yang aktif jika kamu mengalami kesulitan. Semoga sukses dengan proyek Laravel kamu! Tutorial Laravel untuk pemula ini hanyalah awal, masih banyak lagi yang bisa dipelajari!