Tips untuk simple code: part 2. Hindari penggunaan Else

By Admin
29 Jul 2022

Apa ada bagian di coding program kamu yang seperti gambar di atas?

Jika iya, kamu wajib buat baca tips yang satu ini sampai selesai. 

Daftar Isi

Tips kali ini adalah tentang menghindari penggunaan else dalam coding kamu. 

Serius nih jangan pakai else? Lalu gimana dong caranya ni bro?

Katanya, kalau ada banyak else di dalam kode kamu, kemungkinan code yang kamu tulis tersebut banyak code yang mubasir dan redundant.

Maksudnya gimana tu? Kita lihat aja sample code di bawah ini,oh ya potongan code di bawah ini diambil dari controller framework laravel.

public function store(){
	$inputs = Request::all();
	$validation = Validator::make($inputs,[‘username’ => required]);
	if(data(‘l’) !== ‘friday’){
		if($validation->passes()){
			Post::create($inputs);
			redirect Route::home();
		}else{
			redirect Route::back()->withInput()->withErrors($validation);
		}
	}else{
		redirect Route::back()->with(‘message’ => ‘we not work in friday’);
	}
}

Dalam kode di atas kita punya 2 buah else yang akan kita hilangkan. Ayo ikuti step-step di bawah ini bagaimana kita tidak menggunakan else sama sekali.

Step 1: coba hapus else saat validation.

public function store(){
	$inputs = Request::all();

	$validation = Validator::make($inputs,[‘username’ => required]);

	if(data(‘l’) !== ‘friday’){
		if($validation->passes()){
			Post::create($inputs);
			redirect Route::home();
		}<br>		//hapus else
		redirect Route::back()->withInput()->withErrors($validation);
		
	}else{
		redirect Route::back()->with(‘message’ => ‘we not work in friday’);
	}
}

Step 2: ini lebih ke personal taste, saya lebih suka yang defensive programming, jadi kita ubah lagi dikit codenya jadi seperti berikut.

public function store(){
	$inputs = Request::all();
	$validation = Validator::make($inputs,[‘username’ => required]);
	if(data(‘l’) !== ‘friday’){
		if($validation->fail()){
			redirect Route::back()->withInput()->withErrors($validation);
		}
		Post::create($inputs);
		redirect Route::home();
	}else{
		redirect Route::back()->with(‘message’ => ‘we not work in friday’);
	}
}

Defensive programing bisa dibilang seperti mencegah daripada mengobati menurut saya, jadi kita filter kondisi yang salah duluan baru yang benar.

Step 3: Hapus else yang lainnya.

public function store(){
	$inputs = Request::all();

	$validation = Validator::make($inputs,[‘username’ => required]);

	if(data(‘l’) !== ‘friday’){
		if($validation->fail()){
			redirect Route::back()->withInput()->withErrors($validation);
		}
		Post::create($inputs);
		redirect Route::home();
	}
	redirect Route::back()->with(‘message’ => ‘we not work in friday’);
}

Step 4: Hmm, lebih ke personal taste lagi, kita pakai defensive programming lagi ya untuk check harinya.

public function store(){
	$inputs = Request::all();
	$validation = Validator::make($inputs,[‘username’ => required]);
	if(data(‘l’) === ‘friday’){
		redirect Route::back()->with(‘message’ => ‘we not work in friday’);
	}
	if($validation->fail()){
		redirect Route::back()->withInput()->withErrors($validation);
	}
	Post::create($inputs);
	redirect Route::home();
}

Bagaimana? Ada perbedaan? Terlihat lebih rapi dan mudah di mengerti bukan? Jadi tujuan dengan tidak memakai else membuat kita bisa lebih mudah membaca kode tersebut dari atas ke bawah. Membuat programmer lain mampu membaca kode itu seperti membaca buku, clean dan alurnya jelas. 

Menurut pengalaman sih memang code kita jadi lebih mudah dibaca jika tanpa else, tapi ada beberapa orang yang bilang harus pakai else supaya gampang dibaca. Tapi who knows, itu soal selera, ga ada salahnya kok mengikuti best practice dari orang-orang yang lebih berpengalaman dari kita. Jadi untuk tips kedua kita coba kurangi penggunaan else untuk membuat kode kamu jadi lebih simple. Patut dicoba nih bro!

Bacaan buat yang pengen lebih tau soal refactoring code : http://www.refactoring.com/

Untuk tips selanjutnya yaitu : Tips simple untuk simple code: part 3. satu level indentation

Artikel Lainnya

Artikel lain yang mungkin menarik juga untuk kamu baca.

Apa itu Persistance Layer?

Kali ini kita akan membahas tentang apa itu persistance layer khususnya dalam PHP OOP. Persistance layer biasa dijelaskan sebagai layer tempat untuk CREATE, UPDATE, DELETE data.
Admin
5 min read

Tips untuk simple code: part 4. Batasi penggunaan variable yang tidak perlu

Tips untuk simple code adalah membatasi penggunaan variable yang tidak perlu. Mau tahu implementasinya seperti apa? Yuk baca artikel ini lebih lanjut.
Admin
5 min read

Tips untuk simple code: part 3. satu level indentation

Part ketiga dari tips membuat kode kamu lebih simple ini adalah bagaimana caranya agar kode yang kamu buat memiliki minimal satu level indentation di dalam fungsi yang kamu buat. Kedengarannya memang susah sih, tapi kita lihat dahulu sample kode di bawah ini.
Admin
5 min read

© 2024