Sagiyo Blog

Macam-macam Loop Laravel

Laravel menyediakan loop seperti @foreach, @for, @while, dan @forelse. Blade juga mendukung kontrol loop dengan @break dan @continue, serta variabel $loop untuk mengetahui posisi elemen dan status iterasi pertama atau terakhir.


Macam-macam Loop Laravel

Dalam Laravel, kita dapat menggunakan berbagai jenis loop untuk mengiterasi data, baik dalam controller maupun blade template. Laravel memudahkan programmer dalam melakukan iterasi data, atau looping, bisa menggunakan skrip PHP biasa atau perintah khusus yang disediakan pada blade (templat khusus bawaan Laravel).

1. Loop Menggunakan PHP Biasa

Laravel tetap mendukung penggunaan loop bawaan dari PHP, seperti:

a. for

Digunakan ketika jumlah iterasi sudah diketahui sebelumnya.

for ($i = 0; $i < 10; $i++) {
    echo "Iterasi ke-" . ($i + 1) . "<br>";
}

b. foreach

Digunakan untuk mengiterasi array atau objek.

$users = ['Alice', 'Bob', 'Charlie'];
foreach ($users as $index => $user) {
    echo "Pengguna ke-" . ($index + 1) . ": $user <br>";
}

c. while

Digunakan ketika kondisi harus diperiksa sebelum iterasi.

$i = 0;
while ($i < 5) {
    echo "Perulangan ke-" . ($i + 1) . "<br>";
    $i++;
}

d. do-while

Memastikan bahwa pernyataan di dalam loop dieksekusi setidaknya sekali.

$i = 0;
do {
    echo "Nilai i adalah: $i <br>";
    $i++;
} while ($i < 5);

2. Loop di Blade Template Laravel

Blade template engine di Laravel menyediakan beberapa direktif khusus untuk looping, antara lain:

a. @for

Digunakan untuk mengulang sejumlah iterasi yang sudah diketahui sebelumnya.

@for ($i = 0; $i < 5; $i++)
    <p>Loop ke-{{ $i + 1 }}</p>
@endfor

b. @foreach

Digunakan untuk mengiterasi array atau koleksi data.

@php
    $users = ['Alice', 'Bob', 'Charlie'];
@endphp

@foreach ($users as $user)
    <p>Nama: {{ $user }}</p>
@endforeach

c. @while

Digunakan ketika iterasi dilakukan selama suatu kondisi tetap true.

@php
    $i = 0;
@endphp

@while ($i < 3)
    <p>Iterasi ke-{{ $i + 1 }}</p>
    @php $i++ @endphp
@endwhile

d. @forelse

Digunakan untuk menangani kasus ketika array kosong.

@php
    $users = [];
@endphp

@forelse ($users as $user)
    <p>Nama: {{ $user }}</p>
@empty
    <p>Tidak ada pengguna yang terdaftar.</p>
@endforelse

3. Kontrol Loop dengan @break dan @continue

a. @break

Digunakan untuk menghentikan loop lebih awal jika kondisi terpenuhi.

@foreach ($users as $user)
    @if ($user == 'Bob')
        @break
    @endif
    <p>{{ $user }}</p>
@endforeach

b. @continue

Digunakan untuk melewati iterasi tertentu dan melanjutkan iterasi berikutnya.

@foreach ($users as $user)
    @if ($user == 'Bob')
        @continue
    @endif
    <p>{{ $user }}</p>
@endforeach

4. Variabel Loop di Blade

Saat menggunakan @foreach, Laravel menyediakan variabel $loop yang berisi informasi tentang iterasi saat ini.

@foreach ($users as $user)
    <p>
        {{ $loop->iteration }}. {{ $user }}
        @if ($loop->first)
            (Pengguna pertama)
        @endif
        @if ($loop->last)
            (Pengguna terakhir)
        @endif
    </p>
@endforeach

Properti $loop yang berguna:

  • $loop->iteration: Nomor iterasi saat ini (1-based).

  • $loop->index: Nomor iterasi saat ini (0-based).

  • $loop->remaining: Jumlah iterasi yang tersisa.

  • $loop->count: Total elemen dalam loop.

  • $loop->first: true jika iterasi pertama.

  • $loop->last: true jika iterasi terakhir.

  • $loop->depth: Tingkatan nested loop.

  • $loop->parent: Mengakses loop induk dalam loop bertingkat.

Contoh Nested Loop dengan $loop->depth

@foreach ($categories as $category)
    <h2>{{ $category['name'] }}</h2>
    <ul>
        @foreach ($category['products'] as $product)
            <li>{{ $loop->depth }} - {{ $product }}</li>
        @endforeach
    </ul>
@endforeach

5. Menggunakan @each

Laravel juga menyediakan cara lebih ringkas untuk menampilkan daftar item dengan partial views menggunakan @each.

@each('partials.user', $users, 'user', 'partials.empty')
  • 'partials.user' adalah template partial untuk satu item.

  • $users adalah daftar yang akan diiterasi.

  • 'user' adalah variabel dalam partial.

  • 'partials.empty' adalah template yang akan digunakan jika daftar kosong.


Laravel menyediakan berbagai cara untuk melakukan loop baik dalam controller maupun di Blade template. Blade memiliki beberapa direktif khusus seperti @foreach, @for, @while, dan @forelse yang mempermudah iterasi data dalam tampilan. Selain itu, variabel $loop membantu dalam mengelola status loop dengan lebih baik. Happy coding!



Artikel lainnya

Laravel 12 has been released. Simak yang baru!

Laravel adalah cara termudah untuk membuat aplikasi web dari frontend hingga backend. Laravel 12 diklaim membuatnya lebih nyata!

Selengkapnya

Laravel 12 has been released. Simak yang baru!

Tren Framework Laravel di Tahun 2025

Laravel terus berkembang di tahun 2025 dengan peningkatan performa, keamanan, integrasi AI, dan skalabilitas, menjadikannya pilihan utama untuk pengembangan aplikasi modern seperti e-commerce, SaaS, dan API-first.

Selengkapnya

Tren Framework Laravel di Tahun 2025