Home > PHP > Ternary Conditionals (Alternatif dari IF-Else Operator)

Ternary Conditionals (Alternatif dari IF-Else Operator)

Meneruskan di postingan saya sebelumnya tentang penggunaan statement IF, ada sebuah alternatif dari IF/Else statement yaitu Ternary Conditional Operator. Operator perbandingan ini sangat sederhana sekali penulisannya dibandingkan dengan menggunakan IF/Else. Adapun formatnya sebagai berikut:

(KONDISI)? ‘Kondisi Benar’:'Kondisi Salah’

Sederhana sekali bukan? nah, untuk contoh penggunaannya sekaligus perbandingan dengan IF/Else sebagai berikut (dengan contoh kode untuk menampilkan bilangan ganjil/genap):

IF-Else

1
2
3
4
5
$num = 10;
if($num%2==0)
  echo 'Genap';
else
  echo 'Ganjil';

Ternary

1
2
$num = 10;
echo ($num%2==0) 'Genap':'Ganjil'; //cetak Genap

simple sekali bukan? hanya dengan 1 baris kode yang berfungsi mencetak bilangan ganjil atau genap. Untuk contoh nyata yang sering saya gunakan di aplikasi saya adalah untuk mengambil nilai Jenis Kelamin di database dan memberikan nilai default Checked (Input -> Radio) pada input jenis kelamin.

1
2
3
4
5
//fetch db result as array
$query = "SELECT name, sex FROM registrant WHERE id = '1'";
$d = mysql_fetch_array($query);
$name = $d['name'];
$sex = $d['sex'];

HTML:

1
2
3
4
5
6
7
8
9
10
Name: <input type="text" name="name" value="<?= $d['name'] ?>" />
Sex: 
<? $is_checked = 'checked="checked"'; ?>
<input type="radio" name="sex" value="M" <?= $sex=='M'? $is_checked:'' ?> /> Male
<input type="radio" name="sex" value="F" 
<?
if($sex=='F')
  echo $is_checked;
else echo '';
 ?> />Female

Bandingkan kedua tag radio di atas. Pada radio dengan value Male, untuk pengecekannya menggunakan ternary conditional operator, sedangkan pada radio dengan value Female menggunakan IF/Else statement.
Mana yang terbaik? tentunya ternary operator… ;)

hammudi PHP , ,

  1. mamad
    June 6th, 2009 at 22:09 | #1

    piye kabare mad…?
    kapan ni.. kita main bola bareng……?

    kapan yok anak gang bima ngumpul bareng di Jogja trs main bola lagi..

  2. June 6th, 2009 at 23:52 | #2

    haloo bos..alhamdulillah sehat2 wae..
    wah..reuni tah? hehehehe..hayuuukk!!!

  3. June 8th, 2009 at 17:14 | #3

    comment aja ah.. ternary nya dah bener.. tp html nya ga valid :D

    karena tag inputnya menggunakan xhtml, mestinya checked=’checked’ ^^

    salam kenal :)

  4. June 8th, 2009 at 17:53 | #4

    @ Arie
    ahaaa…makasih atas koreksinya om :D
    salam kenal om…

  5. June 22nd, 2009 at 19:43 | #5

    Secara itungan baris sih, ternary lebi simple. Tp, bagaimana proses berjalannnya mesin di belakang code itu? Apa bener ternary lebih efisien daripada if-else?

    Oh iya, kan salah satu cara pembayaran salary adalah berdasarkan jumlah baris. Klo pake ternary, makin dikit donk bayarannya :mrgreen: .

  6. July 13th, 2009 at 11:51 | #6

    @ agungfirmansyah
    hmm..saya tidak terlalu memperhatikan bagaimana proses di berjalannya. justru yang menjadi perhatian saya adalah untuk kasus tersebut (checked || !checked) yang terkesan kasus sederhana, maka perlu penyelesaian dengan yang sederhana pula…yang lebih mudah di baca kode nya, dan tidak “memakan” baris..

  7. Bayu Hernanto
    August 20th, 2009 at 16:46 | #7

    Ada alternatif yang lain yaitu “and” dan “or”. Bisa dibaca di note saya di facebook. Disini http://www.facebook.com/note.php?note_id=64200727368

  1. No trackbacks yet.