0% menganggap dokumen ini bermanfaat (0 suara)
30 tayangan106 halaman

Laravel Collection

Dokumen tersebut memberikan penjelasan mengenai Laravel Collection, yaitu tipe data khusus untuk menangani array di Laravel. Terdapat berbagai metode yang dapat dilakukan pada Collection seperti manipulasi, filtering, grouping, dan lainnya untuk mempermudah pengolahan data. Diberikan pula contoh kode untuk menggunakan metode-metode tersebut.

Diunggah oleh

andri.suryono
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
30 tayangan106 halaman

Laravel Collection

Dokumen tersebut memberikan penjelasan mengenai Laravel Collection, yaitu tipe data khusus untuk menangani array di Laravel. Terdapat berbagai metode yang dapat dilakukan pada Collection seperti manipulasi, filtering, grouping, dan lainnya untuk mempermudah pengolahan data. Diberikan pula contoh kode untuk menggunakan metode-metode tersebut.

Diunggah oleh

andri.suryono
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 106

Laravel Collection

Eko Kurniawan Khannedy


Eko Kurniawan Khannedy

- Technical architect at one of the biggest


ecommerce company in Indonesia
- 12+ years experiences
- www.programmerzamannow.com
- youtube.com/c/ProgrammerZamanNow
Eko Kurniawan Khannedy
● Telegram : @khannedy
● Linkedin : https://www.linkedin.com/company/programmer-zaman-now/
● Facebook : fb.com/ProgrammerZamanNow
● Instagram : instagram.com/programmerzamannow
● Youtube : youtube.com/c/ProgrammerZamanNow
● Telegram Channel : t.me/ProgrammerZamanNow
● Tiktok : https://tiktok.com/@programmerzamannow
● Email : [email protected]
Sebelum Belajar
● Sudah mengikuti kelas PHP dari Programmer Zaman Now
● Sudah mengikuti kelas Laravel Dasar
Agenda
● Pengenalan Laravel Collection
● Collection Method
● Lazy Collection
● Dan lain-lain
Laravel Collection
Masalah Array di PHP
● Saat kita menggunakan PHP, kita sering sekali menggunakan data array
● Namun array hanyalah tempat untuk menyimpan data, ketika kita butuh melakukan operasi
terhadap data di array nya, maka kita harus lakukan secara manual
● Hal ini kadang menyulitkan ketika operasi yang perlu kita lakukan sangat kompleks
● Di bahasa pemrograman seperti Java, terdapat tipe data Collection untuk mempermudah hal
tersebut, sayangnya hal ini tidak ada di PHP
Laravel Collection
● Laravel menyediakan tipe data Collection untuk menangani keterbatasan tipe data array
● Collection sendiri sebenarnya seperti array, hanya dia direpresentasikan dalam class, dan memiliki
banyak sekali method/function yang bisa digunakan untuk mempermudah ketika kita butuh
melakukan manipulasi data Collection tersebut
● https://laravel.com/api/10.x/Illuminate/Support/Collection.html
Membuat Project
Membuat Project
composer create-project laravel/laravel=v10.0.3 belajar-laravel-collection
Membuat Collection
Membuat Collection
● Untuk membuat Collection, Laravel sudah menyediakan global function collect(array) yang
digunakan untuk mengubah tipe data array menjadi Collection
Kode : Membuat Collection
For Each
For Each
● Collection adalah struktur data turunan dari Iterable PHP
● Dengan demikian, kita bisa melakukan iterasi data Collection menggunakan perintah for PHP
Kode : For Each
Manipulasi Collection
Manipulasi Collection
● Collection adalah sebuah class, oleh karena itu untuk memanipulasi data nya, kita perlu
menggunakan method yang terdapat di Collection
Collection Operations
Method Keterangan

push(data) Menambah data ke paling belakang

pop() Menghapus dan mengambil data paling terakhir

prepend(data) Menambah data ke paling depan

pull(key) Menghapus dan mengambil data sesuai dengan key

put(key, data) Mengubah data dengan key


Kode : Manipulasi Collection
Mapping
Mapping
● Mapping adalah transformasi (mengubah bentuk data) menjadi data lain
● Mapping membutuhkan function sebagai parameter yang digunakan untuk membentuk data
lainnya
● Urutan Collection hasil mapping adalah sama dengan urutan collection aslinya
Mapping Operations
Method Keterangan

map(function) Iterasi seluruh data, dan mengirim seluruh data ke function

mapInto(class) Iterasi seluruh data, dan membuat object baru untuk class
dengan mengirim parameter tiap data

mapSpread(function) Iterasi seluruh data, dan mengirim tiap data sebagai


parameter di function

mapToGroups(function) Iterasi seluruh data, dan mengirim tiap data ke function,


function harus mengembalikan single key-value array untuk
di group sebagai collection baru
Kode : Map
Kode : Map Into (1)
Kode : Map Into (2)
Kode : Map Spread
Kode : Map To Groups
Zipping
Zipping
● Zipping adalah transformasi yang digunakan untuk menggabungkan dua buah collection.
Zipping Operations
Method Keterangan

zip(collection/array) Menggabungkan tiap item di collection sehingga menjadi


collection baru

concat(collection/array) Menambahkan collection pada bagian akhir sehingga


menjadi collection baru

combine(collection/array) Menggabungkan collection sehingga collection pertama


menjadi key dan collection kedua menjadi value
Kode : Zip
Kode : Concat
Kode : Combine
Flattening
Flattening
● Flattening adalah operasi transformasi untuk menjadikan nested collection menjadi flat
Zipping Operations
Method Keterangan

collapse() Mengubah tiap array di item collection menjadi flat collection

flatMap(function) Iterasi tiap data, dikirim ke function yang menghasilkan


collection, dan diubah menjadi flat collection
Kode : Collapse
Kode : Flat Map
String Representation
String Representation
● String Representations adalah operasi transformasi untuk mengubah collection menjadi string
String Representation Operations
Method Keterangan

join(glue = ‘’, finalGlue = ‘’) Mengubah tiap item menjadi string dengan menggabungkan
dengan separator glue, dan separator akhir finalGlue
Kode : String Representation
Filtering
Filtering
● Filtering adalah salah satu operasi collection yang banyak digunakan
● Filtering membutuhkan function sebagai parameter
● Jika function mengembalikan true, maka data akan diambil, jika false, maka data akan dibuang
● Hati-hati ketika menggunakan data array dengan index number, karena data array bisa dihapus
sehingga index akan hilang di Collection baru hasil filter
Filtering Operations
Method Keterangan

filter(function) Iterasi setiap data, dikirim ke function, jika true maka data
diambil, jika false, maka data dibuang
Kode : Filter
Partitioning
Partitioning
● Pada filtering, kita akan kehilangan data yang tidak masuk kondisi filter function nya
● Dengan partitioning, kita bisa mendapatkan dua collection yang terdiri dari collection yang masuk
filter dan yang tidak masuk filter
Partitioning Operations
Method Keterangan

partition(function) Iterasi setiap data, dikirim ke function, jika true maka data
akan masuk ke collection pertama, jika false maka data
akan masuk ke collection kedua
Kode : Partition
Testing
Testing
● Testing adalah operasi untuk mengecek isi data di collection
● Hasil dari testing adalah boolean, dimana true jika sesuai kondisi, dan false jika tidak sesuai kondisi
Testing Operations
Method Keterangan

has(array) Mengecek apakah collection memiliki semua key data

hasAny(array) Mengecek apakah collection memiliki salah satu key data

contains(value) Mengecek apakah collection memiliki data value

contains(key, value) Mengecek apakah collection memiliki data key dengan value

contains(function) Iterasi tiap data, mengirim ke function dan mengecek


apakah salah satu data menghasilkan true
Kode : Testing
Grouping
Grouping
● Grouping adalah operasi untuk meng-grup kan element-element yang ada di collection.
Grouping Operations
Method Keterangan

groupBy(key) Menggabungkan data collection per key

groupBy(function) Menggabungkan data collection per hasil function


Kode : Grouping
Slicing
Slicing
● Slicing adalah operasi untuk mengambil sebagian data di Collection
Slicing Operations
Method Keterangan

slice(start) Mengambil data mulai dari start sampai data terakhir

slice(start, length) Mengambil data mulai dari start sepanjang length


Kode : Slicing
Take & Skip
Take & Skip
● Untuk mengambil sebagian element di collection, selain menggunakan slice, kita juga bisa
menggunakan operator take dan skip
Take Operations
Method Keterangan

take(length) Mengambil data dari awal sepanjang length, jika length


negative artinya proses mengambil dari posisi belakang

takeUntil(function) Iterati tiap data, ambil tiap data sampai function


mengembalikan nilai true

takeWhile(function) Iterasi tiap data, ambil tiap data sampai function


mengembalikan nilai false
Kode : Take
Skip Operations
Method Keterangan

skip(length) Ambil seluruh data kecuali sejumlah length data diawal

skipUntil(function) Iterati tiap data, jangan ambil tiap data sampai function
mengembalikan nilai true

skipWhile(function) Iterasi tiap data, jangan ambil tiap data sampai function
mengembalikan nilai false
Kode : Skip
Chunked
Chunked
● Chunked adalah operasi untuk memotong collection menjadi beberapa collection
Chunked Operations
Method Keterangan

chunk(number) Potong collection menjadi lebih kecil dimana tiap collection


memiliki sejumlah total data number
Kode : Chunked
Retrieve
Retrieve
● Retrieve adalah operasi untuk mengambil data di Collection
First Operations
Method Keterangan

first() Mengambil data pertama di collection, atau null jika tidak


ada

firstOrFail() Mengambil data pertama di collection, atau error


ItemNotFoundException jika tidak ada

first(function) Mengambil data pertama di collection yang sesuai dengan


kondisi function jika menghasilkan data true

firstWhere(key, value) Mengambil data pertama di collection dimana key sama


dengan value
Kode : First
Last Operations
Method Keterangan

last() Mengambil data terakhir di collection, atau null jika tidak ada

last(function) Mengambil data terakhir di collection yang sesuai dengan


kondisi function jika menghasilkan data true
Kode : Last
Random
Random
● Random adalah operasi untuk mengambil data di collection dengan posisi random
Random Operations
Method Keterangan

random() Mengambil satu data collection dengan posisi random

random(total) Mengambil sejumlah total data collection dengan posisi


random
Kode : Random
Checking Existence
Checking Existence
● Checking Existence merupakan operasi untuk mengecek apakah terdapat data yang dicari di
Collection
Checking Existence Operations
Method Keterangan

isEmpty() : bool Mengecek apakah collection kosong

isNotEmpty() Mengecek apakah collection tidak kosong

contains(value) Mengecek apakah collection memiliki value

contains(function) Mengecek apakah collection memiliki value dengan kondisi


function yang menghasilkan true

containsOneItem() Mengecek apakah collection hanya memiliki satu data


Kode : Checking Existence
Ordering
Ordering
● Ordering adalah operasi untuk melakukan pengurutan data di Collection
Ordering Operations

Method Keterangan

sort() Mengurutkan secara ascending

sortBy(key/function) Mengurutkan secara ascending berdasarkan key atau


function

sortDesc() Mengurutkan secara descending

sortByDesc(key/function) Mengurutkan secara descending berdasarkan key atau


function

sortKeys() Mengurutkan secara ascending berdasarkan keys

sortKeysDesc() Mengurutkan secara descending berdasarkan keys

reverse() Membalikkan urutan collection


Kode : Ordering
Aggregate
Aggregate
● Laravel collection juga memiliki beberapa method untuk melakukan aggregate
Aggregate Operations

Method Keterangan

min() Mengambil data paling kecil

max() Mengambil data paling besar

avg() / average() Mengambil rata-rata data

sum() Mengambil seluruh jumlah data

count() Mengambil total seluruh data


Kode : Aggregate
Reduce
Reduce
● Jika kita ingin membuat aggregate secara manual, kita bisa menggunakan function reduce
● Reduce merupakan operasi yang dilakukan pada tiap data yang ada di collection secara sequential
dan mengembalikan hasil
● Hasil dari reduce sebelumnya akan digunakan di iterasi selanjutnya
Reduce Operations

Method Keterangan

reduce(function(carry, item)) Pada iterasi pertama, carry akan bernilai data


pertama, dan item adalah data selanjutnya

Pada iterasi selanjutnya, carry adalah hasil dari


iterasi sebelumnya
Kode : Reduce
Method Lainnya
Metode Lainnya
● Sekarang kita sudah membahas hampir sebagian besar operasi yang bisa kita lakukan di Laravel
Collection
● Namun sebenarnya masih banyak method yang bisa kita gunakan di Laravel Collection
● https://laravel.com/api/10.x/Illuminate/Support/Collection.html
● https://laravel.com/docs/10.x/collections#available-methods
Lazy Collection
Lazy Collection
● Saat belajar PHP, kita pernah membuat Generator (Lazy Array/Iterable)
● Di Laravel juga kita bisa membuat hal seperti itu, bernama Lazy Collection
● Keuntungan menggunakan Lazy Collection adalah kita bisa melakukan manipulasi data besar,
tanpa harus takut semua operasi dieksekusi sebelum dibutuhkan
● Saat membuat Lazy Collection, kita perlu menggunakan PHP Generator
● https://laravel.com/api/10.x/Illuminate/Support/LazyCollection.html
Kode : Lazy Collection
Materi Selanjutnya
Materi Selanjutnya
● Laravel Database
● Laravel Eloquent ORM

Anda mungkin juga menyukai