Tutorial menggunakan Collection pada Laravel

Tutorial menggunakan Collection pada Laravel – Salah satu fitur yang keren dari Laravel yaitu Collection, Collection merupakan fitur yang digunakan untuk mengolah data, biasanya data tersebut berapa data Array. Penggunaan data Array Laravel dapat berasal dari Database maupun data yang telah di inisiasikan sendiri.

Kenapa Harus Menggunakan Collection, Apa sih keuntungan menggunakan Laravel Collection ?

Pertanyaan diatas sering ditanyakan kepada saya, Kenapa harus menggunakan Laravel Collection ? Jawanya, Laravel Collection mampu mengolah data array lebih cepat dibanding menggunakan Elequent maupun Query Bulder. Namun Penggunaan Collection ketika data berasal dari database tetap menggunakan Elequent ORM maupun Query Builder, guna untuk menampilkan data. Jadi Konsepnya Elequent ORM atau Query Builder digunakan untuk menampilkan data dari database dan ketika data ingin di olah menggunakan Collection. Hal ini sangat berhubungan dengan erat. Collection juga dapat menghemat penulisan kode yang terlalu banyak.

Saya akan berikan contoh simulasi kode menggunakan collection maupun tidak dan lihat bedanya, silahkan cermati kode dibawah ini.

Berdasarkan kode diatas terbukti bahwa menggunakan collection dapat menghemat penulisan kode dengan studi kasus mencari string terntentu dan jika ketemu maka keluar outputnya.

Laravel Collection memiliki banyak metode pengolahan data array, tinggal sesuaikan saja dengan kebutuhannya. Kelengkapan metode collection Laravel dapat memudahkan kita dalam memproses data, untuk menggunakan fitur Laravel collection berdasarkan method harus tahu fungsi setiap method, inget method ini bukan method pada suatu fungsi lho.

Saya rasa pengenalan Collection pada Laravel sudah cukup, sekarang kita implementasikan cara menggunakan collection pada Laravel.

Tutorial menggunakan Collection pada Laravel

Kali ini saya akan memberikan beberapa metode pada Laravel Collection yang sering digunakan, seperti penyortiran, pencarian dan lainnya. Kali ini saya anggap anda sudah mengerti penggunaan route dan controller pada Laravel. Implementasi collection pada Laravel kali ini saya menggunakan sebuah file controller.

Membuat Collection Pada Laravel

Untuk membuat collection pada Laravel tentunya kita harus menyiapkan data, seperti yang saya jelaskan sebelumnya yaitu dengan data array. Saya akan jelaskan membuat collection menggunakan data yang telah ditentukan dan berasal dari database.

Di bawah ini contoh data array untuk collection pada laravel

Membuat Collection diatas sama halnya menampilkan data dengan elequent ORM, contohnya

Tutorial kali ini saya akan menggunakan database biar lebih bisa anda mengerti dan implemetnasikan. Sata mempunyai skema tabel user seperti pada gambar diawah ini.

Tutorial menggunakan Collection pada Laravel
Tutorial menggunakan Collection pada Laravel

Pencarian data

Untuk menggunakan proses pencarian data kita harus menggunakan method dengan nama / Contains() dan Where().

Contains()

Berikut ini contoh pencarian data array menggunakan collection dan Elequent ORM.

Hasil dari penulisan kode diatas menghasilkan nilai benar / true, karena ada nama yang ditemukan di dalam tabel database.

Where()

Selain menggunakan containts anda juga bisa menggunakan method where(), contohnya seperti kode dibawah ini.

hasil dari penulisan kode diatas yaitu memberikan hasil data dengan id yang nilainya 2. Hasilnya sesuai dengan isi tabel database yaitu

Selain 2 method diatas ada method lain yang juga sering digunakan yaitu searc(), whereIn() dan Has(). Silahkan sesuaikan dengan kebutuhan anda.

Memfilter data

Filter()

Untuk memfilter / menyaring data menggunakan collection laravel menggunakan method filter(). Kasusnya misalnya mencari data yang id nya di bawah 5

Di bawah ini contoh penulisan kode menggunakan method filter()

Maka hasilnya

Data User diatas memunculkan dengan id di bawah 5 dan dicetak menggunakan return.

Pengurutan data

Untuk pengurutan data pada collection laravel menggunakan method sort(), sortBy() dan sortByDesc().

Penjelasan;

  • Sort(), digunakan untuk mengurutkan data secara ascending, ketika menggunakan abjad yaitu dari a-z dan ketika menggunakan angka dari 1 – 9
  • SortBy(), digunakan untuk mengurutkan data berdasarkan kunci / key yang di minta, misalnya name maupun id namun tetep menggukan urutan ascending.
  • SortByDesc(), Digunakan untk mengurutkan data secara descending.

Sort()

Kali ini saya akan memberikan contoh menggunakan method sort. Di bawah ini contoh kodenya.

Kelemahan menggunakan method sort() yaitu tidak bisa menentukan kunci / keynyya. Hal ini tidak baik jika digunakan untuk kasus yang mengharuskan menggunakan klausa key.

SortBy()

Nah ini yang lebih keren menggunakan methid SortBy sehingga dapat menentukan keynya, misalnya nama. Di bawah ini contoh kode method SortBy() dengan key name.

Maka urutannya dari abjad A samapi dengan abjad Z jika ada inisial awal huruf dengan huruf Z, jika tidak sampai abjad terakhir dari data array tersebut.

SortByDesc()

Method SortByDesc() paling banyak digunakan karena mengurutkan data secara descending, hal ini tentunya berkaitan dengan isi tabel database, dimana data terbaru berurutan dari belakang.

Contoh penulisan kode menggunakan method SortByDesc()

Hasilnya kebalikan dari menggunakan method SortBy(), Jadi dimulai dari abjad belakang.

Selain 3 method diatas ada lagi nama method lainnya yaitu sortkeys(), anda bisa melakukan uji coba sendiri untuk mengetahui hasilnya. SortKeys() ini mengurutkan berdasasrkan nama key / kunci, misal ada name dan id ,maka urutan data dalam array mulai dari name / name.

Pengelompokan data

Pengelompokan data pada laravel collection menggunakan method groupBy().

Di bawah ini contoh penggunakan collection pada Laravel dengan method groupBy()

Hasil data kode diatas yaitu mengelompkan data yang sudah ditentukan keynya yaitu createdAt. dan Nested data array dari pengelompokkan merupakan isi data yang sesuai.

Pembagian data

Pembagian data yang dimaksud yaitu menampilkan data dengan jumlah terntentu

Chunk()

Chunk() ini digunakan untuk memisah bagian data arraynya bukan jumlah datanya.

Berikut ini contoh kode menggunakan method chunk()

Maka Hasilnya

Take()

Method Take() ini sama hal nya pagination pada Elequent yang berfungsi menampilkan data perbagian. Namun bedanya tidak bisa menampilkan data pada halaman berikutnya.

Berikut ini contoh kode penggunaan take()

maka hasilnya

Data yang tampil hanya satu data, karena nilai take nya yaitu 1. Selain 2 method diatas anda dapat menggunakan method Collapse()

Iterasi Data

Iterasi data memiliki method yang sering digunakan yaitu map() dan each().

Map()

Map digunakan untuk melakukan iterasi data seperti halnya foreach, namun didalamnya dapat melakukan proses.

Berikut ini contoh kode menggunakan method Map()

Kode diatas berguna untuk menghitung panjang setiap nama.

Baca Juga : Tutorial Design Patern Repository pada Laravel

Penutup

Implementasi penggunaan collection pada Laravel sangat menarik dan dapat disesuaikan dengan kebutuhan kita, apabila anda ingin mendalami mengenai method-method pada collection Laravel bisa dilihat di https://laravel.com/docs/5.8/collections.

Selain Laravel Collection membuat website semakin cepat, penggunaan collection pada Laravel membuat kode lebih hemat, tentunya lebih enak di baca.

Sekian Tutorial menggunakan Collection pada Laravel.

Semoga Bermanfaat.

Leave a Reply