Nama : Anya Sabrina Narulita
NPM : 2310631170125
Pada eksplorasi ini, saya mencoba mengolah data dengan Laravel Collection untuk membuat proses manipulasi data menjadi lebih sederhana dan efisien.
Laravel Collection adalah fitur yang membungkus data dalam bentuk array atau hasil query database, lalu menyediakan berbagai method untuk memudahkan transformasi, filter, pengurutan, hingga perhitungan. Dengan Collection, kita bisa mengelola data seperti menghitung total, memilih data tertentu, atau mengelompokkan data hanya dengan beberapa baris kode yang lebih rapi dan mudah dipahami.
Dari array biasa:
$collection = collect([1, 2, 3, 4, 5]);
Dari query Eloquent:
$users = User::all(); // hasilnya Collection
all() → ambil semua data sebagai array.
first() → ambil elemen pertama.
last() → ambil elemen terakhir.
pluck('field') → ambil nilai field tertentu.
- Transformasi
map() → ubah tiap item.
$squared = collect([1,2,3])->map(fn($n) => $n*$n);
// [1,4,9]
- filter() → ambil item yang memenuhi kondisi.
$filtered = collect([1,2,3,4,5])->filter(fn($n) => $n > 3);
// [4,5]
- reject() → kebalikan dari filter.
- Agregasi
sum(), avg(), min(), max()
collect([100,200,300])->avg(); // 200
- Pengurutan
sort(), sortBy('field'), reverse()
- Pengelompokan
groupBy('field')
$users = collect([
['name'=>'Andi','role'=>'admin'],
['name'=>'Budi','role'=>'user'],
['name'=>'Cici','role'=>'admin'],
]);
$grouped = $users->groupBy('role');
// admin => [Andi, Cici], user => [Budi]
- Penggabungan & Modifikasi
merge(), concat(), push(), prepend(), forget(), unique()
- Chunking & Pagination
chunk(2) → pecah jadi beberapa collection kecil.
Berguna untuk pagination atau batch processing.
Contoh Menampilkan daftar mahasiswa dengan nilai rata-rata > 75 $students = collect([ ['nama' => 'Ani', 'nilai' => 80],
['nama' => 'Budi', 'nilai' => 70],
['nama' => 'Citra', 'nilai' => 90],
]);
$lulus = $students
->filter(fn($s) => $s['nilai'] > 75)
->pluck('nama');
// Output: ['Ani', 'Citra']
Kesimpulannya, Laravel Collection adalah fitur utama yang memudahkan manipulasi data dalam aplikasi web. Dengan Collection, proses seperti transformasi, seleksi, agregasi, hingga pengelompokan data bisa dilakukan lebih singkat, rapi, dan mudah dipahami, sehingga sangat berguna untuk membangun aplikasi berbasis database maupun data-driven.