Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial Laravel #4: Mengirim Data dari Controller ke View

Tentu, berikut adalah artikel tutorial tentang cara mengirim data dari Controller ke View pada Laravel.


 

 

Pada tutorial sebelumnya, kita telah mempelajari peran Controller sebagai pusat logika aplikasi dan View sebagai lapisan tampilan. Namun, agar View dapat menampilkan konten yang dinamis, kita perlu mengirimkan data dari Controller ke View. Proses ini adalah salah satu konsep paling fundamental dan sering digunakan dalam pengembangan aplikasi Laravel.

 

Mengapa Mengirim Data?

 

Tujuan utama dari arsitektur MVC adalah memisahkan logika dari tampilan. Controller mengambil atau memproses data, tetapi tidak boleh menampilkannya secara langsung. Sebaliknya, View bertanggung jawab penuh untuk menampilkan data tersebut. Dengan demikian, tugas Controller adalah mempersiapkan data, dan tugas View adalah menerima serta menampilkannya.

Laravel menyediakan beberapa cara yang mudah dan fleksibel untuk melakukan pengiriman data ini.

 

Metode 1: Menggunakan Array Asosiatif (Cara Umum)

 

Ini adalah cara paling umum dan direkomendasikan untuk mengirim data dari Controller ke View. Anda cukup meneruskan sebuah array asosiatif sebagai argumen kedua dari fungsi view(). Kunci (key) dari array akan menjadi nama variabel di dalam View.

Mari kita gunakan contoh sederhana. Buatlah Controller baru dengan perintah Artisan:

Bash

php artisan make:controller DataController

Kemudian, buka file app/Http/Controllers/DataController.php dan tambahkan method index():

PHP

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class DataController extends Controller
{
    public function index()
    {
        $judul = 'Belajar Laravel';
        $deskripsi = 'Tutorial ini membahas cara mengirim data dari Controller ke View.';
        
        $data = [
            'judul' => $judul,
            'deskripsi' => $deskripsi,
            'tahun' => 2025
        ];

        return view('halaman_data', $data);
    }
}

Pada kode di atas, kita membuat array $data dengan tiga kunci (judul, deskripsi, tahun). Array ini kemudian diteruskan ke fungsi view().

Sekarang, buat file View baru di resources/views/halaman_data.blade.php:

PHP

<!DOCTYPE html>
<html>
<head>
    <title>{{ $judul }}</title>
</head>
<body>
    <h1>{{ $judul }}</h1>
    <p>{{ $deskripsi }}</p>
    <p>Tahun: {{ $tahun }}</p>
</body>
</html>

Perhatikan bahwa kita bisa mengakses variabel $judul, $deskripsi, dan $tahun secara langsung di dalam View, tanpa perlu mendeklarasikannya.

Terakhir, definisikan route di routes/web.php untuk memanggil Controller ini:

PHP

use App\Http\Controllers\DataController;

Route::get('/data', [DataController::class, 'index']);

Akses http://nama-proyek-anda.test/data di browser, dan Anda akan melihat data yang dikirimkan dari Controller ditampilkan dengan benar.


 

Metode 2: Menggunakan Fungsi compact()

 

Fungsi compact() adalah fungsi bawaan PHP yang menyediakan cara ringkas untuk membuat array asosiatif dari variabel-variabel yang sudah ada. Ini sangat berguna jika Anda memiliki banyak variabel yang ingin dikirimkan.

Mari kita modifikasi contoh di atas menggunakan compact():

PHP

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class DataController extends Controller
{
    public function show()
    {
        $judul = 'Halaman Artikel';
        $penulis = 'Budi Santoso';
        $tanggal = '22 Agustus 2025';

        return view('halaman_artikel', compact('judul', 'penulis', 'tanggal'));
    }
}

Pada kode di atas, compact('judul', 'penulis', 'tanggal') akan menghasilkan array yang sama dengan ['judul' => $judul, 'penulis' => $penulis, 'tanggal' => $tanggal].

Tentu saja, Anda perlu membuat View yang sesuai (halaman_artikel.blade.php) dan route untuk metode ini agar dapat diakses.


 

Metode 3: Menggunakan Fungsi with()

 

Fungsi with() adalah metode chaining yang juga dapat digunakan untuk mengirim data.

PHP

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class DataController extends Controller
{
    public function about()
    {
        $versi_app = 'v1.0.0';

        return view('tentang_kami')->with('versi', $versi_app);
    }
}

Pada contoh ini, kita menggunakan ->with('versi', $versi_app). Ini akan membuat variabel $versi tersedia di dalam View tentang_kami.blade.php. Anda juga bisa merangkai beberapa panggilan with():

PHP

return view('tentang_kami')
    ->with('versi', $versi_app)
    ->with('penulis', 'Tim Pengembang');

 

Kesimpulan

 

Mengirim data dari Controller ke View adalah langkah penting untuk membuat halaman web yang dinamis dan interaktif. Laravel menyediakan berbagai cara untuk melakukannya, dengan metode array asosiatif dan compact() sebagai pilihan yang paling umum dan mudah. Dengan menguasai konsep ini, Anda dapat memisahkan data dari tampilan dengan efektif, yang merupakan inti dari arsitektur MVC.

Pada tutorial berikutnya, kita akan menyelam lebih dalam ke dunia Blade Templating, mempelajari fitur-fitur canggih yang membuat Laravel menjadi pilihan utama untuk pengembangan web.

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