Press "Enter" to skip to content

Mudahnya Mengolah Data Array dengan Laravel Collection

fadli 0

Laravel Collection – Haloo semuanya, Assalaamualaikum wr wb..

Ada banyak sekali fitur pada Laravel yang mempermudah kita saat sedang mendevelop suatu aplikasi..

Baca Juga : Cara Mudah Menggunakan Soft Deletes pada Laravel..

Salah satunya adalah Laravel Collection..

Apa itu Laravel Collection?

Sesuai dengan judulnya, Laravel Collection adalah salah satu fitur pada Laravel yang dapat membantu kita dalam mengoperasikan sebuah array dengan sangat mudah..

Bahkan kita bisa menggunakan perintah-perintah yang ada pada eloquent seperti where, first, when dsb untuk mempermudah pengolahan data array..

Cara Membuat Collection

Cara pembuatan Collection juga sangat mudah, berikut adalah salah satu contoh nya:

$collection = collect([1, 2, 3]);

dd($collection);

Maka hasilnya akan menjadi seperti berikut:

Mudahnya Mengolah Data Array dengan Laravel Collection

Memfilter data array dengan Where

Dengan Laravel Collection kita bisa dengan mudah mem-filter sebuah data array dengan kondisi tertentu..

Bahkan kita bisa memfilter nya seperti kita sedang berinteraksi dengan database menggunakan eloquent where..

Contoh nya adalah seperti berikut:

$data_array = [
    ['product' => 'Plate', 'price' => 50],
    ['product' => 'Desk', 'price' => 200],
    ['product' => 'Chair', 'price' => 100],
    ['product' => 'Bookcase', 'price' => 150],
    ['product' => 'Door', 'price' => 100],
];

$collection = collect($data_array);

$filtered = $collection->where('price', 100);

$filtered->all();

dd($filtered);

Diatas kita memiliki sebuah data array yang memiliki key product dan price..

Kemudian data array tersebut kita convert menjadi sebuah collection..

Kemudian pada baris ke-11 kita filter dengan perintah where dengan memasukkan kondisi yang price nya sama dengan 100..

Kemudian pada baris ke-13, kita menggunakan perintah all() untuk menarik data nya, jadi sama persis seperti eloquent pada saat kita sedang menarik data dari database..

Kalo kalian cek hasilnya maka akan menjadi seperti berikut:

Mudahnya Mengolah Data Array dengan Laravel Collection

Kalian bisa cek hasilnya seperti pada gambar diatas, data yang muncul hanya yang price nya 100 saja..

Kalian juga bisa menambahkan lebih dari 1 kondisi seperti berikut:

$data_array = [
    ['product' => 'Plate', 'price' => 50],
    ['product' => 'Desk', 'price' => 200],
    ['product' => 'Chair', 'price' => 100],
    ['product' => 'Bookcase', 'price' => 150],
    ['product' => 'Door', 'price' => 100],
];

$collection = collect($data_array);

$filtered = $collection->where('price', '>', 50)->where('price', '<', 200);

$filtered->all();

dd($filtered);

Pada contoh diatas kita menambahkan 2 kondisi where, yaitu yang harga nya lebih dari 50 dan kurang dari 200..

Kalo kalian cek, maka hasilnya akan menjadi seperti berikut:

Mudahnya Mengolah Data Array dengan Laravel Collection

Kalian bisa lihat hasilnya pada gambar diatas, data yang muncul adalah data yang price nya lebih dari 50 dan kurang dari 200..

Filter Array dengan whereBetween

Dengan collection kita juga bisa memfilter sebuah data array dengan range nilai tertentu menggunakan perintah whereBetween..

Sebetulnya ini mirip2 seperti where biasa dengan 2 kondisi, untuk contoh nya adalah seperti berikut:

$collection = collect([
    ['product' => 'Desk', 'price' => 200],
    ['product' => 'Chair', 'price' => 80],
    ['product' => 'Bookcase', 'price' => 150],
    ['product' => 'Pencil', 'price' => 30],
    ['product' => 'Door', 'price' => 100],
]);
 
$filtered = $collection->whereBetween('price', [100, 200]);
 
$filtered->all();
 
/*
    [
        ['product' => 'Desk', 'price' => 200],
        ['product' => 'Bookcase', 'price' => 150],
        ['product' => 'Door', 'price' => 100],
    ]
*/

Kita bisa lihat script diatas, disana terdapat sebuah array multidimensional yang memiliki product dan price nya masing-masing..

Kemudian kita memfilter nya dengan memberikan range nilai price antara 100 s/d 200, maka hasilnya seperti diatas..

Filter data array dengan whereIn

Ketika kita memfilter sebuah data array dengan menggunakan collection dan dengan beberapa kondisi tertentu tapi masih dengan key yang sama, biasanya kita akan menggunakan where..

Misalkan kita memfilter data yang memiliki price 150, price 200 dsb, kita bisa menggunakan perintah whereIn sprt berikut:

$collection = collect([
    ['product' => 'Desk', 'price' => 200],
    ['product' => 'Chair', 'price' => 100],
    ['product' => 'Bookcase', 'price' => 150],
    ['product' => 'Door', 'price' => 100],
]);
 
$filtered = $collection->whereIn('price', [150, 200]);
 
$filtered->all();
 
/*
    [
        ['product' => 'Desk', 'price' => 200],
        ['product' => 'Bookcase', 'price' => 150],
    ]
*/

Memfilter data array dengan whereNotIn

kalo sebelumnya kita menggunakan whereIn, maka sekarang whereNotIn..

whereNotIn ini kebalikan nya dari whereIn..

Jadi data yang akan muncul yaitu data-data yang tidak masuk kedalam kondisi, contoh nya adalah seperti berikut:

$collection = collect([
    ['product' => 'Desk', 'price' => 200],
    ['product' => 'Chair', 'price' => 100],
    ['product' => 'Bookcase', 'price' => 150],
    ['product' => 'Door', 'price' => 100],
]);
 
$filtered = $collection->whereNotIn('price', [150, 200]);
 
$filtered->all();
 
/*
    [
        ['product' => 'Chair', 'price' => 100],
        ['product' => 'Door', 'price' => 100],
    ]
*/

Menampilkan data array dengan menghilangkan data yang null dengan whereNotNull

Terkadang didalam data array kita terdapat sebuah key yang memiliki value null, kita bisa memfilter atau menghilangkannya dengan perintah whereNotNull seperti berikut:

$collection = collect([
    ['name' => 'Desk'],
    ['name' => null],
    ['name' => 'Bookcase'],
]);
 
$filtered = $collection->whereNotNull('name');
 
$filtered->all();
 
/*
    [
        ['name' => 'Desk'],
        ['name' => 'Bookcase'],
    ]
*/

Mendapat element pertama dari sebuah array

Kalian bisa gunakan perintah first() untuk mendapatkan elemen pertama dari sebuah array, contoh perintah nya adalah seperti berikut:

collect([1, 2, 3, 4])->first();
 
// 1

Atau kalian juga bisa mendapatkan element pertama dari sebuah array dengan kondisi tertentu seperti berikut:

$collection = collect([
    ['name' => 'Regena', 'age' => null],
    ['name' => 'Linda', 'age' => 14],
    ['name' => 'Diego', 'age' => 23],
    ['name' => 'Linda', 'age' => 84],
]);
 
$collection->firstWhere('name', 'Linda');
 
// ['name' => 'Linda', 'age' => 14]

Mendapatkan element terakhir dari sebuah array

Kalian juga bisa mendapatkan element terakhir dari sebuah array dengan perintah last() seperti berikut:

collect([1, 2, 3, 4])->last();
 
// 4

Menambahkan Item Ke Array Collection

Dalam Laravel, sebuah koleksi (collection) adalah objek yang mewakili kumpulan data.

Koleksi Laravel menawarkan berbagai metode yang mempermudah pengolahan data dalam koleksi tersebut.

Salah satu metode yang bisa digunakan adalah metode push().

Metode push() digunakan untuk menambahkan satu atau lebih item ke dalam collection array.

Ini sangat berguna ketika kamu ingin menambahkan elemen baru ke dalam koleksi yang sudah ada.

Metode ini mengubah koleksi asli dengan menambahkan item-item baru ke akhirnya.

Berikut adalah sintaks penggunaan metode push() dalam Laravel:

....
$collection->push($item1, $item2, ...);
....

Di sini, $collection adalah objek koleksi yang ingin Anda modifikasi, sedangkan $item1, $item2, dan seterusnya adalah item-item yang ingin ditambahkan ke koleksi.

Contoh penggunaan metode push() dalam Laravel:

$collection = collect([1, 2, 3]);
$collection->push(4);

// Hasilnya: [1, 2, 3, 4]

Dalam contoh di atas, kita memiliki koleksi awal [1, 2, 3].

Kemudian, dengan menggunakan metode push(4), kita menambahkan elemen 4 ke dalam koleksi tersebut. Hasilnya adalah [1, 2, 3, 4].

Kamu juga dapat menambahkan beberapa item sekaligus dengan menyediakan lebih dari satu argumen pada metode push(), seperti ini:

$collection = collect([1, 2, 3]);
$collection->push(4, 5, 6);

// Hasilnya: [1, 2, 3, 4, 5, 6]

Dalam contoh di atas, kita menambahkan elemen 4, 5, dan 6 ke dalam koleksi, sehingga hasilnya adalah [1, 2, 3, 4, 5, 6].

Metode push() memungkinkan kamu untuk secara dinamis menambahkan elemen ke dalam koleksi Laravel, sehingga memudahkan kamu dalam mengelola dan memanipulasi data.

Menambah Atau Memperbarui Nilai Array Dengan Method PUT

Dalam Laravel, metode put() digunakan untuk menambahkan atau memperbarui pasangan kunci-nilai dalam koleksi asosiatif (associative collection), seperti array asosiatif atau objek koleksi.

Sintaks penggunaan metode put() dalam Laravel adalah sebagai berikut:

....
$collection->put($key, $value);
....

Di sini, $collection adalah objek koleksi asosiatif yang ingin kamu modifikasi.

$key adalah kunci (key) yang ingin kamu tambahkan atau perbarui, sedangkan $value adalah nilai (value) yang ingin kamu asosiasikan dengan kunci tersebut.

Contoh penggunaan metode put() dalam Laravel:

$collection = collect(['name' => 'John', 'age' => 30]);
$collection->put('email', 'john@example.com');

// Hasilnya: ['name' => 'John', 'age' => 30, 'email' => 'john@example.com']

Dalam contoh di atas, kita memiliki koleksi asosiatif awal ['name' => 'John', 'age' => 30].

Kemudian, dengan menggunakan metode put('email', 'john@example.com'), kita menambahkan pasangan kunci-nilai baru dengan kunci 'email' dan nilai 'john@example.com' ke dalam koleksi.

Hasilnya adalah ['name' => 'John', 'age' => 30, 'email' => 'john@example.com'].

Jika kunci yang kamu berikan sudah ada dalam koleksi, maka metode put() akan memperbarui nilai yang terkait dengan kunci tersebut.

Berikut adalah contoh penggunaan metode put() untuk memperbarui nilai:

$collection = collect(['name' => 'John', 'age' => 30]);
$collection->put('age', 35);

// Hasilnya: ['name' => 'John', 'age' => 35]

Dalam contoh di atas, kita memperbarui nilai kunci 'age' dari 30 menjadi 35. Hasilnya adalah ['name' => 'John', 'age' => 35].

Metode put() memungkinkan Anda untuk menambahkan atau memperbarui pasangan kunci-nilai dalam koleksi asosiatif dengan mudah dan fleksibel.

Method lainnya

Contoh diatas hanyalah sedikit method dari sekian banyak method yang disediakan oleh laravel collection.. Untuk method-method lainnya bisa kalian cek di sini..

Support Us

Jika artikel ini bermanfaat untuk kamu, membantu menyelesaikan masalah yang sedang kamu hadapi, kamu juga bisa dukung kami dengan mengunjungi halaman berikut: https://saweria.co/sangcahayaid

Terima kasih..

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: