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).
Laravel tetap mendukung penggunaan loop bawaan dari PHP, seperti:
for
Digunakan ketika jumlah iterasi sudah diketahui sebelumnya.
for ($i = 0; $i < 10; $i++) {
echo "Iterasi ke-" . ($i + 1) . "<br>";
}
foreach
Digunakan untuk mengiterasi array atau objek.
$users = ['Alice', 'Bob', 'Charlie'];
foreach ($users as $index => $user) {
echo "Pengguna ke-" . ($index + 1) . ": $user <br>";
}
while
Digunakan ketika kondisi harus diperiksa sebelum iterasi.
$i = 0;
while ($i < 5) {
echo "Perulangan ke-" . ($i + 1) . "<br>";
$i++;
}
do-while
Memastikan bahwa pernyataan di dalam loop dieksekusi setidaknya sekali.
$i = 0;
do {
echo "Nilai i adalah: $i <br>";
$i++;
} while ($i < 5);
Blade template engine di Laravel menyediakan beberapa direktif khusus untuk looping, antara lain:
@for
Digunakan untuk mengulang sejumlah iterasi yang sudah diketahui sebelumnya.
@for ($i = 0; $i < 5; $i++)
<p>Loop ke-{{ $i + 1 }}</p>
@endfor
@foreach
Digunakan untuk mengiterasi array atau koleksi data.
@php
$users = ['Alice', 'Bob', 'Charlie'];
@endphp
@foreach ($users as $user)
<p>Nama: {{ $user }}</p>
@endforeach
@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
@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
@break
dan @continue
@break
Digunakan untuk menghentikan loop lebih awal jika kondisi terpenuhi.
@foreach ($users as $user)
@if ($user == 'Bob')
@break
@endif
<p>{{ $user }}</p>
@endforeach
@continue
Digunakan untuk melewati iterasi tertentu dan melanjutkan iterasi berikutnya.
@foreach ($users as $user)
@if ($user == 'Bob')
@continue
@endif
<p>{{ $user }}</p>
@endforeach
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.
$loop->depth
@foreach ($categories as $category)
<h2>{{ $category['name'] }}</h2>
<ul>
@foreach ($category['products'] as $product)
<li>{{ $loop->depth }} - {{ $product }}</li>
@endforeach
</ul>
@endforeach
@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!
Laravel adalah cara termudah untuk membuat aplikasi web dari frontend hingga backend. Laravel 12 diklaim membuatnya lebih nyata!
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.