HOSTING CEPATDOMAIN MURAHSSL GRATISSUPPORT 24/7UPTIME 99.9%SERVER INDONESIAHOSTING CEPATDOMAIN MURAHSSL GRATISSUPPORT 24/7UPTIME 99.9%SERVER INDONESIA
Web Development

Cara Membuat Website dengan Laravel: Panduan Lengkap dari Nol

Tim HostingEkspres|30 Maret 2026|15 menit baca
cara membuat website dengan laraveltutorial laravel pemulalaravel indonesiabelajar laravellaravel mvcframework php laravellaravel blade templatelaravel eloquent
Cara Membuat Website dengan Laravel: Panduan Lengkap dari Nol
📚 Baca juga: Cara Install Laravel | Framework Php Terbaik | Cara Membuat Website dengan Php | Cara Membuat Website

Mengapa Laravel Menjadi Framework PHP Paling Populer?

Cara membuat website dengan Laravel adalah topik yang selalu relevan bagi developer PHP di Indonesia. Laravel bukan sekadar framework - ia adalah ekosistem lengkap yang menawarkan solusi elegan untuk hampir setiap kebutuhan pengembangan web modern. Sejak diperkenalkan oleh Taylor Otwell pada 2011, Laravel telah berkembang menjadi framework PHP paling populer di dunia berdasarkan jumlah unduhan, bintang GitHub, dan komunitas aktif.

Apa yang membuat Laravel unggul dibandingkan framework PHP lain? Laravel hadir dengan Eloquent ORM yang intuitif untuk berinteraksi dengan database, sistem routing yang ekspresif, Blade templating engine yang powerful namun ringan, sistem migrasi database yang terstruktur, serta puluhan fitur bawaan seperti autentikasi, antrian tugas, penjadwalan, dan broadcasting. Semua ini dikemas dengan sintaks yang bersih dan dokumentasi kelas dunia.

Pada panduan ini, Anda akan belajar cara membuat website dengan Laravel dari nol - mulai dari persiapan lingkungan pengembangan, instalasi, memahami arsitektur MVC Laravel, membuat halaman dinamis dengan database, hingga siap untuk di-deploy ke hosting.

Persyaratan Sistem dan Persiapan Lingkungan

Sebelum mulai membuat website dengan Laravel, pastikan komputer Anda telah memenuhi persyaratan berikut:

cara membuat website dengan laravel
Ilustrasi cara membuat website dengan laravel
Komponen Versi Minimum Rekomendasi
PHP PHP 8.2 PHP 8.3
Composer 2.x Versi terbaru
Database MySQL 5.7 / MariaDB 10.3 MySQL 8.0 / MariaDB 10.6
Node.js Node 18 Node 20 LTS

Untuk lingkungan pengembangan lokal di Windows, gunakan Laragon - solusi terbaik yang menyertakan PHP, MySQL, Apache/Nginx, dan Composer dalam satu installer ringan. Pengguna macOS bisa menggunakan Laravel Herd yang menawarkan pengalaman development Laravel yang sangat mulus tanpa konfigurasi rumit.

Langkah 1: Instalasi Laravel via Composer

Ada dua cara resmi untuk membuat project Laravel baru. Cara pertama menggunakan Laravel Installer:

# Install Laravel Installer secara global (cukup sekali)
composer global require laravel/installer

# Buat project baru
laravel new nama-website-saya

Cara kedua langsung menggunakan Composer:

composer create-project laravel/laravel nama-website-saya

Setelah proses instalasi selesai, masuk ke folder project dan jalankan development server bawaan Laravel:

cd nama-website-saya
php artisan serve

Buka browser dan akses http://localhost:8000. Jika halaman welcome Laravel muncul dengan tampilan yang indah, instalasi berhasil dan Anda siap untuk mulai membuat website dengan Laravel.

Langkah 2: Memahami Struktur Folder Laravel

Pemahaman struktur folder adalah fondasi penting dalam cara membuat website dengan Laravel. Berikut folder-folder utama yang perlu Anda ketahui:

nama-website-saya/
├── app/
│   ├── Http/
│   │   ├── Controllers/    ← Logika aplikasi (Controller)
│   │   └── Middleware/     ← Filter request HTTP
│   └── Models/             ← Model Eloquent (interaksi database)
├── bootstrap/              ← Bootstrapping framework
├── config/                 ← Semua file konfigurasi
├── database/
│   ├── migrations/         ← Struktur tabel database
│   └── seeders/            ← Data awal database
├── public/                 ← Document root web server (index.php, assets)
├── resources/
│   ├── views/              ← Template Blade (HTML)
│   ├── css/                ← File CSS sumber
│   └── js/                 ← File JavaScript sumber
├── routes/
│   └── web.php             ← Definisi route website
├── storage/                ← Cache, logs, file upload
├── .env                    ← Konfigurasi environment (JANGAN di-commit ke Git)
└── artisan                 ← CLI Laravel
Tips Penting: Dalam arsitektur MVC Laravel, Model mengelola data, View menampilkan antarmuka, dan Controller menghubungkan keduanya. Memahami alur ini akan membuat pengembangan website dengan Laravel jauh lebih mudah.

Langkah 3: Konfigurasi Database di File .env

Laravel menggunakan file .env untuk menyimpan konfigurasi yang bersifat sensitif dan berbeda antar environment. Buka file .env di root project dan sesuaikan konfigurasi database:

APP_NAME="Website Saya"
APP_ENV=local
APP_KEY=base64:...   # Sudah terisi otomatis saat instalasi
APP_DEBUG=true
APP_URL=http://localhost:8000

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database_saya
DB_USERNAME=root
DB_PASSWORD=

Buat database baru di MySQL sesuai nilai DB_DATABASE di atas. Anda bisa menggunakan phpMyAdmin atau perintah MySQL langsung:

mysql -u root -p
CREATE DATABASE nama_database_saya CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;

Langkah 4: Membuat Migrasi dan Model

Laravel menggunakan migrasi database - semacam version control untuk skema database. Ini memungkinkan Anda mendefinisikan struktur tabel menggunakan kode PHP dan mereplikasinya di mana saja.

Mari buat contoh website blog sederhana. Buat migrasi untuk tabel artikel:

# Buat migrasi sekaligus model
php artisan make:model Artikel -m

Perintah ini membuat dua file sekaligus: app/Models/Artikel.php dan file migrasi di database/migrations/. Buka file migrasi yang baru dibuat dan tambahkan kolom-kolom yang diperlukan:

<?php

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

return new class extends Migration {
    public function up(): void
    {
        Schema::create('artikels', function (Blueprint $table) {
            $table->id();
            $table->string('judul');
            $table->string('slug')->unique();
            $table->text('ringkasan');
            $table->longText('konten');
            $table->string('penulis')->default('Admin');
            $table->boolean('published')->default(false);
            $table->timestamps();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('artikels');
    }
};

Jalankan migrasi untuk membuat tabel di database:

php artisan migrate

Sekarang buka dan konfigurasi Model app/Models/Artikel.php:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class Artikel extends Model
{
    protected $fillable = [
        'judul',
        'slug',
        'ringkasan',
        'konten',
        'penulis',
        'published',
    ];

    protected $casts = [
        'published' => 'boolean',
    ];

    // Scope untuk artikel yang sudah dipublikasi
    public function scopePublished($query)
    {
        return $query->where('published', true);
    }
}

Langkah 5: Membuat Controller

Controller adalah jantung dari cara membuat website dengan Laravel. Ia menerima request dari user, mengambil data dari Model, lalu mengirimnya ke View untuk ditampilkan. Buat controller untuk artikel:

php artisan make:controller ArtikelController --resource

Flag --resource membuat controller dengan 7 method CRUD secara otomatis. Edit app/Http/Controllers/ArtikelController.php:

<?php

namespace AppHttpControllers;

use AppModelsArtikel;
use IlluminateHttpRequest;
use IlluminateSupportStr;

class ArtikelController extends Controller
{
    // Tampilkan daftar semua artikel
    public function index()
    {
        $artikels = Artikel::published()
            ->latest()
            ->paginate(10);

        return view('artikel.index', compact('artikels'));
    }

    // Tampilkan satu artikel berdasarkan slug
    public function show(string $slug)
    {
        $artikel = Artikel::where('slug', $slug)
            ->where('published', true)
            ->firstOrFail();

        return view('artikel.show', compact('artikel'));
    }

    // Simpan artikel baru
    public function store(Request $request)
    {
        $validated = $request->validate([
            'judul'     => 'required|string|max:255',
            'ringkasan' => 'required|string|max:500',
            'konten'    => 'required|string',
            'penulis'   => 'required|string|max:100',
        ]);

        $validated['slug']      = Str::slug($validated['judul']);
        $validated['published'] = $request->boolean('published');

        Artikel::create($validated);

        return redirect()->route('artikel.index')
            ->with('success', 'Artikel berhasil disimpan!');
    }
}
cara membuat website dengan laravel
Ilustrasi cara membuat website dengan laravel

Langkah 6: Mendefinisikan Route

Route di Laravel mendefinisikan URL apa yang tersedia di website dan controller mana yang menanganinya. Buka routes/web.php:

<?php

use AppHttpControllersArtikelController;
use IlluminateSupportFacadesRoute;

// Halaman utama
Route::get('/', function () {
    return view('welcome');
});

// Route untuk artikel (RESTful)
Route::get('/artikel', [ArtikelController::class, 'index'])->name('artikel.index');
Route::get('/artikel/{slug}', [ArtikelController::class, 'show'])->name('artikel.show');
Route::post('/artikel', [ArtikelController::class, 'store'])->name('artikel.store');

Untuk melihat semua route yang terdaftar di aplikasi Anda:

php artisan route:list

Langkah 7: Membuat View dengan Blade Template

Blade adalah templating engine bawaan Laravel yang sangat powerful. Blade memungkinkan Anda membuat layout yang dapat diwarisi, komponen yang dapat digunakan ulang, dan menyisipkan logika PHP dengan sintaks yang bersih.

Layout Utama: resources/views/layouts/app.blade.php

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@yield('title', 'Website Saya') - Laravel</title>
    <style>
        * { box-sizing: border-box; margin: 0; padding: 0; }
        body { font-family: 'Segoe UI', sans-serif; color: #1e293b; }
        nav { background: #1e293b; padding: 1rem 2rem; }
        nav a { color: #fff; text-decoration: none; margin-right: 1.5rem; }
        .container { max-width: 900px; margin: 0 auto; padding: 2rem; }
        .card { border: 1px solid #e2e8f0; border-radius: 8px; padding: 1.5rem; margin-bottom: 1rem; }
        .alert-success { background: #f0fdf4; border: 1px solid #22c55e; padding: 1rem; border-radius: 4px; margin-bottom: 1rem; color: #15803d; }
    </style>
</head>
<body>
    <nav>
        <a href="{{ url('/') }}">Beranda</a>
        <a href="{{ route('artikel.index') }}">Artikel</a>
    </nav>
    <div class="container">
        @if(session('success'))
            <div class="alert-success">{{ session('success') }}</div>
        @endif
        @yield('content')
    </div>
</body>
</html>

Halaman Daftar Artikel: resources/views/artikel/index.blade.php

@extends('layouts.app')

@section('title', 'Daftar Artikel')

@section('content')
    <h1 style="margin-bottom:1.5rem;">Daftar Artikel</h1>

    @forelse($artikels as $artikel)
        <div class="card">
            <h2>
                <a href="{{ route('artikel.show', $artikel->slug) }}"
                   style="color:#1e293b;text-decoration:none;">
                    {{ $artikel->judul }}
                </a>
            </h2>
            <p style="color:#64748b;margin:.5rem 0;">{{ $artikel->ringkasan }}</p>
            <small style="color:#94a3b8;">
                Oleh {{ $artikel->penulis }} —
                {{ $artikel->created_at->translatedFormat('d F Y') }}
            </small>
        </div>
    @empty
        <p>Belum ada artikel yang dipublikasikan.</p>
    @endforelse

    <div style="margin-top:1.5rem;">
        {{ $artikels->links() }}
    </div>
@endsection

Langkah 8: Mengisi Data dengan Database Seeder

Laravel menyediakan fitur Seeder untuk mengisi database dengan data awal atau data dummy untuk keperluan testing:

# Buat seeder
php artisan make:seeder ArtikelSeeder

Edit file database/seeders/ArtikelSeeder.php:

<?php

namespace DatabaseSeeders;

use AppModelsArtikel;
use IlluminateDatabaseSeeder;
use IlluminateSupportStr;

class ArtikelSeeder extends Seeder
{
    public function run(): void
    {
        $artikels = [
            ['judul' => 'Pengenalan Laravel untuk Pemula', 'penulis' => 'Admin'],
            ['judul' => 'Cara Membuat REST API dengan Laravel', 'penulis' => 'Admin'],
            ['judul' => 'Tutorial Eloquent ORM Laravel', 'penulis' => 'Admin'],
        ];

        foreach ($artikels as $data) {
            Artikel::create([
                'judul'     => $data['judul'],
                'slug'      => Str::slug($data['judul']),
                'ringkasan' => 'Ini adalah ringkasan dari artikel ' . $data['judul'],
                'konten'    => '<p>Konten lengkap artikel ' . $data['judul'] . '</p>',
                'penulis'   => $data['penulis'],
                'published' => true,
            ]);
        }
    }
}

Jalankan seeder:

php artisan db:seed --class=ArtikelSeeder

Langkah 9: Fitur Autentikasi dengan Laravel Breeze

Salah satu keunggulan Laravel dalam cara membuat website adalah kemudahan menambahkan fitur autentikasi lengkap dengan paket resmi. Laravel Breeze menyediakan implementasi autentikasi yang ringan dan mudah dikustomisasi:

# Install Laravel Breeze
composer require laravel/breeze --dev

# Publish scaffold Breeze (pilih Blade untuk tampilan sederhana)
php artisan breeze:install blade

# Install dependencies frontend
npm install && npm run dev

# Jalankan migrasi untuk tabel users
php artisan migrate

Dengan hanya beberapa perintah, website Laravel Anda sudah memiliki fitur register, login, logout, verifikasi email, dan reset password yang lengkap dan siap pakai.

Langkah 10: Optimasi untuk Production

Sebelum meluncurkan website Laravel Anda ke publik, jalankan beberapa optimasi penting:

# Ubah APP_ENV dan APP_DEBUG di .env
APP_ENV=production
APP_DEBUG=false

# Compile dan minify assets frontend
npm run build

# Cache konfigurasi, route, dan view
php artisan config:cache
php artisan route:cache
php artisan view:cache

# Optimasi autoloader Composer
composer install --optimize-autoloader --no-dev

# Shortcut untuk semua optimasi sekaligus
php artisan optimize
Peringatan Keamanan: Pastikan APP_DEBUG=false di production. Jika debug mode aktif, informasi sensitif dari konfigurasi server dan stack trace error bisa terekspos ke pengguna publik.

Fitur-Fitur Laravel yang Wajib Anda Pelajari Selanjutnya

Setelah berhasil membuat website dengan Laravel dari panduan di atas, berikut fitur-fitur lanjutan yang akan membuat website Anda semakin powerful:

  • Eloquent Relationships - hasOne, hasMany, belongsTo, belongsToMany untuk relasi antar tabel yang elegan
  • Laravel Livewire - Bangun komponen interaktif seperti React/Vue tanpa meninggalkan PHP
  • Laravel Queues - Proses tugas berat (kirim email, resize gambar) secara asynchronous di background
  • Laravel Events & Listeners - Arsitektur event-driven untuk kode yang lebih terorganisir
  • Laravel Sanctum - Autentikasi API ringan untuk SPA dan mobile app
  • Laravel Telescope - Debug dan monitoring aplikasi Laravel di development
  • Laravel Horizon - Dashboard monitoring untuk queue worker di production

Hosting Siap untuk Laravel!

Deploy website Laravel Anda di hosting Indonesia dengan PHP 8.3, MySQL 8, SSH access, dan support 24/7 dalam Bahasa Indonesia.

Lihat Paket Hosting Laravel

FAQ: Pertanyaan Umum Cara Membuat Website dengan Laravel

Kesimpulan: Laravel adalah Investasi Terbaik untuk Developer PHP

Cara membuat website dengan Laravel memang memerlukan pemahaman yang lebih dalam dibandingkan membuat website dengan HTML statis atau bahkan CMS seperti WordPress. Namun investasi waktu untuk belajar Laravel akan terbayar berlipat ganda - Anda mendapatkan kemampuan membangun aplikasi web sekompleks apapun dengan kode yang terstruktur, aman, dan mudah dipelihara.

Dalam panduan ini, Anda telah mempelajari cara instalasi Laravel, memahami struktur MVC, mengkonfigurasi database, membuat migrasi dan model Eloquent, membangun controller dan route, serta membuat view dengan Blade template. Ini adalah fondasi yang Anda butuhkan untuk terus berkembang menjadi developer Laravel yang andal.

Langkah selanjutnya adalah mempraktikkan semua konsep ini dengan membangun project nyata. Mulailah dari project sederhana - blog, todo list, atau profil perusahaan - lalu tingkatkan kompleksitasnya secara bertahap. Komunitas Laravel Indonesia juga sangat aktif dan siap membantu ketika Anda menemui kendala.

Siap untuk deploy website Laravel Anda? HostingEkspres menyediakan hosting Indonesia dengan PHP 8.3, MySQL 8, akses SSH, dan cPanel terbaru - semua yang Anda butuhkan untuk menjalankan Laravel dengan performa optimal.

Butuh Hosting untuk Website Anda?

Dapatkan hosting cepat, aman, dan terpercaya dengan harga terjangkau. Gratis domain, SSL, dan support 24/7.

Jangan Ketinggalan Promo!

Subscribe newsletter kami dan dapatkan diskon hingga 50% untuk pembelian pertama kamu.

Gratis, tanpa spam. Bisa unsubscribe kapan saja.