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…

piye kabare mad…?
kapan ni.. kita main bola bareng……?
kapan yok anak gang bima ngumpul bareng di Jogja trs main bola lagi..
haloo bos..alhamdulillah sehat2 wae..
wah..reuni tah? hehehehe..hayuuukk!!!
comment aja ah.. ternary nya dah bener.. tp html nya ga valid
karena tag inputnya menggunakan xhtml, mestinya checked=’checked’ ^^
salam kenal
@ Arie
ahaaa…makasih atas koreksinya om
salam kenal om…
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
.
@ 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..
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