Selamat datang, para calon web developer! Apakah kamu tertarik untuk membuat website pertamamu sendiri dengan framework PHP yang populer dan powerful, Laravel? Jika iya, kamu berada di tempat yang tepat! Tutorial Laravel dasar ini dibuat khusus untuk pemula yang ingin belajar langkah demi langkah membuat website sederhana dengan bahasa Indonesia. Jangan khawatir jika kamu belum memiliki pengalaman coding sama sekali, kita akan mulai dari nol!
Artikel ini akan membimbingmu melalui proses instalasi, konfigurasi, dan implementasi fitur-fitur dasar Laravel untuk membangun website pertamamu. Mari kita mulai petualangan seru ini!
1. Apa Itu Laravel dan Mengapa Memilihnya? (Pengenalan dan Keunggulan)
Sebelum memulai tutorial Laravel dasar ini, mari kita pahami dulu apa itu Laravel. Laravel adalah sebuah framework PHP yang dirancang untuk mempermudah dan mempercepat proses pengembangan aplikasi web. Framework ini menyediakan berbagai fitur dan alat yang siap pakai, sehingga kamu tidak perlu menulis kode dari awal untuk setiap fitur yang kamu butuhkan.
Mengapa Laravel?
- Sintaks yang Elegan dan Mudah Dibaca: Kode Laravel ditulis dengan sintaks yang bersih dan mudah dipahami, sehingga membuat proses coding menjadi lebih menyenangkan.
- Fitur yang Kaya dan Komprehensif: Laravel menyediakan berbagai fitur built-in seperti routing, templating engine (Blade), ORM (Eloquent), authentication, authorization, dan masih banyak lagi.
- Keamanan yang Terjamin: Laravel memiliki fitur keamanan yang kuat untuk melindungi aplikasi web kamu dari serangan-serangan umum seperti SQL injection, XSS, dan CSRF.
- Komunitas yang Besar dan Aktif: Laravel memiliki komunitas developer yang besar dan aktif di seluruh dunia, sehingga kamu dapat dengan mudah menemukan bantuan dan solusi jika mengalami masalah.
- Dokumentasi yang Lengkap dan Terstruktur: Laravel memiliki dokumentasi yang lengkap dan terstruktur dengan baik, sehingga kamu dapat dengan mudah mempelajari berbagai fitur dan fungsi yang tersedia.
- Terstruktur dengan Pola MVC (Model-View-Controller): Laravel menerapkan pola desain MVC yang memisahkan logika aplikasi (Model), tampilan (View), dan kontrol alur (Controller), sehingga memudahkan dalam pengelolaan dan pemeliharaan kode.
Dengan berbagai keunggulan ini, Laravel menjadi pilihan yang tepat bagi pemula yang ingin belajar membuat website dengan cepat, aman, dan efisien.
2. Persiapan Lingkungan Pengembangan (Instalasi dan Konfigurasi)
Sebelum memulai tutorial Laravel dasar ini, kamu perlu menyiapkan lingkungan pengembangan di komputermu. Berikut adalah langkah-langkahnya:
- Install PHP: Pastikan kamu sudah menginstall PHP versi 7.4 atau lebih tinggi. Kamu bisa mendownloadnya dari website resmi PHP (https://www.php.net/downloads). Setelah diinstall, pastikan PHP sudah terkonfigurasi dengan benar dan dapat diakses melalui command line.
- Install Composer: Composer adalah dependency manager untuk PHP. Gunakan Composer untuk mengelola library dan package yang dibutuhkan dalam project Laravel kamu. Kamu bisa mendownloadnya dari website resmi Composer (https://getcomposer.org/download/).
- Install Node.js dan NPM (Opsional tapi Direkomendasikan): Meskipun tidak wajib, Node.js dan NPM (Node Package Manager) sangat berguna untuk mengelola front-end dependencies (seperti JavaScript library dan CSS framework). Kamu bisa mendownloadnya dari website resmi Node.js (https://nodejs.org/en/download/).
- Install Text Editor/IDE: Pilihlah text editor atau IDE (Integrated Development Environment) yang kamu sukai untuk menulis kode. Beberapa pilihan populer adalah VS Code, Sublime Text, PHPStorm, dan Atom.
Setelah semua persiapan selesai, mari kita install Laravel. Buka command line (terminal) dan jalankan perintah berikut:
composer create-project --prefer-dist laravel/laravel nama-project
Ganti nama-project dengan nama project yang kamu inginkan. Perintah ini akan mendownload dan menginstall Laravel di direktori yang kamu tentukan.
Setelah proses instalasi selesai, masuk ke direktori project:
cd nama-project
Selanjutnya, kita perlu mengkonfigurasi database. Buka file .env yang ada di root direktori project. Cari bagian yang berisi konfigurasi database, dan sesuaikan dengan setting database yang kamu gunakan. Contoh:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database
DB_USERNAME=nama_user
DB_PASSWORD=password_user
Ganti nama_database, nama_user, dan password_user dengan nilai yang sesuai.
Terakhir, jalankan perintah berikut untuk menjalankan development server:
php artisan serve
Buka browser dan kunjungi http://127.0.0.1:8000. Jika kamu melihat halaman default Laravel, berarti kamu sudah berhasil menginstall dan mengkonfigurasi Laravel! Selamat! Sekarang kita siap untuk melanjutkan tutorial Laravel dasar ini dan mulai membuat website pertamamu.
3. Routing dan Controller: Menangani Permintaan dan Logika Aplikasi
Salah satu konsep penting dalam tutorial Laravel dasar ini adalah routing dan controller. Routing bertugas untuk menentukan bagaimana aplikasi merespons permintaan (request) dari user, sedangkan controller bertugas untuk menangani logika aplikasi dan berinteraksi dengan model.
Routing
Routing didefinisikan di dalam file routes/web.php. Di sini kamu bisa menentukan URL mana yang akan direspon dan controller mana yang akan dieksekusi. Contoh:
use IlluminateSupportFacadesRoute;
use AppHttpControllersHomeController;
Route::get('/', [HomeController::class, 'index']);
Route::get('/about', function () {
return view('about');
});
Baris pertama mendefinisikan route untuk URL / (homepage). Ketika user mengakses homepage, aplikasi akan menjalankan method index pada class HomeController. Baris kedua mendefinisikan route untuk URL /about. Ketika user mengakses URL ini, aplikasi akan menampilkan view bernama about.
Controller
Controller adalah class yang berisi logika aplikasi. Untuk membuat controller, kamu bisa menggunakan perintah berikut:
php artisan make:controller HomeController
Perintah ini akan membuat file HomeController.php di direktori app/Http/Controllers. Buka file tersebut, dan tambahkan method index:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class HomeController extends Controller
{
public function index()
{
return view('welcome'); // Menampilkan view 'welcome'
}
}
Method index ini akan mengembalikan view bernama welcome, yang merupakan halaman default Laravel.
4. Blade Templating Engine: Membuat Tampilan yang Dinamis dan Reusable
Blade adalah templating engine yang powerful dan mudah digunakan yang disediakan oleh Laravel. Blade memungkinkan kamu untuk membuat tampilan yang dinamis dan reusable dengan menggunakan sintaks yang sederhana dan intuitif. Ini sangat penting dalam tutorial Laravel dasar karena akan mempermudah pembuatan tampilan website.
Membuat Layout Utama
Biasanya, sebuah website memiliki layout utama (master layout) yang berisi struktur dasar halaman, seperti header, footer, dan sidebar. Untuk membuat layout utama, buat file baru bernama app.blade.php di direktori resources/views/layouts. Contoh:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@yield('title') - Website Saya</title>
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
</head>
<body>
<header>
<h1>Website Saya</h1>
</header>
<div class="container">
@yield('content')
</div>
<footer>
<p>© 2023 Website Saya</p>
</footer>
<script src="{{ asset('js/app.js') }}"></script>
</body>
</html>
Perhatikan directive @yield. Directive ini digunakan untuk menandai bagian-bagian halaman yang akan diisi oleh view anak (child view).
Membuat View Anak
Untuk membuat view anak, buat file baru di direktori resources/views. Contoh, buat file bernama welcome.blade.php:
@extends('layouts.app')
@section('title', 'Homepage')
@section('content')
<h2>Selamat Datang di Website Saya!</h2>
<p>Ini adalah halaman homepage.</p>
@endsection
Directive @extends digunakan untuk menentukan layout utama yang akan digunakan. Directive @section digunakan untuk mengisi bagian-bagian yang telah ditandai dengan directive @yield di layout utama.
Menggunakan Asset (CSS, JavaScript, Images)
Untuk menggunakan asset seperti CSS, JavaScript, dan images, simpan file-file tersebut di direktori public. Kemudian, gunakan fungsi asset() untuk menghasilkan URL yang benar. Contoh:
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
<img src="{{ asset('images/logo.png') }}" alt="Logo">
5. Eloquent ORM: Berinteraksi dengan Database dengan Mudah
Eloquent ORM (Object-Relational Mapper) adalah fitur yang sangat berguna dalam tutorial Laravel dasar ini. Eloquent menyediakan cara yang mudah dan intuitif untuk berinteraksi dengan database. Dengan Eloquent, kamu tidak perlu menulis query SQL secara manual, tetapi kamu bisa menggunakan object dan method untuk melakukan operasi CRUD (Create, Read, Update, Delete).
Membuat Model
Untuk membuat model, gunakan perintah berikut:
php artisan make:model Post -m
Perintah ini akan membuat file Post.php di direktori app/Models dan juga membuat migration file untuk membuat tabel posts di database.
Definisi Model
Buka file Post.php, dan tambahkan kode berikut:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
class Post extends Model
{
use HasFactory;
protected $fillable = ['title', 'content']; // Kolom yang boleh diisi
}
$fillable adalah array yang berisi nama-nama kolom yang boleh diisi melalui mass assignment.
Membuat Migration
Buka migration file yang baru saja dibuat, dan tambahkan kode berikut:
<?php
use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('posts');
}
};
Kode ini akan membuat tabel posts dengan kolom id, title, content, created_at, dan updated_at.
Menjalankan Migration
Untuk menjalankan migration, gunakan perintah berikut:
php artisan migrate
Menggunakan Eloquent
Berikut adalah contoh penggunaan Eloquent untuk melakukan operasi CRUD:
-
Membuat data baru:
$post = new Post(); $post->title = 'Judul Post'; $post->content = 'Isi Post'; $post->save();Atau:
Post::create(['title' => 'Judul Post', 'content' => 'Isi Post']); -
Membaca data:
$posts = Post::all(); // Mengambil semua data $post = Post::find(1); // Mengambil data dengan ID 1 $posts = Post::where('title', 'like', '%Judul%')->get(); // Mengambil data dengan kriteria tertentu -
Mengupdate data:
$post = Post::find(1); $post->title = 'Judul Post Baru'; $post->save(); -
Menghapus data:
$post = Post::find(1); $post->delete();
Dengan Eloquent, kamu bisa dengan mudah berinteraksi dengan database tanpa perlu menulis query SQL yang rumit.
6. Membuat Form dan Menangani Input Data (Request dan Validasi)
Dalam tutorial Laravel dasar ini, kita akan belajar cara membuat form dan menangani input data dari user. Laravel menyediakan fitur yang lengkap untuk mempermudah proses ini, termasuk validasi data.
Membuat Form
Untuk membuat form, kamu bisa menggunakan HTML form seperti biasa. Contoh:
<form action="/posts" method="POST">
@csrf
<label for="title">Judul:</label><br>
<input type="text" id="title" name="title"><br><br>
<label for="content">Isi:</label><br>
<textarea id="content" name="content"></textarea><br><br>
<input type="submit" value="Simpan">
</form>
Pastikan kamu menambahkan directive @csrf untuk melindungi form dari serangan CSRF.
Menangani Request
Untuk menangani request dari form, kamu perlu mendefinisikan route dan controller. Contoh:
use IlluminateSupportFacadesRoute;
use AppHttpControllersPostController;
Route::post('/posts', [PostController::class, 'store']);
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppModelsPost;
class PostController extends Controller
{
public function store(Request $request)
{
// Logika untuk menyimpan data
}
}
Di dalam method store, kamu bisa mengakses data yang dikirimkan melalui form menggunakan object $request. Contoh:
public function store(Request $request)
{
$title = $request->input('title');
$content = $request->input('content');
// Simpan data ke database
Post::create(['title' => $title, 'content' => $content]);
return redirect('/posts');
}
Validasi Data
Laravel menyediakan fitur validasi data yang sangat mudah digunakan. Kamu bisa mendefinisikan aturan validasi di dalam controller. Contoh:
public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|max:255',
'content' => 'required',
]);
// Simpan data ke database
Post::create($validatedData);
return redirect('/posts');
}
Kode ini akan memastikan bahwa field title wajib diisi dan maksimal 255 karakter, dan field content wajib diisi. Jika validasi gagal, Laravel akan secara otomatis mengarahkan user kembali ke form dengan pesan error.
Kamu bisa menampilkan pesan error di dalam view menggunakan directive @error. Contoh:
<label for="title">Judul:</label><br>
<input type="text" id="title" name="title" value="{{ old('title') }}"><br>
@error('title')
<div class="alert alert-danger">{{ $message }}</div>
@enderror
<br><br>
Fungsi old() digunakan untuk menampilkan nilai yang sebelumnya diinputkan oleh user jika terjadi kesalahan validasi.
7. Authentication: Mengamankan Website dengan Login dan Logout
Keamanan adalah aspek penting dalam tutorial Laravel dasar. Laravel menyediakan fitur authentication yang lengkap untuk mengamankan website kamu.
Menggunakan Laravel UI
Cara termudah untuk mengimplementasikan authentication adalah dengan menggunakan Laravel UI. Install Laravel UI menggunakan Composer:
composer require laravel/ui
Kemudian, jalankan perintah berikut untuk meng-generate scaffolding authentication:
php artisan ui vue --auth
atau, jika kamu lebih suka menggunakan Bootstrap:
php artisan ui bootstrap --auth
Perintah ini akan meng-generate view untuk login, register, dan reset password, serta route dan controller yang diperlukan.
Menjalankan Migration
Setelah meng-generate scaffolding authentication, jalankan migration untuk membuat tabel users di database:
php artisan migrate
Menggunakan Fitur Authentication
Sekarang kamu bisa mengakses halaman login dan register melalui URL /login dan /register. Laravel UI secara otomatis menyediakan middleware untuk melindungi halaman yang memerlukan otentikasi. Contoh:
Route::get('/profile', function () {
// Hanya user yang sudah login yang bisa mengakses halaman ini
})->middleware('auth');
8. Kesimpulan dan Langkah Selanjutnya (Mengembangkan Website Lebih Lanjut)
Selamat! Kamu telah berhasil menyelesaikan tutorial Laravel dasar ini. Kamu sudah belajar tentang dasar-dasar Laravel, mulai dari instalasi, routing, controller, blade templating engine, eloquent ORM, form handling, hingga authentication.
Langkah Selanjutnya
Setelah mempelajari dasar-dasar Laravel, kamu bisa mengembangkan website kamu lebih lanjut dengan mempelajari fitur-fitur berikut:
- Authorization: Mengatur hak akses user.
- Queues: Menangani tugas-tugas yang memakan waktu di background.
- Testing: Menulis unit test dan integration test untuk memastikan kode kamu berfungsi dengan benar.
- API Development: Membuat API untuk aplikasi mobile atau aplikasi lain.
- Package Development: Membuat package Laravel reusable yang bisa kamu gunakan di project lain.
Sumber Belajar Tambahan
- Dokumentasi Resmi Laravel: https://laravel.com/docs
- Laracasts: https://laracasts.com/
- Laravel News: https://laravel-news.com/
Jangan berhenti belajar dan teruslah berlatih. Dengan ketekunan dan semangat, kamu akan menjadi seorang web developer yang handal! Semoga tutorial Laravel dasar ini bermanfaat untukmu. Selamat berkarya!









