Ternary Operator, Cara Singkat Menulis Statement IF di PHP


Sumber : http://vendyxiao.com/
Sejak kita mengenal dunia pemrograman, statement IF pasti sudah tidak asing lagi bagi kita. Statement percabangan seperti ini tersedia di semua bahasa pemrograman dan salah satu statement pemrograman yang penting.
contohnya sebagai berikut :

<?php
    $nilai = 90;
    if ($nilai >= 80) {
        $hasil = "keren gan, nilai diatas 80";
    } else {
        $hasil "nilai kurang dari 80";
    }
    echo $hasil;
?>

Tentu kita akan dengan mudah menebak hasil dari program diatas. Ya tepat sekali, ouputnya :
keren gan, nilai diatas 80

Perkenalkan, Ternary Operator
Sumber : http://www.moreonfew.com/

Sebenarnya jika kita menggunakan bahasa PHP, statement IF diatas dapat kita perpendek dengan menggunakan ternary operation seperti berikut ini:

<?php
    $nilai = 90;
    $hasil = $nilai >= 80 ? "keren gan, nilai diatas 80" : "nilai kurang dari 80";
    echo $hasil;
?>

outputnya masih sama seperti sebelumnya :
keren gan, nilai diatas 80

Dengan ternary operation statement IF menjadi lebih singkat dan lebih hemat baris.
Contoh lainnya tentang penggunaan ternary operator:
<?php
    $nilai = 80;
    echo "nilai Anda : ".$nilai.", maka Anda dinyatakan ".($nilai >= 55 ? "LULUS" : "TIDAK LULUS");
?>
Outputnya :
nilai Anda : 80, maka Anda dinyatakan LULUS

Selain itu, mungkin kita pernah mendapat pesan error yang menyebalkan seperti berikut ini:
Notice: Undefined index: nama in /var/www/andi/ternary.php on line 2

Ternyata setelah kita lihat baris 2 di coding kita, yang kita temui adalah
<?php
    $nama = $_POST['nama'];
?>

Loh, apanya yang salah?? sebenarnya pesan error seperti itu terjadi karena index 'nama' tidak didefinisikan, dengan kata lain belum ada value yang disubmit dari form ke script ini. nah, gimana cara mengatasinya? salah satu caranya kita bisa menggunakan ternary operator dengan bantuan fungsi isset(). isset() adalah fungsi bawaan PHP yang digunakan untuk memeriksa apakah suatu variabel telah didefinisikan atau belum. Sehingga code kita menjadi seperti berikut ini:

<?php
    $nama = isset($_POST['nama']) ? $_POST['nama'] : '';
?>

Dengan demikian error tadi sudah tidak ada lagi.

Bagaimana jika kita ingin menulis statement IF menggunakan Ternary Operator dengan kondisi seperti contoh berikut ini:
<?php
    $nilai = 40;
    
    if ($nilai >= 80) {
        $hasil = "nilai baik";
    } elseif ($nilai >= 60) {
        $hasil = "nilai cukup";
    } else {
        $hasil = "nilai kurang";
    }
    
    echo $hasil;
?>
Mudah saja, cukup kita tuliskan seperti berikut ini:
<?php
    $nilai = 40;
    $hasil = $nilai >= 80 ? "nilai baik" : ($nilai >= 60 ? "nilai cukup" : "nilai kurang");
    echo $hasil;
?>
Output :
nilai kurang

Tapi ingat, Penulisan code seperti diatas sebaiknya kita hindari karena dan lebih memilih menggunakan statement yang biasa. Walaupun terlihat hemat baris namun Ternary Operator yang terlalu "Nested" seperti itu cenderung lebih sulit dibaca daripada struktur IF yang biasa dan cenderung membuat programmer pemula seperti saya kebingungan mengartikannya.

Demikian tutorial ini, semoga bermanfaat. Saya tunggu kritik dan saran dari sobat. Salam Blogger Madura!

BAGIKAN KE:

6 komentar:

  1. gan kalo bkin keterangan cerita pake php gimana?

    BalasHapus
    Balasan
    1. maksudnya comment? kasih tanda // kayak gini :
      // ini adalah komentar tapi hanya 1 baris

      atau jika lebih dari 1 baris kayak gini gan :
      /**
      * ini adalah komentar lebih dari 1 baris
      * yang kalimatnya lumayan panjang
      */

      Hapus
  2. mas saya udah coba pake fungsi isset yg menggunakan ternary operator itu agar tidak terjdi error, tapi kok malah ada peringatan error gini ya?? "Parse error: syntax error, unexpected '?>' in C:\xampp\htdocs\apa\html.php on line 16". padahal kan itu untuk tanda penutup kodenya.


    Please help me... :(

    BalasHapus
    Balasan
    1. ada syntax yg error, entah kurang titik koma (;), kurang tanda kurung tutup atau malah kelebihan atau hal lain yg saya sendiri gak bisa nebak itu apa :D

      Hapus
  3. Iya betul gan, emang keliatannya pendek tapi agak sulit dibacanya juga..

    BalasHapus