Thursday, April 12, 2012

Ternary Operator

Ternary operator dalam ilmu komputer merupakan operator untuk bahasa pemrograman yang memiliki 3 argumen yang dipisahkan oleh karakter '?' dan ':'. Operator ini merepresentasikan operasi asignment suatu variabel berdasarkan kondisi argumen sebelum '?'. Bentuk umum dari operator ini adalah:
(kondisi)?ekspresi_pertama:ekspresi_kedua;
ekspresi_pertama dijalankan jika kondisi bernilai true, jika kondisi bernilai false maka ekspresi_kedua yang akan dijalankan.
Lihat contoh statemen operator ternary berikut:
No C++/Java PHP
1 max=(a>b):a:b; $max=($a>$b)?$a:$b;
2 n=(n%2==0)?n/2:3*n+1; $n=($n%2==0)?$n/2:3*$n+1;

Statement pada tabel di atas jika dituliskan dengan struktur kontrol kondisi if sebagai berikut:
No C++/Java PHP
1
if (a>b) {
  max=a;
  } else {
  max=b;
  } 
if ($a>$b) { 
  $max=$a; 
  }else {
  $max=:$b; 
  } 
2
if (n%2==0) { 
    n=n/2; 
    } else {
    n=3*n+1;
    }
if ($n%2==0) { 
    $n=$n/2; 
    } else {
    $n=3*$n+1;
    }
Lalu bagaimana jika kondisi yang dapat dipenuhi lebih dari 2, misal untuk menentukan bilangan terbesar dari 3 bilangan, perhatikan pseudocode berikut:
if a>b 
  if a>c
   max=a
  else
   max=c
else
  if b>c
   max=b
  else
   max=c

Implementasi operator ternary dari pseudocode lihat contoh script lengkap dalam C++ berikut:
#include <iostream>

using namespace std;
int main()
{
   int a=90,b=80,c=530,max;
   max=(a>b)?(a>c)?a:c:(b>c)?b:c; //menentukan nilai max
   cout<<max;
   return 0;
 }

Dari pemaparan contoh-contoh di atas, operator ternary dapat digunakan sebagai pengganti statement if sehingga kode yang dibuat dapat menjadi lebih pendek sehingga dapat mengurangi code of line yang efeknya adalah ukuran file code yang dihasilkan akan lebih kecil.
Technorati Profile