Ternary Operator — Cara Singkat Menghemat Penggunaan Code If Else Pada Pemrograman PHP

Ilham Setia Bhakti
3 min readSep 29, 2019

--

https://www.thoughtco.com/create-links-in-php-2693950

Ternary operators (?:) atau istilah lainnya shorthand if/else.

I. The Writing Rule of Ternary Operator (?:)

$var = ekspresi1 ? ekspresi2 : ekspresi3 //Format Dasar Penulisan

jika ekspresi1 bernilai TRUE maka nilai yang dihasilkan adalah ekspresi2, sebaliknya jika ekspresi1 bernilai FALSE, maka nilai yang dihasilkan adalah ekspresi3. ekspresi1, ekspresi2 dan ekspresi3 bisa berisi apa saja, termasuk fungsi.

Bentuk Code Statement If-Else Secara Umum:

$nilai = 9;
if ($nilai > 8) {
echo 'Sangat Baik';
} else {
echo 'Baik';
}

penggunaan Ternary Operator:

$nilai = 9;
echo $nilai > 8 ? 'Sangat Baik' : 'Baik'; // Baik

II. Cara Lain Penulisan Ternary Operator

PHP 5.3 ekspresi2 bisa untuk tidak dituliskan, sehingga bentuk penulisannya menjadi:

var = ekspresi1 ?: ekspresi3

yang berarti jika expresi1 bernilai TRUE makan nilai yang dihasilkan adalah ekspresi1, sebaliknya jika FALSE, maka nilai yang dihasilkan adalah ekspresi3. Jika ditulis dalam bentuk umum, maka bentuknya menjadi:

if ( ekspresi1 )
{
$var = ekspresi1;
} else {
$var = ekspresi3;
}

contoh

$nilai = '';
echo $nilai ?: 9; // 9

III. Penggabungan dengan string

Jika ternary operator digabungkan dengan string, maka harus menggunakan tanda kurung, sehingga PHP akan membacanya sebagai statement tersendiri, jika tidak, maka akan menghasilkan pesan error. contoh:

//ERROR: Parse error: parse error, unexpected ':' 
$option ='<option value="1" '.$status == "1" ? 'selected="selected"' :''.'>Januari</option>';
//Benar:
$option ='<option value="1" '.($status == "1" ? 'selected="selected"' :'').'>Januari</option>';

IV. Nested If Else

Cara Penulisan If Else Pada PHP dengan menggunakan ternary operators dapat ditulis dengan level kedalaman yang tidak terbatas, if else di dalam if else (nested if else), adapun format penulisannya adalah:

ekspresi1 ? ekspresi2 : (ekspresi3 ? ekspresi4 : (dst..))

contoh penggunaannya:

$nilai = 6;
$predikat = $nilai > 8 ? 'Sangat Baik' : ( $nilai >= 7 && $nilai <= 8 ? 'Baik' : ($nilai <= 6 && $nilai > 5 ? 'Sedang' : 'Kurang') );
echo $predikat; // Sedang

kode diatas dapat ditulis ulang menjadi:

$predikat = $nilai > 8 
? 'Sangat Baik'
: ( $nilai >= 7 && $nilai <= 8
? 'Baik'
: ( $nilai <= 6 && $nilai > 5
? 'Sedang'
: 'Kurang'
)
);
echo $predikat; // Sedang

V. Contoh Penggunaan Ternary Operator (?:)

Contoh 1:

<?='Selamat Datang ' . ($this->isLogIn ? $this->_nama : 'Tamu, Silakan Login')?>
<?='Selamat Datang ' . ($this->_nama ?: 'Tamu, Silakan Login')?>

Contoh 2:

$bulan = array('1'=>'Januari', 
'Februari',
'Maret' ,
'April' ,
'Mei',
'Juni',
'Juli',
'Agustus',
'September',
'Oktober',
'November',
'Desember'
);

$nilai = array(1 => 9, 7, 8, 9, 7, 10, 7, 9, 8, 8, 9, 8);
foreach ($bulan as $bln => $nama_bln)
{
// Ternary Operators
$triwulan = $bln >= 1 && $bln <= 3
? 1
: ($bln >= 4 && $bln <= 6
? 2
: ($bln >= 7 && $bln <= 9 ? 3 : 4)
);

$semester = $bln >= 1 && $bln <= 6 ? 1 : 2;

$result['triwulan'][$triwulan][$nama_bln] = $nilai[$bln];
$result['semester'][$semester][$nama_bln] = $nilai[$bln];
}

/*
Hasil:

Array
(
[triwulan] => Array
(
[1] => Array
(
[Januari] => 9
[Februari] => 7
[Maret] => 8
)
[2] => Array
(
[April] => 9
[Mei] => 7
[Juni] => 10
)
[3] => Array
(
[Juli] => 7
[Agustus] => 9
[September] => 8
)
[4] => Array
(
[Oktober] => 8
[November] => 9
[Desember] => 8
)
)
[semester] => Array
(
[1] => Array
(
[Januari] => 9
[Februari] => 7
[Maret] => 8
[April] => 9
[Mei] => 7
[Juni] => 10
)

[2] => Array
(
[Juli] => 7
[Agustus] => 9
[September] => 8
[Oktober] => 8
[November] => 9
[Desember] => 8
)
)
)*/

--

--

Ilham Setia Bhakti
Ilham Setia Bhakti

No responses yet