Logo

Related posts

  • Last.fm Audioscrobbler Plugin for Habari
  • Cara cepat gonta-ganti versi PHP di Windows
  • Ada apa dengan Template Engine?
  • Notice for PDO SQLite user
  • ShowEntries plugin for NucleusCMS
Grab the firmanw.org entries feed, also the comments feed is available.

Praktek terbaik return dan if

June 4, 2008 at 14:01 / Updated at June 4, 2008

Saya sering berpikir bagaimana cara supaya kode mudah dipahami ketika menulis kode yang kemudian berhadapan dengan if dan return dalam suatu fungsi. Apakah saya harus lakukan proses ketika kondisi benar dan mengembalikan hasil dalam kerangka if, jika tidak saya kembalikan nilai salah:

  1.  
  2. function lakukan($sesuatu) {
  3. if ($sesuatu) {
  4. // lakukan sesuatu
  5. return $hasil;
  6. } else {
  7. return false;
  8. }
  9. }
  10.  

Atau dengan sedikit penyederhanaan menjadi:

  1.  
  2. function lakukan($sesuatu) {
  3. if ($sesuatu) {
  4. // lakukan sesuatu
  5. return $hasil;
  6. }
  7.  
  8. return false;
  9. }
  10.  

Namun kode diatas masih akan menyebabkan banyak indentasi, yang akan membuatnya sulit dipahami. Bagaimana dengan menyimpan sebuah variable sebagai nilai kembalian dan melakukan return diakhir fungsi:

  1.  
  2. function lakukan($sesuatu) {
  3. $retval = false;
  4. if ($sesuatu) {
  5. // lakukan sesuatu
  6. $retval = $hasil;
  7. }
  8.  
  9. return $retval;
  10. }
  11.  

Tampak lebih sulit dipahami, karena saya harus membacanya dari atas ke bawah hingga menemukan statement return dan masih terlalu banyak indentasi. Bagaimana jika saya kembalikan nilai salah jika kondisi tidak terpenuhi:

  1.  
  2. function lakukan($sesuatu) {
  3. if (!$sesuatu) {
  4. return false;
  5. }
  6.  
  7. // lakukan sesuatu
  8. return $hasil;
  9. }
  10.  

Inilah yang disebut praktek terbaik dari kombinasi penulisan if dan return, sederhana, mudah dipahami dan tidak banyak indentasi. Yaitu mengembalikan segera nilai salah ketika kondisi tidak terpenuhi, jika tidak lakukan proses dan kembalikan hasil.

Kesimpulan ini diambil setelah membaca tulisan Lukas tentang "Return early" dan Helgi tentang "Return early and simplified if else".

7 comments /  Got a comment? Submit yours /  Comments feed

sandal's Gravatar

1. sandal / June 15, 2008 at 22:21

website
O, jadi kalo udah return maka skrip di bawahnya tidak dieksekusi ya Jeng?
firman's Gravatar

2. firman / June 16, 2008 at 17:57

website
Iya bener jeng, jadi kita dapat membaca dengan jelas, jika kondisi tidak terpenuhi maka langsung di return dan abaikan kode yang dibawahnya.
tukangmoto's Gravatar

3. tukangmoto / June 18, 2008 at 03:10

website
tergantung sikon sih.. return early jg bisa bikin ribet apalagi kalau kodenya puanjang . hehe
firman's Gravatar

4. firman / June 19, 2008 at 17:29

website
Nah makanya itu, Return early bisa menguranginya kerumitan karena identasi pun jadi berkurang. Coba dibayangkan jika dalam suatu kerangka if banyak proses, tentunya makin rumit aja kan, Beda jika kita melakukan return segera dan lakukan proses akhir dibawahnya. Ini hanya suatu solusi untuk meminimalis kerumitan, memudahkan trace dan debugging.
linoxs's Gravatar

5. linoxs / June 23, 2008 at 10:34

website
Benul sekali jeng, saiya sering kali harus ngotot berkali kali mengingatkan rekan untuk gak membebani server agar ndak baca yg dak perlu. Dengan early return kode bukan hanya lebih human-readable, tapi juga mencegah PHP masuk ke kondisi yg gak perlu dibaca. Ah firman, jadi jatuh cintrong sama dikau (-_-)
the kepiting's Gravatar

6. the kepiting / June 25, 2008 at 14:20

website
eta naon sih jang, teu ngartos abdi teh....
firman's Gravatar

7. firman / June 25, 2008 at 16:17

website
Hahaha dasar si kokom, itu surat cinta ke utada hikaru :P

Leave a comment

*

* (hidden)

Home /  Archives /  Entries Feed /  Comments Feed
Going up? Top

All content © 2005-2008 Firman Wandayandi. All rights reserved.
Powered by Habari and A Java Coffee.