Memahami Metode When di Laravel : Fungsi, dan Implementasinya

 



Memahami Methode When di Laravel : Fungsi, Kegunaan, dan Implementasinya - Selamat Pagi, Siang, Sore atau Malam sobs-sobs, gimana keadaan klean ? semoga dalam keadaan sehat walafiat sehingga bisa stalking mantan. Hehehe

Oke pada artikel kali ini gua akan bahas si nona Laravel ini, emang ya engga dipungkiri bahwa si nona laravel ini makin mempesona (titik) engga pake (koma). karena segudang fitur yang ada di dalam si nona ini kadang gua bingung mau share apa, soalnya saking memikat pesona nona Laravel ini sudah banyak tulisan-tulisan yang mengupas segala fitur-nya sampai akhirnya gua bingung mau nulis apa.



Kebingungan itulah yang membuat gua semakin bingung, sampai akhirnya gua menyingkir dan menepi, meditasi tenggelam dalam keheningan untuk berpikir kira-kira materi apa yang bisa gua tulis dengan hati bukan dengan kaki ? Setelah beberapa lama akhirnya gua dapat bisikan yaitu kata Kapan, Kapan, Kapan gajian bang ??? wkwkwkwk

Akibat bisikan itu seketika gua kepikiran si method when() ini.

Dari pada kepanjangan intronya sekarang kita langsung aja sobs ke pokok pembahasannya.

1.    Pengenalan dan Fungsi Metode When

kita masuk ke pengenalan dan fungsi terlebih dahulu sobs.

1.1    Pengenalan

Tak kenal maka tak sayang, begitulah gambarannya jika kita mau tahu lebih jauh dengan metode ini. langsung aja ya penjelasannya sobs jadi disini metode ini when() ini digunakan dalam Query Builder dan Eloquent fungsinya untuk menambahkan kondisi ke dalam query secara dinamis sobs tapi dengan catatan hanya jika suatu nilai atau memenuhi kondisi yang sudah kita tentukan. intinya dengan metode when() ini kita tidak perlu menggunakan banyak if untuk menyusun sebuah query, dan juga dengan si when() ini susunan query kita lebih rapih, fleksibel dan terlihat elegan.

1.2    Fungsi

Jadi berikut ini fungsi metode when() ini yang gua rangkum sobs :

* Membuat Query lebih Dinamis : Metode ini memungkinkan kita untuk menambahkan kondisi pada query, pengkondisiannya bisa berupa apaun sobs-sobs.

* Mengurangi penggunaan if Bertumpuk : untuk menghindari kode yang terlalu panjang sobs akibat dari penggunaan if, dan juga menghindari agar codingan kita sulit dibaca akibat terlalu banyak if ini.

* Memudahkan Pengelolahan Data Berdasarkan Input User : tentunya ini membuat kita lebih santai jika program kita mempunyai filter dari HTTP request dari input user, karena untuk mengelolanya tidak begitu syulit sobs.

* Meningkatkan Keterbacaan dan Maintainability : kode yang lebih rapih memungkinkan tim kita mudah memahami sobs maksud dari kode yang kita tulis.


2.    Contoh Implementasi

Disini gua akan berikan beberapa contoh implementasinya sobs. oh iya untuk format penulisan metode when ini seperti dibawah ini ya sobs :

when( condition, callback function )

2.1    Contoh 1 : search product (single when)

Skema contoh ini kurang lebih sama sobs jika sobs-sobs pernah mencari suatu produk dikolom pencarian maka contoh metode when() seperti ini.


public function index(Request $request)
{
	$products = Product::query()
		// cek jika user cari product
		->when($request->has('search'), function($query) use($request) {
			return $query->where('product_name', 'LIKE', '%'. $request->search . '%');
		})
		->get();
}


Sedikit penjelasan kode diatas sobs, didalam metode when() pertama akan dilakukan pengecekan kondisi jika didalam request terdapat search maka callback function akan dijalankan, callback function akan mengembalikan value query yang ingin kita terapkan sobs dan jika tidak maka metode when ini akan diabaikan.

2.2    Contoh 2 : with free ongkir (multiple when)

Skema yang kedua misalkan user memfilter product dengan free ongkir sobs.

public function index(Request $request)
{
	$products = Product::query()
		// cek jika user cari product
		->when($request->has('search'), function($query) use($request) {
			return $query->where('product_name', 'LIKE', '%'. $request->search . '%');
		})
		// cek jika user cari product free ongkir
		->when($request->free_ongkir == true, function($query) {
			return $query->where('free_ongkir', true);
		})
		->get();
}


Contoh diatas merupakan penerapan multiple when, jadi ketika ada value search dan free ongkir bernilai true maka masing-masing metode when akan me return sebuah query.  jadi skemanya jika dua duanya diteraupkan maka hasil dari querynya akan seperti ini sobs

SELECT * FROM products WHERE product_name LIKE '%search%' AND free_ongkir = true; 


dan jika hanya search saja maka query seperti ini :

SELECT * FROM products WHERE product_name LIKE '%search%';

dan jika hanya free ongkir saja :

SELECT * FROM products WHERE free_ongkir = true;

dan jika keduanya filter tidak diterapkan, querynya hanya seperti ini :

SELECT * FROM products;


3.    Kapan When ini digunakan dan tidak digunakan ?

Jadi sebenarnya kapan atau dalam kondisi apa seharusnya kita menggunakan metode when ini dan kapan metode when ini tidak kita gunakan ? 

3.1    Digunakan ketika

1. Filter Data berdasarkan request : filtering produk berdasarkan input dari user seperti search produk, berdasarkan free ongkir, berdasarkan harga, atau yang lainnya sobs.

2. Menyusun Query berdasarkan Kondisi dinamis : metode when ini juga bisa digunakan tidak hanya untuk filter berdasarkan request, tapi bisa keaadan dalam kondisi dimana kita memerlukan hasil query berdasarkan penarapan kondisi dalam aplikasi kita. contoh misalkan cek jika user berstatus aktif, cek jika pembayaran menggunakan debit, atau apapunlah bentuk pengkondisiannya sobs-sobs.

3. Mengurangi penggunaan if bertumpuk untuk menghasilkan query : ya jika sobs-sobs tidak ingin menggunakan if secara bertumpuk metode when ini cocok digunakan.

 

3.2   Tidak harus digunakan ketika

1. Kondisi yang tidak bergantung pada input dinamis : jadi jika aplikasi sobs-sobs tidak mempunyai pengkondisian artinya semua data yang langsung disajikan tanpa perlu adanya input dari user.

2. Ketika Query sudah simple tanpa banyak variasi : jadi jika program sobs-sobs tidak ada penerapan kondisional khusus maka tidak perlu menggunakan metode when ini. 

3. Untuk logika yang tidak berhubungan dengan Query Database : metode when ini digunakan dalam Query Builder dan Eloquent, dan tidak cocok untuk logika diluar konteks database sobs.

 

4.    Kesimpulan metode when

Jadi metode when ini ada metode yang sangat berguna untuk menyusun query yang lebih dinamis, bersih, dan lebih efisien sobs. dengan metode ini kita bisa menambahkan kondisi ke dalam query hanya jika diperlukan tanpa harus menulis banyak if. namun yang perlu diperhatikan sobs gunakan metode when ini hanya sesuai dengan kebutuhan didalam aplikasi kita, misalkan ketika query memang membutuhkan fleksibilitas berasarkan input atau kondisi tertentu sobs.


Oke mungkin sekian penjelasan singkat tentang materi metode when di Laravel ini sobs, jika sobs-sobs dirasa kurang jelas bisa mencari refrensi dilain tempat atau bertanya dikolom komentar.


Sekian & Terimakasih sobs-sob. 


See you next time.

Posting Komentar untuk "Memahami Metode When di Laravel : Fungsi, dan Implementasinya"

www.domainesia.com
Web Hosting
www.domainesia.com