Operator relasional yang dipakai dalam C++ adalah :
< Lebih kecil dari
<= Lebih kecil atau sama dengan
> Lebih besar dari
>= Lebih besar atau sama dengan
== Sama dengan
!= Tidak sama dengan
Operator-operator relasional di atas adalah opeator biner yang fungsinya melakukan tes pada hubungan diantara kedua operannya, Hasil tes ini adalah true atau false, misalnya :
(5 > 2)
hasilnya adalah true, sedangkan:
(2>5)
hasilnya adalah false.
Operator relasional dipakai dengan pernyataan-pernyataan while dan if-else untuk melakukan tes pada suatu kondisi. Pada suatu while-loop, suatu blok yang terdiri dari banyak pernyataan akan dieksekusi berulang-ulang asalkan hasil tesnya true, misalnya:
n=10;
while (n > 0)
{
cout << n;
n = n – 1;
}
C++ akan mengganti hasil tes yang true dengan 1 dan yang false dengan 0, jadi untuk while-loop di atas, keputusan untuk mengulang loop atau keluar dari loop tergantung dari hasil tes yang dapat 1 atau 0, C++ akan memperlakukan bilangan yang tidak sama dengan nol sebagai true sehingga penggalan program tadi dapat ditulis:
n= 10;
while (n)
{
cout << n;
n = n – 1;
}
Sedangkan untuk pernyataan if-clse, hasil tes yang memutuskan blok mana yang dieksekusi, misalnya :
x=1;
y=2;
if ( x == y )
cout << “x sama dengan y “;
else
cout << “x tidak sama dengan y”;
Operator yang dipakai dalam pernyataan if-else adalah operator sama dengan (==), bukan operator assignment (=), misal penggalan program di atas ditulis:
x=1;
y=2;
if ( x = y )
cout << “x sama dengan y “;
else
cout << “x tidak sama dengan y”;
berarti nilai dari variabel y, karena kesalahan pemakaian operator, ditempatkan di variabel x, sehingga tes pada pemyatan if akan menghasilkan 2, yang diartikan true oleh C++ sehingga pada layar akan tercetak “x sama dengan y”, Hasil ini sudah tentu tidak benar, kalau pemakaian operatornya benar yaitu (x == y) maka nilai variabel x akan dibandingkan dengan nilai variabel y, hasilnya adalah false atau 0 sehingga pada layar akan tercetak “x tidak sama dengan y”.
Order of precedence dari operator-operator relasional ini lebih rendah dari operator-operator aritmatik tetapi lebih tinggi dari operator assignment sehingga ekpresi :
z == y – 1 adalah sama dengan z == (y – 1)
sehingga variabel z akan dibandingkan dengan variabel (y-1). Contoh ekpresi lain:
z == x * x == y adalah sama dengan z = (x *x == y)
disini (x * x === y) menghasilkan true atau false dan hasilnya disimpan dalam variabel z jadi variabel z mempunyai nilai true atau false. Contoh yang lain lagi:
x == y != z adalah sama dengan ((x == y) \= z)
tidak sama dengan (x == (y != z)
karena assosiativitas dari operator-operator relasional adalah dari kiri ke kanan. Contoh pemakaian ekpresi yang terakhir ini adalah sebagai berikut:
// C4_2.CPP
#include <iostream.h>
main ()
{
int x = 2, y = 2, z = 0;
if(x==y !=z)
cout << “true \n”;
else
cout << “false \n”;
}