Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Apa Itu Sistem Template Laravel?

Tutorial Laravel #8: Sistem Template Laravel


 

 

Sistem template dalam Laravel dikenal dengan nama Blade. Blade adalah template engine yang sederhana namun kuat yang disertakan dengan Laravel. Dengan Blade, Anda bisa menulis kode PHP murni dalam tampilan (view) Laravel, namun dengan sintaks yang lebih ringkas dan mudah dibaca. Keunggulan utamanya adalah ia mengubah semua tampilan Blade menjadi kode PHP biasa yang sudah di-cache sampai dimodifikasi, sehingga tidak ada overhead performa saat aplikasi berjalan.

 

Keuntungan Menggunakan Blade

 

  • Sintaks yang Elegan: Blade menyederhanakan sintaks untuk tugas-tugas umum seperti menampilkan data, perulangan, dan percabangan.
  • Inheritansi Template: Anda dapat membuat tata letak (layout) master dan menggunakannya kembali di halaman lain. Ini sangat efektif untuk menjaga konsistensi desain, seperti header, footer, dan navigasi yang sama di seluruh situs.
  • Performa Cepat: Karena Blade dikompilasi menjadi PHP biasa, tidak ada penurunan performa. Kode yang sudah dikompilasi disimpan sementara (cache) untuk penggunaan berikutnya.
  • Lebih Terstruktur: Memisahkan logika aplikasi (controller) dari tampilan (view) membuat kode lebih rapi dan mudah diatur.

 

Menggunakan Sistem Template Blade

 

Mari kita lihat bagaimana cara kerja Blade dengan contoh sederhana.

 

1. Membuat Layout Master

 

Pertama, buatlah file layout utama yang akan menjadi kerangka dasar untuk semua halaman Anda. Buat file baru di resources/views/layouts/app.blade.php.

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@yield('title') - Aplikasi Saya</title>
</head>
<body>
    <header>
        <nav>
            <a href="/">Beranda</a>
            <a href="/tentang">Tentang Kami</a>
        </nav>
    </header>

    <div class="container">
        @yield('content')
    </div>

    <footer>
        <p>&copy; 2025 Aplikasi Saya. Semua Hak Cipta Dilindungi.</p>
    </footer>
</body>
</html>

Dalam kode di atas, kita menggunakan dua direktif utama dari Blade:

  • @yield('title'): Ini adalah placeholder untuk judul halaman. Halaman turunan akan mengisi area ini.
  • @yield('content'): Ini adalah placeholder utama tempat konten spesifik setiap halaman akan ditempatkan.

 

2. Membuat Halaman Anak (Child Page)

 

Sekarang, buat halaman yang akan mewarisi layout master tersebut. Buat file baru di resources/views/beranda.blade.php.

HTML

@extends('layouts.app')

@section('title', 'Beranda')

@section('content')
    <h1>Selamat Datang di Beranda!</h1>
    <p>Ini adalah halaman beranda kami. Kami sangat senang Anda berkunjung.</p>
@endsection
  • @extends('layouts.app'): Ini memberitahu Blade bahwa halaman ini akan menggunakan app.blade.php sebagai layout utamanya.
  • @section('title', 'Beranda'): Ini akan mengisi placeholder @yield('title') dengan teks “Beranda”.
  • @section('content')@endsection: Ini akan mengisi placeholder @yield('content') dengan konten di antara kedua direktif ini.

 

3. Menampilkan Data dari Controller

 

Blade juga memudahkan Anda untuk menampilkan data yang dikirim dari controller.

  • Pertama, buatlah route di file routes/web.php.
PHP

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    $nama = 'Budi';
    return view('beranda', ['nama' => $nama]);
});
  • Kemudian, di halaman beranda.blade.php, Anda bisa menampilkan data tersebut dengan sintaks {{ $variabel }}.
HTML

@extends('layouts.app')

@section('title', 'Beranda')

@section('content')
    <h1>Selamat Datang, {{ $nama }}!</h1>
    <p>Ini adalah halaman beranda kami. Kami sangat senang Anda berkunjung.</p>
@endsection

Ketika halaman ini diakses, {{ $nama }} akan diganti dengan nilai dari variabel $nama yang dikirim dari controller. Sintaks {{ }} secara otomatis akan melindungi dari serangan XSS (Cross-Site Scripting) dengan melakukan escaping pada data.

 

Sintaks Blade Lain yang Berguna

 

  • Struktur Kontrol (Perulangan, Kondisional): Blade memiliki direktif yang intuitif untuk kontrol alur.
    • Kondisional:
      HTML

      @if (count($pengguna) > 0)
          <p>Ada beberapa pengguna.</p>
      @else
          <p>Tidak ada pengguna.</p>
      @endif
      
    • Perulangan (@foreach):
      HTML

      @foreach ($pengguna as $user)
          <p>Nama Pengguna: {{ $user->name }}</p>
      @endforeach
      
  • Mengatur CSS dan JavaScript: Anda bisa menggunakan asset() helper untuk menyertakan file CSS dan JS.
    HTML

    <link rel="stylesheet" href="{{ asset('css/style.css') }}">
    

Sistem template Blade adalah salah satu fitur inti Laravel yang membuatnya begitu populer. Dengan kemudahan dan kekuatannya, Anda dapat membangun tampilan yang kompleks dan terstruktur dengan rapi tanpa mengorbankan performa. Menguasai Blade adalah langkah penting untuk menjadi pengembang Laravel yang mahir.

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_q0o3sbq0o3sbq0o3
Gemini_Generated_Image_mem6cgmem6cgmem6
Gemini_Generated_Image_ust09gust09gust0
Gemini_Generated_Image_d8a5kwd8a5kwd8a5

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek