Menggunakan Fitur Collection dari Laravel

undefined


Masih adakah diantara kamu yang belum menggunakan fitur collection dari laravel? Kalau belum, saatnya kamu mulai mencoba mempelajari fitur collection ini dan kenapa kamu harus menggunakan collection.

Pengantar

Sebagai seorang backend developer sudah menjadi kewajibanya adalah untuk mengolah data. Begitu pula dengan laravel, dibuat untuk backend developer juga sudah menjadi keharusan framework laravel itu menyediakan fitur yang memudahkan pengolahan data.

Kabar baiknya adalah ada banyak sekali fitur yang terdapat pada laravel yang berguna untuk memudahkan kita dalam mengolah data. Mulai dari Eloquent, Query Builder, Collections, helpers dan yang lain sebagainya.

Akan tetapi pada kesempatan kali ini kita akan membahas salah satu fitur yang biasa disebut dengan Collections.

Laravel Collections

Laravel Collections adalah sebuah fitur yang berguna untuk memudahkan kita dalam mengolah data array. Dalam mengolah data array tentu banyak sekali operasi yang perlu dilakukan seperti sorting, filtering, update dan masih banyak lagi yang lain.

Pada laravel collection ini sendiri ada setidaknya 101 operasi yang bisa dilakukan dengan data array. Saya rasa ini sudah cukup lengkap dan memudahkan kita untuk mengolah data array.

Cara menggunakan collection ini juga cukup mudah sekali. Mari kita bahas sedikit bagaimana cara menggunakannya.

Membuat Collection

Untuk membuat collection ini ada beberapa cara. Akan tetapi disini kita akan bahas membuat collection dengan menggunakan helper collect.

$collections = collect(['Jogja','Ambon','Bandung','Aceh']);

Dari kode di atas akan membuat object collection seperti dibawah ini.

Illuminate\Support\Collection {
     all: [
       "Jogja",
       "Ambon",
       "Bandung",
       "Aceh",
     ],
}

Jika ingin menggunakan extends class bisa dengan cara berikut ini.

$array = ['Jogja','Ambon','Bandung','Aceh'];
$collection = new \Illuminate\Support\Collection($array);

Nah silahkan mau pilih cara yang mana terserah dan bebas ya. Yang penting sesuai dengan kebutuhan saja.

Operasi Collection

Secara keseluruhan ada sekitar 101 operasi yang bisa kita lakukan dengan object collection ini. Akan tetapi disini kita akan bahasa beberapa operasi yang mungkin ini sering digunakan.

Pengurutan Data

  1. Sort

Yang pertama adalah sort. Yaitu untuk mengurutkan data array secara Ascending atau dari yang kecil ke yang besar. Misalnya seperti ini.

$collections = collect(['Jogja','Ambon','Bandung','Aceh']);
$collections->sort();

Hasil dari pengurutan data diatas adalah.

[
       3 => "Aceh",
       1 => "Ambon",
       2 => "Bandung",
       0 => "Jogja",
]

Sayangnya untuk data array yang tidak ada key nya kita tidak bisa melakukan descending sort. Atau pengurutan data dari yang terbesar ke terkecil. Tapi tidak masalah itu perkara mudah kamu bisa gunakan rsort.

2. SortBy

Yang kedua ini adalah sortBy. Gunanya untuk mengurutkan data arrayberdasarkan keynya. Misalnya seperti ini. Kita memiliki data array produk misalnya.

$collection = collect([
    ['name' => 'Jaket', 'price' => 200],
    ['name' => 'Kaos', 'price' => 100],
    ['name' => 'Sepatu', 'price' => 150],
]);

Lalu kita menginginkan data itu di urutkan berdasarkan harga termurah. Maka kita bisa lakukan seperti ini.

$collection->sortBy('price');

Maka hasil pengurutanya adalah seperti ini. Sekarang data.

[
     1 => [
       "name" => "Kaos",
       "price" => 100,
     ],
     2 => [
       "name" => "Sepatu",
       "price" => 150,
     ],
     0 => [
       "name" => "Jaket",
       "price" => 200,
     ],
]

3. SortByDesc

Lalu sekarang misalnya kita ingin mengurutkan data tersebut berdasarkan harga termahal.

$collection->sortByDesc('price')->all();

Maka hasilnya adalah seperti ini.

[
     0 => [
       "name" => "Jaket",
       "price" => 200,
     ],
     2 => [
       "name" => "Sepatu",
       "price" => 150,
     ],
     1 => [
       "name" => "Kaos",
       "price" => 100,
     ],
]

Operasi Data Array

Dengan collection ini juga kita bisa melakukan beberapa operasi data secara umum seperti menjumlahkan, mencari nilai terendah atau tertinggi dari data array.

Misalkan kita memiliki data array produk toko online seperti berikut ini.

$collection = collect([
    ['name' => 'Jaket', 'price' => 200],
    ['name' => 'Kaos', 'price' => 100],
    ['name' => 'Sepatu', 'price' => 150],
]);

1. Data Rata — Rata

Yang ini sangat berguna sekali menurut saya. Yaitu menghitung nilai rata — rata.

$collection->avg('price');

Hasilnya adalah

150

2. Data Terbesar dan Terkecil

Mencari data terbesar dan terkecil juga sering kita lakukan juga bukan?

$collection->max('price');
// Hasilnya "200"
$collection->min('price');
// Hasilnya "100"

3. Menjumlah Data

Yang tidak kalah penting juga menjumlah data berdasarkan key tertentu.

$collection->sum('price');
// Hasilnya "450"

4. Menjumlah Total Data

Salah satu operasi yang sering dilakukan juga adalah menjumlah semua data array.

$collection->count();
// Hasilnya "3"

Ada banyak sekali operator collection ini. Nah silahkan kunjungi dokumentasi untuk mendapatkan informasi lebih detail terkait method pada collections ini.

Collections - Laravel - The PHP Framework For Web Artisans

Laravel - The PHP framework for web artisans.

laravel.com

Kenapa Harus Menggunakan Collection?

Kalau ditanya begitu maka jawaban saya adalah untuk mempercepat proses coding. Berikut ini adalah perbandinganya. Misalkan kita ingin mendapatkan data harga termahal dari sebuah product maka biasanya seperti ini yang kita lakukan.

$products = [
    ['name' => 'Jaket', 'price' => 200],
    ['name' => 'Kaos', 'price' => 100],
    ['name' => 'Sepatu', 'price' => 150],
];
$max = 0;
foreach($products as $product){
    if ($product['price'] > $max){
        $max = $product['price'];
    }
}

Sedangka jika menggunakan laravel collection kita hanya perlu coding seperti ini.

$collection = collect([
    ['name' => 'Jaket', 'price' => 200],
    ['name' => 'Kaos', 'price' => 100],
    ['name' => 'Sepatu', 'price' => 150],
]);
$collection->max('price');

Jadi lebih singkat bukan? Dan masih banyak lagi operasi lainya. Jikat harus menulis manual algortimanya maka itu sangat mebuang — buang waktu dan tenaga kita bukan.

Kesimpulan

Laravel memiliki banyak sekali fitur yang disediakan oleh pengembangnya. Dengan banyaknya fitur tersebut kita sebagai developer bisa lebih berfokus pada produk yang akan kita buat tidak dengan algoritma — algoritma yang sebenarnya sudah tersedia pada laravel.

Dan buat kamu yang mungkin baru menggunakan laravel ada baiknya kamu untuk rajin — rajin membaca dokumentasi yang ada apada website resmi laravel. Barang kali kamu menemui beberapa hal fitur yang kamu sering gunakan. Sehingga kamu bisa lebih produktif dengan menggunakan laravel.

Sekian dulu pembahasan salah satu fitur dari laravel kali ini. Selamat berjumpa lagi dengan artikel yang lainya. Jangan lupa untuk share artikel ini ke temen — temen kalian ya.